From aa4d17f22ef14b1dcc018dea195a3e4e200f611e Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Sun, 18 Aug 2024 21:46:58 +0000 Subject: [PATCH] Remove files --- browser.js | 3 - browser.js.map | 1 - index.js | 3 - index.js.map | 1 - stats_browser.html | 4842 -------------------------------------------- stats_node.html | 4842 -------------------------------------------- 6 files changed, 9692 deletions(-) delete mode 100644 browser.js delete mode 100644 browser.js.map delete mode 100644 index.js delete mode 100644 index.js.map delete mode 100644 stats_browser.html delete mode 100644 stats_node.html diff --git a/browser.js b/browser.js deleted file mode 100644 index 97df577c6..000000000 --- a/browser.js +++ /dev/null @@ -1,3 +0,0 @@ -// Copyright (c) 2024 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 -!function(r,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n():"function"==typeof define&&define.amd?define(n):(r="undefined"!=typeof globalThis?globalThis:r||self).math=n()}(this,(function(){"use strict";var r="function"==typeof Object.defineProperty?Object.defineProperty:null;var n=Object.defineProperty;function e(r){return"number"==typeof r}function t(r){var n,e="";for(n=0;n0&&(n-=1),t=i.toExponential(n)):t=i.toPrecision(r.precision),r.alternate||(t=l.call(t,y,"$1e"),t=l.call(t,m,"e"),t=l.call(t,g,""));break;default:throw new Error("invalid double notation. Value: "+r.specifier)}return t=l.call(t,h,"e+0$1"),t=l.call(t,p,"e-0$1"),r.alternate&&(t=l.call(t,v,"$1."),t=l.call(t,d,"$1.e")),i>=0&&r.sign&&(t=r.sign+t),t=r.specifier===c.call(r.specifier)?c.call(t):s.call(t)}function b(r){var n,e="";for(n=0;n127)throw new Error("invalid character code. Value: "+t.arg);t.arg=x(u)?String(t.arg):E(u)}break;case"e":case"E":case"f":case"F":case"g":case"G":n||(t.precision=6),t.arg=w(t);break;default:throw new Error("invalid specifier: "+t.specifier)}t.maxWidth>=0&&t.arg.length>t.maxWidth&&(t.arg=t.arg.substring(0,t.maxWidth)),t.padZeros?t.arg=i(t.arg,t.width||t.precision,t.padRight):t.width&&(t.arg=(h=t.arg,p=t.width,v=t.padRight,d=void 0,(d=p-h.length)<0?h:h=v?h+b(d):b(d)+h)),f+=t.arg||"",s+=1}return f}var A=/%(?:([1-9]\d*)\$)?([0 +\-#]*)(\*|\d+)?(?:(\.)(\*|\d+)?)?[hlL]?([%A-Za-z])/g;function V(r){var n={mapping:r[1]?parseInt(r[1],10):void 0,flags:r[2],width:r[3],precision:r[5],specifier:r[6]};return"."===r[4]&&void 0===r[5]&&(n.precision="1"),n}function O(r){var n,e,t,i;for(e=[],i=0,t=A.exec(r);t;)(n=r.slice(i,A.lastIndex-t[0].length)).length&&e.push(n),e.push(V(t)),i=A.lastIndex,t=A.exec(r);return(n=r.slice(i)).length&&e.push(n),e}function j(r){var n,e;if("string"!=typeof r)throw new TypeError(j("invalid argument. First argument must be a string. Value: `%s`.",r));for(n=[O(r)],e=1;e1;if(r>Y||r%2==0)return!1;if(r<9)return!0;if(r%3==0)return!1;if(r%5==0)return!1;if(r%7==0)return!1;if(q[r])return!0;for(n=C(M(r)),e=11;e<=n;e+=210)if(r%e==0||r%(e+2)==0||r%(e+6)==0||r%(e+8)==0||r%(e+12)==0||r%(e+18)==0||r%(e+20)==0||r%(e+26)==0||r%(e+30)==0||r%(e+32)==0||r%(e+36)==0||r%(e+42)==0||r%(e+48)==0||r%(e+50)==0||r%(e+56)==0||r%(e+60)==0||r%(e+62)==0||r%(e+68)==0||r%(e+72)==0||r%(e+78)==0||r%(e+86)==0||r%(e+90)==0||r%(e+92)==0||r%(e+96)==0||r%(e+98)==0||r%(e+102)==0||r%(e+110)==0||r%(e+116)==0||r%(e+120)==0||r%(e+126)==0||r%(e+128)==0||r%(e+132)==0||r%(e+138)==0||r%(e+140)==0||r%(e+146)==0||r%(e+152)==0||r%(e+156)==0||r%(e+158)==0||r%(e+162)==0||r%(e+168)==0||r%(e+170)==0||r%(e+176)==0||r%(e+180)==0||r%(e+182)==0||r%(e+186)==0||r%(e+188)==0||r%(e+198)==0||r%(e+200)==0)return!1;return!0}function z(r){return C(r)===r}var W=Number.POSITIVE_INFINITY;function G(r){return z(r)&&r>1&&r!==W&&!1===D(r)}function Z(r){return r!=r}var J=Number,H=J.NEGATIVE_INFINITY,$=2147483647;function X(r,n){return Z(r)||Z(n)||r===W||n===W||r===H||n===H?NaN:z(r)&&z(n)?(r<0&&(r=-r),n<0&&(n=-n),r<=$&&n<=$?function(r,n){var e,t=0;if(0===r)return n;if(0===n)return r;for(;0==(1&r)&&0==(1&n);)r>>>=1,n>>>=1,t+=1;for(;0==(1&r);)r>>>=1;for(;n;){for(;0==(1&n);)n>>>=1;r>n&&(e=n,n=r,r=e),n-=r}return r<n&&(e=n,n=r,r=e),n-=r}return t*r}(r,n)):NaN}function K(r){return z(r/2)}var Q="function"==typeof Symbol&&"symbol"==typeof Symbol("foo");function rr(){return Q&&"symbol"==typeof Symbol.toStringTag}var nr=Object.prototype.toString;var er=Object.prototype.hasOwnProperty;function tr(r,n){return null!=r&&er.call(r,n)}var ir,or="function"==typeof Symbol?Symbol:void 0,ur="function"==typeof or?or.toStringTag:"";ir=rr()?function(r){var n,e,t;if(null==r)return nr.call(r);e=r[ur],n=tr(r,ur);try{r[ur]=void 0}catch(n){return nr.call(r)}return t=nr.call(r),n?r[ur]=e:delete r[ur],t}:function(r){return nr.call(r)};var ar=ir,fr="function"==typeof Float32Array;var sr="function"==typeof Float32Array?Float32Array:null;var cr,lr="function"==typeof Float32Array?Float32Array:void 0;cr=function(){var r,n,e;if("function"!=typeof sr)return!1;try{n=new sr([1,3.14,-3.14,5e40]),e=n,r=(fr&&e instanceof Float32Array||"[object Float32Array]"===ar(e))&&1===n[0]&&3.140000104904175===n[1]&&-3.140000104904175===n[2]&&n[3]===W}catch(n){r=!1}return r}()?lr:function(){throw new Error("not implemented")};var hr=cr,pr="function"==typeof Uint32Array;var vr=4294967295,dr="function"==typeof Uint32Array?Uint32Array:null;var gr,mr="function"==typeof Uint32Array?Uint32Array:void 0;gr=function(){var r,n,e;if("function"!=typeof dr)return!1;try{n=new dr(n=[1,3.14,-3.14,4294967296,4294967297]),e=n,r=(pr&&e instanceof Uint32Array||"[object Uint32Array]"===ar(e))&&1===n[0]&&3===n[1]&&4294967293===n[2]&&0===n[3]&&1===n[4]}catch(n){r=!1}return r}()?mr:function(){throw new Error("not implemented")};var yr=gr,wr=new hr(1);new yr(wr.buffer)[0]=2139095040;var br=wr[0],Er=new hr(1);new yr(Er.buffer)[0]=4286578688;var _r=Er[0];function xr(r){return r===W||r===H}function Tr(r){return r===br||r===_r}function Nr(r){return r!=r}function Ar(r){return C(r)===r&&r<0}function Vr(r){return 0===r&&1/r===H}function Or(r){return 0===r&&1/r===_r}function jr(r){return C(r)===r&&r>=0}function Sr(r){return K(r>0?r-1:r+1)}function Rr(r){return 0===r&&1/r===W}function Ir(r){return r>=0&&r<=1}var kr={};U(kr,"isEvenInt32",(function(r){return 0==(1&r)})),U(kr,"isOddInt32",(function(r){return 1==(1&r)})),U(kr,"isComposite",G),U(kr,"isCoprime",(function(r,n){var e=X(r,n);return e==e&&1===e})),U(kr,"isEven",K),U(kr,"isFinite",(function(r){return r==r&&r>H&&r_r&&rH})),U(kr,"isNegativeInteger",Ar),U(kr,"isNegativeZero",Vr),U(kr,"isNegativeZerof",Or),U(kr,"isNonNegativeFinite",(function(r){return r>=0&&rH})),U(kr,"isNonPositiveInteger",(function(r){return C(r)===r&&r<=0})),U(kr,"isOdd",Sr),U(kr,"isPositiveFinite",(function(r){return r>0&&r0})),U(kr,"isPositiveZero",Rr),U(kr,"isPositiveZerof",(function(r){return 0===r&&1/r===br})),U(kr,"isPrime",D),U(kr,"isProbability",Ir),U(kr,"isSafeInteger",(function(r){return r>=-9007199254740991&&r<=Y&&z(r)})),U(kr,"isPow2Uint32",(function(r){return!(!(r>>>=0)||r&r-1)}));var Br="function"==typeof Math.fround?Math.fround:null,Fr=new hr(1);var Pr="function"==typeof Br?Br:function(r){return Fr[0]=r,Fr[0]};function Lr(r,n,e){L(r,n,{configurable:!1,enumerable:!1,writable:!1,value:e})}function Ur(r){return"number"==typeof r}var Mr=J.prototype.toString;var Cr=rr();function Yr(r){return"object"==typeof r&&(r instanceof J||(Cr?function(r){try{return Mr.call(r),!0}catch(r){return!1}}(r):"[object Number]"===ar(r)))}function qr(r){return Ur(r)||Yr(r)}function Dr(r,n){if(!(this instanceof Dr))throw new TypeError("invalid invocation. Constructor must be called with the `new` keyword.");if(!Ur(r))throw new TypeError(j("invalid argument. Real component must be a number. Value: `%s`.",r));if(!Ur(n))throw new TypeError(j("invalid argument. Imaginary component must be a number. Value: `%s`.",n));return L(this,"re",{configurable:!1,enumerable:!0,writable:!1,value:Pr(r)}),L(this,"im",{configurable:!1,enumerable:!0,writable:!1,value:Pr(n)}),this}function zr(r){return r.re}function Wr(r){return r.im}function Gr(r,n){return new Dr(Pr(zr(r)+zr(n)),Pr(Wr(r)+Wr(n)))}function Zr(r,n){var e=zr(r),t=zr(n),i=Wr(r),o=Wr(n),u=Pr(e*t)-Pr(i*o),a=Pr(e*o)+Pr(i*t);return new Dr(Pr(u),Pr(a))}function Jr(r,n){if(!(this instanceof Jr))throw new TypeError("invalid invocation. Constructor must be called with the `new` keyword.");if(!Ur(r))throw new TypeError(j("invalid argument. Real component must be a number. Value: `%s`.",r));if(!Ur(n))throw new TypeError(j("invalid argument. Imaginary component must be a number. Value: `%s`.",n));return L(this,"re",{configurable:!1,enumerable:!0,writable:!1,value:r}),L(this,"im",{configurable:!1,enumerable:!0,writable:!1,value:n}),this}function Hr(r){return r.re}function $r(r){return r.im}function Xr(r,n){return new Jr(Hr(r)+Hr(n),$r(r)+$r(n))}function Kr(r,n){var e=Hr(r),t=Hr(n),i=$r(r),o=$r(n);return new Jr(e*t-i*o,e*o+i*t)}function Qr(r,n){return r+n}function rn(r){return Math.abs(r)}function nn(r,n){return Z(r)||Z(n)?NaN:r===W||n===W?W:r===n&&0===r?Rr(r)?r:n:r>n?r:n}Lr(qr,"isPrimitive",Ur),Lr(qr,"isObject",Yr),Lr(Dr,"BYTES_PER_ELEMENT",4),Lr(Dr.prototype,"BYTES_PER_ELEMENT",4),Lr(Dr.prototype,"byteLength",8),Lr(Dr.prototype,"toString",(function(){var r=""+this.re;return this.im<0?r+=" - "+-this.im:r+=" + "+this.im,r+="i"})),Lr(Dr.prototype,"toJSON",(function(){var r={type:"Complex64"};return r.re=this.re,r.im=this.im,r})),Lr(Jr,"BYTES_PER_ELEMENT",8),Lr(Jr.prototype,"BYTES_PER_ELEMENT",8),Lr(Jr.prototype,"byteLength",16),Lr(Jr.prototype,"toString",(function(){var r=""+this.re;return this.im<0?r+=" - "+-this.im:r+=" + "+this.im,r+="i"})),Lr(Jr.prototype,"toJSON",(function(){var r={type:"Complex128"};return r.re=this.re,r.im=this.im,r}));var en=17976931348623157e292,tn=22250738585072014e-324,on=2220446049250313e-31;function un(r,n,e,t,i,o){var u;return 0===i?(r+t*(n/e))*o:0===(u=n*i)?r*o+n*o*i:(r+u)*o}function an(r,n,e,t){var i,o,u;return u=1/(e+t*(o=t/e)),(i=[0,0])[0]=un(r,n,e,t,o,u),i[1]=un(n,-r,e,t,o,u),i}var fn=.5*en,sn=tn*(2/on),cn=2/(on*on);function ln(r,n){return new Jr(Hr(r)-Hr(n),$r(r)-$r(n))}function hn(r,n){return new Dr(Pr(zr(r)-zr(n)),Pr(Wr(r)-Wr(n)))}var pn="function"==typeof Math.imul?Math.imul:null;var vn="function"==typeof pn?pn:function(r,n){var e,t;return((e=(65535&(r|=0))>>>0)*(t=(65535&(n|=0))>>>0)>>>0)+((r>>>16>>>0)*t+e*(n>>>16>>>0)<<16>>>0)|0},dn=65535;function gn(r,n,e,t,i){var o,u,a,f,s,c,l,h;return Z(r)||Z(n)?(e[i]=NaN,e[i+t]=NaN,e):(u=((l=(s=((r|=0)&dn)>>>0)*(c=((n|=0)&dn)>>>0)>>>0)&dn)>>>0,o=(l=(a=r>>16|0)*c+(h=l>>>16>>>0)>>>0)>>16>>>0,h=(l=s*(f=n>>16|0)+((l&dn)>>>0)>>>0)>>16>>>0,e[i]=a*f+o+h|0,e[i+t]=(l<<16)+u|0,e)}function mn(r,n){return gn(r,n,[0,0],1,0)}function yn(r,n){return r*n}function wn(r,n){return r-n}Lr(mn,"assign",gn);var bn=65535;function En(r,n,e,t,i){var o,u,a,f,s,c,l,h;return Z(r)||Z(n)?(e[i]=NaN,e[i+t]=NaN,e):(u=((l=(s=((r>>>=0)&bn)>>>0)*(c=((n>>>=0)&bn)>>>0)>>>0)&bn)>>>0,o=(l=(a=r>>>16>>>0)*c+(h=l>>>16>>>0)>>>0)>>>16>>>0,h=(l=s*(f=n>>>16>>>0)+((l&bn)>>>0)>>>0)>>>16>>>0,e[i]=a*f+o+h>>>0,e[i+t]=(l<<16)+u>>>0,e)}function _n(r,n){return En(r,n,[0,0],1,0)}Lr(_n,"assign",En);var xn={};function Tn(r){return r*r}function Nn(r){return Pr(Pr(r)*Pr(r))}function An(r){return Math.abs(r)}U(xn,"caddf",Gr),U(xn,"cmulf",Zr),U(xn,"cadd",Xr),U(xn,"cmul",Kr),U(xn,"add",Qr),U(xn,"add3",(function(r,n,e){return r+n+e})),U(xn,"add4",(function(r,n,e,t){return r+n+e+t})),U(xn,"add5",(function(r,n,e,t,i){return r+n+e+t+i})),U(xn,"addf",(function(r,n){return Pr(Pr(r)+Pr(n))})),U(xn,"cdiv",(function(r,n){var e,t,i,o,u,a,f,s;return e=Hr(r),t=Hr(n),i=$r(r),o=$r(n),a=nn(rn(e),rn(i)),f=nn(rn(t),rn(o)),s=1,a>=fn?(e*=.5,i*=.5,s*=2):a<=sn&&(e*=cn,i*=cn,s/=cn),f>=fn?(t*=.5,o*=.5,s*=.5):f<=sn&&(t*=cn,o*=cn,s*=cn),rn(o)<=rn(t)?u=an(e,i,t,o):(u=an(i,e,o,t))[1]*=-1,u[0]*=s,u[1]*=s,new Jr(u[0],u[1])})),U(xn,"cneg",(function(r){return new Jr(-Hr(r),-$r(r))})),U(xn,"cnegf",(function(r){return new Dr(-zr(r),-Wr(r))})),U(xn,"csub",ln),U(xn,"csubf",hn),U(xn,"div",(function(r,n){return r/n})),U(xn,"divf",(function(r,n){return Pr(Pr(r)/Pr(n))})),U(xn,"imul",vn),U(xn,"imuldw",mn),U(xn,"mul",yn),U(xn,"mulf",(function(r,n){return Pr(Pr(r)*Pr(n))})),U(xn,"sub",wn),U(xn,"subf",(function(r,n){return Pr(Pr(r)-Pr(n))})),U(xn,"umul",(function(r,n){var e,t;return((e=(65535&(r>>>=0))>>>0)*(t=(65535&(n>>>=0))>>>0)>>>0)+((r>>>16>>>0)*t+e*(n>>>16>>>0)<<16>>>0)>>>0})),U(xn,"umuldw",_n);var Vn=.7853981633974483;var On=6123233995736766e-32;function jn(r){var n,e,t,i,o;if(Z(r))return NaN;if(r>0?t=r:(n=!0,t=-r),t>1)return NaN;if(t>.625)i=(e=1-t)*function(r){var n,e;return 0===r?.08333333333333809:((r<0?-r:r)<=1?(n=28.536655482610616+r*(r*(6.968710824104713+r*(.002967721961301243*r-.5634242780008963))-25.56901049652825),e=342.43986579130785+r*(r*(147.0656354026815+r*(1*r-21.947795316429207))-383.8770957603691)):(n=.002967721961301243+(r=1/r)*(r*(6.968710824104713+r*(28.536655482610616*r-25.56901049652825))-.5634242780008963),e=1+r*(r*(147.0656354026815+r*(342.43986579130785*r-383.8770957603691))-21.947795316429207)),n/e)}(e),e=M(e+e),o=Vn-e,o-=e=e*i-On,o+=Vn;else{if(t<1e-8)return r;o=(e=t*t)*function(r){var n,e;return 0===r?.16666666666666713:((r<0?-r:r)<=1?(n=r*(19.562619833175948+r*(r*(5.444622390564711+r*(.004253011369004428*r-.6019598008014124))-16.262479672107002))-8.198089802484825,e=r*(139.51056146574857+r*(r*(70.49610280856842+r*(1*r-14.740913729888538))-147.1791292232726))-49.18853881490881):(n=.004253011369004428+(r=1/r)*(r*(5.444622390564711+r*(r*(19.562619833175948+-8.198089802484825*r)-16.262479672107002))-.6019598008014124),e=1+r*(r*(70.49610280856842+r*(r*(139.51056146574857+-49.18853881490881*r)-147.1791292232726))-14.740913729888538)),n/e)}(e),o=t*o+t}return n?-o:o}var Sn=6123233995736766e-32;function Rn(r){var n;return Z(r)||r<-1||r>1?NaN:r>.5?2*jn(M(.5-.5*r)):(n=Vn-jn(r),n+=Sn,n+=Vn)}var In=57.29577951308232;function kn(r){return r*In}function Bn(r){return Pr(M(Pr(r)))}var Fn=new hr(1),Pn=new yr(Fn.buffer);function Ln(r){return Fn[0]=r,Pn[0]}var Un=new yr(1),Mn=new hr(Un.buffer);function Cn(r){return Un[0]=r,Mn[0]}var Yn=Pr(3.141592653589793);function qn(r){return 0===r?.16666586697101593:Pr(.16666586697101593+Pr(r*Pr(-.04274342209100723+Pr(-.008656363002955914*r))))}var Dn=3.1415925026,zn=1.5707962513,Wn=7.5497894159e-8,Gn=-4096,Zn=1.4901161193847656e-8,Jn=-.7066296339,Hn=Pr(zn+Wn);function $n(r){var n,e,t,i,o,u,a,f,s;return Nr(r)||(r=Pr(r))<-1||r>1?NaN:1===r?0:-1===r?Yn:(e=An(r))<.5?e<=Zn?Hn:(t=Pr(r*r),i=Pr(t*qn(t)),o=Pr(1+Pr(t*Jn)),u=Pr(i/o),Pr(zn-Pr(r-Pr(Wn-Pr(r*u))))):r<-.5?(t=Pr(.5*Pr(1+r)),i=Pr(t*qn(t)),o=Pr(1+Pr(t*Jn)),a=Bn(t),u=Pr(i/o),s=Pr(Pr(u*a)-Wn),Pr(Dn-Pr(2*Pr(a+s)))):(n=Cn(Ln(a=Bn(t=Pr(.5*Pr(1-r))))&Gn),f=Pr(Pr(t-Pr(n*n))/Pr(a+n)),i=Pr(t*qn(t)),o=Pr(1+Pr(t*Jn)),u=Pr(i/o),s=Pr(Pr(u*a)+f),Pr(2*Pr(n+s)))}var Xn="function"==typeof Float64Array;var Kn="function"==typeof Float64Array?Float64Array:null;var Qn,re="function"==typeof Float64Array?Float64Array:void 0;Qn=function(){var r,n,e;if("function"!=typeof Kn)return!1;try{n=new Kn([1,3.14,-3.14,NaN]),e=n,r=(Xn&&e instanceof Float64Array||"[object Float64Array]"===ar(e))&&1===n[0]&&3.14===n[1]&&-3.14===n[2]&&n[3]!=n[3]}catch(n){r=!1}return r}()?re:function(){throw new Error("not implemented")};var ne=Qn,ee="function"==typeof Uint8Array;var te="function"==typeof Uint8Array?Uint8Array:null;var ie,oe="function"==typeof Uint8Array?Uint8Array:void 0;ie=function(){var r,n,e;if("function"!=typeof te)return!1;try{n=new te(n=[1,3.14,-3.14,256,257]),e=n,r=(ee&&e instanceof Uint8Array||"[object Uint8Array]"===ar(e))&&1===n[0]&&3===n[1]&&253===n[2]&&0===n[3]&&1===n[4]}catch(n){r=!1}return r}()?oe:function(){throw new Error("not implemented")};var ue=ie,ae="function"==typeof Uint16Array;var fe="function"==typeof Uint16Array?Uint16Array:null;var se,ce="function"==typeof Uint16Array?Uint16Array:void 0;se=function(){var r,n,e;if("function"!=typeof fe)return!1;try{n=new fe(n=[1,3.14,-3.14,65536,65537]),e=n,r=(ae&&e instanceof Uint16Array||"[object Uint16Array]"===ar(e))&&1===n[0]&&3===n[1]&&65533===n[2]&&0===n[3]&&1===n[4]}catch(n){r=!1}return r}()?ce:function(){throw new Error("not implemented")};var le,he=se,pe={uint16:he,uint8:ue};(le=new pe.uint16(1))[0]=4660;var ve=52===new pe.uint8(le.buffer)[0],de=!0===ve?1:0,ge=new ne(1),me=new yr(ge.buffer);function ye(r){return ge[0]=r,me[de]}var we=!0===ve?1:0,be=new ne(1),Ee=new yr(be.buffer);function _e(r,n){return be[0]=r,Ee[we]=n>>>0,be[0]}var xe=1023;var Te=.6931471803691238,Ne=1.9082149292705877e-10,Ae=.41421356237309503,Ve=-.2928932188134525,Oe=1.862645149230957e-9,je=5551115123125783e-32,Se=9007199254740992,Re=.6666666666666666;function Ie(r){var n,e,t,i,o,u,a,f,s,c;if(r<-1||Z(r))return NaN;if(-1===r)return H;if(r===W)return r;if(0===r)return r;if(c=1,(t=r<0?-r:r)Ve&&(c=0,i=r,e=1)}return 0!==c&&(t>20)-xe)>0?1-(s-r):r-(s-1),o/=s):(c=((e=ye(s=r))>>20)-xe,o=0),(e&=1048575)<434334?s=_e(s,1072693248|e):(c+=1,s=_e(s,1071644672|e),e=1048576-e>>2),i=s-1),n=.5*i*i,0===e?0===i?c*Te+(o+=c*Ne):c*Te-((f=n*(1-Re*i))-(c*Ne+o)-i):(f=(a=(u=i/(2+i))*u)*function(r){return 0===r?.6666666666666735:.6666666666666735+r*(.3999999999940942+r*(.2857142874366239+r*(.22222198432149784+r*(.1818357216161805+r*(.15313837699209373+.14798198605116586*r)))))}(a),0===c?i-(n-u*(n+f)):c*Te-(n-(u*(n+f)+(c*Ne+o))-i))}var ke=.6931471805599453;var Be=.6931471803691238,Fe=1.9082149292705877e-10,Pe=0x40000000000000,Le=.3333333333333333,Ue=1048575,Me=2146435072,Ce=1048576,Ye=1072693248;function qe(r){var n,e,t,i,o,u,a,f,s,c,l,h;return 0===r?H:Z(r)||r<0?NaN:(o=0,(e=ye(r))=Me?r+r:(o+=(e>>20)-xe|0,o+=(f=(e&=Ue)+614244&1048576|0)>>20|0,a=(r=_e(r,e|f^Ye))-1,(Ue&2+e)<3?0===a?0===o?0:o*Be+o*Fe:(u=a*a*(.5-Le*a),0===o?a-u:o*Be-(u-o*Fe-a)):(f=e-398458|0,s=440401-e|0,i=(l=(h=(c=a/(2+a))*c)*h)*function(r){return 0===r?.3999999999940942:.3999999999940942+r*(.22222198432149784+.15313837699209373*r)}(l),t=h*function(r){return 0===r?.6666666666666735:.6666666666666735+r*(.2857142874366239+r*(.1818357216161805+.14798198605116586*r))}(l),u=t+i,(f|=s)>0?(n=.5*a*a,0===o?a-(n-c*(n+u)):o*Be-(n-(c*(n+u)+o*Fe)-a)):0===o?a-c*(a-u):o*Be-(c*(a-u)-o*Fe-a))))}var De=1<<28;function ze(r){var n;return Z(r)||r<1?NaN:1===r?0:r>=De?qe(r)+ke:r>2?qe(2*r-1/(r+M(r*r-1))):Ie((n=r-1)+M(2*n+n*n))}var We=1.5707963267948966;var Ge=6123233995736766e-32,Ze=2.414213562373095;function Je(r){var n,e,t,i;return Z(r)||0===r?r:r===W?We:r===H?-We:(r<0&&(e=!0,r=-r),n=0,r>Ze?(t=We,n=1,r=-1/r):r<=.66?t=0:(t=Vn,n=2,r=(r-1)/(r+1)),i=(i=r*r)*function(r){return 0===r?-64.85021904942025:r*(r*(r*(-.8750608600031904*r-16.157537187333652)-75.00855792314705)-122.88666844901361)-64.85021904942025}(i)/function(r){return 0===r?194.5506571482614:194.5506571482614+r*(485.3903996359137+r*(432.88106049129027+r*(165.02700983169885+r*(24.858464901423062+1*r))))}(i),i=r*i+r,2===n?i+=.5*Ge:1===n&&(i+=Ge),t+=i,e?-t:t)}function He(r){return Je(1/r)}var $e=Pr(1.5707963267948966),Xe=Pr(.7853981633974483);function Ke(r){var n,e,t;return Nr(r)||0===r?r:((r=Pr(r))<0?(n=-1,r=-r):n=1,r>2.414213562373095?(e=$e,r=-Pr(1/r)):r>.414213562373095?(e=Xe,r=Pr(Pr(r-1)/Pr(r+1))):e=0,t=Pr(r*r),e=Pr(e+Pr(Pr(function(r){return 0===r?-.3333294987678528:Pr(-.3333294987678528+Pr(r*Pr(.19977711141109467+Pr(r*Pr(-.13877685368061066+Pr(.08053744584321976*r))))))}(t))*Pr(t*r)+r)),n<0&&(e=-e),e)}var Qe=1/(1<<28);function rt(r){var n,e;return Z(r)||r<-1||r>1?NaN:1===r?W:-1===r?H:(r<0&&(n=!0,r=-r),r0?(e=1,t=r):(e=-1,t=-r),t>1?NaN:t<1e-4?r:(t>.5?(t=Bn(i=Pr(.5*Pr(1-t))),n=1):(i=Pr(t*t),n=0),i=Pr(Pr(Pr(function(r){return 0===r?.16666752099990845:Pr(.16666752099990845+Pr(r*Pr(.07495300471782684+Pr(r*Pr(.04547002539038658+Pr(r*Pr(.024181311950087547+Pr(.04216320067644119*r))))))))}(i)*i)*t)+t),0!==n&&(i=Pr(i+i),i=Pr($e-i)),e<0&&(i=-i),i))}function ft(r){return at(Pr(1/Pr(r)))}var st=1/(1<<28),ct=1<<28;function lt(r){var n,e,t;return Z(r)||xr(r)?r:(r<0&&(r=-r,n=!0),t=rct?qe(r)+ke:r>2?qe(2*r+1/(M(r*r+1)+r)):Ie(r+(e=r*r)/(1+M(1+e))),n?-t:t)}function ht(r){return 2*Rn(M(r))}function pt(r){return 2*jn(M(r))}function vt(r){return Rn(1/r)}function dt(r){return $n(Pr(1/Pr(r)))}var gt,mt,yt=2147483648,wt=2147483647;!0===ve?(gt=1,mt=0):(gt=0,mt=1);var bt,Et,_t={HIGH:gt,LOW:mt},xt=new ne(1),Tt=new yr(xt.buffer),Nt=_t.HIGH,At=_t.LOW;function Vt(r,n,e,t){return xt[0]=r,n[t]=Tt[Nt],n[t+e]=Tt[At],n}function Ot(r){return Vt(r,[0,0],1,0)}Lr(Ot,"assign",Vt),!0===ve?(bt=1,Et=0):(bt=0,Et=1);var jt={HIGH:bt,LOW:Et},St=new ne(1),Rt=new yr(St.buffer),It=jt.HIGH,kt=jt.LOW;function Bt(r,n){return Rt[It]=r,Rt[kt]=n,St[0]}var Ft=[0,0];function Pt(r,n){var e,t;return Ot.assign(r,Ft,1,0),e=Ft[0],e&=wt,t=ye(n),Bt(e|=t&=yt,Ft[1])}var Lt=3.141592653589793;function Ut(r,n){var e;return Z(n)||Z(r)?NaN:xr(n)?n===W?xr(r)?Pt(Lt/4,r):Pt(0,r):xr(r)?Pt(3*Lt/4,r):Pt(Lt,r):xr(r)?Pt(Lt/2,r):0===r?n>=0&&!function(r){return!!(ye(r)>>>31)}(n)?Pt(0,r):Pt(Lt,r):0===n?Pt(Lt/2,r):(e=Je(r/n),n<0?e<=0?e+Lt:e-Lt:e)}function Mt(r){return Rn(1+r)}function Ct(r){return Rn(1-r)}var Yt=[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],qt=258;function Dt(r){return Z(r)||!jr(r)?NaN:Sr(r)?0:r>qt?r/2&1?W:H:Yt[r/2]}var zt=2146435072,Wt=1048575,Gt=!0===ve?0:1,Zt=new ne(1),Jt=new yr(Zt.buffer);var Ht=1023,$t=-1023,Xt=-1074;function Kt(r){return r===W||r===H}function Qt(r){return r!=r}function ri(r){return Math.abs(r)}var ni=4503599627370496;function ei(r,n,e,t){return Qt(r)||Kt(r)?(n[t]=r,n[t+e]=0,n):0!==r&&ri(r)>>20)-xe|0}Lr((function(r){return ei(r,[0,0],1,0)}),"assign",ei);var ii=2220446049250313e-31,oi=2148532223,ui=[0,0],ai=[0,0];function fi(r,n){var e,t;return 0===n||0===r||Z(r)||xr(r)?r:(ei(r,ui,1,0),r=ui[0],n+=ui[1],(n+=ti(r))Ht?r<0?H:W:(n<=$t?(n+=52,t=ii):t=1,Ot.assign(r,ai,1,0),e=ai[0],e&=oi,t*Bt(e|=n+xe<<20,ai[1])))}function si(r){return function(r,n){var e,t;for(e=[],t=0;t0;p++)c=pi*m|0,mi[p]=m-hi*c|0,m=t[g-1]+c,g-=1;if(m=fi(m,i),m-=8*C(.125*m),m-=d=0|m,l=0,i>0?(d+=p=mi[e-1]>>24-i,mi[e-1]-=p<<24-i,l=mi[e-1]>>23-i):0===i?l=mi[e-1]>>23:m>=.5&&(l=2),l>0){for(d+=1,s=0,p=0;p0)switch(i){case 1:mi[e-1]&=8388607;break;case 2:mi[e-1]&=4194303}2===l&&(m=1-m,0!==s&&(m-=fi(1,i)))}if(0===m){for(g=0,p=e-1;p>=o;p--)g|=mi[p];if(0===g){for(v=1;0===mi[o-v];v++);for(p=e+1;p<=e+v;p++){for(f[a+p]=ci[u+p],c=0,g=0;g<=a;g++)c+=r[g]*f[a+(p-g)];t[p]=c}return yi(r,n,e+=v,t,i,o,u,a,f)}for(e-=1,i-=24;0===mi[e];)e-=1,i-=24}else(m=fi(m,-i))>=hi?(c=pi*m|0,mi[e]=m-hi*c|0,i+=24,mi[e+=1]=c):mi[e]=0|m;for(c=fi(1,i),p=e;p>=0;p--)t[p]=c*mi[p],c*=pi;for(p=e;p>=0;p--){for(c=0,v=0;v<=h&&v<=e-p;v++)c+=li[v]*t[p+v];gi[e-p]=c}for(c=0,p=e;p>=0;p--)c+=gi[p];for(n[0]=0===l?c:-c,c=gi[0]-c,p=1;p<=e;p++)c+=gi[p];return n[1]=0===l?c:-c,7&d}function wi(r,n,e,t){var i,o,u,a,f,s,c;for(4,(o=(e-3)/24|0)<0&&(o=0),a=e-24*(o+1),s=o-(u=t-1),c=u+4,f=0;f<=c;f++)vi[f]=s<0?0:ci[s],s+=1;for(f=0;f<=4;f++){for(i=0,s=0;s<=u;s++)i+=r[s]*vi[u+(f-s)];di[f]=i}return 4,yi(r,n,4,di,a,4,o,u,vi)}var bi=Math.round,Ei=.6366197723675814,_i=1.5707963267341256,xi=6077100506506192e-26,Ti=6077100506303966e-26,Ni=20222662487959506e-37,Ai=20222662487111665e-37,Vi=84784276603689e-45,Oi=2047;function ji(r,n,e){var t,i,o,u,a;return o=r-(t=bi(r*Ei))*_i,u=t*xi,a=n>>20|0,e[0]=o-u,a-(ye(e[0])>>20&Oi)>16&&(u=t*Ni-((i=o)-(o=i-(u=t*Ti))-u),e[0]=o-u,a-(ye(e[0])>>20&Oi)>49&&(u=t*Vi-((i=o)-(o=i-(u=t*Ai))-u),e[0]=o-u)),e[1]=o-e[0]-u,t}var Si=0,Ri=16777216,Ii=1.5707963267341256,ki=6077100506506192e-26,Bi=2*ki,Fi=3*ki,Pi=4*ki,Li=598523,Ui=1072243195,Mi=1073928572,Ci=1074752122,Yi=1074977148,qi=1075183036,Di=1075388923,zi=1075594811,Wi=1094263291,Gi=[0,0,0],Zi=[0,0];function Ji(r,n){var e,t,i,o,u,a,f;if((i=ye(r)&wt|0)<=Ui)return n[0]=r,n[1]=0,0;if(i<=Ci)return(i&Wt)===Li?ji(r,i,n):i<=Mi?r>0?(f=r-Ii,n[0]=f-ki,n[1]=f-n[0]-ki,1):(f=r+Ii,n[0]=f+ki,n[1]=f-n[0]+ki,-1):r>0?(f=r-2*Ii,n[0]=f-Bi,n[1]=f-n[0]-Bi,2):(f=r+2*Ii,n[0]=f+Bi,n[1]=f-n[0]+Bi,-2);if(i<=zi)return i<=qi?i===Yi?ji(r,i,n):r>0?(f=r-3*Ii,n[0]=f-Fi,n[1]=f-n[0]-Fi,3):(f=r+3*Ii,n[0]=f+Fi,n[1]=f-n[0]+Fi,-3):i===Di?ji(r,i,n):r>0?(f=r-4*Ii,n[0]=f-Pi,n[1]=f-n[0]-Pi,4):(f=r+4*Ii,n[0]=f+Pi,n[1]=f-n[0]+Pi,-4);if(i=zt)return n[0]=NaN,n[1]=NaN,0;for(e=function(r){return Zt[0]=r,Jt[Gt]}(r),f=Bt(i-((t=(i>>20)-1046)<<20|0),e),u=0;u<2;u++)Gi[u]=0|f,f=(f-Gi[u])*Ri;for(Gi[2]=f,o=3;Gi[o-1]===Si;)o-=1;return a=wi(Gi,Zi,t,o),r<0?(n[0]=-Zi[0],n[1]=-Zi[1],-a):(n[0]=Zi[0],n[1]=Zi[1],a)}var Hi=-.16666666666666632,$i=.00833333333332249,Xi=-.0001984126982985795,Ki=27557313707070068e-22,Qi=-2.5050760253406863e-8,ro=1.58969099521155e-10,no=.0416666666666666,eo=-.001388888888887411,to=2480158728947673e-20,io=-2.7557314351390663e-7,oo=2.087572321298175e-9,uo=-11359647557788195e-27;function ao(r,n,e,t,i){var o,u,a,f,s;return u=$i+(s=r*r)*(Xi+s*Ki)+s*(f=s*s)*(Qi+s*ro),a=s*r,e[i]=0===n?r+a*(Hi+s*u):r-(s*(.5*n-a*u)-n-a*Hi),u=s*(no+s*(eo+s*to)),u+=f*f*(io+s*(oo+s*uo)),f=1-(o=.5*s),e[i+t]=f+(1-f-o+(s*u-r*n)),e}var fo=1072243195,so=1044381696,co=[0,0];function lo(r,n,e,t){var i,o,u;if(o=ye(r),(o&=wt)<=fo)return o=zt)return n[t]=NaN,n[t+e]=NaN,n;switch(u=Ji(r,co),ao(co[0],co[1],n,e,t),3&u){case 1:return i=n[t+e],n[t+e]=-n[t],n[t]=i,n;case 2:return n[t]*=-1,n[t+e]*=-1,n;case 3:return i=-n[t+e],n[t+e]=n[t],n[t]=i,n;default:return n}}function ho(r){return lo(r,[0,0],1,0)}Lr(ho,"assign",lo);var po=.5641895835477563,vo=2.404825557695773,go=5.520078110286311,mo=616,yo=-.0014244423042272315,wo=1413,bo=.0005468602863106496,Eo=[0,0];function _o(r){var n,e,t,i,o,u;return r<0&&(r=-r),r===W?0:0===r?1:r<=4?(i=function(r){var n,e;return 0===r?-.17291506903064494:((r<0?-r:r)<=1?(n=r*(27282507878.60594+r*(r*(6630299.79048338+r*(r*(103.44222815443189+-.12117036164593528*r)-36629.81465510709))-621407004.2354012))-412986685009.9087,e=2388378799633.229+r*(26328198300.85965+r*(139850973.72263435+r*(456126.9622421994+r*(936.1402239233771+r*(1+0*r)))))):(n=(r=1/r)*(103.44222815443189+r*(r*(6630299.79048338+r*(r*(27282507878.60594+-412986685009.9087*r)-621407004.2354012))-36629.81465510709))-.12117036164593528,e=0+r*(1+r*(936.1402239233771+r*(456126.9622421994+r*(139850973.72263435+r*(26328198300.85965+2388378799633.229*r)))))),n/e)}(o=r*r),(u=(r+vo)*(r-mo/256-yo))*i):r<=8?(i=function(r){var n,e;return 0===r?.005119512965174424:((r<0?-r:r)<=1?(n=r*(r*(r*(10341.910641583727+r*(11725.046279757104+r*(4417.670702532509+r*(743.2119668062425+48.5917033559165*r))))-7287.970246446462)-12254.07816137899)-1831.9397969392085,e=r*(245991.0226258631+r*(r*(18680.99000835919+r*(r*(333.07310774649073+r*(1*r-25.258076240801554))-2945.876654550934))-84055.06259116957))-357834.78026152303):(n=48.5917033559165+(r=1/r)*(743.2119668062425+r*(4417.670702532509+r*(11725.046279757104+r*(10341.910641583727+r*(r*(-1831.9397969392085*r-12254.07816137899)-7287.970246446462))))),e=1+r*(r*(333.07310774649073+r*(r*(18680.99000835919+r*(r*(245991.0226258631+-357834.78026152303*r)-84055.06259116957))-2945.876654550934))-25.258076240801554)),n/e)}(o=1-r*r/64),(u=(r+go)*(r-wo/256-bo))*i):(n=function(r){var n,e;return 0===r?1:((r<0?-r:r)<=1?(n=22779.090197304686+r*(41345.38663958076+r*(21170.523380864943+r*(3480.648644324927+r*(153.76201909008356+.8896154842421046*r)))),e=22779.090197304686+r*(41370.41249551042+r*(21215.350561880117+r*(3502.8735138235606+r*(157.11159858080893+1*r))))):(n=.8896154842421046+(r=1/r)*(153.76201909008356+r*(3480.648644324927+r*(21170.523380864943+r*(41345.38663958076+22779.090197304686*r)))),e=1+r*(157.11159858080893+r*(3502.8735138235606+r*(21215.350561880117+r*(41370.41249551042+22779.090197304686*r))))),n/e)}(t=(o=8/r)*o),e=function(r){var n,e;return 0===r?-.015625:((r<0?-r:r)<=1?(n=r*(r*(r*(r*(-.008803330304868075*r-1.244102674583564)-22.300261666214197)-111.83429920482737)-185.91953644342993)-89.22660020080009,e=5710.502412851206+r*(11951.131543434614+r*(7264.278016921102+r*(1488.7231232283757+r*(90.59376959499312+1*r))))):(n=(r=1/r)*(r*(r*(r*(-89.22660020080009*r-185.91953644342993)-111.83429920482737)-22.300261666214197)-1.244102674583564)-.008803330304868075,e=1+r*(90.59376959499312+r*(1488.7231232283757+r*(7264.278016921102+r*(11951.131543434614+5710.502412851206*r))))),n/e)}(t),u=po/M(r),lo(r,Eo,1,0),u*(n*(Eo[1]+Eo[0])-o*e*(Eo[0]-Eo[1])))}var xo=1.772453850905516;var To=3.8317059702075125,No=7.015586669815619,Ao=981,Vo=-.0003252797924876844,Oo=1796,jo=-38330184381246464e-21,So=[0,0];function Ro(r){var n,e,t,i,o,u,a,f;return f=rn(r),0===r||f===W?0:(f<=4?(o=function(r){var n,e;return 0===r?-.03405537391318949:((r<0?-r:r)<=1?(n=r*(6678104126.14924+r*(r*(980629.0409895825+r*(r*(10.650724020080236+-.010767857011487301*r)-4461.579298277507))-115486967.64841276))-142585098013.66644,e=4186860446082.0176+r*(42091902282.58013+r*(202283751.40097034+r*(591176.1449417479+r*(1074.227223951738+r*(1+0*r)))))):(n=(r=1/r)*(10.650724020080236+r*(r*(980629.0409895825+r*(r*(6678104126.14924+-142585098013.66644*r)-115486967.64841276))-4461.579298277507))-.010767857011487301,e=0+r*(1+r*(1074.227223951738+r*(591176.1449417479+r*(202283751.40097034+r*(42091902282.58013+4186860446082.0176*r)))))),n/e)}(u=r*r),n=(a=f*(f+To)*(f-Ao/256-Vo))*o):f<=8?(o=function(r){var n,e;return 0===r?-.010158790774176108:((r<0?-r:r)<=1?(n=r*(1660853173129901.8+r*(r*(355806656709.1062+r*(r*(5079326.614801118+r*(4.6179191852758255*r-7502.334222078161))-1811393126.9860668))-36658018905416.664))-0x3e45840c066730,e=0x17f1d1995ae4fb00+r*(0x3cda8dbce6f4c4+r*(84899346165481.42+r*(276227772862.44086+r*(648725028.9959639+r*(1126712.5065029138+r*(1388.6978985861358+1*r))))))):(n=4.6179191852758255+(r=1/r)*(r*(5079326.614801118+r*(r*(355806656709.1062+r*(r*(1660853173129901.8+-0x3e45840c066730*r)-36658018905416.664))-1811393126.9860668))-7502.334222078161),e=1+r*(1388.6978985861358+r*(1126712.5065029138+r*(648725028.9959639+r*(276227772862.44086+r*(84899346165481.42+r*(0x3cda8dbce6f4c4+0x17f1d1995ae4fb00*r))))))),n/e)}(u=r*r),n=(a=f*(f+No)*(f-Oo/256-jo))*o):(e=function(r){var n,e;return 0===r?1:((r<0?-r:r)<=1?(n=r*(r*(r*(r*(r*(0*r-1611.6166443246102)-109824.05543459347)-1523529.3511811374)-6603373.248364939)-9942246.505077641)-4435757.816794128,e=r*(r*(r*(r*(r*(1*r-1455.0094401904962)-107263.8599110382)-1511809.5066341609)-6585339.4797230875)-9934124.389934586)-4435757.816794128):(n=0+(r=1/r)*(r*(r*(r*(r*(-4435757.816794128*r-9942246.505077641)-6603373.248364939)-1523529.3511811374)-109824.05543459347)-1611.6166443246102),e=1+r*(r*(r*(r*(r*(-4435757.816794128*r-9934124.389934586)-6585339.4797230875)-1511809.5066341609)-107263.8599110382)-1455.0094401904962)),n/e)}(i=(u=8/f)*u),t=function(r){var n,e;return 0===r?.046875:((r<0?-r:r)<=1?(n=33220.913409857225+r*(85145.1606753357+r*(66178.83658127084+r*(18494.262873223866+r*(1706.375429020768+r*(35.26513384663603+0*r))))),e=708712.8194102874+r*(1819458.0422439973+r*(1419460.669603721+r*(400294.43582266977+r*(37890.2297457722+r*(863.8367769604992+1*r)))))):(n=0+(r=1/r)*(35.26513384663603+r*(1706.375429020768+r*(18494.262873223866+r*(66178.83658127084+r*(85145.1606753357+33220.913409857225*r))))),e=1+r*(863.8367769604992+r*(37890.2297457722+r*(400294.43582266977+r*(1419460.669603721+r*(1819458.0422439973+708712.8194102874*r)))))),n/e)}(i),a=1/(M(f)*xo),lo(f,So,1,0),n=a*(e*(So[0]-So[1])+u*t*(So[0]+So[1]))),r<0&&(n*=-1),n)}var Io=1/xo,ko=2/Lt,Bo=.8935769662791675,Fo=3.957678419314858,Po=7.086051060301773,Lo=228,Uo=.0029519662791675214,Mo=1013,Co=.0006471693148578684,Yo=1814,qo=.00011356030177269763,Do=[0,0];function zo(r){var n,e,t,i,o,u,a;return r<0?NaN:0===r?H:r===W?0:r<=3?(o=r*r,u=qe(r/Bo)*_o(r)*ko,i=function(r){var n,e;return 0===r?.18214429522164177:((r<0?-r:r)<=1?(n=107235387820.03177+r*(r*(204222743.5737662+r*(r*(10102.532948020907+-18.402381979244993*r)-2128754.84744018))-8371625545.12605),e=588738657389.9703+r*(8161718777.729036+r*(55662956.624278255+r*(238893.93209447255+r*(664.7598668924019+1*r))))):(n=(r=1/r)*(10102.532948020907+r*(r*(204222743.5737662+r*(107235387820.03177*r-8371625545.12605))-2128754.84744018))-18.402381979244993,e=1+r*(664.7598668924019+r*(238893.93209447255+r*(55662956.624278255+r*(8161718777.729036+588738657389.9703*r))))),n/e)}(o),u+(a=(r+Bo)*(r-Lo/256-Uo))*i):r<=5.5?(o=r*r,u=qe(r/Fo)*_o(r)*ko,i=function(r){var n,e;return 0===r?-.051200622130023854:((r<0?-r:r)<=1?(n=r*(r*(43600098638.60306+r*(r*(4690528.861167863+r*(17.427031242901595*r-14566.865832663636))-695904393.9461962))-551074352067.2264)-22213976967566.19,e=433861465807072.6+r*(5426682441941.234+r*(34015103849.97124+r*(139602027.7098683+r*(406699.82352539554+r*(830.3085761207029+1*r)))))):(n=17.427031242901595+(r=1/r)*(r*(4690528.861167863+r*(r*(43600098638.60306+r*(-22213976967566.19*r-551074352067.2264))-695904393.9461962))-14566.865832663636),e=1+r*(830.3085761207029+r*(406699.82352539554+r*(139602027.7098683+r*(34015103849.97124+r*(5426682441941.234+433861465807072.6*r)))))),n/e)}(o),u+(a=(r+Fo)*(r-Mo/256-Co))*i):r<=8?(o=r*r,u=qe(r/Po)*_o(r)*ko,i=function(r){var n,e;return 0===r?-.023356489432789604:((r<0?-r:r)<=1?(n=r*(670166418691732.4+r*(r*(r*(2195882717.0518103+r*(r*(21363.5341693139+-17.439661319197498*r)-10085539.923498211))-193630512667.72083)-128299123640.88687))-8072872690515021,e=0x4cbf33e862b0ac0+r*(0xdf3ce698dfcbf+r*(22598377924042.9+r*(86926121104.20982+r*(247272194.75672302+r*(539247.3920976806+r*(879.0336216812844+1*r))))))):(n=(r=1/r)*(21363.5341693139+r*(r*(2195882717.0518103+r*(r*(r*(670166418691732.4+-8072872690515021*r)-128299123640.88687)-193630512667.72083))-10085539.923498211))-17.439661319197498,e=1+r*(879.0336216812844+r*(539247.3920976806+r*(247272194.75672302+r*(86926121104.20982+r*(22598377924042.9+r*(0xdf3ce698dfcbf+0x4cbf33e862b0ac0*r))))))),n/e)}(o),u+(a=(r+Po)*(r-Yo/256-qo))*i):(n=function(r){var n,e;return 0===r?1:((r<0?-r:r)<=1?(n=22779.090197304686+r*(41345.38663958076+r*(21170.523380864943+r*(3480.648644324927+r*(153.76201909008356+.8896154842421046*r)))),e=22779.090197304686+r*(41370.41249551042+r*(21215.350561880117+r*(3502.8735138235606+r*(157.11159858080893+1*r))))):(n=.8896154842421046+(r=1/r)*(153.76201909008356+r*(3480.648644324927+r*(21170.523380864943+r*(41345.38663958076+22779.090197304686*r)))),e=1+r*(157.11159858080893+r*(3502.8735138235606+r*(21215.350561880117+r*(41370.41249551042+22779.090197304686*r))))),n/e)}(t=(o=8/r)*o),e=function(r){var n,e;return 0===r?-.015625:((r<0?-r:r)<=1?(n=r*(r*(r*(r*(-.008803330304868075*r-1.244102674583564)-22.300261666214197)-111.83429920482737)-185.91953644342993)-89.22660020080009,e=5710.502412851206+r*(11951.131543434614+r*(7264.278016921102+r*(1488.7231232283757+r*(90.59376959499312+1*r))))):(n=(r=1/r)*(r*(r*(r*(-89.22660020080009*r-185.91953644342993)-111.83429920482737)-22.300261666214197)-1.244102674583564)-.008803330304868075,e=1+r*(90.59376959499312+r*(1488.7231232283757+r*(7264.278016921102+r*(11951.131543434614+5710.502412851206*r))))),n/e)}(t),a=Io/M(r),lo(r,Do,1,0),a*(n*(Do[0]-Do[1])+o*e*(Do[1]+Do[0])))}var Wo=1/xo,Go=2/Lt,Zo=2.197141326031017,Jo=5.429681040794135,Ho=562,$o=.001828826031017035,Xo=1390,Ko=-6459205864867228e-21,Qo=[0,0];function ru(r){var n,e,t,i,o,u,a;return r<0?NaN:0===r?H:r===W?0:r<=4?(o=r*r,u=qe(r/Zo)*Ro(r)*Go,i=function(r){var n,e;return 0===r?.13187550549740895:((r<0?-r:r)<=1?(n=40535726612579.55+r*(5470861171652.543+r*(r*(7214454821.450256+r*(r*(221579.5322228026+-317.1442466004613*r)-59157479.9974084))-375959744978.196)),e=307378739210792.9+r*(4127228620040.646+r*(27800352738.690586+r*(122504351.22182964+r*(381364.70753052575+r*(820.7990816839387+1*r)))))):(n=(r=1/r)*(221579.5322228026+r*(r*(7214454821.450256+r*(r*(5470861171652.543+40535726612579.55*r)-375959744978.196))-59157479.9974084))-317.1442466004613,e=1+r*(820.7990816839387+r*(381364.70753052575+r*(122504351.22182964+r*(27800352738.690586+r*(4127228620040.646+307378739210792.9*r)))))),n/e)}(o),u+(a=(r+Zo)*(r-Ho/256-$o)/r)*i):r<=8?(o=r*r,u=qe(r/Jo)*Ro(r)*Go,i=function(r){var n,e;return 0===r?.021593919914419626:((r<0?-r:r)<=1?(n=0x9fcaed579ed86000+r*(r*(r*(4068627528980474.5+r*(r*(374536739624.3849+r*(r*(1915380.6858264203+-1233.7180442012952*r)-1195796191.2070618))-59530713129741.984))-0x53fb01dd8596c0)-0x4ed64a1a7552bc00),e=5332184431331618e5+r*(0x4f0f2b7ff905d800+r*(0x6d8e405cd717f0+r*(111870100658569.7+r*(302217668529.60406+r*(635503180.8708892+r*(1045374.8201934079+r*(1285.516484932161+1*r)))))))):(n=(r=1/r)*(1915380.6858264203+r*(r*(374536739624.3849+r*(r*(4068627528980474.5+r*(r*(0x9fcaed579ed86000*r-0x4ed64a1a7552bc00)-0x53fb01dd8596c0))-59530713129741.984))-1195796191.2070618))-1233.7180442012952,e=1+r*(1285.516484932161+r*(1045374.8201934079+r*(635503180.8708892+r*(302217668529.60406+r*(111870100658569.7+r*(0x6d8e405cd717f0+r*(0x4f0f2b7ff905d800+5332184431331618e5*r)))))))),n/e)}(o),u+(a=(r+Jo)*(r-Xo/256-Ko)/r)*i):(n=function(r){var n,e;return 0===r?1:((r<0?-r:r)<=1?(n=r*(r*(r*(r*(r*(0*r-1611.6166443246102)-109824.05543459347)-1523529.3511811374)-6603373.248364939)-9942246.505077641)-4435757.816794128,e=r*(r*(r*(r*(r*(1*r-1455.0094401904962)-107263.8599110382)-1511809.5066341609)-6585339.4797230875)-9934124.389934586)-4435757.816794128):(n=0+(r=1/r)*(r*(r*(r*(r*(-4435757.816794128*r-9942246.505077641)-6603373.248364939)-1523529.3511811374)-109824.05543459347)-1611.6166443246102),e=1+r*(r*(r*(r*(r*(-4435757.816794128*r-9934124.389934586)-6585339.4797230875)-1511809.5066341609)-107263.8599110382)-1455.0094401904962)),n/e)}(t=(o=8/r)*o),e=function(r){var n,e;return 0===r?.046875:((r<0?-r:r)<=1?(n=33220.913409857225+r*(85145.1606753357+r*(66178.83658127084+r*(18494.262873223866+r*(1706.375429020768+r*(35.26513384663603+0*r))))),e=708712.8194102874+r*(1819458.0422439973+r*(1419460.669603721+r*(400294.43582266977+r*(37890.2297457722+r*(863.8367769604992+1*r)))))):(n=0+(r=1/r)*(35.26513384663603+r*(1706.375429020768+r*(18494.262873223866+r*(66178.83658127084+r*(85145.1606753357+33220.913409857225*r))))),e=1+r*(863.8367769604992+r*(37890.2297457722+r*(400294.43582266977+r*(1419460.669603721+r*(1819458.0422439973+708712.8194102874*r)))))),n/e)}(t),a=Wo/M(r),lo(r,Qo,1,0),a*(o*e*(Qo[0]-Qo[1])-n*(Qo[0]+Qo[1])))}var nu=Math.ceil;function eu(r){return r<0?nu(r):C(r)}var tu=.6931471803691238,iu=1.9082149292705877e-10,ou=1.4426950408889634,uu=709.782712893384,au=-745.1332191019411,fu=1/(1<<28),su=-fu;function cu(r){var n;return Z(r)||r===W?r:r===H?0:r>uu?W:rsu&&r>>0,hu[0]}function du(r){return 0|r}var gu=1072693247,mu=1e300,yu=1e-300;var wu=1048575,bu=1048576,Eu=1072693248,_u=536870912,xu=524288,Tu=20,Nu=9007199254740992,Au=.9617966939259756,Vu=.9617967009544373,Ou=-7.028461650952758e-9,ju=[1,1.5],Su=[0,.5849624872207642],Ru=[0,1.350039202129749e-8];var Iu=1.4426950408889634,ku=1.4426950216293335,Bu=1.9259629911266175e-8;var Fu=1048576,Pu=1071644672,Lu=20,Uu=.6931471824645996,Mu=-1.904654299957768e-9;var Cu=1072693247,Yu=1105199104,qu=1139802112,Du=1083179008,zu=1072693248,Wu=1083231232,Gu=3230714880,Zu=31,Ju=1e300,Hu=1e-300,$u=8008566259537294e-32,Xu=[0,0],Ku=[0,0];function Qu(r,n){var e,t,i,o,u,a,f,s,c,l,h,p,v,d;if(Z(r)||Z(n))return NaN;if(Ot.assign(n,Xu,1,0),u=Xu[0],0===Xu[1]){if(0===n)return 1;if(1===n)return r;if(-1===n)return 1/r;if(.5===n)return M(r);if(-.5===n)return 1/M(r);if(2===n)return r*r;if(3===n)return r*r*r;if(4===n)return(r*=r)*r;if(xr(n))return function(r,n){return-1===r?(r-r)/(r-r):1===r?1:rn(r)<1==(n===W)?0:W}(r,n)}if(Ot.assign(r,Xu,1,0),o=Xu[0],0===Xu[1]){if(0===o)return function(r,n){return n===H?W:n===W?0:n>0?Sr(n)?r:0:Sr(n)?Pt(W,r):W}(r,n);if(1===r)return 1;if(-1===r&&Sr(n))return-1;if(xr(r))return r===H?Qu(-0,-n):n<0?0:W}if(r<0&&!1===z(n))return(r-r)/(r-r);if(i=rn(r),e=o&wt|0,t=u&wt|0,f=u>>>Zu|0,a=(a=o>>>Zu|0)&&Sr(n)?-1:1,t>Yu){if(t>qu)return function(r,n){return(ye(r)&wt)<=gu?n<0?mu*mu:yu*yu:n>0?mu*mu:yu*yu}(r,n);if(ezu)return 0===f?a*Ju*Ju:a*Hu*Hu;h=function(r,n){var e,t,i,o,u,a,f;return o=(i=n-1)*i*(0===(f=i)?.5:.5+f*(.25*f-.3333333333333333)),e=(a=i*Bu-o*Iu)-((t=vu(t=(u=ku*i)+a,0))-u),r[0]=t,r[1]=e,r}(Ku,i)}else h=function(r,n,e){var t,i,o,u,a,f,s,c,l,h,p,v,d,g,m,y,w,b,E,_,x;return b=0,e>Tu)-xe|0,e=(E=e&wu|0)|Eu|0,E<=235662?_=0:E<767610?_=1:(_=0,b+=1,e-=bu),u=vu(i=(y=(n=_e(n,e))-(s=ju[_]))*(w=1/(n+s)),0),t=(e>>1|_u)+xu,f=_e(0,t+=_<<18),m=(o=i*i)*o*(0===(x=o)?.5999999999999946:.5999999999999946+x*(.4285714285785502+x*(.33333332981837743+x*(.272728123808534+x*(.23066074577556175+.20697501780033842*x))))),f=vu(f=3+(o=u*u)+(m+=(a=w*(y-u*f-u*(n-(f-s))))*(u+i)),0),l=vu(l=(y=u*f)+(w=a*f+(m-(f-3-o))*i),0),h=Vu*l,d=(p=Ou*l+(w-(l-y))*Au+Ru[_])-((v=vu(v=h+p+(c=Su[_])+(g=b),0))-g-c-h),r[0]=v,r[1]=d,r}(Ku,i,e);if(p=(l=(n-(s=vu(n,0)))*h[0]+n*h[1])+(c=s*h[0]),Ot.assign(p,Xu,1,0),v=du(Xu[0]),d=du(Xu[1]),v>=Du){if(0!=(v-Du|d))return a*Ju*Ju;if(l+$u>p-c)return a*Ju*Ju}else if((v&wt)>=Wu){if(0!=(v-Gu|d))return a*Hu*Hu;if(l<=p-c)return a*Hu*Hu}return p=function(r,n,e){var t,i,o,u,a,f,s,c,l,h;return l=((c=r&wt|0)>>Lu)-xe|0,s=0,c>Pu&&(i=_e(0,((s=r+(Fu>>l+1)>>>0)&~(Wt>>(l=((s&wt)>>Lu)-xe|0)))>>>0),s=(s&Wt|Fu)>>Lu-l>>>0,r<0&&(s=-s),n-=i),r=du(r=ye(f=1-((f=(o=(i=vu(i=e+n,0))*Uu)+(u=(e-(i-n))*ke+i*Mu))*(t=f-(i=f*f)*(0===(h=i)?.16666666666666602:.16666666666666602+h*(h*(6613756321437934e-20+h*(4.1381367970572385e-8*h-16533902205465252e-22))-.0027777777777015593)))/(t-2)-((a=u-(f-o))+f*a)-f))),(r+=s<>>0)>>Lu<=0?fi(f,s):_e(f,r)}(v,c,l),a*p}var ra=2.718281828459045;function na(r){var n,e;return 0===r?1/0:((r<0?-r:r)<=1?(n=709811.662581658+r*(679979.8474157227+r*(293136.7857211597+r*(74887.54032914672+r*(12555.290582413863+r*(1443.4299244417066+r*(115.24194596137347+r*(6.309239205732627+r*(.22668404630224365+r*(.004826466289237662+4624429436045379e-20*r))))))))),e=0+r*(362880+r*(1026576+r*(1172700+r*(723680+r*(269325+r*(63273+r*(9450+r*(870+r*(45+1*r)))))))))):(n=4624429436045379e-20+(r=1/r)*(.004826466289237662+r*(.22668404630224365+r*(6.309239205732627+r*(115.24194596137347+r*(1443.4299244417066+r*(12555.290582413863+r*(74887.54032914672+r*(293136.7857211597+r*(679979.8474157227+709811.662581658*r))))))))),e=1+r*(45+r*(870+r*(9450+r*(63273+r*(269325+r*(723680+r*(1172700+r*(1026576+r*(362880+0*r)))))))))),n/e)}var ea=10.900511;function ta(r,n){var e,t,i,o,u,a,f;return Z(r)||Z(n)||r<0||n<0?NaN:1===n?1/r:1===r?1/n:(f=r+n)100?u*=cu(e*Ie(-n/o)):u*=Qu(t/o,e),u*=Qu(o>1e10?t/o*(i/o):t*i/(o*o),n),u*=M(ra/i))}var ia=.34657359027997264;var oa=709.782712893384,ua=.6931471803691238,aa=1.9082149292705877e-10,fa=1.4426950408889634,sa=38.816242111356935,ca=1.0397207708399179;function la(r){var n,e,t,i,o,u,a,f,s,c,l,h,p;if(r===W||Z(r))return r;if(r===H)return-1;if(0===r)return r;if(r<0?(t=!0,f=-r):(t=!1,f=r),f>=sa){if(t)return-1;if(f>=oa)return W}if(u=0|ye(f),f>ia)f56?(f=1-(h-r),1024===p?f=_e(f,i=ye(f)+(p<<20)|0):f*=e,f-1):(l=1,p<20?f=(l=_e(l,i=1072693248-(2097152>>p)|0))-(h-r):(f=r-(h+(l=_e(l,i=xe-p<<20|0))),f+=1),f*=e))}function ha(r,n){return Z(r)||Z(n)?NaN:r===H||n===H?H:r===n&&0===r?Vr(r)?r:n:r=zt)return NaN;switch(3&Ji(r,xa)){case 0:return ba(xa[0],xa[1]);case 1:return pa(xa[0],xa[1]);case 2:return-ba(xa[0],xa[1]);default:return-pa(xa[0],xa[1])}}var Na=2.5066282746310007;var Aa=143.01608;function Va(r){var n,e,t;return n=1+(n=1/r)*function(r){return 0===r?.08333333333334822:.08333333333334822+r*(.0034722222160545866+r*(r*(.0007873113957930937*r-.00022954996161337813)-.0026813261780578124))}(n),e=cu(r),e=r>Aa?(t=Qu(r,.5*r-.25))*(t/e):Qu(r,r-.5)/e,Na*e*n}var Oa=.5772156649015329;function ja(r,n){return n/((1+Oa*r)*r)}function Sa(r){var n,e,t,i;if(z(r)&&r<0||r===H||Z(r))return NaN;if(0===r)return Vr(r)?H:W;if(r>171.61447887182297)return W;if(r<-170.5674972726612)return 0;if((e=rn(r))>33)return r>=0?Va(r):(n=0==(1&(t=C(e)))?-1:1,(i=e-t)>.5&&(i=e-(t+=1)),i=e*Ta(Lt*i),n*Lt/(rn(i)*Va(e)));for(i=1;r>=3;)i*=r-=1;for(;r<0;){if(r>-1e-9)return ja(r,i);i/=r,r+=1}for(;r<2;){if(r<1e-9)return ja(r,i);i/=r,r+=1}return 2===r?i:i*function(r){var n,e;return 0===r?1:((r<0?-r:r)<=1?(n=1+r*(.4942148268014971+r*(.20744822764843598+r*(.04763678004571372+r*(.010421379756176158+r*(.0011913514700658638+r*(.00016011952247675185+0*r)))))),e=1+r*(.0714304917030273+r*(r*(.035823639860549865+r*(.011813978522206043+r*(r*(.0005396055804933034+-23158187332412014e-21*r)-.004456419138517973)))-.23459179571824335))):(n=0+(r=1/r)*(.00016011952247675185+r*(.0011913514700658638+r*(.010421379756176158+r*(.04763678004571372+r*(.20744822764843598+r*(.4942148268014971+1*r)))))),e=r*(.0005396055804933034+r*(r*(.011813978522206043+r*(.035823639860549865+r*(r*(.0714304917030273+1*r)-.23459179571824335)))-.004456419138517973))-23158187332412014e-21),n/e)}(r-=2)}var Ra=170,Ia=[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 ka(r){return Z(r)?NaN:z(r)?r<0?NaN:r<=Ra?Ia[r]:W:Sa(r+1)}function Ba(r){var n,e;return 0===r?1/0:((r<0?-r:r)<=1?(n=38474670393.31777+r*(36857665043.51951+r*(15889202453.72942+r*(4059208354.298835+r*(680547661.1834733+r*(78239755.00312005+r*(6246580.776401795+r*(341986.3488721347+r*(12287.194511824551+r*(261.61404416416684+2.5066282746310007*r))))))))),e=0+r*(362880+r*(1026576+r*(1172700+r*(723680+r*(269325+r*(63273+r*(9450+r*(870+r*(45+1*r)))))))))):(n=2.5066282746310007+(r=1/r)*(261.61404416416684+r*(12287.194511824551+r*(341986.3488721347+r*(6246580.776401795+r*(78239755.00312005+r*(680547661.1834733+r*(4059208354.298835+r*(15889202453.72942+r*(36857665043.51951+38474670393.31777*r))))))))),e=1+r*(45+r*(870+r*(9450+r*(63273+r*(269325+r*(723680+r*(1172700+r*(1026576+r*(362880+0*r)))))))))),n/e)}var Fa=10.900511,Pa=4269068009004705e289;function La(r,n){var e,t,i;return r=Ra?(t=La(n,Ra-n),t*=r,1/(t*=Pa)):1/(r*Sa(r+n)):(i=r+Fa-.5,r+n===r?e=rn(n/i)=zt)return NaN;switch(3&Ji(r,Ma)){case 0:return pa(Ma[0],Ma[1]);case 1:return-ba(Ma[0],Ma[1]);case 2:return-pa(Ma[0],Ma[1]);default:return ba(Ma[0],Ma[1])}}function Da(r){var n,e;return Z(r)||xr(r)?NaN:0===(n=rn(e=r%2))||1===n?Pt(0,e):n<.25?Ta(Lt*e):n<.75?Pt(qa(Lt*(n=.5-n)),e):n<1.25?(e=Pt(1,e)-e,Ta(Lt*e)):n<1.75?-Pt(qa(Lt*(n-=1.5)),e):(e-=Pt(2,e),Ta(Lt*e))}var za=.07721566490153287,Wa=.3224670334241136,Ga=1,Za=-.07721566490153287,Ja=.48383612272381005,Ha=-.1475877229945939,$a=.06462494023913339,Xa=-.07721566490153287,Ka=1,Qa=.4189385332046727,rf=1.4616321449683622,nf=4503599627370496,ef=72057594037927940,tf=13877787807814457e-33,of=1.4616321449683622,uf=-.12148629053584961,af=-3638676997039505e-33;function ff(r){var n,e,t,i,o,u,a,f,s,c,l,h,p;if(Z(r)||xr(r))return r;if(0===r)return W;if(r<0?(n=!0,r=-r):n=!1,r=nf)return W;if(0===(s=Da(r)))return W;e=qe(Lt/rn(s*r))}if(1===r||2===r)return 0;if(r<2)switch(r<=.9?(p=-qe(r),r>=rf-1+.27?(l=1-r,t=0):r>=rf-1-.27?(l=r-(of-1),t=1):(l=r,t=2)):(p=0,r>=rf+.27?(l=2-r,t=0):r>=rf-.27?(l=r-of,t=1):(l=r-1,t=2)),t){case 0:u=za+(h=l*l)*function(r){return 0===r?.06735230105312927:.06735230105312927+r*(.007385550860814029+r*(.0011927076318336207+r*(.00022086279071390839+25214456545125733e-21*r)))}(h),o=h*(Wa+h*function(r){return 0===r?.020580808432516733:.020580808432516733+r*(.0028905138367341563+r*(.0005100697921535113+r*(.00010801156724758394+44864094961891516e-21*r)))}(h)),p+=(a=l*u+o)-.5*l;break;case 1:u=Ja+(c=(h=l*l)*l)*function(r){return 0===r?-.032788541075985965:r*(.006100538702462913+r*(.00031563207090362595*r-.0014034646998923284))-.032788541075985965}(c),o=Ha+c*function(r){return 0===r?.01797067508118204:.01797067508118204+r*(r*(.000881081882437654+-.00031275416837512086*r)-.0036845201678113826)}(c),i=$a+c*function(r){return 0===r?-.010314224129834144:r*(.0022596478090061247+r*(.0003355291926355191*r-.0005385953053567405))-.010314224129834144}(c),p+=uf+(a=h*u-(af-c*(o+l*i)));break;case 2:u=l*(Xa+l*function(r){return 0===r?.6328270640250934:.6328270640250934+r*(1.4549225013723477+r*(.9777175279633727+r*(.22896372806469245+.013381091853678766*r)))}(l)),o=Ka+l*function(r){return 0===r?2.4559779371304113:2.4559779371304113+r*(2.128489763798934+r*(.7692851504566728+r*(.10422264559336913+.003217092422824239*r)))}(l),p+=-.5*l+u/o}else if(r<8)switch(a=(l=r-(t=eu(r)))*(Za+l*function(r){return 0===r?.21498241596060885:.21498241596060885+r*(.325778796408931+r*(.14635047265246445+r*(.02664227030336386+r*(.0018402845140733772+3194753265841009e-20*r))))}(l)),f=Ga+l*function(r){return 0===r?1.3920053346762105:1.3920053346762105+r*(.7219355475671381+r*(.17193386563280308+r*(.01864591917156529+r*(.0007779424963818936+7326684307446256e-21*r))))}(l),p=.5*l+a/f,h=1,t){case 7:h*=l+6;case 6:h*=l+5;case 5:h*=l+4;case 4:h*=l+3;case 3:p+=qe(h*=l+2)}else r=1?exf?Qu(n,r)*cu(-n):r>=1?Qu(n/cu(n/r),r):cu(e-n):e>xf?Qu(n,r)*cu(-n):n/r=0;)e=e*n+r[t],t-=1;return e}var Af=Function;function Vf(r){var n,e,t,i;if(r.length>500)return function(n){return Nf(r,n)};if(n="return function evalpoly(x){",0===(e=r.length))n+="return 0.0;";else if(1===e)n+="return "+r[0]+";";else{for(n+="if(x===0.0){return "+r[0]+";}",n+="return "+r[0],t=e-1,i=1;i1&&(u=n),e=u.tolerance||on,i=u.maxTerms||1e6,o=u.initialValue||0,!0==("function"==typeof r.next)){for(t of r)if(rn(e*(o+=t))>=rn(t)||0==--i)break}else do{o+=t=r()}while(rn(e*o)1&&(u=n),e=u.tolerance||on,i=u.maxTerms||1e6,o=u.initialValue||0;do{o+=t=r()}while(rn(e*o).95?qe(1+r)-r:e150?e=cu(e=r*(Ie(f)-f)+n*(.5-Fa)/i):ha(o=r*qe(n/i),u=r-n)<=xf||nn(o,u)>=cf?(t=u/r,ha(o,u)/2>xf&&nn(o,u)/2xf&&nn(o,u)/4r?(e=(a=Qu(n/i,r/4)*cu(u/4))*a,e*=e):e=t>xf&&t0){if((rn(n*(r-1))<.5||rn(n)<.2)&&(t=qe(r)*n)<.5)return la(t)}else if(eu(n)!==n)return NaN;return xr(e=Qu(r,n)-1)||Z(e)?NaN:e}var Mf=.15896368026733398,Cf=.5281534194946289,Yf=.45201730728149414;function qf(r,n,e){var t,i,o,u,a,f,s;if(r2){if(r>=3){do{e-=1,i+=qe(r-=1)}while(r>=3);e=r-2}return u=0===(a=e)?-.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+=(o=e*(r+1))*Mf+o*u}return r<1&&(i+=-qe(r),e=n,n=r,r+=1),r<=1.5?(o=function(r){var n,e;return 0===r?.04906224540690395:((r<0?-r:r)<=1?(n=.04906224540690395+r*(r*(r*(r*(r*(-.0010034668769627955*r-.024014982064857155)-.1584135863906922)-.4065671242119384)-.4149833583594954)-.09691175301595212),e=1+r*(3.0234982984646304+r*(3.4873958536072385+r*(1.9141558827442668+r*(.5071377386143635+r*(.05770397226904519+.001957681026011072*r)))))):(n=(r=1/r)*(r*(r*(r*(r*(.04906224540690395*r-.09691175301595212)-.4149833583594954)-.4065671242119384)-.1584135863906922)-.024014982064857155)-.0010034668769627955,e=.001957681026011072+r*(.05770397226904519+r*(.5071377386143635+r*(1.9141558827442668+r*(3.4873958536072385+r*(3.0234982984646304+1*r)))))),n/e)}(n),i+=(t=n*e)*Cf+t*o):(o=e*n,u=function(r){var n,e;return 0===r?-.029232972183027003:((r<0?-r:r)<=1?(n=r*(.14421626775719232+r*(r*(.05428096940550536+r*(r*(.0004311713426792973+0*r)-.008505359768683364))-.14244039073863127))-.029232972183027003,e=1+r*(r*(.846973248876495+r*(r*(.02558279715597587+r*(-8.271935218912905e-7*r-.0010066679553914337))-.22009515181499575))-1.5016935605448505)):(n=0+(r=1/r)*(.0004311713426792973+r*(r*(.05428096940550536+r*(r*(.14421626775719232+-.029232972183027003*r)-.14244039073863127))-.008505359768683364)),e=r*(r*(.02558279715597587+r*(r*(.846973248876495+r*(1*r-1.5016935605448505))-.22009515181499575))-.0010066679553914337)-8.271935218912905e-7),n/e)}(-e),i+=o*Yf+o*u)}function Df(r){return Z(r)?NaN:r<0?r<-.5?Sa(1+r)-1:la(-Ie(r)+qf(r+2,r+1,r)):r<2?la(qf(r+1,r,r-1)):Sa(1+r)-1}var zf=11754943508222875e-54;var Wf;Wf=jf()?function(r,n){var e,t,i;return t={},arguments.length>1&&(t=n),e=t.maxIter||1e6,i=t.tolerance||on,t.keep?function(r,n,e){var t,i,o,u,a,f;if(0===(o=(f=(t="function"==typeof r.next)?r.next().value:r())[1])&&(o=zf),u=o,a=0,!0===t)do{(f=r.next().value)&&(0===(a=f[1]+f[0]*a)&&(a=zf),0===(u=f[1]+f[0]/u)&&(u=zf),o*=i=u*(a=1/a))}while(f&&rn(i-1)>n&&--e);else do{(f=r())&&(0===(a=f[1]+f[0]*a)&&(a=zf),0===(u=f[1]+f[0]/u)&&(u=zf),o*=i=u*(a=1/a))}while(f&&rn(i-1)>n&&--e);return o}(r,i,e):function(r,n,e){var t,i,o,u,a,f,s;if(u=(s=(t="function"==typeof r.next)?r.next().value:r())[1],o=s[0],0===u&&(u=zf),a=u,f=0,!0===t)do{(s=r.next().value)&&(0===(f=s[1]+s[0]*f)&&(f=zf),0===(a=s[1]+s[0]/a)&&(a=zf),u*=i=a*(f=1/f))}while(rn(i-1)>n&&--e);else do{(s=r())&&(0===(f=s[1]+s[0]*f)&&(f=zf),0===(a=s[1]+s[0]/a)&&(a=zf),u*=i=a*(f=1/f))}while(s&&rn(i-1)>n&&--e);return o/u}(r,i,e)}:function(r,n){var e,t,i;return t={},arguments.length>1&&(t=n),i=t.tolerance||on,e=t.maxIter||1e6,t.keep?function(r,n,e){var t,i,o,u,a;0===(u=(a=r())[1])&&(u=zf),i=u,o=0;do{(a=r())&&(0===(o=a[1]+a[0]*o)&&(o=zf),0===(i=a[1]+a[0]/i)&&(i=zf),u*=t=i*(o=1/o))}while(a&&rn(t-1)>n&&--e);return u}(r,i,e):function(r,n,e){var t,i,o,u,a,f;a=(f=r())[1],i=f[0],0===a&&(a=zf),o=a,u=0;do{(f=r())&&(0===(u=f[1]+f[0]*u)&&(u=zf),0===(o=f[1]+f[0]/o)&&(o=zf),a*=t=o*(u=1/u))}while(f&&rn(t-1)>n&&--e);return i/a}(r,i,e)};var Gf=Wf;function Zf(r,n){var e=function(r,n){var e=n-r+1,t=r,i=0;return function(){return[(i+=1)*(t-i),e+=2]}}(r,n);return 1/(n-r+1+Gf(e))}var Jf=170;function Hf(r,n,e,t){var i,o,u,a,f,s,c,l,h,p,v,d,g;if(r<0||n<=0)return NaN;if(o=void 0===e||e,c=t,l=0,n>=Jf&&!o)return c&&4*n4*r?(l=n*qe(r)-r,l+=qe(Ff(n,r,a=0)/n)):0===(l=Hf(n,r,!0,c))?c?(l=qe(l=1+1/(12*n)+1/(288*n*n))-n+(n-.5)*qe(n),l+=qe(Na)):(l=n*qe(r)-r,l+=qe(Ff(n,r,a=0)/n)):l=qe(l)+ff(n),l>cf?W:cu(l);switch(n<30&&n<=r+1&&r.6?(c=!c,u=0):f&&r>.2?(c=!c,u=1):r1?u=6:r<.5?u=-.4/qe(r)20&&(p=rn((r-n)/n),n>200?20/n>p*p&&(s=!0):p<.4&&(s=!0)),s?u=5:r-1/(3*r)1){for(e=cu(-n)/M(Lt*n),e*=n,t=e/=.5,o=2;o=1||en*l>a?(a/=l,o||n<1||en/n>a?(a*=-n,i=!0):a=0):a=0)),l*=Ff(n,r,a)/n,i&&(c=!1,l=-l);break;case 3:v=function(r,n,e){var t,i,o,u;return i=((t=Df(r))+1)/r,t-=o=Uf(n,r),t/=r,u=function(r,n){var e,t,i,o;return e=-n,n=-n,t=r+1,i=1,function(){return o=e/t,e*=n,e/=i+=1,t+=1,o}}(r,n),t=-(o+=1)*Rf(u,{initialValue:((e?i:0)-t)/o}),e&&(t=-t),[t,i]}(n,r,c=!c),l=v[0],g=v[1],c=!1,o&&(l/=g);break;case 4:0!==(l=o?Lf(n,r):Tf(n,r))&&(l*=Zf(n,r));break;case 5:l=function(r,n){var e,t,i,o;return i=r*(t=-If((n-r)/r)),o=M(2*t),n=n&&(c=!c);break;case 6:l=o?Qu(r,n)/Sa(n+1):Qu(r,n)/n,l*=1-n*r/(n+1)}return o&&l>1&&(l=1),c&&(l=(o?1:Sa(n))-l),l}var $f=new Array(30);function Xf(r,n,e,t,i,o,u){var a,f,s,c,l,h,p,v,d,g,m,y,w,b,E,_,x,T;if(y=function(r,n){var e,t,i,o,u,a,f;return f=(n-r-Fa+.5)/(i=r+Fa-.5),r<1?n<=xf?cu(r*qe(n)-n-ff(r)):Qu(n,r)*cu(-n)/Sa(r):(rn(f*f*r)<=100&&r>150?e=cu(e=r*(Ie(f)-f)+n*(.5-Fa)/i):ha(o=r*qe(n/i),u=r-n)<=xf||nn(o,u)>=cf?(t=u/r,ha(o,u)/2>xf&&nn(o,u)/2xf&&nn(o,u)/4r?(e=(a=Qu(n/i,r/4)*cu(u/4))*a,e*=e):e=t>xf&&t=1?exf?Qu(n,r)*cu(-n):r>=1?Qu(n/cu(n/r),r):cu(e-n):e>xf?Qu(n,r)*cu(-n):n/r1){if(rn(_)0||ha(r,n)<1)rn(l)<.1?o*=cu(r*Ie(l)):o*=Qu(e*c/f,r),rn(h)<.1?o*=cu(n*Ie(h)):o*=Qu(t*c/s,n);else if(Qf(l,h)<.5)a=n/r,(u=r.1?(p=la(a*Ie(h)),o*=cu(p=r*Ie(p=l+p+p*l))):(p=la(Ie(l)/a),o*=cu(p=n*Ie(p=h+p+p*h)));else if(rn(l)=cf){if((y+=qe(o))>=cf)return NaN;o=cu(y)}else o*=cu(y);else if((y=n*Ie(h)+r*qe(e*c/f))<=xf||y>=cf){if((y+=qe(o))>=cf)return NaN;o=cu(y)}else o*=cu(y);else if(g=t*c/s,l=r*qe(d=e*c/f),h=n*qe(g),l>=cf||l<=xf||h>=cf||h<=xf)if(rxf)o*=Qu(v*d,r);else{if((h+=l+qe(o))>=cf)return NaN;o=cu(h)}else if((p=(qe(v=Qu(d,r/n))+qe(g))*n)xf)o*=Qu(v*g,n);else{if((h+=l+qe(o))>=cf)return NaN;o=cu(h)}else o*=Qu(d,r)*Qu(g,n);return o}var es={keep:!0,maxIter:1e3};function ts(r,n,e,t,i,o){var u,a;return u=ns(r,n,e,t,i),o&&(o[1]=u),0===u?u:(a=function(r,n,e,t){var i=0;return function(){var o,u,a;return u=(r+i-1)*(r+n+i-1)*i*(n-i)*e*e,o=r+2*i-1,a=i,a+=i*(n-i)*e/(r+2*i-1),a+=(r+i)*(r*t-n*e+1+i*(2-e))/(r+2*i+1),i+=1,[u/=o*o,a]}}(r,n,e,t),u/Gf(a,es))}function is(r,n){var e,t,i,o,u,a,f;if(Z(r)||Z(n))return NaN;if(!z(r)||!z(n))return NaN;if(n<0)return 0;if(t=1,r<0&&(r=-r+n-1,Sr(n)&&(t*=-1)),n>r)return 0;if(0===n||n===r)return t;if(1===n||n===r-1)return t*r;for(r-nf);u++)e*=r,e/=u,r-=1;return u>n?t*e:(i=is(r,n-u+1))===W?t*i:(o=is(n,n-u+1),t*(e/=o/=a=X(i,o))*(i/=a))}function os(r,n,e,t,i,o,u){var a,f,s,c;if(a=ns(r,n,e,t,o),u&&(u[1]=a),0===(a/=r))return a;for(s=1,f=1,c=0;cxf&&lxf&&h1)return o[p]=NaN,o[v]=NaN,o;if(t){if(n<0||e<0)return o[p]=NaN,o[v]=NaN,o;if(0===n){if(0===e)return o[p]=NaN,o[v]=NaN,o;if(e>0)return o[p]=i?0:1,o}else if(0===e&&n>0)return o[p]=i?1:0,o}else if(n<=0||e<=0)return o[p]=NaN,o[v]=NaN,o;return 0===r?(o[v]=1===n?1:n<1?en/2:2*tn,i?(o[p]=t?1:ta(n,e),o):(o[p]=0,o)):1===r?(o[v]=1===e?1:e<1?en/2:2*tn,o[p]=i?0:t?1:ta(n,e),o):.5===n&&.5===e?(o[v]=fs*M(y*r),m=jn(M(i?y:r)),m/=We,t||(m*=Lt),o[p]=m,o):(1===n&&(h=e,e=n,n=h,h=y,y=r,r=h,i=!i),1===e?1===n?(o[p]=i?y:r,o[v]=1,o):(o[v]=n*Qu(r,n-1),m=y<.5?i?-la(n*Ie(-y)):cu(n*Ie(-y)):i?-(Qu(r,n)-1):Qu(r,n),t||(m/=n),o[p]=m,o):(ha(n,e)<=1?(r>.5&&(h=e,e=n,n=h,h=y,y=r,r=h,i=!i),nn(n,e)<=1?n>=ha(.2,e)||Qu(r,n)<=.9?i?(i=!1,s=-as(n,e,r,s=-(t?1:ta(n,e)),t,o,y)):s=as(n,e,r,0,t,o,y):(h=e,e=n,n=h,h=y,y=r,r=h,i=!i,y>=.3?i?(i=!1,s=-as(n,e,r,s=-(t?1:ta(n,e)),t,o,y)):s=as(n,e,r,0,t,o,y):(f=t?1:Kf(n+e,n,20),s=os(n,e,r,y,20,t,o),i?(i=!1,s=-Xf(n+20,e,r,y,s-=t?1:ta(n,e),f,t)):s=Xf(n+20,e,r,y,s,f,t))):e<=1||r<.1&&Qu(e*r,n)<=.7?i?(i=!1,s=-as(n,e,r,s=-(t?1:ta(n,e)),t,o,y)):s=as(n,e,r,0,t,o,y):(h=e,e=n,n=h,h=y,y=r,r=h,i=!i,y>=.3?i?(i=!1,s=-as(n,e,r,s=-(t?1:ta(n,e)),t,o,y)):s=as(n,e,r,0,t,o,y):n>=15?i?(i=!1,s=-Xf(n,e,r,y,s=-(t?1:ta(n,e)),1,t)):s=Xf(n,e,r,y,0,1,t):(f=t?1:Kf(n+e,n,20),s=os(n,e,r,y,20,t,o),i?(i=!1,s=-Xf(n+20,e,r,y,s-=t?1:ta(n,e),f,t)):s=Xf(n+20,e,r,y,s,f,t)))):((ntn)for(a=o,f=C(r-1);f>n;f--)o+=a*=(f+1)*t/((r-f)*e);else if((u=C(r*e))<=n+1&&(u=C(n+2)),o=Qu(e,u)*Qu(t,r-u),0==(o*=is(C(r),C(u))))for(f=u-1;f>n;f--)o+=Qu(e,f)*Qu(t,r-f),o*=is(C(r),C(f));else{for(a=o,i=o,f=u-1;f>n;f--)o+=a*=(f+1)*t/((r-f)*e);for(a=i,f=u+1;f<=r;f++)o+=a*=(r-f+1)*e/(f*t)}return o}(g=e+(d=n-1),d,r,y),t||(s*=ta(n,e))):e*r<=.7?i?(i=!1,s=-as(n,e,r,s=-(t?1:ta(n,e)),t,o,y)):s=as(n,e,r,0,t,o,y):n>15?((g=C(e))===e&&(g-=1),c=e-g,f=t?1:Kf(n+c,c,g),s=Xf(n,c,r,y,s=os(c,n,y,r,g,t),1,t),s/=f):t?((c=e-(g=C(e)))<=0&&(g-=1,c+=1),s=os(c,n,y,r,g,t),s+=os(n,c,r,y,20,t),i&&(s-=1),s=Xf(n+20,c,r,y,s,1,t),i&&(s=-s,i=!1)):s=ts(n,e,r,y,t,o):s=ts(n,e,r,y,t,o)),o[v]<0&&(o[v]=ns(n,e,r,y,!0)),l=y*r,0!==o[v]&&(en*l2||r<0?NaN:(r>1?(n=-1,e=2-r):(n=1,e=r),(r=1-e)<=.5?(t=r*(r+10),i=function(r){var n,e;return 0===r?-.0005087819496582806:((r<0?-r:r)<=1?(n=r*(r*(.03348066254097446+r*(r*(r*(.02198786811111689+r*(.008226878746769157+r*(r*(0+0*r)-.005387729650712429)))-.03656379714117627)-.012692614766297404))-.008368748197417368)-.0005087819496582806,e=1+r*(r*(r*(1.5622155839842302+r*(.662328840472003+r*(r*(r*(.07952836873415717+r*(.0008862163904564247*r-.0023339375937419))-.05273963823400997)-.7122890234154284)))-1.5657455823417585)-.9700050433032906)):(n=0+(r=1/r)*(0+r*(r*(.008226878746769157+r*(.02198786811111689+r*(r*(r*(.03348066254097446+r*(-.0005087819496582806*r-.008368748197417368))-.012692614766297404)-.03656379714117627)))-.005387729650712429)),e=.0008862163904564247+r*(r*(.07952836873415717+r*(r*(r*(.662328840472003+r*(1.5622155839842302+r*(r*(1*r-.9700050433032906)-1.5657455823417585)))-.7122890234154284)-.05273963823400997))-.0023339375937419)),n/e)}(r),n*(t*hs+t*i)):e>=.25?(t=M(-2*qe(e)),i=function(r){var n,e;return 0===r?-.20243350835593876:((r<0?-r:r)<=1?(n=r*(.10526468069939171+r*(8.3705032834312+r*(17.644729840837403+r*(r*(r*(17.445385985570866+r*(21.12946554483405+-3.6719225470772936*r))-44.6382324441787)-18.851064805871424))))-.20243350835593876,e=1+r*(6.242641248542475+r*(3.971343795334387+r*(r*(r*(48.560921310873994+r*(10.826866735546016+r*(1.7211476576120028*r-22.643693341313973)))-20.14326346804852)-28.66081804998)))):(n=(r=1/r)*(21.12946554483405+r*(17.445385985570866+r*(r*(r*(17.644729840837403+r*(8.3705032834312+r*(.10526468069939171+-.20243350835593876*r)))-18.851064805871424)-44.6382324441787)))-3.6719225470772936,e=1.7211476576120028+r*(r*(10.826866735546016+r*(48.560921310873994+r*(r*(r*(3.971343795334387+r*(6.242641248542475+1*r))-28.66081804998)-20.14326346804852)))-22.643693341313973)),n/e)}(e-=.25),n*(t/(ps+i))):(e=M(-qe(e)))<3?(i=function(r){var n,e;return 0===r?-.1311027816799519:((r<0?-r:r)<=1?(n=r*(r*(.11703015634199525+r*(.38707973897260434+r*(.3377855389120359+r*(.14286953440815717+r*(.029015791000532906+r*(.0021455899538880526+r*(r*(2.8522533178221704e-8+-6.81149956853777e-10*r)-6.794655751811263e-7)))))))-.16379404719331705)-.1311027816799519,e=1+r*(3.4662540724256723+r*(5.381683457070069+r*(4.778465929458438+r*(2.5930192162362027+r*(.848854343457902+r*(.15226433829533179+r*(.011059242293464892+r*(0+r*(0+0*r)))))))))):(n=(r=1/r)*(2.8522533178221704e-8+r*(r*(.0021455899538880526+r*(.029015791000532906+r*(.14286953440815717+r*(.3377855389120359+r*(.38707973897260434+r*(.11703015634199525+r*(-.1311027816799519*r-.16379404719331705)))))))-6.794655751811263e-7))-6.81149956853777e-10,e=0+r*(0+r*(0+r*(.011059242293464892+r*(.15226433829533179+r*(.848854343457902+r*(2.5930192162362027+r*(4.778465929458438+r*(5.381683457070069+r*(3.4662540724256723+1*r)))))))))),n/e)}(e-1.125),n*(vs*e+i*e)):e<6?(i=function(r){var n,e;return 0===r?-.0350353787183178:((r<0?-r:r)<=1?(n=r*(r*(.018557330651423107+r*(.009508047013259196+r*(.0018712349281955923+r*(.00015754461742496055+r*(460469890584318e-20+r*(26633922742578204e-28*r-2.304047769118826e-10))))))-.0022242652921344794)-.0350353787183178,e=1+r*(1.3653349817554064+r*(.7620591645536234+r*(.22009110576413124+r*(.03415891436709477+r*(.00263861676657016+r*(7646752923027944e-20+r*(0+0*r)))))))):(n=26633922742578204e-28+(r=1/r)*(r*(460469890584318e-20+r*(.00015754461742496055+r*(.0018712349281955923+r*(.009508047013259196+r*(.018557330651423107+r*(-.0350353787183178*r-.0022242652921344794))))))-2.304047769118826e-10),e=0+r*(0+r*(7646752923027944e-20+r*(.00263861676657016+r*(.03415891436709477+r*(.22009110576413124+r*(.7620591645536234+r*(1.3653349817554064+1*r)))))))),n/e)}(e-3),n*(ds*e+i*e)):(i=function(r){var n,e;return 0===r?-.016743100507663373:((r<0?-r:r)<=1?(n=r*(r*(.001056288621524929+r*(.00020938631748758808+r*(14962478375834237e-21+r*(4.4969678992770644e-7+r*(4.625961635228786e-9+r*(9905570997331033e-32*r-2811287356288318e-29))))))-.0011295143874558028)-.016743100507663373,e=1+r*(.5914293448864175+r*(.1381518657490833+r*(.016074608709367652+r*(.0009640118070051656+r*(27533547476472603e-21+r*(2.82243172016108e-7+r*(0+0*r)))))))):(n=9905570997331033e-32+(r=1/r)*(r*(4.625961635228786e-9+r*(4.4969678992770644e-7+r*(14962478375834237e-21+r*(.00020938631748758808+r*(.001056288621524929+r*(-.016743100507663373*r-.0011295143874558028))))))-2811287356288318e-29),e=0+r*(0+r*(2.82243172016108e-7+r*(27533547476472603e-21+r*(.0009640118070051656+r*(.016074608709367652+r*(.1381518657490833+r*(.5914293448864175+1*r)))))))),n/e)}(e-6),n*(gs*e+i*e)))}var ys=1.4142135623730951;var ws=0,bs=[1,0,0,0,0,0,0,0,0,0];function Es(r,n){var e,t,i;return t=Ua(r/2,.5)*M(r*Lt)*(n-.5),e=1/r,bs[1]=0===(i=e)?.16666666666666666:.16666666666666666+.16666666666666666*i,bs[2]=function(r){return 0===r?.058333333333333334:.058333333333333334+r*(.06666666666666667+.008333333333333333*r)}(e),bs[3]=function(r){return 0===r?.0251984126984127:.0251984126984127+r*(.026785714285714284+r*(.0017857142857142857+.0001984126984126984*r))}(e),bs[4]=function(r){return 0===r?.012039792768959435:.012039792768959435+r*(.010559964726631394+r*(r*(.0003747795414462081+27557319223985893e-22*r)-.0011078042328042327))}(e),bs[5]=function(r){return 0===r?.003837005972422639:.003837005972422639+r*(.00610392115600449+r*(r*(.0005945867404200738+r*(2.505210838544172e-8*r-6270542728876062e-20))-.0016095979637646305))}(e),bs[6]=function(r){return 0===r?.0032177478835464946:.0032177478835464946+r*(.0010898206731540065+r*(r*(.0006908420797309686+r*(r*(154012654012654e-19+1.6059043836821613e-10*r)-.00016376804137220805))-.0012579159844784845))}(e),bs[7]=function(r){return 0===r?.001743826229834001:.001743826229834001+r*(3353097688001788e-20+r*(r*(.0006451304695145635+r*(r*(49255746366361444e-21+r*(7647163731819816e-28*r-39851014346715405e-22))-.000249472580470431))-.0007624513544032393))}(e),bs[8]=function(r){return 0===r?.0009647274732138864:.0009647274732138864+r*(r*(r*(.0005140660578834113+r*(r*(9086710793521991e-20+r*(r*(10914179173496788e-22+28114572543455206e-31*r)-15303004486655377e-21))-.00029133414466938067))-.00036307660358786886)-.0003110108632631878)}(e),bs[9]=function(r){return 0===r?.0005422926281312969:.0005422926281312969+r*(r*(r*(.00035764655430568635+r*(r*(.00012645437628698076+r*(r*(4890304529197534e-21+r*(822063524662433e-32*r-3.123956959982987e-7))-33202652391372056e-21))-.00028690924218514614))-.00010230378073700413)-.0003694266780000966)}(e),ws+t*Nf(bs,t*t)}var _s=[0,0,0,0,0,0,0];function xs(r,n){var e,t,i,o,u,a,f;return f=Ua(r/2,.5)*M(r*Lt)*n,i=r+2,o=r+4,u=r+6,_s[0]=1,_s[1]=-(r+1)/(2*i),i*=r+2,_s[2]=-r*(r+1)*(r+3)/(8*i*o),i*=r+2,_s[3]=-r*(r+1)*(r+5)*((3*r+7)*r-2)/(48*i*o*u),i*=r+2,o*=r+4,_s[4]=-r*(r+1)*(r+7)*(((((15*r+154)*r+465)*r+286)*r-336)*r+64)/(384*i*o*u*(r+8)),i*=r+2,_s[5]=-r*(r+1)*(r+3)*(r+9)*((((((35*r+452)*r+1573)*r+600)*r-2020)*r+928)*r-128)/(1280*i*o*u*(r+8)*(r+10)),i*=r+2,o*=r+4,u*=r+6,_s[6]=-r*(r+1)*(r+11)*(((((((((((945*r+31506)*r+425858)*r+2980236)*r+11266745)*r+20675018)*r+7747124)*r-22574632)*r-8565600)*r+18108416)*r-7099392)*r+884736)/(46080*i*o*u*(r+8)*(r+10)*(r+12)),t=Qu((a=M(r))*f,1/r),e=Nf(_s,t*t),e*=a,-(e/=t)}function Ts(r,n){var e,t,i,o,u,a;return r>1e20?-ms(2*n)*ys:((a=Qu(2*(o=((94.5/((t=48/((e=1/(r-.5))*e))+(i=((20700*e/t-98)*e-16)*e+96.36))-3)/t+1)*M(e*We)*r)*n,2/r))>.05+e?(u=-ms(2*n)*ys,r<5&&(i+=.3*(r-4.5)*(u+.6)),a=la(e*(a=(((((.4*(a=u*u)+6.3)*a+36)*a+94.5)/(i+=(((.05*o*u-5)*u-7)*u-2)*u+t)-a-3)/t+1)*u)*a)):a=((1/(((r+6)/(r*a)-.089*o-.822)*(r+2)*3)+.5/(r+4))*a-1)*(r+1)/(r+2)+1/a,-M(r*a))}var Ns=268435456,As=1/3,Vs=106/3,Os=.8549879733383485;function js(r,n,e){var t,i,o;return o=function(r,n,e){var t,i,o,u,a,f,s,c,l,h,p,v,d;if(u=0,n>e?(a=e,e=n,n=a,o=!0):o=!1,C(r)===r&&r<20)switch(t=fi(1,Vs),C(r)){case 1:u=.5===n?0:-qa(Lt*n)/Ta(Lt*n);break;case 2:u=(2*n-1)/M(2*n*e);break;case 4:h=4*qa(Rn(i=M(4*n*e))/3)/i,p=M(h-4),u=n-.5<0?-p:p;break;case 6:if(n<1e-150)return(o?-1:1)*Ts(r,n);d=Qu(v=4*(n-n*n),As),l=6*(1+Os*(1/d-1));do{f=l,l=2*(8*v*(l*(c=(s=l*l)*s))-270*s+2187)/(5*(4*v*c-216*l-243))}while(rn((l-f)/l)>t);l=M(l-r),u=n-.5<0?-l:l;break;default:u=r>Ns?ms(2*n)*ys:r<3?n>.2742-.0242143*r?Es(r,n):xs(r,n):n>fi(1,bi(r/-.654))?Ts(r,n):xs(r,n)}else u=r>Ns?-ms(2*n)*ys:r<3?n>.2742-.0242143*r?Es(r,n):xs(r,n):n>fi(1,bi(r/-.654))?Ts(r,n):xs(r,n);return o?-u:u}(t=2*r,i=n/2,1-i),e&&(e.value=o*o/(t+o*o)),t/(t+o*o)}var Ss=[0,0,0,0,0,0,0],Rs=[0,0,0,0];var Is=en/4;function ks(r,n){return function(e){var t,i;if(0===(i=1-e))return[-Is,-Is];if(0===e)return[-Is,-Is];return t=qe(e)+n*qe(i)+r,[t,1/e-n/i]}}function Bs(r){return 0===r||Z(r)?r:r<0?-1:1}function Fs(r,n,e,t,i,o){var u,a,f,s,c,l,h,p,v,d;v=0,u=0,c=n,s=fi(1,1-i),h=en,a=en,f=en,l=o;do{if(u=v,f=a,a=h,v=(p=r(c))[0],d=p[1],l-=1,0===v)break;if(0===d?(0===u&&(u=r(n=c===e?t:e),h=n-c),h=Bs(u)*Bs(v)<0?h<0?(c-e)/2:(c-t)/2:h<0?(c-t)/2:(c-e)/2):h=v/d,rn(2*h)>rn(f)&&(h=h>0?(c-e)/2:(c-t)/2),n=c,(c-=h)<=e){if((c=n-(h=.5*(n-e)))===e||c===t)break}else if(c>=t&&((c=n-(h=.5*(n-t)))===e||c===t))break;h>0?t=n:e=n}while(l&&rn(c*s)()=>{}})),Cs=34028234663852886e22,Ys=Ms("gammaincinv:higher_newton");var qs=1e-8,Ds=.08333333333333333,zs=.008333333333333333,Ws=[1,0,0,0,0,0];function Gs(r){var n,e,t,i,o,u,a,f,s,c;if(s=r*r*.5,0===r?o=0:r<-1?(f=cu(-1-s),o=0===(c=f)?0:0+c*(1+c*(1+c*(1.5+c*(2.6666666666666665+c*(5.208333333333333+10.8*c)))))):r<1?o=function(r){return 0===r?1:1+r*(1+r*(.3333333333333333+r*(.027777777777777776+r*(r*(.0002314814814814815+5878894767783657e-20*r)-.003703703703703704))))}(f=r):(o=(f=11+s)+(u=qe(f)),f=1/f,i=(t=(e=(n=u*u)*u)*u)*u,Ws[1]=.5*(2-u),Ws[2]=(-9*u+6+2*n)/6,Ws[3]=-(3*e+36*u-22*n-12)*Ds,Ws[4]=(60+350*n-300*u-125*e+12*t)/60,Ws[5]=-(-120-274*t+900*u-1700*n+1125*e+20*i)*zs,o+=u*f*Nf(Ws,f)),f=1,r>-3.5&&r<-.03||r>.03&&r<40){f=1,a=o;do{f=rn(a/(o=a*(s+qe(a))/(a-1))-1),a=o}while(f>qs)}return o}var Zs=.9189385332046728,Js=[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 Hs=.30865217988013566;function $s(r){var n;return r=0);return(t-o)/2}(17,n=18/(r*r)-1)/(12*r):(n=1/(r*r),r<1e3?function(r){return 0===r?.025721014990011306:.025721014990011306+r*(.08247596616699963+r*(r*(.0006099292666946337+r*(.000250505279903*r-.00033543297638406))-.0025328157302663564))}(n)/(Hs+n)/r:function(r){return 0===r?.08333333333333333:.08333333333333333+r*(r*(.0007936507936507937+-.0005952380952380953*r)-.002777777777777778)}(n)/r)}function Xs(r){return r>=3?cu($s(r)):r>0?Sa(r)/(cu(-r+(r-.5)*qe(r))*Na):Cs}var Ks=Ms("gammaincinv:compute"),Qs=.5,rc=.3333333333333333,nc=.25,ec=.2,tc=.16666666666666666,ic=.08333333333333333,oc=.041666666666666664,uc=[0,0,0,0,0];function ac(r,n,e){var t,i,o,u,a,f,s,c,l,h,p,v,d,g,m,y,w,b,E,_,x,T,N,A,V,O,j,S,R,I,k,B,F,P,L,U,C,Y,q,D;if(n1&&r<500&&n<1e-80){for(U=0,f=1/r,t=1/(r+1),d=E=cu(E=(ff(r+1)+qe(n))*f),P=0;P<10;P++)E=d*cu(E*f)*Qu(1-E*t,f);L=1,o=ff(r)}if((s=1/r*(qe(n)+ff(r+1)))5?(N=(T=(x=F*F)*F)*F,C=1/E,uc[0]=F-1,uc[1]=(3*B-2*B*F+x-2*F+2)*Qs,uc[2]=(24*B*F-11*A-24*B-6*x+12*F-12-9*B*x+6*A*F+2*T)*tc,uc[3]=(-12*V*F+8.04*B*x-114*A*F+(72+36*x)+(3*N-72*F+162)*(B-168*B*F)-(12*T+25*V)-(22*B*T+36*A*x+120*A))*ic,uc[4]=0,E=E-F+B*C*Nf(uc,C)):(x=F*F,(q=F-B*(C=1/E)*(F-1))qe(Cs))return Ys("Warning: overflow problems in one or more steps of the computation. The initial approximation to the root is returned."),s;d=cu(f)}else d=-u*g;d=a?-d*(Hf(g,n,!0,!1)-t):d*(Hf(g,n,!0,!0)-i),t>1e-120||v>1?(c=(2*h-4*g*n+4*g+2*l-3*n+1)/h,r=g+d*(1+d*(.5*(g-n+1)/g+d*(c/=6)))):r=g+d,p=rn(g/r-1),v+=1,(g=r)<0&&(g=s,v=100)}while(p>2e-14&&v<35);return(p>2e-14||v>99)&&Ys("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}(E,r,U,n,e,o,i,u)),k}function fc(r,n,e){return Z(r)||Z(n)||n1||r<0?NaN:!0===e?0===r?W:1===r?0:ac(n,1-r,r):0===r?0:1===r?W:ac(n,r,1-r)}var sc=5e-324;var cc=32,lc=1e3,hc=[0,0,0,0,0];function pc(r,n,e,t){var i,o,u,a,f,s,c,l,h,p,v,d,g,m,y,w,b,E,_,x,T,N,A,V,O,j,S;if(o=!1,0===t)return[1,0];if(0===e)return[0,1];if(1===r){if(1===n)return[e,1-e];d=n,n=r,r=d,d=t,t=e,e=d,o=!0}if(j=0,a=0,s=1,.5===r){if(.5===n)return j=Ta(e*We),j*=j,S=Ta(t*We),[j,S*=S];n>.5&&(d=n,n=r,r=d,d=t,t=e,e=d,o=!o)}if(.5===n&&r>=.5&&1!==e)j=js(r,e,x={}),S=x.value;else{if(1===n)return e1?(j=Qu(e,1/r),S=-la(qe(e)/r)):S=1-(j=Qu(e,1/r)):(j=cu(Ie(-t)/r),S=-la(Ie(-t)/r)),o&&(d=S,S=j,j=d),[j,S];if(r+n>5)e>.5&&(d=n,n=r,r=d,d=t,t=e,e=d,o=!o),h=ha(r,n),l=nn(r,n),M(h)>l-h&&h>5?(j=function(r,n,e){var t,i,o,u,a,f,s;return t=ms(2*e),t/=-M(r/2),Rs[0]=t,a=(u=(f=n-r)*f)*f,Ss[0]=-f*ys/2,Ss[1]=(1-2*f)/8,Ss[2]=-f*ys/48,Ss[3]=-1/192,Ss[4]=-f*ys/3840,Ss[5]=0,Ss[6]=0,Rs[1]=Nf(Ss,t),Ss[0]=f*ys*(3*f-2)/12,Ss[1]=(20*u-12*f+1)/128,Ss[2]=f*ys*(20*f-1)/960,Ss[3]=(16*u+30*f-15)/4608,Ss[4]=f*ys*(21*f+32)/53760,Ss[5]=(-32*u+63)/368640,Ss[6]=-f*ys*(120*f+17)/25804480,Rs[2]=Nf(Ss,t),Ss[0]=f*ys*(-75*u+80*f-16)/480,Ss[1]=(-1080*a+868*u-90*f-45)/9216,Ss[2]=f*ys*(-1190*u+84*f+373)/53760,Ss[3]=(-2240*a-2508*u+2100*f-165)/368640,Ss[4]=0,Ss[5]=0,Ss[6]=0,Rs[3]=Nf(Ss,t),s=-cu(-(i=(o=Nf(Rs,1/r))*o)/2),0===i?.5:(1+o*M((1+s)/i))/2}(r,n,e),S=1-j):(f=jn(M(r/(V=r+n))),(u=h/V)>=.2&&u<=.8&&V>=10?(j=(v=Qu(e,1/r))<.0025&&r+n<200?v*Qu(r*ta(r,n),1/r):function(r,n,e){var t,i,o,u,a,f,s,c,l,h,p,v,d,g,m,y,w,b,E;return u=ms(2*r)/-M(n/2),w=Ta(e),y=qa(e),Ls[0]=u,g=w*w,m=y*y,c=(p=(v=w*y)*v)*(h=p*v),s=h*h,f=(l=p*p)*h,Ps[0]=(2*g-1)/(3*v),Ps[1]=-function(r){return 0===r?-1:r*(5*r-5)-1}(g)/(36*p),Ps[2]=function(r){return 0===r?1:1+r*(21+r*(46*r-69))}(g)/(1620*h),Ps[3]=function(r){return 0===r?7:7+r*(r*(33+r*(31*r-62))-2)}(g)/(6480*l),Ps[4]=function(r){return 0===r?25:25+r*(r*(r*(88+r*(46*r-115))-17)-52)}(g)/(90720*c),Ps[5]=0,Ls[1]=Nf(Ps,u),Ps[0]=-function(r){return 0===r?7:7+r*(12+r*(52*r-78))}(g)/(405*h),Ps[1]=function(r){return 0===r?-7:r*(2+r*(183+r*(185*r-370)))-7}(g)/(2592*l),Ps[2]=-function(r){return 0===r?-533:r*(776+r*(r*(10240+r*(5410*r-13525))-1835))-533}(g)/(204120*c),Ps[3]=-function(r){return 0===r?-1579:r*(3747+r*(r*(r*(45588+r*(15071*r-45213))-15821)-3372))-1579}(g)/(2099520*s),Ps[4]=0,Ps[5]=0,Ls[2]=Nf(Ps,u),Ps[0]=function(r){return 0===r?449:449+r*(r*(r*(6686+r*(3704*r-9260))-769)-1259)}(g)/(102060*c),Ps[1]=-function(r){return 0===r?63149:63149+r*(r*(140052+r*(r*(2239932+r*(750479*r-2251437))-727469))-151557)}(g)/(20995200*s),Ps[2]=function(r){return 0===r?29233:29233+r*(r*(105222+r*(146879+r*(r*(3195183+r*(729754*r-2554139))-1602610)))-78755)}(g)/(36741600*f),Ps[3]=0,Ps[4]=0,Ps[5]=0,Ls[3]=Nf(Ps,u),o=y/w,o*=o,d=-(a=Nf(Ls,1/n))*a/(2*g)+qe(g)+m*qe(m)/g,rn(a)<.7?(Ps[0]=g,Ps[1]=v,Ps[2]=(1-2*g)/3,Ps[3]=function(r){return 0===r?1:1+r*(13*r-13)}(g)/(36*v),Ps[4]=function(r){return 0===r?1:1+r*(21+r*(46*r-69))}(g)/(270*p),Ps[5]=0,E=Nf(Ps,a)):(b=cu(d),Ps[0]=b,Ps[1]=o,Ps[2]=0,Ps[3]=3*o*(3*o+1)/6,Ps[4]=4*o*(4*o+1)*(4*o+2)/24,Ps[5]=5*o*(5*o+1)*(5*o+2)*(5*o+3)/120,((E=Nf(Ps,b))-g)*a<0&&(E=1-E)),a<0?(i=0,t=g):(i=g,t=1),(Et)&&(E=(i+t)/2),Fs(ks(-d,o),E,i,t,32,100)}(e,V,f),S=1-j):(r1e-5&&(j=function(r,n,e,t){var i,o,u,a,f,s,c,l,h,p,v,d,g,m,y,w,b,E,_,x,T,N,A,V,O,j;return a=e_&&(j=_),s=_}else r>1&&n>1?(g=(n-1)/(r+n-2),ls(_=(r-1)/(r+n-2),r,n)-e<0&&(d=n,n=r,r=d,d=t,t=e,e=d,d=g,g=_,_=d,o=!o),S=(j=cu(b=qe(e*r*ta(r,n))/r))<.9?1-j:-la(b),n_&&(j=_),s=_):(n.5&&(d=n,n=r,r=d,d=t,t=e,e=d,d=S,S=j,j=d,o=!o,O=1-a,a=1-s,s=O),0===a&&(o?j<(a=on)&&(j=a):a=tn,j=t),j=function(r,n,e,t,i,o){var u,a,f,s,c,l,h,p,v,d,g,m,y,w,b,E;w=0,a=!1,l=n,c=fi(1,1-i),h=0,f=v=nn(1e7*n,1e7),s=v,p=o;do{if(h=w,s=f,f=v,w=(y=r(l))[0],b=y[1],E=y[2],p-=1,0===w)break;if(0===b?(0===h&&(h=r(n=l===e?t:e),v=n-l),v=Bs(h)*Bs(w)<0?v<0?(l-e)/2:(l-t)/2:v<0?(l-t)/2:(l-e)/2):0===E?v=w/b:(d=2*w,(v=rn(m=2*b-w*(E/b))<1&&rn(d)>=rn(m)*en?w/b:d/m)*b/w<0&&rn(v=w/b)>2*rn(n)&&(v=2*(v<0?-1:1)*rn(n))),(u=rn(v/s))>.8&&u<2&&(rn(v=v>0?(l-e)/2:(l-t)/2)>l&&(v=Bs(v)*l),s=3*v),n=l,(l-=v)1&&en/rn(l)0&&g<3)l=n-(v=.99*(n-e)),a=!0;else if((l=n-(v=(n-e)/2))===e||l===t)break}else if(l>t)if(g=rn(t)<1&&rn(l)>1&&en/rn(l)0&&g<3)l=n-(v=.99*(n-t)),a=!0;else if((l=n-(v=(n-t)/2))===e||l===t)break;v>0?t=n:e=n}while(p&&rn(l*c)=mc?0:r1.1)return NaN;for(t=0,i=0,n=2*r,o=0;o=10?(e=yc(t)+yc(i)-yc(t+i),-.5*qe(i)+Zs+e+(t-.5)*qe(t/(t+i))+i*Ie(-t/(t+i))):i>=10?(e=yc(i)-yc(t+i),ff(t)+e+t-t*qe(t+i)+(i-.5)*Ie(-t/(t+i))):qe(Sa(t)*(Sa(i)/Sa(t+i)))}var bc=Y+1;function Ec(r){var n,e,t,i;return Z(r)||xr(r)?NaN:(n=rn(r))>bc?1:.5===(t=n-(e=C(n)))?0:(i=t<.25?qa(Lt*t):t<.75?Ta(Lt*(t=.5-t)):-qa(Lt*(t=1-t)),e%2==1?-i:i)}var _c=1.618033988749895,xc=2.23606797749979;function Tc(r){var n;return Z(r)||r===W||r===H?NaN:((n=Qu(_c,r))-Ec(r)/n)/xc}function Nc(r,n){var e;return Z(r)||Z(n)?NaN:xr(r)||xr(n)?W:(r<0&&(r=-r),n<0&&(n=-n),r>>0)&yt)>>>0,i=(e&=wt)>>0)/3>>>0)+Bc>>>0,0):_e(i=0,n|(e/3>>>0)+kc>>>0),i*=function(r){return 0===r?1.87595182427177:1.87595182427177+r*(r*(1.6214297201053545+r*(.14599619288661245*r-.758397934778766))-1.8849797954337717)}(t=i*i*(i/r)),Ot.assign(i,Pc,1,0),Pc[1]&Rc?(Pc[0]+=Ic,Pc[1]&=~Rc):Pc[1]|=Rc,i=Bt(Pc[0]&Oc,Pc[1]&jc),i+=i*(t=((t=r/(i*i))-i)/(i+i+t)))}function Uc(r){return Pr(Lc(Pr(r)))}var Mc=Math.ceil;var Cc=308,Yc=-308,qc=-324,Dc=Y+1,zc=1e308;function Wc(r,n){var e,t;return Z(r)||Z(n)||xr(n)?NaN:xr(r)||0===r||nDc&&n<=0?r:n>Cc?r<=0?-0:W:n=Xc?r+r:i===Qc&&0===o?0:(p+=(i>>20)-xe|0,l=p+=(h=(i&=Wt)+614244&Kc|0)>>20|0,t=.5*(f=(r=_e(r,i|h^Qc))-1)*f,s=Zc(f),e=((a=f-(u=vu(u=f-t,0))-t+s)+u)*$c+a*Hc,(e+=l-(c=l+(n=u*Hc))+n)+(n=c))}function el(r){var n,e;return Z(r)||xr(r)||0===r?r:(r<0?(r=-r,n=-1):n=1,(e=nl(r))===Xt?r:(e=-1===n?C(e):nu(e))>Ht?W:n*Qu(2,e))}var tl=0x40000000000000,il=.4342944818781689,ol=25082946711645275e-27,ul=.30102999566361177,al=3694239077158931e-28,fl=2146435072,sl=1048576,cl=1072693248,ll=[0,0];function hl(r){var n,e,t,i,o,u,a,f,s,c,l,h,p,v;if(Z(r)||r<0)return NaN;if(Ot.assign(r,ll,1,0),u=ll[0],a=ll[1],v=0,u=fl?r+r:u===cl&&0===a?0:(v+=(u>>20)-xe|0,h=v+=(p=(u&=Wt)+614244&sl|0)>>20|0,t=.5*(s=(r=_e(r,u|p^cl))-1)*s,c=Zc(s),i=vu(i=s-t,0),e=h*al+((o=s-i-t+c)+i)*ol+o*il,(e+=(f=h*ul)-(l=f+(n=i*il))+n)+(n=l))}function pl(r){var n,e;return Z(r)||xr(r)||0===r?r:(r<0?(r=-r,n=-1):n=1,e=hl(r),(e=-1===n?C(e):nu(e))<=qc?0*n:e>Cc?W:n*Qu(10,e))}var vl=Y+1,dl=1e308;function gl(r,n){var e,t;return Z(r)||Z(n)||xr(n)?NaN:xr(r)||0===r||nvl&&n<=0?r:n>Cc?r>=0?0:H:n21?cu(r)/2:(cu(r)+cu(-r))/2)}Lr(Nl,"isPrimitive",xl),Lr(Nl,"isObject",Tl);var Vl=.7853981633974483;function Ol(r){var n;return r<-Vl||r>Vl?qa(r)-1:-.5*(n=r*r)+n*n*function(r){return 0===r?.041666666666666664:.041666666666666664+r*(r*(2480158730157055e-20+r*(r*(2.087675428708152e-9+r*(4737750796424621e-29*r-1147028484342536e-26))-2.755731921499979e-7))-.0013888888888888872)}(n)}var jl=.7853981633974483,Sl=3061616997868383e-32,Rl=.3333333333333341,Il=2147483647;function kl(r,n,e){var t,i,o,u,a,f,s,c,l;return(i=(t=ye(r))&Il|0)>=1072010280&&(r<0&&(r=-r,n=-n),r=(l=jl-r)+(c=Sl-n),n=0),u=function(r){return 0===r?.13333333333320124:.13333333333320124+r*(.021869488294859542+r*(.0035920791075913124+r*(.0005880412408202641+r*(7817944429395571e-20+-18558637485527546e-21*r))))}(c=(l=r*r)*l),s=l*function(r){return 0===r?.05396825397622605:.05396825397622605+r*(.0088632398235993+r*(.0014562094543252903+r*(.0002464631348184699+r*(7140724913826082e-20+2590730518636337e-20*r))))}(c),u=n+l*((a=l*r)*(u+s)+n),c=r+(u+=Rl*a),i>=1072010280?(1-(t>>30&2))*((s=e)-2*(r-(c*c/(c+s)-u))):1===e?c:(s=u-((l=vu(c,0))-r),(f=vu(o=-1/c,0))+o*((a=1+f*l)+f*s))}var Bl=[0,0],Fl=1072243195,Pl=1044381696;function Ll(r){var n,e;return n=ye(r),(n&=wt)<=Fl?n=zt?NaN:(e=Ji(r,Bl),kl(Bl[0],Bl[1],1-((1&e)<<1)))}function Ul(r){return 1/Ll(r)}var Ml=88.02969193111305;function Cl(r){var n,e;if((e=rn(r))>.5*Ml)return r<0?-1:1;if(e>=.625)e=1-2/((n=cu(2*e))+1),r<0&&(e=-e);else{if(0===r)return r;e=r+r*(n=r*r)*function(r){var n,e;return 0===r?-.3333333333333332:((r<0?-r:r)<=1?(n=r*(r*(0*r-.9643991794250523)-99.28772310019185)-1614.6876844170845,e=4844.063053251255+r*(2235.4883906010045+r*(112.81167849163293+1*r))):(n=0+(r=1/r)*(r*(-1614.6876844170845*r-99.28772310019185)-.9643991794250523),e=1+r*(112.81167849163293+r*(2235.4883906010045+4844.063053251255*r))),n/e)}(n)}return e}function Yl(r){return 1+Ta(r)}function ql(r){return 1-Ta(r)}function Dl(r){return Ut($r(r),Hr(r))}function zl(r,n,e,t){return n[t]=Ac(r),n[t+e]=Dl(r),n}function Wl(r){return zl(r,[0,0],1,0)}Lr(Wl,"assign",zl);var Gl=Y+1,Zl=1e308;function Jl(r,n){var e,t;return Z(r)||Z(n)||xr(n)?NaN:xr(r)||0===r||nGl&&n<=0?r:n>Cc?0*r:n$l||r0?W:H:(n=rn(r))>1?n>=Kl?(n=cu(.5*n),n*=.5*n,r<0&&(n=-n),n):(n=.5*(n=cu(n))-.5/n,r<0&&(n=-n),n):r+r*(n*=n)*function(r){var n,e;return 0===r?.16666666666666666:((r<0?-r:r)<=1?(n=r*(r*(-.789474443963537*r-163.72585752598383)-11561.443576500522)-351754.9648081514,e=r*(36157.827983443196+r*(1*r-277.7110814206028))-2110529.7888489086):(n=(r=1/r)*(r*(-351754.9648081514*r-11561.443576500522)-163.72585752598383)-.789474443963537,e=1+r*(r*(36157.827983443196+-2110529.7888489086*r)-277.7110814206028)),n/e)}(n)}var rh=Pr(.017453292519943295);function nh(r){return Pr(Pr(r)*rh)}var eh=1.4616321446374059,th=3.309564688275257e-10,ih=9.016312093258695e-20,oh=.9955816268920898;var uh=10;function ah(r){var n,e;if(Z(r)||0===r)return NaN;if(r<=-1){if((n=(r=1-r)-C(r))>.5&&(n-=1),0===n)return NaN;e=Lt/Ll(Lt*n)}else e=0;if(r>=uh)return e+=function(r){var n;return qe(r-=1)+1/(2*r)-(n=1/(r*r))*function(r){return 0===r?.08333333333333333:.08333333333333333+r*(r*(.003968253968253968+r*(r*(.007575757575757576+r*(r*(.08333333333333333+-.4432598039215686*r)-.021092796092796094))-.004166666666666667))-.008333333333333333)}(n)}(r),e;for(;r>2;)e+=1/(r-=1);for(;r<1;)e-=1/r,r+=1;return e+=function(r){var n,e;return n=r-eh,n-=th,n-=ih,e=function(r){var n,e;return 0===r?.25479851061131553:((r<0?-r:r)<=1?(n=.25479851061131553+r*(r*(r*(r*(r*(0*r-.002071332116774595)-.04525132144873906)-.28919126444774784)-.6503185377089651)-.3255503118680449),e=1+r*(2.076711702373047+r*(1.4606242909763516+r*(.43593529692665967+r*(.054151797245674226+r*(.0021284987017821146+-5.578984132167551e-7*r)))))):(n=0+(r=1/r)*(r*(r*(r*(r*(.25479851061131553*r-.3255503118680449)-.6503185377089651)-.28919126444774784)-.04525132144873906)-.002071332116774595),e=r*(.0021284987017821146+r*(.054151797245674226+r*(.43593529692665967+r*(1.4606242909763516+r*(2.076711702373047+1*r)))))-5.578984132167551e-7),n/e)}(r-1),n*oh+n*e}(r),e}function fh(r){return Z(r)?NaN:0===r?W:0}var sh=[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],ch=[-.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],lh=[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 hh=129,ph=170,vh=709,dh=1.2433929443359375,gh=.6986598968505859;function mh(r){var n,e,t,i,o,u,a,f,s;if(Z(r))return NaN;if(1===r)return NaN;if(r>=56)return 1;if(z(r)&&(i=0|r)===r){if(!(i<0))return 0==(1&i)?ch[i/2]:sh[(i-3)/2];if(0==(1&(t=0|-i)))return 0;if((u=(t+1)/2|0)<=hh)return-lh[u]/(t+1)}return rn(r)ph?(n=2*Da(.5*e)*mh(r),o=ff(r),(o-=r*qe(kf))>vh?n<0?H:W:n*cu(o)):2*Da(.5*e)*Qu(kf,-r)*Sa(r)*mh(r)):r<1?(n=0===(a=e)?.2433929443359375:((a<0?-a:a)<=1?(f=.2433929443359375+a*(a*(.055761621477604675+a*(a*(.0004515345286457964+-9332412703570615e-21*a)-.003209124988790859))-.4909247051635357),s=1+a*(a*(.04196762233099861+a*(a*(.00024978985622317937+-10185578841856403e-21*a)-.00413421406552171))-.27996033431034445)):(f=(a=1/a)*(.0004515345286457964+a*(a*(.055761621477604675+a*(.2433929443359375*a-.4909247051635357))-.003209124988790859))-9332412703570615e-21,s=a*(.00024978985622317937+a*(a*(.04196762233099861+a*(1*a-.27996033431034445))-.00413421406552171))-10185578841856403e-21),f/s),n-=dh,n+=e,n/=e):r<=2?(n=1/(e=-e))+function(r){var n,e;return 0===r?.5772156649015329:((r<0?-r:r)<=1?(n=.5772156649015329+r*(.24321064694010716+r*(.04173646739882165+r*(.003902520870728433+r*(.0002496063671518772+1101084409767329e-20*r)))),e=1+r*(.29520127712663174+r*(.043460910607305496+r*(.004349305820858264+r*(.0002557842261404885+10991819782396113e-21*r))))):(n=1101084409767329e-20+(r=1/r)*(.0002496063671518772+r*(.003902520870728433+r*(.04173646739882165+r*(.24321064694010716+.5772156649015329*r)))),e=10991819782396113e-21+r*(.0002557842261404885+r*(.004349305820858264+r*(.043460910607305496+r*(.29520127712663174+1*r))))),n/e)}(e):r<=4?(n=gh+1/-e)+function(r){var n,e;return 0===r?-.053725830002359504:((r<0?-r:r)<=1?(n=r*(.04451634732923656+r*(.012867767353451996+r*(.0009754177045739176+r*(7698751015736541e-20+r*(3280325100003831e-21+0*r)))))-.053725830002359504,e=1+r*(.3338319455303405+r*(.048779843129140764+r*(.0047903970857355845+r*(.00027077670395633634+r*(10695186753205734e-21+2.3627662397497864e-8*r)))))):(n=0+(r=1/r)*(3280325100003831e-21+r*(7698751015736541e-20+r*(.0009754177045739176+r*(.012867767353451996+r*(.04451634732923656+-.053725830002359504*r))))),e=2.3627662397497864e-8+r*(10695186753205734e-21+r*(.00027077670395633634+r*(.0047903970857355845+r*(.048779843129140764+r*(.3338319455303405+1*r)))))),n/e)}(r-2):r<=7?(n=function(r){var n,e;return 0===r?-2.497101906022594:((r<0?-r:r)<=1?(n=r*(r*(r*(r*(r*(r*(0+r*(0+0*r))-22925731059489392e-21)-.007017212405498024)-.13844861799574154)-.9392604353771099)-2.600133018094757)-2.497101906022594,e=1+r*(.7060390259377451+r*(.15739599649558628+r*(.010611795097684508+r*(r*(49340956392759e-19+r*(r*(7.188337293654598e-9+-1.1292001134749475e-10*r)-2.3405548702528722e-7))-36910273311764616e-21))))):(n=0+(r=1/r)*(0+r*(0+r*(r*(r*(r*(r*(-2.497101906022594*r-2.600133018094757)-.9392604353771099)-.13844861799574154)-.007017212405498024)-22925731059489392e-21))),e=r*(7.188337293654598e-9+r*(r*(49340956392759e-19+r*(r*(.010611795097684508+r*(.15739599649558628+r*(.7060390259377451+1*r)))-36910273311764616e-21))-2.3405548702528722e-7))-1.1292001134749475e-10),n/e)}(r-4),1+cu(n)):r<15?(n=function(r){var n,e;return 0===r?-4.785580284951356:((r<0?-r:r)<=1?(n=r*(r*(r*(r*(.0011514092388917874+r*(6399492042131645e-20+r*(1393489324453249e-21+r*(0+0*r))))-.0001892047582600767)-.21140713487441282)-1.8919736488197254)-4.785580284951356,e=1+r*(.24434533737818856+r*(.008733707544922887+r*(r*(r*(r*(4.710012640030765e-9+r*(6998415452048457e-28*r-8333784406253855e-26))-21750464515767985e-22)-7437436828999331e-20)-.0011759276533443448)))):(n=0+(r=1/r)*(0+r*(1393489324453249e-21+r*(6399492042131645e-20+r*(.0011514092388917874+r*(r*(r*(-4.785580284951356*r-1.8919736488197254)-.21140713487441282)-.0001892047582600767))))),e=6998415452048457e-28+r*(r*(4.710012640030765e-9+r*(r*(r*(r*(.008733707544922887+r*(.24434533737818856+1*r))-.0011759276533443448)-7437436828999331e-20)-21750464515767985e-22))-8333784406253855e-26)),n/e)}(r-7),1+cu(n)):r<36?(n=function(r){var n,e;return 0===r?-10.39489505733089:((r<0?-r:r)<=1?(n=r*(r*(r*(r*(r*(r*(-8.214657090954655e-9*r-7.855236337967234e-7)-3825293235079675e-20)-.001194591734169687)-.025115606465534634)-.34772826653924577)-2.858272196711067)-10.39489505733089,e=1+r*(.2081963335726719+r*(.019568765731720502+r*(.0011107963810248593+r*(40850774626603926e-21+r*(9.555611230656935e-7+r*(1.185071534740229e-8+2226094836273526e-30*r))))))):(n=(r=1/r)*(r*(r*(r*(r*(r*(-10.39489505733089*r-2.858272196711067)-.34772826653924577)-.025115606465534634)-.001194591734169687)-3825293235079675e-20)-7.855236337967234e-7)-8.214657090954655e-9,e=2226094836273526e-30+r*(1.185071534740229e-8+r*(9.555611230656935e-7+r*(40850774626603926e-21+r*(.0011107963810248593+r*(.019568765731720502+r*(.2081963335726719+1*r))))))),n/e)}(r-15),1+cu(n)):1+Qu(2,-r))}function yh(r){return Z(r)?NaN:1===r?ke:-Uf(2,1-r)*mh(r)}var wh=.3183098861837907;function bh(r){var n,e,t,i,o,u;return u=r,r<0&&(u=r/(r-1),n=!0),0===u?We:1===u?W:u>1?NaN:(u<.1?o=function(r){return 0===r?1.5910034537907922:1.5910034537907922+r*(.41600074399178694+r*(.24579151426410342+r*(.17948148291490615+r*(.14455605708755515+r*(.12320099331242772+r*(.10893881157429353+r*(.09885340987159291+r*(.09143962920174975+r*(.0858425915954139+.08154111871830322*r)))))))))}(u-.05):u<.2?o=function(r){return 0===r?1.63525673226458:1.63525673226458+r*(.4711906261487323+r*(.3097284108314996+r*(.2522083117731357+r*(.22672562321968465+r*(.21577444672958598+r*(.21310877187734892+r*(.21602912460518828+r*(.2232558316330579+r*(.23418050129420992+r*(.24855768297226408+.26636380989261754*r))))))))))}(u-.15):u<.3?o=function(r){return 0===r?1.685750354812596:1.685750354812596+r*(.5417318486132803+r*(.40152443839069024+r*(.3696424734208891+r*(.37606071535458363+r*(.4052358870851259+r*(.45329438175399905+r*(.5205189476511842+r*(.609426039204995+r*(.7242635222829089+r*(.8710138477098124+1.057652872753547*r))))))))))}(u-.25):u<.4?o=function(r){return 0===r?1.7443505972256133:1.7443505972256133+r*(.6348642753719353+r*(.5398425641644455+r*(.5718927051937874+r*(.6702951362654062+r*(.8325865900109772+r*(1.0738574482479333+r*(1.4220914606754977+r*(1.9203871834023047+r*(2.6325525483316543+r*(3.6521097473190394+r*(5.115867135558866+7.224080007363877*r)))))))))))}(u-.35):u<.5?o=function(r){return 0===r?1.8138839368169826:1.8138839368169826+r*(.7631632457005573+r*(.7619286053215958+r*(.9510746536684279+r*(1.315180671703161+r*(1.9285606934774109+r*(2.9375093425313787+r*(4.594894405442878+r*(7.33007122188172+r*(11.871512597425301+r*(19.45851374822938+r*(32.20638657246427+r*(53.73749198700555+90.27388602941*r))))))))))))}(u-.45):u<.6?o=function(r){return 0===r?1.8989249102715535:1.8989249102715535+r*(.9505217946182445+r*(1.1510775899590158+r*(1.7502391069863006+r*(2.952676812636875+r*(5.285800396121451+r*(9.83248571665998+r*(18.787148683275596+r*(36.61468615273698+r*(72.45292395127771+r*(145.1079577347069+r*(293.4786396308497+r*(598.385181505501+r*(1228.4200130758634+2536.5297553827645*r)))))))))))))}(u-.55):u<.7?o=function(r){return 0===r?2.0075983984243764:2.0075983984243764+r*(1.2484572312123474+r*(1.9262346570764797+r*(3.7512896400875877+r*(8.119944554932045+r*(18.665721308735552+r*(44.603924842914374+r*(109.50920543094983+r*(274.2779548232414+r*(697.5598008606327+r*(1795.7160145002472+r*(4668.38171679039+r*(12235.762468136643+r*(32290.17809718321+r*(85713.07608195965+r*(228672.1890493117+612757.2711915852*r)))))))))))))))}(u-.65):u<.8?o=function(r){return 0===r?2.1565156474996434:2.1565156474996434+r*(1.7918056418494632+r*(3.8267512874657132+r*(10.386724683637972+r*(31.403314054680703+r*(100.92370394986955+r*(337.3268282632273+r*(1158.7079305678278+r*(4060.9907421936323+r*(14454.001840343448+r*(52076.661075994045+r*(189493.65914621568+r*(695184.5762413896+r*(2567994.048255285+r*(9541921.966748387+r*(35634927.44218076+r*(133669298.46120408+r*(503352186.68662846+r*(1901975729.53866+7208915015.330104*r))))))))))))))))))}(u-.75):u<.85?o=function(r){return 0===r?2.3181226217125106:2.3181226217125106+r*(2.6169201502912327+r*(7.897935075731356+r*(30.502397154466724+r*(131.48693655235286+r*(602.9847637356492+r*(2877.024617809973+r*(14110.519919151804+r*(70621.4408815654+r*(358977.266582531+r*(1847238.2637239718+r*(9600515.416049214+r*(50307677.08502367+r*(265444188.6527128+r*(1408862325.0287027+7515687935.373775*r))))))))))))))}(u-.825):u<.9?o=function(r){return 0===r?2.473596173751344:2.473596173751344+r*(3.727624244118099+r*(15.607393035549306+r*(84.12850842805888+r*(506.98181970406137+r*(3252.2770581451236+r*(21713.242419574344+r*(149037.04518909327+r*(1043999.3310899908+r*(7427974.817042039+r*(53503839.67558661+r*(389249886.99487084+r*(2855288351.1008105+r*(21090077038.76684+r*(156699833947.7902+r*(1170222242422.44+r*(8777948323668.9375+r*(66101242752484.95+r*(499488053713388.8+0x86813c6c7adde8*r))))))))))))))))))}(u-.875):(i=function(r){return 0===r?0:0+r*(.0625+r*(.03125+r*(.0205078125+r*(.01513671875+r*(.011934280395507812+r*(.009816169738769531+r*(.008315593004226685+r*(.007199153304100037+r*(.00633745662344154+r*(.00565311038371874+r*(.005097046040418718+r*(.004636680381850056+r*(.004249547423822886+.003919665602267974*r)))))))))))))}(t=1-u),e=function(r){return 0===r?1.5910034537907922:1.5910034537907922+r*(.41600074399178694+r*(.24579151426410342+r*(.17948148291490615+r*(.14455605708755515+r*(.12320099331242772+r*(.10893881157429353+r*(.09885340987159291+r*(.09143962920174975+r*(.0858425915954139+.08154111871830322*r)))))))))}(t-.05),o=-qe(i)*(e*wh)),n?o/M(1-r):o)}function Eh(r){var n,e,t,i,o,u,a;return a=r,r<0&&(a=r/(r-1),n=!0),0===a?We:1===a?1:a>1?NaN:(a<.1?u=function(r){return 0===r?1.5509733517804722:1.5509733517804722+r*(r*(r*(r*(r*(r*(r*(r*(-.004809187786009338*r-.00580742401295609)-.007246728512402157)-.009442372874146548)-.01305950773199331)-.0197180433173655)-.034318853117591995)-.07849861944294194)-.4003010201031985)}(a-.05):a<.2?u=function(r){return 0===r?1.5101218320928198:1.5101218320928198+r*(r*(r*(r*(r*(r*(r*(r*(r*(-.011197445703074968*r-.011799303775587354)-.012759847429264804)-.01426196082884252)-.016650786739707237)-.020644781177568104)-.027965493064761784)-.04372994401908431)-.09012382040477457)-.41711633390586755)}(a-.15):a<.3?u=function(r){return 0===r?1.4674622093394272:1.4674622093394272+r*(r*(r*(r*(r*(r*(r*(r*(r*(-.03478996038640416*r-.03237139531475812)-.0309169840192389)-.030527000890325277)-.031495443512532785)-.03452772850528084)-.04139162772734022)-.05737184359324173)-.10515555766694255)-.43657629094633776)}(a-.25):a<.4?u=function(r){return 0===r?1.4226911334908792:1.4226911334908792+r*(r*(r*(r*(r*(r*(r*(r*(r*(r*(-.1607911206912746*r-.12705358515769605)-.102539850131046)-.084959075171781)-.07279389536257878)-.06519703281557247)-.06208433913173031)-.06471427847205)-.07813854509440948)-.12525053982206188)-.4595135196210487)}(a-.35):a<.5?u=function(r){return 0===r?1.3754019718711163:1.3754019718711163+r*(r*(r*(r*(r*(r*(r*(r*(r*(r*(r*(-1.3088332057585401*r-.8605232357272398)-.5757544060278792)-.39351311430437586)-.27617433306775174)-.20049532364269734)-.15221716396203505)-.12295422312026907)-.10884095252313576)-.11184944491702783)-.15331170134854022)-.4872021832731848)}(a-.45):a<.6?u=function(r){return 0===r?1.3250244979582302:1.3250244979582302+r*(r*(r*(r*(r*(r*(r*(r*(r*(r*(r*(-11.97703130208884*r-6.446753640156048)-3.5316967730957227)-1.9767211439543984)-1.1363431218392293)-.675948400853106)-.42069845728100574)-.27879895311853475)-.20275465292641914)-.17162372682201127)-.19490643048212622)-.5217276475575667)}(a-.55):a<.7?u=function(r){return 0===r?1.2707074796501499:1.2707074796501499+r*(r*(r*(r*(r*(r*(r*(r*(r*(r*(r*(r*(r*(-1137.38082216936*r-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?u=function(r){return 0===r?1.2110560275684594:1.2110560275684594+r*(r*(r*(r*(r*(r*(r*(r*(r*(r*(r*(r*(r*(r*(r*(-1104011.3443115912*r-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?u=function(r){return 0===r?1.1613071521962828:1.1613071521962828+r*(r*(r*(r*(r*(r*(r*(r*(r*(r*(r*(r*(-1920033.4136826345*r-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?u=function(r){return 0===r?1.1246173251197522:1.1246173251197522+r*(r*(r*(r*(r*(r*(r*(r*(r*(r*(r*(r*(r*(r*(r*(-36409256888.1214*r-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):(e=function(r){return 0===r?1.5910034537907922:1.5910034537907922+r*(.41600074399178694+r*(.24579151426410342+r*(.17948148291490615+r*(.14455605708755515+r*(.12320099331242772+r*(.10893881157429353+r*(.09885340987159291+r*(.09143962920174975+r*(.0858425915954139+.08154111871830322*r)))))))))}(i=.95-a),t=function(r){return 0===r?1.5509733517804722:1.5509733517804722+r*(r*(r*(r*(r*(r*(r*(r*(-.004809187786009338*r-.00580742401295609)-.007246728512402157)-.009442372874146548)-.01305950773199331)-.0197180433173655)-.034318853117591995)-.07849861944294194)-.4003010201031985)}(i),o=bh(a),u=(We+o*(e-t))/e),n?u*M(1-r):u)}var _h=Ms("elilpj:assign"),xh=[0,0,0,0],Th=[0,0],Nh=[0,0,0,0,0,0,0,0,0];function Ah(r,n,e,t,i){var o,u,a,f,s,c,l,h,p,v,d,g,m,y,w,b,E,_,x,T,N,A,V,O,j,S,R,I;if(n<0)y=-n/(1-n),Ah(r*(f=M(1-n)),y,xh,1,0),_=xh[0]/xh[2]/f,x=xh[1]/xh[2],T=1/xh[2],N=NaN;else if(n>1)Ah(r*(A=M(n)),1/n,xh,1,0),_=xh[0]/A,x=xh[2],T=xh[1],N=NaN;else if(0===n)lo(r,Th,1,0),_=Th[0],x=Th[1],T=1,N=r;else if(1===n)_=Cl(r),T=x=1/Al(r),N=Je(Ql(r));else if(n1-sf)d=(m=(a=r/(w=2*bh(n))+.5)%4)>=1&&m<2,c=Ql(g=w*(a%1-.5)),s=1/Al(g),_=(l=Cl(g))+(R=(S=.25*(1-n))*(c-g*s))*s,x=s-R*l,T=s+S*(c+g*s)*l,N=C(a)*Lt+Je(c)+R,d&&(_=-_,x=-x);else{S=1,R=M(1-n),I=-1,u=!1;do{if((I+=1)>8){u=!0,_=NaN,x=NaN,T=NaN,N=NaN,_h("Warning: Overflow encountered in iteration. Returning NaN for all output values.");break}v=.5*(S+R),O=.5*(S-R),R=M(S*R),S=v,Nh[I]=O/S}while(Nh[I]>=on);if(!u){for(p=r*S*(1<1;)p=.5*(p+jn(Nh[I-=1]*Ta(p)));lo(N=h=.5*(p+jn(Nh[0]*Ta(p))),Th,1,0),_=Th[0],x=Th[1],T=rn(o=qa(p-h))<.1?M(1-n*_*_):x/o}}return e[i]=_,e[i+t]=x,e[i+2*t]=T,e[i+3*t]=N,e}function Vh(r,n){return Ah(r,n,[0,0,0,0],1,0)}var Oh=[0,0,0,0];var jh=[0,0,0,0];var Sh=[0,0,0,0];var Rh=[0,0,0,0];Lr(Vh,"assign",Ah),Lr(Vh,"sn",(function(r,n){return Ah(r,n,Oh,1,0),Oh[0]})),Lr(Vh,"cn",(function(r,n){return Ah(r,n,jh,1,0),jh[1]})),Lr(Vh,"dn",(function(r,n){return Ah(r,n,Sh,1,0),Sh[2]})),Lr(Vh,"am",(function(r,n){return Ah(r,n,Rh,1,0),Rh[3]}));var Ih=1e-300,kh=2848094538889218e-321,Bh=3.725290298461914e-9,Fh=.8450629115104675,Ph=.1283791670955126,Lh=1.0270333367641007,Uh=.12837916709551256,Mh=1,Ch=-.0023621185607526594,Yh=1,qh=-.009864944034847148,Dh=1,zh=-.0098649429247001,Wh=1;function Gh(r){var n,e,t,i,o,u,a;return Z(r)?NaN:r===W?1:r===H?-1:0===r?r:(r<0?(n=!0,e=-r):(n=!1,e=r),e<.84375?e=6?n?Ih-1:1-Ih:(o=1/(e*e),e<2.857142857142857?(i=qh+o*function(r){return 0===r?-.6938585727071818:r*(r*(r*(r*(r*(-9.814329344169145*r-81.2874355063066)-184.60509290671104)-162.39666946257347)-62.375332450326006)-10.558626225323291)-.6938585727071818}(o),o=Dh+o*function(r){return 0===r?19.651271667439257:19.651271667439257+r*(137.65775414351904+r*(434.56587747522923+r*(645.3872717332679+r*(429.00814002756783+r*(108.63500554177944+r*(6.570249770319282+-.0604244152148581*r))))))}(o)):(i=zh+o*function(r){return 0===r?-.799283237680523:r*(r*(r*(r*(-483.5191916086514*r-1025.0951316110772)-637.5664433683896)-160.63638485582192)-17.757954917754752)-.799283237680523}(o),o=Wh+o*function(r){return 0===r?30.33806074348246:30.33806074348246+r*(325.7925129965739+r*(1536.729586084437+r*(3199.8582195085955+r*(2553.0504064331644+r*(474.52854120695537+-22.44095244658582*r)))))}(o)),i=cu(-(t=vu(e,0))*t-.5625)*cu((t-e)*(t+e)+i/o),n?i/e-1:1-i/e))}var Zh=[function(r){return.0007087803245410644+(.000712340910470263+(35779077297597742e-22+(1.7403143962587938e-8+(8171066004730779e-26+(3688502236043496e-28+15917038551111112e-31*r)*r)*r)*r)*r)*r},function(r){return.0021479143208285143+(.0007268640236737999+(36843175430938994e-22+(1.80718412721492e-8+(8549644929604033e-26+(3885203751853429e-28+16868473576888889e-31*r)*r)*r)*r)*r)*r},function(r){return.0036165255935630175+(.0007418209232355551+(3794831995752824e-21+(1.8771627021793087e-8+(8948471512241509e-26+(4093585851777244e-28+1787206146488889e-30*r)*r)*r)*r)*r)*r},function(r){return.005115498386003198+(.0007572284073479166+(390964257267357e-20+(1.950416870430047e-8+(93687503063179e-24+(43143925959079665e-29+18939926435555556e-31*r)*r)*r)*r)*r)*r},function(r){return.006645751317267305+(.0007731040605444745+(4028951058939944e-21+(2.0271233238288382e-8+(981176313217091e-25+(4548420740601775e-28+2007635221333333e-30*r)*r)*r)*r)*r)*r},function(r){return.008208238997024121+(.0007894662961188171+(4152970155262265e-21+(2.1074693344544657e-8+(1.0278874108587318e-10+(4796520139061334e-28+21285907413333335e-31*r)*r)*r)*r)*r)*r},function(r){return.009803953727535219+(.0008063344010834284+(4281924132973699e-21+(2.1916534346907168e-8+(1.0771535136565471e-10+(5059597262369282e-28+22573462684444446e-31*r)*r)*r)*r)*r)*r},function(r){return.011433927298290302+(.0008237285838319657+(4416049531176544e-21+(2.2798861426211987e-8+(1.129129174587924e-10+(5338618936581688e-28+23944209546666666e-31*r)*r)*r)*r)*r)*r},function(r){return.013099232878814654+(.0008416700246790696+(4555595898845751e-21+(2.3723907357214174e-8+(1.1839789326602696e-10+(5634616306755024e-28+25403679644444446e-31*r)*r)*r)*r)*r)*r},function(r){return.014800987015587536+(.0008601809294634594+(4700826584881687e-21+(2.4694040760197315e-8+(1.2418779768752298e-10+(5948689037032026e-28+2695776456888889e-30*r)*r)*r)*r)*r)*r},function(r){return.01654035173939407+(.0008792845864124146+(4852019579300175e-21+(2.571177490088171e-8+(1.3030128534230821e-10+(6282009758687478e-28+28612737351111112e-31*r)*r)*r)*r)*r)*r},function(r){return.018318536789842393+(.0008990054264789172+(5009468408955337e-21+(2.677977707421807e-8+(1.3675822186304616e-10+(6635828774535271e-28+30375273884444443e-31*r)*r)*r)*r)*r)*r},function(r){return.020136801964214277+(.0009193690873767368+(51734830914104276e-22+(2.7900878609710433e-8+(1.435797640280904e-10+(7011479031104373e-28+32252476e-22*r)*r)*r)*r)*r)*r},function(r){return.021996459598282742+(.0009404024815536678+(5344391150804117e-21+(2.9078085538049375e-8+(1.507884450032973e-10+(741038136474992e-27+3425189232e-24*r)*r)*r)*r)*r)*r},function(r){return.02389887718722632+(.0009621338683590018+(55225386998049015e-22+(3.0314589961047687e-8+(1.5840826497296334e-10+(7834050047241445e-28+36381553564444445e-31*r)*r)*r)*r)*r)*r},function(r){return.025845480155298518+(.0009845929306782012+(5708291592005185e-21+(3.161378216916483e-8+(1.664647874552963e-10+(828409859287854e-27+3864997576888889e-30*r)*r)*r)*r)*r)*r},function(r){return.027837754783474698+(.0010078108563256892+(59020366493792216e-22+(3.297926355324652e-8+(1.7498524159268457e-10+(8762245912484253e-28+4106620648888889e-30*r)*r)*r)*r)*r)*r},function(r){return.029877251304899308+(.001031820424505735+(6104182969716206e-21+(3.441486035954272e-8+(1.839986307293409e-10+(9270322736636504e-28+43639844053333335e-31*r)*r)*r)*r)*r)*r},function(r){return.03196558717859645+(.0010566560976716574+(6315163319241458e-21+(3.592463833952192e-8+(1.9353584758781173e-10+(9810278385988926e-28+46381060817777776e-31*r)*r)*r)*r)*r)*r},function(r){return.03410445055258834+(.0010823541191350532+(6535435615955393e-21+(3.7512918348533524e-8+(2.0362979635817883e-10+(10384187833037281e-28+4930062526222222e-30*r)*r)*r)*r)*r)*r},function(r){return.036295603928292425+(.0011089526167995269+(6765484509551836e-21+(3.918429294991359e-8+(2.1431552202133775e-10+(10994259106646732e-28+5240994910222222e-30*r)*r)*r)*r)*r)*r},function(r){return.03854088803884051+(.001136491713417542+(7005823064124631e-21+(4.0943644083718584e-8+(2.2563034723692883e-10+(11642841011361993e-28+5572109287111111e-30*r)*r)*r)*r)*r)*r},function(r){return.04084222595478596+(.0011650136437945675+(72569945502343e-19+(4.279616186185504e-8+(2.3761401711005023e-10+(12332431172381557e-28+5924680236444444e-30*r)*r)*r)*r)*r)*r},function(r){return.04320162743154022+(.0011945628793917271+(751957435328492e-20+(4.474736455396099e-8+(2.503088521647295e-10+(13065684400300477e-28+6300053285333334e-30*r)*r)*r)*r)*r)*r},function(r){return.04562119351381047+(.001225186260806753+(7794172005555192e-21+(4.680311983095446e-8+(2.6375990983978426e-10+(1384542137097712e-27+66996477404444446e-31*r)*r)*r)*r)*r)*r},function(r){return.048103121413299865+(.0012569331386432195+(8081433349636768e-21+(4.896966733568202e-8+(2.7801515481905746e-10+(14674637611609885e-28+7124958935111111e-30*r)*r)*r)*r)*r)*r},function(r){return.05064970967698334+(.0012898555233099055+(838204284145688e-20+(5.125364265255184e-8+(2.9312563849675507e-10+(15556512782814827e-28+7577560782222223e-30*r)*r)*r)*r)*r)*r},function(r){return.053263363664388864+(.0013240082443256975+(8696726001500767e-21+(5.36621027503968e-8+(3.09145687866348e-10+(16494420240828494e-28+8059107964444444e-30*r)*r)*r)*r)*r)*r},function(r){return.05594660135350001+(.001359449119740819+(9026252023301638e-21+(5.6202552975056696e-8+(3.261331041050314e-10+(17491936862246368e-28+8571338168888888e-30*r)*r)*r)*r)*r)*r},function(r){return.058702059496154084+(.0013962391363223647+(9371436548731279e-21+(5.8882975670265285e-8+(3.4414937110591756e-10+(1855285310975186e-27+911607367111111e-29*r)*r)*r)*r)*r)*r},function(r){return.061532500145144775+(.0014344426411912014+(9733144620101681e-21+(6.171186050734718e-8+(3.63259874182953e-10+(19681183310134517e-28+969522384e-23*r)*r)*r)*r)*r)*r},function(r){return.06444081757665329+(.0014741275456383132+(10112293819576438e-21+(6.469823660593325e-8+(3.8353412915303665e-10+(2088117611438512e-27+1031078448e-23*r)*r)*r)*r)*r)*r},function(r){return.06743004563313039+(.001515365541891654+(10509857606888329e-21+(6.785170652936334e-8+(4.050460219481114e-10+(22157325110542536e-28+10964842115555555e-30*r)*r)*r)*r)*r)*r},function(r){return.07050336551333886+(.001558232333649571+(1092686886686523e-20+(7.118248223961351e-8+(4.2787405890153386e-10+(2351437952227442e-27+11659571751111111e-30*r)*r)*r)*r)*r)*r},function(r){return.0736641140379446+(.001602807881243882+(11364423678778208e-21+(7.470142309742318e-8+(4.521016277747649e-10+(2495735500408857e-27+12397238257777777e-30*r)*r)*r)*r)*r)*r},function(r){return.07691579242081956+(.0016491766623447889+(11823685320041301e-21+(7.842007599378154e-8+(4.778172695691648e-10+(26491544403815725e-28+13180196462222222e-30*r)*r)*r)*r)*r)*r},function(r){return.08026207557809462+(.0016974279491709504+(12305888517309891e-21+(8.235071769897904e-8+(5.051149610985711e-10+(281225284976269e-26+14010889635555555e-30*r)*r)*r)*r)*r)*r},function(r){return.08370682200898036+(.0017476561032212657+(12812343958540764e-21+(8.650639951503644e-8+(5.340944082386946e-10+(29856186620887555e-28+1489185159111111e-29*r)*r)*r)*r)*r)*r},function(r){return.08725408428446171+(.0017999608886001962+(13344443080089493e-21+(9.0900994316429e-8+(5.648613497261646e-10+(3169870708003396e-27+15825697795555556e-30*r)*r)*r)*r)*r)*r},function(r){return.09090812018217274+(.00185444780506577+(1390366314342612e-20+(9.554924606254991e-8+(5.975278712524205e-10+(336565973660991e-26+16815130613333334e-30*r)*r)*r)*r)*r)*r},function(r){return.09467340450807549+(.0019112284419887304+(14491572616545005e-21+(1.0046682186333614e-7+(6.3221272959791e-10+(3573669397558913e-27+1786293159111111e-29*r)*r)*r)*r)*r)*r},function(r){return.09855464164800445+(.0019704208544725622+(15109836875625445e-21+(1.0567036667675984e-7+(6.690416864001935e-10+(3794617185082434e-27+1897195904e-23*r)*r)*r)*r)*r)*r},function(r){return.1025567788947009+(.0020321499629472857+(1576022424296218e-20+(1.1117756071353507e-7+(7.081478511009766e-10+(4029255327663256e-27+20145143075555556e-30*r)*r)*r)*r)*r)*r},function(r){return.10668502059865094+(.002096547977614873+(16444612377624982e-21+(1.1700717962026153e-7+(7.496720325093842e-10+(42783716186085925e-28+2138547936e-23*r)*r)*r)*r)*r)*r},function(r){return.11094484319386444+(.002163754849190817+(17164995035719656e-21+(1.2317915750735938e-7+(7.937630983149963e-10+(4542790176310636e-27+22696025653333333e-30*r)*r)*r)*r)*r)*r},function(r){return.11534201115268805+(.002233918747454642+(17923489217504226e-21+(1.2971465288245997e-7+(8.405783418038907e-10+(48233721206418025e-28+24079890062222222e-30*r)*r)*r)*r)*r)*r},function(r){return.11988259392684095+(.002307196569191869+(18722342718958937e-21+(1.3663611754337958e-7+(8.902838548849328e-10+(5121016156922585e-27+2554022711111111e-29*r)*r)*r)*r)*r)*r},function(r){return.12457298393509812+(.0023837544771809576+(1956394210571161e-20+(1.439673684773947e-7+(9.430549064645925e-10+(5436659058313422e-27+2708022592e-23*r)*r)*r)*r)*r)*r},function(r){return.12941991566142438+(.002463768471950886+(2045082112747588e-20+(1.5173366280523906e-7+(9.990763250638903e-10+(5771276031135163e-27+28703099555555555e-30*r)*r)*r)*r)*r)*r},function(r){return.13443048593088697+(.0025474249981080823+(21385669591362916e-21+(1.5996177579900442e-7+(1.0585428844575133e-9+(6125880953678788e-27+3041208014222222e-29*r)*r)*r)*r)*r)*r},function(r){return.13961217543434562+(.0026349215871051762+(22371342712572568e-21+(1.6868008199296823e-7+(1.1216596910444997e-9+(6501526475309089e-27+3221039450666667e-29*r)*r)*r)*r)*r)*r},function(r){return.144972871576738+(.002726467538398244+(2341087096105095e-20+(1.7791863939526378e-7+(1.1886425714330958e-9+(68993039665054284e-28+34101266222222225e-30*r)*r)*r)*r)*r)*r},function(r){return.15052089272774619+(.0028222846410136237+(24507470422713398e-21+(1.8770927679626137e-7+(1.259718458758337e-9+(7320343304922983e-27+36087889048888887e-30*r)*r)*r)*r)*r)*r},function(r){return.1562650139577461+(.0029226079376196627+(2566455369376845e-20+(1.9808568415654462e-7+(1.3351257759815557e-9+(7765812489104676e-27+3817342003555556e-29*r)*r)*r)*r)*r)*r},function(r){return.16221449434620738+(.0030276865332726477+(26885741326534563e-21+(2.0908350604346383e-7+(1.415114814424073e-9+(8236917066597432e-27+4036095745777778e-29*r)*r)*r)*r)*r)*r},function(r){return.1683791059541213+(.0031377844510793083+(28174873844911173e-21+(2.2074043807045782e-7+(1.499948105599609e-9+(8734899366193081e-27+4265352897777778e-29*r)*r)*r)*r)*r)*r},function(r){return.1747691645565937+(.0032531815370903066+(29536024347344365e-21+(2.3309632627767074e-7+(1.5899007843582445e-9+(9261037523542736e-27+45054073102222224e-30*r)*r)*r)*r)*r)*r},function(r){return.18139556223643702+(.0033741744168097+(309735117147095e-19+(2.461932693759229e-7+(1.6852609412267751e-9+(981664429428549e-26+4756541809777778e-29*r)*r)*r)*r)*r)*r},function(r){return.18826980194443665+(.0035010775057740316+(3249191444001427e-20+(2.600757237588632e-7+(1.7863299617388377e-9+(10403065638343878e-27+5019026583111111e-29*r)*r)*r)*r)*r)*r},function(r){return.19540403413693969+(.0036342240767211326+(34096085096200906e-21+(2.7479061117017636e-7+(1.8934228504790033e-9+(11021679075323599e-27+5293117173333333e-29*r)*r)*r)*r)*r)*r},function(r){return.20281109560651886+(.00377396738593236+(3579116545759241e-20+(2.9038742889416174e-7+(2.0068685374849e-9+(11673891799578381e-27+55790523093333335e-30*r)*r)*r)*r)*r)*r},function(r){return.21050455062669335+(.003920681861392565+(37582602289680105e-21+(3.0691836231886877e-7+(2.1270101645763676e-9+(12361138551062899e-27+5877052016e-23*r)*r)*r)*r)*r)*r},function(r){return.21849873453703333+(.004074764355468959+(3947616382098671e-20+(3.244383997013992e-7+(2.254205349151868e-9+(13084879235290859e-27+6187315326222222e-29*r)*r)*r)*r)*r)*r},function(r){return.2268087999004323+(.004236635464862852+(41477956909656896e-21+(3.430054489450281e-7+(2.3888264229264067e-9+(13846596292818514e-27+6510018375111112e-29*r)*r)*r)*r)*r)*r},function(r){return.23545076536988704+(.004406740920636517+(435944449162247e-19+(3.6268045617760415e-7+(2.53126064308532e-9+(14647791812837902e-27+6845312263111111e-29*r)*r)*r)*r)*r)*r},function(r){return.24444156740777434+(.004585553051160578+(45832466292683086e-21+(3.835275259003303e-7+(2.6819103733055602e-9+(15489984390884758e-27+7193320636444444e-29*r)*r)*r)*r)*r)*r},function(r){return.25379911500634267+(.004773572320865003+(48199253896534185e-21+(4.0561404245564733e-7+(2.8411932320871164e-9+(1637470573645832e-26+7554137982222222e-29*r)*r)*r)*r)*r)*r},function(r){return.26354234756393613+(.0049713289477083785+(5070245503693037e-20+(4.2901079254268185e-7+(3.009542205890048e-9+(1730349702534734e-26+7927827336888888e-29*r)*r)*r)*r)*r)*r},function(r){return.27369129607732345+(.005179384602305264+(533501522583266e-19+(4.537920884886502e-7+(3.187405724581438e-9+(1827790501024511e-26+8314418236444444e-29*r)*r)*r)*r)*r)*r},function(r){return.28426714781640317+(.005398334191669514+(5615088486525581e-20+(4.800358919649474e-7+(3.3752476967570798e-9+(19299477888083468e-27+8713904913777777e-29*r)*r)*r)*r)*r)*r},function(r){return.2952923146534852+(.0056288077305420795+(5911367118991331e-20+(5.078239378174484e-7+(3.5735475025851714e-9+(2036976093701707e-26+9126244261333333e-29*r)*r)*r)*r)*r)*r},function(r){return.3067905052252884+(.00587147230327454+(6224803160219768e-20+(5.372418576620094e-7+(3.782799941896024e-9+(2149029193044454e-26+9551353918222223e-29*r)*r)*r)*r)*r)*r},function(r){return.3187868011117332+(.00612703411923391+(6556401225970764e-20+(5.683793028783774e-7+(4.003515135339238e-9+(22662596341239295e-27+9989110976e-23*r)*r)*r)*r)*r)*r},function(r){return.33130773722152623+(.006396240664679808+(690722095929424e-19+(6.013300666188594e-7+(4.236218376588347e-9+(23888182347073697e-27+10439349811555555e-29*r)*r)*r)*r)*r)*r},function(r){return.34438138658041334+(.0066798829540414+(7278379551860356e-20+(6.36192204432288e-7+(4.481449933651445e-9+(25168535651285476e-27+10901861383111111e-29*r)*r)*r)*r)*r)*r},function(r){return.35803744972380175+(.006978797883488269+(7671054337145482e-20+(6.730681530891739e-7+(4.739764797584523e-9+(2650511414114305e-26+11376390933333332e-29*r)*r)*r)*r)*r)*r},function(r){return.37230734890119727+(.007293870689646138+(8086485454267072e-20+(7.120648471806269e-7+(5.0117323769745884e-9+(27899342394100073e-27+11862637614222222e-29*r)*r)*r)*r)*r)*r},function(r){return.3872243273055545+(.00762603751625498+(8525978581000461e-20+(7.532938330517133e-7+(5.297936136838812e-9+(2935260605416409e-26+12360253370666666e-29*r)*r)*r)*r)*r)*r},function(r){return.4028235535461694+(.007976288091502973+(8990907734243825e-20+(7.968713796195619e-7+(5.5989731807360405e-9+(30866246101464866e-27+12868841946666668e-29*r)*r)*r)*r)*r)*r},function(r){return.4191422315891379+(.008345668518695046+(9482718135925016e-20+(8.429185856178314e-7+(5.915453775108349e-9+(3244155303434747e-26+1338795794311111e-28*r)*r)*r)*r)*r)*r},function(r){return.43621971639463786+(.00873528418282895+(.000100029291420668+(8.915614828021988e-7+(6.24800081507886e-9+(3407976098345888e-26+13917107176888888e-29*r)*r)*r)*r)*r)*r},function(r){return.4540976354853433+(.009146302775554824+(.00010553137232446167+(9.429311346463863e-7+(6.597249231221996e-9+(35782041795476564e-27+14455745872e-23*r)*r)*r)*r)*r)*r},function(r){return.4728200166851233+(.009579957440886046+(.00011135019058000067+(9.971637300550903e-7+(6.963845336995697e-9+(37549499088161346e-27+1500328071288889e-28*r)*r)*r)*r)*r)*r},function(r){return.4924334222717984+(.010037550043909497+(.00011750334542845235+(10544006716188967e-22+(7.348446116824222e-9+(3938316232643575e-26+15559069118222223e-29*r)*r)*r)*r)*r)*r},function(r){return.5129870897920926+(.010520454564612427+(.00012400930037494997+(11147886579371265e-22+(7.75171845505687e-9+(41283980931872625e-27+1612241968e-22*r)*r)*r)*r)*r)*r},function(r){return.5345330797910137+(.011030120618800727+(.0001308874151957227+(11784797595374515e-22+(8.174338306304482e-9+(43252818449517084e-27+1669259264e-22*r)*r)*r)*r)*r)*r},function(r){return.557126430711693+(.011568077107929736+(.00013815797838036652+(12456314879260905e-22+(8.616989807896932e-9+(4529044681153965e-26+17268801084444443e-29*r)*r)*r)*r)*r)*r},function(r){return.5808253212251933+(.012135935999503878+(.0001458422399666584+(1316406857309571e-21+(9.080364335510602e-9+(4739754071312462e-26+1785021160888889e-28*r)*r)*r)*r)*r)*r},function(r){return.6056912402529337+(.01273539623952555+(.00015396244472258864+(13909744385382817e-22+(9.565159503230623e-9+(4957467212766904e-26+18435945564444444e-29*r)*r)*r)*r)*r)*r},function(r){return.6317891649471572+(.013368247798287032+(.00016254186562762076+(14695084048334055e-22+(1.0072078109604152e-8+(5182230499568071e-26+19025081422222223e-29*r)*r)*r)*r)*r)*r},function(r){return.6591877468972532+(.014036375850601992+(.00017160483760259707+(15521885688723188e-22+(1.060182703153528e-8+(5414079010583752e-26+19616655146666667e-29*r)*r)*r)*r)*r)*r},function(r){return.6879595068317443+(.014741765091365868+(.00018117679143520433+(16392004108230584e-22+(1.1155116068018043e-8+(5653036019492569e-26+20209663662222222e-29*r)*r)*r)*r)*r)*r},function(r){return.7181810380872997+(.015486504187117112+(.00019128428784550924+(17307350969359975e-22+(1.1732656736113608e-8+(5899112528756384e-26+20803065333333334e-29*r)*r)*r)*r)*r)*r},function(r){return.7499332191172625+(.016272790364044783+(.00020195505163377912+(18269894883203348e-22+(1.2335161021630225e-8+(6152306831216908e-26+21395783431111112e-29*r)*r)*r)*r)*r)*r},function(r){return.7833014353128349+(.01710293413265243+(.00021321800585063328+(19281661395543912e-22+(1.2963340087354342e-8+(6412604099806635e-26+21986708942222223e-29*r)*r)*r)*r)*r)*r},function(r){return.8183758104102381+(.017979364149044223+(.0002251033059275313+(20344732868018175e-22+(1.361790294183995e-8+(6679976008397248e-26+2257470126222222e-28*r)*r)*r)*r)*r)*r},function(r){return.8552514477568512+(.01890463221254756+(.00023764237370371255+(2146124825130639e-21+(1.4299555071870523e-8+(6954380386469418e-26+23158593688888887e-29*r)*r)*r)*r)*r)*r},function(r){return.8940286817084994+(.0198814183991272+(.00025086793128395994+(22633402747585233e-22+(1.500899704211653e-8+(7235760907504394e-26+23737194737777777e-29*r)*r)*r)*r)*r)*r},function(r){return.9348133394287079+(.02091253632978037+(.0002648140346599848+(23863447359754924e-22+(1.5746923065472183e-8+(7524046814172015e-26+24309291271111114e-29*r)*r)*r)*r)*r)*r},function(r){return.9777170133588503+(.02200093857283048+(.0002795161070268238+(25153688325245316e-22+(1.651401954782282e-8+(7819152682936823e-26+24873652355555557e-29*r)*r)*r)*r)*r)*r},function(){return 1}];function Jh(r){var n=C(r);return(0,Zh[n])(2*r-(2*n+1))}var Hh=.5641895835477563;var $h=.08913147449493408,Xh=2.249481201171875,Kh=.807220458984375,Qh=.9399557113647461,rp=.9836282730102539;function np(r){var n,e,t,i,o;return Z(r)?NaN:1===r?W:-1===r?H:0===r?r:r>1||r<-1?NaN:(r<0?(n=-1,e=-r):(n=1,e=r),t=1-e,e<=.5?(i=e*(e+10),o=function(r){var n,e;return 0===r?-.0005087819496582806:((r<0?-r:r)<=1?(n=r*(r*(.03348066254097446+r*(r*(r*(.02198786811111689+r*(.008226878746769157+r*(r*(0+0*r)-.005387729650712429)))-.03656379714117627)-.012692614766297404))-.008368748197417368)-.0005087819496582806,e=1+r*(r*(r*(1.5622155839842302+r*(.662328840472003+r*(r*(r*(.07952836873415717+r*(.0008862163904564247*r-.0023339375937419))-.05273963823400997)-.7122890234154284)))-1.5657455823417585)-.9700050433032906)):(n=0+(r=1/r)*(0+r*(r*(.008226878746769157+r*(.02198786811111689+r*(r*(r*(.03348066254097446+r*(-.0005087819496582806*r-.008368748197417368))-.012692614766297404)-.03656379714117627)))-.005387729650712429)),e=.0008862163904564247+r*(r*(.07952836873415717+r*(r*(r*(.662328840472003+r*(1.5622155839842302+r*(r*(1*r-.9700050433032906)-1.5657455823417585)))-.7122890234154284)-.05273963823400997))-.0023339375937419)),n/e)}(e),n*(i*$h+i*o)):t>=.25?(i=M(-2*qe(t)),o=function(r){var n,e;return 0===r?-.20243350835593876:((r<0?-r:r)<=1?(n=r*(.10526468069939171+r*(8.3705032834312+r*(17.644729840837403+r*(r*(r*(17.445385985570866+r*(21.12946554483405+-3.6719225470772936*r))-44.6382324441787)-18.851064805871424))))-.20243350835593876,e=1+r*(6.242641248542475+r*(3.971343795334387+r*(r*(r*(48.560921310873994+r*(10.826866735546016+r*(1.7211476576120028*r-22.643693341313973)))-20.14326346804852)-28.66081804998)))):(n=(r=1/r)*(21.12946554483405+r*(17.445385985570866+r*(r*(r*(17.644729840837403+r*(8.3705032834312+r*(.10526468069939171+-.20243350835593876*r)))-18.851064805871424)-44.6382324441787)))-3.6719225470772936,e=1.7211476576120028+r*(r*(10.826866735546016+r*(48.560921310873994+r*(r*(r*(3.971343795334387+r*(6.242641248542475+1*r))-28.66081804998)-20.14326346804852)))-22.643693341313973)),n/e)}(t-=.25),n*(i/(Xh+o))):(t=M(-qe(t)))<3?(o=function(r){var n,e;return 0===r?-.1311027816799519:((r<0?-r:r)<=1?(n=r*(r*(.11703015634199525+r*(.38707973897260434+r*(.3377855389120359+r*(.14286953440815717+r*(.029015791000532906+r*(.0021455899538880526+r*(r*(2.8522533178221704e-8+-6.81149956853777e-10*r)-6.794655751811263e-7)))))))-.16379404719331705)-.1311027816799519,e=1+r*(3.4662540724256723+r*(5.381683457070069+r*(4.778465929458438+r*(2.5930192162362027+r*(.848854343457902+r*(.15226433829533179+r*(.011059242293464892+r*(0+r*(0+0*r)))))))))):(n=(r=1/r)*(2.8522533178221704e-8+r*(r*(.0021455899538880526+r*(.029015791000532906+r*(.14286953440815717+r*(.3377855389120359+r*(.38707973897260434+r*(.11703015634199525+r*(-.1311027816799519*r-.16379404719331705)))))))-6.794655751811263e-7))-6.81149956853777e-10,e=0+r*(0+r*(0+r*(.011059242293464892+r*(.15226433829533179+r*(.848854343457902+r*(2.5930192162362027+r*(4.778465929458438+r*(5.381683457070069+r*(3.4662540724256723+1*r)))))))))),n/e)}(t-1.125),n*(Kh*t+o*t)):t<6?(o=function(r){var n,e;return 0===r?-.0350353787183178:((r<0?-r:r)<=1?(n=r*(r*(.018557330651423107+r*(.009508047013259196+r*(.0018712349281955923+r*(.00015754461742496055+r*(460469890584318e-20+r*(26633922742578204e-28*r-2.304047769118826e-10))))))-.0022242652921344794)-.0350353787183178,e=1+r*(1.3653349817554064+r*(.7620591645536234+r*(.22009110576413124+r*(.03415891436709477+r*(.00263861676657016+r*(7646752923027944e-20+r*(0+0*r)))))))):(n=26633922742578204e-28+(r=1/r)*(r*(460469890584318e-20+r*(.00015754461742496055+r*(.0018712349281955923+r*(.009508047013259196+r*(.018557330651423107+r*(-.0350353787183178*r-.0022242652921344794))))))-2.304047769118826e-10),e=0+r*(0+r*(7646752923027944e-20+r*(.00263861676657016+r*(.03415891436709477+r*(.22009110576413124+r*(.7620591645536234+r*(1.3653349817554064+1*r)))))))),n/e)}(t-3),n*(Qh*t+o*t)):(o=function(r){var n,e;return 0===r?-.016743100507663373:((r<0?-r:r)<=1?(n=r*(r*(.001056288621524929+r*(.00020938631748758808+r*(14962478375834237e-21+r*(4.4969678992770644e-7+r*(4.625961635228786e-9+r*(9905570997331033e-32*r-2811287356288318e-29))))))-.0011295143874558028)-.016743100507663373,e=1+r*(.5914293448864175+r*(.1381518657490833+r*(.016074608709367652+r*(.0009640118070051656+r*(27533547476472603e-21+r*(2.82243172016108e-7+r*(0+0*r)))))))):(n=9905570997331033e-32+(r=1/r)*(r*(4.625961635228786e-9+r*(4.4969678992770644e-7+r*(14962478375834237e-21+r*(.00020938631748758808+r*(.001056288621524929+r*(-.016743100507663373*r-.0011295143874558028))))))-2811287356288318e-29),e=0+r*(0+r*(2.82243172016108e-7+r*(27533547476472603e-21+r*(.0009640118070051656+r*(.016074608709367652+r*(.1381518657490833+r*(.5914293448864175+1*r)))))))),n/e)}(t-6),n*(rp*t+o*t)))}var ep=-1022;function tp(r){var n,e,t;return Z(r)?r:r>Ht?W:rCc?W:r=sp?W:la(r)/r}function lp(r){return Ar(r)?NaN:ff(r+1)}var hp=170;function pp(r,n){var e,t,i,o,u;return Z(r)||!jr(n)?NaN:0===r?0:r<0?(1&n?-1:1)*function(r,n){var e,t;return Z(r)||!z(n)?NaN:r<0?(n<0&&(r+=n,n=-n,t=!0),e=(1&n?-1:1)*pp(-r,n),t&&(e=1/e),e):0===n?1:0===r?n<0?-Ua(r+1,-n):0:r<1&&r+n<0?(e=Ua(1-r,-n),1&n?-e:e):1/Ua(r,n)}(-r,n):0===n?1:r<.5?n>hp-2?(o=r*pp(r-1,hp-2),u=pp(r-hp+1,n-hp+1),en/rn(o)(n=vp(n))?dp*r+gp*n:dp*n+gp*r}function yp(r,n){return r>n?r+(n>>>1):(r>>>1)+n}function wp(r){var n,e;return((e=0|r)^(n=e>>31|0))-n|0}function bp(r,n){return(r=wp(r))>(n=wp(n))?r+(n>>>1):(r>>>1)+n}function Ep(r,n){return r>n?r+(n>>>2):(r>>>2)+n}function _p(r,n){return(r=wp(r))>(n=wp(n))?r+(n>>>2):(r>>>2)+n}Lr(mp,"factory",(function(r,n,e,t){if(t){if(1===r&&.5===n)return e?yp:bp;if(1===r&&.25===n)return e?Ep:_p}return e?function(r,n){return function(e,t){return e>t?r*e+n*t:n*e+r*t}}(r,n):function(r,n){return function(e,t){return(e=vp(e))>(t=vp(t))?r*e+n*t:n*e+r*t}}(r,n)}));var xp={};U(xp,"abs",vp),U(xp,"acosh",(function(r){return r<1?NaN:Z(r)||xr(r)?r:qe(r+M(r+1)*M(r-1))})),U(xp,"ampbm",mp),U(xp,"asinh",(function(r){return 0===r||Z(r)||xr(r)?r:r>0?qe(r+M(r*r+1)):-qe(-r+M(r*r+1))})),U(xp,"atanh",(function(r){return 0===r?r:Z(r)||xr(r)?NaN:.5*qe((1+r)/(1-r))})),U(xp,"hypot",(function(r,n){return M(r*r+n*n)})),U(xp,"max",(function(r,n){return r>n?r:n})),U(xp,"min",(function(r,n){return r>=1;return e})),U(xp,"log2Uint32",(function(r){var n=0,e=r>>>0;return 4294901760&e&&(e>>>=16,n|=16),65280&e&&(e>>>=8,n|=8),240&e&&(e>>>=4,n|=4),12&e&&(e>>>=2,n|=2),2&e&&(e>>>=1,n|=1),n})),U(xp,"sqrtUint32",(function(r){var n,e,t,i;for(i=r>>>0,n=0,e=1073741824;e>i;)e>>>=2;for(;0!==e;)t=n+e>>>0,n>>>=1,r>=t&&(r-=t,n+=e),e>>>=2;return n>>>0}));var Tp=[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 Np=qe(_c);var Ap=[0,0];function Vp(r){var n,e;return Z(r)||xr(r)||0===r?r:(r<0?(r=-r,n=-1):n=1,(e=nl(r))===Xt?r:(e=1===n?C(e):nu(e))>Ht?H:n*Qu(2,e))}function Op(r){var n,e;return Z(r)||xr(r)||0===r?r:(r<0?(r=-r,n=-1):n=1,e=hl(r),(e=1===n?C(e):nu(e))<=qc?0*n:e>Cc?H:n*Qu(10,e))}var jp=Math.floor;var Sp=[0,0];function Rp(r,n,e,t){var i,o,u,a,f,s;return(i=(o=rn(r))*o)<2.5625?(f=i*i,n[t]=o*i*function(r){var n,e;return 0===r?.5235987755982989:((r<0?-r:r)<=1?(n=318016297876.5678+r*(r*(2548908805.7337637+r*(r*(708840.0452577386+r*(0*r-2991.8191940101983))-62974148.62058625))-44297951805.96978),e=607366389490.0846+r*(22441179564.534092+r*(419320245.8981112+r*(5173438.887700964+r*(45584.78108065326+r*(281.3762688899943+1*r)))))):(n=0+(r=1/r)*(r*(708840.0452577386+r*(r*(2548908805.7337637+r*(318016297876.5678*r-44297951805.96978))-62974148.62058625))-2991.8191940101983),e=1+r*(281.3762688899943+r*(45584.78108065326+r*(5173438.887700964+r*(419320245.8981112+r*(22441179564.534092+607366389490.0846*r)))))),n/e)}(f),n[t+e]=o*function(r){var n,e;return 0===r?1:((r<0?-r:r)<=1?(n=1+r*(r*(.018884331939670384+r*(r*(9504280628298596e-21+r*(0*r-4.9884311457357354e-8))-.0006451914356839651))-.20552590095501388),e=1+r*(.04121420907221998+r*(.0008680295429417843+r*(12226278902417902e-21+r*(1.2500186247959882e-7+r*(9.154392157746574e-10+399982968972496e-26*r)))))):(n=0+(r=1/r)*(r*(9504280628298596e-21+r*(r*(.018884331939670384+r*(1*r-.20552590095501388))-.0006451914356839651))-4.9884311457357354e-8),e=399982968972496e-26+r*(9.154392157746574e-10+r*(1.2500186247959882e-7+r*(12226278902417902e-21+r*(.0008680295429417843+r*(.04121420907221998+1*r)))))),n/e)}(f)):o>36974?(n[t+e]=.5,n[t]=.5):(s=1/((f=Lt*(i=o*o))*f),f=1/f,u=1-s*function(r){var n,e;return 0===r?2.999999999999634:((r<0?-r:r)<=1?(n=3.763297112699879e-20+r*(13428327623306275e-32+r*(17201074326816183e-29+r*(1.0230451416490724e-10+r*(3.055689837902576e-8+r*(46361374928786735e-22+r*(.000345017939782574+r*(.011522095507358577+r*(.1434079197807589+r*(.4215435550436775+0*r))))))))),e=1.2544323709001127e-20+r*(45200143407412973e-33+r*(5887545336215784e-29+r*(36014002958937136e-27+r*(1.1269922476399903e-8+r*(18462756734893055e-22+r*(.00015593440916415301+r*(.0064405152650885865+r*(.11688892585919138+r*(.7515863983533789+1*r)))))))))):(n=0+(r=1/r)*(.4215435550436775+r*(.1434079197807589+r*(.011522095507358577+r*(.000345017939782574+r*(46361374928786735e-22+r*(3.055689837902576e-8+r*(1.0230451416490724e-10+r*(17201074326816183e-29+r*(13428327623306275e-32+3.763297112699879e-20*r))))))))),e=1+r*(.7515863983533789+r*(.11688892585919138+r*(.0064405152650885865+r*(.00015593440916415301+r*(18462756734893055e-22+r*(1.1269922476399903e-8+r*(36014002958937136e-27+r*(5887545336215784e-29+r*(45200143407412973e-33+1.2544323709001127e-20*r)))))))))),n/e)}(s),a=f*function(r){var n,e;return 0===r?1:((r<0?-r:r)<=1?(n=18695871016278324e-38+r*(8363544356306774e-34+r*(1375554606332618e-30+r*(10826804113902088e-28+r*(4.4534441586175015e-10+r*(9.828524436884223e-8+r*(11513882611188428e-21+r*(.0006840793809153931+r*(.018764858409257526+r*(.1971028335255234+r*(.5044420736433832+0*r)))))))))),e=18695871016278324e-38+r*(8391588162831187e-34+r*(13879653125957886e-31+r*(11027321506624028e-28+r*(4.6068072814652043e-10+r*(1.0431458965757199e-7+r*(12754507566772912e-21+r*(.0008146791071843061+r*(.02536037414203388+r*(.33774898912002+r*(1.4749575992512833+1*r))))))))))):(n=0+(r=1/r)*(.5044420736433832+r*(.1971028335255234+r*(.018764858409257526+r*(.0006840793809153931+r*(11513882611188428e-21+r*(9.828524436884223e-8+r*(4.4534441586175015e-10+r*(10826804113902088e-28+r*(1375554606332618e-30+r*(8363544356306774e-34+18695871016278324e-38*r)))))))))),e=1+r*(1.4749575992512833+r*(.33774898912002+r*(.02536037414203388+r*(.0008146791071843061+r*(12754507566772912e-21+r*(1.0431458965757199e-7+r*(4.6068072814652043e-10+r*(11027321506624028e-28+r*(13879653125957886e-31+r*(8391588162831187e-34+18695871016278324e-38*r))))))))))),n/e)}(s),lo(f=We*i,Sp,1,0),f=Lt*o,n[t+e]=.5+(u*Sp[0]-a*Sp[1])/f,n[t]=.5-(u*Sp[1]+a*Sp[0])/f),r<0&&(n[t+e]=-n[t+e],n[t]=-n[t]),n}function Ip(r){return Rp(r,[0,0],1,0)}Lr(Ip,"assign",Rp);var kp=[0,0];function Bp(r){var n,e,t,i,o,u,a;return(n=(e=rn(r))*e)<2.5625?t=e*function(r){var n,e;return 0===r?1:((r<0?-r:r)<=1?(n=1+r*(r*(.018884331939670384+r*(r*(9504280628298596e-21+r*(0*r-4.9884311457357354e-8))-.0006451914356839651))-.20552590095501388),e=1+r*(.04121420907221998+r*(.0008680295429417843+r*(12226278902417902e-21+r*(1.2500186247959882e-7+r*(9.154392157746574e-10+399982968972496e-26*r)))))):(n=0+(r=1/r)*(r*(9504280628298596e-21+r*(r*(.018884331939670384+r*(1*r-.20552590095501388))-.0006451914356839651))-4.9884311457357354e-8),e=399982968972496e-26+r*(9.154392157746574e-10+r*(1.2500186247959882e-7+r*(12226278902417902e-21+r*(.0008680295429417843+r*(.04121420907221998+1*r)))))),n/e)}(u=n*n):e>36974?t=.5:(a=1/((u=Lt*(n=e*e))*u),u=1/u,i=1-a*function(r){var n,e;return 0===r?2.999999999999634:((r<0?-r:r)<=1?(n=3.763297112699879e-20+r*(13428327623306275e-32+r*(17201074326816183e-29+r*(1.0230451416490724e-10+r*(3.055689837902576e-8+r*(46361374928786735e-22+r*(.000345017939782574+r*(.011522095507358577+r*(.1434079197807589+r*(.4215435550436775+0*r))))))))),e=1.2544323709001127e-20+r*(45200143407412973e-33+r*(5887545336215784e-29+r*(36014002958937136e-27+r*(1.1269922476399903e-8+r*(18462756734893055e-22+r*(.00015593440916415301+r*(.0064405152650885865+r*(.11688892585919138+r*(.7515863983533789+1*r)))))))))):(n=0+(r=1/r)*(.4215435550436775+r*(.1434079197807589+r*(.011522095507358577+r*(.000345017939782574+r*(46361374928786735e-22+r*(3.055689837902576e-8+r*(1.0230451416490724e-10+r*(17201074326816183e-29+r*(13428327623306275e-32+3.763297112699879e-20*r))))))))),e=1+r*(.7515863983533789+r*(.11688892585919138+r*(.0064405152650885865+r*(.00015593440916415301+r*(18462756734893055e-22+r*(1.1269922476399903e-8+r*(36014002958937136e-27+r*(5887545336215784e-29+r*(45200143407412973e-33+1.2544323709001127e-20*r)))))))))),n/e)}(a),o=u*function(r){var n,e;return 0===r?1:((r<0?-r:r)<=1?(n=18695871016278324e-38+r*(8363544356306774e-34+r*(1375554606332618e-30+r*(10826804113902088e-28+r*(4.4534441586175015e-10+r*(9.828524436884223e-8+r*(11513882611188428e-21+r*(.0006840793809153931+r*(.018764858409257526+r*(.1971028335255234+r*(.5044420736433832+0*r)))))))))),e=18695871016278324e-38+r*(8391588162831187e-34+r*(13879653125957886e-31+r*(11027321506624028e-28+r*(4.6068072814652043e-10+r*(1.0431458965757199e-7+r*(12754507566772912e-21+r*(.0008146791071843061+r*(.02536037414203388+r*(.33774898912002+r*(1.4749575992512833+1*r))))))))))):(n=0+(r=1/r)*(.5044420736433832+r*(.1971028335255234+r*(.018764858409257526+r*(.0006840793809153931+r*(11513882611188428e-21+r*(9.828524436884223e-8+r*(4.4534441586175015e-10+r*(10826804113902088e-28+r*(1375554606332618e-30+r*(8363544356306774e-34+18695871016278324e-38*r)))))))))),e=1+r*(1.4749575992512833+r*(.33774898912002+r*(.02536037414203388+r*(.0008146791071843061+r*(12754507566772912e-21+r*(1.0431458965757199e-7+r*(4.6068072814652043e-10+r*(11027321506624028e-28+r*(13879653125957886e-31+r*(8391588162831187e-34+18695871016278324e-38*r))))))))))),n/e)}(a),lo(u=We*n,kp,1,0),u=Lt*e,t=.5+(i*kp[0]-o*kp[1])/u),r<0&&(t=-t),t}var Fp=[0,0];function Pp(r){var n,e,t,i,o,u,a;return(n=(e=rn(r))*e)<2.5625?t=e*n*function(r){var n,e;return 0===r?.5235987755982989:((r<0?-r:r)<=1?(n=318016297876.5678+r*(r*(2548908805.7337637+r*(r*(708840.0452577386+r*(0*r-2991.8191940101983))-62974148.62058625))-44297951805.96978),e=607366389490.0846+r*(22441179564.534092+r*(419320245.8981112+r*(5173438.887700964+r*(45584.78108065326+r*(281.3762688899943+1*r)))))):(n=0+(r=1/r)*(r*(708840.0452577386+r*(r*(2548908805.7337637+r*(318016297876.5678*r-44297951805.96978))-62974148.62058625))-2991.8191940101983),e=1+r*(281.3762688899943+r*(45584.78108065326+r*(5173438.887700964+r*(419320245.8981112+r*(22441179564.534092+607366389490.0846*r)))))),n/e)}(u=n*n):e>36974?t=.5:(a=1/((u=Lt*(n=e*e))*u),u=1/u,i=1-a*function(r){var n,e;return 0===r?2.999999999999634:((r<0?-r:r)<=1?(n=3.763297112699879e-20+r*(13428327623306275e-32+r*(17201074326816183e-29+r*(1.0230451416490724e-10+r*(3.055689837902576e-8+r*(46361374928786735e-22+r*(.000345017939782574+r*(.011522095507358577+r*(.1434079197807589+r*(.4215435550436775+0*r))))))))),e=1.2544323709001127e-20+r*(45200143407412973e-33+r*(5887545336215784e-29+r*(36014002958937136e-27+r*(1.1269922476399903e-8+r*(18462756734893055e-22+r*(.00015593440916415301+r*(.0064405152650885865+r*(.11688892585919138+r*(.7515863983533789+1*r)))))))))):(n=0+(r=1/r)*(.4215435550436775+r*(.1434079197807589+r*(.011522095507358577+r*(.000345017939782574+r*(46361374928786735e-22+r*(3.055689837902576e-8+r*(1.0230451416490724e-10+r*(17201074326816183e-29+r*(13428327623306275e-32+3.763297112699879e-20*r))))))))),e=1+r*(.7515863983533789+r*(.11688892585919138+r*(.0064405152650885865+r*(.00015593440916415301+r*(18462756734893055e-22+r*(1.1269922476399903e-8+r*(36014002958937136e-27+r*(5887545336215784e-29+r*(45200143407412973e-33+1.2544323709001127e-20*r)))))))))),n/e)}(a),o=u*function(r){var n,e;return 0===r?1:((r<0?-r:r)<=1?(n=18695871016278324e-38+r*(8363544356306774e-34+r*(1375554606332618e-30+r*(10826804113902088e-28+r*(4.4534441586175015e-10+r*(9.828524436884223e-8+r*(11513882611188428e-21+r*(.0006840793809153931+r*(.018764858409257526+r*(.1971028335255234+r*(.5044420736433832+0*r)))))))))),e=18695871016278324e-38+r*(8391588162831187e-34+r*(13879653125957886e-31+r*(11027321506624028e-28+r*(4.6068072814652043e-10+r*(1.0431458965757199e-7+r*(12754507566772912e-21+r*(.0008146791071843061+r*(.02536037414203388+r*(.33774898912002+r*(1.4749575992512833+1*r))))))))))):(n=0+(r=1/r)*(.5044420736433832+r*(.1971028335255234+r*(.018764858409257526+r*(.0006840793809153931+r*(11513882611188428e-21+r*(9.828524436884223e-8+r*(4.4534441586175015e-10+r*(10826804113902088e-28+r*(1375554606332618e-30+r*(8363544356306774e-34+18695871016278324e-38*r)))))))))),e=1+r*(1.4749575992512833+r*(.33774898912002+r*(.02536037414203388+r*(.0008146791071843061+r*(12754507566772912e-21+r*(1.0431458965757199e-7+r*(4.6068072814652043e-10+r*(11027321506624028e-28+r*(13879653125957886e-31+r*(8391588162831187e-34+18695871016278324e-38*r))))))))))),n/e)}(a),lo(u=We*n,Fp,1,0),u=Lt*e,t=.5-(i*Fp[1]+o*Fp[0])/u),r<0&&(t=-t),t}var Lp=2148532223,Up=1071644672,Mp=[0,0],Cp=[0,0];function Yp(r,n,e,t){var i,o;return 0===r||Z(r)||xr(r)?(n[t]=r,n[t+e]=0,n):(ei(r,Mp,1,0),o=ti(Mp[0])+Mp[1]+1,Ot.assign(Mp[0],Cp,1,0),i=Cp[0],i&=Lp,r=Bt(i|=Up,Cp[1]),n[t]=r,n[t+e]=o,n)}function qp(r){return Yp(r,[0,0],1,0)}function Dp(r){return(1+Ta(r))/2}function zp(r){return(1-Ta(r))/2}function Wp(r){return(1+qa(r))/2}function Gp(r){return(1-qa(r))/2}function Zp(r){return r}function Jp(r){return 1/r}function Hp(r){return Pr(1/Pr(r))}function $p(r,n){return qe(r)/qe(n)}function Xp(r){var n;return Z(r)?NaN:0===r?H:0<(n=rn(r))&&n<=ke?qe(-la(-n)):Ie(-cu(-n))}function Kp(r){return Z(r)?NaN:r<=-37?cu(r):r<=18?Ie(cu(r)):r<=33.3?r+cu(-r):r}function Qp(r){return Z(r)?r:Ir(r)?0===r?H:1===r?W:qe(r/(1-r)):NaN}Lr(qp,"assign",Yp);var rv=[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 nv(r,n){var e,t,i,o;if(2===(e=arguments.length))return Z(r)||Z(n)?NaN:r===W||n===W?W:r===n&&0===r?Rr(r)?r:n:r>n?r:n;for(t=H,o=0;ot||i===t&&0===i&&Rr(i))&&(t=i)}return t}function ev(r,n){var e,t,i,o;if(2===(e=arguments.length))return Z(r)||Z(n)?NaN:r===H||n===H?H:r===n&&0===r?Vr(r)?r:n:ra&&(a=c)}return e[i]=u,e[i+t]=a,e}function fv(){var r,n;for(r=[],n=0;na||0===f&&f===a&&Rr(f))&&(a=f)}return e[i]=u,e[i+t]=a,e}function cv(){var r,n;for(r=[],n=0;n>20|0,(u-=0|xe)<20?0==(i&(a=Wt>>u|0)|o)?(n[t]=r,n[t+e]=0,n):(a=Bt(i&=~a,0),n[t]=a,n[t+e]=r-a,n):u>51||0==(o&(a=lv>>>u-20))?(n[t]=r,n[t+e]=0,n):(a=Bt(i,o&=~a),n[t]=a,n[t+e]=r-a,n))}function vv(r){return pv(r,[0,0],1,0)}Lr(vv,"assign",pv);var dv=[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 gv=[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 mv=2.23606797749979,yv=qe(_c);function wv(r){var n,e;return Z(r)||!1===z(r)||r<1||r===W?NaN:(n=qe((r+=1)*mv)/yv,e=qe(mv*(r+n)-5+3/r)/yv,C(r+e-2))}var bv=9.869604401089358;var Ev=3.5584373474121094;function _v(r){var n,e;return n=0,r<=0?C(r)===r?NaN:(e=Da(r),-_v(1-r)+bv/(e*e)):(r<1&&(n=1/(r*r),r+=1),n+=r<=2?(2+function(r){var n,e;return 0===r?-.9999999999999991:((r<0?-r:r)<=1?(n=r*(r*(r*(r*(r*(2.4787778117864288+r*(2.0771415170245513+r*(.8588778991623601+r*(.20499222604410033+r*(.027210314034819473+.001576484902087695*r)))))-.4042133494563989)-5.746577466976647)-7.94125711970499)-4.712373111208652)-.9999999999999991,e=1+r*(4.712373111208634+r*(9.586191186553398+r*(11.094006726982938+r*(8.090754247493278+r*(3.877058901598914+r*(1.2275867870191448+r*(.249092040606385+r*(.02957504139006556+r*(.0015764849020049815+16126405034405948e-31*r)))))))))):(n=.001576484902087695+(r=1/r)*(.027210314034819473+r*(.20499222604410033+r*(.8588778991623601+r*(2.0771415170245513+r*(2.4787778117864288+r*(r*(r*(r*(-.9999999999999991*r-4.712373111208652)-7.94125711970499)-5.746577466976647)-.4042133494563989)))))),e=16126405034405948e-31+r*(.0015764849020049815+r*(.02957504139006556+r*(.249092040606385+r*(1.2275867870191448+r*(3.877058901598914+r*(8.090754247493278+r*(11.094006726982938+r*(9.586191186553398+r*(4.712373111208634+1*r)))))))))),n/e)}(r))/(r*r):r<=4?(Ev+function(r){var n,e;return 0===r?-2.5584373473990794:((r<0?-r:r)<=1?(n=r*(r*(r*(r*(r*(r*(r*(.5154120525543513+r*(.1953783487860643+r*(.03347612826241743+r*(.0023736652059422065+0*r))))-.01914390334056497)-4.466544539286106)-14.797912276547878)-24.925643150482347)-23.9195022162768)-12.283020824054201)-2.5584373473990794,e=1+r*(4.800985584544199+r*(9.992207278431701+r*(11.889614616763133+r*(8.966132566838091+r*(4.4725413614962415+r*(1.4860098202819654+r*(.31957073576676426+r*(.040735834578768094+r*(.0023736652059327163+r*(23955488790352614e-32+-29474924474061867e-34*r))))))))))):(n=0+(r=1/r)*(.0023736652059422065+r*(.03347612826241743+r*(.1953783487860643+r*(.5154120525543513+r*(r*(r*(r*(r*(r*(-2.5584373473990794*r-12.283020824054201)-23.9195022162768)-24.925643150482347)-14.797912276547878)-4.466544539286106)-.01914390334056497))))),e=r*(23955488790352614e-32+r*(.0023736652059327163+r*(.040735834578768094+r*(.31957073576676426+r*(1.4860098202819654+r*(4.4725413614962415+r*(8.966132566838091+r*(11.889614616763133+r*(9.992207278431701+r*(4.800985584544199+1*r))))))))))-29474924474061867e-34),n/e)}(r))/(r*r):r<=8?(1+function(r){var n,e;return 0===r?16662611269702147e-33:((r<0?-r:r)<=1?(n=16662611269702147e-33+r*(.4999999999999977+r*(6.402709450190538+r*(41.38333741550006+r*(166.8033418545628+r*(453.39964786925367+r*(851.153712317697+r*(1097.7065756728507+r*(938.4312324784553+r*(487.26800160465194+119.95344524233573*r))))))))),e=1+r*(12.472085567047449+r*(78.60931297532986+r*(307.47024605031834+r*(805.1406861011516+r*(1439.1201976029215+r*(1735.6105285756048+r*(1348.3250071285634+r*(607.2259858605709+r*(119.95231785727705+.00014016591835503607*r)))))))))):(n=119.95344524233573+(r=1/r)*(487.26800160465194+r*(938.4312324784553+r*(1097.7065756728507+r*(851.153712317697+r*(453.39964786925367+r*(166.8033418545628+r*(41.38333741550006+r*(6.402709450190538+r*(.4999999999999977+16662611269702147e-33*r))))))))),e=.00014016591835503607+r*(119.95231785727705+r*(607.2259858605709+r*(1348.3250071285634+r*(1735.6105285756048+r*(1439.1201976029215+r*(805.1406861011516+r*(307.47024605031834+r*(78.60931297532986+r*(12.472085567047449+1*r)))))))))),n/e)}(1/r))/r:r<=16?(1+function(r){var n,e;return 0===r?-1.848283152741466e-20:((r<0?-r:r)<=1?(n=r*(.5+r*(3.0253386524731334+r*(13.599592751745737+r*(35.31322242830879+r*(67.16394245507142+r*(83.5767733658514+r*(71.07349121223571+r*(35.86215156147256+8.721522316399835*r))))))))-1.848283152741466e-20,e=1+r*(5.717343971612935+r*(25.29340417962044+r*(62.26197679674682+r*(113.955048909239+r*(130.80713832893898+r*(102.42314690233765+r*(44.04247728052452+r*(8.89898032477904+-.029662733687204*r))))))))):(n=8.721522316399835+(r=1/r)*(35.86215156147256+r*(71.07349121223571+r*(83.5767733658514+r*(67.16394245507142+r*(35.31322242830879+r*(13.599592751745737+r*(3.0253386524731334+r*(.5+-1.848283152741466e-20*r)))))))),e=r*(8.89898032477904+r*(44.04247728052452+r*(102.42314690233765+r*(130.80713832893898+r*(113.955048909239+r*(62.26197679674682+r*(25.29340417962044+r*(5.717343971612935+1*r))))))))-.029662733687204),n/e)}(1/r))/r:(1+function(r){var n,e;return 0===r?0:((r<0?-r:r)<=1?(n=0+r*(.5+r*(.34562566988545623+r*(9.628954993608422+r*(3.5936085382439025+r*(49.45959911843888+r*(7.775192373218939+r*(74.4536074488178+r*(2.7520934039706906+r*(23.92923597114717+0*r))))))))),e=1+r*(.3579180064375791+r*(19.138603985070986+r*(.8743490814641436+r*(98.65160974348555+r*(r*(154.31686021625373+r*(r*(60.167913667426475+r*(2.537956362006499*r-13.341484462225642))-40.2026880424379))-16.10519728333829)))))):(n=0+(r=1/r)*(23.92923597114717+r*(2.7520934039706906+r*(74.4536074488178+r*(7.775192373218939+r*(49.45959911843888+r*(3.5936085382439025+r*(9.628954993608422+r*(.34562566988545623+r*(.5+0*r))))))))),e=2.537956362006499+r*(r*(60.167913667426475+r*(r*(154.31686021625373+r*(r*(98.65160974348555+r*(.8743490814641436+r*(19.138603985070986+r*(.3579180064375791+1*r))))-16.10519728333829))-40.2026880424379))-13.341484462225642)),n/e)}(1/r))/r,n)}var xv=Ms("polygamma"),Tv=1e6,Nv=172;function Av(r,n){var e,t,i,o,u,a;if(r+n===n)return 1===r?1/n:r*qe(n)Nv&&r*r>cf?0:ka(r-1)*Qu(n,-r-1))?(o=cu((e=ff(r)-(r+1)*qe(n))+qe(r+2*n)-ke),e=cu(e+=qe(r*(r+1))-ke-qe(n))):(o=e*(r+2*n)/2,e*=r*(r+1)/2,e/=n),0===o)return o;for(a=1;!(rn((i=e*Dt(2*a))/(o+=i))Tv)return xv("Series did not converge, closest value was: %d.",o),NaN;return r-1&1&&(o=-o),o}var Vv=Ms("polygamma"),Ov=1e6,jv=19;var Sv=1.1447298858494002;var Rv=Ms("polygamma"),Iv=1e6,kv=9.869604401089358,Bv=31.00627668029982,Fv=97.40909103400244,Pv=306.01968478528147,Lv=961.3891935753045,Uv=3020.2932277767923,Mv=9488.531016070574,Cv=29809.09933344621,Yv=93648.04747608303,qv=294204.0179738906,Dv=924269.1815233742,zv=[[-1]];function Wv(r,n,e){var t,i,o,u,a,f;switch(f=rn(n)Iv?(Rv("The value of `n` is so large that we're unable to compute the result in reasonable time."),NaN):((i=r-1)>=zv.length&&function(r){var n,e,t,i,o,u,a,f,s;for(a=zv.length-1;a=0?W:H:(t-=qe(rn(f))*(r+1),(t+=ff(r)+qe(rn(u)))>cf?u>=0?W:H:(o=cu(t)*Bs(u),f<0&&r+1&1&&(o*=-1),o))))}var Gv=Ms("polygamma"),Zv=1e6;var Jv=Ms("polygamma");function Hv(r){return Z(r)?NaN:r>0?r:0}function $v(r){return Nr(r)?NaN:r>0?r:0}var Xv=Qu(2,Ht),Kv=Xv/2;function Qv(r){var n,e,t,i,o,u;return Z(r)||xr(r)||0===r?r:(r<0?(r=-r,n=-1):n=1,(u=nl(r))===Xt?r:(e=C(u),t=nu(u),e===Ht?r-Xv>=Kv?n*W:n*Xv:(i=Qu(2,e))+((o=Qu(2,t))-i)/2>r?n*i:n*o))}var rd=1e308,nd=1e-323;function ed(r){var n,e,t,i,o,u;return Z(r)||xr(r)||0===r?r:(r<0?(r=-r,n=-1):n=1,u=hl(r),e=C(u),t=nu(u),e===qc?n*nd:e===Cc?n*rd:(i=Qu(10,e))+((o=Qu(10,t))-i)/2>r?n*i:n*o)}function td(r){return 1/M(r)}function id(r){return Pr(1/M(Pr(r)))}function od(r,n,e,t){var i,o,u,a,f,s,c,l;if(Z(r))return n[t]=NaN,n[t+e]=NaN,n;if(r<0?(i=-1,r=-r):i=0,0===r)return n[t]=0,n[t+e]=H,n;if(r>1e9){if(xr(r))return-1===i?(o=-We,u=NaN):(o=We,u=0),n[t]=o,n[t+e]=u,n;o=We-qa(r)/r,u=Ta(r)/r}return r>4?(c=Ta(r),a=qa(r),l=1/(r*r),r<8?(f=function(r){return 0===r?5.489002234213736e-7:5.489002234213736e-7+r*(.00010893658065032867+r*(.006810201324725182+r*(.16700661183132304+r*(1.6208328770153833+r*(5.4593771716181285+4.236128628922166*r)))))}(l)/(r*function(r){return 0===r?5.489002527562557e-7:5.489002527562557e-7+r*(.00011003435715391573+r*(.007017106683227897+r*(.1787920529631499+r*(1.867922579501842+r*(7.308288225055645+r*(8.16496634205391+1*r))))))}(l)),s=l*function(r){return 0===r?7.825790407440903e-9:7.825790407440903e-9+r*(19796387414096365e-22+r*(.00016199979459893403+r*(.005388686814621773+r*(.07485277376284691+r*(.3971802963923375+r*(.6113791099522193+.08710016989731142*r))))))}(l)/function(r){return 0===r?7.825792189335346e-9:7.825792189335346e-9+r*(20265918208634397e-22+r*(.0001732210814741771+r*(.006223963454417684+r*(.09887717612776888+r*(.666296701268988+r*(1.6440220241335535+1*r))))))}(l)):(f=function(r){return 0===r?970507110881952e-28:970507110881952e-28+r*(941779576128513e-25+r*(3.200927900910049e-8+r*(48621543082645475e-22+r*(.00034955644244785906+r*(.01160642294081244+r*(.16030015822231947+r*(.7137152741001467+.4558808734704653*r)))))))}(l)/(r*function(r){return 0===r?970507110881952e-28:970507110881952e-28+r*(9437205903502767e-26+r*(3.21956939101046e-8+r*(4924350643178815e-21+r*(.00035869648188185157+r*(.012225359477197129+r*(.17868554533207454+r*(.9174636118736841+1*r)))))))}(l)),s=l*function(r){return 0===r?31404009894636335e-31:31404009894636335e-31+r*(3859459254302766e-27+r*(1.7040445278204452e-9+r*(3.471311670841167e-7+r*(34894116550227946e-21+r*(.001717182390523479+r*(.03848787676499743+r*(.33041097930563207+.6973599534432762*r)))))))}(l)/function(r){return 0===r?31404009894636335e-31:31404009894636335e-31+r*(3878301660239547e-27+r*(1.7269374896631615e-9+r*(3.5704322344374083e-7+r*(3684755044425611e-20+r*(.0019028442667439953+r*(.04679131942596258+r*(.48785225869530496+r*(1.6854889881101165+1*r))))))))}(l)),o=We-f*a-s*c,i&&(o=-o),u=f*c-s*a,n[t]=o,n[t+e]=u,n):(c=r*function(r){return 0===r?1:1+r*(r*(.0009769454381704354+r*(r*(4.625917144270128e-8+-8391678279103039e-26*r)-9757593038436328e-21))-.04134703162294066)}(l=r*r)/function(r){return 0===r?1:1+r*(.01420852393261499+r*(9964121220438756e-20+r*(4.418278428012189e-7+r*(1.279978911799433e-9+20326926619595193e-28*r))))}(l),a=l*function(r){return 0===r?-1:r*(.028915965260755523+r*(r*(3593250514199931e-21+r*(20252400238910228e-27*r-1.3524950491579076e-8))-.0004740072068734079))-1}(l)/function(r){return 0===r?4:4+r*(.051002805623644606+r*(.00031744202477503275+r*(12321035568588342e-22+r*(3.067809975818878e-9+4077460400618806e-27*r))))}(l),i&&(c=-c),o=c,u=Oa+qe(r)+a,n[t]=o,n[t+e]=u,n)}function ud(r){return od(r,[0,0],1,0)}function ad(r){return Z(r)?NaN:xr(r)?0:0===r?1:Da(r)/(Lt*r)}function fd(r,n,e,t){var i,o,u,a;return Z(r)||xr(r)?(n[t]=NaN,n[t+e]=NaN,n):0===(u=rn(a=r%2))||1===u?(o=C(u),n[t]=Pt(0,a),n[t+e]=o%2==1?-1:1,n):u<.25?lo(Lt*a,n,e,t):u<.75?(lo(Lt*(u=.5-u),n,e,t),i=n[t],n[t]=Pt(n[t+e],a),n[t+e]=i,n):u<1.25?(a=Pt(1,a)-a,lo(Lt*a,n,e,t),n[t+e]*=-1,n):u<1.75?(lo(Lt*(u-=1.5),n,e,t),i=n[t],n[t]=-Pt(n[t+e],a),n[t+e]=i,n):(a-=Pt(2,a),lo(Lt*a,n,e,t))}function sd(r){return fd(r,[0,0],1,0)}Lr(ud,"assign",od),Lr(sd,"assign",fd);var cd=bv/6;function ld(r){var n,e,t,i;return Z(r)||r<0?NaN:1===r?0:0===r?cd:(n=0,r>2&&(r=1/r,n|=2),r>1.5?(e=1/r-1,n|=2):r<.5?(e=-r,n|=1):e=r-1,t=-e*function(r){return 0===r?1:1+r*(3.297713409852251+r*(4.256971560081218+r*(2.7114985119655346+r*(.8796913117545303+r*(.13384763957830903+r*(.007315890452380947+46512858607399003e-21*r))))))}(e)/function(r){return 0===r?1:1+r*(3.547713409852251+r*(5.03278880143317+r*(3.6380053334513707+r*(1.4117259775183106+r*(.2829748606025681+r*(.02540437639325444+.0006909904889125533*r))))))}(e),1&n&&(t=cd-qe(r)*qe(1-r)-t),2&n&&(t=-.5*(i=qe(r))*i-t),t)}function hd(r){return Z(r)?NaN:rn(r)>.75?M(1+r)-1:la(Ie(r)/2)}var pd=[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 vd(r){var n;return Z(r)||xr(r)||0===r?r:(r<0?(r=-r,n=-1):n=1,n*Qu(2,C(nl(r))))}function dd(r){var n;return Z(r)||xr(r)||0===r?r:(r<0?(r=-r,n=-1):n=1,n*Qu(10,C(hl(r))))}var gd=Y+1,md=1e308;function yd(r,n){var e,t;return Z(r)||Z(n)||xr(n)?NaN:xr(r)||0===r||ngd&&n<=0?r:n>Cc?0*r:n=0;)e=Pr(Pr(e*n)+r[t]),t-=1;return e}function Td(r,n,e){var t,i,o,u;if(0===(t=r.length))return NaN;if(t!==n.length)return NaN;if(0===e||1===t)return r[0]/n[0];if(rn(e)<=1)for(i=r[t-1],o=n[t-1],u=t-2;u>=0;--u)i*=e,o*=e,i+=r[u],o+=n[u];else for(e=1/e,i=r[0],o=n[0],u=1;u=0;--u)i=Pr(i*e),o=Pr(o*e),i=Pr(i+r[u]),o=Pr(o+n[u]);else for(e=Pr(1/e),i=r[0],o=n[0],u=1;u1?NaN:t?pc(n,e,1-r,r)[0]:pc(n,e,r,1-r)[0]})),U(_d,"betaln",wc),U(_d,"binet",Tc),U(_d,"binomcoef",is),U(_d,"binomcoefln",(function r(n,e){return Z(n)||Z(e)?NaN:z(n)&&z(e)?n<0?r(-n+e-1,e):e<0?H:0===e?0:1===e?qe(rn(n)):n=ml?(e*=.5,t*=.5,i*=.5):n<=yl&&(e*=wl,t*=wl,i*=wl),rn(t)<=rn(e)?(e=u=1/(e+t*(o=t/e)),t=-o*u):(e=(o=e/t)*(u=1/(t+e*o)),t=-u),new Jr(e*=i,t*=i)})),U(_d,"clamp",(function(r,n,e){return Z(r)||Z(n)||Z(e)?NaN:re?e:0===n&&Vr(r)?n:0===r&&Vr(e)?e:r})),U(_d,"clampf",(function(r,n,e){return Nr(r)||Nr(n)||Nr(e)?NaN:re?e:0===n&&Or(r)?n:0===r&&Or(e)?e:r})),U(_d,"copysign",Pt),U(_d,"copysignf",(function(r,n){var e,t;return r=Pr(r),n=Pr(n),e=Ln(r),e&=2147483647,t=Ln(n),Cn(e|=t&=bl)})),U(_d,"cos",qa),U(_d,"cosd",(function(r){return Nl(r)?NaN:z((r/90-1)/2)?0:qa(_l(r))})),U(_d,"cosh",Al),U(_d,"cosm1",Ol),U(_d,"cospi",Ec),U(_d,"cot",Ul),U(_d,"cotd",(function(r){return Nl(r)?NaN:z((r/90-1)/2)?0:Ul(_l(r))})),U(_d,"coth",(function(r){return 1/Cl(r)})),U(_d,"covercos",Yl),U(_d,"coversin",ql),U(_d,"cphase",Dl),U(_d,"cpolar",Wl),U(_d,"cround",(function(r){return new Jr(bi(Hr(r)),bi($r(r)))})),U(_d,"croundn",(function(r,n){return new Jr(Jl(Hr(r),n),Jl($r(r),n))})),U(_d,"csc",(function(r){return 1/Ta(r)})),U(_d,"cscd",(function(r){return 1/Ta(_l(r))})),U(_d,"csch",(function(r){return 1/Ql(r)})),U(_d,"csignum",(function(r){var n;return 0===(n=Ac(r))?r:new Jr(Hr(r)/n,$r(r)/n)})),U(_d,"deg2rad",_l),U(_d,"deg2radf",nh),U(_d,"digamma",ah),U(_d,"diracDelta",fh),U(_d,"eta",yh),U(_d,"ellipe",Eh),U(_d,"ellipj",Vh),U(_d,"ellipk",bh),U(_d,"erf",Gh),U(_d,"erfc",_f),U(_d,"erfcinv",ms),U(_d,"erfcx",(function(r){var n;return r!=r?NaN:r>=0?r>50?r>5e7?Hh/r:Hh*((n=r*r)*(n+4.5)+2)/(r*(n*(n+5)+3.75)):Jh(400/(4+r)):r<-26.7?W:(n=r*r,r<-6.1?2*cu(n):2*cu(n)-Jh(400/(4-r)))})),U(_d,"erfinv",np),U(_d,"exp",cu),U(_d,"exp2",tp),U(_d,"exp10",ap),U(_d,"expit",fp),U(_d,"expm1",la),U(_d,"expm1rel",cp),U(_d,"factorial",ka),U(_d,"factorial2",(function(r){var n,e,t,i;if(Z(r))return NaN;if(r>=301)return W;if(r<0||!1===z(r))return NaN;if(0===(t=0|r)|0||1===t|0)return 1;for(n=K(t)?2:3,e=1,i=0|t;i>=n;i-=2)e*=0|i;return e})),U(_d,"factorialln",lp),U(_d,"fallingFactorial",pp),U(_d,"fast",xp),U(_d,"fibonacci",(function(r){return Z(r)||!1===z(r)||r<0||r>78?NaN:Tp[r]})),U(_d,"fibonacciIndex",(function(r){return Z(r)||!1===z(r)||r<=1||r===W?NaN:bi(qe(2.23606797749979*r+.5)/Np)})),U(_d,"flipsign",(function(r,n){var e,t;return Ot.assign(r,Ap,1,0),e=Ap[0],t=ye(n),Bt(e^=t&=yt,Ap[1])})),U(_d,"flipsignf",(function(r,n){var e,t;return r=Pr(r),n=Pr(n),e=Ln(r),t=Ln(n),Cn(e^=t&=bl)})),U(_d,"floor",C),U(_d,"floor2",Vp),U(_d,"floor10",Op),U(_d,"floorb",(function(r,n,e){var t,i;return Z(r)||Z(n)||Z(e)||e<=0||xr(n)||xr(e)?NaN:xr(r)||0===r?r:10===e?gl(r,n):0===n||1===e?C(r):xr(i=Qu(e,-n))||xr(t=C(r*i)/i)?r:t})),U(_d,"floorf",jp),U(_d,"floorn",gl),U(_d,"floorsd",(function(r,n,e){var t,i,o;return Z(r)||Z(n)||n<1||xr(n)||Z(e)||e<=0||xr(e)?NaN:xr(r)||0===r?r:(t=10===e?hl(rn(r)):2===e?ti(rn(r)):qe(rn(r))/qe(e),xr(i=Qu(e,rn(t=C(t-n+1))))||xr(o=t<0?C(r*i)/i:C(r/i)*i)?r:o)})),U(_d,"fresnel",Ip),U(_d,"fresnelc",Bp),U(_d,"fresnels",Pp),U(_d,"frexp",qp),U(_d,"gamma",Sa),U(_d,"gammaDeltaRatio",Ua),U(_d,"gammaLanczosSum",Ba),U(_d,"gammaLanczosSumExpGScaled",Pf),U(_d,"gamma1pm1",Df),U(_d,"gammainc",Hf),U(_d,"gammaincinv",fc),U(_d,"gammaln",ff),U(_d,"gammasgn",(function(r){var n;return Z(r)?r:r>0?1:r===(n=C(r))?0:(n/=2)===C(n)?1:-1})),U(_d,"gcd",X),U(_d,"hacovercos",Dp),U(_d,"hacoversin",zp),U(_d,"havercos",Wp),U(_d,"haversin",Gp),U(_d,"heaviside",(function(r,n){return Z(r)?NaN:r>0?1:0===r?"half-maximum"===n?.5:"left-continuous"===n?0:"right-continuous"===n?1:NaN:0})),U(_d,"hypot",Nc),U(_d,"hypotf",Vc),U(_d,"identity",Zp),U(_d,"identityf",(function(r){return r})),U(_d,"inv",Jp),U(_d,"invf",Hp),U(_d,"kernelBetainc",cs),U(_d,"kernelBetaincinv",pc),U(_d,"kernelCos",pa),U(_d,"kernelLog1p",Zc),U(_d,"kernelSin",ba),U(_d,"kernelTan",kl),U(_d,"kroneckerDelta",(function(r,n){return Z(r)||Z(n)?NaN:r===n?1:0})),U(_d,"kroneckerDeltaf",(function(r,n){return Nr(r)||Nr(n)?NaN:r===n?1:0})),U(_d,"labs",wp),U(_d,"lcm",(function(r,n){var e;return 0===r||0===n?0:(r<0&&(r=-r),n<0&&(n=-n),Z(e=X(r,n))?e:r/e*n)})),U(_d,"ldexp",fi),U(_d,"ln",qe),U(_d,"log",$p),U(_d,"log1mexp",Xp),U(_d,"log1p",Ie),U(_d,"log1pexp",Kp),U(_d,"log1pmx",If),U(_d,"log2",nl),U(_d,"log10",hl),U(_d,"logaddexp",(function(r,n){var e;return Z(r)||Z(n)?NaN:r===n?r+ke:(e=r-n)>0?r+Ie(cu(-e)):n+Ie(cu(e))})),U(_d,"logit",Qp),U(_d,"lucas",(function(r){return Z(r)||!1===z(r)||r<0||r>76?NaN:rv[r]})),U(_d,"max",nn),U(_d,"maxabs",Qf),U(_d,"maxabsn",(function(r,n){var e,t,i;if(0===(e=arguments.length))return W;if(2===e)return nv(rn(r),rn(n));for(t=[],i=0;i0||(n=rn(r))>78?NaN:dv[n]})),U(_d,"negalucas",(function(r){var n;return Z(r)||!1===z(r)||r>0||(n=rn(r))>76?NaN:gv[n]})),U(_d,"nonfibonacci",wv),U(_d,"pdiff",(function(r,n){return Z(r)||Z(n)?NaN:r>n?r-n:0})),U(_d,"pdifff",(function(r,n){return Nr(r)||Nr(n)?NaN:r>n?Pr(Pr(r)-Pr(n)):0})),U(_d,"polygamma",(function r(n,e){var t,i;return jr(n)?0===n?ah(e):1===n?_v(e):e<0?C(e)===e?1&eu(e)?W:(Jv("Evaluation at negative integer: %d.",e),NaN):(t=r(n,i=1-e)+Lt*Wv(n,i,e),1&n?-t:t):e2/on)return 1&r?a/tZv)return Gv("Series did not converge, best value is %d.",u),NaN;return en/i.4*19+4*n?Av(n,e):1===e?(1&n?1:-1)*ka(n)*mh(n+1):.5===e?rn(t=(1&n?1:-1)*ka(n)*mh(n+1))>=fi(en,-n-1)?1===Bs(t)?W:H:t*=fi(1,n+1)-1:function(r,n){var e,t,i,o,u,a;if(o=r,(t=.4*jv+4*r-eu(n))>Ov)return Vv("Exceeded maximum series evaluations when evaluated at n = %d and x = %d",r,n),NaN;if(e=-o-1,i=0,qe((a=n)+t)*e>-cf){for(u=1;u<=t;u++)i+=Qu(a,e),a+=1;i*=ka(r)}else for(u=1;u<=t;u++)i+=cu(qe(a)*e+ff(r+1)),a+=1;return r-1&1&&(i=-i),i+Av(r,a)}(n,e):NaN})),U(_d,"pow",Qu),U(_d,"powm1",Uf),U(_d,"rad2deg",kn),U(_d,"rad2degf",ut),U(_d,"ramp",Hv),U(_d,"rampf",$v),U(_d,"rcbrt",(function(r){return 1/Lc(r)})),U(_d,"rcbrtf",(function(r){return Pr(1/Lc(Pr(r)))})),U(_d,"rempio2",Ji),U(_d,"zeta",mh),U(_d,"risingFactorial",(function(r,n){var e,t;return Z(r)||!z(n)?NaN:r<0?(n<0&&(r+=n,n=-n,t=!0),e=(1&n?-1:1)*pp(-r,n),t&&(e=1/e),e):0===n?1:0===r?n<0?-Ua(r+1,-n):0:r<1&&r+n<0?(e=Ua(1-r,-n),1&n?-e:e):1/Ua(r,n)})),U(_d,"round",bi),U(_d,"round2",Qv),U(_d,"round10",ed),U(_d,"roundb",(function(r,n,e){var t,i;return Z(r)||Z(n)||Z(e)||e<=0||xr(n)||xr(e)?NaN:xr(r)||0===r?r:10===e?Jl(r,n):0===n||1===e?bi(r):xr(i=Qu(e,-n))||xr(t=bi(r*i)/i)?r:t})),U(_d,"roundn",Jl),U(_d,"roundsd",(function(r,n,e){var t,i,o,u;if(Z(r)||Z(n)||n<1||xr(n))return NaN;if(arguments.length>2){if(Z(e)||e<=0||xr(e))return NaN;t=e}else t=10;return xr(r)||0===r?r:(i=10===t?hl(rn(r)):2===t?ti(rn(r)):qe(rn(r))/qe(t),xr(o=Qu(t,rn(i=C(i-n+1))))||xr(u=i<0?bi(r*o)/o:bi(r/o)*o)?r:u)})),U(_d,"rsqrt",td),U(_d,"rsqrtf",id),U(_d,"secd",(function(r){return 1/qa(_l(r))})),U(_d,"sici",ud),U(_d,"signum",Bs),U(_d,"signumf",(function(r){return 0===r||Nr(r)?r:r<0?-1:1})),U(_d,"sin",Ta),U(_d,"sinc",ad),U(_d,"sincos",ho),U(_d,"sincospi",sd),U(_d,"sinh",Ql),U(_d,"sinpi",Da),U(_d,"spence",ld),U(_d,"sqrt",M),U(_d,"sqrt1pm1",hd),U(_d,"sqrtf",Bn),U(_d,"sqrtpi",(function(r){return M(r*Lt)})),U(_d,"tan",Ll),U(_d,"tand",(function(r){return Nl(r)?NaN:z((r/90-1)/2)?1/0:z(r/90/2)?0:Ll(_l(r))})),U(_d,"tanh",Cl),U(_d,"tribonacci",(function(r){return Z(r)||!1===z(r)||r<0||r>63?NaN:pd[r]})),U(_d,"trigamma",_v),U(_d,"trunc",eu),U(_d,"trunc2",vd),U(_d,"trunc10",dd),U(_d,"truncb",(function(r,n,e){var t,i;return Z(r)||Z(n)||Z(e)||e<=0||xr(n)||xr(e)?NaN:xr(r)||0===r?r:10===e?yd(r,n):0===n||1===e?eu(r):xr(i=Qu(e,-n))||xr(t=eu(r*i)/i)?r:t})),U(_d,"truncf",wd),U(_d,"truncn",yd),U(_d,"truncsd",(function(r,n,e){var t,i,o;return Z(r)||Z(n)||n<1||xr(n)||Z(e)||e<=0||xr(e)?NaN:xr(r)||0===r?r:(t=10===e?hl(rn(r)):2===e?ti(rn(r)):qe(rn(r))/qe(e),xr(i=Qu(e,rn(t=C(t-n+1))))||xr(o=t<0?eu(r*i)/i:eu(r/i)*i)?r:o)})),U(_d,"vercos",bd),U(_d,"versin",Ed),U(_d,"wrap",(function(r,n,e){var t;return Z(r)||Z(n)||Z(e)||e<=n?NaN:(0===r&&(r=0),0===n&&(n=0),0===e&&(e=0),n<=r&&r500)return function(n){return xd(r,n)};if(n="return function evalpolyf(x){",0===(e=r.length))n+="return 0.0;";else if(1===e)n+="return "+r[0]+";";else{for(n+="if(x===0.0){return "+r[0]+";}",n+="return f64_to_f32("+r[0],t=e-1,i=1;i500)return function(e){return Td(r,n,e)};if(e="return function evalrational(x){",e+="var ax,s1,s2;",0===(t=r.length))e+="return NaN;";else if(t!==n.length)e+="return NaN;";else if(1===t)e+="return "+r[0]/n[0]+";";else{for(e+="if(x===0.0){return "+r[0]/n[0]+";}",e+="if(x<0.0){ax=-x;}else{ax=x;}",e+="if(ax<=1.0){",e+="s1 = "+r[0],i=t-1,o=1;o=0;o--)e+="+x*",o>0&&(e+="("),e+=r[o];for(o=0;o=0;o--)e+="+x*",o>0&&(e+="("),e+=n[o];for(o=0;o500)return function(e){return Nd(r,n,e)};if(e="return function evalrationalf(x){",e+="var ax,s1,s2;",0===(t=r.length))e+="return NaN;";else if(t!==n.length)e+="return NaN;";else if(1===t)e+="return "+Pr(r[0]/n[0])+";";else{for(e+="if(x===0.0){return "+Pr(r[0]/n[0])+";}",e+="if(x<0.0){ax=-x;}else{ax=x;}",e+="if(ax<=1.0){",e+="s1 = f64_to_f32("+r[0],i=t-1,o=1;o=0;o--)e+="+f64_to_f32(x*",o>0&&(e+="("),e+=r[o];for(o=0;o<2*i;o++)e+=")";for(e+=";",e+="s2 = f64_to_f32("+n[i=t-1],o=i-1;o>=0;o--)e+="+f64_to_f32(x*",o>0&&(e+="("),e+=n[o];for(o=0;o<2*i;o++)e+=")";e+=";",e+="}",e+="return f64_to_f32(s1/s2);"}return e+="}",new Af("f64_to_f32",e+="//# sourceURL=evalrationalf.factory.js")(Pr)}));var Ad={};function Vd(r){var n,e;if(void 0===(n=Ad[r])){for(n=[],e=0;e=0;e-=2)n[e]=is((r+e-1)/2,e);Ad[r]=n}return n}function Od(r,n){var e,t;return t=Nf(Vd(e=rn(r)),n),r>=0?t:Qu(-1,e-1)*t}function jd(r,n){var e,t,i,o;if(Z(r)||Z(n)||r<0||!z(r))return NaN;if(0===r)return 1;if(1===r)return n;for(t=1,i=0,o=r;o>1;o--)e=n*t-o*i,i=t,t=e;return n*t-i}function Sd(r){return function(){return r}}function Rd(r,n){return Qu(2,.5*r)*jd(r,ys*n)}Lr(Od,"factory",(function(r){var n,e,t,i;return n=Vd(e=rn(r)),t=Vf(n),i=Qu(-1,e-1),r>=0||1===i?t:function(r){return-1*t(r)}})),Lr(jd,"factory",(function(r){return r<0||Z(r)||!z(r)?Sd(NaN):0===r?Sd(1):function(n){var e,t,i,o;if(Z(n))return NaN;for(t=1,i=0,o=r;o>1;o--)e=n*t-o*i,i=t,t=e;return n*t-i}})),Lr(Rd,"factory",(function(r){var n;return r<0||Z(r)||!z(r)?Sd(NaN):0===r?Sd(1):(n=Qu(2,.5*r),function(e){return n*jd(r,ys*e)})}));var Id={};function kd(r){var n,e,t,i,o,u,a,f,s;if(void 0===(n=Id[r])){if(f=r+1,n=new Array(f),0===r)n[0]=2;else{for(s=0;s=0?t:Qu(-1,e)*t}Lr(Bd,"factory",(function(r){var n,e,t,i;return n=kd(e=rn(r)),t=Vf(n),i=Qu(-1,e),r>=0||1===i?t:function(r){return-1*t(r)}}));var Fd={};U(Fd,"continuedFraction",Gf),U(Fd,"evalpoly",Nf),U(Fd,"evalpolyf",xd),U(Fd,"evalrational",Td),U(Fd,"evalrationalf",Nd),U(Fd,"fibpoly",Od),U(Fd,"hermitepoly",Rd),U(Fd,"lucaspoly",Bd),U(Fd,"normhermitepoly",jd),U(Fd,"sumSeries",Rf);var Pd=/./;function Ld(r){return"boolean"==typeof r}var Ud=Boolean,Md=Boolean.prototype.toString;var Cd=rr();function Yd(r){return"object"==typeof r&&(r instanceof Ud||(Cd?function(r){try{return Md.call(r),!0}catch(r){return!1}}(r):"[object Boolean]"===ar(r)))}function qd(r){return Ld(r)||Yd(r)}Lr(qd,"isPrimitive",Ld),Lr(qd,"isObject",Yd);var Dd="object"==typeof self?self:null,zd="object"==typeof window?window:null,Wd="object"==typeof globalThis?globalThis:null;function Gd(r){if(arguments.length){if(!Ld(r))throw new TypeError(j("invalid argument. Must provide a boolean. Value: `%s`.",r));if(r)return new Function("return this;")()}if(Wd)return Wd;if(Dd)return Dd;if(zd)return zd;throw new Error("unexpected error. Unable to resolve global object.")}var Zd=Gd(),Jd=Zd.document&&Zd.document.childNodes,Hd=Int8Array;function $d(){return/^\s*function\s*([^(]*)/i}var Xd=/^\s*function\s*([^(]*)/i;Lr($d,"REGEXP",Xd);var Kd=Array.isArray?Array.isArray:function(r){return"[object Array]"===ar(r)};function Qd(r){if("function"!=typeof r)throw new TypeError(j("invalid argument. Must provide a function. Value: `%s`.",r));return function(n){var e,t;if(!Kd(n))return!1;if(e=n.length,0===e)return!1;for(t=0;t(n=rn(n))?n:r},min:function(r,n){return r>n?n:r},"mean-abs":function(r,n){return(r=rn(r))+((n=rn(n))-r)/2},mean:function(r,n){return r+(n-r)/2},x:function(r){return r},y:function(r,n){return n}};function ug(r,n,e){var t,i;if(Z(r)||Z(n))return NaN;if(r===W||r===H||n===W||n===H)return r===n?NaN:W;if(r===n)return 0;if(ig(e))t=e;else if(void 0===e&&(e="max-abs"),void 0===(t=og[e]))throw new Error(j("invalid argument. Unrecognized/unsupported scale function. Value: `%s`.",e));return 0===(i=t(r,n))?NaN:rn((r-n)/i)}var ag=en*on;var fg={};U(fg,"absdiff",(function(r,n){return Z(r)||Z(n)?NaN:xr(r)||xr(n)?r===n?NaN:W:rn(r-n)})),U(fg,"epsdiff",(function(r,n,e){var t=ug(r,n,e||"max-abs");return Z(t)||t===W?t:t>=ag?en:t/on})),U(fg,"reldiff",ug);var sg={};function cg(r){var n=typeof r;return null!==r&&("object"===n||"function"===n)&&ig(r.next)}function lg(){return"function"==typeof or&&"symbol"==typeof or("foo")&&tr(or,"iterator")&&"symbol"==typeof or.iterator}U(sg,"assert",kr),U(sg,"ops",xn),U(sg,"special",_d),U(sg,"tools",Fd),U(sg,"utils",fg);var hg=lg()?Symbol.iterator:null;var pg={};function vg(r){return"object"==typeof r&&null!==r&&!Kd(r)}U(pg,"iterAdd",(function r(){var n,e,t,i,o,u;if((t=arguments.length)<2)throw new Error("insufficient arguments. Must provide two or more iterators.");for(n=[],e=[],u=0;uH&&_g(r)}function Tg(r){return Ur(r)&&xg(r)}function Ng(r){return Yr(r)&&xg(r.valueOf())}function Ag(r){return Tg(r)||Ng(r)}function Vg(r){return Tg(r)&&r>=0}function Og(r){return Ng(r)&&r.valueOf()>=0}function jg(r){return Vg(r)||Og(r)}Lr(Ag,"isPrimitive",Tg),Lr(Ag,"isObject",Ng),Lr(jg,"isPrimitive",Vg),Lr(jg,"isObject",Og);function Sg(r){return r==r&&r>H&&r=r.length)return{done:!0};return{value:r[i],done:!1}})),Lr(n,"return",(function(r){if(t=!0,arguments.length)return{value:r,done:!0};return{done:!0}})),hg&&Lr(n,hg,(function(){return e.iterator()})),n})),Lr(Pg.prototype,"last",(function(){if(this._length)return this._last.value})),Bg(Pg.prototype,"length",(function(){return this._length})),Lr(Pg.prototype,"pop",(function(){var r;return this._length&&(r=this._first.value,this._first.next?(this._first=this._first.next,this._first.prev=null):(this._first=null,this._last=null),this._length-=1),r})),Lr(Pg.prototype,"push",(function(r){var n;return n=new Fg(r),0===this._length?(this._first=n,this._last=n):(n.prev=this._last,this._last.next=n,this._last=n),this._length+=1,this})),Lr(Pg.prototype,"toArray",(function(){var r,n,e;for(n=[],r=this._first,e=0;e0?-r:r},convergents:function(r,n,e){return e&&r>0?-n:n},"*":function(r,n,e){return e&&r>0?[-r,-n]:[r,n]}};var Mg=2*Y;var Cg=(Y+1)/2;var Yg=(Y+1)/2;var qg=(Y+1)/2+1;var Dg=Y+1;var zg=(Y+1)/2+1;var Wg=Y+1;var Gg=(Y+1)/2;var Zg=(Y+1)/2;var Jg={};function Hg(r,n,e){var t,i,o,u;if(!cg(r))throw new TypeError(j("invalid argument. First argument must be an iterator protocol-compliant object. Value: `%s`.",r));if(!ig(n))throw new TypeError(j("invalid argument. Second argument must be a function. Value: `%s`.",n));if(t={invalid:NaN},arguments.length>2&&(o=function(r,n){return bg(n)?(tr(n,"invalid")&&(r.invalid=n.invalid),null):new TypeError(j("invalid argument. Options argument must be an object. Value: `%s`.",n))}(t,e),o))throw o;return Lr(i={},"next",(function(){var e;if(u)return{done:!0};if(e=r.next(),e.done)return u=!0,e;return{value:Ur(e.value)?n(e.value):t.invalid,done:!1}})),Lr(i,"return",(function(r){if(u=!0,arguments.length)return{value:r,done:!0};return{done:!0}})),hg&&ig(r[hg])&&Lr(i,hg,(function(){return Hg(r[hg](),n,t)})),i}function $g(r,n,e,t){var i,o,u,a,f,s,c,l;for(2,o=[0,0],i=[],u=[],l=0;l<2;l++)if(i.push(arguments[l]),cg(arguments[l]))u.push(1);else{if(!Ur(arguments[l]))throw new TypeError(j("invalid argument. Must provide an iterator protocol-compliant object or a number. Argument: `%u`. Value: `%s`.",l,arguments[l]));u.push(0)}if(!ig(e))throw new TypeError(j("invalid argument. Third argument must be a function. Value: `%s`.",e));if(f={invalid:NaN},arguments.length>3&&(c=function(r,n){return bg(n)?(tr(n,"invalid")&&(r.invalid=n.invalid),null):new TypeError(j("invalid argument. Options argument must be an object. Value: `%s`.",n))}(f,t),c))throw c;if(Lr(a={},"next",(function(){var r,n,t;if(s)return{done:!0};for(t=0;t<2;t++)if(u[t]){if((n=i[t].next()).done)return s=!0,n;"number"==typeof n.value?o[t]=n.value:r=!0}else o[t]=i[t];if(r)return{value:f.invalid,done:!1};return{value:e(o[0],o[1]),done:!1}})),Lr(a,"return",(function(r){if(s=!0,arguments.length)return{value:r,done:!0};return{done:!0}})),hg){for(l=0;l<2;l++)if(u[l]&&!ig(i[l][hg])){s=!0;break}s||Lr(a,hg,(function(){var r,n;for(r=[],n=0;n<2;n++)u[n]?r.push(i[n][hg]()):r.push(i[n]);return r.push(e,f),$g.apply(null,r)}))}return s=!1,a}U(Jg,"iterCompositesSeq",(function r(n){var e,t,i,o,u,a;if(e={iter:1e308},arguments.length&&(o=function(r,n){return bg(n)?tr(n,"iter")&&(r.iter=n.iter,!Vg(n.iter))?new TypeError(j("invalid option. `%s` option must be a nonnegative integer. Option: `%s`.","iter",n.iter)):null:new TypeError(j("invalid argument. Options argument must be an object. Value: `%s`.",n))}(e,n),o))throw o;return a=0,u=3,Lr(t={},"next",(function(){if(a+=1,i||a>e.iter)return{done:!0};u+=1;for(;!1===G(u);)u+=1;return{value:u,done:!1}})),Lr(t,"return",(function(r){if(i=!0,arguments.length)return{value:r,done:!0};return{done:!0}})),hg&&Lr(t,hg,(function(){return r(e)})),t})),U(Jg,"iterContinuedFractionSeq",(function r(n,e){var t,i,o,u,a,f,s,c,l,h,p,v,d,g,m;if(!Rg(n))throw new TypeError(j("invalid argument. First argument must be a finite number. Value: `%s`.",n));if(u={iter:1e308,tol:on,returns:"terms"},arguments.length>1&&(s=function(r,n){return bg(n)?tr(n,"iter")&&(r.iter=n.iter,!Vg(n.iter))?new TypeError(j("invalid option. `%s` option must be a nonnegative integer. Option: `%s`.","iter",n.iter)):tr(n,"tol")&&(r.tol=n.tol,!Rg(n.tol)||n.tol<=0)?new TypeError(j("invalid option. `%s` option must be a positive finite number. Option: `%s`.","tol",n.tol)):tr(n,"returns")&&(r.returns=n.returns,-1===Lg.indexOf(n.returns))?new TypeError(j('invalid option. `%s` option must be one of the following: "%s". Option: `%s`.',"returns",Lg.join('", "'),n.returns)):null:new TypeError(j("invalid argument. Options argument must be an object. Value: `%s`.",n))}(u,e),s))throw s;return t=Ug[u.returns],f=0,o=n,n<0?(c=!0,n=-n):c=!1,m=0,Lr(a={},"next",(function(){var r,n,e;if(m+=1,f>0)return 1===f&&d.length>0?(n=(r=d.pop())[0],e=r[1],-1===n?{done:!0}:(r=d.first(),2===d.length&&1===r[0]&&(n+=1,e=r[1],d.clear()),{value:t(n,e,c),done:!1})):(f=2,{done:!0});if(m===u.iter)return n=(r=d.pop())[0],e=r[1],1===(r=d.first())[0]&&(n+=1,e=r[1]),d.clear(),f=2,{value:t(n,e,c),done:!1};return r=d.push(y()).pop(),{value:t(r[0],r[1],c),done:!1}})),Lr(a,"return",(function(r){if(f=2,arguments.length)return{value:r,done:!0};return{done:!0}})),hg&&Lr(a,hg,(function(){return r(o,u)})),d=new Pg,l=C(n),d.push([l,l]),l===n||0===l&&(l=C(n=1/n),d.push([l,1/l]),l===n)?(f=1,a):(g=1/(n-l),p=h=l,v=0,d.push(y()),d.push(y()),a);function y(){var r=h;return l=C(g),g=1/(g-l),0===(v+=l)&&(v=1e-50),0===(p=l+1/p)&&(p=1e-50),h*=i=p*(v=1/v),rn(i-1)<=u.tol&&(f=1,r===h)?[-1,h]:[l,h]}})),U(Jg,"iterCubesSeq",(function r(n){var e,t,i,o,u;if(e={iter:208063},arguments.length&&(o=function(r,n){return bg(n)?tr(n,"iter")&&(r.iter=n.iter,!Vg(n.iter))?new TypeError(j("invalid option. `%s` option must be a nonnegative integer. Option: `%s`.","iter",n.iter)):null:new TypeError(j("invalid argument. Options argument must be an object. Value: `%s`.",n))}(e,n),o))throw o;return u=-1,Lr(t={},"next",(function(){if(u+=1,i||u>=e.iter)return{done:!0};return{value:u*u*u,done:!1}})),Lr(t,"return",(function(r){if(i=!0,arguments.length)return{value:r,done:!0};return{done:!0}})),hg&&Lr(t,hg,(function(){return r(e)})),t})),U(Jg,"iterEvenIntegersSeq",(function r(n){var e,t,i,o,u,a,f;if(e={iter:Y},arguments.length&&(o=function(r,n){return bg(n)?tr(n,"iter")&&(r.iter=n.iter,!Vg(n.iter))?new TypeError(j("invalid option. `%s` option must be a nonnegative integer. Option: `%s`.","iter",n.iter)):null:new TypeError(j("invalid argument. Options argument must be an object. Value: `%s`.",n))}(e,n),o))throw o;return u=-1,a=0,f=0,Lr(t={},"next",(function(){if(a+=1,i||a>e.iter)return{done:!0};if(1===a)return{value:0,done:!1};u<0&&(f+=2);return{value:(u*=-1)*f,done:!1}})),Lr(t,"return",(function(r){if(i=!0,arguments.length)return{value:r,done:!0};return{done:!0}})),hg&&Lr(t,hg,(function(){return r(e)})),t})),U(Jg,"iterFactorialsSeq",(function r(n){var e,t,i,o,u;if(e={iter:1e308},arguments.length&&(o=function(r,n){return bg(n)?tr(n,"iter")&&(r.iter=n.iter,!Vg(n.iter))?new TypeError(j("invalid option. `%s` option must be a nonnegative integer. Option: `%s`.","iter",n.iter)):null:new TypeError(j("invalid argument. Options argument must be an object. Value: `%s`.",n))}(e,n),o))throw o;return u=-1,Lr(t={},"next",(function(){if(u+=1,i||u>=e.iter)return{done:!0};return{value:ka(u),done:!1}})),Lr(t,"return",(function(r){if(i=!0,arguments.length)return{value:r,done:!0};return{done:!0}})),hg&&Lr(t,hg,(function(){return r(e)})),t})),U(Jg,"iterFibonacciSeq",(function r(n){var e,t,i,o,u,a,f,s;if(e={iter:79},arguments.length&&(o=function(r,n){if(!bg(n))return new TypeError(j("invalid argument. Options argument must be an object. Value: `%s`.",n));if(tr(n,"iter")){if(r.iter=n.iter,!Vg(n.iter))return new TypeError(j("invalid option. `%s` option must be a nonnegative integer. Option: `%s`.","iter",n.iter));if(n.iter>79)return new RangeError(j("invalid option. `%s` option must be less than or equal to 79. Option: `%u`.","iter",n.iter))}return null}(e,n),o))throw o;return u=0,a=1,f=0,s=0,Lr(t={},"next",(function(){if(s+=1,i||s>e.iter)return{done:!0};1===s?f=0:2===s?f=1:(f=u+a,u=a,a=f);return{value:f,done:!1}})),Lr(t,"return",(function(r){if(i=!0,arguments.length)return{value:r,done:!0};return{done:!0}})),hg&&Lr(t,hg,(function(){return r(e)})),t})),U(Jg,"iterFifthPowersSeq",(function r(n){var e,t,i,o,u;if(e={iter:1552},arguments.length&&(o=function(r,n){return bg(n)?tr(n,"iter")&&(r.iter=n.iter,!Vg(n.iter))?new TypeError(j("invalid option. `%s` option must be a nonnegative integer. Option: `%s`.","iter",n.iter)):null:new TypeError(j("invalid argument. Options argument must be an object. Value: `%s`.",n))}(e,n),o))throw o;return u=-1,Lr(t={},"next",(function(){var r;if(u+=1,i||u>=e.iter)return{done:!0};return r=u*u,{value:r*r*u,done:!1}})),Lr(t,"return",(function(r){if(i=!0,arguments.length)return{value:r,done:!0};return{done:!0}})),hg&&Lr(t,hg,(function(){return r(e)})),t})),U(Jg,"iterFourthPowersSeq",(function r(n){var e,t,i,o,u;if(e={iter:9741},arguments.length&&(o=function(r,n){return bg(n)?tr(n,"iter")&&(r.iter=n.iter,!Vg(n.iter))?new TypeError(j("invalid option. `%s` option must be a nonnegative integer. Option: `%s`.","iter",n.iter)):null:new TypeError(j("invalid argument. Options argument must be an object. Value: `%s`.",n))}(e,n),o))throw o;return u=-1,Lr(t={},"next",(function(){if(u+=1,i||u>=e.iter)return{done:!0};return{value:u*u*u*u,done:!1}})),Lr(t,"return",(function(r){if(i=!0,arguments.length)return{value:r,done:!0};return{done:!0}})),hg&&Lr(t,hg,(function(){return r(e)})),t})),U(Jg,"iterIntegersSeq",(function r(n){var e,t,i,o,u,a,f;if(e={iter:Mg},arguments.length&&(o=function(r,n){return bg(n)?tr(n,"iter")&&(r.iter=n.iter,!Vg(n.iter))?new TypeError(j("invalid option. `%s` option must be a nonnegative integer. Option: `%s`.","iter",n.iter)):null:new TypeError(j("invalid argument. Options argument must be an object. Value: `%s`.",n))}(e,n),o))throw o;return u=-1,a=0,f=0,Lr(t={},"next",(function(){if(a+=1,i||a>e.iter)return{done:!0};if(1===a)return{value:0,done:!1};u<0&&(f+=1);return{value:(u*=-1)*f,done:!1}})),Lr(t,"return",(function(r){if(i=!0,arguments.length)return{value:r,done:!0};return{done:!0}})),hg&&Lr(t,hg,(function(){return r(e)})),t})),U(Jg,"iterLucasSeq",(function r(n){var e,t,i,o,u,a,f,s;if(e={iter:77},arguments.length&&(o=function(r,n){if(!bg(n))return new TypeError(j("invalid argument. Options argument must be an object. Value: `%s`.",n));if(tr(n,"iter")){if(r.iter=n.iter,!Vg(n.iter))return new TypeError(j("invalid option. `%s` option must be a nonnegative integer. Option: `%s`.","iter",n.iter));if(n.iter>77)return new RangeError(j("invalid option. `%s` option must be less than or equal to 77. Option: `%u`.","iter",n.iter))}return null}(e,n),o))throw o;return u=2,a=1,f=0,s=0,Lr(t={},"next",(function(){if(s+=1,i||s>e.iter)return{done:!0};1===s?f=2:2===s?f=1:(f=u+a,u=a,a=f);return{value:f,done:!1}})),Lr(t,"return",(function(r){if(i=!0,arguments.length)return{value:r,done:!0};return{done:!0}})),hg&&Lr(t,hg,(function(){return r(e)})),t})),U(Jg,"iterNegaFibonacciSeq",(function r(n){var e,t,i,o,u,a,f,s;if(e={iter:79},arguments.length&&(o=function(r,n){if(!bg(n))return new TypeError(j("invalid argument. Options argument must be an object. Value: `%s`.",n));if(tr(n,"iter")){if(r.iter=n.iter,!Vg(n.iter))return new TypeError(j("invalid option. `%s` option must be a nonnegative integer. Option: `%s`.","iter",n.iter));if(n.iter>79)return new RangeError(j("invalid option. `%s` option must be less than or equal to 79. Option: `%u`.","iter",n.iter))}return null}(e,n),o))throw o;return u=0,a=1,f=0,s=0,Lr(t={},"next",(function(){if(s+=1,i||s>e.iter)return{done:!0};1===s?f=0:2===s?f=1:(f=u-a,u=a,a=f);return{value:f,done:!1}})),Lr(t,"return",(function(r){if(i=!0,arguments.length)return{value:r,done:!0};return{done:!0}})),hg&&Lr(t,hg,(function(){return r(e)})),t})),U(Jg,"iterNegaLucasSeq",(function r(n){var e,t,i,o,u,a,f,s;if(e={iter:77},arguments.length&&(o=function(r,n){if(!bg(n))return new TypeError(j("invalid argument. Options argument must be an object. Value: `%s`.",n));if(tr(n,"iter")){if(r.iter=n.iter,!Vg(n.iter))return new TypeError(j("invalid option. `%s` option must be a nonnegative integer. Option: `%s`.","iter",n.iter));if(n.iter>77)return new RangeError(j("invalid option. `%s` option must be less than or equal to 77. Option: `%u`.","iter",n.iter))}return null}(e,n),o))throw o;return u=2,a=-1,f=0,s=0,Lr(t={},"next",(function(){if(s+=1,i||s>e.iter)return{done:!0};1===s?f=2:2===s?f=-1:(f=u-a,u=a,a=f);return{value:f,done:!1}})),Lr(t,"return",(function(r){if(i=!0,arguments.length)return{value:r,done:!0};return{done:!0}})),hg&&Lr(t,hg,(function(){return r(e)})),t})),U(Jg,"iterNegativeEvenIntegersSeq",(function r(n){var e,t,i,o,u,a;if(e={iter:Cg},arguments.length&&(o=function(r,n){return bg(n)?tr(n,"iter")&&(r.iter=n.iter,!Vg(n.iter))?new TypeError(j("invalid option. `%s` option must be a nonnegative integer. Option: `%s`.","iter",n.iter)):null:new TypeError(j("invalid argument. Options argument must be an object. Value: `%s`.",n))}(e,n),o))throw o;return u=0,a=0,Lr(t={},"next",(function(){if(u+=1,i||u>e.iter)return{done:!0};return{value:a-=2,done:!1}})),Lr(t,"return",(function(r){if(i=!0,arguments.length)return{value:r,done:!0};return{done:!0}})),hg&&Lr(t,hg,(function(){return r(e)})),t})),U(Jg,"iterNegativeIntegersSeq",(function r(n){var e,t,i,o,u;if(e={iter:Y},arguments.length&&(o=function(r,n){return bg(n)?tr(n,"iter")&&(r.iter=n.iter,!Vg(n.iter))?new TypeError(j("invalid option. `%s` option must be a nonnegative integer. Option: `%s`.","iter",n.iter)):null:new TypeError(j("invalid argument. Options argument must be an object. Value: `%s`.",n))}(e,n),o))throw o;return u=0,Lr(t={},"next",(function(){if(u+=1,i||u>e.iter)return{done:!0};return{value:-u,done:!1}})),Lr(t,"return",(function(r){if(i=!0,arguments.length)return{value:r,done:!0};return{done:!0}})),hg&&Lr(t,hg,(function(){return r(e)})),t})),U(Jg,"iterNegativeOddIntegersSeq",(function r(n){var e,t,i,o,u,a;if(e={iter:Yg},arguments.length&&(o=function(r,n){return bg(n)?tr(n,"iter")&&(r.iter=n.iter,!Vg(n.iter))?new TypeError(j("invalid option. `%s` option must be a nonnegative integer. Option: `%s`.","iter",n.iter)):null:new TypeError(j("invalid argument. Options argument must be an object. Value: `%s`.",n))}(e,n),o))throw o;return u=0,a=1,Lr(t={},"next",(function(){if(u+=1,i||u>e.iter)return{done:!0};return{value:a-=2,done:!1}})),Lr(t,"return",(function(r){if(i=!0,arguments.length)return{value:r,done:!0};return{done:!0}})),hg&&Lr(t,hg,(function(){return r(e)})),t})),U(Jg,"iterNonFibonacciSeq",(function r(n){var e,t,i,o,u;if(e={iter:1e308},arguments.length&&(o=function(r,n){return bg(n)?tr(n,"iter")&&(r.iter=n.iter,!Vg(n.iter))?new TypeError(j("invalid option. `%s` option must be a nonnegative integer. Option: `%s`.","iter",n.iter)):null:new TypeError(j("invalid argument. Options argument must be an object. Value: `%s`.",n))}(e,n),o))throw o;return u=0,Lr(t={},"next",(function(){if(u+=1,i||u>e.iter)return{done:!0};return{value:wv(u),done:!1}})),Lr(t,"return",(function(r){if(i=!0,arguments.length)return{value:r,done:!0};return{done:!0}})),hg&&Lr(t,hg,(function(){return r(e)})),t})),U(Jg,"iterNonNegativeEvenIntegersSeq",(function r(n){var e,t,i,o,u,a;if(e={iter:qg},arguments.length&&(o=function(r,n){return bg(n)?tr(n,"iter")&&(r.iter=n.iter,!Vg(n.iter))?new TypeError(j("invalid option. `%s` option must be a nonnegative integer. Option: `%s`.","iter",n.iter)):null:new TypeError(j("invalid argument. Options argument must be an object. Value: `%s`.",n))}(e,n),o))throw o;return u=0,a=-2,Lr(t={},"next",(function(){if(u+=1,i||u>e.iter)return{done:!0};return{value:a+=2,done:!1}})),Lr(t,"return",(function(r){if(i=!0,arguments.length)return{value:r,done:!0};return{done:!0}})),hg&&Lr(t,hg,(function(){return r(e)})),t})),U(Jg,"iterNonNegativeIntegersSeq",(function r(n){var e,t,i,o,u;if(e={iter:Dg},arguments.length&&(o=function(r,n){return bg(n)?tr(n,"iter")&&(r.iter=n.iter,!Vg(n.iter))?new TypeError(j("invalid option. `%s` option must be a nonnegative integer. Option: `%s`.","iter",n.iter)):null:new TypeError(j("invalid argument. Options argument must be an object. Value: `%s`.",n))}(e,n),o))throw o;return u=-1,Lr(t={},"next",(function(){if(u+=1,i||u>=e.iter)return{done:!0};return{value:u,done:!1}})),Lr(t,"return",(function(r){if(i=!0,arguments.length)return{value:r,done:!0};return{done:!0}})),hg&&Lr(t,hg,(function(){return r(e)})),t})),U(Jg,"iterNonPositiveEvenIntegersSeq",(function r(n){var e,t,i,o,u,a;if(e={iter:zg},arguments.length&&(o=function(r,n){return bg(n)?tr(n,"iter")&&(r.iter=n.iter,!Vg(n.iter))?new TypeError(j("invalid option. `%s` option must be a nonnegative integer. Option: `%s`.","iter",n.iter)):null:new TypeError(j("invalid argument. Options argument must be an object. Value: `%s`.",n))}(e,n),o))throw o;return u=0,a=2,Lr(t={},"next",(function(){if(u+=1,i||u>e.iter)return{done:!0};return{value:a-=2,done:!1}})),Lr(t,"return",(function(r){if(i=!0,arguments.length)return{value:r,done:!0};return{done:!0}})),hg&&Lr(t,hg,(function(){return r(e)})),t})),U(Jg,"iterNonPositiveIntegersSeq",(function r(n){var e,t,i,o,u,a;if(e={iter:Wg},arguments.length&&(o=function(r,n){return bg(n)?tr(n,"iter")&&(r.iter=n.iter,!Vg(n.iter))?new TypeError(j("invalid option. `%s` option must be a nonnegative integer. Option: `%s`.","iter",n.iter)):null:new TypeError(j("invalid argument. Options argument must be an object. Value: `%s`.",n))}(e,n),o))throw o;return u=0,a=1,Lr(t={},"next",(function(){if(u+=1,i||u>e.iter)return{done:!0};return{value:a-=1,done:!1}})),Lr(t,"return",(function(r){if(i=!0,arguments.length)return{value:r,done:!0};return{done:!0}})),hg&&Lr(t,hg,(function(){return r(e)})),t})),U(Jg,"iterNonSquaresSeq",(function r(n){var e,t,i,o,u;if(e={iter:9007199349647256},arguments.length&&(o=function(r,n){return bg(n)?tr(n,"iter")&&(r.iter=n.iter,!Vg(n.iter))?new TypeError(j("invalid option. `%s` option must be a nonnegative integer. Option: `%s`.","iter",n.iter)):null:new TypeError(j("invalid argument. Options argument must be an object. Value: `%s`.",n))}(e,n),o))throw o;return u=0,Lr(t={},"next",(function(){if(u+=1,i||u>e.iter)return{done:!0};return{value:u+C(.5+M(u)),done:!1}})),Lr(t,"return",(function(r){if(i=!0,arguments.length)return{value:r,done:!0};return{done:!0}})),hg&&Lr(t,hg,(function(){return r(e)})),t})),U(Jg,"iterOddIntegersSeq",(function r(n){var e,t,i,o,u,a,f;if(e={iter:Y},arguments.length&&(o=function(r,n){return bg(n)?tr(n,"iter")&&(r.iter=n.iter,!Vg(n.iter))?new TypeError(j("invalid option. `%s` option must be a nonnegative integer. Option: `%s`.","iter",n.iter)):null:new TypeError(j("invalid argument. Options argument must be an object. Value: `%s`.",n))}(e,n),o))throw o;return u=-1,a=0,f=-1,Lr(t={},"next",(function(){if(a+=1,i||a>e.iter)return{done:!0};u<0&&(f+=2);return{value:(u*=-1)*f,done:!1}})),Lr(t,"return",(function(r){if(i=!0,arguments.length)return{value:r,done:!0};return{done:!0}})),hg&&Lr(t,hg,(function(){return r(e)})),t})),U(Jg,"iterPositiveEvenIntegersSeq",(function r(n){var e,t,i,o,u,a;if(e={iter:Gg},arguments.length&&(o=function(r,n){return bg(n)?tr(n,"iter")&&(r.iter=n.iter,!Vg(n.iter))?new TypeError(j("invalid option. `%s` option must be a nonnegative integer. Option: `%s`.","iter",n.iter)):null:new TypeError(j("invalid argument. Options argument must be an object. Value: `%s`.",n))}(e,n),o))throw o;return u=0,a=0,Lr(t={},"next",(function(){if(u+=1,i||u>e.iter)return{done:!0};return{value:a+=2,done:!1}})),Lr(t,"return",(function(r){if(i=!0,arguments.length)return{value:r,done:!0};return{done:!0}})),hg&&Lr(t,hg,(function(){return r(e)})),t})),U(Jg,"iterPositiveIntegersSeq",(function r(n){var e,t,i,o,u;if(e={iter:Y},arguments.length&&(o=function(r,n){return bg(n)?tr(n,"iter")&&(r.iter=n.iter,!Vg(n.iter))?new TypeError(j("invalid option. `%s` option must be a nonnegative integer. Option: `%s`.","iter",n.iter)):null:new TypeError(j("invalid argument. Options argument must be an object. Value: `%s`.",n))}(e,n),o))throw o;return u=0,Lr(t={},"next",(function(){if(u+=1,i||u>e.iter)return{done:!0};return{value:u,done:!1}})),Lr(t,"return",(function(r){if(i=!0,arguments.length)return{value:r,done:!0};return{done:!0}})),hg&&Lr(t,hg,(function(){return r(e)})),t})),U(Jg,"iterPositiveOddIntegersSeq",(function r(n){var e,t,i,o,u,a;if(e={iter:Zg},arguments.length&&(o=function(r,n){return bg(n)?tr(n,"iter")&&(r.iter=n.iter,!Vg(n.iter))?new TypeError(j("invalid option. `%s` option must be a nonnegative integer. Option: `%s`.","iter",n.iter)):null:new TypeError(j("invalid argument. Options argument must be an object. Value: `%s`.",n))}(e,n),o))throw o;return u=0,a=-1,Lr(t={},"next",(function(){if(u+=1,i||u>e.iter)return{done:!0};return{value:a+=2,done:!1}})),Lr(t,"return",(function(r){if(i=!0,arguments.length)return{value:r,done:!0};return{done:!0}})),hg&&Lr(t,hg,(function(){return r(e)})),t})),U(Jg,"iterPrimesSeq",(function r(n){var e,t,i,o,u,a;if(e={iter:0xdefddd2d1d18},arguments.length&&(o=function(r,n){return bg(n)?tr(n,"iter")&&(r.iter=n.iter,!Vg(n.iter))?new TypeError(j("invalid option. `%s` option must be a nonnegative integer. Option: `%s`.","iter",n.iter)):null:new TypeError(j("invalid argument. Options argument must be an object. Value: `%s`.",n))}(e,n),o))throw o;return a=0,u=1,Lr(t={},"next",(function(){if(a+=1,i||a>e.iter)return{done:!0};if(a<2)return{value:2,done:!1};u+=2;for(;!1===D(u);)u+=2;return{value:u,done:!1}})),Lr(t,"return",(function(r){if(i=!0,arguments.length)return{value:r,done:!0};return{done:!0}})),hg&&Lr(t,hg,(function(){return r(e)})),t})),U(Jg,"iterSquaredTriangularSeq",(function r(n){var e,t,i,o,u;if(e={iter:11585},arguments.length&&(o=function(r,n){return bg(n)?tr(n,"iter")&&(r.iter=n.iter,!Vg(n.iter))?new TypeError(j("invalid option. `%s` option must be a nonnegative integer. Option: `%s`.","iter",n.iter)):null:new TypeError(j("invalid argument. Options argument must be an object. Value: `%s`.",n))}(e,n),o))throw o;return u=-1,Lr(t={},"next",(function(){var r;if(u+=1,i||u>=e.iter)return{done:!0};return{value:(r=u/2*(u+1))*r,done:!1}})),Lr(t,"return",(function(r){if(i=!0,arguments.length)return{value:r,done:!0};return{done:!0}})),hg&&Lr(t,hg,(function(){return r(e)})),t})),U(Jg,"iterSquaresSeq",(function r(n){var e,t,i,o,u;if(e={iter:94906265},arguments.length&&(o=function(r,n){return bg(n)?tr(n,"iter")&&(r.iter=n.iter,!Vg(n.iter))?new TypeError(j("invalid option. `%s` option must be a nonnegative integer. Option: `%s`.","iter",n.iter)):null:new TypeError(j("invalid argument. Options argument must be an object. Value: `%s`.",n))}(e,n),o))throw o;return u=-1,Lr(t={},"next",(function(){if(u+=1,i||u>=e.iter)return{done:!0};return{value:u*u,done:!1}})),Lr(t,"return",(function(r){if(i=!0,arguments.length)return{value:r,done:!0};return{done:!0}})),hg&&Lr(t,hg,(function(){return r(e)})),t})),U(Jg,"iterTriangularSeq",(function r(n){var e,t,i,o,u;if(e={iter:134217727},arguments.length&&(o=function(r,n){return bg(n)?tr(n,"iter")&&(r.iter=n.iter,!Vg(n.iter))?new TypeError(j("invalid option. `%s` option must be a nonnegative integer. Option: `%s`.","iter",n.iter)):null:new TypeError(j("invalid argument. Options argument must be an object. Value: `%s`.",n))}(e,n),o))throw o;return u=-1,Lr(t={},"next",(function(){if(u+=1,i||u>=e.iter)return{done:!0};return{value:u/2*(u+1),done:!1}})),Lr(t,"return",(function(r){if(i=!0,arguments.length)return{value:r,done:!0};return{done:!0}})),hg&&Lr(t,hg,(function(){return r(e)})),t}));var Xg={};U(Xg,"iterAbs",(function(r){return Hg(r,rn)})),U(Xg,"iterAbs2",(function(r){return Hg(r,Tn)})),U(Xg,"iterAcos",(function(r){return Hg(r,Rn)})),U(Xg,"iterAcosh",(function(r){return Hg(r,ze)})),U(Xg,"iterAcot",(function(r){return Hg(r,He)})),U(Xg,"iterAcoth",(function(r){return Hg(r,nt)})),U(Xg,"iterAcovercos",(function(r){return Hg(r,et)})),U(Xg,"iterAcoversin",(function(r){return Hg(r,tt)})),U(Xg,"iterAhavercos",(function(r){return Hg(r,ht)})),U(Xg,"iterAhaversin",(function(r){return Hg(r,pt)})),U(Xg,"iterAsin",(function(r){return Hg(r,jn)})),U(Xg,"iterAsinh",(function(r){return Hg(r,lt)})),U(Xg,"iterAtan",(function(r){return Hg(r,Je)})),U(Xg,"iterAtan2",(function(r,n){return $g(r,n,Ut)})),U(Xg,"iterAtanh",(function(r){return Hg(r,rt)})),U(Xg,"iterAvercos",(function(r){return Hg(r,Mt)})),U(Xg,"iterAversin",(function(r){return Hg(r,Ct)})),U(Xg,"iterBesselj0",(function(r){return Hg(r,_o)})),U(Xg,"iterBesselj1",(function(r){return Hg(r,Ro)})),U(Xg,"iterBessely0",(function(r){return Hg(r,zo)})),U(Xg,"iterBessely1",(function(r){return Hg(r,ru)})),U(Xg,"iterBeta",(function(r,n){return $g(r,n,ta)})),U(Xg,"iterBetaln",(function(r,n){return $g(r,n,wc)})),U(Xg,"iterBinet",(function(r){return Hg(r,Tc)})),U(Xg,"iterCbrt",(function(r){return Hg(r,Lc)})),U(Xg,"iterCeil",(function(r){return Hg(r,nu)})),U(Xg,"iterCeil2",(function(r){return Hg(r,el)})),U(Xg,"iterCeil10",(function(r){return Hg(r,pl)})),U(Xg,"iterCos",(function(r){return Hg(r,qa)})),U(Xg,"iterCosh",(function(r){return Hg(r,Al)})),U(Xg,"iterCosm1",(function(r){return Hg(r,Ol)})),U(Xg,"iterCospi",(function(r){return Hg(r,Ec)})),U(Xg,"iterCovercos",(function(r){return Hg(r,Yl)})),U(Xg,"iterCoversin",(function(r){return Hg(r,ql)})),U(Xg,"iterDeg2rad",(function(r){return Hg(r,_l)})),U(Xg,"iterDigamma",(function(r){return Hg(r,ah)})),U(Xg,"iterDiracDelta",(function(r){return Hg(r,fh)})),U(Xg,"iterEta",(function(r){return Hg(r,yh)})),U(Xg,"iterEllipe",(function(r){return Hg(r,Eh)})),U(Xg,"iterEllipk",(function(r){return Hg(r,bh)})),U(Xg,"iterErf",(function(r){return Hg(r,Gh)})),U(Xg,"iterErfc",(function(r){return Hg(r,_f)})),U(Xg,"iterErfcinv",(function(r){return Hg(r,ms)})),U(Xg,"iterErfinv",(function(r){return Hg(r,np)})),U(Xg,"iterExp",(function(r){return Hg(r,cu)})),U(Xg,"iterExp2",(function(r){return Hg(r,tp)})),U(Xg,"iterExp10",(function(r){return Hg(r,ap)})),U(Xg,"iterExpit",(function(r){return Hg(r,fp)})),U(Xg,"iterExpm1",(function(r){return Hg(r,la)})),U(Xg,"iterExpm1rel",(function(r){return Hg(r,cp)})),U(Xg,"iterFactorial",(function(r){return Hg(r,ka)})),U(Xg,"iterFactorialln",(function(r){return Hg(r,lp)})),U(Xg,"iterFloor",(function(r){return Hg(r,C)})),U(Xg,"iterFloor2",(function(r){return Hg(r,Vp)})),U(Xg,"iterFloor10",(function(r){return Hg(r,Op)})),U(Xg,"iterFresnelc",(function(r){return Hg(r,Bp)})),U(Xg,"iterFresnels",(function(r){return Hg(r,Pp)})),U(Xg,"iterGamma",(function(r){return Hg(r,Sa)})),U(Xg,"iterGamma1pm1",(function(r){return Hg(r,Df)})),U(Xg,"iterGammaln",(function(r){return Hg(r,ff)})),U(Xg,"iterHacovercos",(function(r){return Hg(r,Dp)})),U(Xg,"iterHacoversin",(function(r){return Hg(r,zp)})),U(Xg,"iterHavercos",(function(r){return Hg(r,Wp)})),U(Xg,"iterHaversin",(function(r){return Hg(r,Gp)})),U(Xg,"iterInv",(function(r){return Hg(r,Jp)})),U(Xg,"iterLn",(function(r){return Hg(r,qe)})),U(Xg,"iterLog",(function(r,n){return $g(r,n,$p)})),U(Xg,"iterLog1mexp",(function(r){return Hg(r,Xp)})),U(Xg,"iterLog1p",(function(r){return Hg(r,Ie)})),U(Xg,"iterLog1pexp",(function(r){return Hg(r,Kp)})),U(Xg,"iterLog2",(function(r){return Hg(r,nl)})),U(Xg,"iterLog10",(function(r){return Hg(r,hl)})),U(Xg,"iterLogit",(function(r){return Hg(r,Qp)})),U(Xg,"iterPow",(function(r,n){return $g(r,n,Qu)})),U(Xg,"iterRad2deg",(function(r){return Hg(r,kn)})),U(Xg,"iterRamp",(function(r){return Hg(r,Hv)})),U(Xg,"iterZeta",(function(r){return Hg(r,mh)})),U(Xg,"iterRound",(function(r){return Hg(r,bi)})),U(Xg,"iterRound2",(function(r){return Hg(r,Qv)})),U(Xg,"iterRound10",(function(r){return Hg(r,ed)})),U(Xg,"iterRsqrt",(function(r){return Hg(r,td)})),U(Xg,"iterSignum",(function(r){return Hg(r,Bs)})),U(Xg,"iterSin",(function(r){return Hg(r,Ta)})),U(Xg,"iterSinc",(function(r){return Hg(r,ad)})),U(Xg,"iterSinh",(function(r){return Hg(r,Ql)})),U(Xg,"iterSinpi",(function(r){return Hg(r,Da)})),U(Xg,"iterSpence",(function(r){return Hg(r,ld)})),U(Xg,"iterSqrt",(function(r){return Hg(r,M)})),U(Xg,"iterSqrt1pm1",(function(r){return Hg(r,hd)})),U(Xg,"iterTan",(function(r){return Hg(r,Ll)})),U(Xg,"iterTanh",(function(r){return Hg(r,Cl)})),U(Xg,"iterTrigamma",(function(r){return Hg(r,_v)})),U(Xg,"iterTrunc",(function(r){return Hg(r,eu)})),U(Xg,"iterTrunc2",(function(r){return Hg(r,vd)})),U(Xg,"iterTrunc10",(function(r){return Hg(r,dd)})),U(Xg,"iterVercos",(function(r){return Hg(r,bd)})),U(Xg,"iterVersin",(function(r){return Hg(r,Ed)}));var Kg={};U(Kg,"map",Hg),U(Kg,"map2",$g),U(Kg,"map3",(function r(n,e,t,i,o){var u,a,f,s,c,l,h,p;for(3,a=[0,0,0],u=[],f=[],p=0;p<3;p++)if(u.push(arguments[p]),cg(arguments[p]))f.push(1);else{if(!Ur(arguments[p]))throw new TypeError(j("invalid argument. Must provide an iterator protocol-compliant object or a number. Argument: `%u`. Value: `%s`.",p,arguments[p]));f.push(0)}if(!ig(i))throw new TypeError(j("invalid argument. Third argument must be a function. Value: `%s`.",i));if(c={invalid:NaN},arguments.length>4&&(h=function(r,n){return bg(n)?(tr(n,"invalid")&&(r.invalid=n.invalid),null):new TypeError(j("invalid argument. Options argument must be an object. Value: `%s`.",n))}(c,o),h))throw h;if(Lr(s={},"next",(function(){var r,n,e;if(l)return{done:!0};for(e=0;e<3;e++)if(f[e]){if((n=u[e].next()).done)return l=!0,n;"number"==typeof n.value?a[e]=n.value:r=!0}else a[e]=u[e];if(r)return{value:c.invalid,done:!1};return{value:i(a[0],a[1],a[2]),done:!1}})),Lr(s,"return",(function(r){if(l=!0,arguments.length)return{value:r,done:!0};return{done:!0}})),hg){for(p=0;p<3;p++)if(f[p]&&!ig(u[p][hg])){l=!0;break}l||Lr(s,hg,(function(){var n,e;for(n=[],e=0;e<3;e++)f[e]?n.push(u[e][hg]()):n.push(u[e]);return n.push(i,c),r.apply(null,n)}))}return l=!1,s}));var Qg=1e-50;var rm={};U(rm,"iterContinuedFraction",(function(r){var n,e,t,i,o,u,a,f,s,c;if(!cg(r))throw new TypeError(j("invalid argument. Must provide an iterator. Value: `%s`.",r));if(e={iter:1e308,tol:on},arguments.length>1&&(t=function(r,n){return bg(n)?tr(n,"iter")&&(r.iter=n.iter,!Vg(n.iter))?new TypeError("invalid option. `%s` option must be a nonnegative integer. Option: `%s`.","iter",n.iter):tr(n,"tol")&&(r.tol=n.tol,!Rg(n.tol)||n.tol<=0)?new TypeError(j("invalid option. `%s` option must be a positive finite number. Option: `%s`.","tol",n.tol)):null:new TypeError(j("invalid argument. Options argument must be an object. Value: `%s`.",n))}(e,arguments[1]),t))throw t;if((o=r.next()).done)return null;if(!Ur(i=o.value)||Z(i))return i;for(0===(f=i)&&(f=Qg),u=f,a=0,c=1;c=0&&r.length<=em}function im(r){return Object.keys(Object(r))}var om,um=void 0!==Object.keys;function am(r){return"[object Arguments]"===ar(r)}om=function(){return am(arguments)}();var fm=om;function sm(r){return"string"==typeof r}var cm=String.prototype.valueOf;var lm=rr();function hm(r){return"object"==typeof r&&(r instanceof String||(lm?function(r){try{return cm.call(r),!0}catch(r){return!1}}(r):"[object String]"===ar(r)))}function pm(r){return sm(r)||hm(r)}function vm(r){return Ur(r)&&Qt(r)}function dm(r){return Yr(r)&&Qt(r.valueOf())}function gm(r){return vm(r)||dm(r)}Lr(pm,"isPrimitive",sm),Lr(pm,"isObject",hm),Lr(gm,"isPrimitive",vm),Lr(gm,"isObject",dm);var mm=Object.prototype.propertyIsEnumerable;var ym=!mm.call("beep","0");function wm(r,n){var e;return null!=r&&(!(e=mm.call(r,n))&&ym&&pm(r)?!vm(n=+n)&&Tg(n)&&n>=0&&n=0&&r.length<=vr&&tr(r,"callee")&&!wm(r,"callee")},Em=Array.prototype.slice;var _m=wm((function(){}),"prototype"),xm=!wm({toString:null},"toString"),Tm=9007199254740991;function Nm(r){return"object"==typeof r&&null!==r&&"number"==typeof r.length&&_g(r.length)&&r.length>=0&&r.length<=Tm}function Am(r,n,e){var t,i;if(!Nm(r)&&!sm(r))throw new TypeError(j("invalid argument. First argument must be an array-like object. Value: `%s`.",r));if(0===(t=r.length))return-1;if(3===arguments.length){if(!Tg(e))throw new TypeError(j("invalid argument. Third argument must be an integer. Value: `%s`.",e));if(e>=0){if(e>=t)return-1;i=e}else(i=t+e)<0&&(i=0)}else i=0;if(gm(n)){for(;i0&&!tr(r,"0"))for(a=0;a1){if(!bg(n))throw new TypeError(j("invalid argument. Options argument must be an object. Value: `%s`.",n));if(tr(n,"duplicates")&&!Ld(s=n.duplicates))throw new TypeError(j("invalid option. `%s` option must be a boolean. Option: `%s`.","duplicates",s))}if(t=(e=Bm(r)).length,u={},s)for(f=0;f0&&n.push("generic"),n)}function Cm(){return{bool:0,int8:1,uint8:2,uint8c:3,int16:4,uint16:5,int32:6,uint32:7,int64:8,uint64:9,float32:10,float64:11,complex64:12,complex128:13,binary:14,generic:15,notype:17,userdefined_type:256}}Lr(Mm,"enum",Cm),function(r,n){var e,t,i;for(e=Bm(n),i=0;i ("):o.push("("):s===f?s===c?o.push(") => ()"):o.push(")"):s===c?o.push(") => ("):s%2==1?o.push(""):o.push(", ");for(s=0;si&&(t=!1),!t&&!n)return 0;i=o}return t&&n?3:t?1:2}function ey(r,n){return n&&(2===r||3===r)}function ty(r,n){return n&&(1===r||3===r)}function iy(r,n,e){var t,i,o,u,a;for(t=r.length,i=e,o=e,a=0;a0?o+=u*(r[a]-1):u<0&&(i+=u*(r[a]-1))}return[i,o]}Lr(iy,"assign",(function(r,n,e,t){var i,o,u,a,f;for(i=r.length,o=e,u=e,f=0;f0?u+=a*(r[f]-1):a<0&&(o+=a*(r[f]-1))}return t[0]=o,t[1]=u,t}));var oy=/[-\/\\^$*+?.()|[\]{}]/g;var uy=RegExp.prototype.exec;var ay=rr();function fy(r){return"object"==typeof r&&(r instanceof RegExp||(ay?function(r){try{return uy.call(r),!0}catch(r){return!1}}(r):"[object RegExp]"===ar(r)))}function sy(r,n,e){if(!sm(r))throw new TypeError(j("invalid argument. First argument must be a string. Value: `%s`.",r));if(sm(n))n=new RegExp(function(r){var n,e;if(!sm(r))throw new TypeError(j("invalid argument. Must provide a regular expression string. Value: `%s`.",r));if("/"===r[0])for(e=r.length-1;e>=0&&"/"!==r[e];e--);return void 0===e||e<=0?r.replace(oy,"\\$&"):(n=(n=r.substring(1,e)).replace(oy,"\\$&"),r=r[0]+n+r.substring(e))}(n),"g");else if(!fy(n))throw new TypeError(j("invalid argument. Second argument must be a string or regular expression. Value: `%s`.",n));if(!sm(e)&&!ig(e))throw new TypeError(j("invalid argument. Third argument must be a string or replacement function. Value: `%s`.",e));return Pm(r,n,e)}var cy={int8:"new Int8Array( [ {{data}} ] )",uint8:"new Uint8Array( [ {{data}} ] )",uint8c:"new Uint8ClampedArray( [ {{data}} ] )",int16:"new Int16Array( [ {{data}} ] )",uint16:"new Uint16Array( [ {{data}} ] )",int32:"new Int32Array( [ {{data}} ] )",uint32:"new Uint32Array( [ {{data}} ] )",float32:"new Float32Array( [ {{data}} ] )",float64:"new Float64Array( [ {{data}} ] )",generic:"[ {{data}} ]",binary:"new Buffer( [ {{data}} ] )",complex64:"new Complex64Array( [ {{data}} ] )",complex128:"new Complex128Array( [ {{data}} ] )"};var ly="function"==typeof ArrayBuffer;function hy(r){return ly&&r instanceof ArrayBuffer||"[object ArrayBuffer]"===ar(r)}var py="function"==typeof ArrayBuffer?ArrayBuffer:null;var vy,dy="function"==typeof ArrayBuffer?ArrayBuffer:void 0;vy=function(){var r,n,e;if("function"!=typeof py)return!1;try{(r=hy(e=new py(16))&&"function"==typeof py.isView)&&((n=new ne(e))[0]=-3.14,n[1]=NaN,r=r&&py.isView(n)&&16===e.byteLength&&-3.14===n[0]&&n[1]!=n[1])}catch(n){r=!1}return r}()?dy:function(){throw new Error("not implemented")};var gy=vy,my="function"==typeof DataView;var yy="function"==typeof DataView?DataView:null;var wy,by="function"==typeof DataView?DataView:void 0;wy=function(){var r,n,e,t;if("function"!=typeof yy)return!1;try{e=new gy(24),n=new yy(e,8),t=n,(r=(my&&t instanceof DataView||"[object DataView]"===ar(t))&&"function"==typeof n.getFloat64&&"function"==typeof n.setFloat64)&&(n.setFloat64(0,-3.14),n.setFloat64(8,NaN),r=r&&n.buffer===e&&16===n.byteLength&&8===n.byteOffset&&-3.14===n.getFloat64(0)&&n.getFloat64(8)!=n.getFloat64(8))}catch(n){r=!1}return r}()?by:function(){throw new Error("not implemented")};var Ey=wy,_y="function"==typeof BigInt?BigInt:void 0,xy=["row-major","column-major"];function Ty(){return xy.slice()}var Ny=["row-major","column-major"];function Ay(){return{"row-major":101,"column-major":102}}Lr((function(){return Ny.slice()}),"enum",Ay);var Vy={"row-major":101,"column-major":102};function Oy(){return{"row-major":Vy["row-major"],"column-major":Vy["column-major"]}}Lr(Ty,"enum",Oy);var jy=["throw","normalize","clamp","wrap"];function Sy(){return jy.slice()}function Ry(){return{throw:1,clamp:2,wrap:3,normalize:4}}Lr(Sy,"enum",Ry);var Iy={bool:0,int8:1,uint8:2,uint8c:3,int16:4,uint16:5,int32:6,uint32:7,int64:8,uint64:9,float32:10,float64:11,complex64:12,complex128:13,binary:14,generic:15,notype:17,userdefined_type:256},ky=Oy(),By={throw:1,clamp:2,wrap:3,normalize:4};var Fy=4294967295,Py=4294967296,Ly=new ue(8),Uy=new Ey(Ly.buffer);function My(r,n,e,t){var i,o,u;if(0===r){for(u=0;u>>0,i=Eg(r/Py),ve?(Uy.setUint32(0,o,ve),Uy.setUint32(4,i,ve)):(Uy.setUint32(0,i,ve),Uy.setUint32(4,o,ve)),u=0;u>>0,t=Eg(r/4294967296),e=new Ey(n.buffer),ve?(e.setUint32(0,i,ve),e.setUint32(4,t,ve)):(e.setUint32(0,t,ve),e.setUint32(4,i,ve))),n}),"assign",My);var Cy={bool:0,int8:1,uint8:2,uint8c:3,int16:4,uint16:5,int32:6,uint32:7,int64:8,uint64:9,float32:10,float64:11,complex64:12,complex128:13,binary:14,generic:15,notype:17,userdefined_type:256},Yy=Oy(),qy={throw:1,clamp:2,wrap:3,normalize:4};function Dy(r,n,e,t,i,o){var u,a,f,s,c;if(!(this instanceof Dy))return new Dy(r,n,e,t,i,o);for(s=1,c=0;c=0;u--)r-=o=r%e[u],r/=e[u],i+=o*n[u];return this._accessors?this._buffer.get(i):this._buffer[i]})),Lr(Dy.prototype,"set",(function(){var r,n;for(r=this._offset,n=0;n=0;a--)r-=u=r%t[a],r/=t[a],o+=u*e[a];return this._accessors?this._buffer.set(n,o):this._buffer[o]=n,this})),Lr(Dy.prototype,"toString",(function(){var r,n,e,t,i,o;if(n=this._shape.length,e="ndarray( '"+(t=this._dtype)+"', ",r="",this._length<=100)if("complex64"===t||"complex128"===t)for(o=0;o=0;o--)r+=Hr(i=this.iget(this._length-1-o))+", "+$r(i),o>0&&(r+=", ");else for(o=2;o>=0;o--)r+=this.iget(this._length-1-o),o>0&&(r+=", ")}if(e+=sy(cy[this.dtype],"{{data}}",r),e+=", ",e+=0===n?"[]":"[ "+this._shape.join(", ")+" ]",e+=", ",e+="[ ",0===n)e+="0";else for(o=0;o=2)n.push(t[0],t[1]);else{if(!$m(t))return new TypeError(j("invalid argument. An iterator must return either a two-element array containing real and imaginary components or a complex number. Value: `%s`.",t));n.push(zr(t),Wr(t))}return n}var Vw=2*hr.BYTES_PER_ELEMENT,Ow=lg();function jw(r){return r instanceof Iw||"object"==typeof r&&null!==r&&("Complex64Array"===r.constructor.name||"Complex128Array"===r.constructor.name)&&"number"==typeof r._length&&"object"==typeof r._buffer}function Sw(r){return r===Iw||"Complex128Array"===r.name}function Rw(r,n){return new Dr(r[n*=2],r[n+1])}function Iw(){var r,n,e,t;if(n=arguments.length,!(this instanceof Iw))return 0===n?new Iw:1===n?new Iw(arguments[0]):2===n?new Iw(arguments[0],arguments[1]):new Iw(arguments[0],arguments[1],arguments[2]);if(0===n)e=new hr(0);else if(1===n)if(Vg(arguments[0]))e=new hr(2*arguments[0]);else if(Nm(arguments[0]))if((t=(e=arguments[0]).length)&&Kd(e)&&$m(e[0])){if(e=function(r,n){var e,t,i,o;for(e=n.length,o=0,i=0;ie.byteLength-r)throw new RangeError(j("invalid arguments. ArrayBuffer has insufficient capacity. Either decrease the array length or provide a bigger buffer. Minimum capacity: `%u`.",t*Vw));e=new hr(e,r,2*t)}}return Lr(this,"_buffer",e),Lr(this,"_length",e.length/2),this}function kw(r){var n,e,t;for(n=[];!(e=r.next()).done;)if(tm(t=e.value)&&t.length>=2)n.push(t[0],t[1]);else{if(!$m(t))return new TypeError(j("invalid argument. An iterator must return either a two-element array containing real and imaginary components or a complex number. Value: `%s`.",t));n.push(Hr(t),$r(t))}return n}Lr(Iw,"BYTES_PER_ELEMENT",Vw),Lr(Iw,"name","Complex64Array"),Lr(Iw,"from",(function(r){var n,e,t,i,o,u,a,f,s,c,l,h;if(!ig(this))throw new TypeError("invalid invocation. `this` context must be a constructor.");if(!Sw(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");if((e=arguments.length)>1){if(!ig(t=arguments[1]))throw new TypeError(j("invalid argument. Second argument must be a function. Value: `%s`.",t));e>2&&(n=arguments[2])}if(jw(r)){if(f=r.length,t){for(o=(i=new this(f))._buffer,h=0,l=0;l=2))throw new TypeError(j("invalid argument. Callback must return either a two-element array containing real and imaginary components or a complex number. Value: `%s`.",c));o[h]=c[0],o[h+1]=c[1]}h+=2}return i}return new this(r)}if(Nm(r)){if(t){for(f=r.length,a=r.get&&r.set?Nw("default"):xw("default"),l=0;l=2))throw new TypeError(j("invalid argument. Callback must return either a two-element array containing real and imaginary components or a complex number. Value: `%s`.",c));o[h]=c[0],o[h+1]=c[1]}h+=2}return i}return new this(r)}if(vg(r)&&Ow&&ig(r[hg])){if(!ig((o=r[hg]()).next))throw new TypeError(j("invalid argument. First argument must be an array-like object or an iterable. Value: `%s`.",r));if(u=t?function(r,n,e){var t,i,o,u;for(t=[],u=-1;!(i=r.next()).done;)if(u+=1,tm(o=n.call(e,i.value,u))&&o.length>=2)t.push(o[0],o[1]);else{if(!$m(o))return new TypeError(j("invalid argument. Callback must return either a two-element array containing real and imaginary components or a complex number. Value: `%s`.",o));t.push(zr(o),Wr(o))}return t}(o,t,n):Aw(o),u instanceof Error)throw u;for(o=(i=new this(f=u.length/2))._buffer,l=0;l=this._length))return Rw(this._buffer,r)})),Bg(Iw.prototype,"buffer",(function(){return this._buffer.buffer})),Bg(Iw.prototype,"byteLength",(function(){return this._buffer.byteLength})),Bg(Iw.prototype,"byteOffset",(function(){return this._buffer.byteOffset})),Lr(Iw.prototype,"BYTES_PER_ELEMENT",Iw.BYTES_PER_ELEMENT),Lr(Iw.prototype,"copyWithin",(function(r,n){if(!jw(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");return 2===arguments.length?this._buffer.copyWithin(2*r,2*n):this._buffer.copyWithin(2*r,2*n,2*arguments[2]),this})),Lr(Iw.prototype,"entries",(function(){var r,n,e,t,i,o;if(!jw(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");return r=this,t=this._buffer,e=this._length,o=-1,Lr(n={},"next",(function(){if(o+=1,i||o>=e)return{done:!0};return{value:[o,Rw(t,o)],done:!1}})),Lr(n,"return",(function(r){if(i=!0,arguments.length)return{value:r,done:!0};return{done:!0}})),hg&&Lr(n,hg,(function(){return r.entries()})),n})),Lr(Iw.prototype,"every",(function(r,n){var e,t;if(!jw(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");if(!ig(r))throw new TypeError(j("invalid argument. First argument must be a function. Value: `%s`.",r));for(e=this._buffer,t=0;t1){if(!_g(n))throw new TypeError(j("invalid argument. Second argument must be an integer. Value: `%s`.",n));if(n<0&&(n+=i)<0&&(n=0),arguments.length>2){if(!_g(e))throw new TypeError(j("invalid argument. Third argument must be an integer. Value: `%s`.",e));e<0&&(e+=i)<0&&(e=0),e>i&&(e=i)}else e=i}else n=0,e=i;for(u=zr(r),a=Wr(r),f=n;f=0;t--)if(i=Rw(e,t),r.call(n,i,t,this))return i})),Lr(Iw.prototype,"findLastIndex",(function(r,n){var e,t,i;if(!jw(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");if(!ig(r))throw new TypeError(j("invalid argument. First argument must be a function. Value: `%s`.",r));for(e=this._buffer,t=this._length-1;t>=0;t--)if(i=Rw(e,t),r.call(n,i,t,this))return t;return-1})),Lr(Iw.prototype,"forEach",(function(r,n){var e,t,i;if(!jw(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");if(!ig(r))throw new TypeError(j("invalid argument. First argument must be a function. Value: `%s`.",r));for(e=this._buffer,t=0;t=this._length))return Rw(this._buffer,r)})),Lr(Iw.prototype,"includes",(function(r,n){var e,t,i,o,u;if(!jw(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");if(!$m(r))throw new TypeError(j("invalid argument. First argument must be a complex number. Value: `%s`.",r));if(arguments.length>1){if(!_g(n))throw new TypeError(j("invalid argument. Second argument must be an integer. Value: `%s`.",n));n<0&&(n+=this._length)<0&&(n=0)}else n=0;for(i=zr(r),o=Wr(r),e=this._buffer,u=n;u1){if(!_g(n))throw new TypeError(j("invalid argument. Second argument must be an integer. Value: `%s`.",n));n<0&&(n+=this._length)<0&&(n=0)}else n=0;for(i=zr(r),o=Wr(r),e=this._buffer,u=n;u=e)return{done:!0};return{value:i,done:!1}})),Lr(n,"return",(function(r){if(t=!0,arguments.length)return{value:r,done:!0};return{done:!0}})),hg&&Lr(n,hg,(function(){return r.keys()})),n})),Lr(Iw.prototype,"lastIndexOf",(function(r,n){var e,t,i,o,u;if(!jw(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");if(!$m(r))throw new TypeError(j("invalid argument. First argument must be a complex number. Value: `%s`.",r));if(arguments.length>1){if(!_g(n))throw new TypeError(j("invalid argument. Second argument must be an integer. Value: `%s`.",n));n>=this._length?n=this._length-1:n<0&&(n+=this._length)}else n=this._length-1;for(i=zr(r),o=Wr(r),e=this._buffer,u=n;u>=0;u--)if(i===e[t=2*u]&&o===e[t+1])return u;return-1})),Bg(Iw.prototype,"length",(function(){return this._length})),Lr(Iw.prototype,"map",(function(r,n){var e,t,i,o,u;if(!jw(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");if(!ig(r))throw new TypeError(j("invalid argument. First argument must be a function. Value: `%s`.",r));for(t=this._buffer,e=(i=new this.constructor(this._length))._buffer,o=0;o1)t=n,o=0;else{if(0===i)throw new Error("invalid operation. If not provided an initial value, an array must contain at least one element.");t=Rw(e,0),o=1}for(;o1)t=n,o=i-1;else{if(0===i)throw new Error("invalid operation. If not provided an initial value, an array must contain at least one element.");t=Rw(e,i-1),o=i-2}for(;o>=0;o--)t=r(t,Rw(e,o),o,this);return t})),Lr(Iw.prototype,"reverse",(function(){var r,n,e,t,i,o;if(!jw(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");for(e=this._length,r=this._buffer,t=Eg(e/2),i=0;i1){if(!Vg(e=arguments[1]))throw new TypeError(j("invalid argument. Index argument must be a nonnegative integer. Value: `%s`.",e))}else e=0;if($m(r)){if(e>=this._length)throw new RangeError(j("invalid argument. Index argument is out-of-bounds. Value: `%u`.",e));return t[e*=2]=zr(r),void(t[e+1]=Wr(r))}if(jw(r)){if(e+(u=r._length)>this._length)throw new RangeError("invalid arguments. Target array lacks sufficient storage to accommodate source values.");if(n=r._buffer,s=t.byteOffset+e*Vw,n.buffer===t.buffer&&n.byteOffsets){for(i=new hr(n.length),f=0;fthis._length)throw new RangeError("invalid arguments. Target array lacks sufficient storage to accommodate source values.");if(n=r,s=t.byteOffset+e*Vw,n.buffer===t.buffer&&n.byteOffsets){for(i=new hr(u),f=0;fthis._length)throw new RangeError("invalid arguments. Target array lacks sufficient storage to accommodate source values.");for(e*=2,f=0;fa&&(n=a)}}for(e=ri&&(n=i)}}return r>=i?(i=0,e=t.byteLength):r>=n?(i=0,e=t.byteOffset+r*Vw):(i=n-r,e=t.byteOffset+r*Vw),new this.constructor(t.buffer,e,i<0?0:i)})),Lr(Iw.prototype,"toLocaleString",(function(r,n){var e,t,i,o,u;if(!jw(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");if(0===arguments.length)t=[];else{if(!sm(r)&&!hw(r))throw new TypeError(j("invalid argument. First argument must be a string or an array of strings. Value: `%s`.",r));t=r}if(arguments.length<2)e={};else{if(!vg(n))throw new TypeError(j("invalid argument. Options argument must be an object. Value: `%s`.",n));e=n}for(o=this._buffer,i=[],u=0;u=e)return{done:!0};return{value:Rw(i,o),done:!1}})),Lr(r,"return",(function(r){if(t=!0,arguments.length)return{value:r,done:!0};return{done:!0}})),hg&&Lr(r,hg,(function(){return n.values()})),r})),Lr(Iw.prototype,"with",(function(r,n){var e,t,i;if(!jw(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");if(!_g(r))throw new TypeError(j("invalid argument. First argument must be an integer. Value: `%s`.",r));if(i=this._length,r<0&&(r+=i),r<0||r>=i)throw new RangeError(j("invalid argument. Index argument is out-of-bounds. Value: `%s`.",r));if(!$m(n))throw new TypeError(j("invalid argument. Second argument must be a complex number. Value: `%s`.",n));return(e=(t=new this.constructor(this._buffer))._buffer)[2*r]=zr(n),e[2*r+1]=Wr(n),t}));var Bw=2*ne.BYTES_PER_ELEMENT,Fw=lg();function Pw(r){return r instanceof Mw||"object"==typeof r&&null!==r&&("Complex64Array"===r.constructor.name||"Complex128Array"===r.constructor.name)&&"number"==typeof r._length&&"object"==typeof r._buffer}function Lw(r){return r===Mw||"Complex64Array"===r.name}function Uw(r,n){return new Jr(r[n*=2],r[n+1])}function Mw(){var r,n,e,t;if(n=arguments.length,!(this instanceof Mw))return 0===n?new Mw:1===n?new Mw(arguments[0]):2===n?new Mw(arguments[0],arguments[1]):new Mw(arguments[0],arguments[1],arguments[2]);if(0===n)e=new ne(0);else if(1===n)if(Vg(arguments[0]))e=new ne(2*arguments[0]);else if(Nm(arguments[0]))if((t=(e=arguments[0]).length)&&Kd(e)&&$m(e[0])){if(e=function(r,n){var e,t,i,o;for(e=n.length,o=0,i=0;ie.byteLength-r)throw new RangeError(j("invalid arguments. ArrayBuffer has insufficient capacity. Either decrease the array length or provide a bigger buffer. Minimum capacity: `%u`.",t*Bw));e=new ne(e,r,2*t)}}return Lr(this,"_buffer",e),Lr(this,"_length",e.length/2),this}function Cw(r){var n,e;for(n=[];!(e=r.next()).done;)n.push(Ud(e.value));return n}Lr(Mw,"BYTES_PER_ELEMENT",Bw),Lr(Mw,"name","Complex128Array"),Lr(Mw,"from",(function(r){var n,e,t,i,o,u,a,f,s,c,l,h;if(!ig(this))throw new TypeError("invalid invocation. `this` context must be a constructor.");if(!Lw(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");if((e=arguments.length)>1){if(!ig(t=arguments[1]))throw new TypeError(j("invalid argument. Second argument must be a function. Value: `%s`.",t));e>2&&(n=arguments[2])}if(Pw(r)){if(f=r.length,t){for(o=(i=new this(f))._buffer,h=0,l=0;l=2))throw new TypeError(j("invalid argument. Callback must return either a two-element array containing real and imaginary components or a complex number. Value: `%s`.",c));o[h]=c[0],o[h+1]=c[1]}h+=2}return i}return new this(r)}if(Nm(r)){if(t){for(f=r.length,a=r.get&&r.set?Nw("default"):xw("default"),l=0;l=2))throw new TypeError(j("invalid argument. Callback must return either a two-element array containing real and imaginary components or a complex number. Value: `%s`.",c));o[h]=c[0],o[h+1]=c[1]}h+=2}return i}return new this(r)}if(vg(r)&&Fw&&ig(r[hg])){if(!ig((o=r[hg]()).next))throw new TypeError(j("invalid argument. First argument must be an array-like object or an iterable. Value: `%s`.",r));if(u=t?function(r,n,e){var t,i,o,u;for(t=[],u=-1;!(i=r.next()).done;)if(u+=1,tm(o=n.call(e,i.value,u))&&o.length>=2)t.push(o[0],o[1]);else{if(!$m(o))return new TypeError(j("invalid argument. Callback must return either a two-element array containing real and imaginary components or a complex number. Value: `%s`.",o));t.push(Hr(o),$r(o))}return t}(o,t,n):kw(o),u instanceof Error)throw u;for(o=(i=new this(f=u.length/2))._buffer,l=0;l=this._length))return Uw(this._buffer,r)})),Bg(Mw.prototype,"buffer",(function(){return this._buffer.buffer})),Bg(Mw.prototype,"byteLength",(function(){return this._buffer.byteLength})),Bg(Mw.prototype,"byteOffset",(function(){return this._buffer.byteOffset})),Lr(Mw.prototype,"BYTES_PER_ELEMENT",Mw.BYTES_PER_ELEMENT),Lr(Mw.prototype,"copyWithin",(function(r,n){if(!Pw(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");return 2===arguments.length?this._buffer.copyWithin(2*r,2*n):this._buffer.copyWithin(2*r,2*n,2*arguments[2]),this})),Lr(Mw.prototype,"entries",(function(){var r,n,e,t,i,o,u;if(!Pw(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");return n=this,r=this._buffer,t=this._length,o=-1,u=-2,Lr(e={},"next",(function(){var n;if(o+=1,i||o>=t)return{done:!0};return n=new Jr(r[u+=2],r[u+1]),{value:[o,n],done:!1}})),Lr(e,"return",(function(r){if(i=!0,arguments.length)return{value:r,done:!0};return{done:!0}})),hg&&Lr(e,hg,(function(){return n.entries()})),e})),Lr(Mw.prototype,"every",(function(r,n){var e,t;if(!Pw(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");if(!ig(r))throw new TypeError(j("invalid argument. First argument must be a function. Value: `%s`.",r));for(e=this._buffer,t=0;t1){if(!_g(n))throw new TypeError(j("invalid argument. Second argument must be an integer. Value: `%s`.",n));if(n<0&&(n+=i)<0&&(n=0),arguments.length>2){if(!_g(e))throw new TypeError(j("invalid argument. Third argument must be an integer. Value: `%s`.",e));e<0&&(e+=i)<0&&(e=0),e>i&&(e=i)}else e=i}else n=0,e=i;for(u=Hr(r),a=$r(r),f=n;f=0;t--)if(i=Uw(e,t),r.call(n,i,t,this))return i})),Lr(Mw.prototype,"findLastIndex",(function(r,n){var e,t,i;if(!Pw(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");if(!ig(r))throw new TypeError(j("invalid argument. First argument must be a function. Value: `%s`.",r));for(e=this._buffer,t=this._length-1;t>=0;t--)if(i=Uw(e,t),r.call(n,i,t,this))return t;return-1})),Lr(Mw.prototype,"forEach",(function(r,n){var e,t,i;if(!Pw(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");if(!ig(r))throw new TypeError(j("invalid argument. First argument must be a function. Value: `%s`.",r));for(e=this._buffer,t=0;t=this._length))return Uw(this._buffer,r)})),Bg(Mw.prototype,"length",(function(){return this._length})),Lr(Mw.prototype,"includes",(function(r,n){var e,t,i,o,u;if(!Pw(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");if(!$m(r))throw new TypeError(j("invalid argument. First argument must be a complex number. Value: `%s`.",r));if(arguments.length>1){if(!_g(n))throw new TypeError(j("invalid argument. Second argument must be an integer. Value: `%s`.",n));n<0&&(n+=this._length)<0&&(n=0)}else n=0;for(i=Hr(r),o=$r(r),e=this._buffer,u=n;u1){if(!_g(n))throw new TypeError(j("invalid argument. Second argument must be an integer. Value: `%s`.",n));n<0&&(n+=this._length)<0&&(n=0)}else n=0;for(i=Hr(r),o=$r(r),e=this._buffer,u=n;u=e)return{done:!0};return{value:i,done:!1}})),Lr(n,"return",(function(r){if(t=!0,arguments.length)return{value:r,done:!0};return{done:!0}})),hg&&Lr(n,hg,(function(){return r.keys()})),n})),Lr(Mw.prototype,"lastIndexOf",(function(r,n){var e,t,i,o,u;if(!Pw(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");if(!$m(r))throw new TypeError(j("invalid argument. First argument must be a complex number. Value: `%s`.",r));if(arguments.length>1){if(!_g(n))throw new TypeError(j("invalid argument. Second argument must be an integer. Value: `%s`.",n));n>=this._length?n=this._length-1:n<0&&(n+=this._length)}else n=this._length-1;for(i=Hr(r),o=$r(r),e=this._buffer,u=n;u>=0;u--)if(i===e[t=2*u]&&o===e[t+1])return u;return-1})),Lr(Mw.prototype,"map",(function(r,n){var e,t,i,o,u;if(!Pw(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");if(!ig(r))throw new TypeError(j("invalid argument. First argument must be a function. Value: `%s`.",r));for(t=this._buffer,e=(i=new this.constructor(this._length))._buffer,o=0;o1)t=n,o=0;else{if(0===i)throw new Error("invalid operation. If not provided an initial value, an array must contain at least one element.");t=Uw(e,0),o=1}for(;o1)t=n,o=i-1;else{if(0===i)throw new Error("invalid operation. If not provided an initial value, an array must contain at least one element.");t=Uw(e,i-1),o=i-2}for(;o>=0;o--)t=r(t,Uw(e,o),o,this);return t})),Lr(Mw.prototype,"reverse",(function(){var r,n,e,t,i,o;if(!Pw(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");for(e=this._length,r=this._buffer,t=Eg(e/2),i=0;i1){if(!Vg(e=arguments[1]))throw new TypeError(j("invalid argument. Index argument must be a nonnegative integer. Value: `%s`.",e))}else e=0;if($m(r)){if(e>=this._length)throw new RangeError(j("invalid argument. Index argument is out-of-bounds. Value: `%u`.",e));return t[e*=2]=Hr(r),void(t[e+1]=$r(r))}if(Pw(r)){if(e+(u=r._length)>this._length)throw new RangeError("invalid arguments. Target array lacks sufficient storage to accommodate source values.");if(n=r._buffer,s=t.byteOffset+e*Bw,n.buffer===t.buffer&&n.byteOffsets){for(i=new ne(n.length),f=0;fthis._length)throw new RangeError("invalid arguments. Target array lacks sufficient storage to accommodate source values.");if(n=r,s=t.byteOffset+e*Bw,n.buffer===t.buffer&&n.byteOffsets){for(i=new ne(u),f=0;fthis._length)throw new RangeError("invalid arguments. Target array lacks sufficient storage to accommodate source values.");for(e*=2,f=0;fa&&(n=a)}}for(e=ri&&(n=i)}}return r>=i?(i=0,e=t.byteLength):r>=n?(i=0,e=t.byteOffset+r*Bw):(i=n-r,e=t.byteOffset+r*Bw),new this.constructor(t.buffer,e,i<0?0:i)})),Lr(Mw.prototype,"toLocaleString",(function(r,n){var e,t,i,o,u;if(!Pw(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");if(0===arguments.length)t=[];else{if(!pm(r)&&!hw(r))throw new TypeError(j("invalid argument. First argument must be a string or an array of strings. Value: `%s`.",r));t=r}if(arguments.length<2)e={};else{if(!vg(n))throw new TypeError(j("invalid argument. Options argument must be an object. Value: `%s`.",n));e=n}for(o=this._buffer,i=[],u=0;u=e)return{done:!0};return{value:Uw(i,o),done:!1}})),Lr(r,"return",(function(r){if(t=!0,arguments.length)return{value:r,done:!0};return{done:!0}})),hg&&Lr(r,hg,(function(){return n.values()})),r})),Lr(Mw.prototype,"with",(function(r,n){var e,t,i;if(!Pw(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");if(!_g(r))throw new TypeError(j("invalid argument. First argument must be an integer. Value: `%s`.",r));if(i=this._length,r<0&&(r+=i),r<0||r>=i)throw new RangeError(j("invalid argument. Index argument is out-of-bounds. Value: `%s`.",r));if(!$m(n))throw new TypeError(j("invalid argument. Second argument must be a complex number. Value: `%s`.",n));return(e=(t=new this.constructor(this._buffer))._buffer)[2*r]=Hr(n),e[2*r+1]=$r(n),t}));var Yw=ue.BYTES_PER_ELEMENT,qw=lg();function Dw(r){return"object"==typeof r&&null!==r&&"BooleanArray"===r.constructor.name&&r.BYTES_PER_ELEMENT===Yw}function zw(r){return r===Ww}function Ww(){var r,n,e,t,i;if(n=arguments.length,!(this instanceof Ww))return 0===n?new Ww:1===n?new Ww(arguments[0]):2===n?new Ww(arguments[0],arguments[1]):new Ww(arguments[0],arguments[1],arguments[2]);if(0===n)e=new ue(0);else if(1===n)if(Vg(i=arguments[0]))e=new ue(i);else if(Nm(i))e=function(r,n){var e,t;for(e=n.length,t=0;te.byteLength-r)throw new RangeError(j("invalid arguments. ArrayBuffer has insufficient capacity. Either decrease the array length or provide a bigger buffer. Minimum capacity: `%u`.",t*Yw));e=new ue(e,r,t)}}return Lr(this,"_buffer",e),Lr(this,"_length",e.length),this}Lr(Ww,"BYTES_PER_ELEMENT",Yw),Lr(Ww,"name","BooleanArray"),Lr(Ww,"from",(function(r){var n,e,t,i,o,u,a,f,s;if(!ig(this))throw new TypeError("invalid invocation. `this` context must be a constructor.");if(!zw(this))throw new TypeError("invalid invocation. `this` is not a boolean array.");if((e=arguments.length)>1){if(!ig(t=arguments[1]))throw new TypeError(j("invalid argument. Second argument must be a function. Value: `%s`.",t));e>2&&(n=arguments[2])}if(Nm(r)){if(t){for(f=r.length,a=r.get&&r.set?Nw("default"):xw("default"),o=(i=new this(f))._buffer,s=0;s=e))return Ud(n[r])})),Bg(Ww.prototype,"buffer",(function(){return this._buffer.buffer})),Bg(Ww.prototype,"byteLength",(function(){return this._buffer.byteLength})),Bg(Ww.prototype,"byteOffset",(function(){return this._buffer.byteOffset})),Lr(Ww.prototype,"BYTES_PER_ELEMENT",Ww.BYTES_PER_ELEMENT),Lr(Ww.prototype,"copyWithin",(function(r,n){if(!Dw(this))throw new TypeError("invalid invocation. `this` is not a boolean array.");return 2===arguments.length?this._buffer.copyWithin(r,n):this._buffer.copyWithin(r,n,arguments[2]),this})),Lr(Ww.prototype,"entries",(function(){var r,n,e,t,i,o;if(!Dw(this))throw new TypeError("invalid invocation. `this` is not a boolean array.");return r=this,t=this._buffer,e=this._length,o=-1,Lr(n={},"next",(function(){if(o+=1,i||o>=e)return{done:!0};return{value:[o,Ud(t[o])],done:!1}})),Lr(n,"return",(function(r){if(i=!0,arguments.length)return{value:r,done:!0};return{done:!0}})),hg&&Lr(n,hg,(function(){return r.entries()})),n})),Lr(Ww.prototype,"every",(function(r,n){var e,t;if(!Dw(this))throw new TypeError("invalid invocation. `this` is not a boolean array.");if(!ig(r))throw new TypeError(j("invalid argument. First argument must be a function. Value: `%s`.",r));for(e=this._buffer,t=0;t1){if(!Tg(n))throw new TypeError(j("invalid argument. Second argument must be an integer. Value: `%s`.",n));if(n<0&&(n+=i)<0&&(n=0),arguments.length>2){if(!Tg(e))throw new TypeError(j("invalid argument. Third argument must be an integer. Value: `%s`.",e));e<0&&(e+=i)<0&&(e=0),e>i&&(e=i)}else e=i}else n=0,e=i;for(o=r?1:0,u=n;u=0;i--)if(t=Ud(e[i]),r.call(n,t,i,this))return t})),Lr(Ww.prototype,"findLastIndex",(function(r,n){var e,t,i;if(!Dw(this))throw new TypeError("invalid invocation. `this` is not a boolean array.");if(!ig(r))throw new TypeError(j("invalid argument. First argument must be a function. Value: `%s`.",r));for(e=this._buffer,i=this._length-1;i>=0;i--)if(t=Ud(e[i]),r.call(n,t,i,this))return i;return-1})),Lr(Ww.prototype,"forEach",(function(r,n){var e,t;if(!Dw(this))throw new TypeError("invalid invocation. `this` is not a boolean array.");if(!ig(r))throw new TypeError(j("invalid argument. First argument must be a function. Value: `%s`.",r));for(e=this._buffer,t=0;t=this._length))return Ud(this._buffer[r])})),Lr(Ww.prototype,"includes",(function(r,n){var e,t;if(!Dw(this))throw new TypeError("invalid invocation. `this` is not a boolean array.");if(!Ld(r))throw new TypeError(j("invalid argument. First argument must be a boolean. Value: `%s`.",r));if(arguments.length>1){if(!Tg(n))throw new TypeError(j("invalid argument. Second argument must be an integer. Value: `%s`.",n));n<0&&(n+=this._length)<0&&(n=0)}else n=0;for(e=this._buffer,t=n;t1){if(!Tg(n))throw new TypeError(j("invalid argument. Second argument must be an integer. Value: `%s`.",n));n<0&&(n+=this._length)<0&&(n=0)}else n=0;for(e=this._buffer,t=n;t0){if(!sm(r))throw new TypeError(j("invalid argument. First argument must be a string. Value: `%s`.",r))}else r=",";for(n=this._buffer,e=[],t=0;t=e)return{done:!0};return{value:i,done:!1}})),Lr(n,"return",(function(r){if(t=!0,arguments.length)return{value:r,done:!0};return{done:!0}})),hg&&Lr(n,hg,(function(){return r.keys()})),n})),Lr(Ww.prototype,"lastIndexOf",(function(r,n){var e,t;if(!Dw(this))throw new TypeError("invalid invocation. `this` is not a boolean array.");if(!Ld(r))throw new TypeError(j("invalid argument. First argument must be a boolean. Value: `%s`.",r));if(arguments.length>1){if(!Tg(n))throw new TypeError(j("invalid argument. Second argument must be an integer. Value: `%s`.",n));n>=this._length?n=this._length-1:n<0&&(n+=this._length)}else n=this._length-1;for(e=this._buffer,t=n;t>=0;t--)if(r===Ud(e[t]))return t;return-1})),Bg(Ww.prototype,"length",(function(){return this._length})),Lr(Ww.prototype,"map",(function(r,n){var e,t,i,o;if(!Dw(this))throw new TypeError("invalid invocation. `this` is not a boolean array.");if(!ig(r))throw new TypeError("invalid argument. First argument must be a function. Value: `%s`.",r);for(i=this._buffer,e=(t=new this.constructor(this._length))._buffer,o=0;o1)i=n,o=0;else{if(0===t)throw new Error("invalid operation. If not provided an initial value, an array must contain at least one element.");i=Ud(e[0]),o=1}for(;o1)i=n,o=t-1;else{if(0===t)throw new Error("invalid operation. If not provided an initial value, an array must contain at least one element.");i=Ud(e[t-1]),o=t-2}for(;o>=0;o--)i=r(i,Ud(e[o]),o,this);return i})),Lr(Ww.prototype,"reverse",(function(){var r,n,e,t,i,o;if(!Dw(this))throw new TypeError("invalid invocation. `this` is not a boolean array.");for(r=this._buffer,e=this._length,t=Eg(e/2),i=0;i1){if(!Vg(e=arguments[1]))throw new TypeError(j("invalid argument. Index argument must be a nonnegative integer. Value: `%s`.",e))}else e=0;if(Nm(r)){if(e+(o=r.length)>this._length)throw new RangeError("invalid arguments. Target array lacks sufficient storage to accommodate source values.");if(n=Dw(r)?r._buffer:r,a=t.byteOffset+e*Yw,n.buffer===t.buffer&&n.byteOffseta){for(i=new ue(n.length),u=0;u=this._length)throw new RangeError(j("invalid argument. Index argument is out-of-bounds. Value: `%u`.",e));t[e]=r?1:0}})),Lr(Ww.prototype,"slice",(function(r,n){var e,t,i,o,u,a;if(!Dw(this))throw new TypeError("invalid invocation. `this` is not a boolean array.");if(o=this._buffer,u=this._length,0===arguments.length)r=0,n=u;else{if(!Tg(r))throw new TypeError(j("invalid argument. First argument must be an integer. Value: `%s`.",r));if(r<0&&(r+=u)<0&&(r=0),1===arguments.length)n=u;else{if(!Tg(n))throw new TypeError(j("invalid argument. Second argument must be an integer. Value: `%s`.",n));n<0?(n+=u)<0&&(n=0):n>u&&(n=u)}}for(e=ri&&(n=i)}}return r>=i?(i=0,e=t.byteLength):r>=n?(i=0,e=t.byteOffset+r*Yw):(i=n-r,e=t.byteOffset+r*Yw),new this.constructor(t.buffer,e,i<0?0:i)})),Lr(Ww.prototype,"toLocaleString",(function(r,n){var e,t,i,o,u;if(!Dw(this))throw new TypeError("invalid invocation. `this` is not a boolean array.");if(0===arguments.length)t=[];else{if(!sm(r)&&!hw(r))throw new TypeError(j("invalid argument. First argument must be a string or an array of strings. Value: `%s`.",r));t=r}if(arguments.length<2)e={};else{if(!vg(n))throw new TypeError(j("invalid argument. Options argument must be an object. Value: `%s`.",n));e=n}for(o=this._buffer,i=[],u=0;u=e)return{done:!0};return{value:Ud(i[o]),done:!1}})),Lr(r,"return",(function(r){if(t=!0,arguments.length)return{value:r,done:!0};return{done:!0}})),hg&&Lr(r,hg,(function(){return n.values()})),r})),Lr(Ww.prototype,"with",(function(r,n){var e,t;if(!Dw(this))throw new TypeError("invalid invocation. `this` is not a boolean array.");if(!Tg(r))throw new TypeError(j("invalid argument. First argument must be an integer. Value: `%s`.",r));if(t=this._length,r<0&&(r+=t),r<0||r>=t)throw new RangeError(j("invalid argument. Index argument is out-of-bounds. Value: `%s`.",r));if(!Ld(n))throw new TypeError(j("invalid argument. Second argument must be a boolean. Value: `%s`.",n));return(e=new this.constructor(this._buffer))._buffer[r]=n?1:0,e}));var Gw=[ne,hr,$y,yr,nw,he,lw,ue,uw,Iw,Mw,Ww],Zw=["float64","float32","int32","uint32","int16","uint16","int8","uint8","uint8c","complex64","complex128","bool"],Jw=Zw.length;function Hw(r){var n;if(Kd(r))return"generic";if(ng(r))return"binary";for(n=0;n>18&63]+Xw[i>>12&63]+Xw[i>>6&63]+Xw[63&i]);return o.join("")}function tb(r){var n;rb||nb();for(var e=r.length,t=e%3,i="",o=[],u=16383,a=0,f=e-t;af?f:a+u));return 1===t?(n=r[e-1],i+=Xw[n>>2],i+=Xw[n<<4&63],i+="=="):2===t&&(n=(r[e-2]<<8)+r[e-1],i+=Xw[n>>10],i+=Xw[n>>4&63],i+=Xw[n<<2&63],i+="="),o.push(i),o.join("")}function ib(r,n,e,t,i){var o,u,a=8*i-t-1,f=(1<>1,c=-7,l=e?i-1:0,h=e?-1:1,p=r[n+l];for(l+=h,o=p&(1<<-c)-1,p>>=-c,c+=a;c>0;o=256*o+r[n+l],l+=h,c-=8);for(u=o&(1<<-c)-1,o>>=-c,c+=t;c>0;u=256*u+r[n+l],l+=h,c-=8);if(0===o)o=1-s;else{if(o===f)return u?NaN:1/0*(p?-1:1);u+=Math.pow(2,t),o-=s}return(p?-1:1)*u*Math.pow(2,o-t)}function ob(r,n,e,t,i,o){var u,a,f,s=8*o-i-1,c=(1<>1,h=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,p=t?0:o-1,v=t?1:-1,d=n<0||0===n&&1/n<0?1:0;for(n=Math.abs(n),isNaN(n)||n===1/0?(a=isNaN(n)?1:0,u=c):(u=Math.floor(Math.log(n)/Math.LN2),n*(f=Math.pow(2,-u))<1&&(u--,f*=2),(n+=u+l>=1?h/f:h*Math.pow(2,1-l))*f>=2&&(u++,f/=2),u+l>=c?(a=0,u=c):u+l>=1?(a=(n*f-1)*Math.pow(2,i),u+=l):(a=n*Math.pow(2,l-1)*Math.pow(2,i),u=0));i>=8;r[e+p]=255&a,p+=v,a/=256,i-=8);for(u=u<0;r[e+p]=255&u,p+=v,u/=256,s-=8);r[e+p-v]|=128*d}var ub={}.toString,ab=Array.isArray||function(r){return"[object Array]"==ub.call(r)};lb.TYPED_ARRAY_SUPPORT=void 0===$w.TYPED_ARRAY_SUPPORT||$w.TYPED_ARRAY_SUPPORT;var fb=sb();function sb(){return lb.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function cb(r,n){if(sb()=sb())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+sb().toString(16)+" bytes");return 0|r}function mb(r){return!(null==r||!r._isBuffer)}function yb(r,n){if(mb(r))return r.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(r)||r instanceof ArrayBuffer))return r.byteLength;"string"!=typeof r&&(r=""+r);var e=r.length;if(0===e)return 0;for(var t=!1;;)switch(n){case"ascii":case"latin1":case"binary":return e;case"utf8":case"utf-8":case void 0:return Wb(r).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*e;case"hex":return e>>>1;case"base64":return Gb(r).length;default:if(t)return Wb(r).length;n=(""+n).toLowerCase(),t=!0}}function wb(r,n,e){var t=!1;if((void 0===n||n<0)&&(n=0),n>this.length)return"";if((void 0===e||e>this.length)&&(e=this.length),e<=0)return"";if((e>>>=0)<=(n>>>=0))return"";for(r||(r="utf8");;)switch(r){case"hex":return Bb(this,n,e);case"utf8":case"utf-8":return Sb(this,n,e);case"ascii":return Ib(this,n,e);case"latin1":case"binary":return kb(this,n,e);case"base64":return jb(this,n,e);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return Fb(this,n,e);default:if(t)throw new TypeError("Unknown encoding: "+r);r=(r+"").toLowerCase(),t=!0}}function bb(r,n,e){var t=r[n];r[n]=r[e],r[e]=t}function Eb(r,n,e,t,i){if(0===r.length)return-1;if("string"==typeof e?(t=e,e=0):e>2147483647?e=2147483647:e<-2147483648&&(e=-2147483648),e=+e,isNaN(e)&&(e=i?0:r.length-1),e<0&&(e=r.length+e),e>=r.length){if(i)return-1;e=r.length-1}else if(e<0){if(!i)return-1;e=0}if("string"==typeof n&&(n=lb.from(n,t)),mb(n))return 0===n.length?-1:_b(r,n,e,t,i);if("number"==typeof n)return n&=255,lb.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(r,n,e):Uint8Array.prototype.lastIndexOf.call(r,n,e):_b(r,[n],e,t,i);throw new TypeError("val must be string, number or Buffer")}function _b(r,n,e,t,i){var o,u=1,a=r.length,f=n.length;if(void 0!==t&&("ucs2"===(t=String(t).toLowerCase())||"ucs-2"===t||"utf16le"===t||"utf-16le"===t)){if(r.length<2||n.length<2)return-1;u=2,a/=2,f/=2,e/=2}function s(r,n){return 1===u?r[n]:r.readUInt16BE(n*u)}if(i){var c=-1;for(o=e;oa&&(e=a-f),o=e;o>=0;o--){for(var l=!0,h=0;hi&&(t=i):t=i;var o=n.length;if(o%2!=0)throw new TypeError("Invalid hex string");t>o/2&&(t=o/2);for(var u=0;u>8,i=e%256,o.push(i),o.push(t);return o}(n,r.length-e),r,e,t)}function jb(r,n,e){return 0===n&&e===r.length?tb(r):tb(r.slice(n,e))}function Sb(r,n,e){e=Math.min(r.length,e);for(var t=[],i=n;i239?4:s>223?3:s>191?2:1;if(i+l<=e)switch(l){case 1:s<128&&(c=s);break;case 2:128==(192&(o=r[i+1]))&&(f=(31&s)<<6|63&o)>127&&(c=f);break;case 3:o=r[i+1],u=r[i+2],128==(192&o)&&128==(192&u)&&(f=(15&s)<<12|(63&o)<<6|63&u)>2047&&(f<55296||f>57343)&&(c=f);break;case 4:o=r[i+1],u=r[i+2],a=r[i+3],128==(192&o)&&128==(192&u)&&128==(192&a)&&(f=(15&s)<<18|(63&o)<<12|(63&u)<<6|63&a)>65535&&f<1114112&&(c=f)}null===c?(c=65533,l=1):c>65535&&(c-=65536,t.push(c>>>10&1023|55296),c=56320|1023&c),t.push(c),i+=l}return function(r){var n=r.length;if(n<=Rb)return String.fromCharCode.apply(String,r);var e="",t=0;for(;t0&&(r=this.toString("hex",0,50).match(/.{2}/g).join(" "),this.length>50&&(r+=" ... ")),""},lb.prototype.compare=function(r,n,e,t,i){if(!mb(r))throw new TypeError("Argument must be a Buffer");if(void 0===n&&(n=0),void 0===e&&(e=r?r.length:0),void 0===t&&(t=0),void 0===i&&(i=this.length),n<0||e>r.length||t<0||i>this.length)throw new RangeError("out of range index");if(t>=i&&n>=e)return 0;if(t>=i)return-1;if(n>=e)return 1;if(this===r)return 0;for(var o=(i>>>=0)-(t>>>=0),u=(e>>>=0)-(n>>>=0),a=Math.min(o,u),f=this.slice(t,i),s=r.slice(n,e),c=0;ci)&&(e=i),r.length>0&&(e<0||n<0)||n>this.length)throw new RangeError("Attempt to write outside buffer bounds");t||(t="utf8");for(var o=!1;;)switch(t){case"hex":return xb(this,r,n,e);case"utf8":case"utf-8":return Tb(this,r,n,e);case"ascii":return Nb(this,r,n,e);case"latin1":case"binary":return Ab(this,r,n,e);case"base64":return Vb(this,r,n,e);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return Ob(this,r,n,e);default:if(o)throw new TypeError("Unknown encoding: "+t);t=(""+t).toLowerCase(),o=!0}},lb.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var Rb=4096;function Ib(r,n,e){var t="";e=Math.min(r.length,e);for(var i=n;it)&&(e=t);for(var i="",o=n;oe)throw new RangeError("Trying to access beyond buffer length")}function Lb(r,n,e,t,i,o){if(!mb(r))throw new TypeError('"buffer" argument must be a Buffer instance');if(n>i||nr.length)throw new RangeError("Index out of range")}function Ub(r,n,e,t){n<0&&(n=65535+n+1);for(var i=0,o=Math.min(r.length-e,2);i>>8*(t?i:1-i)}function Mb(r,n,e,t){n<0&&(n=4294967295+n+1);for(var i=0,o=Math.min(r.length-e,4);i>>8*(t?i:3-i)&255}function Cb(r,n,e,t,i,o){if(e+t>r.length)throw new RangeError("Index out of range");if(e<0)throw new RangeError("Index out of range")}function Yb(r,n,e,t,i){return i||Cb(r,0,e,4),ob(r,n,e,t,23,4),e+4}function qb(r,n,e,t,i){return i||Cb(r,0,e,8),ob(r,n,e,t,52,8),e+8}lb.prototype.slice=function(r,n){var e,t=this.length;if((r=~~r)<0?(r+=t)<0&&(r=0):r>t&&(r=t),(n=void 0===n?t:~~n)<0?(n+=t)<0&&(n=0):n>t&&(n=t),n0&&(i*=256);)t+=this[r+--n]*i;return t},lb.prototype.readUInt8=function(r,n){return n||Pb(r,1,this.length),this[r]},lb.prototype.readUInt16LE=function(r,n){return n||Pb(r,2,this.length),this[r]|this[r+1]<<8},lb.prototype.readUInt16BE=function(r,n){return n||Pb(r,2,this.length),this[r]<<8|this[r+1]},lb.prototype.readUInt32LE=function(r,n){return n||Pb(r,4,this.length),(this[r]|this[r+1]<<8|this[r+2]<<16)+16777216*this[r+3]},lb.prototype.readUInt32BE=function(r,n){return n||Pb(r,4,this.length),16777216*this[r]+(this[r+1]<<16|this[r+2]<<8|this[r+3])},lb.prototype.readIntLE=function(r,n,e){r|=0,n|=0,e||Pb(r,n,this.length);for(var t=this[r],i=1,o=0;++o=(i*=128)&&(t-=Math.pow(2,8*n)),t},lb.prototype.readIntBE=function(r,n,e){r|=0,n|=0,e||Pb(r,n,this.length);for(var t=n,i=1,o=this[r+--t];t>0&&(i*=256);)o+=this[r+--t]*i;return o>=(i*=128)&&(o-=Math.pow(2,8*n)),o},lb.prototype.readInt8=function(r,n){return n||Pb(r,1,this.length),128&this[r]?-1*(255-this[r]+1):this[r]},lb.prototype.readInt16LE=function(r,n){n||Pb(r,2,this.length);var e=this[r]|this[r+1]<<8;return 32768&e?4294901760|e:e},lb.prototype.readInt16BE=function(r,n){n||Pb(r,2,this.length);var e=this[r+1]|this[r]<<8;return 32768&e?4294901760|e:e},lb.prototype.readInt32LE=function(r,n){return n||Pb(r,4,this.length),this[r]|this[r+1]<<8|this[r+2]<<16|this[r+3]<<24},lb.prototype.readInt32BE=function(r,n){return n||Pb(r,4,this.length),this[r]<<24|this[r+1]<<16|this[r+2]<<8|this[r+3]},lb.prototype.readFloatLE=function(r,n){return n||Pb(r,4,this.length),ib(this,r,!0,23,4)},lb.prototype.readFloatBE=function(r,n){return n||Pb(r,4,this.length),ib(this,r,!1,23,4)},lb.prototype.readDoubleLE=function(r,n){return n||Pb(r,8,this.length),ib(this,r,!0,52,8)},lb.prototype.readDoubleBE=function(r,n){return n||Pb(r,8,this.length),ib(this,r,!1,52,8)},lb.prototype.writeUIntLE=function(r,n,e,t){(r=+r,n|=0,e|=0,t)||Lb(this,r,n,e,Math.pow(2,8*e)-1,0);var i=1,o=0;for(this[n]=255&r;++o=0&&(o*=256);)this[n+i]=r/o&255;return n+e},lb.prototype.writeUInt8=function(r,n,e){return r=+r,n|=0,e||Lb(this,r,n,1,255,0),lb.TYPED_ARRAY_SUPPORT||(r=Math.floor(r)),this[n]=255&r,n+1},lb.prototype.writeUInt16LE=function(r,n,e){return r=+r,n|=0,e||Lb(this,r,n,2,65535,0),lb.TYPED_ARRAY_SUPPORT?(this[n]=255&r,this[n+1]=r>>>8):Ub(this,r,n,!0),n+2},lb.prototype.writeUInt16BE=function(r,n,e){return r=+r,n|=0,e||Lb(this,r,n,2,65535,0),lb.TYPED_ARRAY_SUPPORT?(this[n]=r>>>8,this[n+1]=255&r):Ub(this,r,n,!1),n+2},lb.prototype.writeUInt32LE=function(r,n,e){return r=+r,n|=0,e||Lb(this,r,n,4,4294967295,0),lb.TYPED_ARRAY_SUPPORT?(this[n+3]=r>>>24,this[n+2]=r>>>16,this[n+1]=r>>>8,this[n]=255&r):Mb(this,r,n,!0),n+4},lb.prototype.writeUInt32BE=function(r,n,e){return r=+r,n|=0,e||Lb(this,r,n,4,4294967295,0),lb.TYPED_ARRAY_SUPPORT?(this[n]=r>>>24,this[n+1]=r>>>16,this[n+2]=r>>>8,this[n+3]=255&r):Mb(this,r,n,!1),n+4},lb.prototype.writeIntLE=function(r,n,e,t){if(r=+r,n|=0,!t){var i=Math.pow(2,8*e-1);Lb(this,r,n,e,i-1,-i)}var o=0,u=1,a=0;for(this[n]=255&r;++o>0)-a&255;return n+e},lb.prototype.writeIntBE=function(r,n,e,t){if(r=+r,n|=0,!t){var i=Math.pow(2,8*e-1);Lb(this,r,n,e,i-1,-i)}var o=e-1,u=1,a=0;for(this[n+o]=255&r;--o>=0&&(u*=256);)r<0&&0===a&&0!==this[n+o+1]&&(a=1),this[n+o]=(r/u>>0)-a&255;return n+e},lb.prototype.writeInt8=function(r,n,e){return r=+r,n|=0,e||Lb(this,r,n,1,127,-128),lb.TYPED_ARRAY_SUPPORT||(r=Math.floor(r)),r<0&&(r=255+r+1),this[n]=255&r,n+1},lb.prototype.writeInt16LE=function(r,n,e){return r=+r,n|=0,e||Lb(this,r,n,2,32767,-32768),lb.TYPED_ARRAY_SUPPORT?(this[n]=255&r,this[n+1]=r>>>8):Ub(this,r,n,!0),n+2},lb.prototype.writeInt16BE=function(r,n,e){return r=+r,n|=0,e||Lb(this,r,n,2,32767,-32768),lb.TYPED_ARRAY_SUPPORT?(this[n]=r>>>8,this[n+1]=255&r):Ub(this,r,n,!1),n+2},lb.prototype.writeInt32LE=function(r,n,e){return r=+r,n|=0,e||Lb(this,r,n,4,2147483647,-2147483648),lb.TYPED_ARRAY_SUPPORT?(this[n]=255&r,this[n+1]=r>>>8,this[n+2]=r>>>16,this[n+3]=r>>>24):Mb(this,r,n,!0),n+4},lb.prototype.writeInt32BE=function(r,n,e){return r=+r,n|=0,e||Lb(this,r,n,4,2147483647,-2147483648),r<0&&(r=4294967295+r+1),lb.TYPED_ARRAY_SUPPORT?(this[n]=r>>>24,this[n+1]=r>>>16,this[n+2]=r>>>8,this[n+3]=255&r):Mb(this,r,n,!1),n+4},lb.prototype.writeFloatLE=function(r,n,e){return Yb(this,r,n,!0,e)},lb.prototype.writeFloatBE=function(r,n,e){return Yb(this,r,n,!1,e)},lb.prototype.writeDoubleLE=function(r,n,e){return qb(this,r,n,!0,e)},lb.prototype.writeDoubleBE=function(r,n,e){return qb(this,r,n,!1,e)},lb.prototype.copy=function(r,n,e,t){if(e||(e=0),t||0===t||(t=this.length),n>=r.length&&(n=r.length),n||(n=0),t>0&&t=this.length)throw new RangeError("sourceStart out of bounds");if(t<0)throw new RangeError("sourceEnd out of bounds");t>this.length&&(t=this.length),r.length-n=0;--i)r[i+n]=this[i+e];else if(o<1e3||!lb.TYPED_ARRAY_SUPPORT)for(i=0;i>>=0,e=void 0===e?this.length:e>>>0,r||(r=0),"number"==typeof r)for(o=n;o55295&&e<57344){if(!i){if(e>56319){(n-=3)>-1&&o.push(239,191,189);continue}if(u+1===t){(n-=3)>-1&&o.push(239,191,189);continue}i=e;continue}if(e<56320){(n-=3)>-1&&o.push(239,191,189),i=e;continue}e=65536+(i-55296<<10|e-56320)}else i&&(n-=3)>-1&&o.push(239,191,189);if(i=null,e<128){if((n-=1)<0)break;o.push(e)}else if(e<2048){if((n-=2)<0)break;o.push(e>>6|192,63&e|128)}else if(e<65536){if((n-=3)<0)break;o.push(e>>12|224,e>>6&63|128,63&e|128)}else{if(!(e<1114112))throw new Error("Invalid code point");if((n-=4)<0)break;o.push(e>>18|240,e>>12&63|128,e>>6&63|128,63&e|128)}}return o}function Gb(r){return function(r){var n,e,t,i,o,u;rb||nb();var a=r.length;if(a%4>0)throw new Error("Invalid string. Length must be a multiple of 4");o="="===r[a-2]?2:"="===r[a-1]?1:0,u=new Qw(3*a/4-o),t=o>0?a-4:a;var f=0;for(n=0,e=0;n>16&255,u[f++]=i>>8&255,u[f++]=255&i;return 2===o?(i=Kw[r.charCodeAt(n)]<<2|Kw[r.charCodeAt(n+1)]>>4,u[f++]=255&i):1===o&&(i=Kw[r.charCodeAt(n)]<<10|Kw[r.charCodeAt(n+1)]<<4|Kw[r.charCodeAt(n+2)]>>2,u[f++]=i>>8&255,u[f++]=255&i),u}(function(r){if((r=function(r){return r.trim?r.trim():r.replace(/^\s+|\s+$/g,"")}(r).replace(Db,"")).length<2)return"";for(;r.length%4!=0;)r+="=";return r}(r))}function Zb(r,n,e,t){for(var i=0;i=n.length||i>=r.length);++i)n[i+e]=r[i];return i}function Jb(r){return null!=r&&(!!r._isBuffer||Hb(r)||function(r){return"function"==typeof r.readFloatLE&&"function"==typeof r.slice&&Hb(r.slice(0,0))}(r))}function Hb(r){return!!r.constructor&&"function"==typeof r.constructor.isBuffer&&r.constructor.isBuffer(r)}var $b=Object.freeze({__proto__:null,Buffer:lb,INSPECT_MAX_BYTES:50,SlowBuffer:function(r){return+r!=r&&(r=0),lb.alloc(+r)},isBuffer:Jb,kMaxLength:fb}),Xb=lb;var Kb,Qb=Us($b).Buffer;Kb=function(){var r,n;if("function"!=typeof Xb)return!1;try{r=ng(n="function"==typeof Xb.from?Xb.from([1,2,3,4]):new Xb([1,2,3,4]))&&1===n[0]&&2===n[1]&&3===n[2]&&4===n[3]}catch(n){r=!1}return r}()?Qb:function(){throw new Error("not implemented")};var rE=Kb,nE={binary:rE,float64:ne,float32:hr,generic:Array,int16:nw,int32:$y,int8:lw,uint16:he,uint32:yr,uint8:ue,uint8c:uw,complex64:Iw,complex128:Mw,bool:Ww};var eE=ig(rE.allocUnsafe)?function(r){if(!jg(r))throw new TypeError(j("invalid argument. Must provide a nonnegative integer. Value: `%s`.",r));return rE.allocUnsafe(r)}:function(r){if(!jg(r))throw new TypeError(j("invalid argument. Must provide a nonnegative integer. Value: `%s`.",r));return new rE(r)};function tE(r,n){var e=function(r){return nE[r]||null}(r);return e?new e(n):null}function iE(r,n){return"generic"===r?function(r){var n,e;for(n=[],e=0;e=0;i--)e[i]=t,t*=r[i];return e}(r)}Lr(aE,"assign",(function(r,n,e){return"column-major"===n?function(r,n){var e,t;for(e=1,t=0;t=0;t--)n[t]=e,e*=r[t];return n}(r,e)}));var fE="row-major";function sE(r,n){var e,t,i;return"object"!=typeof(i=r.strides)||null===i?0===(t=r.shape).length?[0]:("string"!=typeof(e=r.order)&&(e=fE),aE(t,e)):n?oE(i):i}function cE(r){var n,e,t;return"number"==typeof(t=r.offset)?t:0===(e=r.shape).length||"object"!=typeof(n=r.strides)||null===n?0:function(r,n){var e,t,i;for(t=r.length,e=0,i=0;i=0;s--)if(!((c=a-u+s)<0)){if(f=i[c],0!==(t=n[s])&&t=0&&r.length<=em}(n))return!1;if(e=n.length,0===e)return!1;for(t=0;tn?n:r}function zE(r,n){var e=n+1;return r<0?((r+=e)<0&&0!==(r%=e)&&(r+=e),r):r>n?((r-=e)>n&&(r%=e),r):r}function WE(r,n){return r<0?(r+=n+1)<0?-1:r:r>n?-1:r}var GE=kE(Sy()),ZE={wrap:zE,clamp:DE,normalize:function(r,n){var e=WE(r,n);if(e<0||e>n)throw new RangeError(j("invalid argument. Index must resolve to a value on the interval: [0, %d]. Value: `%d`.",n,r));return e},throw:function(r,n){if(r<0||r>n)throw new RangeError(j("invalid argument. Index must resolve to a value on the interval: [0, %d]. Value: `%d`.",n,r));return r}};function JE(r,n,e){var t;if("clamp"===e)return DE(r,n);if("wrap"===e)return zE(r,n);if(t=r,"normalize"===e&&(t=WE(t,n)),t<0||t>n)throw new RangeError(j("invalid argument. Index must resolve to a value on the interval: [0, %d]. Value: `%d`.",n,r));return t}Lr(JE,"factory",(function(r){if(!GE(r))throw new TypeError(j("invalid argument. First argument must be a recognized index mode. Value: `%s`.",r));return ZE[r]}));var HE=Dy.prototype.iget;var $E=Dy.prototype.iset;function XE(r,n){var e,t;for(e=[],t=0;t0))throw new TypeError(j("invalid argument. Third argument must be an array-like object containing nonnegative integers. Value: `%s`.",e));if((a=e.length)>KE)throw new RangeError(j("invalid argument. Number of dimensions must not exceed %u due to stack limits. Value: `%u`.",KE,a));if(!EE(t))throw new TypeError(j("invalid argument. Fourth argument must be an array-like object containing integers. Value: `%s`.",t));if(a>0){if(t.length!==a)throw new RangeError(j("invalid argument. Fourth argument length must match the number of dimensions. Expected number of dimensions: `%u`. Strides length: `%u`.",a,t.length))}else{if(1!==t.length)throw new RangeError("invalid argument. Fourth argument length must be equal to 1 when creating a zero-dimensional ndarray.");if(0!==t[0])throw new RangeError(j("invalid argument. Fourth argument must contain a single element equal to 0. Value: `%d`.",t[0]))}if(!Vg(i))throw new TypeError(j("invalid argument. Fifth argument must be a nonnegative integer. Value: `%s`.",i));if(!function(r){var n;for(n=0;n0&&!function(r,n,e,t){var i=iy(n,e,t);return i[0]>=0&&i[1]0)throw new Error("invalid arguments. Input buffer is incompatible with the specified meta data. Ensure that the offset is valid with regard to the strides array and that the buffer has enough elements to satisfy the desired array shape.");if((f={}).mode=QE,f.readonly=r_,arguments.length>6&&(s=function(r,n){var e;if(!bg(n))return new TypeError(j("invalid argument. Options argument must be an object. Value: `%s`.",n));if(tr(n,"mode")&&(r.mode=n.mode,!GE(r.mode)))return new TypeError(j("invalid option. `%s` option must be a recognized mode. Option: `%s`.","mode",r.mode));if(tr(n,"submode")){if(r.submode=n.submode,!tm(r.submode))return new TypeError(j("invalid option. `%s` option must be an array containing recognized modes. Option: `%s`.","submode",r.submode));if(0===r.submode.length)return new TypeError(j("invalid option. `%s` option must be an array containing recognized modes. Option: `%s`.","submode",r.submode.join(",")));for(e=0;e0){if(!Tg(r))throw new TypeError(j("invalid argument. Index must be an integer. Value: `%s`.",r));return r=JE(r,this._length-1,this._mode),HE.call(this,r)}return HE.call(this)})),Lr(n_.prototype,"set",(function(){var r,n,e,t;if(this._flags.READONLY)throw new Error("invalid invocation. Cannot write to a read-only array.");if(arguments.length!==this._ndims+1)throw new RangeError(j("invalid arguments. Number of indices must match the number of dimensions. ndims: `%u`. nargs: `%u`.",this._ndims,arguments.length));for(r=this._offset,e=this._submode.length,t=0;t0){if(!Tg(r))throw new TypeError(j("invalid argument. Index must be an integer. Value: `%s`.",r));r=JE(r,this._length-1,this._mode),$E.call(this,r,n)}else $E.call(this,r);return this}));var t_="floating-point";function i_(r,n,e){var t,i,o;if(!Nm(r)&&!sm(r))throw new TypeError(j("invalid argument. First argument must be array-like. Value: `%s`.",r));if(arguments.length<2)throw new Error("insufficient arguments. Must provide a search value.");if(arguments.length>2){if(!Tg(e))throw new TypeError(j("invalid argument. Third argument must be an integer. Value: `%s`.",e));(i=e)<0&&(i=0)}else i=0;if(sm(r)){if(!sm(n))throw new TypeError(j("invalid argument. Second argument must be a string. Value: `%s`.",n));return-1!==r.indexOf(n,i)}if(t=r.length,vm(n)){for(o=i;o1&&(t=function(r,n){return bg(n)?tr(n,"output_dtype_policy")&&(r.policy=n.output_dtype_policy,!i_(o_,r.policy))?new TypeError(j("invalid option. `%s` option must be a recognized/supported output array data type policy. Option: `%s`.","output_dtype_policy",r.policy)):null:new TypeError(j("invalid argument. Options argument must be an object. Value: `%s`.",n))}(e,n),t))throw t;return i=function(r){var n,t,i,u,a;if(Ur(r)){if(o.number)return o.number(r);throw new TypeError("invalid argument. Providing a number is not supported.")}if($m(r)){if(o.complex)return o.complex(r);throw new TypeError("invalid argument. Providing a complex number is not supported.")}if(i={},arguments.length>1&&(u=function(r,n){return bg(n)?tr(n,"dtype")&&(r.dtype=n.dtype,!i_(a_,r.dtype))?new TypeError(j("invalid option. `%s` option must be a recognized/supported data type. Option: `%s`.","dtype",r.dtype)):tr(n,"order")&&(r.order=n.order,!i_(u_,r.order))?new TypeError(j("invalid option. `%s` option must be a recognized/supported data type. Option: `%s`.","order",r.order)):null:new TypeError(j("invalid argument. Options argument must be an object. Value: `%s`.",n))}(i,arguments[1]),u))throw u;if(zy(r)){if(null===o.ndarray)throw new TypeError("invalid argument. Providing an ndarray is not supported.");return t=i.dtype||e_(r.dtype,e.policy),function(r,n,e,t){var i,o;return r(n,o=0===(i=oE(n.shape)).length?n_(e,iE(e,1),[],[0],0,t):n_(e,iE(e,n.length||FE(i)),i,aE(i,t),0,t)),o}(o.ndarray,r,t,i.order||r.order)}if(Nm(r)){if(null===o.array)throw new TypeError("invalid argument. Providing an array-like object is not supported.");return n=Hw(r)||"generic",a=iE(t=i.dtype||e_(n,e.policy),r.length),o.array(r.length,n,r,1,t,a,1),a}throw new TypeError(j("invalid argument. Must provide an argument having a supported data type. Value: `%s`.",r))},Lr(i,"assign",(function(r,n){var e,t,i;if(zy(r)){if(zy(n)){if(e=r.shape,t=n.shape,e.length===t.length){for(i=0;i0}function v_(r){return Ng(r)&&r.valueOf()>0}function d_(r){return p_(r)||v_(r)}Lr(d_,"isPrimitive",p_),Lr(d_,"isObject",v_);var g_=mE(ig);function m_(r,n,e,t,i,o){var u,a,f,s,c,l;if(ig(r))l=r;else if(!g_(r))throw new TypeError(j("invalid argument. First argument must be either a function or an array of functions. Value: `%s`.",r));if(!Nm(n))throw new TypeError(j("invalid argument. Second argument must be an array-like object. Value: `%s`.",n));if(!Nm(e)&&null!==e)throw new TypeError(j("invalid argument. Third argument must be an array-like object or null. Value: `%s`.",e));if(!d_(t))throw new TypeError(j("invalid argument. Fourth argument must be a positive integer. Value: `%s`.",t));if(!Vg(i))throw new TypeError(j("invalid argument. Fifth argument must be a nonnegative integer. Value: `%s`.",i));if(!Vg(o))throw new TypeError(j("invalid argument. Sixth argument must be a nonnegative integer. Value: `%s`.",o));if(0===(f=i+o))throw new Error("invalid arguments. Interface must accept at least one strided input and/or output array. Based on the provided arguments, `nin+nout` equals `0`.");if(l){if(!Tg(s=n.length/f))throw new Error("invalid argument. Unexpected number of types. A type must be specified for each strided input and output array for each provided strided array function.")}else if(s=r.length,n.length!==s*f)throw new Error("invalid argument. Unexpected number of types. A type must be specified for each strided input and output array for each provided strided array function.");if(e&&e.length!==s)throw new Error("invalid argument. The third argument must have the same number of elements as the first argument.");if(3*f+1===t)a=!1;else{if(4*f+1!==t)throw new Error("invalid argument. Fourth argument is incompatible with the number of strided input and output arrays.");a=!0}return c=i*(u=a?4:3)+1,function(){var h,p,v,d,g,m,y,w,b,E,_,x;if(m=arguments.length,m!==t){if(m0&&(y<0||y>=b.length))throw _=b.length)throw _0?0:(1-r)*n}function x_(r,n,e,t,i){var o,u,a,f,s,c,l,h;if(!((l=n[0])<=0))for(a=t[0],f=t[1],o=e[0],u=e[1],s=r[0],c=r[1],h=0;h=0&&u=0&&!(((s=r[o])<0?-s:s)<=e);)r[o+1]=s,n[u+1]=n[u],o-=1,u-=1;r[o+1]=a,n[u+1]=f,t+=1,i+=1}}(n=oE(n),t),{sh:r=W_(r,t),sx:n,sy:e=W_(e,t),idx:t}}Lr(U_,"ndarray",(function(r,n,e,t,i,o,u,a,f){return M_(r,F_(n),e,t,i,F_(o),u,a,f)})),c_(l_,h_,U_,!1),c_(l_,h_,U_.ndarray,!0),Lr(D_,"assign",(function(r,n,e){var t=function(r){var n=IE(r);return VE(r)?{data:r,dtype:n,accessorProtocol:!0,accessors:[Nw(n),w_(n)]}:{data:r,dtype:n,accessorProtocol:!1,accessors:[xw(n),E_(n)]}}(r);return t.accessorProtocol?"complex128"===t.dtype?z_(r,Ew(r,0),n,e):"complex64"===t.dtype?z_(r,bw(r,0),n,e):function(r,n,e){var t,i,o,u;for(t=r.data,i=r.accessors[1],u=e,o=0;u>=0&&u=0&&it?Z_.BLOCK_SIZE_IN_BYTES/e|0:Z_.BLOCK_SIZE_IN_BYTES/t|0}function H_(r,n,e,t,i,o){var u,a,f,s,c;for(u=r.length,a=1,c=0;c=a&&(i=a-1);else if("wrap"===o)i<0?(i+=a)<0&&0!==(i%=a)&&(i+=a):i>=a&&(i-=a)>=a&&(i%=a);else if("normalize"===o&&i<0&&(i+=a),i<0||i>=a)throw new RangeError(j("invalid argument. Linear index must not exceed array dimensions. Number of array elements: `%u`. Value: `%d`.",a,i));if(f=e,"column-major"===t){for(c=0;c=0;c--)i-=s=i%r[c],i/=r[c],f+=s*n[c];return f}var $_="throw";var X_="throw";var K_=[function(r,n,e){n.data[n.offset]=e(r.data[r.offset])},function(r,n,e){var t,i,o,u,a,f,s,c;for(a=r.shape[0],o=r.strides[0],u=n.strides[0],f=r.offset,s=n.offset,t=r.data,i=n.data,c=0;c0;)for(T0;)for(x0;)for(R0;)for(S0;)for(j0;)for(U0;)for(L0;)for(P0;)for(F0;)for(W0;)for(z0;)for(D0;)for(q0;)for(Y0;)for(K0;)for(X0;)for($0;)for(H0;)for(J0;)for(Z0;)for(or0;)for(ir0;)for(tr0;)for(er0;)for(nr0;)for(rr0;)for(Q0;)for(hr0;)for(lr0;)for(cr0;)for(sr0;)for(fr0;)for(ar0;)for(ur0;)for(or0;)for(wr0;)for(yr0;)for(mr0;)for(gr0;)for(dr0;)for(vr0;)for(pr0;)for(hr0;)for(lr0;)for(Ar0;)for(Nr0;)for(Tr0;)for(xr0;)for(_r0;)for(Er0;)for(br0;)for(wr0;)for(yr0;)for(mr0;)for(A0;)for(N0;)for(k0;)for(I0;)for(R0;)for(C0;)for(M0;)for(U0;)for(L0;)for(Z0;)for(G0;)for(W0;)for(z0;)for(D0;)for(rr0;)for(Q0;)for(K0;)for(X0;)for($0;)for(H0;)for(ar0;)for(ur0;)for(or0;)for(ir0;)for(tr0;)for(er0;)for(nr0;)for(vr0;)for(pr0;)for(hr0;)for(lr0;)for(cr0;)for(sr0;)for(fr0;)for(ar0;)for(Er0;)for(br0;)for(wr0;)for(yr0;)for(mr0;)for(gr0;)for(dr0;)for(vr0;)for(pr0;)for(Or0;)for(Vr0;)for(Ar0;)for(Nr0;)for(Tr0;)for(xr0;)for(_r0;)for(Er0;)for(br0;)for(wr=i);u++)for(o=r[u],a=f;a3?t:{},(s=vx(r))instanceof Error)throw s;if(n===r)c=s;else if((c=vx(n))instanceof Error)throw c;if(e===r)l=s;else if(e===n)l=c;else if((l=vx(e))instanceof Error)throw l;for(l.sort(),i={},g=s.length,m=c.length,f=[],y=0;y 0 ) {\n\t\t\t\tdigits -= 1;\n\t\t\t}\n\t\t\tout = f.toExponential( digits );\n\t\t} else {\n\t\t\tout = f.toPrecision( token.precision );\n\t\t}\n\t\tif ( !token.alternate ) {\n\t\t\tout = replace.call( out, RE_ZERO_BEFORE_EXP, '$1e' );\n\t\t\tout = replace.call( out, RE_PERIOD_ZERO_EXP, 'e' );\n\t\t\tout = replace.call( out, RE_TRAILING_PERIOD_ZERO, '' );\n\t\t}\n\t\tbreak;\n\tdefault:\n\t\tthrow new Error( 'invalid double notation. Value: ' + token.specifier );\n\t}\n\tout = replace.call( out, RE_EXP_POS_DIGITS, 'e+0$1' );\n\tout = replace.call( out, RE_EXP_NEG_DIGITS, 'e-0$1' );\n\tif ( token.alternate ) {\n\t\tout = replace.call( out, RE_ONLY_DIGITS, '$1.' );\n\t\tout = replace.call( out, RE_DIGITS_BEFORE_EXP, '$1.e' );\n\t}\n\tif ( f >= 0 && token.sign ) {\n\t\tout = token.sign + out;\n\t}\n\tout = ( token.specifier === uppercase.call( token.specifier ) ) ?\n\t\tuppercase.call( out ) :\n\t\tlowercase.call( out );\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default formatDouble;\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// FUNCTIONS //\n\n/**\n* Returns `n` spaces.\n*\n* @private\n* @param {number} n - number of spaces\n* @returns {string} string of spaces\n*/\nfunction spaces( n ) {\n\tvar out = '';\n\tvar i;\n\tfor ( i = 0; i < n; i++ ) {\n\t\tout += ' ';\n\t}\n\treturn out;\n}\n\n\n// MAIN //\n\n/**\n* Pads a token with spaces to the specified width.\n*\n* @private\n* @param {string} str - token argument\n* @param {number} width - token width\n* @param {boolean} [right=false] - boolean indicating whether to pad to the right\n* @returns {string} padded token argument\n*/\nfunction spacePad( str, width, right ) {\n\tvar pad = width - str.length;\n\tif ( pad < 0 ) {\n\t\treturn str;\n\t}\n\tstr = ( right ) ?\n\t\tstr + spaces( pad ) :\n\t\tspaces( pad ) + str;\n\treturn str;\n}\n\n\n// EXPORTS //\n\nexport default spacePad;\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 formatInteger from './format_integer.js';\nimport isString from './is_string.js';\nimport formatDouble from './format_double.js';\nimport spacePad from './space_pad.js';\nimport zeroPad from './zero_pad.js';\n\n\n// VARIABLES //\n\nvar fromCharCode = String.fromCharCode;\nvar isArray = Array.isArray; // NOTE: We use the global `Array.isArray` function here instead of `@stdlib/assert/is-array` to avoid circular dependencies.\n\n\n// FUNCTIONS //\n\n/**\n* Returns a boolean indicating whether a value is `NaN`.\n*\n* @private\n* @param {*} value - input value\n* @returns {boolean} boolean indicating whether a value is `NaN`\n*\n* @example\n* var bool = isnan( NaN );\n* // returns true\n*\n* @example\n* var bool = isnan( 4 );\n* // returns false\n*/\nfunction isnan( value ) { // explicitly define a function here instead of `@stdlib/math/base/assert/is-nan` in order to avoid circular dependencies\n\treturn ( value !== value );\n}\n\n/**\n* Initializes token object with properties of supplied format identifier object or default values if not present.\n*\n* @private\n* @param {Object} token - format identifier object\n* @returns {Object} token object\n*/\nfunction initialize( token ) {\n\tvar out = {};\n\tout.specifier = token.specifier;\n\tout.precision = ( token.precision === void 0 ) ? 1 : token.precision;\n\tout.width = token.width;\n\tout.flags = token.flags || '';\n\tout.mapping = token.mapping;\n\treturn out;\n}\n\n\n// MAIN //\n\n/**\n* Generates string from a token array by interpolating values.\n*\n* @param {Array} tokens - string parts and format identifier objects\n* @param {Array} ...args - variable values\n* @throws {TypeError} first argument must be an array\n* @throws {Error} invalid flags\n* @returns {string} formatted string\n*\n* @example\n* var tokens = [ 'beep ', { 'specifier': 's' } ];\n* var out = formatInterpolate( tokens, 'boop' );\n* // returns 'beep boop'\n*/\nfunction formatInterpolate( tokens ) {\n\tvar hasPeriod;\n\tvar flags;\n\tvar token;\n\tvar flag;\n\tvar num;\n\tvar out;\n\tvar pos;\n\tvar i;\n\tvar j;\n\n\tif ( !isArray( tokens ) ) {\n\t\tthrow new TypeError( 'invalid argument. First argument must be an array. Value: `' + tokens + '`.' );\n\t}\n\tout = '';\n\tpos = 1;\n\tfor ( i = 0; i < tokens.length; i++ ) {\n\t\ttoken = tokens[ i ];\n\t\tif ( isString( token ) ) {\n\t\t\tout += token;\n\t\t} else {\n\t\t\thasPeriod = token.precision !== void 0;\n\t\t\ttoken = initialize( token );\n\t\t\tif ( !token.specifier ) {\n\t\t\t\tthrow new TypeError( 'invalid argument. Token is missing `specifier` property. Index: `'+ i +'`. Value: `' + token + '`.' );\n\t\t\t}\n\t\t\tif ( token.mapping ) {\n\t\t\t\tpos = token.mapping;\n\t\t\t}\n\t\t\tflags = token.flags;\n\t\t\tfor ( j = 0; j < flags.length; j++ ) {\n\t\t\t\tflag = flags.charAt( j );\n\t\t\t\tswitch ( flag ) {\n\t\t\t\tcase ' ':\n\t\t\t\t\ttoken.sign = ' ';\n\t\t\t\t\tbreak;\n\t\t\t\tcase '+':\n\t\t\t\t\ttoken.sign = '+';\n\t\t\t\t\tbreak;\n\t\t\t\tcase '-':\n\t\t\t\t\ttoken.padRight = true;\n\t\t\t\t\ttoken.padZeros = false;\n\t\t\t\t\tbreak;\n\t\t\t\tcase '0':\n\t\t\t\t\ttoken.padZeros = flags.indexOf( '-' ) < 0; // NOTE: We use built-in `Array.prototype.indexOf` here instead of `@stdlib/assert/contains` in order to avoid circular dependencies.\n\t\t\t\t\tbreak;\n\t\t\t\tcase '#':\n\t\t\t\t\ttoken.alternate = true;\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tthrow new Error( 'invalid flag: ' + flag );\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( token.width === '*' ) {\n\t\t\t\ttoken.width = parseInt( arguments[ pos ], 10 );\n\t\t\t\tpos += 1;\n\t\t\t\tif ( isnan( token.width ) ) {\n\t\t\t\t\tthrow new TypeError( 'the argument for * width at position ' + pos + ' is not a number. Value: `' + token.width + '`.' );\n\t\t\t\t}\n\t\t\t\tif ( token.width < 0 ) {\n\t\t\t\t\ttoken.padRight = true;\n\t\t\t\t\ttoken.width = -token.width;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( hasPeriod ) {\n\t\t\t\tif ( token.precision === '*' ) {\n\t\t\t\t\ttoken.precision = parseInt( arguments[ pos ], 10 );\n\t\t\t\t\tpos += 1;\n\t\t\t\t\tif ( isnan( token.precision ) ) {\n\t\t\t\t\t\tthrow new TypeError( 'the argument for * precision at position ' + pos + ' is not a number. Value: `' + token.precision + '`.' );\n\t\t\t\t\t}\n\t\t\t\t\tif ( token.precision < 0 ) {\n\t\t\t\t\t\ttoken.precision = 1;\n\t\t\t\t\t\thasPeriod = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\ttoken.arg = arguments[ pos ];\n\t\t\tswitch ( token.specifier ) {\n\t\t\tcase 'b':\n\t\t\tcase 'o':\n\t\t\tcase 'x':\n\t\t\tcase 'X':\n\t\t\tcase 'd':\n\t\t\tcase 'i':\n\t\t\tcase 'u':\n\t\t\t\t// Case: %b (binary), %o (octal), %x, %X (hexadecimal), %d, %i (decimal), %u (unsigned decimal)\n\t\t\t\tif ( hasPeriod ) {\n\t\t\t\t\ttoken.padZeros = false;\n\t\t\t\t}\n\t\t\t\ttoken.arg = formatInteger( token );\n\t\t\t\tbreak;\n\t\t\tcase 's':\n\t\t\t\t// Case: %s (string)\n\t\t\t\ttoken.maxWidth = ( hasPeriod ) ? token.precision : -1;\n\t\t\t\ttoken.arg = String( token.arg );\n\t\t\t\tbreak;\n\t\t\tcase 'c':\n\t\t\t\t// Case: %c (character)\n\t\t\t\tif ( !isnan( token.arg ) ) {\n\t\t\t\t\tnum = parseInt( token.arg, 10 );\n\t\t\t\t\tif ( num < 0 || num > 127 ) {\n\t\t\t\t\t\tthrow new Error( 'invalid character code. Value: ' + token.arg );\n\t\t\t\t\t}\n\t\t\t\t\ttoken.arg = ( isnan( num ) ) ? String( token.arg ) : fromCharCode( num ); // eslint-disable-line max-len\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'e':\n\t\t\tcase 'E':\n\t\t\tcase 'f':\n\t\t\tcase 'F':\n\t\t\tcase 'g':\n\t\t\tcase 'G':\n\t\t\t\t// Case: %e, %E (scientific notation), %f, %F (decimal floating point), %g, %G (uses the shorter of %e/E or %f/F)\n\t\t\t\tif ( !hasPeriod ) {\n\t\t\t\t\ttoken.precision = 6;\n\t\t\t\t}\n\t\t\t\ttoken.arg = formatDouble( token );\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tthrow new Error( 'invalid specifier: ' + token.specifier );\n\t\t\t}\n\t\t\t// Fit argument into field width...\n\t\t\tif ( token.maxWidth >= 0 && token.arg.length > token.maxWidth ) {\n\t\t\t\ttoken.arg = token.arg.substring( 0, token.maxWidth );\n\t\t\t}\n\t\t\tif ( token.padZeros ) {\n\t\t\t\ttoken.arg = zeroPad( token.arg, token.width || token.precision, token.padRight ); // eslint-disable-line max-len\n\t\t\t} else if ( token.width ) {\n\t\t\t\ttoken.arg = spacePad( token.arg, token.width, token.padRight );\n\t\t\t}\n\t\t\tout += token.arg || '';\n\t\t\tpos += 1;\n\t\t}\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default formatInterpolate;\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* Tests if a value is a string primitive.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a string primitive\n*\n* @example\n* var bool = isString( 'beep' );\n* // returns true\n*\n* @example\n* var bool = isString( new String( 'beep' ) );\n* // returns false\n*/\nfunction isString( value ) {\n\treturn ( typeof value === 'string' ); // NOTE: we inline the `isString.isPrimitive` function from `@stdlib/assert/is-string` in order to avoid circular dependencies.\n}\n\n\n// EXPORTS //\n\nexport default isString;\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// VARIABLES //\n\nvar RE = /%(?:([1-9]\\d*)\\$)?([0 +\\-#]*)(\\*|\\d+)?(?:(\\.)(\\*|\\d+)?)?[hlL]?([%A-Za-z])/g;\n\n\n// FUNCTIONS //\n\n/**\n* Parses a delimiter.\n*\n* @private\n* @param {Array} match - regular expression match\n* @returns {Object} delimiter token object\n*/\nfunction parse( match ) {\n\tvar token = {\n\t\t'mapping': ( match[ 1 ] ) ? parseInt( match[ 1 ], 10 ) : void 0,\n\t\t'flags': match[ 2 ],\n\t\t'width': match[ 3 ],\n\t\t'precision': match[ 5 ],\n\t\t'specifier': match[ 6 ]\n\t};\n\tif ( match[ 4 ] === '.' && match[ 5 ] === void 0 ) {\n\t\ttoken.precision = '1';\n\t}\n\treturn token;\n}\n\n\n// MAIN //\n\n/**\n* Tokenizes a string into an array of string parts and format identifier objects.\n*\n* @param {string} str - input string\n* @returns {Array} tokens\n*\n* @example\n* var tokens = formatTokenize( 'Hello %s!' );\n* // returns [ 'Hello ', {...}, '!' ]\n*/\nfunction formatTokenize( str ) {\n\tvar content;\n\tvar tokens;\n\tvar match;\n\tvar prev;\n\n\ttokens = [];\n\tprev = 0;\n\tmatch = RE.exec( str );\n\twhile ( match ) {\n\t\tcontent = str.slice( prev, RE.lastIndex - match[ 0 ].length );\n\t\tif ( content.length ) {\n\t\t\ttokens.push( content );\n\t\t}\n\t\ttokens.push( parse( match ) );\n\t\tprev = RE.lastIndex;\n\t\tmatch = RE.exec( str );\n\t}\n\tcontent = str.slice( prev );\n\tif ( content.length ) {\n\t\ttokens.push( content );\n\t}\n\treturn tokens;\n}\n\n\n// EXPORTS //\n\nexport default formatTokenize;\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 interpolate from './../../base/format-interpolate';\nimport tokenize from './../../base/format-tokenize';\nimport isString from './is_string.js';\n\n\n// MAIN //\n\n/**\n* Inserts supplied variable values into a format string.\n*\n* @param {string} str - input string\n* @param {Array} ...args - variable values\n* @throws {TypeError} first argument must be a string\n* @throws {Error} invalid flags\n* @returns {string} formatted string\n*\n* @example\n* var str = format( 'Hello %s!', 'world' );\n* // returns 'Hello world!'\n*\n* @example\n* var str = format( 'Pi: ~%.2f', 3.141592653589793 );\n* // returns 'Pi: ~3.14'\n*/\nfunction format( str ) {\n\tvar args;\n\tvar i;\n\n\tif ( !isString( str ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a string. Value: `%s`.', str ) );\n\t}\n\targs = [ tokenize( str ) ];\n\tfor ( i = 1; i < arguments.length; i++ ) {\n\t\targs.push( arguments[ i ] );\n\t}\n\treturn interpolate.apply( null, args );\n}\n\n\n// EXPORTS //\n\nexport default format;\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* Tests if a value is a string primitive.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a string primitive\n*\n* @example\n* var bool = isString( 'beep' );\n* // returns true\n*\n* @example\n* var bool = isString( new String( 'beep' ) );\n* // returns false\n*/\nfunction isString( value ) {\n\treturn ( typeof value === 'string' ); // NOTE: we inline the `isString.isPrimitive` function from `@stdlib/assert/is-string` in order to avoid circular dependencies.\n}\n\n\n// EXPORTS //\n\nexport default isString;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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 no-underscore-dangle, no-proto */\n\n'use strict';\n\n// MODULES //\n\nimport format from '@stdlib/string/format';\n\n\n// VARIABLES //\n\nvar objectProtoype = Object.prototype;\nvar toStr = objectProtoype.toString;\nvar defineGetter = objectProtoype.__defineGetter__;\nvar defineSetter = objectProtoype.__defineSetter__;\nvar lookupGetter = objectProtoype.__lookupGetter__;\nvar lookupSetter = objectProtoype.__lookupSetter__;\n\n\n// MAIN //\n\n/**\n* Defines (or modifies) an object property.\n*\n* ## Notes\n*\n* - Property descriptors come in two flavors: **data descriptors** and **accessor descriptors**. A data descriptor is a property that has a value, which may or may not be writable. An accessor descriptor is a property described by a getter-setter function pair. A descriptor must be one of these two flavors and cannot be both.\n*\n* @param {Object} obj - object on which to define the property\n* @param {string} prop - property name\n* @param {Object} descriptor - property descriptor\n* @param {boolean} [descriptor.configurable=false] - boolean indicating if property descriptor can be changed and if the property can be deleted from the provided object\n* @param {boolean} [descriptor.enumerable=false] - boolean indicating if the property shows up when enumerating object properties\n* @param {boolean} [descriptor.writable=false] - boolean indicating if the value associated with the property can be changed with an assignment operator\n* @param {*} [descriptor.value] - property value\n* @param {(Function|void)} [descriptor.get=undefined] - function which serves as a getter for the property, or, if no getter, undefined. When the property is accessed, a getter function is called without arguments and with the `this` context set to the object through which the property is accessed (which may not be the object on which the property is defined due to inheritance). The return value will be used as the property value.\n* @param {(Function|void)} [descriptor.set=undefined] - function which serves as a setter for the property, or, if no setter, undefined. When assigning a property value, a setter function is called with one argument (the value being assigned to the property) and with the `this` context set to the object through which the property is assigned.\n* @throws {TypeError} first argument must be an object\n* @throws {TypeError} third argument must be an object\n* @throws {Error} property descriptor cannot have both a value and a setter and/or getter\n* @returns {Object} object with added property\n*\n* @example\n* var obj = {};\n*\n* defineProperty( obj, 'foo', {\n* 'value': 'bar'\n* });\n*\n* var str = obj.foo;\n* // returns 'bar'\n*/\nfunction defineProperty( obj, prop, descriptor ) {\n\tvar prototype;\n\tvar hasValue;\n\tvar hasGet;\n\tvar hasSet;\n\n\tif ( typeof obj !== 'object' || obj === null || toStr.call( obj ) === '[object Array]' ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an object. Value: `%s`.', obj ) );\n\t}\n\tif ( typeof descriptor !== 'object' || descriptor === null || toStr.call( descriptor ) === '[object Array]' ) {\n\t\tthrow new TypeError( format( 'invalid argument. Property descriptor must be an object. Value: `%s`.', descriptor ) );\n\t}\n\thasValue = ( 'value' in descriptor );\n\tif ( hasValue ) {\n\t\tif (\n\t\t\tlookupGetter.call( obj, prop ) ||\n\t\t\tlookupSetter.call( obj, prop )\n\t\t) {\n\t\t\t// Override `__proto__` to avoid touching inherited accessors:\n\t\t\tprototype = obj.__proto__;\n\t\t\tobj.__proto__ = objectProtoype;\n\n\t\t\t// Delete property as existing getters/setters prevent assigning value to specified property:\n\t\t\tdelete obj[ prop ];\n\t\t\tobj[ prop ] = descriptor.value;\n\n\t\t\t// Restore original prototype:\n\t\t\tobj.__proto__ = prototype;\n\t\t} else {\n\t\t\tobj[ prop ] = descriptor.value;\n\t\t}\n\t}\n\thasGet = ( 'get' in descriptor );\n\thasSet = ( 'set' in descriptor );\n\n\tif ( hasValue && ( hasGet || hasSet ) ) {\n\t\tthrow new Error( 'invalid argument. Cannot specify one or more accessors and a value or writable attribute in the property descriptor.' );\n\t}\n\n\tif ( hasGet && defineGetter ) {\n\t\tdefineGetter.call( obj, prop, descriptor.get );\n\t}\n\tif ( hasSet && defineSetter ) {\n\t\tdefineSetter.call( obj, prop, descriptor.set );\n\t}\n\treturn obj;\n}\n\n\n// EXPORTS //\n\nexport default defineProperty;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Define (or modify) an object property.\n*\n* @module @stdlib/utils/define-property\n*\n* @example\n* import defineProperty from '@stdlib/utils/define-property';\n*\n* var obj = {};\n* defineProperty( obj, 'foo', {\n* 'value': 'bar',\n* 'writable': false,\n* 'configurable': false,\n* 'enumerable': false\n* });\n* obj.foo = 'boop'; // => throws\n*/\n\n// MODULES //\n\nimport hasDefinePropertySupport from './has_define_property_support.js';\nimport builtin from './builtin.js';\nimport polyfill from './polyfill.js';\n\n\n// MAIN //\n\nvar defineProperty;\nif ( hasDefinePropertySupport() ) {\n\tdefineProperty = builtin;\n} else {\n\tdefineProperty = polyfill;\n}\n\n\n// EXPORTS //\n\nexport default defineProperty;\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 defineProperty from './define_property.js';\n\n\n// MAIN //\n\n/**\n* Tests for `Object.defineProperty` support.\n*\n* @private\n* @returns {boolean} boolean indicating if an environment has `Object.defineProperty` support\n*\n* @example\n* var bool = hasDefinePropertySupport();\n* // returns \n*/\nfunction hasDefinePropertySupport() {\n\t// Test basic support...\n\ttry {\n\t\tdefineProperty( {}, 'x', {} );\n\t\treturn true;\n\t} catch ( err ) { // eslint-disable-line no-unused-vars\n\t\treturn false;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default hasDefinePropertySupport;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport defineProperty from './../../define-property';\n\n\n// MAIN //\n\n/**\n* Defines a read-only property.\n*\n* @param {Object} obj - object on which to define the property\n* @param {(string|symbol)} prop - property name\n* @param {*} value - value to set\n*\n* @example\n* var obj = {};\n*\n* setReadOnly( obj, 'foo', 'bar' );\n*\n* try {\n* obj.foo = 'boop';\n* } catch ( err ) {\n* console.error( err.message );\n* }\n*/\nfunction setReadOnly( obj, prop, value ) {\n\tdefineProperty( obj, prop, {\n\t\t'configurable': false,\n\t\t'enumerable': true,\n\t\t'writable': false,\n\t\t'value': value\n\t});\n}\n\n\n// EXPORTS //\n\nexport default setReadOnly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Compute the principal square root of a double-precision floating-point number.\n*\n* @type {Function}\n* @param {number} x - input value\n* @returns {number} principal square root\n*\n* @example\n* var v = sqrt( 4.0 );\n* // returns 2.0\n*\n* v = sqrt( 9.0 );\n* // returns 3.0\n*\n* v = sqrt( 0.0 );\n* // returns 0.0\n*\n* v = sqrt( -4.0 );\n* // returns NaN\n*\n* v = sqrt( NaN );\n* // returns NaN\n*/\nvar sqrt = Math.sqrt; // eslint-disable-line stdlib/no-builtin-math\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// TODO: implementation (?)\n\n/**\n* Rounds a double-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 = floor( -4.2 );\n* // returns -5.0\n*\n* @example\n* var v = floor( 9.99999 );\n* // returns 9.0\n*\n* @example\n* var v = floor( 0.0 );\n* // returns 0.0\n*\n* @example\n* var v = floor( NaN );\n* // returns NaN\n*/\nvar floor = Math.floor; // eslint-disable-line stdlib/no-builtin-math\n\n\n// EXPORTS //\n\nexport default floor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Maximum safe double-precision floating-point integer.\n*\n* @module @stdlib/constants/float64/max-safe-integer\n* @type {number}\n*\n* @example\n* import FLOAT64_MAX_SAFE_INTEGER from '@stdlib/constants/float64/max-safe-integer';\n* // returns 9007199254740991\n*/\n\n\n// MAIN //\n\n/**\n* Maximum safe double-precision floating-point integer.\n*\n* ## Notes\n*\n* The integer has the value\n*\n* ```tex\n* 2^{53} - 1\n* ```\n*\n* @constant\n* @type {number}\n* @default 9007199254740991\n* @see [Safe Integers]{@link http://www.2ality.com/2013/10/safe-integers.html}\n* @see [IEEE 754]{@link https://en.wikipedia.org/wiki/IEEE_754-1985}\n*/\nvar FLOAT64_MAX_SAFE_INTEGER = 9007199254740991;\n\n\n// EXPORTS //\n\nexport default FLOAT64_MAX_SAFE_INTEGER;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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 floor from './../../../../base/special/floor';\nimport FLOAT64_MAX_SAFE_INTEGER from '@stdlib/constants/float64/max-safe-integer';\nimport WHEEL_PRIMES from './wheel_primes.json';\n\n\n// MAIN //\n\n/**\n* Returns a boolean indicating whether a number is a prime.\n*\n* @param {number} x - value to test\n* @returns {boolean} boolean indicating whether a value is a prime number\n*\n* @example\n* var bool = isPrime( 5.0 );\n* // returns true\n*\n* @example\n* var bool = isPrime( 4.0 );\n* // returns false\n*/\nfunction isPrime( x ) {\n\tvar N;\n\tvar i;\n\n\t// Check whether the number is an integer...\n\tif ( floor( x ) !== x ) {\n\t\treturn false;\n\t}\n\t// Check whether the number is positive...\n\tif ( x <= 3 ) {\n\t\treturn (x > 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) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Double-precision floating-point positive infinity.\n*\n* @module @stdlib/constants/float64/pinf\n* @type {number}\n*\n* @example\n* import FLOAT64_PINF from '@stdlib/constants/float64/pinf';\n* // returns Infinity\n*/\n\n\n// MAIN //\n\n/**\n* Double-precision floating-point positive infinity.\n*\n* ## Notes\n*\n* Double-precision floating-point positive infinity has the bit sequence\n*\n* ```binarystring\n* 0 11111111111 00000000000000000000 00000000000000000000000000000000\n* ```\n*\n* @constant\n* @type {number}\n* @default Number.POSITIVE_INFINITY\n* @see [IEEE 754]{@link https://en.wikipedia.org/wiki/IEEE_754-1985}\n*/\nvar FLOAT64_PINF = Number.POSITIVE_INFINITY; // eslint-disable-line stdlib/require-globals\n\n\n// EXPORTS //\n\nexport default FLOAT64_PINF;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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// EXPORTS //\n\nexport default Number; // eslint-disable-line stdlib/require-globals\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Double-precision floating-point negative infinity.\n*\n* @module @stdlib/constants/float64/ninf\n* @type {number}\n*\n* @example\n* import FLOAT64_NINF from '@stdlib/constants/float64/ninf';\n* // returns -Infinity\n*/\n\n// MODULES //\n\nimport Number from '@stdlib/number/ctor';\n\n\n// MAIN //\n\n/**\n* Double-precision floating-point negative infinity.\n*\n* ## Notes\n*\n* Double-precision floating-point negative infinity has the bit sequence\n*\n* ```binarystring\n* 1 11111111111 00000000000000000000 00000000000000000000000000000000\n* ```\n*\n* @constant\n* @type {number}\n* @default Number.NEGATIVE_INFINITY\n* @see [IEEE 754]{@link https://en.wikipedia.org/wiki/IEEE_754-1985}\n*/\nvar FLOAT64_NINF = Number.NEGATIVE_INFINITY;\n\n\n// EXPORTS //\n\nexport default FLOAT64_NINF;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Maximum signed 32-bit integer.\n*\n* @module @stdlib/constants/int32/max\n* @type {integer32}\n*\n* @example\n* import INT32_MAX from '@stdlib/constants/int32/max';\n* // returns 2147483647\n*/\n\n\n// MAIN //\n\n/**\n* Maximum signed 32-bit integer.\n*\n* ## Notes\n*\n* The number has the value\n*\n* ```tex\n* 2^{31} - 1\n* ```\n*\n* which corresponds to the bit sequence\n*\n* ```binarystring\n* 01111111111111111111111111111111\n* ```\n*\n* @constant\n* @type {integer32}\n* @default 2147483647\n*/\nvar INT32_MAX = 2147483647|0; // asm type annotation\n\n\n// EXPORTS //\n\nexport default INT32_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 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 - integer\n* @param {integer} b - integer\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 - integer\n* @param {integer32} b - integer\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 - integer\n* @param {integer} b - integer\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 hasSymbols from './../../has-symbol-support';\n\n\n// VARIABLES //\n\nvar FLG = hasSymbols();\n\n\n// MAIN //\n\n/**\n* Tests for native `toStringTag` support.\n*\n* @returns {boolean} boolean indicating if an environment has `toStringTag` support\n*\n* @example\n* var bool = hasToStringTagSupport();\n* // returns \n*/\nfunction hasToStringTagSupport() {\n\treturn ( FLG && typeof Symbol.toStringTag === 'symbol' );\n}\n\n\n// EXPORTS //\n\nexport default hasToStringTagSupport;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 for native `Symbol` support.\n*\n* @returns {boolean} boolean indicating if an environment has `Symbol` support\n*\n* @example\n* var bool = hasSymbolSupport();\n* // returns \n*/\nfunction hasSymbolSupport() {\n\treturn (\n\t\ttypeof Symbol === 'function' &&\n\t\ttypeof Symbol( 'foo' ) === 'symbol'\n\t);\n}\n\n\n// EXPORTS //\n\nexport default hasSymbolSupport;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 toStr = Object.prototype.toString;\n\n\n// EXPORTS //\n\nexport default toStr;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// FUNCTIONS //\n\nvar has = Object.prototype.hasOwnProperty;\n\n\n// MAIN //\n\n/**\n* Tests if an object has a specified property.\n*\n* @param {*} value - value to test\n* @param {*} property - property to test\n* @returns {boolean} boolean indicating if an object has a specified property\n*\n* @example\n* var beep = {\n* 'boop': true\n* };\n*\n* var bool = hasOwnProp( beep, 'boop' );\n* // returns true\n*\n* @example\n* var beep = {\n* 'boop': true\n* };\n*\n* var bool = hasOwnProp( beep, 'bap' );\n* // returns false\n*/\nfunction hasOwnProp( value, property ) {\n\tif (\n\t\tvalue === void 0 ||\n\t\tvalue === null\n\t) {\n\t\treturn false;\n\t}\n\treturn has.call( value, property );\n}\n\n\n// EXPORTS //\n\nexport default hasOwnProp;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 Sym = ( typeof Symbol === 'function' ) ? Symbol : void 0; // eslint-disable-line stdlib/require-globals\n\n\n// EXPORTS //\n\nexport default Sym;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 a string value indicating a specification defined classification of an object.\n*\n* @module @stdlib/utils/native-class\n*\n* @example\n* import nativeClass from '@stdlib/utils/native-class';\n*\n* var str = nativeClass( 'a' );\n* // returns '[object String]'\n*\n* str = nativeClass( 5 );\n* // returns '[object Number]'\n*\n* function Beep() {\n* return this;\n* }\n* str = nativeClass( new Beep() );\n* // returns '[object Object]'\n*/\n\n// MODULES //\n\nimport hasToStringTag from '@stdlib/assert/has-tostringtag-support';\nimport builtin from './main.js';\nimport polyfill from './polyfill.js';\n\n\n// MAIN //\n\nvar main;\nif ( hasToStringTag() ) {\n\tmain = polyfill;\n} else {\n\tmain = builtin;\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// MODULES //\n\nimport Symbol from '@stdlib/symbol/ctor';\n\n\n// MAIN //\n\nvar toStrTag = ( typeof Symbol === 'function' ) ? Symbol.toStringTag : '';\n\n\n// EXPORTS //\n\nexport default toStrTag;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport hasOwnProp from '@stdlib/assert/has-own-property';\nimport toStringTag from './tostringtag.js';\nimport toStr from './tostring.js';\n\n\n// MAIN //\n\n/**\n* Returns a string value indicating a specification defined classification of an object in environments supporting `Symbol.toStringTag`.\n*\n* @param {*} v - input value\n* @returns {string} string value indicating a specification defined classification of the input value\n*\n* @example\n* var str = nativeClass( 'a' );\n* // returns '[object String]'\n*\n* @example\n* var str = nativeClass( 5 );\n* // returns '[object Number]'\n*\n* @example\n* function Beep() {\n* return this;\n* }\n* var str = nativeClass( new Beep() );\n* // returns '[object Object]'\n*/\nfunction nativeClass( v ) {\n\tvar isOwn;\n\tvar tag;\n\tvar out;\n\n\tif ( v === null || v === void 0 ) {\n\t\treturn toStr.call( v );\n\t}\n\ttag = v[ toStringTag ];\n\tisOwn = hasOwnProp( v, toStringTag );\n\n\t// Attempt to override the `toStringTag` property. For built-ins having a `Symbol.toStringTag` property (e.g., `JSON`, `Math`, etc), the `Symbol.toStringTag` property is read-only (e.g., , so we need to wrap in a `try/catch`.\n\ttry {\n\t\tv[ toStringTag ] = void 0;\n\t} catch ( err ) { // eslint-disable-line no-unused-vars\n\t\treturn toStr.call( v );\n\t}\n\tout = toStr.call( v );\n\n\tif ( isOwn ) {\n\t\tv[ toStringTag ] = tag;\n\t} else {\n\t\tdelete v[ toStringTag ];\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default nativeClass;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport toStr from './tostring.js';\n\n\n// MAIN //\n\n/**\n* Returns a string value indicating a specification defined classification (via the internal property `[[Class]]`) of an object.\n*\n* @param {*} v - input value\n* @returns {string} string value indicating a specification defined classification of the input value\n*\n* @example\n* var str = nativeClass( 'a' );\n* // returns '[object String]'\n*\n* @example\n* var str = nativeClass( 5 );\n* // returns '[object Number]'\n*\n* @example\n* function Beep() {\n* return this;\n* }\n* var str = nativeClass( new Beep() );\n* // returns '[object Object]'\n*/\nfunction nativeClass( v ) {\n\treturn toStr.call( v );\n}\n\n\n// EXPORTS //\n\nexport default nativeClass;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport nativeClass from '@stdlib/utils/native-class';\n\n\n// VARIABLES //\n\nvar hasFloat32Array = ( typeof Float32Array === 'function' ); // eslint-disable-line stdlib/require-globals\n\n\n// MAIN //\n\n/**\n* Tests if a value is a Float32Array.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether value is a Float32Array\n*\n* @example\n* var bool = isFloat32Array( new Float32Array( 10 ) );\n* // returns true\n*\n* @example\n* var bool = isFloat32Array( [] );\n* // returns false\n*/\nfunction isFloat32Array( value ) {\n\treturn (\n\t\t( hasFloat32Array && value instanceof Float32Array ) || // eslint-disable-line stdlib/require-globals\n\t\tnativeClass( value ) === '[object Float32Array]'\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isFloat32Array;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 main = ( typeof Float32Array === 'function' ) ? Float32Array : null; // eslint-disable-line stdlib/require-globals\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// MAIN //\n\nvar ctor = ( typeof Float32Array === 'function' ) ? Float32Array : void 0; // eslint-disable-line stdlib/require-globals\n\n\n// EXPORTS //\n\nexport default ctor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Typed array constructor which returns a typed array representing an array of single-precision floating-point numbers in the platform byte order.\n*\n* @module @stdlib/array/float32\n*\n* @example\n* import ctor from '@stdlib/array/float32';\n*\n* var arr = new ctor( 10 );\n* // returns \n*/\n\n// MODULES //\n\nimport hasFloat32ArraySupport from '@stdlib/assert/has-float32array-support';\nimport builtin from './main.js';\nimport polyfill from './polyfill.js';\n\n\n// MAIN //\n\nvar ctor;\nif ( hasFloat32ArraySupport() ) {\n\tctor = builtin;\n} else {\n\tctor = polyfill;\n}\n\n\n// EXPORTS //\n\nexport default ctor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isFloat32Array from './../../is-float32array';\nimport PINF from '@stdlib/constants/float64/pinf';\nimport GlobalFloat32Array from './float32array.js';\n\n\n// MAIN //\n\n/**\n* Tests for native `Float32Array` support.\n*\n* @returns {boolean} boolean indicating if an environment has `Float32Array` support\n*\n* @example\n* var bool = hasFloat32ArraySupport();\n* // returns \n*/\nfunction hasFloat32ArraySupport() {\n\tvar bool;\n\tvar arr;\n\n\tif ( typeof GlobalFloat32Array !== 'function' ) {\n\t\treturn false;\n\t}\n\t// Test basic support...\n\ttry {\n\t\tarr = new GlobalFloat32Array( [ 1.0, 3.14, -3.14, 5.0e40 ] );\n\t\tbool = (\n\t\t\tisFloat32Array( arr ) &&\n\t\t\tarr[ 0 ] === 1.0 &&\n\t\t\tarr[ 1 ] === 3.140000104904175 &&\n\t\t\tarr[ 2 ] === -3.140000104904175 &&\n\t\t\tarr[ 3 ] === PINF\n\t\t);\n\t} catch ( err ) { // eslint-disable-line no-unused-vars\n\t\tbool = false;\n\t}\n\treturn bool;\n}\n\n\n// EXPORTS //\n\nexport default hasFloat32ArraySupport;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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: write polyfill\n\n// MAIN //\n\n/**\n* Typed array which represents an array of single-precision floating-point numbers in the platform byte order.\n*\n* @throws {Error} not implemented\n*/\nfunction polyfill() {\n\tthrow new Error( 'not implemented' );\n}\n\n\n// EXPORTS //\n\nexport default polyfill;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport nativeClass from '@stdlib/utils/native-class';\n\n\n// VARIABLES //\n\nvar hasUint32Array = ( typeof Uint32Array === 'function' ); // eslint-disable-line stdlib/require-globals\n\n\n// MAIN //\n\n/**\n* Tests if a value is a Uint32Array.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether value is a Uint32Array\n*\n* @example\n* var bool = isUint32Array( new Uint32Array( 10 ) );\n* // returns true\n*\n* @example\n* var bool = isUint32Array( [] );\n* // returns false\n*/\nfunction isUint32Array( value ) {\n\treturn (\n\t\t( hasUint32Array && value instanceof Uint32Array ) || // eslint-disable-line stdlib/require-globals\n\t\tnativeClass( value ) === '[object Uint32Array]'\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isUint32Array;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Maximum unsigned 32-bit integer.\n*\n* @module @stdlib/constants/uint32/max\n* @type {uinteger32}\n*\n* @example\n* import UINT32_MAX from '@stdlib/constants/uint32/max';\n* // returns 4294967295\n*/\n\n\n// MAIN //\n\n/**\n* Maximum unsigned 32-bit integer.\n*\n* ## Notes\n*\n* The number has the value\n*\n* ```tex\n* 2^{32} - 1\n* ```\n*\n* which corresponds to the bit sequence\n*\n* ```binarystring\n* 11111111111111111111111111111111\n* ```\n*\n* @constant\n* @type {uinteger32}\n* @default 4294967295\n*/\nvar UINT32_MAX = 4294967295;\n\n\n// EXPORTS //\n\nexport default UINT32_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\nvar main = ( typeof Uint32Array === 'function' ) ? Uint32Array : null; // eslint-disable-line stdlib/require-globals\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// MAIN //\n\nvar ctor = ( typeof Uint32Array === 'function' ) ? Uint32Array : void 0; // eslint-disable-line stdlib/require-globals\n\n\n// EXPORTS //\n\nexport default ctor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Typed array constructor which returns a typed array representing an array of 32-bit unsigned integers in the platform byte order.\n*\n* @module @stdlib/array/uint32\n*\n* @example\n* import ctor from '@stdlib/array/uint32';\n*\n* var arr = new ctor( 10 );\n* // returns \n*/\n\n// MODULES //\n\nimport hasUint32ArraySupport from '@stdlib/assert/has-uint32array-support';\nimport builtin from './main.js';\nimport polyfill from './polyfill.js';\n\n\n// MAIN //\n\nvar ctor;\nif ( hasUint32ArraySupport() ) {\n\tctor = builtin;\n} else {\n\tctor = polyfill;\n}\n\n\n// EXPORTS //\n\nexport default ctor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isUint32Array from './../../is-uint32array';\nimport UINT32_MAX from '@stdlib/constants/uint32/max';\nimport GlobalUint32Array from './uint32array.js';\n\n\n// MAIN //\n\n/**\n* Tests for native `Uint32Array` support.\n*\n* @returns {boolean} boolean indicating if an environment has `Uint32Array` support\n*\n* @example\n* var bool = hasUint32ArraySupport();\n* // returns \n*/\nfunction hasUint32ArraySupport() {\n\tvar bool;\n\tvar arr;\n\n\tif ( typeof GlobalUint32Array !== 'function' ) {\n\t\treturn false;\n\t}\n\t// Test basic support...\n\ttry {\n\t\tarr = [ 1, 3.14, -3.14, UINT32_MAX+1, UINT32_MAX+2 ];\n\t\tarr = new GlobalUint32Array( arr );\n\t\tbool = (\n\t\t\tisUint32Array( arr ) &&\n\t\t\tarr[ 0 ] === 1 &&\n\t\t\tarr[ 1 ] === 3 && // truncation\n\t\t\tarr[ 2 ] === UINT32_MAX-2 && // truncation and wrap around\n\t\t\tarr[ 3 ] === 0 && // wrap around\n\t\t\tarr[ 4 ] === 1 // wrap around\n\t\t);\n\t} catch ( err ) { // eslint-disable-line no-unused-vars\n\t\tbool = false;\n\t}\n\treturn bool;\n}\n\n\n// EXPORTS //\n\nexport default hasUint32ArraySupport;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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: write polyfill\n\n// MAIN //\n\n/**\n* Typed array which represents an array of 32-bit unsigned integers in the platform byte order.\n*\n* @throws {Error} not implemented\n*/\nfunction polyfill() {\n\tthrow new Error( 'not implemented' );\n}\n\n\n// EXPORTS //\n\nexport default polyfill;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Single-precision floating-point positive infinity.\n*\n* @module @stdlib/constants/float32/pinf\n* @type {number}\n*\n* @example\n* import FLOAT32_PINF from '@stdlib/constants/float32/pinf';\n* // returns +infinity\n*/\n\n// MODULES //\n\nimport Float32Array from '@stdlib/array/float32';\nimport Uint32Array from '@stdlib/array/uint32';\n\n\n// VARIABLES //\n\nvar FLOAT32_VIEW = new Float32Array( 1 );\nvar UINT32_VIEW = new Uint32Array( FLOAT32_VIEW.buffer );\nvar v;\n\n\n// MAIN //\n\n/**\n* Single-precision floating-point positive infinity.\n*\n* ## Notes\n*\n* Single-precision floating-point positive infinity has the bit sequence\n*\n* ```binarystring\n* 0 11111111 00000000000000000000000\n* ```\n*\n* This bit sequence corresponds to the unsigned 32-bit integer `2139095040` and to the HEX value `0x7f800000`.\n*\n* @constant\n* @type {number}\n* @default 0x7f800000\n* @see [IEEE 754]{@link https://en.wikipedia.org/wiki/IEEE_754-1985}\n*/\nvar FLOAT32_PINF = 0x7f800000;\n\n// Set the ArrayBuffer bit sequence:\nUINT32_VIEW[ 0 ] = FLOAT32_PINF;\n\nv = FLOAT32_VIEW[ 0 ];\n\n\n// EXPORTS //\n\nexport default v;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Single-precision floating-point negative infinity.\n*\n* @module @stdlib/constants/float32/ninf\n* @type {number}\n*\n* @example\n* import FLOAT32_NINF from '@stdlib/constants/float32/ninf';\n* // returns -infinity\n*/\n\n// MODULES //\n\nimport Float32Array from '@stdlib/array/float32';\nimport Uint32Array from '@stdlib/array/uint32';\n\n\n// VARIABLES //\n\nvar FLOAT32_VIEW = new Float32Array( 1 );\nvar UINT32_VIEW = new Uint32Array( FLOAT32_VIEW.buffer );\nvar v;\n\n\n// MAIN //\n\n/**\n* Single-precision floating-point negative infinity.\n*\n* ## Notes\n*\n* Single-precision floating-point negative infinity has the bit sequence\n*\n* ```binarystring\n* 1 11111111 00000000000000000000000\n* ```\n*\n* This bit sequence corresponds to the unsigned 32-bit integer `4286578688` and to the HEX value `0xff800000`.\n*\n* @constant\n* @type {number}\n* @default 0xff800000\n* @see [IEEE 754]{@link https://en.wikipedia.org/wiki/IEEE_754-1985}\n*/\nvar FLOAT32_NINF = 0xff800000;\n\n// Set the ArrayBuffer bit sequence:\nUINT32_VIEW[ 0 ] = FLOAT32_NINF;\n\nv = FLOAT32_VIEW[ 0 ];\n\n\n// EXPORTS //\n\nexport default v;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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/**\n* Minimum safe double-precision floating-point integer.\n*\n* @module @stdlib/constants/float64/min-safe-integer\n* @type {number}\n*\n* @example\n* import FLOAT64_MIN_SAFE_INTEGER from '@stdlib/constants/float64/min-safe-integer';\n* // returns -9007199254740991\n*/\n\n\n// MAIN //\n\n/**\n* Minimum safe double-precision floating-point integer.\n*\n* ## Notes\n*\n* The number has the value\n*\n* ```tex\n* -(2^{53} - 1)\n* ```\n*\n* @constant\n* @type {number}\n* @default -9007199254740991\n* @see [Safe Integers]{@link http://www.2ality.com/2013/10/safe-integers.html}\n* @see [IEEE 754]{@link https://en.wikipedia.org/wiki/IEEE_754-1985}\n*/\nvar FLOAT64_MIN_SAFE_INTEGER = -9007199254740991;\n\n\n// EXPORTS //\n\nexport default FLOAT64_MIN_SAFE_INTEGER;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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// MAIN //\n\nvar fround = ( typeof Math.fround === 'function' ) ? Math.fround : null; // eslint-disable-line stdlib/no-builtin-math\n\n\n// EXPORTS //\n\nexport default fround;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport Float32Array from '@stdlib/array/float32';\n\n\n// VARIABLES //\n\nvar FLOAT32_VIEW = new Float32Array( 1 );\n\n\n// MAIN //\n\n/**\n* Converts a double-precision floating-point number to the nearest single-precision floating-point number.\n*\n* @param {number} x - double-precision floating-point number\n* @returns {number} nearest single-precision floating-point number\n*\n* @example\n* var y = float64ToFloat32( 1.337 );\n* // returns 1.3370000123977661\n*/\nfunction float64ToFloat32( x ) {\n\tFLOAT32_VIEW[ 0 ] = x;\n\treturn FLOAT32_VIEW[ 0 ];\n}\n\n\n// EXPORTS //\n\nexport default float64ToFloat32;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Convert a double-precision floating-point number to the nearest single-precision floating-point number.\n*\n* @module @stdlib/number/float64/base/to-float32\n*\n* @example\n* import float64ToFloat32 from '@stdlib/number/float64/base/to-float32';\n*\n* var y = float64ToFloat32( 1.337 );\n* // returns 1.3370000123977661\n*/\n\n// MODULES //\n\nimport builtin from './main.js';\nimport polyfill from './polyfill.js';\n\n\n// MAIN //\n\nvar float64ToFloat32;\nif ( typeof builtin === 'function' ) {\n\tfloat64ToFloat32 = builtin;\n} else {\n\tfloat64ToFloat32 = polyfill;\n}\n\n\n// EXPORTS //\n\nexport default float64ToFloat32;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport defineProperty from './../../define-property';\n\n\n// MAIN //\n\n/**\n* Defines a non-enumerable read-only property.\n*\n* @param {Object} obj - object on which to define the property\n* @param {(string|symbol)} prop - property name\n* @param {*} value - value to set\n*\n* @example\n* var obj = {};\n*\n* setNonEnumerableReadOnly( obj, 'foo', 'bar' );\n*\n* try {\n* obj.foo = 'boop';\n* } catch ( err ) {\n* console.error( err.message );\n* }\n*/\nfunction setNonEnumerableReadOnly( obj, prop, value ) {\n\tdefineProperty( obj, prop, {\n\t\t'configurable': false,\n\t\t'enumerable': false,\n\t\t'writable': false,\n\t\t'value': value\n\t});\n}\n\n\n// EXPORTS //\n\nexport default setNonEnumerableReadOnly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 value is a number primitive.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a number primitive\n*\n* @example\n* var bool = isNumber( 3.14 );\n* // returns true\n*\n* @example\n* var bool = isNumber( NaN );\n* // returns true\n*\n* @example\n* var bool = isNumber( new Number( 3.14 ) );\n* // returns false\n*/\nfunction isNumber( value ) {\n\treturn ( typeof value === 'number' );\n}\n\n\n// EXPORTS //\n\nexport default isNumber;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport Number from '@stdlib/number/ctor';\n\n\n// MAIN //\n\n// eslint-disable-next-line stdlib/no-redeclare\nvar toString = Number.prototype.toString; // non-generic\n\n\n// EXPORTS //\n\nexport default toString;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport hasToStringTag from './../../has-tostringtag-support';\nimport nativeClass from '@stdlib/utils/native-class';\nimport Number from '@stdlib/number/ctor';\nimport test from './try2serialize.js';\n\n\n// VARIABLES //\n\nvar FLG = hasToStringTag();\n\n\n// MAIN //\n\n/**\n* Tests if a value is a number object.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a number object\n*\n* @example\n* var bool = isNumber( 3.14 );\n* // returns false\n*\n* @example\n* var bool = isNumber( new Number( 3.14 ) );\n* // returns true\n*/\nfunction isNumber( value ) {\n\tif ( typeof value === 'object' ) {\n\t\tif ( value instanceof Number ) {\n\t\t\treturn true;\n\t\t}\n\t\tif ( FLG ) {\n\t\t\treturn test( value );\n\t\t}\n\t\treturn ( nativeClass( value ) === '[object Number]' );\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default isNumber;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport toString from './tostring.js'; // eslint-disable-line stdlib/no-redeclare\n\n\n// MAIN //\n\n/**\n* Attempts to serialize a value to a string.\n*\n* @private\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value can be serialized\n*/\nfunction test( value ) {\n\ttry {\n\t\ttoString.call( value );\n\t\treturn true;\n\t} catch ( err ) { // eslint-disable-line no-unused-vars\n\t\treturn false;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default test;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isPrimitive from './primitive.js';\nimport isObject from './object.js';\n\n\n// MAIN //\n\n/**\n* Tests if a value is a number.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether value is a number\n*\n* @example\n* var bool = isNumber( 3.14 );\n* // returns true\n*\n* @example\n* var bool = isNumber( new Number( 3.14 ) );\n* // returns true\n*\n* @example\n* var bool = isNumber( NaN );\n* // returns true\n*\n* @example\n* var bool = isNumber( null );\n* // returns false\n*/\nfunction isNumber( value ) {\n\treturn ( isPrimitive( value ) || isObject( value ) );\n}\n\n\n// EXPORTS //\n\nexport default isNumber;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { isPrimitive as isNumber } from '@stdlib/assert/is-number';\nimport defineProperty from '@stdlib/utils/define-property';\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport float64ToFloat32 from '@stdlib/number/float64/base/to-float32';\nimport format from '@stdlib/string/format';\nimport toStr from './tostring.js';\nimport toJSON from './tojson.js';\n\n\n// MAIN //\n\n/**\n* 64-bit complex number constructor.\n*\n* @constructor\n* @param {number} real - real component\n* @param {number} imag - imaginary component\n* @throws {TypeError} must invoke using the `new` keyword\n* @throws {TypeError} real component must be a number\n* @throws {TypeError} imaginary component must be a number\n* @returns {Complex64} 64-bit complex number\n*\n* @example\n* var z = new Complex64( 5.0, 3.0 );\n* // returns \n*/\nfunction Complex64( real, imag ) {\n\tif ( !( this instanceof Complex64 ) ) {\n\t\tthrow new TypeError( 'invalid invocation. Constructor must be called with the `new` keyword.' );\n\t}\n\tif ( !isNumber( real ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Real component must be a number. Value: `%s`.', real ) );\n\t}\n\tif ( !isNumber( imag ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Imaginary component must be a number. Value: `%s`.', imag ) );\n\t}\n\tdefineProperty( this, 're', {\n\t\t'configurable': false,\n\t\t'enumerable': true,\n\t\t'writable': false,\n\t\t'value': float64ToFloat32( real )\n\t});\n\tdefineProperty( this, 'im', {\n\t\t'configurable': false,\n\t\t'enumerable': true,\n\t\t'writable': false,\n\t\t'value': float64ToFloat32( imag )\n\t});\n\treturn this;\n}\n\n/**\n* Size (in bytes) of each component.\n*\n* @name BYTES_PER_ELEMENT\n* @memberof Complex64\n* @type {integer}\n* @returns {integer} size of each component\n*\n* @example\n* var nbytes = Complex64.BYTES_PER_ELEMENT;\n* // returns 4\n*/\nsetReadOnly( Complex64, 'BYTES_PER_ELEMENT', 4 );\n\n/**\n* Size (in bytes) of each component.\n*\n* @name BYTES_PER_ELEMENT\n* @memberof Complex64.prototype\n* @type {integer}\n* @returns {integer} size of each component\n*\n* @example\n* var z = new Complex64( 5.0, 3.0 );\n*\n* var nbytes = z.BYTES_PER_ELEMENT;\n* // returns 4\n*/\nsetReadOnly( Complex64.prototype, 'BYTES_PER_ELEMENT', 4 );\n\n/**\n* Length (in bytes) of a complex number.\n*\n* @name byteLength\n* @memberof Complex64.prototype\n* @type {integer}\n* @returns {integer} byte length\n*\n* @example\n* var z = new Complex64( 5.0, 3.0 );\n*\n* var nbytes = z.byteLength;\n* // returns 8\n*/\nsetReadOnly( Complex64.prototype, 'byteLength', 8 );\n\n/**\n* Serializes a complex number as a string.\n*\n* @name toString\n* @memberof Complex64.prototype\n* @type {Function}\n* @returns {string} serialized complex number\n*\n* @example\n* var z = new Complex64( 5.0, 3.0 );\n*\n* var str = z.toString();\n* // returns '5 + 3i'\n*/\nsetReadOnly( Complex64.prototype, 'toString', toStr );\n\n/**\n* Serializes a complex number as a JSON object.\n*\n* ## Notes\n*\n* - `JSON.stringify()` implicitly calls this method when stringifying a `Complex64` instance.\n*\n* @name toJSON\n* @memberof Complex64.prototype\n* @type {Function}\n* @returns {Object} serialized complex number\n*\n* @example\n* var z = new Complex64( 5.0, 3.0 );\n*\n* var obj = z.toJSON();\n* // returns { 'type': 'Complex64', 're': 5.0, 'im': 3.0 }\n*/\nsetReadOnly( Complex64.prototype, 'toJSON', toJSON );\n\n\n// EXPORTS //\n\nexport default Complex64;\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* Returns the real component of a single-precision complex floating-point number.\n*\n* @param {Complex} z - complex number\n* @returns {number} real component\n*\n* @example\n* import Complex64 from '@stdlib/complex/float32/ctor';\n*\n* var z = new Complex64( 5.0, 3.0 );\n*\n* var re = real( z );\n* // returns 5.0\n*/\nfunction real( z ) {\n\treturn z.re;\n}\n\n\n// EXPORTS //\n\nexport default real;\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* Returns the imaginary component of a single-precision complex floating-point number.\n*\n* @param {Complex} z - complex number\n* @returns {number} imaginary component\n*\n* @example\n* import Complex64 from '@stdlib/complex/float32/ctor';\n*\n* var z = new Complex64( 5.0, 3.0 );\n*\n* var im = imag( z );\n* // returns 3.0\n*/\nfunction imag( z ) {\n\treturn z.im;\n}\n\n\n// EXPORTS //\n\nexport default imag;\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 './../../../../float32/ctor';\nimport realf from './../../../../float32/real';\nimport imagf from './../../../../float32/imag';\n\n\n// MAIN //\n\n/**\n* Adds 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 z = new Complex64( 5.0, 3.0 );\n* // returns \n*\n* var out = add( z, z );\n* // returns \n*\n* var re = realf( out );\n* // returns 10.0\n*\n* var im = imagf( out );\n* // returns 6.0\n*/\nfunction add( 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 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// MODULES //\n\nimport float64ToFloat32 from '@stdlib/number/float64/base/to-float32';\nimport Complex64 from './../../../../float32/ctor';\nimport realf from './../../../../float32/real';\nimport imagf from './../../../../float32/imag';\n\n\n// MAIN //\n\n/**\n* Multiplies 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 = mul( z1, z2 );\n* // returns \n*\n* var re = realf( out );\n* // returns -13.0\n*\n* var im = imagf( out );\n* // returns -1.0\n*/\nfunction mul( z1, z2 ) {\n\tvar re1 = realf( z1 );\n\tvar re2 = realf( z2 );\n\tvar im1 = imagf( z1 );\n\tvar im2 = imagf( z2 );\n\tvar re = float64ToFloat32(re1*re2) - float64ToFloat32(im1*im2);\n\tvar im = float64ToFloat32(re1*im2) + float64ToFloat32(im1*re2);\n\treturn new Complex64( float64ToFloat32( re ), float64ToFloat32( im ) );\n}\n\n\n// EXPORTS //\n\nexport default mul;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { isPrimitive as isNumber } from '@stdlib/assert/is-number';\nimport defineProperty from '@stdlib/utils/define-property';\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport format from '@stdlib/string/format';\nimport toStr from './tostring.js';\nimport toJSON from './tojson.js';\n\n\n// MAIN //\n\n/**\n* 128-bit complex number constructor.\n*\n* @constructor\n* @param {number} real - real component\n* @param {number} imag - imaginary component\n* @throws {TypeError} must invoke using the `new` keyword\n* @throws {TypeError} real component must be a number\n* @throws {TypeError} imaginary component must be a number\n* @returns {Complex128} 128-bit complex number\n*\n* @example\n* var z = new Complex128( 5.0, 3.0 );\n* // returns \n*/\nfunction Complex128( real, imag ) {\n\tif ( !( this instanceof Complex128 ) ) {\n\t\tthrow new TypeError( 'invalid invocation. Constructor must be called with the `new` keyword.' );\n\t}\n\tif ( !isNumber( real ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Real component must be a number. Value: `%s`.', real ) );\n\t}\n\tif ( !isNumber( imag ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Imaginary component must be a number. Value: `%s`.', imag ) );\n\t}\n\tdefineProperty( this, 're', {\n\t\t'configurable': false,\n\t\t'enumerable': true,\n\t\t'writable': false,\n\t\t'value': real\n\t});\n\tdefineProperty( this, 'im', {\n\t\t'configurable': false,\n\t\t'enumerable': true,\n\t\t'writable': false,\n\t\t'value': imag\n\t});\n\treturn this;\n}\n\n/**\n* Size (in bytes) of each component.\n*\n* @name BYTES_PER_ELEMENT\n* @memberof Complex128\n* @type {integer}\n* @returns {integer} size of each component\n*\n* @example\n* var nbytes = Complex128.BYTES_PER_ELEMENT;\n* // returns 8\n*/\nsetReadOnly( Complex128, 'BYTES_PER_ELEMENT', 8 );\n\n/**\n* Size (in bytes) of each component.\n*\n* @name BYTES_PER_ELEMENT\n* @memberof Complex128.prototype\n* @type {integer}\n* @returns {integer} size of each component\n*\n* @example\n* var z = new Complex128( 5.0, 3.0 );\n*\n* var nbytes = z.BYTES_PER_ELEMENT;\n* // returns 8\n*/\nsetReadOnly( Complex128.prototype, 'BYTES_PER_ELEMENT', 8 );\n\n/**\n* Length (in bytes) of a complex number.\n*\n* @name byteLength\n* @memberof Complex128.prototype\n* @type {integer}\n* @returns {integer} byte length\n*\n* @example\n* var z = new Complex128( 5.0, 3.0 );\n*\n* var nbytes = z.byteLength;\n* // returns 16\n*/\nsetReadOnly( Complex128.prototype, 'byteLength', 16 );\n\n/**\n* Serializes a complex number as a string.\n*\n* @name toString\n* @memberof Complex128.prototype\n* @type {Function}\n* @returns {string} serialized complex number\n*\n* @example\n* var z = new Complex128( 5.0, 3.0 );\n*\n* var str = z.toString();\n* // returns '5 + 3i'\n*/\nsetReadOnly( Complex128.prototype, 'toString', toStr );\n\n/**\n* Serializes a complex number as a JSON object.\n*\n* ## Notes\n*\n* - `JSON.stringify()` implicitly calls this method when stringifying a `Complex128` instance.\n*\n* @name toJSON\n* @memberof Complex128.prototype\n* @type {Function}\n* @returns {Object} serialized complex number\n*\n* @example\n* var z = new Complex128( 5.0, 3.0 );\n*\n* var obj = z.toJSON();\n* // returns { 'type': 'Complex128', 're': 5.0, 'im': 3.0 }\n*/\nsetReadOnly( Complex128.prototype, 'toJSON', toJSON );\n\n\n// EXPORTS //\n\nexport default Complex128;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 real component of a double-precision complex floating-point number.\n*\n* @param {Complex} z - complex number\n* @returns {number} real component\n*\n* @example\n* import Complex128 from '@stdlib/complex/float64/ctor';\n*\n* var z = new Complex128( 5.0, 3.0 );\n*\n* var re = real( z );\n* // returns 5.0\n*/\nfunction real( z ) {\n\treturn z.re;\n}\n\n\n// EXPORTS //\n\nexport default real;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 imaginary component of a double-precision complex floating-point number.\n*\n* @param {Complex} z - complex number\n* @returns {number} imaginary component\n*\n* @example\n* import Complex128 from '@stdlib/complex/float64/ctor';\n*\n* var z = new Complex128( 5.0, 3.0 );\n*\n* var im = imag( z );\n* // returns 3.0\n*/\nfunction imag( z ) {\n\treturn z.im;\n}\n\n\n// EXPORTS //\n\nexport default imag;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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 './../../../../float64/ctor';\nimport real from './../../../../float64/real';\nimport imag from './../../../../float64/imag';\n\n\n// MAIN //\n\n/**\n* Adds 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 z = new Complex128( 5.0, 3.0 );\n* // returns \n*\n* var out = cadd( z, z );\n* // returns \n*\n* var re = real( out );\n* // returns 10.0\n*\n* var im = imag( out );\n* // returns 6.0\n*/\nfunction cadd( 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 cadd;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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 './../../../../float64/ctor';\nimport real from './../../../../float64/real';\nimport imag from './../../../../float64/imag';\n\n\n// MAIN //\n\n/**\n* Multiplies 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 = mul( z1, z2 );\n* // returns \n*\n* var re = real( out );\n* // returns -13.0\n*\n* var im = imag( out );\n* // returns -1.0\n*/\nfunction mul( z1, z2 ) {\n\tvar re1 = real( z1 );\n\tvar re2 = real( z2 );\n\tvar im1 = imag( z1 );\n\tvar im2 = imag( z2 );\n\tvar re = (re1*re2) - (im1*im2);\n\tvar im = (re1*im2) + (im1*re2);\n\treturn new Complex128( re, im );\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* 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/**\n* Test if a value is a number.\n*\n* @module @stdlib/assert/is-number\n*\n* @example\n* import isNumber from '@stdlib/assert/is-number';\n*\n* var bool = isNumber( 3.14 );\n* // returns true\n*\n* bool = isNumber( new Number( 3.14 ) );\n* // returns true\n*\n* bool = isNumber( NaN );\n* // returns true\n*\n* bool = isNumber( null );\n* // returns false\n*\n* @example\n* import { isPrimitive as isNumber } from '@stdlib/assert/is-number';\n*\n* var bool = isNumber( 3.14 );\n* // returns true\n*\n* bool = isNumber( NaN );\n* // returns true\n*\n* bool = isNumber( new Number( 3.14 ) );\n* // returns false\n*\n* @example\n* import { isObject as isNumber } from '@stdlib/assert/is-number';\n*\n* var bool = isNumber( 3.14 );\n* // returns false\n*\n* bool = isNumber( new Number( 3.14 ) );\n* // returns true\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport isPrimitive from './primitive.js';\nimport isObject from './object.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'isPrimitive', isPrimitive );\nsetReadOnly( main, 'isObject', isObject );\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* Serializes a complex number as a string.\n*\n* @private\n* @returns {string} serialized complex number\n*/\nfunction toString() { // eslint-disable-line stdlib/no-redeclare\n\t/* eslint-disable no-invalid-this */\n\tvar str = '' + this.re;\n\tif ( this.im < 0 ) {\n\t\tstr += ' - ' + (-this.im);\n\t} else {\n\t\tstr += ' + ' + this.im;\n\t}\n\tstr += 'i';\n\treturn str;\n}\n\n\n// EXPORTS //\n\nexport default toString;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Serializes a complex number as a JSON object.\n*\n* @private\n* @returns {Object} JSON representation\n*/\nfunction toJSON() {\n\t/* eslint-disable no-invalid-this */\n\tvar out = {};\n\tout.type = 'Complex64';\n\tout.re = this.re;\n\tout.im = this.im;\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default toJSON;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Serializes a complex number as a string.\n*\n* @private\n* @returns {string} serialized complex number\n*/\nfunction toString() { // eslint-disable-line stdlib/no-redeclare\n\t/* eslint-disable no-invalid-this */\n\tvar str = '' + this.re;\n\tif ( this.im < 0 ) {\n\t\tstr += ' - ' + (-this.im);\n\t} else {\n\t\tstr += ' + ' + this.im;\n\t}\n\tstr += 'i';\n\treturn str;\n}\n\n\n// EXPORTS //\n\nexport default toString;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Serializes a complex number as a JSON object.\n*\n* @private\n* @returns {Object} JSON representation\n*/\nfunction toJSON() {\n\t/* eslint-disable no-invalid-this */\n\tvar out = {};\n\tout.type = 'Complex128';\n\tout.re = this.re;\n\tout.im = this.im;\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default toJSON;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Maximum double-precision floating-point number.\n*\n* @module @stdlib/constants/float64/max\n* @type {number}\n*\n* @example\n* import FLOAT64_MAX from '@stdlib/constants/float64/max';\n* // returns 1.7976931348623157e+308\n*/\n\n\n// MAIN //\n\n/**\n* Maximum double-precision floating-point number.\n*\n* ## Notes\n*\n* The maximum is given by\n*\n* ```tex\n* 2^{1023} (2 - 2^{-52})\n* ```\n*\n* @constant\n* @type {number}\n* @default 1.7976931348623157e+308\n* @see [IEEE 754]{@link https://en.wikipedia.org/wiki/IEEE_754-1985}\n*/\nvar FLOAT64_MAX = 1.7976931348623157e+308;\n\n\n// EXPORTS //\n\nexport default FLOAT64_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/**\n* Smallest positive double-precision floating-point normal number.\n*\n* @module @stdlib/constants/float64/smallest-normal\n* @type {number}\n*\n* @example\n* import FLOAT64_SMALLEST_NORMAL from '@stdlib/constants/float64/smallest-normal';\n* // returns 2.2250738585072014e-308\n*/\n\n\n// MAIN //\n\n/**\n* The smallest positive double-precision floating-point normal number.\n*\n* ## Notes\n*\n* The number has the value\n*\n* ```tex\n* \\frac{1}{2^{1023-1}}\n* ```\n*\n* which corresponds to the bit sequence\n*\n* ```binarystring\n* 0 00000000001 00000000000000000000 00000000000000000000000000000000\n* ```\n*\n* @constant\n* @type {number}\n* @default 2.2250738585072014e-308\n* @see [IEEE 754]{@link https://en.wikipedia.org/wiki/IEEE_754-1985}\n*/\nvar FLOAT64_SMALLEST_NORMAL = 2.2250738585072014e-308;\n\n\n// EXPORTS //\n\nexport default FLOAT64_SMALLEST_NORMAL;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Difference between one and the smallest value greater than one that can be represented as a double-precision floating-point number.\n*\n* @module @stdlib/constants/float64/eps\n* @type {number}\n*\n* @example\n* import FLOAT64_EPSILON from '@stdlib/constants/float64/eps';\n* // returns 2.220446049250313e-16\n*/\n\n\n// MAIN //\n\n/**\n* Difference between one and the smallest value greater than one that can be represented as a double-precision floating-point number.\n*\n* ## Notes\n*\n* The difference is\n*\n* ```tex\n* \\frac{1}{2^{52}}\n* ```\n*\n* @constant\n* @type {number}\n* @default 2.220446049250313e-16\n* @see [IEEE 754]{@link https://en.wikipedia.org/wiki/IEEE_754-1985}\n* @see [Machine Epsilon]{@link https://en.wikipedia.org/wiki/Machine_epsilon}\n*/\nvar FLOAT64_EPSILON = 2.2204460492503130808472633361816E-16;\n\n\n// EXPORTS //\n\nexport default FLOAT64_EPSILON;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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// 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'use strict';\n\n/**\n* One fourth times the mathematical constant `π`.\n*\n* @module @stdlib/constants/float64/fourth-pi\n* @type {number}\n*\n* @example\n* import FOURTH_PI from '@stdlib/constants/float64/fourth-pi';\n* // returns 7.85398163397448309616e-1\n*/\n\n\n// MAIN //\n\n/**\n* One fourth times the mathematical constant `π`.\n*\n* @constant\n* @type {number}\n* @default 7.85398163397448309616e-1\n* @see [Wikipedia]{@link https://en.wikipedia.org/wiki/Pi}\n*/\nvar FOURTH_PI = 7.85398163397448309616e-1;\n\n\n// EXPORTS //\n\nexport default FOURTH_PI;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport Float32Array from '@stdlib/array/float32';\nimport Uint32Array from '@stdlib/array/uint32';\n\n\n// VARIABLES //\n\nvar FLOAT32_VIEW = new Float32Array( 1.0 );\nvar UINT32_VIEW = new Uint32Array( FLOAT32_VIEW.buffer );\n\n\n// MAIN //\n\n/**\n* Returns an unsigned 32-bit integer corresponding to the IEEE 754 binary representation of a single-precision floating-point number.\n*\n* @param {number} x - single-precision floating-point number\n* @returns {unsigned32} unsigned 32-bit integer\n*\n* @example\n* import float64ToFloat32 from '@stdlib/number/float64/base/to-float32';\n*\n* var f32 = float64ToFloat32( 1.337 );\n* // returns 1.3370000123977661\n*\n* var w = toWordf( f32 ); // => 0 01111111 01010110010001011010001\n* // returns 1068180177\n*/\nfunction toWordf( x ) {\n\tFLOAT32_VIEW[ 0 ] = x;\n\treturn UINT32_VIEW[ 0 ];\n}\n\n\n// EXPORTS //\n\nexport default toWordf;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport Uint32Array from '@stdlib/array/uint32';\nimport Float32Array from '@stdlib/array/float32';\n\n\n// VARIABLES //\n\nvar UINT32_VIEW = new Uint32Array( 1 );\nvar FLOAT32_VIEW = new Float32Array( UINT32_VIEW.buffer );\n\n\n// MAIN //\n\n/**\n* Creates a single-precision floating-point number from an unsigned integer corresponding to an IEEE 754 binary representation.\n*\n* @param {uinteger32} word - unsigned integer\n* @returns {number} single-precision floating-point number\n*\n* @example\n* var word = 1068180177; // => 0 01111111 01010110010001011010001\n*\n* var f32 = fromWordf( word ); // when printed, implicitly promoted to float64\n* // returns 1.3370000123977661\n*/\nfunction fromWordf( word ) {\n\tUINT32_VIEW[ 0 ] = word;\n\treturn FLOAT32_VIEW[ 0 ];\n}\n\n\n// EXPORTS //\n\nexport default fromWordf;\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* The mathematical constant `π`.\n*\n* @module @stdlib/constants/float32/pi\n* @type {number}\n*\n* @example\n* import FLOAT32_PI from '@stdlib/constants/float32/pi';\n* // returns 3.1415927410125732\n*/\n\n// MODULES //\n\nimport float64ToFloat32 from '@stdlib/number/float64/base/to-float32';\n\n\n// MAIN //\n\n/**\n* The mathematical constant `π`.\n*\n* @constant\n* @type {number}\n* @default 3.1415927410125732\n* @see [Wikipedia]{@link https://en.wikipedia.org/wiki/Pi}\n*/\nvar FLOAT32_PI = float64ToFloat32( 3.141592653589793 );\n\n\n// EXPORTS //\n\nexport default FLOAT32_PI;\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'use strict';\n\n// MODULES //\n\nimport nativeClass from '@stdlib/utils/native-class';\n\n\n// VARIABLES //\n\nvar hasFloat64Array = ( typeof Float64Array === 'function' ); // eslint-disable-line stdlib/require-globals\n\n\n// MAIN //\n\n/**\n* Tests if a value is a Float64Array.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether value is a Float64Array\n*\n* @example\n* var bool = isFloat64Array( new Float64Array( 10 ) );\n* // returns true\n*\n* @example\n* var bool = isFloat64Array( [] );\n* // returns false\n*/\nfunction isFloat64Array( value ) {\n\treturn (\n\t\t( hasFloat64Array && value instanceof Float64Array ) || // eslint-disable-line stdlib/require-globals\n\t\tnativeClass( value ) === '[object Float64Array]'\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isFloat64Array;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 main = ( typeof Float64Array === 'function' ) ? Float64Array : null; // eslint-disable-line stdlib/require-globals\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// MAIN //\n\nvar ctor = ( typeof Float64Array === 'function' ) ? Float64Array : void 0; // eslint-disable-line stdlib/require-globals\n\n\n// EXPORTS //\n\nexport default ctor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Typed array constructor which returns a typed array representing an array of double-precision floating-point numbers in the platform byte order.\n*\n* @module @stdlib/array/float64\n*\n* @example\n* import ctor from '@stdlib/array/float64';\n*\n* var arr = new ctor( 10 );\n* // returns \n*/\n\n// MODULES //\n\nimport hasFloat64ArraySupport from '@stdlib/assert/has-float64array-support';\nimport builtin from './main.js';\nimport polyfill from './polyfill.js';\n\n\n// MAIN //\n\nvar ctor;\nif ( hasFloat64ArraySupport() ) {\n\tctor = builtin;\n} else {\n\tctor = polyfill;\n}\n\n\n// EXPORTS //\n\nexport default ctor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isFloat64Array from './../../is-float64array';\nimport GlobalFloat64Array from './float64array.js';\n\n\n// MAIN //\n\n/**\n* Tests for native `Float64Array` support.\n*\n* @returns {boolean} boolean indicating if an environment has `Float64Array` support\n*\n* @example\n* var bool = hasFloat64ArraySupport();\n* // returns \n*/\nfunction hasFloat64ArraySupport() {\n\tvar bool;\n\tvar arr;\n\n\tif ( typeof GlobalFloat64Array !== 'function' ) {\n\t\treturn false;\n\t}\n\t// Test basic support...\n\ttry {\n\t\tarr = new GlobalFloat64Array( [ 1.0, 3.14, -3.14, NaN ] );\n\t\tbool = (\n\t\t\tisFloat64Array( arr ) &&\n\t\t\tarr[ 0 ] === 1.0 &&\n\t\t\tarr[ 1 ] === 3.14 &&\n\t\t\tarr[ 2 ] === -3.14 &&\n\t\t\tarr[ 3 ] !== arr[ 3 ]\n\t\t);\n\t} catch ( err ) { // eslint-disable-line no-unused-vars\n\t\tbool = false;\n\t}\n\treturn bool;\n}\n\n\n// EXPORTS //\n\nexport default hasFloat64ArraySupport;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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: write polyfill\n\n// MAIN //\n\n/**\n* Typed array which represents an array of double-precision floating-point numbers in the platform byte order.\n*\n* @throws {Error} not implemented\n*/\nfunction polyfill() {\n\tthrow new Error( 'not implemented' );\n}\n\n\n// EXPORTS //\n\nexport default polyfill;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport nativeClass from '@stdlib/utils/native-class';\n\n\n// VARIABLES //\n\nvar hasUint8Array = ( typeof Uint8Array === 'function' ); // eslint-disable-line stdlib/require-globals\n\n\n// MAIN //\n\n/**\n* Tests if a value is a Uint8Array.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether value is a Uint8Array\n*\n* @example\n* var bool = isUint8Array( new Uint8Array( 10 ) );\n* // returns true\n*\n* @example\n* var bool = isUint8Array( [] );\n* // returns false\n*/\nfunction isUint8Array( value ) {\n\treturn (\n\t\t( hasUint8Array && value instanceof Uint8Array ) || // eslint-disable-line stdlib/require-globals\n\t\tnativeClass( value ) === '[object Uint8Array]'\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isUint8Array;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Maximum unsigned 8-bit integer.\n*\n* @module @stdlib/constants/uint8/max\n* @type {integer32}\n*\n* @example\n* import UINT8_MAX from '@stdlib/constants/uint8/max';\n* // returns 255\n*/\n\n\n// MAIN //\n\n/**\n* Maximum unsigned 8-bit integer.\n*\n* ## Notes\n*\n* The number has the value\n*\n* ```tex\n* 2^{8} - 1\n* ```\n*\n* which corresponds to the bit sequence\n*\n* ```binarystring\n* 11111111\n* ```\n*\n* @constant\n* @type {integer32}\n* @default 255\n*/\nvar UINT8_MAX = 255|0; // asm type annotation\n\n\n// EXPORTS //\n\nexport default UINT8_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\nvar main = ( typeof Uint8Array === 'function' ) ? Uint8Array : null; // eslint-disable-line stdlib/require-globals\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// MAIN //\n\nvar ctor = ( typeof Uint8Array === 'function' ) ? Uint8Array : void 0; // eslint-disable-line stdlib/require-globals\n\n\n// EXPORTS //\n\nexport default ctor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Typed array constructor which returns a typed array representing an array of 8-bit unsigned integers in the platform byte order.\n*\n* @module @stdlib/array/uint8\n*\n* @example\n* import ctor from '@stdlib/array/uint8';\n*\n* var arr = new ctor( 10 );\n* // returns \n*/\n\n// MODULES //\n\nimport hasUint8ArraySupport from '@stdlib/assert/has-uint8array-support';\nimport builtin from './main.js';\nimport polyfill from './polyfill.js';\n\n\n// MAIN //\n\nvar ctor;\nif ( hasUint8ArraySupport() ) {\n\tctor = builtin;\n} else {\n\tctor = polyfill;\n}\n\n\n// EXPORTS //\n\nexport default ctor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isUint8Array from './../../is-uint8array';\nimport UINT8_MAX from '@stdlib/constants/uint8/max';\nimport GlobalUint8Array from './uint8array.js';\n\n\n// MAIN //\n\n/**\n* Tests for native `Uint8Array` support.\n*\n* @returns {boolean} boolean indicating if an environment has `Uint8Array` support\n*\n* @example\n* var bool = hasUint8ArraySupport();\n* // returns \n*/\nfunction hasUint8ArraySupport() {\n\tvar bool;\n\tvar arr;\n\n\tif ( typeof GlobalUint8Array !== 'function' ) {\n\t\treturn false;\n\t}\n\t// Test basic support...\n\ttry {\n\t\tarr = [ 1, 3.14, -3.14, UINT8_MAX+1, UINT8_MAX+2 ];\n\t\tarr = new GlobalUint8Array( arr );\n\t\tbool = (\n\t\t\tisUint8Array( arr ) &&\n\t\t\tarr[ 0 ] === 1 &&\n\t\t\tarr[ 1 ] === 3 && // truncation\n\t\t\tarr[ 2 ] === UINT8_MAX-2 && // truncation and wrap around\n\t\t\tarr[ 3 ] === 0 && // wrap around\n\t\t\tarr[ 4 ] === 1 // wrap around\n\t\t);\n\t} catch ( err ) { // eslint-disable-line no-unused-vars\n\t\tbool = false;\n\t}\n\treturn bool;\n}\n\n\n// EXPORTS //\n\nexport default hasUint8ArraySupport;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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: write polyfill\n\n// MAIN //\n\n/**\n* Typed array which represents an array of 8-bit unsigned integers in the platform byte order.\n*\n* @throws {Error} not implemented\n*/\nfunction polyfill() {\n\tthrow new Error( 'not implemented' );\n}\n\n\n// EXPORTS //\n\nexport default polyfill;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport nativeClass from '@stdlib/utils/native-class';\n\n\n// VARIABLES //\n\nvar hasUint16Array = ( typeof Uint16Array === 'function' ); // eslint-disable-line stdlib/require-globals\n\n\n// MAIN //\n\n/**\n* Tests if a value is a Uint16Array.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether value is a Uint16Array\n*\n* @example\n* var bool = isUint16Array( new Uint16Array( 10 ) );\n* // returns true\n*\n* @example\n* var bool = isUint16Array( [] );\n* // returns false\n*/\nfunction isUint16Array( value ) {\n\treturn (\n\t\t( hasUint16Array && value instanceof Uint16Array ) || // eslint-disable-line stdlib/require-globals\n\t\tnativeClass( value ) === '[object Uint16Array]'\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isUint16Array;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Maximum unsigned 16-bit integer.\n*\n* @module @stdlib/constants/uint16/max\n* @type {integer32}\n*\n* @example\n* import UINT16_MAX from '@stdlib/constants/uint16/max';\n* // returns 65535\n*/\n\n\n// MAIN //\n\n/**\n* Maximum unsigned 16-bit integer.\n*\n* ## Notes\n*\n* The number has the value\n*\n* ```tex\n* 2^{16} - 1\n* ```\n*\n* which corresponds to the bit sequence\n*\n* ```binarystring\n* 1111111111111111\n* ```\n*\n* @constant\n* @type {integer32}\n* @default 65535\n*/\nvar UINT16_MAX = 65535|0; // asm type annotation\n\n\n// EXPORTS //\n\nexport default UINT16_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\nvar main = ( typeof Uint16Array === 'function' ) ? Uint16Array : null; // eslint-disable-line stdlib/require-globals\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// MAIN //\n\nvar ctor = ( typeof Uint16Array === 'function' ) ? Uint16Array : void 0; // eslint-disable-line stdlib/require-globals\n\n\n// EXPORTS //\n\nexport default ctor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Typed array constructor which returns a typed array representing an array of 16-bit unsigned integers in the platform byte order.\n*\n* @module @stdlib/array/uint16\n*\n* @example\n* import ctor from '@stdlib/array/uint16';\n*\n* var arr = new ctor( 10 );\n* // returns \n*/\n\n// MODULES //\n\nimport hasUint16ArraySupport from '@stdlib/assert/has-uint16array-support';\nimport builtin from './main.js';\nimport polyfill from './polyfill.js';\n\n\n// MAIN //\n\nvar ctor;\nif ( hasUint16ArraySupport() ) {\n\tctor = builtin;\n} else {\n\tctor = polyfill;\n}\n\n\n// EXPORTS //\n\nexport default ctor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isUint16Array from './../../is-uint16array';\nimport UINT16_MAX from '@stdlib/constants/uint16/max';\nimport GlobalUint16Array from './uint16array.js';\n\n\n// MAIN //\n\n/**\n* Tests for native `Uint16Array` support.\n*\n* @returns {boolean} boolean indicating if an environment has `Uint16Array` support\n*\n* @example\n* var bool = hasUint16ArraySupport();\n* // returns \n*/\nfunction hasUint16ArraySupport() {\n\tvar bool;\n\tvar arr;\n\n\tif ( typeof GlobalUint16Array !== 'function' ) {\n\t\treturn false;\n\t}\n\t// Test basic support...\n\ttry {\n\t\tarr = [ 1, 3.14, -3.14, UINT16_MAX+1, UINT16_MAX+2 ];\n\t\tarr = new GlobalUint16Array( arr );\n\t\tbool = (\n\t\t\tisUint16Array( arr ) &&\n\t\t\tarr[ 0 ] === 1 &&\n\t\t\tarr[ 1 ] === 3 && // truncation\n\t\t\tarr[ 2 ] === UINT16_MAX-2 && // truncation and wrap around\n\t\t\tarr[ 3 ] === 0 && // wrap around\n\t\t\tarr[ 4 ] === 1 // wrap around\n\t\t);\n\t} catch ( err ) { // eslint-disable-line no-unused-vars\n\t\tbool = false;\n\t}\n\treturn bool;\n}\n\n\n// EXPORTS //\n\nexport default hasUint16ArraySupport;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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: write polyfill\n\n// MAIN //\n\n/**\n* Typed array which represents an array of 16-bit unsigned integers in the platform byte order.\n*\n* @throws {Error} not implemented\n*/\nfunction polyfill() {\n\tthrow new Error( 'not implemented' );\n}\n\n\n// EXPORTS //\n\nexport default polyfill;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport ctors from './ctors.js';\n\n\n// VARIABLES //\n\nvar bool;\n\n\n// FUNCTIONS //\n\n/**\n* Returns a boolean indicating if an environment is little endian.\n*\n* @private\n* @returns {boolean} boolean indicating if an environment is little endian\n*\n* @example\n* var bool = isLittleEndian();\n* // returns \n*/\nfunction isLittleEndian() {\n\tvar uint16view;\n\tvar uint8view;\n\n\tuint16view = new ctors[ 'uint16' ]( 1 );\n\n\t/*\n\t* Set the uint16 view to a value having distinguishable lower and higher order words.\n\t*\n\t* 4660 => 0x1234 => 0x12 0x34 => '00010010 00110100' => (0x12,0x34) == (18,52)\n\t*/\n\tuint16view[ 0 ] = 0x1234;\n\n\t// Create a uint8 view on top of the uint16 buffer:\n\tuint8view = new ctors[ 'uint8' ]( uint16view.buffer );\n\n\t// If little endian, the least significant byte will be first...\n\treturn ( uint8view[ 0 ] === 0x34 );\n}\n\n\n// MAIN //\n\nbool = isLittleEndian();\n\n\n// EXPORTS //\n\nexport default bool;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport Uint8Array from '@stdlib/array/uint8';\nimport Uint16Array from '@stdlib/array/uint16';\n\n\n// MAIN //\n\nvar ctors = {\n\t'uint16': Uint16Array,\n\t'uint8': Uint8Array\n};\n\n\n// EXPORTS //\n\nexport default ctors;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isLittleEndian from '@stdlib/assert/is-little-endian';\n\n\n// MAIN //\n\nvar HIGH;\nif ( isLittleEndian === true ) {\n\tHIGH = 1; // second index\n} else {\n\tHIGH = 0; // first index\n}\n\n\n// EXPORTS //\n\nexport default HIGH;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport Uint32Array from '@stdlib/array/uint32';\nimport Float64Array from '@stdlib/array/float64';\nimport HIGH from './high.js';\n\n\n// VARIABLES //\n\nvar FLOAT64_VIEW = new Float64Array( 1 );\nvar UINT32_VIEW = new Uint32Array( FLOAT64_VIEW.buffer );\n\n\n// MAIN //\n\n/**\n* Returns an unsigned 32-bit integer corresponding to the more significant 32 bits of a double-precision floating-point number.\n*\n* ## Notes\n*\n* ```text\n* float64 (64 bits)\n* f := fraction (significand/mantissa) (52 bits)\n* e := exponent (11 bits)\n* s := sign bit (1 bit)\n*\n* |-------- -------- -------- -------- -------- -------- -------- --------|\n* | Float64 |\n* |-------- -------- -------- -------- -------- -------- -------- --------|\n* | Uint32 | Uint32 |\n* |-------- -------- -------- -------- -------- -------- -------- --------|\n* ```\n*\n* If little endian (more significant bits last):\n*\n* ```text\n* <-- lower higher -->\n* | f7 f6 f5 f4 f3 f2 e2 | f1 |s| e1 |\n* ```\n*\n* If big endian (more significant bits first):\n*\n* ```text\n* <-- higher lower -->\n* |s| e1 e2 | f1 f2 f3 f4 f5 f6 f7 |\n* ```\n*\n* In which Uint32 can we find the higher order bits? If little endian, the second; if big endian, the first.\n*\n* ## References\n*\n* - [Open Group][1]\n*\n* [1]: http://pubs.opengroup.org/onlinepubs/9629399/chap14.htm\n*\n* @param {number} x - input value\n* @returns {uinteger32} higher order word\n*\n* @example\n* var w = getHighWord( 3.14e201 ); // => 01101001110001001000001011000011\n* // returns 1774486211\n*/\nfunction getHighWord( x ) {\n\tFLOAT64_VIEW[ 0 ] = x;\n\treturn UINT32_VIEW[ HIGH ];\n}\n\n\n// EXPORTS //\n\nexport default getHighWord;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isLittleEndian from '@stdlib/assert/is-little-endian';\n\n\n// MAIN //\n\nvar HIGH;\nif ( isLittleEndian === true ) {\n\tHIGH = 1; // second index\n} else {\n\tHIGH = 0; // first index\n}\n\n\n// EXPORTS //\n\nexport default HIGH;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport Uint32Array from '@stdlib/array/uint32';\nimport Float64Array from '@stdlib/array/float64';\nimport HIGH from './high.js';\n\n\n// VARIABLES //\n\nvar FLOAT64_VIEW = new Float64Array( 1 );\nvar UINT32_VIEW = new Uint32Array( FLOAT64_VIEW.buffer );\n\n\n// MAIN //\n\n/**\n* Sets the more significant 32 bits of a double-precision floating-point number.\n*\n* ## Notes\n*\n* ```text\n* float64 (64 bits)\n* f := fraction (significand/mantissa) (52 bits)\n* e := exponent (11 bits)\n* s := sign bit (1 bit)\n*\n* |-------- -------- -------- -------- -------- -------- -------- --------|\n* | Float64 |\n* |-------- -------- -------- -------- -------- -------- -------- --------|\n* | Uint32 | Uint32 |\n* |-------- -------- -------- -------- -------- -------- -------- --------|\n* ```\n*\n* If little endian (more significant bits last):\n*\n* ```text\n* <-- lower higher -->\n* | f7 f6 f5 f4 f3 f2 e2 | f1 |s| e1 |\n* ```\n*\n* If big endian (more significant bits first):\n*\n* ```text\n* <-- higher lower -->\n* |s| e1 e2 | f1 f2 f3 f4 f5 f6 f7 |\n* ```\n*\n* In which Uint32 can we find the higher order bits? If little endian, the second; if big endian, the first.\n*\n* ## References\n*\n* - [Open Group][1]\n*\n* [1]: http://pubs.opengroup.org/onlinepubs/9629399/chap14.htm\n*\n* @param {number} x - double\n* @param {uinteger32} high - unsigned 32-bit integer to replace the higher order word of `x`\n* @returns {number} double having the same lower order word as `x`\n*\n* @example\n* var high = 5 >>> 0; // => 0 00000000000 00000000000000000101\n*\n* var y = setHighWord( 3.14e201, high ); // => 0 00000000000 0000000000000000010110010011110010110101100010000010\n* // returns 1.18350528745e-313\n*\n* @example\n* import PINF from '@stdlib/constants/float64/pinf'; // => 0 11111111111 00000000000000000000 00000000000000000000000000000000\n*\n* var high = 1072693248 >>> 0; // => 0 01111111111 00000000000000000000\n*\n* // Set the higher order bits of `+infinity` to return `1`:\n* var y = setHighWord( PINF, high ); // => 0 01111111111 0000000000000000000000000000000000000000000000000000\n* // returns 1.0\n*/\nfunction setHighWord( x, high ) {\n\tFLOAT64_VIEW[ 0 ] = x;\n\tUINT32_VIEW[ HIGH ] = ( high >>> 0 ); // identity bit shift to ensure integer\n\treturn FLOAT64_VIEW[ 0 ];\n}\n\n\n// EXPORTS //\n\nexport default setHighWord;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* The bias of a double-precision floating-point number's exponent.\n*\n* @module @stdlib/constants/float64/exponent-bias\n* @type {integer32}\n*\n* @example\n* import FLOAT64_EXPONENT_BIAS from '@stdlib/constants/float64/exponent-bias';\n* // returns 1023\n*/\n\n\n// MAIN //\n\n/**\n* Bias of a double-precision floating-point number's exponent.\n*\n* ## Notes\n*\n* The bias can be computed via\n*\n* ```tex\n* \\mathrm{bias} = 2^{k-1} - 1\n* ```\n*\n* where \\\\(k\\\\) is the number of bits in the exponent; here, \\\\(k = 11\\\\).\n*\n* @constant\n* @type {integer32}\n* @default 1023\n* @see [IEEE 754]{@link https://en.wikipedia.org/wiki/IEEE_754-1985}\n*/\nvar FLOAT64_EXPONENT_BIAS = 1023|0; // asm type annotation\n\n\n// EXPORTS //\n\nexport default FLOAT64_EXPONENT_BIAS;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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'use strict';\n\n/**\n* Natural logarithm of `2`.\n*\n* @module @stdlib/constants/float64/ln-two\n* @type {number}\n*\n* @example\n* import LN2 from '@stdlib/constants/float64/ln-two';\n* // returns 0.6931471805599453\n*/\n\n\n// MAIN //\n\n/**\n* Natural logarithm of `2`.\n*\n* ```tex\n* \\ln 2\n* ```\n*\n* @constant\n* @type {number}\n* @default 0.6931471805599453\n*/\nvar LN2 = 6.93147180559945309417232121458176568075500134360255254120680009493393621969694715605863326996418687542001481021e-01; // eslint-disable-line max-len\n\n\n// EXPORTS //\n\nexport default LN2;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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'use strict';\n\n/**\n* One half times the mathematical constant `π`.\n*\n* @module @stdlib/constants/float64/half-pi\n* @type {number}\n*\n* @example\n* import HALF_PI from '@stdlib/constants/float64/half-pi';\n* // returns 1.5707963267948966\n*/\n\n\n// MAIN //\n\n/**\n* One half times the mathematical constant `π`.\n*\n* @constant\n* @type {number}\n* @default 1.5707963267948966\n* @see [Wikipedia]{@link https://en.wikipedia.org/wiki/Pi}\n*/\nvar HALF_PI = 1.5707963267948966;\n\n\n// EXPORTS //\n\nexport default HALF_PI;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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'use strict';\n\n/**\n* One half times the mathematical constant `π`.\n*\n* @module @stdlib/constants/float32/half-pi\n* @type {number}\n*\n* @example\n* import FLOAT32_HALF_PI from '@stdlib/constants/float32/half-pi';\n* // returns 1.5707963705062866\n*/\n\n// MODULES //\n\nimport float64ToFloat32 from '@stdlib/number/float64/base/to-float32';\n\n\n// MAIN //\n\n/**\n* One half times the mathematical constant `π`.\n*\n* @constant\n* @type {number}\n* @default 1.5707963705062866\n* @see [Wikipedia]{@link https://en.wikipedia.org/wiki/Pi}\n*/\nvar FLOAT32_HALF_PI = float64ToFloat32( 1.5707963267948966 );\n\n\n// EXPORTS //\n\nexport default FLOAT32_HALF_PI;\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* One fourth times the mathematical constant `π`.\n*\n* @module @stdlib/constants/float32/fourth-pi\n* @type {number}\n*\n* @example\n* import FLOAT32_FOURTH_PI from '@stdlib/constants/float32/fourth-pi';\n* // returns 7.853981852531433e-1\n*/\n\n// MODULES //\n\nimport float64ToFloat32 from '@stdlib/number/float64/base/to-float32';\n\n\n// MAIN //\n\n/**\n* One fourth times the mathematical constant `π`.\n*\n* @constant\n* @type {number}\n* @default 7.853981852531433e-1\n* @see [Wikipedia]{@link https://en.wikipedia.org/wiki/Pi}\n*/\nvar FLOAT32_FOURTH_PI = float64ToFloat32( 7.85398163397448309616e-1 );\n\n\n// EXPORTS //\n\nexport default FLOAT32_FOURTH_PI;\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) 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* High word mask for the sign bit of a double-precision floating-point number.\n*\n* @module @stdlib/constants/float64/high-word-sign-mask\n* @type {uinteger32}\n*\n* @example\n* import FLOAT64_HIGH_WORD_SIGN_MASK from '@stdlib/constants/float64/high-word-sign-mask';\n* // returns 2147483648\n*/\n\n\n// MAIN //\n\n/**\n* High word mask for the sign bit of a double-precision floating-point number.\n*\n* ## Notes\n*\n* The high word mask for the sign bit of a double-precision floating-point number is an unsigned 32-bit integer with the value \\\\( 2147483648 \\\\), which corresponds to the bit sequence\n*\n* ```binarystring\n* 1 00000000000 00000000000000000000\n* ```\n*\n* @constant\n* @type {uinteger32}\n* @default 0x80000000\n* @see [IEEE 754]{@link https://en.wikipedia.org/wiki/IEEE_754-1985}\n*/\nvar FLOAT64_HIGH_WORD_SIGN_MASK = 0x80000000>>>0; // eslint-disable-line id-length\n\n\n// EXPORTS //\n\nexport default FLOAT64_HIGH_WORD_SIGN_MASK;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isLittleEndian from '@stdlib/assert/is-little-endian';\n\n\n// MAIN //\n\nvar indices;\nvar HIGH;\nvar LOW;\n\nif ( isLittleEndian === true ) {\n\tHIGH = 1; // second index\n\tLOW = 0; // first index\n} else {\n\tHIGH = 0; // first index\n\tLOW = 1; // second index\n}\nindices = {\n\t'HIGH': HIGH,\n\t'LOW': LOW\n};\n\n\n// EXPORTS //\n\nexport default indices;\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* High word mask for excluding the sign bit of a double-precision floating-point number.\n*\n* @module @stdlib/constants/float64/high-word-abs-mask\n* @type {uinteger32}\n*\n* @example\n* import FLOAT64_HIGH_WORD_ABS_MASK from '@stdlib/constants/float64/high-word-abs-mask';\n* // returns 2147483647\n*/\n\n\n// MAIN //\n\n/**\n* High word mask for excluding the sign bit of a double-precision floating-point number.\n*\n* ## Notes\n*\n* The high word mask for excluding the sign bit of a double-precision floating-point number is an unsigned 32-bit integer with the value \\\\( 2147483647 \\\\), which corresponds to the bit sequence\n*\n* ```binarystring\n* 0 11111111111 11111111111111111111\n* ```\n*\n* @constant\n* @type {uinteger32}\n* @default 0x7fffffff\n* @see [IEEE 754]{@link https://en.wikipedia.org/wiki/IEEE_754-1985}\n*/\nvar FLOAT64_HIGH_WORD_ABS_MASK = 0x7fffffff>>>0; // eslint-disable-line id-length\n\n\n// EXPORTS //\n\nexport default FLOAT64_HIGH_WORD_ABS_MASK;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isLittleEndian from '@stdlib/assert/is-little-endian';\n\n\n// MAIN //\n\nvar indices;\nvar HIGH;\nvar LOW;\n\nif ( isLittleEndian === true ) {\n\tHIGH = 1; // second index\n\tLOW = 0; // first index\n} else {\n\tHIGH = 0; // first index\n\tLOW = 1; // second index\n}\nindices = {\n\t'HIGH': HIGH,\n\t'LOW': LOW\n};\n\n\n// EXPORTS //\n\nexport default indices;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport Uint32Array from '@stdlib/array/uint32';\nimport Float64Array from '@stdlib/array/float64';\nimport indices from './indices.js';\n\n\n// VARIABLES //\n\nvar FLOAT64_VIEW = new Float64Array( 1 );\nvar UINT32_VIEW = new Uint32Array( FLOAT64_VIEW.buffer );\n\nvar HIGH = indices.HIGH;\nvar LOW = indices.LOW;\n\n\n// MAIN //\n\n/**\n* Splits a double-precision floating-point number into a higher order word (unsigned 32-bit integer) and a lower order word (unsigned 32-bit integer).\n*\n* ## Notes\n*\n* ```text\n* float64 (64 bits)\n* f := fraction (significand/mantissa) (52 bits)\n* e := exponent (11 bits)\n* s := sign bit (1 bit)\n*\n* |-------- -------- -------- -------- -------- -------- -------- --------|\n* | Float64 |\n* |-------- -------- -------- -------- -------- -------- -------- --------|\n* | Uint32 | Uint32 |\n* |-------- -------- -------- -------- -------- -------- -------- --------|\n* ```\n*\n* If little endian (more significant bits last):\n*\n* ```text\n* <-- lower higher -->\n* | f7 f6 f5 f4 f3 f2 e2 | f1 |s| e1 |\n* ```\n*\n* If big endian (more significant bits first):\n*\n* ```text\n* <-- higher lower -->\n* |s| e1 e2 | f1 f2 f3 f4 f5 f6 f7 |\n* ```\n*\n* In which Uint32 can we find the higher order bits? If little endian, the second; if big endian, the first.\n*\n* ## References\n*\n* - [Open Group][1]\n*\n* [1]: http://pubs.opengroup.org/onlinepubs/9629399/chap14.htm\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* import Uint32Array from '@stdlib/array/uint32';\n*\n* var out = new Uint32Array( 2 );\n*\n* var w = toWords( 3.14e201, out, 1, 0 );\n* // returns [ 1774486211, 2479577218 ]\n*\n* var bool = ( w === out );\n* // returns true\n*/\nfunction toWords( x, out, stride, offset ) {\n\tFLOAT64_VIEW[ 0 ] = x;\n\tout[ offset ] = UINT32_VIEW[ HIGH ];\n\tout[ offset + stride ] = UINT32_VIEW[ LOW ];\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default toWords;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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 higher order word (unsigned 32-bit integer) and a lower order word (unsigned 32-bit integer).\n*\n* @param {number} x - input value\n* @returns {Array} output array\n*\n* @example\n* var w = toWords( 3.14e201 );\n* // returns [ 1774486211, 2479577218 ]\n*/\nfunction toWords( x ) {\n\treturn fcn( x, [ 0>>>0, 0>>>0 ], 1, 0 );\n}\n\n\n// EXPORTS //\n\nexport default toWords;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 higher order word (unsigned 32-bit integer) and a lower order word (unsigned 32-bit integer).\n*\n* @module @stdlib/number/float64/base/to-words\n*\n* @example\n* import toWords from '@stdlib/number/float64/base/to-words';\n*\n* var w = toWords( 3.14e201 );\n* // returns [ 1774486211, 2479577218 ]\n*\n* @example\n* import Uint32Array from '@stdlib/array/uint32';\n* import toWords from '@stdlib/number/float64/base/to-words';\n*\n* var out = new Uint32Array( 2 );\n*\n* var w = toWords.assign( 3.14e201, out, 1, 0 );\n* // returns [ 1774486211, 2479577218 ]\n*\n* var bool = ( w === 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 Uint32Array from '@stdlib/array/uint32';\nimport Float64Array from '@stdlib/array/float64';\nimport indices from './indices.js';\n\n\n// VARIABLES //\n\nvar FLOAT64_VIEW = new Float64Array( 1 );\nvar UINT32_VIEW = new Uint32Array( FLOAT64_VIEW.buffer );\n\nvar HIGH = indices.HIGH;\nvar LOW = indices.LOW;\n\n\n// MAIN //\n\n/**\n* Creates a double-precision floating-point number from a higher order word (unsigned 32-bit integer) and a lower order word (unsigned 32-bit integer).\n*\n* ## Notes\n*\n* ```text\n* float64 (64 bits)\n* f := fraction (significand/mantissa) (52 bits)\n* e := exponent (11 bits)\n* s := sign bit (1 bit)\n*\n* |-------- -------- -------- -------- -------- -------- -------- --------|\n* | Float64 |\n* |-------- -------- -------- -------- -------- -------- -------- --------|\n* | Uint32 | Uint32 |\n* |-------- -------- -------- -------- -------- -------- -------- --------|\n* ```\n*\n* If little endian (more significant bits last):\n*\n* ```text\n* <-- lower higher -->\n* | f7 f6 f5 f4 f3 f2 e2 | f1 |s| e1 |\n* ```\n*\n* If big endian (more significant bits first):\n*\n* ```text\n* <-- higher lower -->\n* |s| e1 e2 | f1 f2 f3 f4 f5 f6 f7 |\n* ```\n*\n* In which Uint32 should we place the higher order bits? If little endian, the second; if big endian, the first.\n*\n* ## References\n*\n* - [Open Group][1]\n*\n* [1]: http://pubs.opengroup.org/onlinepubs/9629399/chap14.htm\n*\n* @param {uinteger32} high - higher order word (unsigned 32-bit integer)\n* @param {uinteger32} low - lower order word (unsigned 32-bit integer)\n* @returns {number} floating-point number\n*\n* @example\n* var v = fromWords( 1774486211, 2479577218 );\n* // returns 3.14e201\n*\n* @example\n* var v = fromWords( 3221823995, 1413754136 );\n* // returns -3.141592653589793\n*\n* @example\n* var v = fromWords( 0, 0 );\n* // returns 0.0\n*\n* @example\n* var v = fromWords( 2147483648, 0 );\n* // returns -0.0\n*\n* @example\n* var v = fromWords( 2146959360, 0 );\n* // returns NaN\n*\n* @example\n* var v = fromWords( 2146435072, 0 );\n* // returns Infinity\n*\n* @example\n* var v = fromWords( 4293918720, 0 );\n* // returns -Infinity\n*/\nfunction fromWords( high, low ) {\n\tUINT32_VIEW[ HIGH ] = high;\n\tUINT32_VIEW[ LOW ] = low;\n\treturn FLOAT64_VIEW[ 0 ];\n}\n\n\n// EXPORTS //\n\nexport default fromWords;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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'use strict';\n\n/**\n* The mathematical constant `π`.\n*\n* @module @stdlib/constants/float64/pi\n* @type {number}\n*\n* @example\n* import PI from '@stdlib/constants/float64/pi';\n* // returns 3.141592653589793\n*/\n\n\n// MAIN //\n\n/**\n* The mathematical constant `π`.\n*\n* @constant\n* @type {number}\n* @default 3.141592653589793\n* @see [Wikipedia]{@link https://en.wikipedia.org/wiki/Pi}\n*/\nvar PI = 3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679; // eslint-disable-line max-len\n\n\n// EXPORTS //\n\nexport default PI;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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 getHighWord from './../../../../float64/base/get-high-word';\n\n\n// MAIN //\n\n/**\n* Returns a boolean indicating if the sign bit is on (true) or off (false).\n*\n* @param {number} x - input value\n* @returns {boolean} boolean indicating if sign bit is on or off\n*\n* @example\n* var bool = signbit( 4.0 );\n* // returns false\n*\n* @example\n* var bool = signbit( -9.14e-307 );\n* // returns true\n*\n* @example\n* var bool = signbit( 0.0 );\n* // returns false\n*\n* @example\n* var bool = signbit( -0.0 );\n* // returns true\n*/\nfunction signbit( x ) {\n\t// Extract from the input value a higher order word (unsigned 32-bit integer) containing the exponent and sign:\n\tvar high = getHighWord( x );\n\n\t// Shift off all bits which are not the sign bit and check if the sign bit is on:\n\treturn ( high >>> 31 ) ? true : false; // eslint-disable-line no-unneeded-ternary\n}\n\n\n// EXPORTS //\n\nexport default signbit;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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/**\n* High word mask for the exponent of a double-precision floating-point number.\n*\n* @module @stdlib/constants/float64/high-word-exponent-mask\n* @type {uinteger32}\n*\n* @example\n* import FLOAT64_HIGH_WORD_EXPONENT_MASK from '@stdlib/constants/float64/high-word-exponent-mask';\n* // returns 2146435072\n*/\n\n\n// MAIN //\n\n/**\n* High word mask for the exponent of a double-precision floating-point number.\n*\n* ## Notes\n*\n* The high word mask for the exponent of a double-precision floating-point number is an unsigned 32-bit integer with the value \\\\( 2146435072 \\\\), which corresponds to the bit sequence\n*\n* ```binarystring\n* 0 11111111111 00000000000000000000\n* ```\n*\n* @constant\n* @type {uinteger32}\n* @default 0x7ff00000\n* @see [IEEE 754]{@link https://en.wikipedia.org/wiki/IEEE_754-1985}\n*/\nvar FLOAT64_HIGH_WORD_EXPONENT_MASK = 0x7ff00000;\n\n\n// EXPORTS //\n\nexport default FLOAT64_HIGH_WORD_EXPONENT_MASK;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* High word mask for the significand of a double-precision floating-point number.\n*\n* @module @stdlib/constants/float64/high-word-significand-mask\n* @type {uinteger32}\n*\n* @example\n* import FLOAT64_HIGH_WORD_SIGNIFICAND_MASK from '@stdlib/constants/float64/high-word-significand-mask';\n* // returns 1048575\n*/\n\n\n// MAIN //\n\n/**\n* High word mask for the significand of a double-precision floating-point number.\n*\n* ## Notes\n*\n* The high word mask for the significand of a double-precision floating-point number is an unsigned 32-bit integer with the value \\\\( 1048575 \\\\), which corresponds to the bit sequence\n*\n* ```binarystring\n* 0 00000000000 11111111111111111111\n* ```\n*\n* @constant\n* @type {uinteger32}\n* @default 0x000fffff\n* @see [IEEE 754]{@link https://en.wikipedia.org/wiki/IEEE_754-1985}\n*/\nvar FLOAT64_HIGH_WORD_SIGNIFICAND_MASK = 0x000fffff;\n\n\n// EXPORTS //\n\nexport default FLOAT64_HIGH_WORD_SIGNIFICAND_MASK;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isLittleEndian from '@stdlib/assert/is-little-endian';\n\n\n// MAIN //\n\nvar LOW;\nif ( isLittleEndian === true ) {\n\tLOW = 0; // first index\n} else {\n\tLOW = 1; // second index\n}\n\n\n// EXPORTS //\n\nexport default LOW;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport Uint32Array from '@stdlib/array/uint32';\nimport Float64Array from '@stdlib/array/float64';\nimport LOW from './low.js';\n\n\n// VARIABLES //\n\nvar FLOAT64_VIEW = new Float64Array( 1 );\nvar UINT32_VIEW = new Uint32Array( FLOAT64_VIEW.buffer );\n\n\n// MAIN //\n\n/**\n* Returns a 32-bit unsigned integer corresponding to the less significant 32 bits of a double-precision floating-point number.\n*\n* ## Notes\n*\n* ```text\n* float64 (64 bits)\n* f := fraction (significand/mantissa) (52 bits)\n* e := exponent (11 bits)\n* s := sign bit (1 bit)\n*\n* |-------- -------- -------- -------- -------- -------- -------- --------|\n* | Float64 |\n* |-------- -------- -------- -------- -------- -------- -------- --------|\n* | Uint32 | Uint32 |\n* |-------- -------- -------- -------- -------- -------- -------- --------|\n* ```\n*\n* If little endian (more significant bits last):\n*\n* ```text\n* <-- lower higher -->\n* | f7 f6 f5 f4 f3 f2 e2 | f1 |s| e1 |\n* ```\n*\n* If big endian (more significant bits first):\n*\n* ```text\n* <-- higher lower -->\n* |s| e1 e2 | f1 f2 f3 f4 f5 f6 f7 |\n* ```\n*\n* In which Uint32 can we find the lower order bits? If little endian, the first; if big endian, the second.\n*\n* ## References\n*\n* - [Open Group][1]\n*\n* [1]: http://pubs.opengroup.org/onlinepubs/9629399/chap14.htm\n*\n* @param {number} x - input value\n* @returns {uinteger32} lower order word\n*\n* @example\n* var w = getLowWord( 3.14e201 ); // => 10010011110010110101100010000010\n* // returns 2479577218\n*/\nfunction getLowWord( x ) {\n\tFLOAT64_VIEW[ 0 ] = x;\n\treturn UINT32_VIEW[ LOW ];\n}\n\n\n// EXPORTS //\n\nexport default getLowWord;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* The maximum biased base 2 exponent for a double-precision floating-point number.\n*\n* @module @stdlib/constants/float64/max-base2-exponent\n* @type {integer32}\n*\n* @example\n* import FLOAT64_MAX_BASE2_EXPONENT from '@stdlib/constants/float64/max-base2-exponent';\n* // returns 1023\n*/\n\n\n// MAIN //\n\n/**\n* The maximum biased base 2 exponent for a double-precision floating-point number.\n*\n* ```text\n* 11111111110 => 2046 - BIAS = 1023\n* ```\n*\n* where `BIAS = 1023`.\n*\n* @constant\n* @type {integer32}\n* @default 1023\n* @see [IEEE 754]{@link https://en.wikipedia.org/wiki/IEEE_754-1985}\n*/\nvar FLOAT64_MAX_BASE2_EXPONENT = 1023|0; // asm type annotation\n\n\n// EXPORTS //\n\nexport default FLOAT64_MAX_BASE2_EXPONENT;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* The maximum biased base 2 exponent for a subnormal double-precision floating-point number.\n*\n* @module @stdlib/constants/float64/max-base2-exponent-subnormal\n* @type {integer32}\n*\n* @example\n* import FLOAT64_MAX_BASE2_EXPONENT_SUBNORMAL from '@stdlib/constants/float64/max-base2-exponent-subnormal';\n* // returns -1023\n*/\n\n\n// MAIN //\n\n/**\n* The maximum biased base 2 exponent for a subnormal double-precision floating-point number.\n*\n* ```text\n* 00000000000 => 0 - BIAS = -1023\n* ```\n*\n* where `BIAS = 1023`.\n*\n* @constant\n* @type {integer32}\n* @default -1023\n* @see [IEEE 754]{@link https://en.wikipedia.org/wiki/IEEE_754-1985}\n*/\nvar FLOAT64_MAX_BASE2_EXPONENT_SUBNORMAL = -1023|0; // asm type annotation\n\n\n// EXPORTS //\n\nexport default FLOAT64_MAX_BASE2_EXPONENT_SUBNORMAL;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* The minimum biased base 2 exponent for a subnormal double-precision floating-point number.\n*\n* @module @stdlib/constants/float64/min-base2-exponent-subnormal\n* @type {integer32}\n*\n* @example\n* import FLOAT64_MIN_BASE2_EXPONENT_SUBNORMAL from '@stdlib/constants/float64/min-base2-exponent-subnormal';\n* // returns -1074\n*/\n\n\n// MAIN //\n\n/**\n* The minimum biased base 2 exponent for a subnormal double-precision floating-point number.\n*\n* ```text\n* -(BIAS+(52-1)) = -(1023+51) = -1074\n* ```\n*\n* where `BIAS = 1023` and `52` is the number of digits in the significand.\n*\n* @constant\n* @type {integer32}\n* @default -1074\n* @see [IEEE 754]{@link https://en.wikipedia.org/wiki/IEEE_754-1985}\n*/\nvar FLOAT64_MIN_BASE2_EXPONENT_SUBNORMAL = -1074|0; // asm type annotation\n\n\n// EXPORTS //\n\nexport default FLOAT64_MIN_BASE2_EXPONENT_SUBNORMAL;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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) 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 FLOAT64_SMALLEST_NORMAL from '@stdlib/constants/float64/smallest-normal';\nimport isInfinite from '@stdlib/math/base/assert/is-infinite';\nimport isnan from '@stdlib/math/base/assert/is-nan';\nimport abs from '@stdlib/math/base/special/abs';\n\n\n// VARIABLES //\n\n// (1<<52)\nvar SCALAR = 4503599627370496;\n\n\n// MAIN //\n\n/**\n* Returns a normal number `y` and exponent `exp` satisfying \\\\(x = y \\cdot 2^\\mathrm{exp}\\\\) and assigns results to a provided output array.\n*\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* import pow from '@stdlib/math/base/special/pow';\n*\n* var out = normalize( 3.14e-319, [ 0.0, 0 ], 1, 0 );\n* // returns [ 1.4141234400356668e-303, -52 ]\n*\n* var y = out[ 0 ];\n* var exp = out[ 1 ];\n*\n* var bool = ( y*pow(2.0,exp) === 3.14e-319 );\n* // returns true\n*\n* @example\n* var out = normalize( 0.0, [ 0.0, 0 ], 1, 0 );\n* // returns [ 0.0, 0 ];\n*\n* @example\n* import PINF from '@stdlib/constants/float64/pinf';\n*\n* var out = normalize( PINF, [ 0.0, 0 ], 1, 0 );\n* // returns [ Infinity, 0 ]\n*\n* @example\n* import NINF from '@stdlib/constants/float64/ninf';\n*\n* var out = normalize( NINF, [ 0.0, 0 ], 1, 0 );\n* // returns [ -Infinity, 0 ]\n*\n* @example\n* var out = normalize( NaN, [ 0.0, 0 ], 1, 0 );\n* // returns [ NaN, 0 ]\n*/\nfunction normalize( x, out, stride, offset ) {\n\tif ( isnan( x ) || isInfinite( x ) ) {\n\t\tout[ offset ] = x;\n\t\tout[ offset + stride ] = 0;\n\t\treturn out;\n\t}\n\tif ( x !== 0.0 && abs( x ) < FLOAT64_SMALLEST_NORMAL ) {\n\t\tout[ offset ] = x * SCALAR;\n\t\tout[ offset + stride ] = -52;\n\t\treturn out;\n\t}\n\tout[ offset ] = x;\n\tout[ offset + stride ] = 0;\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default normalize;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport getHighWord from './../../../../float64/base/get-high-word';\nimport EXP_MASK from '@stdlib/constants/float64/high-word-exponent-mask';\nimport BIAS from '@stdlib/constants/float64/exponent-bias';\n\n\n// MAIN //\n\n/**\n* Returns an integer corresponding to the unbiased exponent of a double-precision floating-point number.\n*\n* @param {number} x - input value\n* @returns {integer32} unbiased exponent\n*\n* @example\n* var exp = exponent( 3.14e-307 ); // => 2**-1019 ~ 1e-307\n* // returns -1019\n*\n* @example\n* var exp = exponent( -3.14 );\n* // returns 1\n*\n* @example\n* var exp = exponent( 0.0 );\n* // returns -1023\n*\n* @example\n* var exp = exponent( NaN );\n* // returns 1024\n*/\nfunction exponent( x ) {\n\t// Extract from the input value a higher order word (unsigned 32-bit integer) which contains the exponent:\n\tvar high = getHighWord( x );\n\n\t// Apply a mask to isolate only the exponent bits and then shift off all bits which are part of the fraction:\n\thigh = ( high & EXP_MASK ) >>> 20;\n\n\t// Remove the bias and return:\n\treturn (high - BIAS)|0; // asm type annotation\n}\n\n\n// EXPORTS //\n\nexport default exponent;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 a normal number `y` and exponent `exp` satisfying \\\\(x = y \\cdot 2^\\mathrm{exp}\\\\).\n*\n* @module @stdlib/number/float64/base/normalize\n*\n* @example\n* import normalize from '@stdlib/number/float64/base/normalize';\n* import pow from '@stdlib/math/base/special/pow';\n*\n* var out = normalize( 3.14e-319 );\n* // returns [ 1.4141234400356668e-303, -52 ]\n*\n* var y = out[ 0 ];\n* var exp = out[ 1 ];\n*\n* var bool = ( y*pow(2.0, exp) === 3.14e-319 );\n* // returns true\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import normalize from '@stdlib/number/float64/base/normalize';\n*\n* var out = new Float64Array( 2 );\n*\n* var v = normalize.assign( 3.14e-319, out, 1, 0 );\n* // returns [ 1.4141234400356668e-303, -52 ]\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// MODULES //\n\nimport fcn from './assign.js';\n\n\n// MAIN //\n\n/**\n* Returns a normal number `y` and exponent `exp` satisfying \\\\(x = y \\cdot 2^\\mathrm{exp}\\\\).\n*\n* @param {number} x - input value\n* @returns {NumberArray} output array\n*\n* @example\n* import pow from '@stdlib/math/base/special/pow';\n*\n* var out = normalize( 3.14e-319 );\n* // returns [ 1.4141234400356668e-303, -52 ]\n*\n* var y = out[ 0 ];\n* var exp = out[ 1 ];\n*\n* var bool = ( y*pow(2.0,exp) === 3.14e-319 );\n* // returns true\n*\n* @example\n* var out = normalize( 0.0 );\n* // returns [ 0.0, 0 ]\n*\n* @example\n* import PINF from '@stdlib/constants/float64/pinf';\n*\n* var out = normalize( PINF );\n* // returns [ Infinity, 0 ]\n*\n* @example\n* import NINF from '@stdlib/constants/float64/ninf';\n*\n* var out = normalize( NINF );\n* // returns [ -Infinity, 0 ]\n*\n* @example\n* var out = normalize( NaN );\n* // returns [ NaN, 0 ]\n*/\nfunction normalize( x ) {\n\treturn fcn( x, [ 0.0, 0 ], 1, 0 );\n}\n\n\n// EXPORTS //\n\nexport default normalize;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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) 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 filled from './../../../base/filled';\n\n\n// MAIN //\n\n/**\n* Returns a zero-filled \"generic\" array.\n*\n* @param {NonNegativeInteger} len - array length\n* @returns {Array} output array\n*\n* @example\n* var out = zeros( 3 );\n* // returns [ 0.0, 0.0, 0.0 ]\n*/\nfunction zeros( len ) {\n\treturn filled( 0.0, len );\n}\n\n\n// EXPORTS //\n\nexport default zeros;\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* Returns a filled \"generic\" array.\n*\n* @param {*} value - fill value\n* @param {NonNegativeInteger} len - array length\n* @returns {Array} filled array\n*\n* @example\n* var out = filled( 0.0, 3 );\n* // returns [ 0.0, 0.0, 0.0 ]\n*\n* @example\n* var out = filled( 'beep', 3 );\n* // returns [ 'beep', 'beep', 'beep' ]\n*/\nfunction filled( value, len ) {\n\tvar arr;\n\tvar i;\n\n\t// Manually push elements in order to ensure \"fast\" elements...\n\tarr = [];\n\tfor ( i = 0; i < len; i++ ) {\n\t\tarr.push( value );\n\t}\n\treturn arr;\n}\n\n\n// EXPORTS //\n\nexport default filled;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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'use strict';\n\n/**\n* Square root of the mathematical constant `π`.\n*\n* @module @stdlib/constants/float64/sqrt-pi\n* @type {number}\n*\n* @example\n* import SQRT_PI from '@stdlib/constants/float64/sqrt-pi';\n* // returns 1.7724538509055160\n*/\n\n\n// MAIN //\n\n/**\n* Square root of the mathematical constant `π`.\n*\n* @constant\n* @type {number}\n* @default 1.7724538509055160\n* @see [OEIS]{@link https://oeis.org/A002161}\n* @see [Wikipedia]{@link https://en.wikipedia.org/wiki/Pi}\n*/\nvar SQRT_PI = 1.772453850905516027298167483341145182797549456122387128213;\n\n\n// EXPORTS //\n\nexport default SQRT_PI;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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'use strict';\n\n// MODULES //\n\nimport isLittleEndian from '@stdlib/assert/is-little-endian';\n\n\n// MAIN //\n\nvar LOW;\nif ( isLittleEndian === true ) {\n\tLOW = 0; // first index\n} else {\n\tLOW = 1; // second index\n}\n\n\n// EXPORTS //\n\nexport default LOW;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport Uint32Array from '@stdlib/array/uint32';\nimport Float64Array from '@stdlib/array/float64';\nimport LOW from './low.js';\n\n\n// VARIABLES //\n\nvar FLOAT64_VIEW = new Float64Array( 1 );\nvar UINT32_VIEW = new Uint32Array( FLOAT64_VIEW.buffer );\n\n\n// MAIN //\n\n/**\n* Sets the less significant 32 bits of a double-precision floating-point number.\n*\n* ## Notes\n*\n* ```text\n* float64 (64 bits)\n* f := fraction (significand/mantissa) (52 bits)\n* e := exponent (11 bits)\n* s := sign bit (1 bit)\n*\n* |-------- -------- -------- -------- -------- -------- -------- --------|\n* | Float64 |\n* |-------- -------- -------- -------- -------- -------- -------- --------|\n* | Uint32 | Uint32 |\n* |-------- -------- -------- -------- -------- -------- -------- --------|\n* ```\n*\n* If little endian (more significant bits last):\n*\n* ```text\n* <-- lower higher -->\n* | f7 f6 f5 f4 f3 f2 e2 | f1 |s| e1 |\n* ```\n*\n* If big endian (more significant bits first):\n*\n* ```text\n* <-- higher lower -->\n* |s| e1 e2 | f1 f2 f3 f4 f5 f6 f7 |\n* ```\n*\n* In which Uint32 can we find the lower order bits? If little endian, the first; if big endian, the second.\n*\n* ## References\n*\n* - [Open Group][1]\n*\n* [1]: http://pubs.opengroup.org/onlinepubs/9629399/chap14.htm\n*\n* @param {number} x - double\n* @param {uinteger32} low - unsigned 32-bit integer to replace the lower order word of `x`\n* @returns {number} double having the same higher order word as `x`\n*\n* @example\n* var low = 5 >>> 0; // => 00000000000000000000000000000101\n*\n* var x = 3.14e201; // => 0 11010011100 01001000001011000011 10010011110010110101100010000010\n*\n* var y = setLowWord( x, low ); // => 0 11010011100 01001000001011000011 00000000000000000000000000000101\n* // returns 3.139998651394392e+201\n*\n* @example\n* import PINF from '@stdlib/constants/float64/pinf';\n* import NINF from '@stdlib/constants/float64/ninf';\n*\n* var low = 12345678;\n*\n* var y = setLowWord( PINF, low );\n* // returns NaN\n*\n* y = setLowWord( NINF, low );\n* // returns NaN\n*\n* y = setLowWord( NaN, low );\n* // returns NaN\n*/\nfunction setLowWord( x, low ) {\n\tFLOAT64_VIEW[ 0 ] = x;\n\tUINT32_VIEW[ LOW ] = ( low >>> 0 ); // identity bit shift to ensure integer\n\treturn FLOAT64_VIEW[ 0 ];\n}\n\n\n// EXPORTS //\n\nexport default setLowWord;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Converts an unsigned 32-bit integer to a signed 32-bit integer.\n*\n* @param {uinteger32} x - unsigned 32-bit integer\n* @returns {integer32} signed 32-bit integer\n*\n* @example\n* import float64ToUint32 from '@stdlib/number/float64/base/to-uint32';\n* var y = uint32ToInt32( float64ToUint32( 4294967295 ) );\n* // returns -1\n*\n* @example\n* import float64ToUint32 from '@stdlib/number/float64/base/to-uint32';\n* var y = uint32ToInt32( float64ToUint32( 3 ) );\n* // returns 3\n*/\nfunction uint32ToInt32( x ) {\n\t// NOTE: we could also use typed-arrays to achieve the same end.\n\treturn x|0; // asm type annotation\n}\n\n\n// EXPORTS //\n\nexport default uint32ToInt32;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Euler's number.\n*\n* @module @stdlib/constants/float64/e\n* @type {number}\n*\n* @example\n* import E from '@stdlib/constants/float64/e';\n* // returns 2.718281828459045\n*/\n\n\n// MAIN //\n\n/**\n* Euler's number.\n*\n* @constant\n* @type {number}\n* @default 2.718281828459045\n* @see [OEIS]{@link https://oeis.org/A001113}\n* @see [Wikipedia]{@link https://en.wikipedia.org/wiki/E_(mathematical_constant)}\n*/\nvar E = 2.718281828459045235360287471352662497757247093699959574966;\n\n\n// EXPORTS //\n\nexport default E;\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'use strict';\n\n/**\n* One half times the natural logarithm of 2.\n*\n* @module @stdlib/constants/float64/half-ln-two\n* @type {number}\n*\n* @example\n* import HALF_LN2 from '@stdlib/constants/float64/half-ln-two';\n* // returns 3.46573590279972654709e-01\n*/\n\n// MAIN //\n\n/**\n* One half times the natural logarithm of 2.\n*\n* ```tex\n* \\frac{\\ln 2}{2}\n* ```\n*\n* @constant\n* @type {number}\n* @default 3.46573590279972654709e-01\n*/\nvar HALF_LN2 = 3.46573590279972654709e-01; // 0x3FD62E42 0xFEFA39EF\n\n\n// EXPORTS //\n\nexport default HALF_LN2;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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'use strict';\n\n/**\n* Square root of the mathematical constant `π` times `2`.\n*\n* @module @stdlib/constants/float64/sqrt-two-pi\n* @type {number}\n*\n* @example\n* import SQRT_TWO_PI from '@stdlib/constants/float64/sqrt-two-pi';\n* // returns 2.5066282746310007\n*/\n\n\n// MAIN //\n\n/**\n* Square root of the mathematical constant `π` times `2`.\n*\n* @constant\n* @type {number}\n* @default 2.5066282746310007\n* @see [Wikipedia]{@link https://en.wikipedia.org/wiki/Pi}\n*/\nvar SQRT_TWO_PI = 2.506628274631000502415765284811045253e+00;\n\n\n// EXPORTS //\n\nexport default SQRT_TWO_PI;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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'use strict';\n\n/**\n* The Euler-Mascheroni constant.\n*\n* @module @stdlib/constants/float64/eulergamma\n* @type {number}\n*\n* @example\n* import GAMMA from '@stdlib/constants/float64/eulergamma';\n* // returns 0.5772156649015329\n*/\n\n\n// MAIN //\n\n/**\n* The Euler-Mascheroni constant.\n*\n* @constant\n* @type {number}\n* @default 0.5772156649015329\n* @see [OEIS]{@link http://oeis.org/A001620}\n* @see [Mathworld]{@link http://mathworld.wolfram.com/Euler-MascheroniConstant.html}\n*/\nvar GAMMA = 0.577215664901532860606512090082402431042;\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, 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) 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* Maximum safe nth factorial when stored in double-precision floating-point format.\n*\n* @module @stdlib/constants/float64/max-safe-nth-factorial\n* @type {integer}\n*\n* @example\n* import FLOAT64_MAX_SAFE_NTH_FACTORIAL from '@stdlib/constants/float64/max-safe-nth-factorial';\n* // returns 170\n*/\n\n\n// MAIN //\n\n/**\n* The maximum safe nth factorial when stored in double-precision floating-point format.\n*\n* @constant\n* @type {integer}\n* @default 170\n* @see [factorial]{@link https://en.wikipedia.org/wiki/Factorial}\n* @see [IEEE 754]{@link https://en.wikipedia.org/wiki/IEEE_754-1985}\n*/\nvar FLOAT64_MAX_SAFE_NTH_FACTORIAL = 170|0; // asm type annotation\n\n\n// EXPORTS //\n\nexport default FLOAT64_MAX_SAFE_NTH_FACTORIAL;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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'use strict';\n\n/**\n* Arbitrary constant `g` to be used in Lanczos approximation functions.\n*\n* @module @stdlib/constants/float64/gamma-lanczos-g\n* @type {number}\n*\n* @example\n* import FLOAT64_GAMMA_LANCZOS_G from '@stdlib/constants/float64/gamma-lanczos-g';\n* // returns 10.900511\n*/\n\n\n// MAIN //\n\n/**\n* Arbitrary constant `g` to be used in Lanczos approximation functions.\n*\n* @constant\n* @type {number}\n* @default 10.900511\n* @see [Lanczos Approximation]{@link https://en.wikipedia.org/wiki/Lanczos_approximation}\n*/\nvar FLOAT64_GAMMA_LANCZOS_G = 10.90051099999999983936049829935654997826;\n\n\n// EXPORTS //\n\nexport default FLOAT64_GAMMA_LANCZOS_G;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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'use strict';\n\n/**\n* Square root of double-precision floating-point epsilon.\n*\n* @module @stdlib/constants/float64/sqrt-eps\n* @type {number}\n*\n* @example\n* import FLOAT64_SQRT_EPSILON from '@stdlib/constants/float64/sqrt-eps';\n* // returns 0.14901161193847656e-7\n*/\n\n\n// MAIN //\n\n/**\n* Square root of double-precision floating-point epsilon.\n*\n* ```tex\n* \\sqrt{\\frac{1}{2^{52}}}\n* ```\n*\n* @constant\n* @type {number}\n* @default 0.14901161193847656e-7\n* @see [IEEE 754]{@link https://en.wikipedia.org/wiki/IEEE_754-1985}\n* @see [Machine Epsilon]{@link https://en.wikipedia.org/wiki/Machine_epsilon}\n*/\nvar FLOAT64_SQRT_EPSILON = 0.1490116119384765625e-7;\n\n\n// EXPORTS //\n\nexport default FLOAT64_SQRT_EPSILON;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Natural logarithm of the maximum double-precision floating-point number.\n*\n* @module @stdlib/constants/float64/max-ln\n* @type {number}\n*\n* @example\n* import FLOAT64_MAX_LN from '@stdlib/constants/float64/max-ln';\n* // returns 709.782712893384\n*/\n\n\n// MAIN //\n\n/**\n* Natural logarithm of the maximum double-precision floating-point number.\n*\n* ## Notes\n*\n* The natural logarithm of the maximum is given by\n*\n* ```tex\n* \\ln \\left( 2^{1023} (2 - 2^{-52}) \\right)\n* ```\n*\n* @constant\n* @type {number}\n* @default 709.782712893384\n* @see [IEEE 754]{@link https://en.wikipedia.org/wiki/IEEE_754-1985}\n*/\nvar FLOAT64_MAX_LN = 709.782712893384;\n\n\n// EXPORTS //\n\nexport default FLOAT64_MAX_LN;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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'use strict';\n\n/**\n* Natural logarithm of the smallest normalized double-precision floating-point number.\n*\n* @module @stdlib/constants/float64/min-ln\n* @type {number}\n*\n* @example\n* import FLOAT64_MIN_LN from '@stdlib/constants/float64/min-ln';\n* // returns -708.3964185322641\n*/\n\n\n// MAIN //\n\n/**\n* Natural logarithm of the smallest normalized double-precision floating-point number.\n*\n* ## Notes\n*\n* The number has the value\n*\n* ```tex\n* -\\ln \\left( 2^{1023-1} \\right)\n* ```\n*\n* @constant\n* @type {number}\n* @default -708.3964185322641\n* @see [IEEE 754]{@link https://en.wikipedia.org/wiki/IEEE_754-1985}\n*/\nvar FLOAT64_MIN_LN = -708.3964185322641;\n\n\n// EXPORTS //\n\nexport default FLOAT64_MIN_LN;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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) 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// MAIN //\n\n/**\n* Returns a Function object.\n*\n* @name Function\n* @constructor\n* @type {Function}\n* @param {...*} [argNames] - parameters names\n* @param {string} body - function body\n* @returns {Function} function\n*\n* @example\n* var add = new Fcn( 'x', 'y', 'return x + y' );\n*\n* var v = add( 1, 2 );\n* // returns 3\n*/\nvar Fcn = Function; // eslint-disable-line stdlib/require-globals\n\n\n// EXPORTS //\n\nexport default Fcn;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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/**\n* Alias for `eval` global.\n*\n* @module @stdlib/utils/eval\n*\n* @example\n* import evil from '@stdlib/utils/eval';\n*\n* var v = evil( '5*4*3*2*1' );\n* // returns 120\n*/\n\n// MODULES //\n\nvar evil = eval; // eslint-disable-line no-eval\n\n\n// EXPORTS //\n\nexport default evil;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport evil from '@stdlib/utils/eval';\n\n\n// MAIN //\n\n/**\n* Tests for native `function*()` support.\n*\n* @returns {boolean} boolean indicating if an environment has native `function*()` support\n*\n* @example\n* var bool = hasGeneratorSupport();\n* // returns \n*/\nfunction hasGeneratorSupport() {\n\tvar bool;\n\ttry {\n\t\tevil( '\"use strict\"; (function* () {})' );\n\t\tbool = true;\n\t} catch ( err ) { // eslint-disable-line no-unused-vars\n\t\tbool = false;\n\t}\n\treturn bool;\n}\n\n\n// EXPORTS //\n\nexport default hasGeneratorSupport;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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'use strict';\n\n/**\n* The mathematical constant `π` times `2`.\n*\n* @module @stdlib/constants/float64/two-pi\n* @type {number}\n*\n* @example\n* import TWO_PI from '@stdlib/constants/float64/two-pi';\n* // returns 6.283185307179586\n*/\n\n\n// MAIN //\n\n/**\n* The mathematical constant `π` times `2`.\n*\n* @constant\n* @type {number}\n* @default 6.283185307179586\n* @see [Wikipedia]{@link https://en.wikipedia.org/wiki/Pi}\n*/\nvar TWO_PI = 6.28318530717958647692528676655900576839433879875021164194988918461563281257241799725606965068423413596429617303; // eslint-disable-line max-len\n\n\n// EXPORTS //\n\nexport default TWO_PI;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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/**\n* Smallest positive single-precision floating-point normal number.\n*\n* @module @stdlib/constants/float32/smallest-normal\n* @type {number}\n*\n* @example\n* import FLOAT32_SMALLEST_NORMAL from '@stdlib/constants/float32/smallest-normal';\n* // returns 1.1754943508222875e-38\n*/\n\n\n// MAIN //\n\n/**\n* The smallest positive single-precision floating-point normal number.\n*\n* ## Notes\n*\n* The number has the value\n*\n* ```tex\n* \\frac{1}{2^{127-1}}\n* ```\n*\n* which corresponds to the bit sequence\n*\n* ```binarystring\n* 0 00000001 00000000000000000000000\n* ```\n*\n* @constant\n* @type {number}\n* @default 1.1754943508222875e-38\n* @see [IEEE 754]{@link https://en.wikipedia.org/wiki/IEEE_754-1985}\n*/\nvar FLOAT32_SMALLEST_NORMAL = 1.1754943508222875e-38;\n\n\n// EXPORTS //\n\nexport default FLOAT32_SMALLEST_NORMAL;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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'use strict';\n\n/**\n* Square root of `2`.\n*\n* @module @stdlib/constants/float64/sqrt-two\n* @type {number}\n*\n* @example\n* import SQRT2 from '@stdlib/constants/float64/sqrt-two';\n* // returns 1.4142135623730951\n*/\n\n\n// MAIN //\n\n/**\n* Square root of `2`.\n*\n* ```tex\n* \\sqrt{2}\n* ```\n*\n* @constant\n* @type {number}\n* @default 1.4142135623730951\n*/\nvar SQRT2 = 1.41421356237309504880168872420969807856967187537694807317667973799073247846210703885038753432764157273501384623e+00; // eslint-disable-line max-len\n\n\n// EXPORTS //\n\nexport default SQRT2;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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/**\n* Maximum single-precision floating-point number.\n*\n* @module @stdlib/constants/float32/max\n* @type {number}\n*\n* @example\n* import FLOAT32_MAX from '@stdlib/constants/float32/max';\n* // returns 3.4028234663852886e+38\n*/\n\n\n// MAIN //\n\n/**\n* Maximum single-precision floating-point number.\n*\n* ## Notes\n*\n* The maximum is given by\n*\n* ```tex\n* 2^{127} (2 - 2^{-23})\n* ```\n*\n* @constant\n* @type {number}\n* @default 3.4028234663852886e+38\n* @see [IEEE 754]{@link https://en.wikipedia.org/wiki/IEEE_754-1985}\n*/\nvar FLOAT32_MAX = 3.4028234663852886e+38;\n\n\n// EXPORTS //\n\nexport default FLOAT32_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\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/**\n* Natural logarithm of the square root of `2π`.\n*\n* @module @stdlib/constants/float64/ln-sqrt-two-pi\n* @type {number}\n*\n* @example\n* import LN_SQRT_TWO_PI from '@stdlib/constants/float64/ln-sqrt-two-pi';\n* // returns 0.9189385332046728\n*/\n\n\n// MAIN //\n\n/**\n* Natural logarithm of the square root of `2π`.\n*\n* ```tex\n* \\ln \\sqrt{2\\pi}\n* ```\n*\n* @constant\n* @type {number}\n* @default 0.9189385332046728\n*/\nvar LN_SQRT_TWO_PI = 9.18938533204672741780329736405617639861397473637783412817151540482765695927260397694743298635954197622005646625e-01; // eslint-disable-line max-len\n\n\n// EXPORTS //\n\nexport default LN_SQRT_TWO_PI;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Smallest positive double-precision floating-point subnormal number.\n*\n* @module @stdlib/constants/float64/smallest-subnormal\n* @type {number}\n*\n* @example\n* import FLOAT64_SMALLEST_SUBNORMAL from '@stdlib/constants/float64/smallest-subnormal';\n* // returns 4.940656458412465e-324\n*/\n\n\n// MAIN //\n\n/**\n* The smallest positive double-precision floating-point subnormal number.\n*\n* ## Notes\n*\n* The number has the value\n*\n* ```tex\n* \\frac{1}{2^{1023-1} 2^{52}}\n* ```\n*\n* which corresponds to the bit sequence\n*\n* ```binarystring\n* 0 00000000000 00000000000000000000 00000000000000000000000000000001\n* ```\n*\n* @constant\n* @type {number}\n* @default 4.940656458412465e-324\n* @see [IEEE 754]{@link https://en.wikipedia.org/wiki/IEEE_754-1985}\n*/\nvar FLOAT64_SMALLEST_SUBNORMAL = 4.940656458412465e-324;\n\n\n// EXPORTS //\n\nexport default FLOAT64_SMALLEST_SUBNORMAL;\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/**\n* Golden ratio.\n*\n* @module @stdlib/constants/float64/phi\n* @type {number}\n*\n* @example\n* import PHI from '@stdlib/constants/float64/phi';\n* // returns 1.618033988749895\n*/\n\n\n// MAIN //\n\n/**\n* Golden ratio.\n*\n* @constant\n* @type {number}\n* @default 1.618033988749895\n* @see [OEIS]{@link http://oeis.org/A001622}\n* @see [Wikipedia]{@link https://en.wikipedia.org/wiki/Golden_ratio}\n*/\nvar PHI = 1.61803398874989484820458683436563811772030917980576286213544862;\n\n\n// EXPORTS //\n\nexport default PHI;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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/**\n* The maximum base 10 exponent for a double-precision floating-point number.\n*\n* @module @stdlib/constants/float64/max-base10-exponent\n* @type {integer32}\n*\n* @example\n* import FLOAT64_MAX_BASE10_EXPONENT from '@stdlib/constants/float64/max-base10-exponent';\n* // returns 308\n*/\n\n\n// MAIN //\n\n/**\n* The maximum base 10 exponent for a double-precision floating-point number.\n*\n* @constant\n* @type {integer32}\n* @default 308\n* @see [IEEE 754]{@link https://en.wikipedia.org/wiki/IEEE_754-1985}\n*/\nvar FLOAT64_MAX_BASE10_EXPONENT = 308|0; // asm type annotation\n\n\n// EXPORTS //\n\nexport default FLOAT64_MAX_BASE10_EXPONENT;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* The minimum base 10 exponent for a normal double-precision floating-point number.\n*\n* @module @stdlib/constants/float64/min-base10-exponent\n* @type {integer32}\n*\n* @example\n* import FLOAT64_MIN_BASE10_EXPONENT from '@stdlib/constants/float64/min-base10-exponent';\n* // returns -308\n*/\n\n\n// MAIN //\n\n/**\n* The minimum base 10 exponent for a normal double-precision floating-point number.\n*\n* ```text\n* 2^-1022 = 2.2250738585072014e-308 => -308\n* ```\n*\n* @constant\n* @type {integer32}\n* @default -308\n* @see [IEEE 754]{@link https://en.wikipedia.org/wiki/IEEE_754-1985}\n*/\nvar FLOAT64_MIN_BASE10_EXPONENT = -308|0; // asm type annotation\n\n\n// EXPORTS //\n\nexport default FLOAT64_MIN_BASE10_EXPONENT;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* The minimum base 10 exponent for a subnormal double-precision floating-point number.\n*\n* @module @stdlib/constants/float64/min-base10-exponent-subnormal\n* @type {integer32}\n*\n* @example\n* import FLOAT64_MIN_BASE10_EXPONENT_SUBNORMAL from '@stdlib/constants/float64/min-base10-exponent-subnormal';\n* // returns -324\n*/\n\n\n// MAIN //\n\n/**\n* The minimum base 10 exponent for a subnormal double-precision floating-point number.\n*\n* @constant\n* @type {integer32}\n* @default -324\n* @see [IEEE 754]{@link https://en.wikipedia.org/wiki/IEEE_754-1985}\n*/\nvar FLOAT64_MIN_BASE10_EXPONENT_SUBNORMAL = -324|0; // asm type annotation\n\n\n// EXPORTS //\n\nexport default FLOAT64_MIN_BASE10_EXPONENT_SUBNORMAL;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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) 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* Mask for the sign bit of a single-precision floating-point number.\n*\n* @module @stdlib/constants/float32/sign-mask\n* @type {uinteger32}\n*\n* @example\n* import FLOAT32_SIGN_MASK from '@stdlib/constants/float32/sign-mask';\n* // returns 2147483648\n*/\n\n\n// MAIN //\n\n/**\n* Mask for the sign bit of a single-precision floating-point number.\n*\n* ## Notes\n*\n* The mask for the sign bit of a single-precision floating-point number is an unsigned 32-bit integer with the value \\\\( 2147483648 \\\\), which corresponds to the bit sequence\n*\n* ```binarystring\n* 1 00000000 00000000000000000000000\n* ```\n*\n* @constant\n* @type {uinteger32}\n* @default 0x80000000\n* @see [IEEE 754]{@link https://en.wikipedia.org/wiki/IEEE_754-1985}\n*/\nvar FLOAT32_SIGN_MASK = 0x80000000>>>0;\n\n\n// EXPORTS //\n\nexport default FLOAT32_SIGN_MASK;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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'use strict';\n\n// MODULES //\n\nimport { isPrimitive as isNumber } from './../../is-number';\nimport isinf from '@stdlib/math/base/assert/is-infinite';\n\n\n// MAIN //\n\n/**\n* Tests if a value is a number primitive having an infinite value.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a number primitive having an infinite value\n*\n* @example\n* var bool = isInfinite( -1.0/0.0 );\n* // returns true\n*\n* @example\n* var bool = isInfinite( new Number( -1.0/0.0 ) );\n* // returns false\n*/\nfunction isInfinite( value ) {\n\treturn (\n\t\tisNumber( value ) &&\n\t\tisinf( value )\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isInfinite;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { isObject as isNumber } from './../../is-number';\nimport isinf from '@stdlib/math/base/assert/is-infinite';\n\n\n// MAIN //\n\n/**\n* Tests if a value is a number object having an infinite value.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a number object having an infinite value\n*\n* @example\n* var bool = isInfinite( 1.0/0.0 );\n* // returns false\n*\n* @example\n* var bool = isInfinite( new Number( 1.0/0.0 ) );\n* // returns true\n*/\nfunction isInfinite( value ) {\n\treturn (\n\t\tisNumber( value ) &&\n\t\tisinf( value.valueOf() )\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isInfinite;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isPrimitive from './primitive.js';\nimport isObject from './object.js';\n\n\n// MAIN //\n\n/**\n* Tests if a value is an infinite number.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether a value is an infinite number\n*\n* @example\n* var bool = isInfinite( 1.0/0.0 );\n* // returns true\n*\n* @example\n* var bool = isInfinite( new Number( 1.0/0.0 ) );\n* // returns true\n*\n* @example\n* var bool = isInfinite( 5.0 );\n* // returns false\n*\n* @example\n* var bool = isInfinite( null );\n* // returns false\n*/\nfunction isInfinite( value ) {\n\treturn ( isPrimitive( value ) || isObject( value ) );\n}\n\n\n// EXPORTS //\n\nexport default isInfinite;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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'use strict';\n\n/**\n* Test if a value is an infinite number.\n*\n* @module @stdlib/assert/is-infinite\n*\n* @example\n* import isInfinite from '@stdlib/assert/is-infinite';\n*\n* var bool = isInfinite( 1.0/0.0 );\n* // returns true\n*\n* bool = isInfinite( new Number( 1.0/0.0 ) );\n* // returns true\n*\n* bool = isInfinite( 5.0 );\n* // returns false\n*\n* bool = isInfinite( null );\n* // returns false\n*\n* @example\n* import { isPrimitive as isInfinite } from '@stdlib/assert/is-infinite';\n*\n* var bool = isInfinite( -1.0/0.0 );\n* // returns true\n*\n* bool = isInfinite( new Number( -1.0/0.0 ) );\n* // returns false\n*\n* @example\n* import { isObject as isInfinite } from '@stdlib/assert/is-infinite';\n*\n* var bool = isInfinite( 1.0/0.0 );\n* // returns false\n*\n* bool = isInfinite( new Number( 1.0/0.0 ) );\n* // returns true\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport isPrimitive from './primitive.js';\nimport isObject from './object.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'isPrimitive', isPrimitive );\nsetReadOnly( main, 'isObject', isObject );\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 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 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\tif ( x !== x ) {\n\t\treturn NaN;\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'use strict';\n\n/**\n* The minimum biased base 2 exponent for a normal double-precision floating-point number.\n*\n* @module @stdlib/constants/float64/min-base2-exponent\n* @type {integer32}\n*\n* @example\n* import FLOAT64_MIN_BASE2_EXPONENT from '@stdlib/constants/float64/min-base2-exponent';\n* // returns -1022\n*/\n\n\n// MAIN //\n\n/**\n* The minimum biased base 2 exponent for a normal double-precision floating-point number.\n*\n* ```text\n* 1 - BIAS = -1022\n* ```\n*\n* where `BIAS = 1023`.\n*\n* @constant\n* @type {integer32}\n* @default -1022\n* @see [IEEE 754]{@link https://en.wikipedia.org/wiki/IEEE_754-1985}\n*/\nvar FLOAT64_MIN_BASE2_EXPONENT = -1022|0; // asm type annotation\n\n\n// EXPORTS //\n\nexport default FLOAT64_MIN_BASE2_EXPONENT;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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';\n\n\n// VARIABLES //\n\nvar MAX_FACTORIAL = 170; // TODO: consider packaging as constant\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 > MAX_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, MAX_FACTORIAL-2 );\n\t\t\tt2 = fallingFactorial( x-MAX_FACTORIAL+1.0, n-MAX_FACTORIAL+1 );\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/**\n* Maximum safe nth Fibonacci number when stored in double-precision floating-point format.\n*\n* @module @stdlib/constants/float64/max-safe-nth-fibonacci\n* @type {integer}\n*\n* @example\n* import FLOAT64_MAX_SAFE_NTH_FIBONACCI from '@stdlib/constants/float64/max-safe-nth-fibonacci';\n* // returns 78\n*/\n\n\n// MAIN //\n\n/**\n* The maximum safe nth Fibonacci number when stored in double-precision floating-point format.\n*\n* @constant\n* @type {integer}\n* @default 78\n* @see [Fibonacci number]{@link https://en.wikipedia.org/wiki/Fibonacci_number}\n* @see [IEEE 754]{@link https://en.wikipedia.org/wiki/IEEE_754-1985}\n*/\nvar FLOAT64_MAX_SAFE_NTH_FIBONACCI = 78|0; // asm type annotation\n\n\n// EXPORTS //\n\nexport default FLOAT64_MAX_SAFE_NTH_FIBONACCI;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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/* eslint-disable id-length */\n\n'use strict';\n\n/**\n* Maximum safe nth Lucas number when stored in double-precision floating-point format.\n*\n* @module @stdlib/constants/float64/max-safe-nth-lucas\n* @type {integer}\n*\n* @example\n* import FLOAT64_MAX_SAFE_NTH_LUCAS from '@stdlib/constants/float64/max-safe-nth-lucas';\n* // returns 76\n*/\n\n\n// MAIN //\n\n/**\n* The maximum safe nth Lucas number when stored in double-precision floating-point format.\n*\n* @constant\n* @type {integer}\n* @default 76\n* @see [Lucas number]{@link https://en.wikipedia.org/wiki/Lucas_number}\n* @see [IEEE 754]{@link https://en.wikipedia.org/wiki/IEEE_754-1985}\n*/\nvar FLOAT64_MAX_SAFE_NTH_LUCAS = 76|0; // asm type annotation\n\n\n// EXPORTS //\n\nexport default FLOAT64_MAX_SAFE_NTH_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 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'use strict';\n\n/**\n* Square of the mathematical constant `π`.\n*\n* @module @stdlib/constants/float64/pi-squared\n* @type {number}\n*\n* @example\n* import PI_SQUARED from '@stdlib/constants/float64/pi-squared';\n* // returns 9.869604401089358\n*/\n\n\n// MAIN //\n\n/**\n* Square of the mathematical constant `π`.\n*\n* @constant\n* @type {number}\n* @default 9.869604401089358\n* @see [Wikipedia]{@link https://en.wikipedia.org/wiki/Pi}\n*/\nvar PI_SQUARED = 9.86960440108935861883449099987615113531369940724079062641334937622004482241920524300177340371855223182402591377; // eslint-disable-line max-len\n\n\n// EXPORTS //\n\nexport default PI_SQUARED;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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'use strict';\n\n/**\n* Natural logarithm of the mathematical constant `π`.\n*\n* @module @stdlib/constants/float64/ln-pi\n* @type {number}\n*\n* @example\n* import LN_PI from '@stdlib/constants/float64/ln-pi';\n* // returns 1.1447298858494002\n*/\n\n\n// MAIN //\n\n/**\n* Natural logarithm of the mathematical constant `π`.\n*\n* @constant\n* @type {number}\n* @default 1.1447298858494002\n* @see [Wikipedia]{@link https://en.wikipedia.org/wiki/Pi}\n*/\nvar LN_PI = 1.1447298858494002;\n\n\n// EXPORTS //\n\nexport default LN_PI;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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) 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* Mask for excluding the sign bit of a single-precision floating-point number.\n*\n* @module @stdlib/constants/float32/abs-mask\n* @type {uinteger32}\n*\n* @example\n* import FLOAT32_ABS_MASK from '@stdlib/constants/float32/abs-mask';\n* // returns 2147483647\n*/\n\n\n// MAIN //\n\n/**\n* Mask for excluding the sign bit of a single-precision floating-point number.\n*\n* ## Notes\n*\n* The high word mask for excluding the sign bit of a single-precision floating-point number is an unsigned 32-bit integer with the value \\\\( 2147483647 \\\\), which corresponds to the bit sequence\n*\n* ```binarystring\n* 0 11111111 11111111111111111111111\n* ```\n*\n* @constant\n* @type {uinteger32}\n* @default 0x7fffffff\n* @see [IEEE 754]{@link https://en.wikipedia.org/wiki/IEEE_754-1985}\n*/\nvar FLOAT32_ABS_MASK = 0x7fffffff>>>0;\n\n\n// EXPORTS //\n\nexport default FLOAT32_ABS_MASK;\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/**\n* Creates a function which always returns the same value.\n*\n* @param {*} [value] - value to always return\n* @returns {Function} constant function\n*\n* @example\n* var fcn = wrap( 3.14 );\n*\n* var v = fcn();\n* // returns 3.14\n*\n* v = fcn();\n* // returns 3.14\n*\n* v = fcn();\n* // returns 3.14\n*/\nfunction wrap( value ) {\n\treturn constantFunction;\n\n\t/**\n\t* Constant function.\n\t*\n\t* @private\n\t* @returns {*} constant value\n\t*/\n\tfunction constantFunction() {\n\t\treturn value;\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 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\nvar RE = /./;\n\n\n// EXPORTS //\n\nexport default RE;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 value is a boolean primitive.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a boolean primitive\n*\n* @example\n* var bool = isBoolean( true );\n* // returns true\n*\n* @example\n* var bool = isBoolean( false );\n* // returns true\n*\n* @example\n* import Boolean from '@stdlib/boolean/ctor';\n*\n* var bool = isBoolean( new Boolean( true ) );\n* // returns false\n*/\nfunction isBoolean( value ) {\n\treturn ( typeof value === 'boolean' );\n}\n\n\n// EXPORTS //\n\nexport default isBoolean;\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// MAIN //\n\n/**\n* Returns a boolean.\n*\n* @name Boolean\n* @constructor\n* @type {Function}\n* @param {*} value - input value\n* @returns {(boolean|Boolean)} boolean\n*\n* @example\n* var b = Boolean( null );\n* // returns false\n*\n* b = Boolean( [] );\n* // returns true\n*\n* b = Boolean( {} );\n* // returns true\n*\n* @example\n* var b = new Boolean( false );\n* // returns \n*/\nvar Bool = Boolean; // eslint-disable-line stdlib/require-globals\n\n\n// EXPORTS //\n\nexport default Bool;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// eslint-disable-next-line stdlib/no-redeclare\nvar toString = Boolean.prototype.toString; // non-generic\n\n\n// EXPORTS //\n\nexport default toString;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport hasToStringTag from './../../has-tostringtag-support';\nimport nativeClass from '@stdlib/utils/native-class';\nimport Boolean from '@stdlib/boolean/ctor';\nimport test from './try2serialize.js';\n\n\n// VARIABLES //\n\nvar FLG = hasToStringTag();\n\n\n// MAIN //\n\n/**\n* Tests if a value is a boolean object.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a boolean object\n*\n* @example\n* var bool = isBoolean( true );\n* // returns false\n*\n* @example\n* import Boolean from '@stdlib/boolean/ctor';\n*\n* var bool = isBoolean( new Boolean( false ) );\n* // returns true\n*/\nfunction isBoolean( value ) {\n\tif ( typeof value === 'object' ) {\n\t\tif ( value instanceof Boolean ) {\n\t\t\treturn true;\n\t\t}\n\t\tif ( FLG ) {\n\t\t\treturn test( value );\n\t\t}\n\t\treturn ( nativeClass( value ) === '[object Boolean]' );\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default isBoolean;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport toString from './tostring.js'; // eslint-disable-line stdlib/no-redeclare\n\n\n// MAIN //\n\n/**\n* Attempts to serialize a value to a string.\n*\n* @private\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value can be serialized\n*/\nfunction test( value ) {\n\ttry {\n\t\ttoString.call( value );\n\t\treturn true;\n\t} catch ( err ) { // eslint-disable-line no-unused-vars\n\t\treturn false;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default test;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isPrimitive from './primitive.js';\nimport isObject from './object.js';\n\n\n// MAIN //\n\n/**\n* Tests if a value is a boolean.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether value is a boolean\n*\n* @example\n* var bool = isBoolean( false );\n* // returns true\n*\n* @example\n* var bool = isBoolean( true );\n* // returns true\n*\n* @example\n* import Boolean from '@stdlib/boolean/ctor';\n*\n* var bool = isBoolean( new Boolean( false ) );\n* // returns true\n*\n* @example\n* import Boolean from '@stdlib/boolean/ctor';\n*\n* var bool = isBoolean( new Boolean( true ) );\n* // returns true\n*/\nfunction isBoolean( value ) {\n\treturn ( isPrimitive( value ) || isObject( value ) );\n}\n\n\n// EXPORTS //\n\nexport default isBoolean;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Test if a value is a boolean.\n*\n* @module @stdlib/assert/is-boolean\n*\n* @example\n* import Boolean from '@stdlib/boolean/ctor';\n* import isBoolean from '@stdlib/assert/is-boolean';\n*\n* var bool = isBoolean( false );\n* // returns true\n*\n* bool = isBoolean( new Boolean( false ) );\n* // returns true\n*\n* @example\n* import Boolean from '@stdlib/boolean/ctor';\n* import { isPrimitive as isBoolean } from '@stdlib/assert/is-boolean';\n*\n* var bool = isBoolean( false );\n* // returns true\n*\n* bool = isBoolean( new Boolean( true ) );\n* // returns false\n*\n* @example\n* import Boolean from '@stdlib/boolean/ctor';\n* import { isObject as isBoolean } from '@stdlib/assert/is-boolean';\n*\n* var bool = isBoolean( true );\n* // returns false\n*\n* bool = isBoolean( new Boolean( false ) );\n* // returns true\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport isPrimitive from './primitive.js';\nimport isObject from './object.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'isPrimitive', isPrimitive );\nsetReadOnly( main, 'isObject', isObject );\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// MAIN //\n\nvar obj = ( typeof self === 'object' ) ? self : null;\n\n\n// EXPORTS //\n\nexport default obj;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 obj = ( typeof window === 'object' ) ? window : null;\n\n\n// EXPORTS //\n\nexport default obj;\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// MAIN //\n\nvar obj = ( typeof globalThis === 'object' ) ? globalThis : null; // eslint-disable-line no-undef\n\n\n// EXPORTS //\n\nexport default obj;\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 { isPrimitive as isBoolean } from '@stdlib/assert/is-boolean';\nimport format from '@stdlib/string/format';\nimport getThis from './codegen.js';\nimport Self from './self.js';\nimport Win from './window.js';\nimport GlobalThis from './global_this.js';\n\n\n// MAIN //\n\n/**\n* Returns the global object.\n*\n* ## Notes\n*\n* - Using code generation is the **most** reliable way to resolve the global object; however, doing so is likely to violate content security policies (CSPs) in, e.g., Chrome Apps and elsewhere.\n*\n* @private\n* @param {boolean} [codegen=false] - boolean indicating whether to use code generation to resolve the global object\n* @throws {TypeError} must provide a boolean\n* @throws {Error} unable to resolve global object\n* @returns {Object} global object\n*\n* @example\n* var g = getGlobal();\n* // returns {...}\n*/\nfunction getGlobal( codegen ) {\n\tif ( arguments.length ) {\n\t\tif ( !isBoolean( codegen ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Must provide a boolean. Value: `%s`.', codegen ) );\n\t\t}\n\t\tif ( codegen ) {\n\t\t\treturn getThis();\n\t\t}\n\t\t// Fall through...\n\t}\n\t// Case: 2020 revision of ECMAScript standard\n\tif ( GlobalThis ) {\n\t\treturn GlobalThis;\n\t}\n\t// Case: browsers and web workers\n\tif ( Self ) {\n\t\treturn Self;\n\t}\n\t// Case: browsers\n\tif ( Win ) {\n\t\treturn Win;\n\t}\n\t// Case: unknown\n\tthrow new Error( 'unexpected error. Unable to resolve global object.' );\n}\n\n\n// EXPORTS //\n\nexport default getGlobal;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 global object using code generation.\n*\n* @private\n* @returns {Object} global object\n*/\nfunction getGlobal() {\n\treturn new Function( 'return this;' )(); // eslint-disable-line no-new-func, stdlib/require-globals\n}\n\n\n// EXPORTS //\n\nexport default getGlobal;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport getGlobal from './../../../global';\n\n\n// MAIN //\n\nvar root = getGlobal();\nvar nodeList = root.document && root.document.childNodes;\n\n\n// EXPORTS //\n\nexport default nodeList;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\nvar typedarray = Int8Array; // eslint-disable-line stdlib/require-globals\n\n\n// EXPORTS //\n\nexport default typedarray;\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* Returns a regular expression to capture everything that is not a space immediately after the `function` keyword and before the first left parenthesis.\n*\n* @returns {RegExp} regular expression\n*\n* @example\n* var RE_FUNCTION_NAME = reFunctionName();\n*\n* function fname( fcn ) {\n* return RE_FUNCTION_NAME.exec( fcn.toString() )[ 1 ];\n* }\n*\n* var fn = fname( Math.sqrt );\n* // returns 'sqrt'\n*\n* fn = fname( Int8Array );\n* // returns 'Int8Array'\n*\n* fn = fname( Object.prototype.toString );\n* // returns 'toString'\n*\n* fn = fname( function(){} );\n* // returns ''\n*/\nfunction reFunctionName() {\n\treturn /^\\s*function\\s*([^(]*)/i;\n}\n\n\n// EXPORTS //\n\nexport default reFunctionName;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport reFunctionName from './main.js';\n\n\n// MAIN //\n\n/**\n* Captures everything that is not a space immediately after the `function` keyword and before the first left parenthesis.\n*\n* Regular expression: `/^\\s*function\\s*([^(]*)/i`\n*\n* - `/^\\s*`\n* - Match zero or more spaces at beginning\n*\n* - `function`\n* - Match the word `function`\n*\n* - `\\s*`\n* - Match zero or more spaces after the word `function`\n*\n* - `()`\n* - Capture\n*\n* - `[^(]*`\n* - Match anything except a left parenthesis `(` zero or more times\n*\n* - `/i`\n* - ignore case\n*\n* @constant\n* @type {RegExp}\n* @default /^\\s*function\\s*([^(]*)/i\n*/\nvar RE_FUNCTION_NAME = reFunctionName();\n\n\n// EXPORTS //\n\nexport default RE_FUNCTION_NAME;\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* Regular expression to capture everything that is not a space immediately after the `function` keyword and before the first left parenthesis.\n*\n* @module @stdlib/regexp/function-name\n*\n* @example\n* import reFunctionName from '@stdlib/regexp/function-name';\n* var RE_FUNCTION_NAME = reFunctionName();\n*\n* function fname( fcn ) {\n* return RE_FUNCTION_NAME.exec( fcn.toString() )[ 1 ];\n* }\n*\n* var fn = fname( Math.sqrt );\n* // returns 'sqrt'\n*\n* fn = fname( Int8Array );\n* // returns 'Int8Array'\n*\n* fn = fname( Object.prototype.toString );\n* // returns 'toString'\n*\n* fn = fname( function(){} );\n* // returns ''\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport REGEXP from './regexp.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'REGEXP', REGEXP );\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 nativeClass from '@stdlib/utils/native-class';\n\n\n// VARIABLES //\n\nvar f;\n\n\n// FUNCTIONS //\n\n/**\n* Tests if a value is an array.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether value is an array\n*\n* @example\n* var bool = isArray( [] );\n* // returns true\n*\n* @example\n* var bool = isArray( {} );\n* // returns false\n*/\nfunction isArray( value ) {\n\treturn ( nativeClass( value ) === '[object Array]' );\n}\n\n\n// MAIN //\n\nif ( Array.isArray ) {\n\tf = Array.isArray;\n} else {\n\tf = isArray;\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 isArray from './../../../is-array';\nimport format from '@stdlib/string/format';\n\n\n// MAIN //\n\n/**\n* Returns a function which tests if every element in an array passes a test condition.\n*\n* @param {Function} predicate - function to apply\n* @throws {TypeError} must provide a function\n* @returns {Function} an array function\n*\n* @example\n* import isOdd from '@stdlib/assert/is-odd';\n*\n* var arr1 = [ 1, 3, 5, 7 ];\n* var arr2 = [ 3, 5, 8 ];\n*\n* var validate = arrayfcn( isOdd );\n*\n* var bool = validate( arr1 );\n* // returns true\n*\n* bool = validate( arr2 );\n* // returns false\n*/\nfunction arrayfcn( predicate ) {\n\tif ( typeof predicate !== 'function' ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide a function. Value: `%s`.', predicate ) );\n\t}\n\treturn every;\n\n\t/**\n\t* Tests if every element in an array passes a test condition.\n\t*\n\t* @private\n\t* @param {*} value - value to test\n\t* @returns {boolean} boolean indicating whether a value is an array for which all elements pass a test condition\n\t*/\n\tfunction every( value ) {\n\t\tvar len;\n\t\tvar i;\n\t\tif ( !isArray( value ) ) {\n\t\t\treturn false;\n\t\t}\n\t\tlen = value.length;\n\t\tif ( len === 0 ) {\n\t\t\treturn false;\n\t\t}\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tif ( predicate( value[ i ] ) === false ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t\treturn true;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default arrayfcn;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 value is object-like.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether a value is object-like\n*\n* @example\n* var bool = isObjectLike( {} );\n* // returns true\n*\n* @example\n* var bool = isObjectLike( [] );\n* // returns true\n*\n* @example\n* var bool = isObjectLike( null );\n* // returns false\n*/\nfunction isObjectLike( value ) {\n\treturn (\n\t\tvalue !== null &&\n\t\ttypeof value === 'object'\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isObjectLike;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isObjectLike from './../../is-object-like';\n\n\n// MAIN //\n\n/**\n* Tests if a value is a Buffer instance.\n*\n* @param {*} value - value to validate\n* @returns {boolean} boolean indicating if a value is a Buffer instance\n*\n* @example\n* var v = isBuffer( new Buffer( 'beep' ) );\n* // returns true\n*\n* @example\n* var v = isBuffer( new Buffer( [1,2,3,4] ) );\n* // returns true\n*\n* @example\n* var v = isBuffer( {} );\n* // returns false\n*\n* @example\n* var v = isBuffer( [] );\n* // returns false\n*/\nfunction isBuffer( value ) {\n\treturn (\n\t\tisObjectLike( value ) &&\n\t\t(\n\t\t\t// eslint-disable-next-line no-underscore-dangle\n\t\t\tvalue._isBuffer || // for envs missing Object.prototype.constructor (e.g., Safari 5-7)\n\t\t\t(\n\t\t\t\tvalue.constructor &&\n\n\t\t\t\t// WARNING: `typeof` is not a foolproof check, as certain envs consider RegExp and NodeList instances to be functions\n\t\t\t\ttypeof value.constructor.isBuffer === 'function' &&\n\t\t\t\tvalue.constructor.isBuffer( value )\n\t\t\t)\n\t\t)\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isBuffer;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport nativeClass from './../../native-class';\nimport { REGEXP as RE } from '@stdlib/regexp/function-name';\nimport isBuffer from '@stdlib/assert/is-buffer';\n\n\n// MAIN //\n\n/**\n* Determines the name of a value's constructor.\n*\n* @param {*} v - input value\n* @returns {string} name of a value's constructor\n*\n* @example\n* var v = constructorName( 'a' );\n* // returns 'String'\n*\n* @example\n* var v = constructorName( 5 );\n* // returns 'Number'\n*\n* @example\n* var v = constructorName( null );\n* // returns 'Null'\n*\n* @example\n* var v = constructorName( undefined );\n* // returns 'Undefined'\n*\n* @example\n* var v = constructorName( function noop() {} );\n* // returns 'Function'\n*/\nfunction constructorName( v ) {\n\tvar match;\n\tvar name;\n\tvar ctor;\n\tname = nativeClass( v ).slice( 8, -1 );\n\tif ( (name === 'Object' || name === 'Error') && v.constructor ) {\n\t\tctor = v.constructor;\n\t\tif ( typeof ctor.name === 'string' ) {\n\t\t\treturn ctor.name;\n\t\t}\n\t\tmatch = RE.exec( ctor.toString() );\n\t\tif ( match ) {\n\t\t\treturn match[ 1 ];\n\t\t}\n\t}\n\tif ( isBuffer( v ) ) {\n\t\treturn 'Buffer';\n\t}\n\treturn name;\n}\n\n\n// EXPORTS //\n\nexport default constructorName;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Test if a value is object-like.\n*\n* @module @stdlib/assert/is-object-like\n*\n* @example\n* import isObjectLike from '@stdlib/assert/is-object-like';\n*\n* var bool = isObjectLike( {} );\n* // returns true\n*\n* bool = isObjectLike( [] );\n* // returns true\n*\n* bool = isObjectLike( null );\n* // returns false\n*\n* @example\n* import { isObjectLikeArray as isObjectLike } from '@stdlib/assert/is-object-like';\n*\n* var bool = isObjectLike( [ {}, [] ] );\n* // returns true\n*\n* bool = isObjectLike( [ {}, '3.0' ] );\n* // returns false\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport arrayfun from './../../tools/array-function';\nimport main from './main.js';\n\n\n// VARIABLES //\n\nvar isObjectLikeArray = arrayfun( main );\n\n\n// MAIN //\n\nsetReadOnly( main, 'isObjectLikeArray', isObjectLikeArray );\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* Determine a value's type.\n*\n* @module @stdlib/utils/type-of\n*\n* @example\n* import typeOf from '@stdlib/utils/type-of';\n*\n* var str = typeOf( 'a' );\n* // returns 'string'\n*\n* str = typeOf( 5 );\n* // returns 'number'\n*/\n\n// MODULES //\n\nimport usePolyfill from './check.js';\nimport builtin from './main.js';\nimport polyfill from './polyfill.js';\n\n\n// MAIN //\n\nvar main = ( usePolyfill() ) ? polyfill : builtin;\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 RE from './fixtures/re.js';\nimport nodeList from './fixtures/nodelist.js';\nimport typedarray from './fixtures/typedarray.js';\n\n\n// MAIN //\n\n/**\n* Checks whether a polyfill is needed when using the `typeof` operator.\n*\n* @private\n* @returns {boolean} boolean indicating whether a polyfill is needed\n*/\nfunction check() {\n\tif (\n\t\t// Chrome 1-12 returns 'function' for regular expression instances (see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/typeof):\n\t\ttypeof RE === 'function' ||\n\n\t\t// Safari 8 returns 'object' for typed array and weak map constructors (underscore #1929):\n\t\ttypeof typedarray === 'object' ||\n\n\t\t// PhantomJS 1.9 returns 'function' for `NodeList` instances (underscore #2236):\n\t\ttypeof nodeList === 'function'\n\t) {\n\t\treturn true;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default check;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport ctorName from './../../constructor-name';\n\n\n// MAIN //\n\n/**\n* Determines a value's type.\n*\n* @param {*} v - input value\n* @returns {string} string indicating the value's type\n*/\nfunction typeOf( v ) {\n\treturn ctorName( v ).toLowerCase();\n}\n\n\n// EXPORTS //\n\nexport default typeOf;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport ctorName from './../../constructor-name';\n\n\n// NOTES //\n\n/*\n* Built-in `typeof` operator behavior:\n*\n* ```text\n* typeof null => 'object'\n* typeof undefined => 'undefined'\n* typeof 'a' => 'string'\n* typeof 5 => 'number'\n* typeof NaN => 'number'\n* typeof true => 'boolean'\n* typeof false => 'boolean'\n* typeof {} => 'object'\n* typeof [] => 'object'\n* typeof function foo(){} => 'function'\n* typeof function* foo(){} => 'object'\n* typeof Symbol() => 'symbol'\n* ```\n*\n*/\n\n\n// MAIN //\n\n/**\n* Determines a value's type.\n*\n* @param {*} v - input value\n* @returns {string} string indicating the value's type\n*/\nfunction typeOf( v ) {\n\tvar type;\n\n\t// Address `typeof null` => `object` (see http://wiki.ecmascript.org/doku.php?id=harmony:typeof_null):\n\tif ( v === null ) {\n\t\treturn 'null';\n\t}\n\ttype = typeof v;\n\n\t// If the `typeof` operator returned something other than `object`, we are done. Otherwise, we need to check for an internal class name or search for a constructor.\n\tif ( type === 'object' ) {\n\t\treturn ctorName( v ).toLowerCase();\n\t}\n\treturn type;\n}\n\n\n// EXPORTS //\n\nexport default typeOf;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport typeOf from '@stdlib/utils/type-of';\n\n\n// MAIN //\n\n/**\n* Tests if a value is a function.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether value is a function\n*\n* @example\n* function beep() {\n* return 'beep';\n* }\n*\n* var bool = isFunction( beep );\n* // returns true\n*/\nfunction isFunction( value ) {\n\t// Note: cannot use `typeof` directly, as various browser engines incorrectly return `'function'` when operating on non-function objects, such as regular expressions and NodeLists.\n\treturn ( typeOf( value ) === 'function' );\n}\n\n\n// EXPORTS //\n\nexport default isFunction;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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 './../../is-function';\n\n\n// MAIN //\n\n/**\n* Tests if a value is iterator-like.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether value is iterator-like\n*\n* @example\n* var it = {\n* 'next': function noop() {}\n* };\n* var bool = isIteratorLike( it );\n* // returns true\n*\n* @example\n* var bool = isIteratorLike( {} );\n* // returns false\n*\n* @example\n* var bool = isIteratorLike( null );\n* // returns false\n*/\nfunction isIteratorLike( value ) {\n\tvar t = typeof value;\n\treturn (\n\t\tvalue !== null &&\n\t\t( t === 'object' || t === 'function' ) &&\n\t\tisFunction( value.next )\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isIteratorLike;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport hasOwnProp from './../../has-own-property';\nimport Symbol from '@stdlib/symbol/ctor';\n\n\n// MAIN //\n\n/**\n* Tests for native `Symbol.iterator` support.\n*\n* @returns {boolean} boolean indicating if an environment has `Symbol.iterator` support\n*\n* @example\n* var bool = hasIteratorSymbolSupport();\n* // returns \n*/\nfunction hasIteratorSymbolSupport() {\n\treturn (\n\t\ttypeof Symbol === 'function' &&\n\t\ttypeof Symbol( 'foo' ) === 'symbol' &&\n\t\thasOwnProp( Symbol, 'iterator' ) &&\n\t\ttypeof Symbol.iterator === 'symbol'\n\t);\n}\n\n\n// EXPORTS //\n\nexport default hasIteratorSymbolSupport;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport hasIteratorSymbolSupport from '@stdlib/assert/has-iterator-symbol-support';\n\n\n// MAIN //\n\n/**\n* Iterator symbol.\n*\n* @name IteratorSymbol\n* @constant\n* @type {(symbol|null)}\n*\n* @example\n* function iterator() {\n* var it;\n* var i;\n*\n* i = -1;\n*\n* it = {};\n* it.next = next;\n* it.return = done;\n*\n* if ( IteratorSymbol ) {\n* it[ IteratorSymbol ] = iterator;\n* }\n* return it;\n*\n* function next() {\n* i += 1;\n* return {\n* 'value': i,\n* 'done': false\n* };\n* }\n*\n* function done( value ) {\n* if ( arguments.length === 0 ) {\n* return {\n* 'done': true\n* };\n* }\n* return {\n* 'value': value,\n* 'done': true\n* };\n* }\n* }\n*\n* var obj = iterator();\n*/\nvar IteratorSymbol = ( hasIteratorSymbolSupport() ) ? Symbol.iterator : null;\n\n\n// EXPORTS //\n\nexport default IteratorSymbol;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isArray from './../../is-array';\n\n\n// MAIN //\n\n/**\n* Tests if a value is an object; e.g., `{}`.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether value is an object\n*\n* @example\n* var bool = isObject( {} );\n* // returns true\n*\n* @example\n* var bool = isObject( null );\n* // returns false\n*/\nfunction isObject( value ) {\n\treturn (\n\t\ttypeof value === 'object' &&\n\t\tvalue !== null &&\n\t\t!isArray( value )\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isObject;\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// MAIN //\n\n/**\n* Returns an object.\n*\n* @name Object\n* @constructor\n* @type {Function}\n* @param {*} value - input value\n* @returns {Object} object\n*\n* @example\n* var o = new Object( null );\n* // returns {}\n*\n* @example\n* var o = new Object( 5.0 );\n* // returns \n*\n* @example\n* var o = new Object( 'beep' );\n* // returns \n*\n* @example\n* var o1 = {};\n*\n* var o2 = new Object( o1 );\n* // returns {}\n*\n* var bool = ( o1 === o2 );\n* // returns true\n*/\nvar Obj = Object; // eslint-disable-line stdlib/require-globals\n\n\n// EXPORTS //\n\nexport default Obj;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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 builtin from './native.js';\nimport polyfill from './polyfill.js';\n\n\n// MAIN //\n\nvar getProto;\nif ( isFunction( Object.getPrototypeOf ) ) {\n\tgetProto = builtin;\n} else {\n\tgetProto = polyfill;\n}\n\n\n// EXPORTS //\n\nexport default getProto;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 getProto = Object.getPrototypeOf;\n\n\n// EXPORTS //\n\nexport default getProto;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport nativeClass from './../../native-class';\nimport getProto from './proto.js';\n\n\n// MAIN //\n\n/**\n* Returns the prototype of a provided object.\n*\n* @private\n* @param {Object} obj - input object\n* @returns {(Object|null)} prototype\n*/\nfunction getPrototypeOf( obj ) {\n\tvar proto = getProto( obj );\n\tif ( proto || proto === null ) {\n\t\treturn proto;\n\t}\n\tif ( nativeClass( obj.constructor ) === '[object Function]' ) {\n\t\t// May break if the constructor has been tampered with...\n\t\treturn obj.constructor.prototype;\n\t}\n\tif ( obj instanceof Object ) {\n\t\treturn Object.prototype;\n\t}\n\t// Return `null` for objects created via `Object.create( null )`. Also return `null` for cross-realm objects on browsers that lack `__proto__` support, such as IE < 11.\n\treturn null;\n}\n\n\n// EXPORTS //\n\nexport default getPrototypeOf;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 value of the `__proto__` property.\n*\n* @private\n* @param {Object} obj - input object\n* @returns {*} value of `__proto__` property\n*/\nfunction getProto( obj ) {\n\t// eslint-disable-next-line no-proto\n\treturn obj.__proto__;\n}\n\n\n// EXPORTS //\n\nexport default getProto;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isObject from './../../is-object';\nimport isFunction from './../../is-function';\nimport getPrototypeOf from '@stdlib/utils/get-prototype-of';\nimport hasOwnProp from './../../has-own-property';\nimport nativeClass from '@stdlib/utils/native-class';\n\n\n// VARIABLES //\n\nvar objectPrototype = Object.prototype;\n\n\n// FUNCTIONS //\n\n/**\n* Tests that an object only has own properties.\n*\n* @private\n* @param {Object} obj - value to test\n* @returns {boolean} boolean indicating if an object only has own properties\n*/\nfunction ownProps( obj ) {\n\tvar key;\n\n\t// NOTE: possibility of perf boost if key enumeration order is known (see http://stackoverflow.com/questions/18531624/isplainobject-thing).\n\tfor ( key in obj ) {\n\t\tif ( !hasOwnProp( obj, key ) ) {\n\t\t\treturn false;\n\t\t}\n\t}\n\treturn true;\n}\n\n\n// MAIN //\n\n/**\n* Tests if a value is a plain object.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether value is a plain object\n*\n* @example\n* var bool = isPlainObject( {} );\n* // returns true\n*\n* @example\n* var bool = isPlainObject( null );\n* // returns false\n*/\nfunction isPlainObject( value ) {\n\tvar proto;\n\n\t// Screen for obvious non-objects...\n\tif ( !isObject( value ) ) {\n\t\treturn false;\n\t}\n\t// Objects with no prototype (e.g., `Object.create( null )`) are plain...\n\tproto = getPrototypeOf( value );\n\tif ( !proto ) {\n\t\treturn true;\n\t}\n\t// Objects having a prototype are plain if and only if they are constructed with a global `Object` function and the prototype points to the prototype of a plain object...\n\treturn (\n\t\t// Cannot have own `constructor` property:\n\t\t!hasOwnProp( value, 'constructor' ) &&\n\n\t\t// Prototype `constructor` property must be a function (see also https://bugs.jquery.com/ticket/9897 and http://stackoverflow.com/questions/18531624/isplainobject-thing):\n\t\thasOwnProp( proto, 'constructor' ) &&\n\t\tisFunction( proto.constructor ) &&\n\t\tnativeClass( proto.constructor ) === '[object Function]' &&\n\n\t\t// Test for object-specific method:\n\t\thasOwnProp( proto, 'isPrototypeOf' ) &&\n\t\tisFunction( proto.isPrototypeOf ) &&\n\n\t\t(\n\t\t\t// Test if the prototype matches the global `Object` prototype (same realm):\n\t\t\tproto === objectPrototype ||\n\n\t\t\t// Test that all properties are own properties (cross-realm; *most* likely a plain object):\n\t\t\townProps( value )\n\t\t)\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isPlainObject;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport Object from '@stdlib/object/ctor';\nimport getProto from './detect.js';\n\n\n// MAIN //\n\n/**\n* Returns the prototype of a provided object.\n*\n* @param {*} value - input value\n* @returns {(Object|null)} prototype\n*\n* @example\n* var proto = getPrototypeOf( {} );\n* // returns {}\n*/\nfunction getPrototypeOf( value ) {\n\tif (\n\t\tvalue === null ||\n\t\tvalue === void 0\n\t) {\n\t\treturn null;\n\t}\n\t// In order to ensure consistent ES5/ES6 behavior, cast input value to an object (strings, numbers, booleans); ES5 `Object.getPrototypeOf` throws when provided primitives and ES6 `Object.getPrototypeOf` casts:\n\tvalue = Object( value );\n\n\treturn getProto( value );\n}\n\n\n// EXPORTS //\n\nexport default getPrototypeOf;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 negative infinity.\n*\n* @param {number} x - input value\n* @returns {number} rounded value\n*\n* @example\n* var v = floor( -4.2 );\n* // returns -5.0\n*\n* @example\n* var v = floor( 9.99999 );\n* // returns 9.0\n*\n* @example\n* var v = floor( 0.0 );\n* // returns 0.0\n*\n* @example\n* var v = floor( NaN );\n* // returns NaN\n*/\nvar floor = Math.floor; // eslint-disable-line stdlib/no-builtin-math\n\n\n// EXPORTS //\n\nexport default floor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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';\nimport isInt from '@stdlib/math/base/assert/is-integer';\n\n\n// MAIN //\n\n/**\n* Tests if a number primitive is an integer value.\n*\n* @private\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a number primitive is an integer value\n*/\nfunction isInteger( value ) {\n\treturn (\n\t\tvalue < PINF &&\n\t\tvalue > NINF &&\n\t\tisInt( value )\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isInteger;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { isPrimitive as isNumber } from './../../is-number';\nimport isInt from './integer.js';\n\n\n// MAIN //\n\n/**\n* Tests if a value is a number primitive having an integer value.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a number primitive having an integer value\n*\n* @example\n* var bool = isInteger( -3.0 );\n* // returns true\n*\n* @example\n* var bool = isInteger( new Number( -3.0 ) );\n* // returns false\n*/\nfunction isInteger( value ) {\n\treturn (\n\t\tisNumber( value ) &&\n\t\tisInt( value )\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isInteger;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { isObject as isNumber } from './../../is-number';\nimport isInt from './integer.js';\n\n\n// MAIN //\n\n/**\n* Tests if a value is a number object having an integer value.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a number object having an integer value\n*\n* @example\n* var bool = isInteger( 3.0 );\n* // returns false\n*\n* @example\n* var bool = isInteger( new Number( 3.0 ) );\n* // returns true\n*/\nfunction isInteger( value ) {\n\treturn (\n\t\tisNumber( value ) &&\n\t\tisInt( value.valueOf() )\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isInteger;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isPrimitive from './primitive.js';\nimport isObject from './object.js';\n\n\n// MAIN //\n\n/**\n* Tests if a value is an integer.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether value is an integer\n*\n* @example\n* var bool = isInteger( 5.0 );\n* // returns true\n*\n* @example\n* var bool = isInteger( new Number( 5.0 ) );\n* // returns true\n*\n* @example\n* var bool = isInteger( -3.14 );\n* // returns false\n*\n* @example\n* var bool = isInteger( null );\n* // returns false\n*/\nfunction isInteger( value ) {\n\treturn ( isPrimitive( value ) || isObject( value ) );\n}\n\n\n// EXPORTS //\n\nexport default isInteger;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { isPrimitive as isInteger } from './../../is-integer';\n\n\n// MAIN //\n\n/**\n* Tests if a value is a number primitive having a nonnegative integer value.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a number primitive having a nonnegative integer value\n*\n* @example\n* var bool = isNonNegativeInteger( 3.0 );\n* // returns true\n*\n* @example\n* var bool = isNonNegativeInteger( new Number( 3.0 ) );\n* // returns false\n*/\nfunction isNonNegativeInteger( value ) {\n\treturn (\n\t\tisInteger( value ) &&\n\t\tvalue >= 0\n\t);\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 { isObject as isInteger } from './../../is-integer';\n\n\n// MAIN //\n\n/**\n* Tests if a value is a number object having a nonnegative integer value.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a number object having a nonnegative integer value\n*\n* @example\n* var bool = isNonNegativeInteger( 3.0 );\n* // returns false\n*\n* @example\n* var bool = isNonNegativeInteger( new Number( 3.0 ) );\n* // returns true\n*/\nfunction isNonNegativeInteger( value ) {\n\treturn (\n\t\tisInteger( value ) &&\n\t\tvalue.valueOf() >= 0\n\t);\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 isPrimitive from './primitive.js';\nimport isObject from './object.js';\n\n\n// MAIN //\n\n/**\n* Tests if a value is a nonnegative integer.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether value is a nonnegative integer\n*\n* @example\n* var bool = isNonNegativeInteger( 5.0 );\n* // returns true\n*\n* @example\n* var bool = isNonNegativeInteger( new Number( 5.0 ) );\n* // returns true\n*\n* @example\n* var bool = isNonNegativeInteger( -5.0 );\n* // returns false\n*\n* @example\n* var bool = isNonNegativeInteger( 3.14 );\n* // returns false\n*\n* @example\n* var bool = isNonNegativeInteger( null );\n* // returns false\n*/\nfunction isNonNegativeInteger( value ) {\n\treturn ( isPrimitive( value ) || isObject( value ) );\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/**\n* Test if a value is an integer.\n*\n* @module @stdlib/assert/is-integer\n*\n* @example\n* import isInteger from '@stdlib/assert/is-integer';\n*\n* var bool = isInteger( 5.0 );\n* // returns true\n*\n* bool = isInteger( new Number( 5.0 ) );\n* // returns true\n*\n* bool = isInteger( -3.14 );\n* // returns false\n*\n* bool = isInteger( null );\n* // returns false\n*\n* @example\n* // Use interface to check for integer primitives...\n* import { isPrimitive as isInteger } from '@stdlib/assert/is-integer';\n*\n* var bool = isInteger( -3.0 );\n* // returns true\n*\n* bool = isInteger( new Number( -3.0 ) );\n* // returns false\n*\n* @example\n* // Use interface to check for integer objects...\n* import { isObject as isInteger } from '@stdlib/assert/is-integer';\n*\n* var bool = isInteger( 3.0 );\n* // returns false\n*\n* bool = isInteger( new Number( 3.0 ) );\n* // returns true\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport isPrimitive from './primitive.js';\nimport isObject from './object.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'isPrimitive', isPrimitive );\nsetReadOnly( main, 'isObject', isObject );\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* Test if a value is a nonnegative integer.\n*\n* @module @stdlib/assert/is-nonnegative-integer\n*\n* @example\n* import isNonNegativeInteger from '@stdlib/assert/is-nonnegative-integer';\n*\n* var bool = isNonNegativeInteger( 5.0 );\n* // returns true\n*\n* bool = isNonNegativeInteger( new Number( 5.0 ) );\n* // returns true\n*\n* bool = isNonNegativeInteger( -5.0 );\n* // returns false\n*\n* bool = isNonNegativeInteger( 3.14 );\n* // returns false\n*\n* bool = isNonNegativeInteger( null );\n* // returns false\n*\n* @example\n* import { isPrimitive as isNonNegativeInteger } from '@stdlib/assert/is-nonnegative-integer';\n*\n* var bool = isNonNegativeInteger( 3.0 );\n* // returns true\n*\n* bool = isNonNegativeInteger( new Number( 3.0 ) );\n* // returns false\n*\n* @example\n* import { isObject as isNonNegativeInteger } from '@stdlib/assert/is-nonnegative-integer';\n*\n* var bool = isNonNegativeInteger( 3.0 );\n* // returns false\n*\n* bool = isNonNegativeInteger( new Number( 3.0 ) );\n* // returns true\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport isPrimitive from './primitive.js';\nimport isObject from './object.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'isPrimitive', isPrimitive );\nsetReadOnly( main, 'isObject', isObject );\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 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) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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/no-redeclare */\n\n'use strict';\n\n// MODULES //\n\nimport { isPrimitive as isNumber } from './../../is-number';\nimport isfinite from '@stdlib/math/base/assert/is-finite';\n\n\n// MAIN //\n\n/**\n* Tests if a value is a number primitive having a finite value.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a number primitive having a finite value\n*\n* @example\n* var bool = isFinite( -3.0 );\n* // returns true\n*\n* @example\n* var bool = isFinite( new Number( -3.0 ) );\n* // returns false\n*/\nfunction isFinite( value ) {\n\treturn (\n\t\tisNumber( value ) &&\n\t\tisfinite( value )\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isFinite;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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/no-redeclare */\n\n'use strict';\n\n// MODULES //\n\nimport { isObject as isNumber } from './../../is-number';\nimport isfinite from '@stdlib/math/base/assert/is-finite';\n\n\n// MAIN //\n\n/**\n* Tests if a value is a number object having a finite value.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a number object having a finite value\n*\n* @example\n* var bool = isFinite( 3.0 );\n* // returns false\n*\n* @example\n* var bool = isFinite( new Number( 3.0 ) );\n* // returns true\n*/\nfunction isFinite( value ) {\n\treturn (\n\t\tisNumber( value ) &&\n\t\tisfinite( value.valueOf() )\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isFinite;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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/no-redeclare */\n\n'use strict';\n\n// MODULES //\n\nimport isPrimitive from './primitive.js';\nimport isObject from './object.js';\n\n\n// MAIN //\n\n/**\n* Tests if a value is a finite number.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether a value is a finite number\n*\n* @example\n* var bool = isFinite( 5.0 );\n* // returns true\n*\n* @example\n* var bool = isFinite( new Number( 5.0 ) );\n* // returns true\n*\n* @example\n* var bool = isFinite( 1.0/0.0 );\n* // returns false\n*\n* @example\n* var bool = isFinite( null );\n* // returns false\n*/\nfunction isFinite( value ) {\n\treturn ( isPrimitive( value ) || isObject( value ) );\n}\n\n\n// EXPORTS //\n\nexport default isFinite;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport defineProperty from './../../define-property';\n\n\n// MAIN //\n\n/**\n* Defines a non-enumerable read-only accessor.\n*\n* @param {Object} obj - object on which to define the property\n* @param {(string|symbol)} prop - property name\n* @param {Function} getter - accessor\n*\n* @example\n* function getter() {\n* return 'bar';\n* }\n*\n* var obj = {};\n*\n* setNonEnumerableReadOnlyAccessor( obj, 'foo', getter );\n*\n* try {\n* obj.foo = 'boop';\n* } catch ( err ) {\n* console.error( err.message );\n* }\n*/\nfunction setNonEnumerableReadOnlyAccessor( obj, prop, getter ) { // eslint-disable-line id-length\n\tdefineProperty( obj, prop, {\n\t\t'configurable': false,\n\t\t'enumerable': false,\n\t\t'get': getter\n\t});\n}\n\n\n// EXPORTS //\n\nexport default setNonEnumerableReadOnlyAccessor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Queue node constructor.\n*\n* @private\n* @constructor\n* @param {*} value - node value\n* @returns {Node} Node instance\n*\n* @example\n* var node = new Node( 'foo' );\n* // returns \n*/\nfunction Node( value ) { // eslint-disable-line stdlib/no-redeclare\n\tthis.next = null;\n\tthis.prev = null;\n\tthis.value = value;\n\treturn this;\n}\n\n\n// EXPORTS //\n\nexport default Node;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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 no-restricted-syntax, no-invalid-this */\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from './../../define-nonenumerable-read-only-property';\nimport setReadOnlyAccessor from './../../define-nonenumerable-read-only-accessor';\nimport iteratorSymbol from '@stdlib/symbol/iterator';\nimport Node from './node.js'; // eslint-disable-line stdlib/no-redeclare\n\n\n// MAIN //\n\n/**\n* First-in-first-out queue constructor.\n*\n* @constructor\n* @returns {FIFO} FIFO queue instance\n*\n* @example\n* var queue = new FIFO();\n*\n* // Add values to the queue:\n* queue.push( 'foo' ).push( 'bar' );\n*\n* // Remove the first value:\n* var v = queue.pop();\n* // returns 'foo'\n*\n* // Add a new value to the queue:\n* queue.push( 'beep' );\n*\n* // Remove the \"oldest\" queue value:\n* v = queue.pop();\n* // returns 'bar'\n*/\nfunction FIFO() {\n\tif ( !(this instanceof FIFO) ) {\n\t\treturn new FIFO();\n\t}\n\tthis._length = 0;\n\tthis._first = null;\n\tthis._last = null;\n\treturn this;\n}\n\n/**\n* Clears the queue.\n*\n* @name clear\n* @memberof FIFO.prototype\n* @type {Function}\n* @returns {FIFO} queue instance\n*\n* @example\n* var queue = new FIFO();\n*\n* // Add values to the queue:\n* queue.push( 'foo' ).push( 'bar' );\n*\n* // Peek at the first value:\n* var v = queue.first();\n* // returns 'foo'\n*\n* // Examine the queue length:\n* var len = queue.length;\n* // returns 2\n*\n* // Clear all queue items:\n* queue.clear();\n*\n* // Peek at the first value:\n* v = queue.first();\n* // returns undefined\n*\n* // Examine the queue length:\n* len = queue.length;\n* // returns 0\n*/\nsetReadOnly( FIFO.prototype, 'clear', function clear() {\n\tthis._length = 0;\n\tthis._first = null;\n\tthis._last = null;\n\treturn this;\n});\n\n/**\n* Returns the \"oldest\" queue value (i.e., the value which is \"first-out\").\n*\n* @name first\n* @memberof FIFO.prototype\n* @type {Function}\n* @returns {(*|void)} \"oldest\" queue value\n*\n* @example\n* var queue = new FIFO();\n*\n* // Add values to the queue:\n* queue.push( 'foo' ).push( 'bar' );\n*\n* // Peek at the first value:\n* var v = queue.first();\n* // returns 'foo'\n*/\nsetReadOnly( FIFO.prototype, 'first', function first() {\n\tif ( this._length ) {\n\t\treturn this._first.value;\n\t}\n});\n\n/**\n* Returns an iterator for iterating over a queue.\n*\n* ## Notes\n*\n* - In order to prevent confusion arising from queue mutation during iteration, a returned iterator **always** iterates over a queue \"snapshot\", which is defined as the list of queue elements at the time of this method's invocation.\n*\n* @name iterator\n* @memberof FIFO.prototype\n* @type {Function}\n* @returns {Iterator} iterator\n*\n* @example\n* var queue = new FIFO();\n*\n* // Add values to the queue:\n* queue.push( 'foo' ).push( 'bar' );\n*\n* // Create an iterator:\n* var it = queue.iterator();\n*\n* // Iterate over the queue...\n* var v = it.next().value;\n* // returns 'foo'\n*\n* v = it.next().value;\n* // returns 'bar'\n*\n* var bool = it.next().done;\n* // returns true\n*/\nsetReadOnly( FIFO.prototype, 'iterator', function iterator() {\n\tvar values;\n\tvar iter;\n\tvar self;\n\tvar FLG;\n\tvar i;\n\n\tself = this;\n\n\t// Initialize the iteration index:\n\ti = -1;\n\n\t// Create a copy of queue values (necessary in order to \"snapshot\" the queue; otherwise, values could come and go between calls to `next`):\n\tvalues = this.toArray();\n\n\t// Create an iterator protocol-compliant object:\n\titer = {};\n\tsetReadOnly( iter, 'next', next );\n\tsetReadOnly( iter, 'return', end );\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 >= values.length ) {\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': values[ 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 self.iterator();\n\t}\n});\n\n/**\n* Returns the \"newest\" queue value (i.e., the value which is currently \"last-out\").\n*\n* @name last\n* @memberof FIFO.prototype\n* @type {Function}\n* @returns {(*|void)} \"newest\" queue value\n*\n* @example\n* var queue = new FIFO();\n*\n* // Add values to the queue:\n* queue.push( 'foo' ).push( 'bar' );\n*\n* // Peek at the last value:\n* var v = queue.last();\n* // returns 'bar'\n*/\nsetReadOnly( FIFO.prototype, 'last', function last() {\n\tif ( this._length ) {\n\t\treturn this._last.value;\n\t}\n});\n\n/**\n* Queue length.\n*\n* @name length\n* @memberof FIFO.prototype\n* @type {NonNegativeInteger}\n*\n* @example\n* var queue = new FIFO();\n*\n* // Examine the initial queue length:\n* var len = queue.length;\n* // returns 0\n*\n* // Add values to the queue:\n* queue.push( 'foo' ).push( 'bar' );\n*\n* // Retrieve the current queue length:\n* len = queue.length;\n* // returns 2\n*/\nsetReadOnlyAccessor( FIFO.prototype, 'length', function get() {\n\treturn this._length;\n});\n\n/**\n* Removes a value from the queue.\n*\n* @name pop\n* @memberof FIFO.prototype\n* @type {Function}\n* @returns {(*|void)} removed value\n*\n* @example\n* var queue = new FIFO();\n*\n* // Add values to the queue:\n* queue.push( 'foo' ).push( 'bar' );\n*\n* // Remove the first value:\n* var v = queue.pop();\n* // returns 'foo'\n*\n* // Add a new value to the queue:\n* queue.push( 'beep' );\n*\n* // Remove the \"oldest\" queue value:\n* v = queue.pop();\n* // returns 'bar'\n*/\nsetReadOnly( FIFO.prototype, 'pop', function pop() {\n\tvar value;\n\tif ( this._length ) {\n\t\t// Retrieve the \"first-out\" value:\n\t\tvalue = this._first.value;\n\n\t\t// Check whether we have a new \"first-out\" or whether we have drained the queue...\n\t\tif ( this._first.next ) {\n\t\t\tthis._first = this._first.next;\n\t\t\tthis._first.prev = null;\n\t\t} else {\n\t\t\t// Queue is empty:\n\t\t\tthis._first = null;\n\t\t\tthis._last = null;\n\t\t}\n\t\t// Decrement the queue length:\n\t\tthis._length -= 1;\n\t}\n\treturn value;\n});\n\n/**\n* Adds a value to the queue.\n*\n* @name push\n* @memberof FIFO.prototype\n* @type {Function}\n* @returns {FIFO} queue instance\n*\n* @example\n* var queue = new FIFO();\n*\n* // Add values to the queue:\n* queue.push( 'foo' ).push( 'bar' );\n*\n* // Remove the first value:\n* var v = queue.pop();\n* // returns 'foo'\n*\n* // Add a new value to the queue:\n* queue.push( 'beep' );\n*\n* // Remove the \"oldest\" queue value:\n* v = queue.pop();\n* // returns 'bar'\n*/\nsetReadOnly( FIFO.prototype, 'push', function push( value ) {\n\tvar node;\n\n\t// Create a new queue node:\n\tnode = new Node( value );\n\n\t// Check whether the queue is currently empty...\n\tif ( this._length === 0 ) {\n\t\t// This is the only queued node, making it both the first and last node:\n\t\tthis._first = node;\n\t\tthis._last = node;\n\t} else {\n\t\t// Link the node to the previous most \"recent\" node:\n\t\tnode.prev = this._last;\n\n\t\t// Link the previous most \"recent\" node to the new node:\n\t\tthis._last.next = node;\n\n\t\t// Update the queue pointer for the \"last\" node to the new node:\n\t\tthis._last = node;\n\t}\n\t// Increment the queue length:\n\tthis._length += 1;\n\n\treturn this;\n});\n\n/**\n* Returns an array of queue values.\n*\n* @name toArray\n* @memberof FIFO.prototype\n* @type {Function}\n* @returns {Array} queue values\n*\n* @example\n* var queue = new FIFO();\n*\n* // Add values to the queue:\n* queue.push( 'foo' ).push( 'bar' );\n*\n* // Get an array of queue values:\n* var vals = queue.toArray();\n* // returns [ 'foo', 'bar' ]\n*/\nsetReadOnly( FIFO.prototype, 'toArray', function toArray() {\n\tvar node;\n\tvar out;\n\tvar i;\n\n\tout = [];\n\tnode = this._first;\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tout.push( node.value );\n\t\tnode = node.next;\n\t}\n\treturn out;\n});\n\n/**\n* Serializes a queue as JSON.\n*\n* ## Notes\n*\n* - `JSON.stringify()` implicitly calls this method when stringifying a `FIFO` instance.\n*\n* @name toJSON\n* @memberof FIFO.prototype\n* @type {Function}\n* @returns {Object} serialized queue\n*\n* @example\n* var queue = new FIFO();\n*\n* // Add values to the queue:\n* queue.push( 'foo' ).push( 'bar' );\n*\n* // Serialize to JSON:\n* var o = queue.toJSON();\n* // returns { 'type': 'fifo', 'data': [ 'foo', 'bar' ] }\n*/\nsetReadOnly( FIFO.prototype, 'toJSON', function toJSON() {\n\tvar out = {};\n\tout.type = 'fifo';\n\tout.data = this.toArray();\n\treturn out;\n});\n\n\n// EXPORTS //\n\nexport default FIFO;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Test if a value is a finite number.\n*\n* @module @stdlib/assert/is-finite\n*\n* @example\n* import isFinite from '@stdlib/assert/is-finite';\n*\n* var bool = isFinite( 5.0 );\n* // returns true\n*\n* bool = isFinite( new Number( 5.0 ) );\n* // returns true\n*\n* bool = isFinite( 1.0/0.0 );\n* // returns false\n*\n* bool = isFinite( null );\n* // returns false\n*\n* @example\n* import { isPrimitive as isFinite } from '@stdlib/assert/is-finite';\n*\n* var bool = isFinite( -3.0 );\n* // returns true\n*\n* bool = isFinite( new Number( -3.0 ) );\n* // returns false\n*\n* @example\n* import { isObject as isFinite } from '@stdlib/assert/is-finite';\n*\n* var bool = isFinite( 3.0 );\n* // returns false\n*\n* bool = isFinite( new Number( 3.0 ) );\n* // returns true\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport isPrimitive from './primitive.js';\nimport isObject from './object.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'isPrimitive', isPrimitive );\nsetReadOnly( main, 'isObject', isObject );\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'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) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Maximum length of a generic array.\n*\n* @module @stdlib/constants/array/max-array-length\n*\n* @example\n* import MAX_ARRAY_LENGTH from '@stdlib/constants/array/max-array-length';\n* // returns 4294967295\n*/\n\n// MAIN //\n\n/**\n* Maximum length of a generic array.\n*\n* ```tex\n* 2^{32} - 1\n* ```\n*\n* @constant\n* @type {uinteger32}\n* @default 4294967295\n*/\nvar MAX_ARRAY_LENGTH = 4294967295>>>0; // asm type annotation\n\n\n// EXPORTS //\n\nexport default MAX_ARRAY_LENGTH;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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 '@stdlib/math/base/assert/is-integer';\nimport MAX_LENGTH from '@stdlib/constants/array/max-array-length';\n\n\n// MAIN //\n\n/**\n* Tests if a value is an array-like object.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is an array-like object\n*\n* @example\n* var bool = isArrayLikeObject( [] );\n* // returns true\n*\n* @example\n* var bool = isArrayLikeObject( { 'length':10 } );\n* // returns true\n*\n* @example\n* var bool = isArrayLikeObject( 'beep' );\n* // returns false\n*/\nfunction isArrayLikeObject( value ) {\n\treturn (\n\t\ttypeof value === 'object' &&\n\t\tvalue !== null &&\n\t\ttypeof value.length === 'number' &&\n\t\tisInteger( value.length ) &&\n\t\tvalue.length >= 0 &&\n\t\tvalue.length <= MAX_LENGTH\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isArrayLikeObject;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 an array of an object's own enumerable property names.\n*\n* ## Notes\n*\n* - In contrast to the built-in `Object.keys()`, this function returns an empty array if provided `undefined` or `null`, rather than throwing an error.\n*\n* @private\n* @param {*} value - input object\n* @returns {Array} a list of own enumerable property names\n*\n* @example\n* var obj = {\n* 'beep': 'boop',\n* 'foo': 3.14\n* };\n*\n* var k = keys( obj );\n* // e.g., returns [ 'beep', 'foo' ]\n*/\nfunction keys( value ) {\n\treturn Object.keys( Object( value ) );\n}\n\n\n// EXPORTS //\n\nexport default keys;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 bool = ( typeof Object.keys !== 'undefined' );\n\n\n// EXPORTS //\n\nexport default bool;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isArguments from './main.js';\n\n\n// VARIABLES //\n\nvar bool;\n\n\n// FUNCTIONS //\n\n/**\n* Detects whether an environment returns the expected internal class of the `arguments` object.\n*\n* @private\n* @returns {boolean} boolean indicating whether an environment behaves as expected\n*\n* @example\n* var bool = detect();\n* // returns \n*/\nfunction detect() {\n\treturn isArguments( arguments );\n}\n\n\n// MAIN //\n\nbool = detect();\n\n\n// EXPORTS //\n\nexport default bool;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport nativeClass from '@stdlib/utils/native-class';\n\n\n// MAIN //\n\n/**\n* Tests whether a value is an `arguments` object.\n*\n* @private\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether a value is an `arguments` object\n*\n* @example\n* function foo() {\n* return arguments;\n* }\n*\n* var bool = isArguments( foo() );\n* // returns true\n*\n* @example\n* var bool = isArguments( [] );\n* // returns false\n*/\nfunction isArguments( value ) {\n\treturn ( nativeClass( value ) === '[object Arguments]' );\n}\n\n\n// EXPORTS //\n\nexport default isArguments;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 value is a string primitive.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a string primitive\n*\n* @example\n* var bool = isString( 'beep' );\n* // returns true\n*\n* @example\n* var bool = isString( new String( 'beep' ) );\n* // returns false\n*/\nfunction isString( value ) {\n\treturn ( typeof value === 'string' );\n}\n\n\n// EXPORTS //\n\nexport default isString;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// eslint-disable-next-line stdlib/no-redeclare\nvar valueOf = String.prototype.valueOf; // non-generic\n\n\n// EXPORTS //\n\nexport default valueOf;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport hasToStringTag from './../../has-tostringtag-support';\nimport nativeClass from '@stdlib/utils/native-class';\nimport test from './try2valueof.js';\n\n\n// VARIABLES //\n\nvar FLG = hasToStringTag();\n\n\n// MAIN //\n\n/**\n* Tests if a value is a string object.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a string object\n*\n* @example\n* var bool = isString( new String( 'beep' ) );\n* // returns true\n*\n* @example\n* var bool = isString( 'beep' );\n* // returns false\n*/\nfunction isString( value ) {\n\tif ( typeof value === 'object' ) {\n\t\tif ( value instanceof String ) {\n\t\t\treturn true;\n\t\t}\n\t\tif ( FLG ) {\n\t\t\treturn test( value );\n\t\t}\n\t\treturn ( nativeClass( value ) === '[object String]' );\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default isString;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport valueOf from './valueof.js'; // eslint-disable-line stdlib/no-redeclare\n\n\n// MAIN //\n\n/**\n* Attempts to extract a string value.\n*\n* @private\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a string can be extracted\n*/\nfunction test( value ) {\n\ttry {\n\t\tvalueOf.call( value );\n\t\treturn true;\n\t} catch ( err ) { // eslint-disable-line no-unused-vars\n\t\treturn false;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default test;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isPrimitive from './primitive.js';\nimport isObject from './object.js';\n\n\n// MAIN //\n\n/**\n* Tests if a value is a string.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether value is a string\n*\n* @example\n* var bool = isString( new String( 'beep' ) );\n* // returns true\n*\n* @example\n* var bool = isString( 'beep' );\n* // returns true\n*/\nfunction isString( value ) {\n\treturn ( isPrimitive( value ) || isObject( value ) );\n}\n\n\n// EXPORTS //\n\nexport default isString;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { isPrimitive as isNumber } from './../../is-number';\nimport isNan from '@stdlib/math/base/assert/is-nan';\n\n\n// MAIN //\n\n/**\n* Tests if a value is a `NaN` number primitive.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a `NaN` number primitive\n*\n* @example\n* var bool = isnan( NaN );\n* // returns true\n*\n* @example\n* var bool = isnan( 3.14 );\n* // returns false\n*\n* @example\n* var bool = isnan( new Number( NaN ) );\n* // returns false\n*/\nfunction isnan( value ) {\n\treturn (\n\t\tisNumber( value ) &&\n\t\tisNan( value )\n\t);\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 { isObject as isNumber } from './../../is-number';\nimport isNan from '@stdlib/math/base/assert/is-nan';\n\n\n// MAIN //\n\n/**\n* Tests if a value is a number object having a value of `NaN`.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a number object having a value of `NaN`\n*\n* @example\n* var bool = isnan( NaN );\n* // returns false\n*\n* @example\n* var bool = isnan( new Number( NaN ) );\n* // returns true\n*/\nfunction isnan( value ) {\n\treturn (\n\t\tisNumber( value ) &&\n\t\tisNan( value.valueOf() )\n\t);\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 isPrimitive from './primitive.js';\nimport isObject from './object.js';\n\n\n// MAIN //\n\n/**\n* Tests if a value is `NaN`.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether value is `NaN`\n*\n* @example\n* var bool = isnan( NaN );\n* // returns true\n*\n* @example\n* var bool = isnan( new Number( NaN ) );\n* // returns true\n*\n* @example\n* var bool = isnan( 3.14 );\n* // returns false\n*\n* @example\n* var bool = isnan( null );\n* // returns false\n*/\nfunction isnan( value ) {\n\treturn ( isPrimitive( value ) || isObject( value ) );\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/**\n* Test if a value is a string.\n*\n* @module @stdlib/assert/is-string\n*\n* @example\n* import isString from '@stdlib/assert/is-string';\n*\n* var bool = isString( 'beep' );\n* // returns true\n*\n* bool = isString( new String( 'beep' ) );\n* // returns true\n*\n* bool = isString( 5 );\n* // returns false\n*\n* @example\n* import { isObject as isString } from '@stdlib/assert/is-string';\n*\n* var bool = isString( new String( 'beep' ) );\n* // returns true\n*\n* bool = isString( 'beep' );\n* // returns false\n*\n* @example\n* import { isPrimitive as isString } from '@stdlib/assert/is-string';\n*\n* var bool = isString( 'beep' );\n* // returns true\n*\n* bool = isString( new String( 'beep' ) );\n* // returns false\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport isPrimitive from './primitive.js';\nimport isObject from './object.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'isPrimitive', isPrimitive );\nsetReadOnly( main, 'isObject', isObject );\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* Test if a value is `NaN`.\n*\n* @module @stdlib/assert/is-nan\n*\n* @example\n* import isnan from '@stdlib/assert/is-nan';\n*\n* var bool = isnan( NaN );\n* // returns true\n*\n* bool = isnan( new Number( NaN ) );\n* // returns true\n*\n* bool = isnan( 3.14 );\n* // returns false\n*\n* bool = isnan( null );\n* // returns false\n*\n* @example\n* import { isPrimitive as isnan } from '@stdlib/assert/is-nan';\n*\n* var bool = isnan( NaN );\n* // returns true\n*\n* bool = isnan( 3.14 );\n* // returns false\n*\n* bool = isnan( new Number( NaN ) );\n* // returns false\n*\n* @example\n* import { isObject as isnan } from '@stdlib/assert/is-nan';\n*\n* var bool = isnan( NaN );\n* // returns false\n*\n* bool = isnan( new Number( NaN ) );\n* // returns true\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport isPrimitive from './primitive.js';\nimport isObject from './object.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'isPrimitive', isPrimitive );\nsetReadOnly( main, 'isObject', isObject );\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// MAIN //\n\n/**\n* Tests if an object's own property is enumerable.\n*\n* @private\n* @name isEnumerableProperty\n* @type {Function}\n* @param {*} value - value to test\n* @param {*} property - property to test\n* @returns {boolean} boolean indicating if an object property is enumerable\n*\n* @example\n* var beep = {\n* 'boop': true\n* };\n*\n* var bool = isEnumerableProperty( beep, 'boop' );\n* // returns true\n*\n* @example\n* var beep = {\n* 'boop': true\n* };\n*\n* var bool = isEnumerableProperty( beep, 'hasOwnProperty' );\n* // returns false\n*/\nvar isEnumerableProperty = Object.prototype.propertyIsEnumerable;\n\n\n// EXPORTS //\n\nexport default isEnumerableProperty;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isEnum from './native.js';\n\n\n// VARIABLES //\n\nvar bool;\n\n\n// FUNCTIONS //\n\n/**\n* Detects whether an environment has a bug where String indices are not detected as \"enumerable\" properties. Observed in Node v0.10.\n*\n* @private\n* @returns {boolean} boolean indicating whether an environment has the bug\n*/\nfunction detect() {\n\treturn !isEnum.call( 'beep', '0' );\n}\n\n\n// MAIN //\n\nbool = detect();\n\n\n// EXPORTS //\n\nexport default bool;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isString from './../../is-string';\nimport { isPrimitive as isnan } from './../../is-nan';\nimport { isPrimitive as isInteger } from './../../is-integer';\nimport isEnum from './native.js';\nimport hasStringEnumBug from './has_string_enumerability_bug.js';\n\n\n// MAIN //\n\n/**\n* Tests if an object's own property is enumerable.\n*\n* @param {*} value - value to test\n* @param {*} property - property to test\n* @returns {boolean} boolean indicating if an object property is enumerable\n*\n* @example\n* var beep = {\n* 'boop': true\n* };\n*\n* var bool = isEnumerableProperty( beep, 'boop' );\n* // returns true\n*\n* @example\n* var beep = {\n* 'boop': true\n* };\n*\n* var bool = isEnumerableProperty( beep, 'hasOwnProperty' );\n* // returns false\n*/\nfunction isEnumerableProperty( value, property ) {\n\tvar bool;\n\tif (\n\t\tvalue === void 0 ||\n\t\tvalue === null\n\t) {\n\t\treturn false;\n\t}\n\tbool = isEnum.call( value, property );\n\tif ( !bool && hasStringEnumBug && isString( value ) ) {\n\t\t// Note: we only check for indices, as properties attached to a `String` object are properly detected as enumerable above.\n\t\tproperty = +property;\n\t\treturn (\n\t\t\t!isnan( property ) &&\n\t\t\tisInteger( property ) &&\n\t\t\tproperty >= 0 &&\n\t\t\tproperty < value.length\n\t\t);\n\t}\n\treturn bool;\n}\n\n\n// EXPORTS //\n\nexport default isEnumerableProperty;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Test if a value is an `arguments` object.\n*\n* @module @stdlib/assert/is-arguments\n*\n* @example\n* import isArguments from '@stdlib/assert/is-arguments';\n*\n* function foo() {\n* return arguments;\n* }\n*\n* var bool = isArguments( foo() );\n* // returns true\n*\n* bool = isArguments( [] );\n* // returns false\n*/\n\n// MODULES //\n\nimport hasArgumentsClass from './detect.js';\nimport main from './main.js';\nimport polyfill from './polyfill.js';\n\n\n// MAIN //\n\nvar isArguments;\nif ( hasArgumentsClass ) {\n\tisArguments = main;\n} else {\n\tisArguments = polyfill;\n}\n\n\n// EXPORTS //\n\nexport default isArguments;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport hasOwnProp from './../../has-own-property';\nimport isEnumerableProperty from './../../is-enumerable-property';\nimport isArray from './../../is-array';\nimport isInteger from '@stdlib/math/base/assert/is-integer';\nimport MAX_LENGTH from '@stdlib/constants/uint32/max';\n\n\n// MAIN //\n\n/**\n* Tests whether a value is an `arguments` object.\n*\n* @private\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether a value is an `arguments` object\n*\n* @example\n* function foo() {\n* return arguments;\n* }\n*\n* var bool = isArguments( foo() );\n* // returns true\n*\n* @example\n* var bool = isArguments( [] );\n* // returns false\n*/\nfunction isArguments( value ) {\n\treturn (\n\t\tvalue !== null &&\n\t\ttypeof value === 'object' &&\n\t\t!isArray( value ) &&\n\t\ttypeof value.length === 'number' &&\n\t\tisInteger( value.length ) &&\n\t\tvalue.length >= 0 &&\n\t\tvalue.length <= MAX_LENGTH &&\n\t\thasOwnProp( value, 'callee' ) &&\n\t\t!isEnumerableProperty( value, 'callee' )\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isArguments;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isArguments from '@stdlib/assert/is-arguments';\nimport builtin from './builtin.js';\n\n\n// VARIABLES //\n\nvar slice = Array.prototype.slice;\n\n\n// MAIN //\n\n/**\n* Returns an array of an object's own enumerable property names.\n*\n* @private\n* @param {*} value - input object\n* @returns {Array} a list of own enumerable property names\n*\n* @example\n* var obj = {\n* 'beep': 'boop',\n* 'foo': 3.14\n* };\n*\n* var k = keys( obj );\n* // e.g., returns [ 'beep', 'foo' ]\n*/\nfunction keys( value ) {\n\tif ( isArguments( value ) ) {\n\t\treturn builtin( slice.call( value ) );\n\t}\n\treturn builtin( value );\n}\n\n\n// EXPORTS //\n\nexport default keys;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isEnumerableProperty from '@stdlib/assert/is-enumerable-property';\nimport noop from './../../noop';\n\n\n// MAIN //\n\n// Note: certain environments treat an object's prototype as enumerable, which, as a matter of convention, it shouldn't be...\nvar bool = isEnumerableProperty( noop, 'prototype' );\n\n\n// EXPORTS //\n\nexport default bool;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* No operation.\n*\n* @example\n* noop();\n* // ...does nothing.\n*/\nfunction noop() {\n\t// Empty function...\n}\n\n\n// EXPORTS //\n\nexport default noop;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isEnumerableProperty from '@stdlib/assert/is-enumerable-property';\n\n\n// VARIABLES //\n\nvar obj = {\n\t'toString': null\n};\n\n\n// MAIN //\n\n// Note: certain environments don't allow enumeration of overwritten properties which are considered non-enumerable...\nvar bool = !isEnumerableProperty( obj, 'toString' );\n\n\n// EXPORTS //\n\nexport default bool;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Maximum length of a typed array.\n*\n* @module @stdlib/constants/array/max-typed-array-length\n*\n* @example\n* import MAX_TYPED_ARRAY_LENGTH from '@stdlib/constants/array/max-typed-array-length';\n* // returns 9007199254740991\n*/\n\n// MAIN //\n\n/**\n* Maximum length of a typed array.\n*\n* ```tex\n* 2^{53} - 1\n* ```\n*\n* @constant\n* @type {number}\n* @default 9007199254740991\n*/\nvar MAX_TYPED_ARRAY_LENGTH = 9007199254740991;\n\n\n// EXPORTS //\n\nexport default MAX_TYPED_ARRAY_LENGTH;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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 '@stdlib/math/base/assert/is-integer';\nimport MAX_LENGTH from '@stdlib/constants/array/max-typed-array-length';\n\n\n// MAIN //\n\n/**\n* Tests if a value is a collection.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether a value is a collection\n*\n* @example\n* var bool = isCollection( [] );\n* // returns true\n*\n* @example\n* var bool = isCollection( {} );\n* // returns false\n*/\nfunction isCollection( value ) {\n\treturn (\n\t\ttypeof value === 'object' &&\n\t\tvalue !== null &&\n\t\ttypeof value.length === 'number' &&\n\t\tisInteger( value.length ) &&\n\t\tvalue.length >= 0 &&\n\t\tvalue.length <= MAX_LENGTH\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isCollection;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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 '@stdlib/assert/is-nan';\nimport isCollection from '@stdlib/assert/is-collection';\nimport { isPrimitive as isString } from '@stdlib/assert/is-string';\nimport { isPrimitive as isInteger } from '@stdlib/assert/is-integer';\nimport format from '@stdlib/string/format';\n\n\n// MAIN //\n\n/**\n* Returns the first index at which a given element can be found.\n*\n* @param {ArrayLike} arr - array-like object\n* @param {*} searchElement - element to find\n* @param {integer} [fromIndex] - starting index (if negative, the start index is determined relative to last element)\n* @throws {TypeError} must provide an array-like object\n* @throws {TypeError} third argument must be an integer\n* @returns {integer} index or -1\n*\n* @example\n* var arr = [ 4, 3, 2, 1 ];\n* var idx = indexOf( arr, 3 );\n* // returns 1\n*\n* @example\n* var arr = [ 4, 3, 2, 1 ];\n* var idx = indexOf( arr, 5 );\n* // returns -1\n*\n* @example\n* // Using a `fromIndex`:\n* var arr = [ 1, 2, 3, 4, 5, 2, 6 ];\n* var idx = indexOf( arr, 2, 3 );\n* // returns 5\n*\n* @example\n* // `fromIndex` which exceeds `array` length:\n* var arr = [ 1, 2, 3, 4, 2, 5 ];\n* var idx = indexOf( arr, 2, 10 );\n* // returns -1\n*\n* @example\n* // Negative `fromIndex`:\n* var arr = [ 1, 2, 3, 4, 5, 2, 6, 2 ];\n* var idx = indexOf( arr, 2, -4 );\n* // returns 5\n*\n* idx = indexOf( arr, 2, -1 );\n* // returns 7\n*\n* @example\n* // Negative `fromIndex` exceeding input `array` length:\n* var arr = [ 1, 2, 3, 4, 5, 2, 6 ];\n* var idx = indexOf( arr, 2, -10 );\n* // returns 1\n*\n* @example\n* // Array-like objects:\n* var str = 'bebop';\n* var idx = indexOf( str, 'o' );\n* // returns 3\n*/\nfunction indexOf( arr, searchElement, fromIndex ) {\n\tvar len;\n\tvar i;\n\tif ( !isCollection( arr ) && !isString( arr ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an array-like object. Value: `%s`.', arr ) );\n\t}\n\tlen = arr.length;\n\tif ( len === 0 ) {\n\t\treturn -1;\n\t}\n\tif ( arguments.length === 3 ) {\n\t\tif ( !isInteger( fromIndex ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Third argument must be an integer. Value: `%s`.', fromIndex ) );\n\t\t}\n\t\tif ( fromIndex >= 0 ) {\n\t\t\tif ( fromIndex >= len ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t\ti = fromIndex;\n\t\t} else {\n\t\t\ti = len + fromIndex;\n\t\t\tif ( i < 0 ) {\n\t\t\t\ti = 0;\n\t\t\t}\n\t\t}\n\t} else {\n\t\ti = 0;\n\t}\n\t// Check for `NaN`...\n\tif ( isnan( searchElement ) ) {\n\t\tfor ( ; i < len; i++ ) {\n\t\t\tif ( isnan( arr[i] ) ) {\n\t\t\t\treturn i;\n\t\t\t}\n\t\t}\n\t} else {\n\t\tfor ( ; i < len; i++ ) {\n\t\t\tif ( arr[ i ] === searchElement ) {\n\t\t\t\treturn i;\n\t\t\t}\n\t\t}\n\t}\n\treturn -1;\n}\n\n\n// EXPORTS //\n\nexport default indexOf;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 a value equals the prototype of its constructor.\n*\n* @private\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether a value equals the prototype of its constructor\n*/\nfunction isConstructorPrototype( value ) {\n\treturn ( value.constructor && value.constructor.prototype === value );\n}\n\n\n// EXPORTS //\n\nexport default isConstructorPrototype;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 w = ( typeof window === 'undefined' ) ? void 0 : window;\n\n\n// EXPORTS //\n\nexport default w;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport hasOwnProp from '@stdlib/assert/has-own-property';\nimport indexOf from './../../index-of';\nimport typeOf from './../../type-of';\nimport isConstructorPrototype from './is_constructor_prototype.js';\nimport EXCLUDED_KEYS from './excluded_keys.json';\nimport win from './window.js';\n\n\n// VARIABLES //\n\nvar bool;\n\n\n// FUNCTIONS //\n\n/**\n* Determines whether an environment throws when comparing to the prototype of a value's constructor (e.g., [IE9][1]).\n*\n* [1]: https://stackoverflow.com/questions/7688070/why-is-comparing-the-constructor-property-of-two-windows-unreliable\n*\n* @private\n* @returns {boolean} boolean indicating whether an environment is buggy\n*/\nfunction check() {\n\tvar k;\n\tif ( typeOf( win ) === 'undefined' ) {\n\t\treturn false;\n\t}\n\tfor ( k in win ) { // eslint-disable-line guard-for-in\n\t\ttry {\n\t\t\tif (\n\t\t\t\tindexOf( EXCLUDED_KEYS, k ) === -1 &&\n\t\t\t\thasOwnProp( win, k ) &&\n\t\t\t\twin[ k ] !== null &&\n\t\t\t\ttypeOf( win[ k ] ) === 'object'\n\t\t\t) {\n\t\t\t\tisConstructorPrototype( win[ k ] );\n\t\t\t}\n\t\t} catch ( err ) { // eslint-disable-line no-unused-vars\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// MAIN //\n\nbool = check();\n\n\n// EXPORTS //\n\nexport default bool;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 bool = ( typeof window !== 'undefined' );\n\n\n// EXPORTS //\n\nexport default bool;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport hasArgumentsBug from './has_arguments_bug.js';\nimport HAS_BUILTIN from './has_builtin.js';\nimport builtin from './builtin.js';\nimport wrapper from './builtin_wrapper.js';\nimport polyfill from './polyfill.js';\n\n\n// MAIN //\n\n/**\n* Returns an array of an object's own enumerable property names.\n*\n* @name keys\n* @type {Function}\n* @param {*} value - input object\n* @returns {Array} a list of own enumerable property names\n*\n* @example\n* var obj = {\n* 'beep': 'boop',\n* 'foo': 3.14\n* };\n*\n* var k = keys( obj );\n* // e.g., returns [ 'beep', 'foo' ]\n*/\nvar keys;\nif ( HAS_BUILTIN ) {\n\tif ( hasArgumentsBug() ) {\n\t\tkeys = wrapper;\n\t} else {\n\t\tkeys = builtin;\n\t}\n} else {\n\tkeys = polyfill;\n}\n\n\n// EXPORTS //\n\nexport default keys;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport keys from './builtin.js';\n\n\n// FUNCTIONS //\n\n/**\n* Tests the built-in `Object.keys()` implementation when provided `arguments`.\n*\n* @private\n* @returns {boolean} boolean indicating whether the built-in implementation returns the expected number of keys\n*/\nfunction test() {\n\treturn ( keys( arguments ) || '' ).length !== 2;\n}\n\n\n// MAIN //\n\n/**\n* Tests whether the built-in `Object.keys()` implementation supports providing `arguments` as an input value.\n*\n* ## Notes\n*\n* - Safari 5.0 does **not** support `arguments` as an input value.\n*\n* @private\n* @returns {boolean} boolean indicating whether a built-in implementation supports `arguments`\n*/\nfunction check() {\n\treturn test( 1, 2 );\n}\n\n\n// EXPORTS //\n\nexport default check;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isObjectLike from '@stdlib/assert/is-object-like';\nimport hasOwnProp from '@stdlib/assert/has-own-property';\nimport isArguments from '@stdlib/assert/is-arguments';\nimport HAS_ENUM_PROTO_BUG from './has_enumerable_prototype_bug.js';\nimport HAS_NON_ENUM_PROPS_BUG from './has_non_enumerable_properties_bug.js';\nimport isConstructorPrototype from './is_constructor_prototype_wrapper.js';\nimport NON_ENUMERABLE from './non_enumerable.json';\n\n\n// MAIN //\n\n/**\n* Returns an array of an object's own enumerable property names.\n*\n* @private\n* @param {*} value - input object\n* @returns {Array} a list of own enumerable property names\n*\n* @example\n* var obj = {\n* 'beep': 'boop',\n* 'foo': 3.14\n* };\n*\n* var k = keys( obj );\n* // e.g., returns [ 'beep', 'foo' ]\n*/\nfunction keys( value ) {\n\tvar skipConstructor;\n\tvar skipPrototype;\n\tvar isFcn;\n\tvar out;\n\tvar k;\n\tvar p;\n\tvar i;\n\n\tout = [];\n\tif ( isArguments( value ) ) {\n\t\t// Account for environments which treat `arguments` differently...\n\t\tfor ( i = 0; i < value.length; i++ ) {\n\t\t\tout.push( i.toString() );\n\t\t}\n\t\t// Note: yes, we are precluding the `arguments` array-like object from having other enumerable properties; however, this should (1) be very rare and (2) not be encouraged (e.g., doing something like `arguments.a = 'b'`; in certain engines directly manipulating the `arguments` value results in automatic de-optimization).\n\t\treturn out;\n\t}\n\tif ( typeof value === 'string' ) {\n\t\t// Account for environments which do not treat string character indices as \"own\" properties...\n\t\tif ( value.length > 0 && !hasOwnProp( value, '0' ) ) {\n\t\t\tfor ( i = 0; i < value.length; i++ ) {\n\t\t\t\tout.push( i.toString() );\n\t\t\t}\n\t\t}\n\t} else {\n\t\tisFcn = ( typeof value === 'function' );\n\t\tif ( isFcn === false && !isObjectLike( value ) ) {\n\t\t\treturn out;\n\t\t}\n\t\tskipPrototype = ( HAS_ENUM_PROTO_BUG && isFcn );\n\t}\n\tfor ( k in value ) {\n\t\tif ( !( skipPrototype && k === 'prototype' ) && hasOwnProp( value, k ) ) {\n\t\t\tout.push( String( k ) );\n\t\t}\n\t}\n\tif ( HAS_NON_ENUM_PROPS_BUG ) {\n\t\tskipConstructor = isConstructorPrototype( value );\n\t\tfor ( i = 0; i < NON_ENUMERABLE.length; i++ ) {\n\t\t\tp = NON_ENUMERABLE[ i ];\n\t\t\tif ( !( skipConstructor && p === 'constructor' ) && hasOwnProp( value, p ) ) {\n\t\t\t\tout.push( String( p ) );\n\t\t\t}\n\t\t}\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default keys;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport hasAutomationEqualityBug from './has_automation_equality_bug.js';\nimport isConstructorPrototype from './is_constructor_prototype.js';\nimport HAS_WINDOW from './has_window.js';\n\n\n// MAIN //\n\n/**\n* Wraps the test for constructor prototype equality to accommodate buggy environments (e.g., environments which throw when testing equality).\n*\n* @private\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether a value equals the prototype of its constructor\n*/\nfunction wrapper( value ) {\n\tif ( HAS_WINDOW === false && !hasAutomationEqualityBug ) {\n\t\treturn isConstructorPrototype( value );\n\t}\n\ttry {\n\t\treturn isConstructorPrototype( value );\n\t} catch ( error ) { // eslint-disable-line no-unused-vars\n\t\treturn false;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default wrapper;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport objectKeys from './../../keys';\nimport isArray from '@stdlib/assert/is-array';\nimport isObject from '@stdlib/assert/is-plain-object';\nimport isObjectLike from '@stdlib/assert/is-object-like';\nimport { isPrimitive as isBoolean } from '@stdlib/assert/is-boolean';\nimport hasOwnProp from '@stdlib/assert/has-own-property';\nimport format from '@stdlib/string/format';\n\n\n// MAIN //\n\n/**\n* Inverts an object, such that keys become values and values become keys.\n*\n* @param {ObjectLike} obj - input object\n* @param {Options} [opts] - function options\n* @param {boolean} [opts.duplicates=true] - boolean indicating whether to store duplicate keys\n* @throws {TypeError} first argument must be object-like\n* @throws {TypeError} second argument must an an object\n* @throws {TypeError} must provide valid options\n* @returns {Object} inverted object\n*\n* @example\n* var out = invert({\n* 'a': 'beep',\n* 'b': 'boop'\n* });\n* // returns { 'beep': 'a', 'boop': 'b' }\n*\n* @example\n* var out = invert({\n* 'a': 'beep',\n* 'b': 'beep'\n* });\n* // returns { 'beep': [ 'a', 'b' ] }\n*\n* @example\n* var obj = {};\n* obj.a = 'beep';\n* obj.b = 'boop';\n* obj.c = 'beep'; // inserted after `a`\n*\n* var out = invert( obj, {\n* 'duplicates': false\n* });\n* // returns { 'beep': 'c', 'boop': 'b' }\n*/\nfunction invert( obj, opts ) {\n\tvar allowDupes = true;\n\tvar keys;\n\tvar len;\n\tvar key;\n\tvar val;\n\tvar out;\n\tvar v;\n\tvar i;\n\tif ( !isObjectLike( obj ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an object (except null). Value: `%s`.', obj ) );\n\t}\n\tif ( arguments.length > 1 ) {\n\t\tif ( !isObject( opts ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Options argument must be an object. Value: `%s`.', opts ) );\n\t\t}\n\t\tif ( hasOwnProp( opts, 'duplicates' ) ) {\n\t\t\tallowDupes = opts.duplicates;\n\t\t\tif ( !isBoolean( allowDupes ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid option. `%s` option must be a boolean. Option: `%s`.', 'duplicates', allowDupes ) );\n\t\t\t}\n\t\t}\n\t}\n\tkeys = objectKeys( obj );\n\tlen = keys.length;\n\tout = {};\n\tif ( allowDupes ) {\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tkey = keys[ i ];\n\t\t\tval = obj[ key ];\n\t\t\tif ( !hasOwnProp( out, val ) ) {\n\t\t\t\tout[ val ] = key;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tv = out[ val ];\n\t\t\tif ( isArray( v ) ) {\n\t\t\t\tout[ val ].push( key );\n\t\t\t} else {\n\t\t\t\tout[ val ] = [ v, key ];\n\t\t\t}\n\t\t}\n\t} else {\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tkey = keys[ i ];\n\t\t\tout[ obj[ key ] ] = key;\n\t\t}\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default invert;\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// MAIN //\n\n/**\n* Replaces search occurrences with a replacement string.\n*\n* @param {string} str - input string\n* @param {RegExp} search - search expression\n* @param {(string|Function)} newval - replacement value or function\n* @returns {string} new string containing replacement(s)\n*\n* @example\n* var str = 'Hello World';\n* var out = replace( str, /world/i, 'Mr. President' );\n* // returns 'Hello Mr. President'\n*\n* @example\n* import capitalize from '@stdlib/string/base/capitalize';\n*\n* var str = 'Oranges and lemons say the bells of St. Clement\\'s';\n*\n* function replacer( match, p1 ) {\n* return capitalize( p1 );\n* }\n*\n* var out = replace( str, /([^\\s]*)/gi, replacer );\n* // returns 'Oranges And Lemons Say The Bells Of St. Clement\\'s'\n*/\nfunction replace( str, search, newval ) {\n\treturn str.replace( search, newval );\n}\n\n\n// EXPORTS //\n\nexport default replace;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport replace from '@stdlib/string/base/replace';\nimport DTYPES from './dtypes.json';\n\n\n// VARIABLES //\n\nvar RE_SUFFIX = /_and_generic$/;\n\n\n// MAIN //\n\n/**\n* Returns a list of ndarray data types.\n*\n* @param {string} [kind] - data type kind\n* @returns {StringArray} list of ndarray data types\n*\n* @example\n* var list = dtypes();\n* // returns [...]\n*\n* @example\n* var list = dtypes( 'floating_point' );\n* // returns [...]\n*/\nfunction dtypes() {\n\tvar kind;\n\tvar out;\n\tvar FLG;\n\tif ( arguments.length === 0 ) {\n\t\treturn DTYPES.all.slice();\n\t}\n\tFLG = false;\n\tkind = arguments[ 0 ];\n\tif ( RE_SUFFIX.test( kind ) ) {\n\t\tkind = replace( kind, RE_SUFFIX, '' );\n\t\tif ( kind !== 'all' ) {\n\t\t\tFLG = true;\n\t\t}\n\t}\n\tout = DTYPES[ kind ];\n\tout = ( out ) ? out.slice() : [];\n\tif ( FLG && out.length > 0 ) {\n\t\tout.push( 'generic' );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default dtypes;\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/empty-line-before-comment */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Returns an object mapping supported data type strings to enumeration constants.\n*\n* ## Notes\n*\n* - Downstream consumers of this mapping should **not** rely on specific integer values (e.g., `INT8 == 0`). Instead, the object should be used in an opaque manner.\n* - The main purpose of this function is JavaScript and C inter-operation of ndarray objects. While certain dtypes, such as \"generic\" and \"binary\", have special behavior in JavaScript, they do not have a direct complement in C.\n*\n* @private\n* @returns {Object} object mapping supported dtypes to enumeration constants\n*\n* @example\n* var table = enumeration();\n* // returns \n*/\nfunction enumeration() {\n\t// NOTE: the following should match the C `dtypes.h` enumeration!!!!\n\treturn {\n\t\t// Boolean data types:\n\t\t'bool': 0,\n\n\t\t// Integer data types:\n\t\t'int8': 1,\n\t\t'uint8': 2,\n\t\t'uint8c': 3,\n\t\t'int16': 4,\n\t\t'uint16': 5,\n\t\t'int32': 6,\n\t\t'uint32': 7,\n\t\t'int64': 8,\n\t\t'uint64': 9,\n\t\t// 'int128': 10, // uncomment once supported\n\t\t// 'uint128': 11,\n\t\t// 'int256': 12,\n\t\t// 'uint256': 13,\n\n\t\t// Floating-point data types:\n\t\t// 'float16': 14,\n\t\t// 'bfloat16': 15,\n\t\t'float32': 10,\n\t\t'float64': 11,\n\t\t// 'float128': 18, // uncomment once supported\n\n\t\t// Complex floating-point number data types:\n\t\t'complex64': 12,\n\t\t'complex128': 13,\n\n\t\t// Data type for \"binary\" data (i.e., data stored in a Node.js `Buffer` object):\n\t\t'binary': 14,\n\n\t\t// Data type for \"generic\" JavaScript values (objects):\n\t\t'generic': 15,\n\n\t\t// Define a signaling value which is guaranteed not to be a valid type enumeration value:\n\t\t'notype': 17,\n\n\t\t// Indicate the start of user defined type numbers (leaving room for type growth above):\n\t\t'userdefined_type': 256\n\t};\n}\n\n\n// EXPORTS //\n\nexport default enumeration;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 a list of ndarray data types.\n*\n* @module @stdlib/ndarray/dtypes\n*\n* @example\n* import dtypes from '@stdlib/ndarray/dtypes';\n*\n* var list = dtypes();\n* // returns [...]\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport enumeration from './enum.js';\nimport assign from './assign.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'enum', enumeration );\nassign( main, enumeration() );\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 setReadOnly from '@stdlib/utils/define-read-only-property';\nimport objectKeys from '@stdlib/utils/keys';\n\n\n// MAIN //\n\n/**\n* Copies all enumerable own properties from a source object to a target object as enumerable read-only properties.\n*\n* @private\n* @param {Object} target - target object\n* @param {Object} source - source object\n* @returns {Object} modified target object\n*\n* @example\n* var source = {\n* 'beep': 'boop'\n* };\n* var target = {};\n*\n* var out = assign( target, source );\n* // returns \n*\n* var bool = ( out === target );\n* // returns true\n*\n* var v = target.beep;\n* // returns 'boop'\n*/\nfunction assign( target, source ) {\n\tvar keys;\n\tvar k;\n\tvar i;\n\n\tkeys = objectKeys( source );\n\tfor ( i = 0; i < keys.length; i++ ) {\n\t\tk = keys[ i ];\n\t\tsetReadOnly( target, k, source[ k ] );\n\t}\n\treturn target;\n}\n\n\n// EXPORTS //\n\nexport default assign;\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 objectInverse from '@stdlib/utils/object-inverse';\nimport { enum as enumeration } from './../../../dtypes';\n\n\n// VARIABLES //\n\nvar hash = objectInverse( enumeration(), {\n\t'duplicates': false\n});\n\n\n// MAIN //\n\n/**\n* Returns the data type string associated with an ndarray data type enumeration constant.\n*\n* @param {integer} dtype - data type enumeration constant\n* @returns {(string|null)} data type string or null\n*\n* @example\n* import str2enum from '@stdlib/ndarray/base/dtype-str2enum';\n*\n* var v = str2enum( 'float64' );\n* // returns \n*\n* var dt = enum2str( v );\n* // returns 'float64'\n*/\nfunction enum2str( dtype ) {\n\tvar v = hash[ dtype ];\n\treturn ( typeof v === 'string' ) ? v : null; // note: we include this guard to prevent walking the prototype chain\n}\n\n\n// EXPORTS //\n\nexport default enum2str;\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 { enum as enumeration } from './../../../dtypes';\n\n\n// VARIABLES //\n\nvar ENUM = enumeration();\n\n\n// MAIN //\n\n/**\n* Returns the enumeration constant associated with an ndarray data type string.\n*\n* ## Notes\n*\n* - Downstream consumers of this function should **not** rely on specific integer values (e.g., `INT8 == 0`). Instead, the function should be used in an opaque manner.\n*\n* @param {string} dtype - data type string\n* @returns {(integer|null)} integer value or null\n*\n* @example\n* var v = str2enum( 'int8' );\n* // returns \n*/\nfunction str2enum( dtype ) {\n\tvar v = ENUM[ dtype ];\n\treturn ( typeof v === 'number' ) ? v : null; // note: we include this guard to prevent walking the prototype chain\n}\n\n\n// EXPORTS //\n\nexport default str2enum;\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 enum2str from './../../../base/dtype-enum2str';\nimport str2enum from './../../../base/dtype-str2enum';\n\n\n// MAIN //\n\n/**\n* Returns the data type string associated with a supported ndarray data type value.\n*\n* @param {*} dtype - data type value\n* @returns {(string|null)} data type string or null\n*\n* @example\n* import str2enum from '@stdlib/ndarray/base/dtype-str2enum';\n*\n* var v = resolve( str2enum( 'float64' ) );\n* // returns 'float64'\n*/\nfunction resolve( dtype ) {\n\tvar t = ( typeof dtype );\n\tif ( t === 'string' ) {\n\t\treturn ( str2enum( dtype ) === null ) ? null : dtype;\n\t}\n\tif ( t === 'number' ) {\n\t\treturn enum2str( dtype );\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nexport default resolve;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isArrayLikeObject from '@stdlib/assert/is-array-like-object';\nimport { isPrimitive as isNonNegativeInteger } from '@stdlib/assert/is-nonnegative-integer';\nimport resolve from './../../../base/dtype-resolve-str';\nimport format from '@stdlib/string/format';\n\n\n// MAIN //\n\n/**\n* Transforms a list of array argument data types into a list of signatures.\n*\n* @param {ArrayLikeObject} dtypes - list of array argument data types\n* @param {NonNegativeInteger} nin - number of input array arguments\n* @param {NonNegativeInteger} nout - number of output array arguments\n* @throws {TypeError} first argument must be an array-like object\n* @throws {TypeError} second argument must be a nonnegative integer\n* @throws {TypeError} third argument must be a nonnegative integer\n* @throws {RangeError} first argument must contain at least one element\n* @throws {RangeError} length of the first argument is incompatible with the second and third arguments\n* @returns {StringArray} list of signatures\n*\n* @example\n* var dtypes = [\n* 'float64', 'float64',\n* 'float32', 'float32'\n* ];\n*\n* var sigs = dtypes2signatures( dtypes, 1, 1 );\n* // returns [ '(float64) => (float64)', '(float32) => (float32)' ]\n*/\nfunction dtypes2signatures( dtypes, nin, nout ) {\n\tvar len;\n\tvar out;\n\tvar tmp;\n\tvar dt;\n\tvar N;\n\tvar M;\n\tvar i;\n\tvar m;\n\n\tif ( !isArrayLikeObject( dtypes ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an array-like object. Value: `%s`.', dtypes ) );\n\t}\n\tif ( !isNonNegativeInteger( nin ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be a nonnegative integer. Value: `%s`.', nin ) );\n\t}\n\tif ( !isNonNegativeInteger( nout ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Third argument must be a nonnegative integer. Value: `%s`.', nout ) );\n\t}\n\tlen = dtypes.length;\n\tif ( len === 0 ) {\n\t\tthrow new RangeError( 'invalid argument. First argument must contain at least one element.' );\n\t}\n\tN = nin + nout;\n\tif ( len%N !== 0 ) {\n\t\tthrow new RangeError( 'invalid arguments. Length of the first argument is incompatible with the second and third arguments.' );\n\t}\n\tout = [];\n\n\t// Create a temporary array for storing signatures...\n\ttmp = [];\n\n\t// [ '(', , ', ', ..., ') => (', , ', ', ..., ')' ] => 1+nin+nin-1+1+nout+nout-1+1 => 1 + (2*nin) + (2*nout) => 1 + (2*(nin+nout))\n\tM = 2 * N;\n\tm = 2 * nin;\n\tfor ( i = 0; i <= M; i++ ) {\n\t\tif ( i === 0 ) {\n\t\t\tif ( i === m ) {\n\t\t\t\ttmp.push( '() => (' );\n\t\t\t} else {\n\t\t\t\ttmp.push( '(' );\n\t\t\t}\n\t\t} else if ( i === M ) {\n\t\t\tif ( i === m ) {\n\t\t\t\ttmp.push( ') => ()' );\n\t\t\t} else {\n\t\t\t\ttmp.push( ')' );\n\t\t\t}\n\t\t} else if ( i === m ) {\n\t\t\ttmp.push( ') => (' );\n\t\t} else if ( i%2 === 1 ) {\n\t\t\ttmp.push( '' );\n\t\t} else {\n\t\t\ttmp.push( ', ' );\n\t\t}\n\t}\n\tfor ( i = 0; i < len; i++ ) {\n\t\tdt = resolve( dtypes[ i ] );\n\t\tif ( dt === null ) {\n\t\t\tdt = dtypes[ i ];\n\t\t}\n\t\tm = i % N;\n\t\ttmp[ (2*m)+1 ] = dt;\n\t\tif ( m === N-1 ) {\n\t\t\tout.push( tmp.join( '' ) );\n\t\t}\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default dtypes2signatures;\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 setReadOnlyAccessor from '@stdlib/utils/define-nonenumerable-read-only-accessor';\nimport dtypes2signatures from './../../../base/dtypes2signatures';\n\n\n// MAIN //\n\n/**\n* Defines non-enumerable read-only properties which expose ndarray function meta data.\n*\n* @param {Object} meta - function meta data\n* @param {NonNegativeInteger} meta.nargs - total number of arguments\n* @param {NonNegativeInteger} meta.nin - total number of input arrays\n* @param {NonNegativeInteger} meta.nout - total number of output arrays\n* @param {ArrayLikeObject} dtypes - list of ndarray data types\n* @param {(Function|Object)} obj - object on which to define properties\n* @returns {(Function|Object)} object on which properties were defined\n*\n* @example\n* // Define ndarray function meta data:\n* var meta = {\n* 'nargs': 2,\n* 'nin': 1,\n* 'nout': 1\n* };\n*\n* // Define the list of ndarray data types:\n* var dtypes = [\n* 'float64', 'float64',\n* 'float32', 'float32',\n* 'generic', 'generic'\n* ];\n*\n* // Define an object on which to set the properties:\n* var obj = {};\n*\n* // Set the properties:\n* setProps( meta, dtypes, obj );\n*\n* @example\n* // Define ndarray function meta data:\n* var meta = {\n* 'nargs': 2,\n* 'nin': 1,\n* 'nout': 1\n* };\n*\n* // Define the list of ndarray data types:\n* var dtypes = [\n* 'float64', 'float64',\n* 'float32', 'float32',\n* 'generic', 'generic'\n* ];\n*\n* // Define a function on which to set the properties:\n* function abs( x, y ) {\n* // Implementation...\n* }\n*\n* // Set the properties:\n* setProps( meta, dtypes, abs );\n*/\nfunction setProps( meta, dtypes, obj ) {\n\t// Define the number of arguments:\n\tsetReadOnly( obj, 'nargs', meta.nargs );\n\n\t// Define the number of input arrays:\n\tsetReadOnly( obj, 'nin', meta.nin );\n\n\t// Define the number of output arrays:\n\tsetReadOnly( obj, 'nout', meta.nout );\n\n\t// Define a read-only accessor for listing a function's supported array data types:\n\tsetReadOnlyAccessor( obj, 'types', types );\n\n\treturn obj;\n\n\t/**\n\t* Returns a list of array type signatures.\n\t*\n\t* @private\n\t* @returns {StringArray} list of signatures\n\t*/\n\tfunction types() {\n\t\treturn dtypes2signatures( dtypes, meta.nin, meta.nout );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default setProps;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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 Complex64 from '@stdlib/complex/float32/ctor';\n\n\n// MAIN //\n\n/**\n* Tests if a value is a complex number-like object.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a complex number-like object.\n*\n* @example\n* import Complex128 from '@stdlib/complex/float64/ctor';\n* import Complex64 from '@stdlib/complex/float32/ctor';\n*\n* var x = new Complex128( 4.0, 2.0 );\n* var bool = isComplexLike( x );\n* // returns true\n*\n* x = new Complex64( 4.0, 2.0 );\n* bool = isComplexLike( x );\n* // returns true\n*/\nfunction isComplexLike( value ) {\n\tif ( value instanceof Complex128 || value instanceof Complex64 ) {\n\t\treturn true;\n\t}\n\treturn (\n\t\ttypeof value === 'object' &&\n\t\tvalue !== null &&\n\t\ttypeof value.re === 'number' &&\n\t\ttypeof value.im === 'number'\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isComplexLike;\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 getGlobal from '@stdlib/utils/global';\n\n\n// VARIABLES //\n\nvar Global = getGlobal();\n\n\n// MAIN //\n\n/**\n* Tests for native `BigInt` support.\n*\n* @returns {boolean} boolean indicating if an environment has `BigInt` support\n*\n* @example\n* var bool = hasBigIntSupport();\n* // returns \n*/\nfunction hasBigIntSupport() {\n\treturn (\n\t\ttypeof Global.BigInt === 'function' &&\n\t\ttypeof BigInt === 'function' && // eslint-disable-line stdlib/require-globals\n\t\ttypeof Global.BigInt( '1' ) === 'bigint' &&\n\t\ttypeof BigInt( '1' ) === 'bigint' // eslint-disable-line stdlib/require-globals, no-undef\n\t);\n}\n\n\n// EXPORTS //\n\nexport default hasBigIntSupport;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport BYTES_PER_ELEMENT from './bytes_per_element.json';\n\n\n// MAIN //\n\n/**\n* Returns the number of bytes per element provided an underlying array data type.\n*\n* @param {string} dtype - data type\n* @returns {(NonNegativeInteger|null)} number of bytes per element\n*\n* @example\n* var nbytes = bytesPerElement( 'float64' );\n* // returns 8\n*\n* nbytes = bytesPerElement( 'generic' );\n* // returns null\n*/\nfunction bytesPerElement( dtype ) {\n\treturn BYTES_PER_ELEMENT[ dtype ] || null;\n}\n\n\n// EXPORTS //\n\nexport default bytesPerElement;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 array iteration order.\n*\n* ## Notes\n*\n* - Return value key:\n*\n* - `0`: unordered (i.e., strides of mixed sign; e.g., `[ 9, -3, 1 ]`)\n* - `1`: ordered left-to-right (i.e., all nonnegative strides)\n* - `-1`: ordered right-to-left (i.e., all negative strides)\n*\n* @param {IntegerArray} strides - stride array\n* @returns {integer} iteration order\n*\n* @example\n* var o = iterationOrder( [ 2, 1 ] );\n* // returns 1\n*\n* o = iterationOrder( [ -2, 1 ] );\n* // returns 0\n*\n* o = iterationOrder( [ -2, -1 ] );\n* // returns -1\n*/\nfunction iterationOrder( strides ) {\n\tvar cnt;\n\tvar i;\n\n\tcnt = 0;\n\tfor ( i = 0; i < strides.length; i++ ) {\n\t\tif ( strides[ i ] < 0 ) {\n\t\t\tcnt += 1;\n\t\t}\n\t}\n\tif ( cnt === 0 ) {\n\t\t// All nonnegative strides:\n\t\treturn 1|0; // asm-type annotation\n\t}\n\tif ( cnt === strides.length ) {\n\t\t// All negative strides:\n\t\treturn -1|0; // asm-type annotation\n\t}\n\t// Strides of mixed signs:\n\treturn 0|0; // asm-type annotation\n}\n\n\n// EXPORTS //\n\nexport default iterationOrder;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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 '@stdlib/math/base/special/abs';\n\n\n// MAIN //\n\n/**\n* Determines the order of a multidimensional array based on a provided stride array.\n*\n* @param {IntegerArray} strides - stride array\n* @returns {integer} order\n*\n* @example\n* import strides2order from '@stdlib/ndarray/base/strides2order';\n*\n* var order = strides2order( [ 2, 1 ] );\n* // returns 1\n*\n* order = strides2order( [ 1, 2 ] );\n* // returns 2\n*\n* order = strides2order( [ 1, 1, 1 ] );\n* // returns 3\n*\n* order = strides2order( [ 2, 3, 1 ] );\n* // returns 0\n*/\nfunction strides2order( strides ) {\n\tvar column;\n\tvar ndims;\n\tvar row;\n\tvar s1;\n\tvar s2;\n\tvar i;\n\n\tndims = strides.length;\n\tif ( ndims === 0 ) {\n\t\treturn 0|0; // 'none'\n\t}\n\tcolumn = true;\n\trow = true;\n\n\ts1 = abs( strides[ 0 ] );\n\tfor ( i = 1; i < ndims; i++ ) {\n\t\ts2 = abs( strides[ i ] );\n\t\tif ( column && s2 < s1 ) {\n\t\t\tcolumn = false;\n\t\t} else if ( row && s2 > s1 ) {\n\t\t\trow = false;\n\t\t}\n\t\tif ( row || column ) {\n\t\t\ts1 = s2;\n\t\t} else {\n\t\t\treturn 0|0; // 'none'\n\t\t}\n\t}\n\tif ( row && column ) {\n\t\treturn 3|0; // 'both'\n\t}\n\tif ( row ) {\n\t\treturn 1|0; // 'row-major'\n\t}\n\treturn 2|0; // 'column-major'\n}\n\n\n// EXPORTS //\n\nexport default strides2order;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Determines if an array is column-major contiguous.\n*\n* @private\n* @param {integer} order - **inferred** array order\n* @param {boolean} contiguous - boolean indicating is an array is contiguous\n* @returns {boolean} boolean indicating if an array is column-major contiguous\n*/\nfunction isColumnMajorContiguous( order, contiguous ) {\n\treturn contiguous && ( order === 2 || order === 3 );\n}\n\n\n// EXPORTS //\n\nexport default isColumnMajorContiguous;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Determines if an array is row-major contiguous.\n*\n* @private\n* @param {integer} order - **inferred** array order\n* @param {boolean} contiguous - boolean indicating is an array is contiguous\n* @returns {boolean} boolean indicating if an array is row-major contiguous\n*/\nfunction isRowMajorContiguous( order, contiguous ) {\n\treturn contiguous && ( order === 1 || order === 3 );\n}\n\n\n// EXPORTS //\n\nexport default isRowMajorContiguous;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 minimum and maximum linear indices in an underlying data buffer which are accessible to an array view.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {IntegerArray} strides - stride array\n* @param {NonNegativeInteger} offset - index offset\n* @returns {Array} linear indices\n*\n* @example\n* var shape = [ 10, 10 ];\n* var strides = [ 10, 1 ];\n* var offset = 10;\n*\n* var idx = minmaxViewBufferIndex( shape, strides, offset );\n* // returns [ 10, 109 ]\n*\n* @example\n* var shape = [ 10, 10 ];\n* var strides = [ -10, -1 ];\n* var offset = 99;\n*\n* var idx = minmaxViewBufferIndex( shape, strides, offset );\n* // returns [ 0, 99 ]\n*\n* @example\n* var shape = [ 10, 10 ];\n* var strides = [ 1, 10 ];\n* var offset = 10;\n*\n* var idx = minmaxViewBufferIndex( shape, strides, offset );\n* // returns [ 10, 109 ]\n*\n* @example\n* var shape = [ 10, 10 ];\n* var strides = [ -1, -10 ];\n* var offset = 99;\n*\n* var idx = minmaxViewBufferIndex( shape, strides, offset );\n* // returns [ 0, 99 ]\n*/\nfunction minmaxViewBufferIndex( shape, strides, offset ) {\n\tvar ndims;\n\tvar min;\n\tvar max;\n\tvar s;\n\tvar i;\n\n\tndims = shape.length;\n\tmin = offset;\n\tmax = offset;\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\tif ( shape[ i ] === 0 ) {\n\t\t\treturn [ offset, offset ];\n\t\t}\n\t\ts = strides[ i ];\n\t\tif ( s > 0 ) {\n\t\t\tmax += s * ( shape[i]-1 );\n\t\t} else if ( s < 0 ) {\n\t\t\tmin += s * ( shape[i]-1 ); // decrements min\n\t\t}\n\t}\n\treturn [ min, max ];\n}\n\n\n// EXPORTS //\n\nexport default minmaxViewBufferIndex;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 minimum and maximum linear indices in an underlying data buffer which are accessible to an array view.\n*\n* @module @stdlib/ndarray/base/minmax-view-buffer-index\n*\n* @example\n* import minmaxViewBufferIndex from '@stdlib/ndarray/base/minmax-view-buffer-index';\n*\n* var shape = [ 10, 10 ];\n* var strides = [ 10, 1 ];\n* var offset = 10;\n*\n* var idx = minmaxViewBufferIndex( shape, strides, offset );\n* // returns [ 10, 109 ]\n*\n* @example\n* import minmaxViewBufferIndex from '@stdlib/ndarray/base/minmax-view-buffer-index';\n*\n* var shape = [ 10, 10 ];\n* var strides = [ -10, -1 ];\n* var offset = 99;\n*\n* var idx = minmaxViewBufferIndex( shape, strides, offset );\n* // returns [ 0, 99 ]\n*\n* @example\n* import minmaxViewBufferIndex from '@stdlib/ndarray/base/minmax-view-buffer-index';\n*\n* var shape = [ 10, 10 ];\n* var strides = [ 1, 10 ];\n* var offset = 10;\n*\n* var idx = minmaxViewBufferIndex( shape, strides, offset );\n* // returns [ 10, 109 ]\n*\n* @example\n* import minmaxViewBufferIndex from '@stdlib/ndarray/base/minmax-view-buffer-index';\n*\n* var shape = [ 10, 10 ];\n* var strides = [ -1, -10 ];\n* var offset = 99;\n*\n* var idx = minmaxViewBufferIndex( shape, strides, offset );\n* // returns [ 0, 99 ]\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// MAIN //\n\n/**\n* Computes the minimum and maximum linear indices in an underlying data buffer which are accessible to an array view and assigns results to a provided output array.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {IntegerArray} strides - stride array\n* @param {NonNegativeInteger} offset - index offset\n* @param {(Array|TypedArray|Object)} out - output object\n* @returns {(Array|TypedArray|Object)} linear indices\n*\n* @example\n* var shape = [ 10, 10 ];\n* var strides = [ 10, 1 ];\n* var offset = 10;\n*\n* var out = [ 0, 0 ];\n* var idx = minmaxViewBufferIndex( shape, strides, offset, out );\n* // returns [ 10, 109 ]\n*\n* var bool = ( idx === out );\n* // returns true\n*\n* @example\n* var shape = [ 10, 10 ];\n* var strides = [ -10, -1 ];\n* var offset = 99;\n*\n* var out = [ 0, 0 ];\n* var idx = minmaxViewBufferIndex( shape, strides, offset, out );\n* // returns [ 0, 99 ]\n*\n* var bool = ( idx === out );\n* // returns true\n*\n* @example\n* var shape = [ 10, 10 ];\n* var strides = [ 1, 10 ];\n* var offset = 10;\n*\n* var out = [ 0, 0 ];\n* var idx = minmaxViewBufferIndex( shape, strides, offset, out );\n* // returns [ 10, 109 ]\n*\n* var bool = ( idx === out );\n* // returns true\n*\n* @example\n* var shape = [ 10, 10 ];\n* var strides = [ -1, -10 ];\n* var offset = 99;\n*\n* var out = [ 0, 0 ];\n* var idx = minmaxViewBufferIndex( shape, strides, offset, out );\n* // returns [ 0, 99 ]\n*\n* var bool = ( idx === out );\n* // returns true\n*/\nfunction minmaxViewBufferIndex( shape, strides, offset, out ) {\n\tvar ndims;\n\tvar min;\n\tvar max;\n\tvar s;\n\tvar i;\n\n\tndims = shape.length;\n\tmin = offset;\n\tmax = offset;\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\tif ( shape[ i ] === 0 ) {\n\t\t\tout[ 0 ] = offset;\n\t\t\tout[ 1 ] = offset;\n\t\t\treturn out;\n\t\t}\n\t\ts = strides[ i ];\n\t\tif ( s > 0 ) {\n\t\t\tmax += s * ( shape[i]-1 );\n\t\t} else if ( s < 0 ) {\n\t\t\tmin += s * ( shape[i]-1 ); // decrements min\n\t\t}\n\t}\n\tout[ 0 ] = min;\n\tout[ 1 ] = max;\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default minmaxViewBufferIndex;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { isPrimitive as isString } from '@stdlib/assert/is-string';\nimport format from '@stdlib/string/format';\n\n\n// VARIABLES //\n\nvar RE_CHARS = /[-\\/\\\\^$*+?.()|[\\]{}]/g; // eslint-disable-line no-useless-escape\n\n\n// MAIN //\n\n/**\n* Escapes a regular expression string.\n*\n* @param {string} str - regular expression string\n* @throws {TypeError} first argument must be a string\n* @returns {string} escaped string\n*\n* @example\n* var str = rescape( '[A-Z]*' );\n* // returns '\\\\[A\\\\-Z\\\\]\\\\*'\n*/\nfunction rescape( str ) {\n\tvar len;\n\tvar s;\n\tvar i;\n\n\tif ( !isString( str ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide a regular expression string. Value: `%s`.', str ) );\n\t}\n\t// Check if the string starts with a forward slash...\n\tif ( str[ 0 ] === '/' ) {\n\t\t// Find the last forward slash...\n\t\tlen = str.length;\n\t\tfor ( i = len-1; i >= 0; i-- ) {\n\t\t\tif ( str[ i ] === '/' ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\t// If we searched the string to no avail or if the first letter is not `/`, assume that the string is not of the form `/[...]/[guimy]`:\n\tif ( i === void 0 || i <= 0 ) {\n\t\treturn str.replace( RE_CHARS, '\\\\$&' );\n\t}\n\t// We need to de-construct the string...\n\ts = str.substring( 1, i );\n\n\t// Only escape the characters between the `/`:\n\ts = s.replace( RE_CHARS, '\\\\$&' );\n\n\t// Reassemble:\n\tstr = str[ 0 ] + s + str.substring( i );\n\n\treturn str;\n}\n\n\n// EXPORTS //\n\nexport default rescape;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\nvar exec = RegExp.prototype.exec; // non-generic\n\n\n// EXPORTS //\n\nexport default exec;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport hasToStringTag from './../../has-tostringtag-support';\nimport nativeClass from '@stdlib/utils/native-class';\nimport test from './try2exec.js';\n\n\n// VARIABLES //\n\nvar FLG = hasToStringTag();\n\n\n// MAIN //\n\n/**\n* Tests if a value is a regular expression.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether value is a regular expression\n*\n* @example\n* var bool = isRegExp( /\\.+/ );\n* // returns true\n*\n* @example\n* var bool = isRegExp( {} );\n* // returns false\n*/\nfunction isRegExp( value ) {\n\tif ( typeof value === 'object' ) {\n\t\tif ( value instanceof RegExp ) {\n\t\t\treturn true;\n\t\t}\n\t\tif ( FLG ) {\n\t\t\treturn test( value );\n\t\t}\n\t\treturn ( nativeClass( value ) === '[object RegExp]' );\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default isRegExp;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport exec from './exec.js';\n\n\n// MAIN //\n\n/**\n* Attempts to call a `RegExp` method.\n*\n* @private\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if able to call a `RegExp` method\n*/\nfunction test( value ) {\n\ttry {\n\t\texec.call( value );\n\t\treturn true;\n\t} catch ( err ) { // eslint-disable-line no-unused-vars\n\t\treturn false;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default test;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport rescape from '@stdlib/utils/escape-regexp-string';\nimport isFunction from '@stdlib/assert/is-function';\nimport { isPrimitive as isString } from '@stdlib/assert/is-string';\nimport isRegExp from '@stdlib/assert/is-regexp';\nimport format from './../../format';\nimport base from './../../base/replace';\n\n\n// MAIN //\n\n/**\n* Replaces search occurrences with a replacement string.\n*\n* @param {string} str - input string\n* @param {(string|RegExp)} search - search expression\n* @param {(string|Function)} newval - replacement value or function\n* @throws {TypeError} first argument must be a string\n* @throws {TypeError} second argument argument must be a string or regular expression\n* @throws {TypeError} third argument must be a string or function\n* @returns {string} new string containing replacement(s)\n*\n* @example\n* var str = 'beep';\n* var out = replace( str, 'e', 'o' );\n* // returns 'boop'\n*\n* @example\n* var str = 'Hello World';\n* var out = replace( str, /world/i, 'Mr. President' );\n* // returns 'Hello Mr. President'\n*\n* @example\n* import capitalize from '@stdlib/string/capitalize';\n*\n* var str = 'Oranges and lemons say the bells of St. Clement\\'s';\n*\n* function replacer( match, p1 ) {\n* return capitalize( p1 );\n* }\n*\n* var out = replace( str, /([^\\s]*)/gi, replacer );\n* // returns 'Oranges And Lemons Say The Bells Of St. Clement\\'s'\n*/\nfunction replace( str, search, newval ) {\n\tif ( !isString( str ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a string. Value: `%s`.', str ) );\n\t}\n\tif ( isString( search ) ) {\n\t\tsearch = new RegExp( rescape( search ), 'g' );\n\t} else if ( !isRegExp( search ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be a string or regular expression. Value: `%s`.', search ) );\n\t}\n\tif ( !isString( newval ) && !isFunction( newval ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Third argument must be a string or replacement function. Value: `%s`.', newval ) );\n\t}\n\treturn base( str, search, newval );\n}\n\n\n// EXPORTS //\n\nexport default replace;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport replace from '@stdlib/string/replace';\nimport real from '@stdlib/complex/float64/real';\nimport imag from '@stdlib/complex/float64/imag';\n\n\n// VARIABLES //\n\nvar CTORS = {\n\t'int8': 'new Int8Array( [ {{data}} ] )',\n\t'uint8': 'new Uint8Array( [ {{data}} ] )',\n\t'uint8c': 'new Uint8ClampedArray( [ {{data}} ] )',\n\t'int16': 'new Int16Array( [ {{data}} ] )',\n\t'uint16': 'new Uint16Array( [ {{data}} ] )',\n\t'int32': 'new Int32Array( [ {{data}} ] )',\n\t'uint32': 'new Uint32Array( [ {{data}} ] )',\n\t'float32': 'new Float32Array( [ {{data}} ] )',\n\t'float64': 'new Float64Array( [ {{data}} ] )',\n\t'generic': '[ {{data}} ]',\n\t'binary': 'new Buffer( [ {{data}} ] )',\n\t'complex64': 'new Complex64Array( [ {{data}} ] )',\n\t'complex128': 'new Complex128Array( [ {{data}} ] )'\n};\n\n\n// MAIN //\n\n/**\n* Serializes an ndarray as a string.\n*\n* ## Notes\n*\n* - The method does **not** serialize data outside of the buffer region defined by the array configuration.\n*\n* @private\n* @returns {string} string representation\n*/\nfunction toString() { // eslint-disable-line stdlib/no-redeclare\n\t/* eslint-disable no-invalid-this */\n\tvar buffer;\n\tvar ndims;\n\tvar ctor;\n\tvar str;\n\tvar dt;\n\tvar v;\n\tvar i;\n\n\tndims = this._shape.length;\n\tdt = this._dtype;\n\n\t// Function to invoke to create an ndarray:\n\tstr = 'ndarray( \\''+dt+'\\', ';\n\n\t// Data buffer parameter...\n\tbuffer = '';\n\tif ( this._length <= 100 ) {\n\t\tif ( dt === 'complex64' || dt === 'complex128' ) {\n\t\t\tfor ( i = 0; i < this._length; i++ ) {\n\t\t\t\tv = this.iget( i );\n\t\t\t\tbuffer += real( v ) + ', ' + imag( v );\n\t\t\t\tif ( i < this._length-1 ) {\n\t\t\t\t\tbuffer += ', ';\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor ( i = 0; i < this._length; i++ ) {\n\t\t\t\tbuffer += this.iget( i );\n\t\t\t\tif ( i < this._length-1 ) {\n\t\t\t\t\tbuffer += ', ';\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t} else {\n\t\t// First three values...\n\t\tif ( dt === 'complex64' || dt === 'complex128' ) {\n\t\t\tfor ( i = 0; i < 3; i++ ) {\n\t\t\t\tv = this.iget( i );\n\t\t\t\tbuffer += real( v ) + ', ' + imag( v );\n\t\t\t\tif ( i < 2 ) {\n\t\t\t\t\tbuffer += ', ';\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor ( i = 0; i < 3; i++ ) {\n\t\t\t\tbuffer += this.iget( i );\n\t\t\t\tif ( i < 2 ) {\n\t\t\t\t\tbuffer += ', ';\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tbuffer += ', ..., ';\n\n\t\t// Last three values...\n\t\tif ( dt === 'complex64' || dt === 'complex128' ) {\n\t\t\tfor ( i = 2; i >= 0; i-- ) {\n\t\t\t\tv = this.iget( this._length-1-i );\n\t\t\t\tbuffer += real( v ) + ', ' + imag( v );\n\t\t\t\tif ( i > 0 ) {\n\t\t\t\t\tbuffer += ', ';\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor ( i = 2; i >= 0; i-- ) {\n\t\t\t\tbuffer += this.iget( this._length-1-i );\n\t\t\t\tif ( i > 0 ) {\n\t\t\t\t\tbuffer += ', ';\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tctor = CTORS[ this.dtype ];\n\tstr += replace( ctor, '{{data}}', buffer );\n\tstr += ', ';\n\n\t// Array shape...\n\tif ( ndims === 0 ) {\n\t\tstr += '[]';\n\t} else {\n\t\tstr += '[ ' + this._shape.join( ', ' ) + ' ]';\n\t}\n\tstr += ', ';\n\n\t// Stride array...\n\tstr += '[ ';\n\tif ( ndims === 0 ) {\n\t\tstr += '0';\n\t} else {\n\t\tfor ( i = 0; i < ndims; i++ ) {\n\t\t\tif ( this._strides[ i ] < 0 ) {\n\t\t\t\tstr += -this._strides[ i ];\n\t\t\t} else {\n\t\t\t\tstr += this._strides[ i ];\n\t\t\t}\n\t\t\tif ( i < ndims-1 ) {\n\t\t\t\tstr += ', ';\n\t\t\t}\n\t\t}\n\t}\n\tstr += ' ]';\n\tstr += ', ';\n\n\t// Buffer offset:\n\tstr += '0';\n\tstr += ', ';\n\n\t// Order:\n\tstr += '\\'' + this._order + '\\'';\n\n\t// Close the function call:\n\tstr += ' )';\n\treturn str;\n\n\t/* eslint-enable no-invalid-this */\n}\n\n\n// EXPORTS //\n\nexport default toString;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport nativeClass from '@stdlib/utils/native-class';\n\n\n// VARIABLES //\n\nvar hasArrayBuffer = ( typeof ArrayBuffer === 'function' ); // eslint-disable-line stdlib/require-globals\n\n\n// MAIN //\n\n/**\n* Tests if a value is an ArrayBuffer.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether value is an ArrayBuffer\n*\n* @example\n* import ArrayBuffer from '@stdlib/array/buffer';\n*\n* var bool = isArrayBuffer( new ArrayBuffer( 10 ) );\n* // returns true\n*\n* @example\n* var bool = isArrayBuffer( [] );\n* // returns false\n*/\nfunction isArrayBuffer( value ) {\n\treturn (\n\t\t( hasArrayBuffer && value instanceof ArrayBuffer ) || // eslint-disable-line stdlib/require-globals\n\t\tnativeClass( value ) === '[object ArrayBuffer]'\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isArrayBuffer;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 main = ( typeof ArrayBuffer === 'function' ) ? ArrayBuffer : null; // eslint-disable-line stdlib/require-globals\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// MAIN //\n\nvar ctor = ( typeof ArrayBuffer === 'function' ) ? ArrayBuffer : void 0; // eslint-disable-line stdlib/require-globals\n\n\n// EXPORTS //\n\nexport default ctor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Constructor which returns an object used to represent a generic, fixed-length raw binary data buffer.\n*\n* @module @stdlib/array/buffer\n*\n* @example\n* import ctor from '@stdlib/array/buffer';\n*\n* var buf = new ctor( 10 );\n* // returns \n*/\n\n// MODULES //\n\nimport hasArrayBufferSupport from '@stdlib/assert/has-arraybuffer-support';\nimport builtin from './main.js';\nimport polyfill from './polyfill.js';\n\n\n// MAIN //\n\nvar ctor;\nif ( hasArrayBufferSupport() ) {\n\tctor = builtin;\n} else {\n\tctor = polyfill;\n}\n\n\n// EXPORTS //\n\nexport default ctor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isArrayBuffer from './../../is-arraybuffer';\nimport Float64Array from '@stdlib/array/float64';\nimport GlobalArrayBuffer from './arraybuffer.js';\n\n\n// MAIN //\n\n/**\n* Tests for native `ArrayBuffer` support.\n*\n* @returns {boolean} boolean indicating if an environment has `ArrayBuffer` support\n*\n* @example\n* var bool = hasArrayBufferSupport();\n* // returns \n*/\nfunction hasArrayBufferSupport() {\n\tvar bool;\n\tvar view;\n\tvar buf;\n\n\tif ( typeof GlobalArrayBuffer !== 'function' ) {\n\t\treturn false;\n\t}\n\t// Test basic support...\n\ttry {\n\t\tbuf = new GlobalArrayBuffer( 16 );\n\t\tbool = ( isArrayBuffer( buf ) && typeof GlobalArrayBuffer.isView === 'function' );\n\t\tif ( bool ) {\n\t\t\tview = new Float64Array( buf );\n\t\t\tview[ 0 ] = -3.14;\n\t\t\tview[ 1 ] = NaN;\n\t\t\tbool = (\n\t\t\t\tbool &&\n\t\t\t\tGlobalArrayBuffer.isView( view ) &&\n\t\t\t\tbuf.byteLength === 16 &&\n\t\t\t\tview[ 0 ] === -3.14 &&\n\t\t\t\tview[ 1 ] !== view[ 1 ]\n\t\t\t);\n\t\t}\n\t} catch ( err ) { // eslint-disable-line no-unused-vars\n\t\tbool = false;\n\t}\n\treturn bool;\n}\n\n\n// EXPORTS //\n\nexport default hasArrayBufferSupport;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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: write polyfill\n\n// MAIN //\n\n/**\n* Constructor which returns an object used to represent a generic, fixed-length raw binary data buffer.\n*\n* @throws {Error} not implemented\n*/\nfunction polyfill() {\n\tthrow new Error( 'not implemented' );\n}\n\n\n// EXPORTS //\n\nexport default polyfill;\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 nativeClass from '@stdlib/utils/native-class';\n\n\n// VARIABLES //\n\nvar hasDataView = ( typeof DataView === 'function' ); // eslint-disable-line stdlib/require-globals\n\n\n// MAIN //\n\n/**\n* Tests if a value is a `DataView`.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether value is a DataView\n*\n* @example\n* import ArrayBuffer from '@stdlib/array/buffer';\n* import DataView from '@stdlib/array/dataview';\n*\n* var bool = isDataView( new DataView( new ArrayBuffer( 10 ) ) );\n* // returns true\n*\n* @example\n* var bool = isDataView( [] );\n* // returns false\n*/\nfunction isDataView( value ) {\n\treturn (\n\t\t( hasDataView && value instanceof DataView ) || // eslint-disable-line stdlib/require-globals\n\t\tnativeClass( value ) === '[object DataView]'\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isDataView;\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\nvar main = ( typeof DataView === 'function' ) ? DataView : null; // eslint-disable-line stdlib/require-globals\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// MAIN //\n\nvar ctor = ( typeof DataView === 'function' ) ? DataView : void 0; // eslint-disable-line stdlib/require-globals\n\n\n// EXPORTS //\n\nexport default ctor;\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* Constructor which returns a data view representing a provided array buffer.\n*\n* @module @stdlib/array/dataview\n*\n* @example\n* import ArrayBuffer from '@stdlib/array/buffer';\n* import DataView from '@stdlib/array/dataview';\n*\n* var buf = new ArrayBuffer( 10 );\n* // returns \n*\n* var dv = new DataView( buf );\n* // returns \n*/\n\n// MODULES //\n\nimport hasDataViewSupport from '@stdlib/assert/has-dataview-support';\nimport builtin from './main.js';\nimport polyfill from './polyfill.js';\n\n\n// MAIN //\n\nvar ctor;\nif ( hasDataViewSupport() ) {\n\tctor = builtin;\n} else {\n\tctor = polyfill;\n}\n\n\n// EXPORTS //\n\nexport default ctor;\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 isDataView from './../../is-dataview';\nimport ArrayBuffer from '@stdlib/array/buffer';\nimport GlobalDataView from './dataview.js';\n\n\n// MAIN //\n\n/**\n* Tests for native `DataView` support.\n*\n* @returns {boolean} boolean indicating if an environment has `DataView` support\n*\n* @example\n* var bool = hasDataViewSupport();\n* // returns \n*/\nfunction hasDataViewSupport() {\n\tvar bool;\n\tvar view;\n\tvar buf;\n\n\tif ( typeof GlobalDataView !== 'function' ) {\n\t\treturn false;\n\t}\n\t// Test basic support...\n\ttry {\n\t\tbuf = new ArrayBuffer( 24 );\n\t\tview = new GlobalDataView( buf, 8 );\n\t\tbool = ( isDataView( view ) && typeof view.getFloat64 === 'function' && typeof view.setFloat64 === 'function' );\n\t\tif ( bool ) {\n\t\t\tview.setFloat64( 0, -3.14 );\n\t\t\tview.setFloat64( 8, NaN );\n\t\t\tbool = (\n\t\t\t\tbool &&\n\t\t\t\tview.buffer === buf &&\n\t\t\t\tview.byteLength === 16 &&\n\t\t\t\tview.byteOffset === 8 &&\n\t\t\t\tview.getFloat64( 0 ) === -3.14 &&\n\t\t\t\tview.getFloat64( 8 ) !== view.getFloat64( 8 )\n\t\t\t);\n\t\t}\n\t} catch ( err ) { // eslint-disable-line no-unused-vars\n\t\tbool = false;\n\t}\n\treturn bool;\n}\n\n\n// EXPORTS //\n\nexport default hasDataViewSupport;\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// TODO: write polyfill\n\n// MAIN //\n\n/**\n* Constructor which returns a data view representing a provided array buffer.\n*\n* @throws {Error} not implemented\n*/\nfunction polyfill() {\n\tthrow new Error( 'not implemented' );\n}\n\n\n// EXPORTS //\n\nexport default polyfill;\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/* global BigInt */\n\n'use strict';\n\n// MAIN //\n\nvar BigInteger = ( typeof BigInt === 'function' ) ? BigInt : void 0; // eslint-disable-line stdlib/require-globals, node/no-unsupported-features/es-builtins\n\n\n// EXPORTS //\n\nexport default BigInteger;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport ORDERS from './orders.json';\n\n\n// MAIN //\n\n/**\n* Returns a list of ndarray orders.\n*\n* @returns {StringArray} list of ndarray orders\n*\n* @example\n* var list = orders();\n* // e.g., returns [ 'row-major', 'column-major' ]\n*/\nfunction orders() {\n\treturn ORDERS.slice();\n}\n\n\n// EXPORTS //\n\nexport default orders;\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// MAIN //\n\n/**\n* Returns an object mapping supported layouts to integer values for purposes of C inter-operation.\n*\n* ## Notes\n*\n* - Downstream consumers of this mapping should **not** rely on specific integer values (e.g., `row-major == 101`). Instead, the object should be used in an opaque manner.\n* - The main purpose of this function is JavaScript and C inter-operation of array objects.\n*\n* @returns {Object} object mapping supported layouts to integer values\n*\n* @example\n* var table = enumerated();\n* // returns \n*/\nfunction enumerated() {\n\t// NOTE: the following should match the C `layouts.h` enumeration!!!!\n\treturn {\n\t\t// Row-major (C-style):\n\t\t'row-major': 101,\n\n\t\t// Column-major (Fortran-style):\n\t\t'column-major': 102\n\t};\n}\n\n\n// EXPORTS //\n\nexport default enumerated;\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* Return a list of BLAS memory layouts.\n*\n* @module @stdlib/blas/base/layouts\n*\n* @example\n* import layouts from '@stdlib/blas/base/layouts';\n*\n* var list = layouts();\n* // e.g., returns [ 'row-major', 'column-major' ]\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport enumeration from './enum.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'enum', enumeration );\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 DATA from './data.json';\n\n\n// MAIN //\n\n/**\n* Returns a list of BLAS memory layouts.\n*\n* @returns {StringArray} list of memory layouts\n*\n* @example\n* var list = layouts();\n* // e.g., returns [ 'row-major', 'column-major' ]\n*/\nfunction layouts() {\n\treturn DATA.slice();\n}\n\n\n// EXPORTS //\n\nexport default layouts;\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 { enum as layouts } from '@stdlib/blas/base/layouts';\n\n\n// VARIABLES //\n\nvar LAYOUTS = layouts();\n\n\n// MAIN //\n\n/**\n* Returns an object mapping supported orders to integer values for purposes of C inter-operation.\n*\n* ## Notes\n*\n* - Downstream consumers of this mapping should **not** rely on specific integer values (e.g., `row-major == 1`). Instead, the object should be used in an opaque manner.\n* - The main purpose of this function is JavaScript and C inter-operation of ndarray objects.\n*\n* @returns {Object} object mapping supported orders to integer values\n*\n* @example\n* var table = enumerated();\n* // returns \n*/\nfunction enumerated() {\n\t// NOTE: the following should match the C `orders.h` enumeration!!!!\n\treturn {\n\t\t// Row-major (C-style):\n\t\t'row-major': LAYOUTS[ 'row-major' ],\n\n\t\t// Column-major (Fortran-style):\n\t\t'column-major': LAYOUTS[ 'column-major' ]\n\t};\n}\n\n\n// EXPORTS //\n\nexport default enumerated;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 a list of ndarray orders.\n*\n* @module @stdlib/ndarray/orders\n*\n* @example\n* import orders from '@stdlib/ndarray/orders';\n*\n* var list = orders();\n* // e.g., returns [ 'row-major', 'column-major' ]\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport enumeration from './enum.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'enum', enumeration );\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 MODES from './modes.json';\n\n\n// MAIN //\n\n/**\n* Returns a list of ndarray index modes.\n*\n* @returns {StringArray} list of ndarray index modes\n*\n* @example\n* var list = modes();\n* // returns [ 'throw', 'normalize', 'clamp', 'wrap' ]\n*/\nfunction modes() {\n\treturn MODES.slice();\n}\n\n\n// EXPORTS //\n\nexport default modes;\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* Returns an object mapping supported index modes to integer values for purposes of C inter-operation.\n*\n* ## Notes\n*\n* - Downstream consumers of this mapping should **not** rely on specific integer values (e.g., `throw == 1`). Instead, the object should be used in an opaque manner.\n* - The main purpose of this function is JavaScript and C inter-operation of ndarray objects.\n*\n* @returns {Object} object mapping supported index modes to integer values\n*\n* @example\n* var table = enumerated();\n* // returns \n*/\nfunction enumerated() {\n\t// NOTE: the following should match the C `index_modes.h` enumeration!!!!\n\treturn {\n\t\t'throw': 1,\n\t\t'clamp': 2,\n\t\t'wrap': 3,\n\t\t'normalize': 4\n\t};\n}\n\n\n// EXPORTS //\n\nexport default enumerated;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 a list of ndarray index modes.\n*\n* @module @stdlib/ndarray/index-modes\n*\n* @example\n* import modes from '@stdlib/ndarray/index-modes';\n*\n* var list = modes();\n* // returns [ 'throw', 'normalize', 'clamp', 'wrap' ]\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport modes from './main.js';\nimport enumeration from './enum.js';\n\n\n// MAIN //\n\nsetReadOnly( modes, 'enum', enumeration );\n\n\n// EXPORTS //\n\nexport default modes;\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 IS_LITTLE_ENDIAN from '@stdlib/assert/is-little-endian';\nimport ArrayBuffer from '@stdlib/array/buffer';\nimport DataView from '@stdlib/array/dataview';\nimport BigInt from '@stdlib/bigint/ctor';\nimport { enum as dtypes } from './../../../dtypes';\nimport { enum as orders } from './../../../orders';\nimport { enum as modes } from './../../../index-modes';\n\n\n// VARIABLES //\n\nvar DTYPES = dtypes();\nvar ORDERS = orders();\nvar MODES = modes();\n\n\n// FUNCTIONS //\n\n/**\n* Serializes ndarray meta data to a `DataView`.\n*\n* ## Notes\n*\n* - This function takes into account ndarray-like objects which may support index modes.\n*\n* - This function defaults to returning cached serialized meta data. To force serialization, set the private `__meta_dataview__` property to `null`.\n*\n* - Serialization is performed according to host byte order (endianness).\n*\n* - Meta data format:\n*\n* ```text\n* | endianness (1 byte) | (2 bytes) | (8 bytes) | (ndims*8 bytes) | (ndims*8 bytes) | (8 bytes) | (1 byte) | (1 byte) | (8 bytes) | (nsubmodes*1 bytes) | (4 bytes) |\n* ```\n*\n* which translates to the following `ArrayBuffer` layout:\n*\n* ```text\n* ArrayBuffer[\n* [int8],\n* [int16],\n* [int64],\n* [ndims*int64],\n* [ndims*int64],\n* [int64],\n* [int8],\n* [int8],\n* [int64],\n* [nsubmodes*int8],\n* [int32]\n* ]\n* ```\n*\n* where `strides` and `offset` are in units of bytes.\n*\n* - If the endianness is `1`, the byte order is little endian. If the endianness is `0`, the byte order is big endian.\n*\n* - Buffer length:\n*\n* ```text\n* 1 + 2 + 8 + (ndims*8) + (ndims*8) + 8 + 1 + 1 + 8 + (nsubmodes*1) + 4 = 33 + (ndims*16) + nsubmodes\n* ```\n*\n* For example, consider a three-dimensional ndarray with one subscript index mode (submode):\n*\n* ```text\n* 33 + (3*16) + 1 = 82 bytes\n* ```\n*\n* - Views:\n*\n* - endianness: `Int8Array( buf, 0, 1 )`\n* - dtype: `Int16Array( buf, 1, 1 )`\n* - ndims: `Int64Array( buf, 3, 1 )`\n* - shape: `Int64Array( buf, 11, ndims )`\n* - strides: `Int64Array( buf, 11+(ndims*8), ndims )`\n* - offset: `Int64Array( buf, 11+(ndims*16), 1 )`\n* - order: `Int8Array( buf, 19+(ndims*16), 1 )`\n* - mode: `Int8Array( buf, 20+(ndims*16), 1 )`\n* - nsubmodes: `Int64Array( buf, 21+(ndims*16), 1 )`\n* - submodes: `Int8Array( buf, 29+(ndims*16), nsubmodes )`\n* - flags: `Int32Array( buf, 29+(ndims*16)+nsubmodes, 1 )`\n*\n* @private\n* @returns {DataView} serialized meta data\n*/\nfunction meta2dataview() {\n\t/* eslint-disable no-invalid-this */\n\tvar nbytes;\n\tvar flgs;\n\tvar len;\n\tvar dt;\n\tvar sh;\n\tvar st;\n\tvar sm;\n\tvar v;\n\tvar m;\n\tvar o;\n\tvar s;\n\tvar N;\n\tvar M;\n\tvar i;\n\n\tm = this._mode || 'throw';\n\tsm = this._submode || [ m ];\n\tN = this._ndims;\n\tM = sm.length;\n\n\t// Compute the amount of memory we need to allocate for storing meta data:\n\tlen = 33 + (N*16) + M;\n\n\t// Check if we've already serialized ndarray meta data and can reuse an already allocated array buffer...\n\tv = this.__meta_dataview__;\n\tif ( v && v.byteLength === len ) { // Note: the byte length check is only a bare minimum sanity check, as cached contents may still be \"stale\" (e.g., shape and/or strides may have changed)\n\t\treturn v;\n\t}\n\t// Allocate raw memory and create a view for interfacing with the allocated memory:\n\tv = new DataView( new ArrayBuffer( len ) );\n\n\t// Retrieve ndarray meta data:\n\tsh = this._shape;\n\tst = this._strides;\n\tdt = this._dtype;\n\tnbytes = this._bytesPerElement;\n\n\t// Endianness: (byteoffset: 0; bytelength: 1)\n\to = 0;\n\tv.setInt8( o, ( IS_LITTLE_ENDIAN ) ? 1 : 0 );\n\n\t// Data type: (byteoffset: 1; bytelength: 2)\n\to += 1;\n\tv.setInt16( o, DTYPES[ dt ], IS_LITTLE_ENDIAN );\n\n\t// Number of dimensions: (byteoffset: 3; bytelength: 8)\n\to += 2;\n\tv.setBigInt64( o, BigInt( N ), IS_LITTLE_ENDIAN );\n\n\t// Shape and strides: (byteoffset: 11 and 11+(ndims*8), respectively; bytelength: ndims*8 for both shape and strides, and, thus, ndims*16 total)\n\ts = N * 8; // stride length between a dimension (shape[i]) and its associated stride\n\to += 8;\n\tfor ( i = 0; i < N; i++ ) {\n\t\tv.setBigInt64( o, BigInt( sh[i] ), IS_LITTLE_ENDIAN );\n\t\tv.setBigInt64( o+s, BigInt( st[i]*nbytes ), IS_LITTLE_ENDIAN );\n\t\to += 8;\n\t}\n\t// Offset: (byteoffset: 11+(ndims*16); bytelength: 8)\n\to += s;\n\tv.setBigInt64( o, BigInt( this._offset*nbytes ), IS_LITTLE_ENDIAN );\n\n\t// Order: (byteoffset: 19+(ndims*16); bytelength: 1)\n\to += 8;\n\tv.setInt8( o, ORDERS[ this._order ] );\n\n\t// Mode: (byteoffset: 20+(ndims*16); bytelength: 1)\n\to += 1;\n\tv.setInt8( o, MODES[ m ] );\n\n\t// Number of submodes: (byteoffset: 21+(ndims*16); bytelength: 8)\n\to += 1;\n\tv.setBigInt64( o, BigInt( M ), IS_LITTLE_ENDIAN );\n\n\t// Submodes: (byteoffset: 29+(ndims*16); bytelength: nsubmodes*1)\n\to += 8;\n\tfor ( i = 0; i < M; i++ ) {\n\t\tv.setInt8( o, MODES[ sm[i] ] );\n\t\to += 1;\n\t}\n\t// Flags: (byteoffset: 29+(ndims*16)+nsubmodes; bytelength: 4)\n\tflgs = 0|0;\n\tflgs |= ( this._flags.READONLY ) ? 4 : 0; // 00000000 00000000 00000000 00000100\n\tv.setInt32( o, flgs, IS_LITTLE_ENDIAN );\n\n\t// Cache the serialized meta data:\n\tthis.__meta_dataview__ = v;\n\n\treturn v;\n\n\t/* eslint-enable no-invalid-this */\n}\n\n\n// EXPORTS //\n\nexport default meta2dataview;\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 IS_LITTLE_ENDIAN from '@stdlib/assert/is-little-endian';\nimport Uint8Array from '@stdlib/array/uint8';\nimport DataView from '@stdlib/array/dataview';\nimport floor from '@stdlib/math/base/special/floor';\n\n\n// VARIABLES //\n\n// 0xFFFFFFFF = 2**32 - 1 => 11111111 11111111 11111111 11111111\nvar LOW_MASK = 0xFFFFFFFF >>> 0;\n\n// 2**32\nvar TWO_32 = 4294967296;\n\n// Byte array workspace:\nvar BYTES = new Uint8Array( 8 );\nvar VIEW = new DataView( BYTES.buffer );\n\n\n// MAIN //\n\n/**\n* Converts an integer-valued double-precision floating-point number to a signed 64-bit integer byte array according to host byte order (endianness).\n*\n* ## Notes\n*\n* - This function assumes that the input value is less than the maximum safe double-precision floating-point integer plus one (i.e., `2**53`).\n*\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* import Uint8Array from '@stdlib/array/uint8';\n*\n* var out = new Uint8Array( 8 );\n* var bytes = float64ToInt64Bytes( 1.0, out, 1, 0 );\n* // returns \n*/\nfunction float64ToInt64Bytes( x, out, stride, offset ) {\n\tvar hi;\n\tvar lo;\n\tvar i;\n\n\tif ( x === 0 ) {\n\t\tfor ( i = 0; i < BYTES.length; i++ ) {\n\t\t\tout[ offset ] = 0;\n\t\t\toffset += stride;\n\t\t}\n\t\treturn out;\n\t}\n\t// Get the low 32-bit word:\n\tlo = (x&LOW_MASK)>>>0;\n\n\t// Get the high 32-bit word:\n\thi = floor( x/TWO_32 );\n\n\t// Insert the high and low words according to host byte order (endianness):\n\tif ( IS_LITTLE_ENDIAN ) {\n\t\tVIEW.setUint32( 0, lo, IS_LITTLE_ENDIAN );\n\t\tVIEW.setUint32( 4, hi, IS_LITTLE_ENDIAN );\n\t} else {\n\t\tVIEW.setUint32( 0, hi, IS_LITTLE_ENDIAN );\n\t\tVIEW.setUint32( 4, lo, IS_LITTLE_ENDIAN );\n\t}\n\tfor ( i = 0; i < BYTES.length; i++ ) {\n\t\tout[ offset ] = BYTES[ i ];\n\t\toffset += stride;\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default float64ToInt64Bytes;\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* Convert an integer-valued double-precision floating-point number to a signed 64-bit integer byte array according to host byte order (endianness).\n*\n* @module @stdlib/number/float64/base/to-int64-bytes\n*\n* @example\n* import float64ToInt64Bytes from '@stdlib/number/float64/base/to-int64-bytes';\n*\n* var bytes = float64ToInt64Bytes( 1.0 );\n* // returns \n*\n* @example\n* import Uint8Array from '@stdlib/array/uint8';\n* import float64ToInt64Bytes from '@stdlib/number/float64/base/to-int64-bytes';\n*\n* var out = new Uint8Array( 8 );\n* var bytes = float64ToInt64Bytes( 1.0, out, 1, 0 );\n* // returns \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// MODULES //\n\nimport IS_LITTLE_ENDIAN from '@stdlib/assert/is-little-endian';\nimport Uint8Array from '@stdlib/array/uint8';\nimport DataView from '@stdlib/array/dataview';\nimport floor from '@stdlib/math/base/special/floor';\n\n\n// VARIABLES //\n\n// 0xFFFFFFFF = 2**32 - 1 => 11111111 11111111 11111111 11111111\nvar LOW_MASK = 0xFFFFFFFF >>> 0;\n\n// 2**32\nvar TWO_32 = 4294967296;\n\n\n// MAIN //\n\n/**\n* Converts an integer-valued double-precision floating-point number to a signed 64-bit integer byte array according to host byte order (endianness).\n*\n* ## Notes\n*\n* - This function assumes that the input value is less than the maximum safe double-precision floating-point integer plus one (i.e., `2**53`).\n*\n* @param {number} x - input value\n* @returns {Uint8Array} byte array\n*\n* @example\n* var bytes = float64ToInt64Bytes( 1.0 );\n* // returns \n*/\nfunction float64ToInt64Bytes( x ) {\n\tvar bytes;\n\tvar view;\n\tvar hi;\n\tvar lo;\n\n\tbytes = new Uint8Array( 8 );\n\tif ( x === 0 ) {\n\t\treturn bytes;\n\t}\n\t// Get the low 32-bit word:\n\tlo = (x&LOW_MASK)>>>0;\n\n\t// Get the high 32-bit word:\n\thi = floor( x/TWO_32 );\n\n\t// Insert the high and low words according to host byte order (endianness):\n\tview = new DataView( bytes.buffer );\n\tif ( IS_LITTLE_ENDIAN ) {\n\t\tview.setUint32( 0, lo, IS_LITTLE_ENDIAN );\n\t\tview.setUint32( 4, hi, IS_LITTLE_ENDIAN );\n\t} else {\n\t\tview.setUint32( 0, hi, IS_LITTLE_ENDIAN );\n\t\tview.setUint32( 4, lo, IS_LITTLE_ENDIAN );\n\t}\n\treturn bytes;\n}\n\n\n// EXPORTS //\n\nexport default float64ToInt64Bytes;\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 IS_LITTLE_ENDIAN from '@stdlib/assert/is-little-endian';\nimport ArrayBuffer from '@stdlib/array/buffer';\nimport DataView from '@stdlib/array/dataview';\nimport Uint8Array from '@stdlib/array/uint8';\nimport { enum as dtypes } from './../../../dtypes';\nimport { enum as orders } from './../../../orders';\nimport { enum as modes } from './../../../index-modes';\nimport { assign as float64ToInt64Bytes } from '@stdlib/number/float64/base/to-int64-bytes';\n\n\n// VARIABLES //\n\nvar DTYPES = dtypes();\nvar ORDERS = orders();\nvar MODES = modes();\n\n\n// FUNCTIONS //\n\n/**\n* Serializes ndarray meta data to a `DataView`.\n*\n* ## Notes\n*\n* - This function takes into account ndarray-like objects which may support index modes.\n*\n* - This function defaults to returning cached serialized meta data. To force serialization, set the private `__meta_dataview__` property to `null`.\n*\n* - Serialization is performed according to host byte order (endianness).\n*\n* - Meta data format:\n*\n* ```text\n* | endianness (1 byte) | (2 bytes) | (8 bytes) | (ndims*8 bytes) | (ndims*8 bytes) | (8 bytes) | (1 byte) | (1 byte) | (8 bytes) | (nsubmodes*1 bytes) | (4 bytes) |\n* ```\n*\n* which translates to the following `ArrayBuffer` layout:\n*\n* ```text\n* ArrayBuffer[\n* [int8],\n* [int16],\n* [int64],\n* [ndims*int64],\n* [ndims*int64],\n* [int64],\n* [int8],\n* [int8],\n* [int64],\n* [nsubmodes*int8],\n* [int32]\n* ]\n* ```\n*\n* where `strides` and `offset` are in units of bytes.\n*\n* - If the endianness is `1`, the byte order is little endian. If the endianness is `0`, the byte order is big endian.\n*\n* - Buffer length:\n*\n* ```text\n* 1 + 2 + 8 + (ndims*8) + (ndims*8) + 8 + 1 + 1 + 8 + (nsubmodes*1) + 4 = 33 + (ndims*16) + nsubmodes\n* ```\n*\n* For example, consider a three-dimensional ndarray with one subscript index mode (submode):\n*\n* ```text\n* 33 + (3*16) + 1 = 82 bytes\n* ```\n*\n* - Views:\n*\n* - endianness: `Int8Array( buf, 0, 1 )`\n* - dtype: `Int16Array( buf, 1, 1 )`\n* - ndims: `Int64Array( buf, 3, 1 )`\n* - shape: `Int64Array( buf, 11, ndims )`\n* - strides: `Int64Array( buf, 11+(ndims*8), ndims )`\n* - offset: `Int64Array( buf, 11+(ndims*16), 1 )`\n* - order: `Int8Array( buf, 19+(ndims*16), 1 )`\n* - mode: `Int8Array( buf, 20+(ndims*16), 1 )`\n* - nsubmodes: `Int64Array( buf, 21+(ndims*16), 1 )`\n* - submodes: `Int8Array( buf, 29+(ndims*16), nsubmodes )`\n* - flags: `Int32Array( buf, 29+(ndims*16)+nsubmodes, 1 )`\n*\n* @private\n* @returns {DataView} serialized meta data\n*/\nfunction meta2dataview() {\n\t/* eslint-disable no-invalid-this */\n\tvar nbytes;\n\tvar bytes;\n\tvar flgs;\n\tvar len;\n\tvar dt;\n\tvar sh;\n\tvar st;\n\tvar sm;\n\tvar v;\n\tvar m;\n\tvar o;\n\tvar s;\n\tvar N;\n\tvar M;\n\tvar i;\n\n\tm = this._mode || 'throw';\n\tsm = this._submode || [ m ];\n\tN = this._ndims;\n\tM = sm.length;\n\n\t// Compute the amount of memory we need to allocate for storing meta data:\n\tlen = 33 + (N*16) + M;\n\n\t// Check if we've already serialized ndarray meta data and can reuse an already allocated array buffer...\n\tv = this.__meta_dataview__;\n\tif ( v && v.byteLength === len ) { // Note: the byte length check is only a bare minimum sanity check, as cached contents may still be \"stale\" (e.g., shape and/or strides may have changed)\n\t\treturn v;\n\t}\n\t// Allocate raw memory and create views for interfacing with the allocated memory:\n\tv = new DataView( new ArrayBuffer( len ) );\n\tbytes = new Uint8Array( v.buffer );\n\n\t// Retrieve ndarray meta data:\n\tsh = this._shape;\n\tst = this._strides;\n\tdt = this._dtype;\n\tnbytes = this._bytesPerElement;\n\n\t// Endianness: (byteoffset: 0; bytelength: 1)\n\to = 0;\n\tv.setInt8( o, ( IS_LITTLE_ENDIAN ) ? 1 : 0 );\n\n\t// Data type: (byteoffset: 1; bytelength: 2)\n\to += 1;\n\tv.setInt16( o, DTYPES[ dt ], IS_LITTLE_ENDIAN );\n\n\t// Number of dimensions: (byteoffset: 3; bytelength: 8)\n\to += 2;\n\tfloat64ToInt64Bytes( N, bytes, 1, o );\n\n\t// Shape and strides: (byteoffset: 11 and 11+(ndims*8), respectively; bytelength: ndims*8 for both shape and strides, and, thus, ndims*16 total)\n\ts = N * 8; // stride length between a dimension (shape[i]) and its associated stride\n\to += 8;\n\tfor ( i = 0; i < N; i++ ) {\n\t\tfloat64ToInt64Bytes( sh[i], bytes, 1, o );\n\t\tfloat64ToInt64Bytes( st[i]*nbytes, bytes, 1, o+s );\n\t\to += 8;\n\t}\n\t// Offset: (byteoffset: 11+(ndims*16); bytelength: 8)\n\to += s;\n\tfloat64ToInt64Bytes( this._offset*nbytes, bytes, 1, o );\n\n\t// Order: (byteoffset: 19+(ndims*16); bytelength: 1)\n\to += 8;\n\tv.setInt8( o, ORDERS[ this._order ] );\n\n\t// Mode: (byteoffset: 20+(ndims*16); bytelength: 1)\n\to += 1;\n\tv.setInt8( o, MODES[ m ] );\n\n\t// Number of submodes: (byteoffset: 21+(ndims*16); bytelength: 8)\n\to += 1;\n\tfloat64ToInt64Bytes( M, bytes, 1, o );\n\n\t// Submodes: (byteoffset: 29+(ndims*16); bytelength: nsubmodes*1)\n\to += 8;\n\tfor ( i = 0; i < M; i++ ) {\n\t\tv.setInt8( o, MODES[ sm[i] ] );\n\t\to += 1;\n\t}\n\t// Flags: (byteoffset: 29+(ndims*16)+nsubmodes; bytelength: 4)\n\tflgs = 0|0;\n\tflgs |= ( this._flags.READONLY ) ? 4 : 0; // 00000000 00000000 00000000 00000100\n\tv.setInt32( o, flgs, IS_LITTLE_ENDIAN );\n\n\t// Cache the serialized meta data:\n\tthis.__meta_dataview__ = v;\n\n\treturn v;\n\n\t/* eslint-enable no-invalid-this */\n}\n\n\n// EXPORTS //\n\nexport default meta2dataview;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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 no-restricted-syntax, no-invalid-this */\n\n'use strict';\n\n// MODULES //\n\nimport hasBigIntSupport from '@stdlib/assert/has-bigint-support';\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport setReadOnlyAccessor from '@stdlib/utils/define-nonenumerable-read-only-accessor';\nimport bytesPerElement from './../../../base/bytes-per-element';\nimport iterationOrder from './../../../base/iteration-order';\nimport strides2order from './../../../base/strides2order';\nimport Boolean from '@stdlib/boolean/ctor';\nimport isColumnMajorContiguous from './is_column_major_contiguous.js';\nimport isRowMajorContiguous from './is_row_major_contiguous.js';\nimport isContiguous from './is_contiguous.js';\nimport copyFlags from './copy_flags.js';\nimport igetValue from './iget.js';\nimport isetValue from './iset.js';\nimport setValue from './set.js';\nimport getValue from './get.js';\nimport toJSON from './tojson.js';\nimport toString from './tostring.js'; // eslint-disable-line stdlib/no-redeclare\nimport meta2dataview from './meta2dataview.js';\nimport meta2dataviewPolyfill from './meta2dataview.polyfill.js';\n\n\n// MAIN //\n\n/**\n* ndarray constructor.\n*\n* ## Notes\n*\n* - To create a zero-dimensional array,\n*\n* ```javascript\n* var buffer = [ 1 ];\n* var shape = [];\n* var strides = [ 0 ];\n* var offset = 0;\n*\n* var out = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n* ```\n*\n* @constructor\n* @param {string} dtype - data type\n* @param {(ArrayLikeObject|TypedArray|Buffer)} buffer - data buffer\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {IntegerArray} strides - array strides\n* @param {NonNegativeInteger} offset - index offset\n* @param {string} order - specifies whether an array is row-major (C-style) or column-major (Fortran-style)\n* @returns {ndarray} ndarray instance\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var out = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*/\nfunction ndarray( dtype, buffer, shape, strides, offset, order ) {\n\tvar contiguous;\n\tvar nbytes;\n\tvar ord;\n\tvar len;\n\tvar i;\n\tif ( !(this instanceof ndarray) ) {\n\t\treturn new ndarray( dtype, buffer, shape, strides, offset, order );\n\t}\n\t// Compute the number of elements...\n\tlen = 1;\n\tfor ( i = 0; i < shape.length; i++ ) {\n\t\tlen *= shape[ i ];\n\t}\n\t// Compute the number of bytes...\n\tif ( buffer.BYTES_PER_ELEMENT ) {\n\t\tnbytes = buffer.BYTES_PER_ELEMENT * len;\n\t} else {\n\t\tnbytes = null;\n\t}\n\t// Set private properties...\n\tthis._byteLength = nbytes;\n\tthis._bytesPerElement = bytesPerElement( dtype );\n\tthis._buffer = buffer;\n\tthis._dtype = dtype;\n\tthis._length = len;\n\tthis._ndims = shape.length;\n\tthis._offset = offset;\n\tthis._order = order;\n\tthis._shape = shape;\n\tthis._strides = strides;\n\tthis._accessors = Boolean( buffer.get && buffer.set );\n\n\tthis._iterationOrder = iterationOrder( strides );\n\n\t// Determine if the array can be stored contiguously:\n\tcontiguous = isContiguous( len, shape, strides, offset, this._iterationOrder ); // eslint-disable-line max-len\n\n\t// Infer the array \"order\" from the stride array (this is supplementary to the `order` parameter):\n\tord = strides2order( strides );\n\n\tthis._flags = {\n\t\t'ROW_MAJOR_CONTIGUOUS': isRowMajorContiguous( ord, contiguous ),\n\t\t'COLUMN_MAJOR_CONTIGUOUS': isColumnMajorContiguous( ord, contiguous ),\n\t\t'READONLY': false\n\t};\n\n\t// Initialize a property for caching serialized meta data:\n\tthis.__meta_dataview__ = null;\n\n\treturn this;\n}\n\n/**\n* Constructor name.\n*\n* @name name\n* @memberof ndarray\n* @type {string}\n* @default 'ndarray'\n*\n* @example\n* var str = ndarray.name;\n* // returns 'ndarray'\n*/\nsetReadOnly( ndarray, 'name', 'ndarray' );\n\n/**\n* Size (in bytes) of the array (if known).\n*\n* @name byteLength\n* @memberof ndarray.prototype\n* @type {(NonNegativeInteger|null)}\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* var buffer = new Float64Array( [ 1, 2, 3, 4, 5, 6 ] );\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'float64', buffer, shape, strides, offset, 'row-major' );\n*\n* var byteLength = x.byteLength;\n* // returns 48\n*/\nsetReadOnlyAccessor( ndarray.prototype, 'byteLength', function get() {\n\treturn this._byteLength;\n});\n\n/**\n* Size (in bytes) of each array element (if known).\n*\n* @name BYTES_PER_ELEMENT\n* @memberof ndarray.prototype\n* @type {(PositiveInteger|null)}\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* var buffer = new Float64Array( [ 1, 2, 3, 4, 5, 6 ] );\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'float64', buffer, shape, strides, offset, 'row-major' );\n*\n* var nbytes = x.BYTES_PER_ELEMENT;\n* // returns 8\n*/\nsetReadOnlyAccessor( ndarray.prototype, 'BYTES_PER_ELEMENT', function get() {\n\treturn this._bytesPerElement;\n});\n\n/**\n* Pointer to the underlying data buffer.\n*\n* @name data\n* @memberof ndarray.prototype\n* @type {(Array|TypedArray|Buffer)}\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var data = x.data;\n* // returns [ 1, 2, 3, 4, 5, 6 ]\n*/\nsetReadOnlyAccessor( ndarray.prototype, 'data', function get() {\n\treturn this._buffer;\n});\n\n/**\n* Underlying data type.\n*\n* @name dtype\n* @memberof ndarray.prototype\n* @type {string}\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var dtype = x.dtype;\n* // returns 'generic'\n*/\nsetReadOnlyAccessor( ndarray.prototype, 'dtype', function get() {\n\treturn this._dtype;\n});\n\n/**\n* Meta information, such as information concerning the memory layout of the array.\n*\n* @name flags\n* @memberof ndarray.prototype\n* @type {Object}\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var flgs = x.flags;\n* // returns \n*/\nsetReadOnlyAccessor( ndarray.prototype, 'flags', function get() {\n\treturn copyFlags( this._flags );\n});\n\n/**\n* Length of the array.\n*\n* @name length\n* @memberof ndarray.prototype\n* @type {NonNegativeInteger}\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var len = x.length;\n* // returns 6\n*/\nsetReadOnlyAccessor( ndarray.prototype, 'length', function get() {\n\treturn this._length;\n});\n\n/**\n* Number of dimensions.\n*\n* @name ndims\n* @memberof ndarray.prototype\n* @type {PositiveInteger}\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var ndims = x.ndims;\n* // returns 2\n*/\nsetReadOnlyAccessor( ndarray.prototype, 'ndims', function get() {\n\treturn this._ndims;\n});\n\n/**\n* Index offset which specifies the buffer index at which to start iterating over array elements.\n*\n* @name offset\n* @memberof ndarray.prototype\n* @type {NonNegativeInteger}\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var o = x.offset;\n* // returns 0\n*/\nsetReadOnlyAccessor( ndarray.prototype, 'offset', function get() {\n\treturn this._offset;\n});\n\n/**\n* Array order.\n*\n* ## Notes\n*\n* - The array order is either row-major (C-style) or column-major (Fortran-style).\n*\n* @name order\n* @memberof ndarray.prototype\n* @type {string}\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var order = x.order;\n* // returns 'row-major'\n*/\nsetReadOnlyAccessor( ndarray.prototype, 'order', function get() {\n\treturn this._order;\n});\n\n/**\n* Shape of the array.\n*\n* @name shape\n* @memberof ndarray.prototype\n* @type {NonNegativeIntegerArray}\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var s = x.shape;\n* // returns [ 3, 2 ]\n*/\nsetReadOnlyAccessor( ndarray.prototype, 'shape', function get() {\n\treturn this._shape.slice();\n});\n\n/**\n* Index strides which specify how to access data along corresponding array dimensions.\n*\n* @name strides\n* @memberof ndarray.prototype\n* @type {IntegerArray}\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var s = x.strides;\n* // returns [ 2, 1 ]\n*/\nsetReadOnlyAccessor( ndarray.prototype, 'strides', function get() {\n\treturn this._strides.slice();\n});\n\n/**\n* Returns an array element.\n*\n* ## Notes\n*\n* - The number of indices should **equal** the number of dimensions. Accordingly, for zero-dimensional arrays, no indices should be provided.\n*\n* @name get\n* @memberof ndarray.prototype\n* @type {Function}\n* @param {...integer} [idx] - indices\n* @returns {*} array element\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var v = x.get( 1, 1 );\n* // returns 4\n*/\nsetReadOnly( ndarray.prototype, 'get', getValue );\n\n/**\n* Returns an array element located at a specified linear index.\n*\n* ## Notes\n*\n* - For zero-dimensional arrays, the input argument is ignored and, for clarity, should not be provided.\n*\n* @name iget\n* @memberof ndarray.prototype\n* @type {Function}\n* @param {integer} [idx] - linear index\n* @returns {*} array element\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var v = x.iget( 3 );\n* // returns 4\n*/\nsetReadOnly( ndarray.prototype, 'iget', igetValue );\n\n/**\n* Sets an array element.\n*\n* ## Notes\n*\n* - The number of indices should **equal** the number of dimensions. Accordingly, for zero-dimensional arrays, no indices should be provided.\n*\n* @name set\n* @memberof ndarray.prototype\n* @type {Function}\n* @param {...integer} [idx] - indices\n* @param {*} v - value to set\n* @returns {ndarray} ndarray instance\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var v = x.get( 1, 1 );\n* // returns 4\n*\n* x.set( 1, 1, 10 );\n*\n* var b = x.data;\n* // returns [ 1, 2, 3, 10, 5, 6 ]\n*\n* v = x.get( 1, 1 );\n* // returns 10\n*/\nsetReadOnly( ndarray.prototype, 'set', setValue );\n\n/**\n* Sets an array element located at a specified linear index.\n*\n* ## Notes\n*\n* - For zero-dimensional arrays, the first, and only, argument should be the value to set.\n*\n* @name iset\n* @memberof ndarray.prototype\n* @type {Function}\n* @param {integer} [idx] - linear index\n* @param {*} v - value to set\n* @returns {ndarray} ndarray instance\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var v = x.iget( 3 );\n* // returns 4\n*\n* x.iset( 3, 10 );\n*\n* var b = x.data;\n* // returns [ 1, 2, 3, 10, 5, 6 ]\n*\n* v = x.iget( 3 );\n* // returns 10\n*/\nsetReadOnly( ndarray.prototype, 'iset', isetValue );\n\n/**\n* Serializes an ndarray as a string.\n*\n* ## Notes\n*\n* - The method does **not** serialize data outside of the buffer region defined by the array configuration.\n*\n* @name toString\n* @memberof ndarray.prototype\n* @type {Function}\n* @returns {string} serialized ndarray\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6, 7, 8 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 2;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var str = x.toString();\n* // returns \"ndarray( 'generic', [ 3, 4, 5, 6, 7, 8 ], [ 3, 2 ], [ 2, 1 ], 0, 'row-major' )\"\n*/\nsetReadOnly( ndarray.prototype, 'toString', toString );\n\n/**\n* Serializes an ndarray as a JSON object.\n*\n* ## Notes\n*\n* - `JSON.stringify()` implicitly calls this method when stringifying an `ndarray` instance.\n* - The method does **not** serialize data outside of the buffer region defined by the array configuration.\n*\n* @name toJSON\n* @memberof ndarray.prototype\n* @type {Function}\n* @returns {Object} serialized ndarray\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6, 7, 8 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 2;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var o = x.toJSON();\n* // e.g., returns { 'type': 'ndarray', 'dtype': 'generic', 'flags': {...}, 'offset': 0, 'order': 'row-major', 'shape': [ 3, 2 ], 'strides': [ 2, 1 ], 'data': [ 3, 4, 5, 6, 7, 8 ] }\n*/\nsetReadOnly( ndarray.prototype, 'toJSON', toJSON );\n\n/**\n* Serializes ndarray meta data to a `DataView`.\n*\n* ## Notes\n*\n* - Meta data format:\n*\n* ```text\n* | (1 byte) | (2 bytes) | (8 bytes) | (ndims*8 bytes) | (ndims*8 bytes) | (8 bytes) | (1 byte) | (1 byte) | (8 bytes) | (nsubmodes*1 bytes) | (4 bytes) |\n* ```\n*\n* where `strides` and `offset` are in units of bytes.\n*\n* - If the endianness is `1`, the byte order is little endian. If the endianness is `0`, the byte order is big endian.\n*\n* - Serialization is performed according to host byte order (endianness).\n*\n* - Consumers of this method should treat the returned `DataView` as **immutable**. Otherwise, mutation can invalidate meta data and potentially affect other consumers.\n*\n* @private\n* @name __array_meta_dataview__\n* @memberof ndarray.prototype\n* @type {Function}\n* @returns {DataView} serialized meta data\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6, 7, 8 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 2;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var dv = x.__array_meta_dataview__();\n* // returns \n*/\nsetReadOnly( ndarray.prototype, '__array_meta_dataview__', ( hasBigIntSupport() ) ? meta2dataview : meta2dataviewPolyfill );\n\n\n// EXPORTS //\n\nexport default ndarray;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport minmaxViewBufferIndex from './../../../base/minmax-view-buffer-index';\n\n\n// MAIN //\n\n/**\n* Determines if an array is contiguous.\n*\n* @private\n* @param {NonNegativeInteger} len - array length\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {IntegerArray} strides - stride array\n* @param {NonNegativeInteger} offset - index offset\n* @param {integer} iterationOrder - iteration order\n* @returns {boolean} boolean indicating if an array is contiguous\n*/\nfunction isContiguous( len, shape, strides, offset, iterationOrder ) {\n\tvar buf;\n\n\t// If an array does not contain any elements, then no data to store, and, if the array is unordered, adjacent array elements are not guaranteed to be stored next to each other.\n\tif ( len === 0 || iterationOrder === 0 ) {\n\t\treturn false;\n\t}\n\t// Ensure that the array is compatible with a single memory segment:\n\tbuf = minmaxViewBufferIndex( shape, strides, offset );\n\treturn ( len === ( buf[1]-buf[0]+1 ) );\n}\n\n\n// EXPORTS //\n\nexport default isContiguous;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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/base/ctor';\n\n\n// MAIN //\n\n/**\n* Tests if a value is ndarray-like.\n*\n* @param {*} v - value to test\n* @returns {boolean} boolean indicating if a value is ndarray-like\n*\n* @example\n* import ndarray from '@stdlib/ndarray/ctor';\n*\n* var arr = ndarray( 'generic', [ 0, 0, 0, 0 ], [ 2, 2 ], [ 2, 1 ], 0, 'row-major' );\n*\n* var bool = isndarrayLike( arr );\n* // returns true\n*\n* bool = isndarrayLike( [] );\n* // returns false\n*/\nfunction isndarrayLike( v ) {\n\treturn (\n\t\tv instanceof ndarray ||\n\t\t(\n\t\t\tv !== null &&\n\t\t\ttypeof v === 'object' &&\n\t\t\ttypeof v.data === 'object' &&\n\t\t\ttypeof v.shape === 'object' &&\n\t\t\ttypeof v.strides === 'object' &&\n\t\t\ttypeof v.offset === 'number' &&\n\t\t\ttypeof v.order === 'string' &&\n\t\t\ttypeof v.ndims === 'number' &&\n\t\t\ttypeof v.dtype === 'string' &&\n\t\t\ttypeof v.length === 'number' &&\n\t\t\ttypeof v.flags === 'object' &&\n\t\t\ttypeof v.get === 'function' &&\n\t\t\ttypeof v.set === 'function'\n\t\t)\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isndarrayLike;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Copies ndarray flags.\n*\n* @private\n* @param {Object} flags - flags\n* @returns {Object} copy of input object\n*/\nfunction copyFlags( flags ) {\n\treturn {\n\t\t'ROW_MAJOR_CONTIGUOUS': flags.ROW_MAJOR_CONTIGUOUS,\n\t\t'COLUMN_MAJOR_CONTIGUOUS': flags.COLUMN_MAJOR_CONTIGUOUS,\n\t\t'READONLY': flags.READONLY\n\t};\n}\n\n\n// EXPORTS //\n\nexport default copyFlags;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 an array element.\n*\n* ## Notes\n*\n* - The number of indices should **equal** the number of dimensions. Accordingly, for zero-dimensional arrays, no indices should be provided.\n*\n* @private\n* @param {...integer} idx - indices\n* @returns {*} array element\n*/\nfunction get() {\n\t/* eslint-disable no-invalid-this */\n\tvar idx;\n\tvar i;\n\n\tidx = this._offset;\n\tfor ( i = 0; i < arguments.length; i++ ) {\n\t\tidx += this._strides[ i ] * arguments[ i ];\n\t}\n\tif ( this._accessors ) {\n\t\treturn this._buffer.get( idx );\n\t}\n\treturn this._buffer[ idx ];\n}\n\n\n// EXPORTS //\n\nexport default get;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 an array element located a specified linear view index.\n*\n* ## Notes\n*\n* - For zero-dimensional arrays, the input argument is ignored and, for clarity, should not be provided.\n*\n* @private\n* @param {integer} [idx] - linear view index\n* @returns {*} array element\n*/\nfunction iget( idx ) {\n\t/* eslint-disable no-invalid-this */\n\tvar strides;\n\tvar shape;\n\tvar ndims;\n\tvar ind;\n\tvar s;\n\tvar i;\n\n\tndims = this._ndims;\n\tif ( ndims === 0 ) {\n\t\tif ( this._accessors ) {\n\t\t\treturn this._buffer.get( this._offset );\n\t\t}\n\t\treturn this._buffer[ this._offset ];\n\t}\n\tif ( this._flags.ROW_MAJOR_CONTIGUOUS || this._flags.COLUMN_MAJOR_CONTIGUOUS ) { // eslint-disable-line max-len\n\t\t// Trivial case where we have all positive strides...\n\t\tif ( this._iterationOrder === 1 ) {\n\t\t\tif ( this._accessors ) {\n\t\t\t\treturn this._buffer.get( this._offset+idx );\n\t\t\t}\n\t\t\treturn this._buffer[ this._offset+idx ];\n\t\t}\n\t\t// Trivial case where we have all negative strides...\n\t\tif ( this._iterationOrder === -1 ) {\n\t\t\tif ( this._accessors ) {\n\t\t\t\treturn this._buffer.get( this.offset-idx );\n\t\t\t}\n\t\t\treturn this._buffer[ this._offset-idx ];\n\t\t}\n\t}\n\t// The approach which follows is to resolve a view index to its subscripts and then plug the subscripts into the standard formula for computing the linear index in the underlying data buffer...\n\tshape = this._shape;\n\tstrides = this._strides;\n\tind = this._offset;\n\tif ( this._order === 'column-major' ) {\n\t\tfor ( i = 0; i < ndims; i++ ) {\n\t\t\ts = idx % shape[ i ];\n\t\t\tidx -= s;\n\t\t\tidx /= shape[ i ];\n\t\t\tind += s * strides[ i ];\n\t\t}\n\t\tif ( this._accessors ) {\n\t\t\treturn this._buffer.get( ind );\n\t\t}\n\t\treturn this._buffer[ ind ];\n\t}\n\t// Case: row-major\n\tfor ( i = ndims-1; i >= 0; i-- ) {\n\t\ts = idx % shape[ i ];\n\t\tidx -= s;\n\t\tidx /= shape[ i ];\n\t\tind += s * strides[ i ];\n\t}\n\tif ( this._accessors ) {\n\t\treturn this._buffer.get( ind );\n\t}\n\treturn this._buffer[ ind ];\n}\n\n\n// EXPORTS //\n\nexport default iget;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Sets an array element.\n*\n* ## Notes\n*\n* - The number of indices should **equal** the number of dimensions. Accordingly, for zero-dimensional arrays, no indices should be provided.\n*\n* @private\n* @param {...integer} [idx] - indices\n* @param {*} v - value to set\n* @returns {ndarray} ndarray instance\n*/\nfunction set() {\n\t/* eslint-disable no-invalid-this */\n\tvar idx;\n\tvar i;\n\n\tidx = this._offset;\n\tfor ( i = 0; i < arguments.length-1; i++ ) {\n\t\tidx += this._strides[ i ] * arguments[ i ];\n\t}\n\tif ( this._accessors ) {\n\t\tthis._buffer.set( arguments[ i ], idx );\n\t} else {\n\t\tthis._buffer[ idx ] = arguments[ i ];\n\t}\n\treturn this;\n}\n\n\n// EXPORTS //\n\nexport default set;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Sets an array element located a specified linear view index.\n*\n* ## Notes\n*\n* - For zero-dimensional arrays, the first, and only, argument should be the value to set.\n*\n* @private\n* @param {integer} [idx] - linear view index\n* @param {*} v - value to set\n* @returns {ndarray} ndarray instance\n*/\nfunction iset( idx, v ) {\n\t/* eslint-disable no-invalid-this */\n\tvar strides;\n\tvar shape;\n\tvar ndims;\n\tvar ind;\n\tvar s;\n\tvar i;\n\n\tndims = this._ndims;\n\tif ( ndims === 0 ) {\n\t\tif ( this._accessors ) {\n\t\t\tthis._buffer.set( idx, this._offset );\n\t\t} else {\n\t\t\tthis._buffer[ this._offset ] = idx;\n\t\t}\n\t\treturn this;\n\t}\n\tif ( this._flags.ROW_MAJOR_CONTIGUOUS || this._flags.COLUMN_MAJOR_CONTIGUOUS ) { // eslint-disable-line max-len\n\t\t// Trivial case where we have all positive strides...\n\t\tif ( this._iterationOrder === 1 ) {\n\t\t\tif ( this._accessors ) {\n\t\t\t\tthis._buffer.set( v, this._offset+idx );\n\t\t\t} else {\n\t\t\t\tthis._buffer[ this._offset+idx ] = v;\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\t// Trivial case where we have all negative strides...\n\t\tif ( this._iterationOrder === -1 ) {\n\t\t\tif ( this._accessors ) {\n\t\t\t\tthis._buffer.set( v, this._offset-idx );\n\t\t\t} else {\n\t\t\t\tthis._buffer[ this._offset-idx ] = v;\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t}\n\t// The approach which follows is to resolve a view index to its subscripts and then plug the subscripts into the standard formula for computing the linear index in the underlying data buffer...\n\tshape = this._shape;\n\tstrides = this._strides;\n\tind = this._offset;\n\tif ( this._order === 'column-major' ) {\n\t\tfor ( i = 0; i < ndims; i++ ) {\n\t\t\ts = idx % shape[ i ];\n\t\t\tidx -= s;\n\t\t\tidx /= shape[ i ];\n\t\t\tind += s * strides[ i ];\n\t\t}\n\t\tif ( this._accessors ) {\n\t\t\tthis._buffer.set( v, ind );\n\t\t} else {\n\t\t\tthis._buffer[ ind ] = v;\n\t\t}\n\t\treturn this;\n\t}\n\t// Case: row-major\n\tfor ( i = ndims-1; i >= 0; i-- ) {\n\t\ts = idx % shape[ i ];\n\t\tidx -= s;\n\t\tidx /= shape[ i ];\n\t\tind += s * strides[ i ];\n\t}\n\tif ( this._accessors ) {\n\t\tthis._buffer.set( v, ind );\n\t} else {\n\t\tthis._buffer[ ind ] = v;\n\t}\n\treturn this;\n}\n\n\n// EXPORTS //\n\nexport default iset;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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* Serializes an ndarray as a JSON object.\n*\n* ## Notes\n*\n* - The method does **not** serialize data outside of the buffer region defined by the array configuration.\n*\n* @private\n* @returns {Object} JSON representation\n*/\nfunction toJSON() {\n\t/* eslint-disable no-invalid-this */\n\tvar out;\n\tvar len;\n\tvar v;\n\tvar i;\n\n\tlen = this._length;\n\n\t// Build an object containing all ndarray properties needed to revive a serialized ndarray...\n\tout = {};\n\tout.type = 'ndarray';\n\tout.dtype = this.dtype;\n\tout.flags = {\n\t\t'READONLY': this._flags.READONLY\n\t};\n\tout.order = this._order;\n\tout.shape = this._shape.slice();\n\tout.strides = this._strides.slice();\n\n\t// Flip the signs of negative strides:\n\tfor ( i = 0; i < len; i++ ) {\n\t\tif ( out.strides[ i ] < 0 ) {\n\t\t\tout.strides[ i ] *= -1;\n\t\t}\n\t}\n\t// Cast data to generic array...\n\tout.data = [];\n\tif ( out.dtype === 'complex64' || out.dtype === 'complex128' ) {\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tv = this.iget( i );\n\t\t\tout.data.push( real( v ), imag( v ) );\n\t\t}\n\t} else {\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tout.data.push( this.iget( i ) );\n\t\t}\n\t}\n\treturn out;\n\n\t/* eslint-enable no-invalid-this */\n}\n\n\n// EXPORTS //\n\nexport default toJSON;\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// MAIN //\n\n// Mapping from ndarray data buffer constructors to data types...\nvar dtypes = {\n\t'Buffer': 'binary',\n\t'Float32Array': 'float32',\n\t'Float64Array': 'float64',\n\t'Array': 'generic',\n\t'Int16Array': 'int16',\n\t'Int32Array': 'int32',\n\t'Int8Array': 'int8',\n\t'Object': 'generic',\n\t'Uint16Array': 'uint16',\n\t'Uint32Array': 'uint32',\n\t'Uint8Array': 'uint8',\n\t'Uint8ClampedArray': 'uint8c',\n\t'Complex64Array': 'complex64',\n\t'Complex128Array': 'complex128',\n\t'BooleanArray': 'bool'\n};\n\n\n// EXPORTS //\n\nexport default dtypes;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport nativeClass from '@stdlib/utils/native-class';\n\n\n// VARIABLES //\n\nvar hasInt32Array = ( typeof Int32Array === 'function' ); // eslint-disable-line stdlib/require-globals\n\n\n// MAIN //\n\n/**\n* Tests if a value is an Int32Array.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether value is an Int32Array\n*\n* @example\n* var bool = isInt32Array( new Int32Array( 10 ) );\n* // returns true\n*\n* @example\n* var bool = isInt32Array( [] );\n* // returns false\n*/\nfunction isInt32Array( value ) {\n\treturn (\n\t\t( hasInt32Array && value instanceof Int32Array ) || // eslint-disable-line stdlib/require-globals\n\t\tnativeClass( value ) === '[object Int32Array]'\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isInt32Array;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Minimum signed 32-bit integer.\n*\n* @module @stdlib/constants/int32/min\n* @type {integer32}\n*\n* @example\n* import INT32_MIN from '@stdlib/constants/int32/min';\n* // returns -2147483648\n*/\n\n\n// MAIN //\n\n/**\n* Minimum signed 32-bit integer.\n*\n* ## Notes\n*\n* The number has the value\n*\n* ```tex\n* -(2^{31})\n* ```\n*\n* which corresponds to the two's complement bit sequence\n*\n* ```binarystring\n* 10000000000000000000000000000000\n* ```\n*\n* @constant\n* @type {integer32}\n* @default -2147483648\n*/\nvar INT32_MIN = -2147483648|0; // asm type annotation\n\n\n// EXPORTS //\n\nexport default INT32_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// MAIN //\n\nvar main = ( typeof Int32Array === 'function' ) ? Int32Array : null; // eslint-disable-line stdlib/require-globals\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// MAIN //\n\nvar ctor = ( typeof Int32Array === 'function' ) ? Int32Array : void 0; // eslint-disable-line stdlib/require-globals\n\n\n// EXPORTS //\n\nexport default ctor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Typed array constructor which returns a typed array representing an array of twos-complement 32-bit signed integers in the platform byte order.\n*\n* @module @stdlib/array/int32\n*\n* @example\n* import ctor from '@stdlib/array/int32';\n*\n* var arr = new ctor( 10 );\n* // returns \n*/\n\n// MODULES //\n\nimport hasInt32ArraySupport from '@stdlib/assert/has-int32array-support';\nimport builtin from './main.js';\nimport polyfill from './polyfill.js';\n\n\n// MAIN //\n\nvar ctor;\nif ( hasInt32ArraySupport() ) {\n\tctor = builtin;\n} else {\n\tctor = polyfill;\n}\n\n\n// EXPORTS //\n\nexport default ctor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isInt32Array from './../../is-int32array';\nimport INT32_MAX from '@stdlib/constants/int32/max';\nimport INT32_MIN from '@stdlib/constants/int32/min';\nimport GlobalInt32Array from './int32array.js';\n\n\n// MAIN //\n\n/**\n* Tests for native `Int32Array` support.\n*\n* @returns {boolean} boolean indicating if an environment has `Int32Array` support\n*\n* @example\n* var bool = hasInt32ArraySupport();\n* // returns \n*/\nfunction hasInt32ArraySupport() {\n\tvar bool;\n\tvar arr;\n\n\tif ( typeof GlobalInt32Array !== 'function' ) {\n\t\treturn false;\n\t}\n\t// Test basic support...\n\ttry {\n\t\tarr = new GlobalInt32Array( [ 1, 3.14, -3.14, INT32_MAX+1 ] );\n\t\tbool = (\n\t\t\tisInt32Array( arr ) &&\n\t\t\tarr[ 0 ] === 1 &&\n\t\t\tarr[ 1 ] === 3 && // truncation\n\t\t\tarr[ 2 ] === -3 && // truncation\n\t\t\tarr[ 3 ] === INT32_MIN // wrap around\n\t\t);\n\t} catch ( err ) { // eslint-disable-line no-unused-vars\n\t\tbool = false;\n\t}\n\treturn bool;\n}\n\n\n// EXPORTS //\n\nexport default hasInt32ArraySupport;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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: write polyfill\n\n// MAIN //\n\n/**\n* Typed array which represents an array of twos-complement 32-bit signed integers in the platform byte order.\n*\n* @throws {Error} not implemented\n*/\nfunction polyfill() {\n\tthrow new Error( 'not implemented' );\n}\n\n\n// EXPORTS //\n\nexport default polyfill;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport nativeClass from '@stdlib/utils/native-class';\n\n\n// VARIABLES //\n\nvar hasInt16Array = ( typeof Int16Array === 'function' ); // eslint-disable-line stdlib/require-globals\n\n\n// MAIN //\n\n/**\n* Tests if a value is an Int16Array.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether value is an Int16Array\n*\n* @example\n* var bool = isInt16Array( new Int16Array( 10 ) );\n* // returns true\n*\n* @example\n* var bool = isInt16Array( [] );\n* // returns false\n*/\nfunction isInt16Array( value ) {\n\treturn (\n\t\t( hasInt16Array && value instanceof Int16Array ) || // eslint-disable-line stdlib/require-globals\n\t\tnativeClass( value ) === '[object Int16Array]'\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isInt16Array;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Maximum signed 16-bit integer.\n*\n* @module @stdlib/constants/int16/max\n* @type {integer32}\n*\n* @example\n* import INT16_MAX from '@stdlib/constants/int16/max';\n* // returns 32767\n*/\n\n\n// MAIN //\n\n/**\n* Maximum signed 16-bit integer.\n*\n* ## Notes\n*\n* The number has the value\n*\n* ```tex\n* 2^{15} - 1\n* ```\n*\n* which corresponds to the bit sequence\n*\n* ```binarystring\n* 0111111111111111\n* ```\n*\n* @constant\n* @type {integer32}\n* @default 32767\n*/\nvar INT16_MAX = 32767|0; // asm type annotation\n\n\n// EXPORTS //\n\nexport default INT16_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\nvar main = ( typeof Int16Array === 'function' ) ? Int16Array : null; // eslint-disable-line stdlib/require-globals\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// MAIN //\n\nvar ctor = ( typeof Int16Array === 'function' ) ? Int16Array : void 0; // eslint-disable-line stdlib/require-globals\n\n\n// EXPORTS //\n\nexport default ctor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Typed array constructor which returns a typed array representing an array of twos-complement 16-bit signed integers in the platform byte order.\n*\n* @module @stdlib/array/int16\n*\n* @example\n* import ctor from '@stdlib/array/int16';\n*\n* var arr = new ctor( 10 );\n* // returns \n*/\n\n// MODULES //\n\nimport hasInt16ArraySupport from '@stdlib/assert/has-int16array-support';\nimport builtin from './main.js';\nimport polyfill from './polyfill.js';\n\n\n// MAIN //\n\nvar ctor;\nif ( hasInt16ArraySupport() ) {\n\tctor = builtin;\n} else {\n\tctor = polyfill;\n}\n\n\n// EXPORTS //\n\nexport default ctor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isInt16Array from './../../is-int16array';\nimport INT16_MAX from '@stdlib/constants/int16/max';\nimport INT16_MIN from '@stdlib/constants/int16/min';\nimport GlobalInt16Array from './int16array.js';\n\n\n// MAIN //\n\n/**\n* Tests for native `Int16Array` support.\n*\n* @returns {boolean} boolean indicating if an environment has `Int16Array` support\n*\n* @example\n* var bool = hasInt16ArraySupport();\n* // returns \n*/\nfunction hasInt16ArraySupport() {\n\tvar bool;\n\tvar arr;\n\n\tif ( typeof GlobalInt16Array !== 'function' ) {\n\t\treturn false;\n\t}\n\t// Test basic support...\n\ttry {\n\t\tarr = new GlobalInt16Array( [ 1, 3.14, -3.14, INT16_MAX+1 ] );\n\t\tbool = (\n\t\t\tisInt16Array( arr ) &&\n\t\t\tarr[ 0 ] === 1 &&\n\t\t\tarr[ 1 ] === 3 && // truncation\n\t\t\tarr[ 2 ] === -3 && // truncation\n\t\t\tarr[ 3 ] === INT16_MIN // wrap around\n\t\t);\n\t} catch ( err ) { // eslint-disable-line no-unused-vars\n\t\tbool = false;\n\t}\n\treturn bool;\n}\n\n\n// EXPORTS //\n\nexport default hasInt16ArraySupport;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Minimum signed 16-bit integer.\n*\n* @module @stdlib/constants/int16/min\n* @type {integer32}\n*\n* @example\n* import INT16_MIN from '@stdlib/constants/int16/min';\n* // returns -32768\n*/\n\n\n// MAIN //\n\n/**\n* Minimum signed 16-bit integer.\n*\n* ## Notes\n*\n* The number has the value\n*\n* ```tex\n* -(2^{15})\n* ```\n*\n* which corresponds to the two's complement bit sequence\n*\n* ```binarystring\n* 1000000000000000\n* ```\n*\n* @constant\n* @type {integer32}\n* @default -32768\n*/\nvar INT16_MIN = -32768|0; // asm type annotation\n\n\n// EXPORTS //\n\nexport default INT16_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// TODO: write polyfill\n\n// MAIN //\n\n/**\n* Typed array which represents an array of twos-complement 16-bit signed integers in the platform byte order.\n*\n* @throws {Error} not implemented\n*/\nfunction polyfill() {\n\tthrow new Error( 'not implemented' );\n}\n\n\n// EXPORTS //\n\nexport default polyfill;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport nativeClass from '@stdlib/utils/native-class';\n\n\n// VARIABLES //\n\nvar hasUint8ClampedArray = ( typeof Uint8ClampedArray === 'function' ); // eslint-disable-line stdlib/require-globals\n\n\n// MAIN //\n\n/**\n* Tests if a value is a Uint8ClampedArray.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether value is a Uint8ClampedArray\n*\n* @example\n* var bool = isUint8ClampedArray( new Uint8ClampedArray( 10 ) );\n* // returns true\n*\n* @example\n* var bool = isUint8ClampedArray( [] );\n* // returns false\n*/\nfunction isUint8ClampedArray( value ) {\n\treturn (\n\t\t( hasUint8ClampedArray && value instanceof Uint8ClampedArray ) || // eslint-disable-line stdlib/require-globals\n\t\tnativeClass( value ) === '[object Uint8ClampedArray]'\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isUint8ClampedArray;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 main = ( typeof Uint8ClampedArray === 'function' ) ? Uint8ClampedArray : null; // eslint-disable-line stdlib/require-globals\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// MAIN //\n\nvar ctor = ( typeof Uint8ClampedArray === 'function' ) ? Uint8ClampedArray : void 0; // eslint-disable-line stdlib/require-globals\n\n\n// EXPORTS //\n\nexport default ctor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Typed array constructor which returns a typed array representing an array of 8-bit unsigned integers in the platform byte order clamped to 0-255.\n*\n* @module @stdlib/array/uint8c\n*\n* @example\n* import ctor from '@stdlib/array/uint8c';\n*\n* var arr = new ctor( 10 );\n* // returns \n*/\n\n// MODULES //\n\nimport hasUint8ClampedArraySupport from '@stdlib/assert/has-uint8clampedarray-support'; // eslint-disable-line id-length\nimport builtin from './main.js';\nimport polyfill from './polyfill.js';\n\n\n// MAIN //\n\nvar ctor;\nif ( hasUint8ClampedArraySupport() ) {\n\tctor = builtin;\n} else {\n\tctor = polyfill;\n}\n\n\n// EXPORTS //\n\nexport default ctor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isUint8ClampedArray from './../../is-uint8clampedarray';\nimport GlobalUint8ClampedArray from './uint8clampedarray.js';\n\n\n// MAIN //\n\n/**\n* Tests for native `Uint8ClampedArray` support.\n*\n* @returns {boolean} boolean indicating if an environment has `Uint8ClampedArray` support\n*\n* @example\n* var bool = hasUint8ClampedArraySupport();\n* // returns \n*/\nfunction hasUint8ClampedArraySupport() { // eslint-disable-line id-length\n\tvar bool;\n\tvar arr;\n\n\tif ( typeof GlobalUint8ClampedArray !== 'function' ) {\n\t\treturn false;\n\t}\n\t// Test basic support...\n\ttry {\n\t\tarr = new GlobalUint8ClampedArray( [ -1, 0, 1, 3.14, 4.99, 255, 256 ] );\n\t\tbool = (\n\t\t\tisUint8ClampedArray( arr ) &&\n\t\t\tarr[ 0 ] === 0 && // clamped\n\t\t\tarr[ 1 ] === 0 &&\n\t\t\tarr[ 2 ] === 1 &&\n\t\t\tarr[ 3 ] === 3 && // round to nearest\n\t\t\tarr[ 4 ] === 5 && // round to nearest\n\t\t\tarr[ 5 ] === 255 &&\n\t\t\tarr[ 6 ] === 255 // clamped\n\t\t);\n\t} catch ( err ) { // eslint-disable-line no-unused-vars\n\t\tbool = false;\n\t}\n\treturn bool;\n}\n\n\n// EXPORTS //\n\nexport default hasUint8ClampedArraySupport;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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: write polyfill\n\n// MAIN //\n\n/**\n* Typed array which represents an array of 8-bit unsigned integers in the platform byte order clamped to 0-255.\n*\n* @throws {Error} not implemented\n*/\nfunction polyfill() {\n\tthrow new Error( 'not implemented' );\n}\n\n\n// EXPORTS //\n\nexport default polyfill;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport nativeClass from '@stdlib/utils/native-class';\n\n\n// VARIABLES //\n\nvar hasInt8Array = ( typeof Int8Array === 'function' ); // eslint-disable-line stdlib/require-globals\n\n\n// MAIN //\n\n/**\n* Tests if a value is an Int8Array.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether value is an Int8Array\n*\n* @example\n* var bool = isInt8Array( new Int8Array( 10 ) );\n* // returns true\n*\n* @example\n* var bool = isInt8Array( [] );\n* // returns false\n*/\nfunction isInt8Array( value ) {\n\treturn (\n\t\t( hasInt8Array && value instanceof Int8Array ) || // eslint-disable-line stdlib/require-globals\n\t\tnativeClass( value ) === '[object Int8Array]'\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isInt8Array;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Maximum signed 8-bit integer.\n*\n* @module @stdlib/constants/int8/max\n* @type {integer32}\n*\n* @example\n* import INT8_MAX from '@stdlib/constants/int8/max';\n* // returns 127\n*/\n\n\n// MAIN //\n\n/**\n* Maximum signed 8-bit integer.\n*\n* ## Notes\n*\n* The number is given by\n*\n* ```tex\n* 2^{7} - 1\n* ```\n*\n* which corresponds to the bit sequence\n*\n* ```binarystring\n* 01111111\n* ```\n*\n* @constant\n* @type {integer32}\n* @default 127\n*/\nvar INT8_MAX = 127|0; // asm type annotation\n\n\n// EXPORTS //\n\nexport default INT8_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\nvar main = ( typeof Int8Array === 'function' ) ? Int8Array : null; // eslint-disable-line stdlib/require-globals\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// MAIN //\n\nvar ctor = ( typeof Int8Array === 'function' ) ? Int8Array : void 0; // eslint-disable-line stdlib/require-globals\n\n\n// EXPORTS //\n\nexport default ctor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Typed array constructor which returns a typed array representing an array of twos-complement 8-bit signed integers in the platform byte order.\n*\n* @module @stdlib/array/int8\n*\n* @example\n* import ctor from '@stdlib/array/int8';\n*\n* var arr = new ctor( 10 );\n* // returns \n*/\n\n// MODULES //\n\nimport hasInt8ArraySupport from '@stdlib/assert/has-int8array-support';\nimport builtin from './main.js';\nimport polyfill from './polyfill.js';\n\n\n// MAIN //\n\nvar ctor;\nif ( hasInt8ArraySupport() ) {\n\tctor = builtin;\n} else {\n\tctor = polyfill;\n}\n\n\n// EXPORTS //\n\nexport default ctor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isInt8Array from './../../is-int8array';\nimport INT8_MAX from '@stdlib/constants/int8/max';\nimport INT8_MIN from '@stdlib/constants/int8/min';\nimport GlobalInt8Array from './int8array.js';\n\n\n// MAIN //\n\n/**\n* Tests for native `Int8Array` support.\n*\n* @returns {boolean} boolean indicating if an environment has `Int8Array` support\n*\n* @example\n* var bool = hasInt8ArraySupport();\n* // returns \n*/\nfunction hasInt8ArraySupport() {\n\tvar bool;\n\tvar arr;\n\n\tif ( typeof GlobalInt8Array !== 'function' ) {\n\t\treturn false;\n\t}\n\t// Test basic support...\n\ttry {\n\t\tarr = new GlobalInt8Array( [ 1, 3.14, -3.14, INT8_MAX+1 ] );\n\t\tbool = (\n\t\t\tisInt8Array( arr ) &&\n\t\t\tarr[ 0 ] === 1 &&\n\t\t\tarr[ 1 ] === 3 && // truncation\n\t\t\tarr[ 2 ] === -3 && // truncation\n\t\t\tarr[ 3 ] === INT8_MIN // wrap around\n\t\t);\n\t} catch ( err ) { // eslint-disable-line no-unused-vars\n\t\tbool = false;\n\t}\n\treturn bool;\n}\n\n\n// EXPORTS //\n\nexport default hasInt8ArraySupport;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Minimum signed 8-bit integer.\n*\n* @module @stdlib/constants/int8/min\n* @type {integer32}\n*\n* @example\n* import INT8_MIN from '@stdlib/constants/int8/min';\n* // returns -128\n*/\n\n\n// MAIN //\n\n/**\n* Minimum signed 8-bit integer.\n*\n* ## Notes\n*\n* The number is given by\n*\n* ```tex\n* -(2^{7})\n* ```\n*\n* which corresponds to the two's complement bit sequence\n*\n* ```binarystring\n* 10000000\n* ```\n*\n* @constant\n* @type {integer32}\n* @default -128\n*/\nvar INT8_MIN = -128|0; // asm type annotation\n\n\n// EXPORTS //\n\nexport default INT8_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// TODO: write polyfill\n\n// MAIN //\n\n/**\n* Typed array which represents an array of twos-complement 8-bit signed integers in the platform byte order.\n*\n* @throws {Error} not implemented\n*/\nfunction polyfill() {\n\tthrow new Error( 'not implemented' );\n}\n\n\n// EXPORTS //\n\nexport default polyfill;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Test if a value is an array of strings.\n*\n* @module @stdlib/assert/is-string-array\n*\n* @example\n* import isStringArray from '@stdlib/assert/is-string-array';\n*\n* var bool = isStringArray( [ 'abc', 'def' ] );\n* // returns true\n*\n* bool = isStringArray( [ 'abc', 123 ] );\n* // returns false\n*\n* @example\n* import { primitives as isStringArray } from '@stdlib/assert/is-string-array';\n*\n* var bool = isStringArray( [ 'abc', 'def' ] );\n* // returns true\n*\n* bool = isStringArray( [ 'abc', new String( 'def' ) ] );\n* // returns false\n*\n* @example\n* import { objects as isStringArray } from '@stdlib/assert/is-string-array';\n*\n* var bool = isStringArray( [ new String( 'abc' ), new String( 'def' ) ] );\n* // returns true\n*\n* bool = isStringArray( [ new String( 'abc' ), 'def' ] );\n* // returns false\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport arrayfun from './../../tools/array-function';\nimport isString from './../../is-string';\n\n\n// VARIABLES //\n\nvar isPrimitiveArray = arrayfun( isString.isPrimitive );\nvar isObjectArray = arrayfun( isString.isObject );\n\n\n// MAIN //\n\nvar isStringArray = arrayfun( isString );\nsetReadOnly( isStringArray, 'primitives', isPrimitiveArray );\nsetReadOnly( isStringArray, 'objects', isObjectArray );\n\n\n// EXPORTS //\n\nexport default isStringArray;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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) 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// VARIABLES //\n\nvar BYTES_PER_ELEMENT = 8; // 4 bytes per float32 x (1 real + 1 imag component)\n\n\n// MAIN //\n\n/**\n* Returns a boolean indicating if a value is a `Complex64Array`.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a `Complex64Array`\n*\n* @example\n* import Complex64Array from '@stdlib/array/complex64';\n*\n* var bool = isComplex64Array( new Complex64Array( 10 ) );\n* // returns true\n*\n* bool = isComplex64Array( [] );\n* // returns false\n*/\nfunction isComplex64Array( value ) {\n\t// Note: the following is not robust and that is intentional. In this case, we are seeking a lower cost way to reasonably determine whether an input value is a `Complex64Array` in order to avoid walking the prototype chain and resolving constructors, which is necessary for robust identification of cross-realm instances. For more robust validation, see `@stdlib/assert/is-complex64array`.\n\treturn (\n\t\ttypeof value === 'object' &&\n\t\tvalue !== null &&\n\t\tvalue.constructor.name === 'Complex64Array' &&\n\t\tvalue.BYTES_PER_ELEMENT === BYTES_PER_ELEMENT\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isComplex64Array;\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// VARIABLES //\n\nvar BYTES_PER_ELEMENT = 16; // 8 bytes per float64 x (1 real + 1 imag component)\n\n\n// MAIN //\n\n/**\n* Returns a boolean indicating if a value is a `Complex128Array`.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a `Complex128Array`\n*\n* @example\n* import Complex128Array from '@stdlib/array/complex128';\n*\n* var bool = isComplex128Array( new Complex128Array( 10 ) );\n* // returns true\n*\n* bool = isComplex128Array( [] );\n* // returns false\n*/\nfunction isComplex128Array( value ) {\n\t// Note: the following is not robust and that is intentional. In this case, we are seeking a lower cost way to reasonably determine whether an input value is a `Complex128Array` in order to avoid walking the prototype chain and resolving constructors, which is necessary for robust identification of cross-realm instances. For more robust validation, see `@stdlib/assert/is-complex128array`.\n\treturn (\n\t\ttypeof value === 'object' &&\n\t\tvalue !== null &&\n\t\tvalue.constructor.name === 'Complex128Array' &&\n\t\tvalue.BYTES_PER_ELEMENT === BYTES_PER_ELEMENT\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isComplex128Array;\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 Float32Array from '@stdlib/array/float32';\n\n\n// MAIN //\n\n/**\n* Reinterprets a `Complex64Array` as a `Float32Array`.\n*\n* @param {Complex64Array} x - input array\n* @param {NonNegativeInteger} offset - starting index\n* @returns {Float32Array} `Float32Array` view\n*\n* @example\n* import Complex64Array from '@stdlib/array/complex64';\n*\n* var x = new Complex64Array( 10 );\n*\n* var out = reinterpret( x, 0 );\n* // returns \n*\n* var bool = ( out.buffer === x.buffer );\n* // returns true\n*/\nfunction reinterpret( x, offset ) {\n\treturn new Float32Array( x.buffer, x.byteOffset+(x.BYTES_PER_ELEMENT*offset), 2*(x.length-offset) ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default reinterpret;\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 Float64Array from '@stdlib/array/float64';\n\n\n// MAIN //\n\n/**\n* Reinterprets a `Complex128Array` as a `Float64Array`.\n*\n* @param {Complex128Array} x - input array\n* @param {NonNegativeInteger} offset - starting index\n* @returns {Float64Array} `Float64Array` view\n*\n* @example\n* import Complex128Array from '@stdlib/array/complex128';\n*\n* var x = new Complex128Array( 10 );\n*\n* var out = reinterpret( x, 0 );\n* // returns \n*\n* var bool = ( out.buffer === x.buffer );\n* // returns true\n*/\nfunction reinterpret( x, offset ) {\n\treturn new Float64Array( x.buffer, x.byteOffset+(x.BYTES_PER_ELEMENT*offset), 2*(x.length-offset) ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default reinterpret;\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// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array/int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array/int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array/int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array/uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array/uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array/uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array/uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array/dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\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// VARIABLES //\n\nvar GETTERS = {\n\t'complex128': getComplex128,\n\t'complex64': getComplex64,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Complex128Array`.\n*\n* @private\n* @param {Complex128Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Complex128Array from '@stdlib/array/complex128';\n* import real from '@stdlib/complex/float64/real';\n* import imag from '@stdlib/complex/float64/imag';\n*\n* var arr = new Complex128Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getComplex128( arr, 1 );\n* // returns \n*\n* var re = real( v );\n* // returns 3.0\n*\n* var im = imag( v );\n* // returns 4.0\n*/\nfunction getComplex128( arr, idx ) {\n\treturn arr.get( idx );\n}\n\n/**\n* Returns an element from a `Complex64Array`.\n*\n* @private\n* @param {Complex64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Complex64Array from '@stdlib/array/complex64';\n* import realf from '@stdlib/complex/float32/real';\n* import imagf from '@stdlib/complex/float32/imag';\n*\n* var arr = new Complex64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getComplex64( arr, 1 );\n* // returns \n*\n* var re = realf( v );\n* // returns 3.0\n*\n* var im = imagf( v );\n* // returns 4.0\n*/\nfunction getComplex64( arr, idx ) {\n\treturn arr.get( idx );\n}\n\n/**\n* Returns an element from an array-like object supporting the get/set protocol.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* function get( idx ) {\n* return arr[ idx ];\n* }\n*\n* function set( value, idx ) {\n* arr[ idx ] = value;\n* }\n*\n* arr.get = get;\n* arr.set = set;\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr.get( idx );\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an array-like object supporting the get/set protocol.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import Complex64Array from '@stdlib/array/complex64';\n* import realf from '@stdlib/complex/float32/real';\n* import imagf from '@stdlib/complex/float32/imag';\n* import dtype from '@stdlib/array/dtype';\n*\n* var arr = new Complex64Array( [ 1, 2, 3, 4 ] );\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 1 );\n* // returns \n*\n* var re = realf( v );\n* // returns 3.0\n*\n* var im = imagf( v );\n* // returns 4.0\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isArrayLikeObject from '@stdlib/assert/is-array-like-object';\nimport isComplexLike from '@stdlib/assert/is-complex-like';\nimport realf from '@stdlib/complex/float32/real';\nimport imagf from '@stdlib/complex/float32/imag';\nimport format from '@stdlib/string/format';\n\n\n// MAIN //\n\n/**\n* Returns an array of iterated values.\n*\n* @private\n* @param {Object} it - iterator\n* @returns {(Array|TypeError)} array or an error\n*/\nfunction fromIterator( it ) {\n\tvar out;\n\tvar v;\n\tvar z;\n\n\tout = [];\n\twhile ( true ) {\n\t\tv = it.next();\n\t\tif ( v.done ) {\n\t\t\tbreak;\n\t\t}\n\t\tz = v.value;\n\t\tif ( isArrayLikeObject( z ) && z.length >= 2 ) {\n\t\t\tout.push( z[ 0 ], z[ 1 ] );\n\t\t} else if ( isComplexLike( z ) ) {\n\t\t\tout.push( realf( z ), imagf( z ) );\n\t\t} else {\n\t\t\treturn new TypeError( format( 'invalid argument. An iterator must return either a two-element array containing real and imaginary components or a complex number. Value: `%s`.', z ) );\n\t\t}\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default fromIterator;\n","/* eslint-disable no-restricted-syntax, max-lines, no-invalid-this */\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'use strict';\n\n// MODULES //\n\nimport { isPrimitive as isNonNegativeInteger } from '@stdlib/assert/is-nonnegative-integer';\nimport isArrayLikeObject from '@stdlib/assert/is-array-like-object';\nimport isCollection from '@stdlib/assert/is-collection';\nimport isArrayBuffer from '@stdlib/assert/is-arraybuffer';\nimport isObject from '@stdlib/assert/is-object';\nimport isArray from '@stdlib/assert/is-array';\nimport { primitives as isStringArray } from '@stdlib/assert/is-string-array';\nimport { isPrimitive as isString } from '@stdlib/assert/is-string';\nimport isFunction from '@stdlib/assert/is-function';\nimport isComplexLike from '@stdlib/assert/is-complex-like';\nimport isEven from '@stdlib/math/base/assert/is-even';\nimport isInteger from '@stdlib/math/base/assert/is-integer';\nimport isComplex64Array from './../../base/assert/is-complex64array';\nimport isComplex128Array from './../../base/assert/is-complex128array';\nimport hasIteratorSymbolSupport from '@stdlib/assert/has-iterator-symbol-support';\nimport ITERATOR_SYMBOL from '@stdlib/symbol/iterator';\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport setReadOnlyAccessor from '@stdlib/utils/define-nonenumerable-read-only-accessor';\nimport Float32Array from './../../float32';\nimport Complex64 from '@stdlib/complex/float32/ctor';\nimport format from '@stdlib/string/format';\nimport realf from '@stdlib/complex/float32/real';\nimport imagf from '@stdlib/complex/float32/imag';\nimport floor from '@stdlib/math/base/special/floor';\nimport reinterpret64 from '@stdlib/strided/base/reinterpret-complex64';\nimport reinterpret128 from '@stdlib/strided/base/reinterpret-complex128';\nimport getter from './../../base/getter';\nimport accessorGetter from './../../base/accessor-getter';\nimport fromIterator from './from_iterator.js';\nimport fromIteratorMap from './from_iterator_map.js';\nimport fromArray from './from_array.js';\n\n\n// VARIABLES //\n\nvar BYTES_PER_ELEMENT = Float32Array.BYTES_PER_ELEMENT * 2;\nvar HAS_ITERATOR_SYMBOL = hasIteratorSymbolSupport();\n\n\n// FUNCTIONS //\n\n/**\n* Returns a boolean indicating if a value is a complex typed array.\n*\n* @private\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a complex typed array\n*/\nfunction isComplexArray( value ) {\n\treturn (\n\t\tvalue instanceof Complex64Array ||\n\t\t(\n\t\t\ttypeof value === 'object' &&\n\t\t\tvalue !== null &&\n\t\t\t(\n\t\t\t\tvalue.constructor.name === 'Complex64Array' ||\n\t\t\t\tvalue.constructor.name === 'Complex128Array'\n\t\t\t) &&\n\t\t\ttypeof value._length === 'number' && // eslint-disable-line no-underscore-dangle\n\n\t\t\t// NOTE: we don't perform a more rigorous test here for a typed array for performance reasons, as robustly checking for a typed array instance could require walking the prototype tree and performing relatively expensive constructor checks...\n\t\t\ttypeof value._buffer === 'object' // eslint-disable-line no-underscore-dangle\n\t\t)\n\t);\n}\n\n/**\n* Returns a boolean indicating if a value is a complex typed array constructor.\n*\n* @private\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a complex typed array constructor\n*/\nfunction isComplexArrayConstructor( value ) {\n\treturn (\n\t\tvalue === Complex64Array ||\n\n\t\t// NOTE: weaker test in order to avoid a circular dependency with Complex128Array...\n\t\tvalue.name === 'Complex128Array'\n\t);\n}\n\n/**\n* Retrieves a complex number from a complex number array buffer.\n*\n* @private\n* @param {Float32Array} buf - array buffer\n* @param {NonNegativeInteger} idx - element index\n* @returns {Complex64} complex number\n*/\nfunction getComplex64( buf, idx ) {\n\tidx *= 2;\n\treturn new Complex64( buf[ idx ], buf[ idx+1 ] );\n}\n\n\n// MAIN //\n\n/**\n* 64-bit complex number array constructor.\n*\n* @constructor\n* @param {(NonNegativeInteger|Collection|ArrayBuffer|Iterable)} [arg] - length, typed array, array-like object, buffer, or an iterable\n* @param {NonNegativeInteger} [byteOffset=0] - byte offset\n* @param {NonNegativeInteger} [length] - view length\n* @throws {RangeError} ArrayBuffer byte length must be a multiple of `8`\n* @throws {RangeError} array-like object and typed array input arguments must have a length which is a multiple of two\n* @throws {TypeError} if provided only a single argument, must provide a valid argument\n* @throws {TypeError} byte offset must be a nonnegative integer\n* @throws {RangeError} byte offset must be a multiple of `8`\n* @throws {TypeError} view length must be a positive multiple of `8`\n* @throws {RangeError} must provide sufficient memory to accommodate byte offset and view length requirements\n* @throws {TypeError} an iterator must return either a two element array containing real and imaginary components or a complex number\n* @returns {Complex64Array} complex number array\n*\n* @example\n* var arr = new Complex64Array();\n* // returns \n*\n* var len = arr.length;\n* // returns 0\n*\n* @example\n* var arr = new Complex64Array( 2 );\n* // returns \n*\n* var len = arr.length;\n* // returns 2\n*\n* @example\n* var arr = new Complex64Array( [ 1.0, -1.0 ] );\n* // returns \n*\n* var len = arr.length;\n* // returns 1\n*\n* @example\n* import ArrayBuffer from '@stdlib/array/buffer';\n*\n* var buf = new ArrayBuffer( 16 );\n* var arr = new Complex64Array( buf );\n* // returns \n*\n* var len = arr.length;\n* // returns 2\n*\n* @example\n* import ArrayBuffer from '@stdlib/array/buffer';\n*\n* var buf = new ArrayBuffer( 16 );\n* var arr = new Complex64Array( buf, 8 );\n* // returns \n*\n* var len = arr.length;\n* // returns 1\n*\n* @example\n* import ArrayBuffer from '@stdlib/array/buffer';\n*\n* var buf = new ArrayBuffer( 32 );\n* var arr = new Complex64Array( buf, 8, 2 );\n* // returns \n*\n* var len = arr.length;\n* // returns 2\n*/\nfunction Complex64Array() {\n\tvar byteOffset;\n\tvar nargs;\n\tvar buf;\n\tvar len;\n\n\tnargs = arguments.length;\n\tif ( !(this instanceof Complex64Array) ) {\n\t\tif ( nargs === 0 ) {\n\t\t\treturn new Complex64Array();\n\t\t}\n\t\tif ( nargs === 1 ) {\n\t\t\treturn new Complex64Array( arguments[0] );\n\t\t}\n\t\tif ( nargs === 2 ) {\n\t\t\treturn new Complex64Array( arguments[0], arguments[1] );\n\t\t}\n\t\treturn new Complex64Array( arguments[0], arguments[1], arguments[2] );\n\t}\n\t// Create the underlying data buffer...\n\tif ( nargs === 0 ) {\n\t\tbuf = new Float32Array( 0 ); // backward-compatibility\n\t} else if ( nargs === 1 ) {\n\t\tif ( isNonNegativeInteger( arguments[0] ) ) {\n\t\t\tbuf = new Float32Array( arguments[0]*2 );\n\t\t} else if ( isCollection( arguments[0] ) ) {\n\t\t\tbuf = arguments[ 0 ];\n\t\t\tlen = buf.length;\n\n\t\t\t// If provided a \"generic\" array, peak at the first value, and, if the value is a complex number, try to process as an array of complex numbers, falling back to \"normal\" typed array initialization if we fail and ensuring consistency if the first value had not been a complex number...\n\t\t\tif ( len && isArray( buf ) && isComplexLike( buf[0] ) ) {\n\t\t\t\tbuf = fromArray( new Float32Array( len*2 ), buf );\n\t\t\t\tif ( buf === null ) {\n\t\t\t\t\t// We failed and we are now forced to allocate a new array :-(\n\t\t\t\t\tif ( !isEven( len ) ) {\n\t\t\t\t\t\tthrow new RangeError( format( 'invalid argument. Array-like object arguments must have a length which is a multiple of two. Length: `%u`.', len ) );\n\t\t\t\t\t}\n\t\t\t\t\t// We failed, so fall back to directly setting values...\n\t\t\t\t\tbuf = new Float32Array( arguments[0] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif ( isComplex64Array( buf ) ) {\n\t\t\t\t\tbuf = reinterpret64( buf, 0 );\n\t\t\t\t} else if ( isComplex128Array( buf ) ) {\n\t\t\t\t\tbuf = reinterpret128( buf, 0 );\n\t\t\t\t} else if ( !isEven( len ) ) {\n\t\t\t\t\tthrow new RangeError( format( 'invalid argument. Array-like object and typed array arguments must have a length which is a multiple of two. Length: `%u`.', len ) );\n\t\t\t\t}\n\t\t\t\tbuf = new Float32Array( buf );\n\t\t\t}\n\t\t} else if ( isArrayBuffer( arguments[0] ) ) {\n\t\t\tbuf = arguments[ 0 ];\n\t\t\tif ( !isInteger( buf.byteLength/BYTES_PER_ELEMENT ) ) {\n\t\t\t\tthrow new RangeError( format( 'invalid argument. ArrayBuffer byte length must be a multiple of %u. Byte length: `%u`.', BYTES_PER_ELEMENT, buf.byteLength ) );\n\t\t\t}\n\t\t\tbuf = new Float32Array( buf );\n\t\t} else if ( isObject( arguments[0] ) ) {\n\t\t\tbuf = arguments[ 0 ];\n\t\t\tif ( HAS_ITERATOR_SYMBOL === false ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Environment lacks Symbol.iterator support. Must provide a length, ArrayBuffer, typed array, or array-like object. Value: `%s`.', buf ) );\n\t\t\t}\n\t\t\tif ( !isFunction( buf[ ITERATOR_SYMBOL ] ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Must provide a length, ArrayBuffer, typed array, array-like object, or an iterable. Value: `%s`.', buf ) );\n\t\t\t}\n\t\t\tbuf = buf[ ITERATOR_SYMBOL ]();\n\t\t\tif ( !isFunction( buf.next ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Must provide a length, ArrayBuffer, typed array, array-like object, or an iterable. Value: `%s`.', buf ) ); // FIXME: `buf` is what is returned from above, NOT the original value\n\t\t\t}\n\t\t\tbuf = fromIterator( buf );\n\t\t\tif ( buf instanceof Error ) {\n\t\t\t\tthrow buf;\n\t\t\t}\n\t\t\tbuf = new Float32Array( buf );\n\t\t} else {\n\t\t\tthrow new TypeError( format( 'invalid argument. Must provide a length, ArrayBuffer, typed array, array-like object, or an iterable. Value: `%s`.', arguments[0] ) );\n\t\t}\n\t} else {\n\t\tbuf = arguments[ 0 ];\n\t\tif ( !isArrayBuffer( buf ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. First argument must be an ArrayBuffer. Value: `%s`.', buf ) );\n\t\t}\n\t\tbyteOffset = arguments[ 1 ];\n\t\tif ( !isNonNegativeInteger( byteOffset ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Byte offset must be a nonnegative integer. Value: `%s`.', byteOffset ) );\n\t\t}\n\t\tif ( !isInteger( byteOffset/BYTES_PER_ELEMENT ) ) {\n\t\t\tthrow new RangeError( format( 'invalid argument. Byte offset must be a multiple of %u. Value: `%u`.', BYTES_PER_ELEMENT, byteOffset ) );\n\t\t}\n\t\tif ( nargs === 2 ) {\n\t\t\tlen = buf.byteLength - byteOffset;\n\t\t\tif ( !isInteger( len/BYTES_PER_ELEMENT ) ) {\n\t\t\t\tthrow new RangeError( format( 'invalid arguments. ArrayBuffer view byte length must be a multiple of %u. View byte length: `%u`.', BYTES_PER_ELEMENT, len ) );\n\t\t\t}\n\t\t\tbuf = new Float32Array( buf, byteOffset );\n\t\t} else {\n\t\t\tlen = arguments[ 2 ];\n\t\t\tif ( !isNonNegativeInteger( len ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Length must be a nonnegative integer. Value: `%s`.', len ) );\n\t\t\t}\n\t\t\tif ( (len*BYTES_PER_ELEMENT) > (buf.byteLength-byteOffset) ) {\n\t\t\t\tthrow new RangeError( format( 'invalid arguments. ArrayBuffer has insufficient capacity. Either decrease the array length or provide a bigger buffer. Minimum capacity: `%u`.', len*BYTES_PER_ELEMENT ) );\n\t\t\t}\n\t\t\tbuf = new Float32Array( buf, byteOffset, len*2 );\n\t\t}\n\t}\n\tsetReadOnly( this, '_buffer', buf );\n\tsetReadOnly( this, '_length', buf.length/2 );\n\n\treturn this;\n}\n\n/**\n* Size (in bytes) of each array element.\n*\n* @name BYTES_PER_ELEMENT\n* @memberof Complex64Array\n* @readonly\n* @type {PositiveInteger}\n* @default 8\n*\n* @example\n* var nbytes = Complex64Array.BYTES_PER_ELEMENT;\n* // returns 8\n*/\nsetReadOnly( Complex64Array, 'BYTES_PER_ELEMENT', BYTES_PER_ELEMENT );\n\n/**\n* Constructor name.\n*\n* @name name\n* @memberof Complex64Array\n* @readonly\n* @type {string}\n* @default 'Complex64Array'\n*\n* @example\n* var str = Complex64Array.name;\n* // returns 'Complex64Array'\n*/\nsetReadOnly( Complex64Array, 'name', 'Complex64Array' );\n\n/**\n* Creates a new 64-bit complex number array from an array-like object or an iterable.\n*\n* @name from\n* @memberof Complex64Array\n* @type {Function}\n* @param {(Collection|Iterable)} src - array-like object or iterable\n* @param {Function} [clbk] - callback to invoke for each source element\n* @param {*} [thisArg] - context\n* @throws {TypeError} `this` context must be a constructor\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be an array-like object or an iterable\n* @throws {TypeError} second argument must be a function\n* @throws {RangeError} array-like objects must have a length which is a multiple of two\n* @throws {TypeError} an iterator must return either a two element array containing real and imaginary components or a complex number\n* @throws {TypeError} when provided an iterator, a callback must return either a two element array containing real and imaginary components or a complex number\n* @returns {Complex64Array} 64-bit complex number array\n*\n* @example\n* var arr = Complex64Array.from( [ 1.0, -1.0 ] );\n* // returns \n*\n* var len = arr.length;\n* // returns 1\n*\n* @example\n* import Complex64 from '@stdlib/complex/float32/ctor';\n*\n* var arr = Complex64Array.from( [ new Complex64( 1.0, 1.0 ) ] );\n* // returns \n*\n* var len = arr.length;\n* // returns 1\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* function clbk( v ) {\n* return new Complex64( realf(v)*2.0, imagf(v)*2.0 );\n* }\n*\n* var arr = Complex64Array.from( [ new Complex64( 1.0, 1.0 ) ], clbk );\n* // returns \n*\n* var len = arr.length;\n* // returns 1\n*/\nsetReadOnly( Complex64Array, 'from', function from( src ) {\n\tvar thisArg;\n\tvar nargs;\n\tvar clbk;\n\tvar out;\n\tvar buf;\n\tvar tmp;\n\tvar get;\n\tvar len;\n\tvar flg;\n\tvar v;\n\tvar i;\n\tvar j;\n\tif ( !isFunction( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` context must be a constructor.' );\n\t}\n\tif ( !isComplexArrayConstructor( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tnargs = arguments.length;\n\tif ( nargs > 1 ) {\n\t\tclbk = arguments[ 1 ];\n\t\tif ( !isFunction( clbk ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be a function. Value: `%s`.', clbk ) );\n\t\t}\n\t\tif ( nargs > 2 ) {\n\t\t\tthisArg = arguments[ 2 ];\n\t\t}\n\t}\n\tif ( isComplexArray( src ) ) {\n\t\tlen = src.length;\n\t\tif ( clbk ) {\n\t\t\tout = new this( len );\n\t\t\tbuf = out._buffer; // eslint-disable-line no-underscore-dangle\n\t\t\tj = 0;\n\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\tv = clbk.call( thisArg, src.get( i ), i );\n\t\t\t\tif ( isComplexLike( v ) ) {\n\t\t\t\t\tbuf[ j ] = realf( v );\n\t\t\t\t\tbuf[ j+1 ] = imagf( v );\n\t\t\t\t} else if ( isArrayLikeObject( v ) && v.length >= 2 ) {\n\t\t\t\t\tbuf[ j ] = v[ 0 ];\n\t\t\t\t\tbuf[ j+1 ] = v[ 1 ];\n\t\t\t\t} else {\n\t\t\t\t\tthrow new TypeError( format( 'invalid argument. Callback must return either a two-element array containing real and imaginary components or a complex number. Value: `%s`.', v ) );\n\t\t\t\t}\n\t\t\t\tj += 2; // stride\n\t\t\t}\n\t\t\treturn out;\n\t\t}\n\t\treturn new this( src );\n\t}\n\tif ( isCollection( src ) ) {\n\t\tif ( clbk ) {\n\t\t\t// Note: array contents affect how we iterate over a provided data source. If only complex number objects, we can extract real and imaginary components. Otherwise, for non-complex number arrays (e.g., `Float64Array`, etc), we assume a strided array where real and imaginary components are interleaved. In the former case, we expect a callback to return real and imaginary components (possibly as a complex number). In the latter case, we expect a callback to return *either* a real or imaginary component.\n\n\t\t\tlen = src.length;\n\t\t\tif ( src.get && src.set ) {\n\t\t\t\tget = accessorGetter( 'default' );\n\t\t\t} else {\n\t\t\t\tget = getter( 'default' );\n\t\t\t}\n\t\t\t// Detect whether we've been provided an array which returns complex number objects...\n\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\tif ( !isComplexLike( get( src, i ) ) ) {\n\t\t\t\t\tflg = true;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// If an array does not contain only complex number objects, then we assume interleaved real and imaginary components...\n\t\t\tif ( flg ) {\n\t\t\t\tif ( !isEven( len ) ) {\n\t\t\t\t\tthrow new RangeError( format( 'invalid argument. First argument must have a length which is a multiple of %u. Length: `%u`.', 2, len ) );\n\t\t\t\t}\n\t\t\t\tout = new this( len/2 );\n\t\t\t\tbuf = out._buffer; // eslint-disable-line no-underscore-dangle\n\t\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\t\tbuf[ i ] = clbk.call( thisArg, get( src, i ), i );\n\t\t\t\t}\n\t\t\t\treturn out;\n\t\t\t}\n\t\t\t// If an array contains only complex number objects, then we need to extract real and imaginary components...\n\t\t\tout = new this( len );\n\t\t\tbuf = out._buffer; // eslint-disable-line no-underscore-dangle\n\t\t\tj = 0;\n\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\tv = clbk.call( thisArg, get( src, i ), i );\n\t\t\t\tif ( isComplexLike( v ) ) {\n\t\t\t\t\tbuf[ j ] = realf( v );\n\t\t\t\t\tbuf[ j+1 ] = imagf( v );\n\t\t\t\t} else if ( isArrayLikeObject( v ) && v.length >= 2 ) {\n\t\t\t\t\tbuf[ j ] = v[ 0 ];\n\t\t\t\t\tbuf[ j+1 ] = v[ 1 ];\n\t\t\t\t} else {\n\t\t\t\t\tthrow new TypeError( format( 'invalid argument. Callback must return either a two-element array containing real and imaginary components or a complex number. Value: `%s`.', v ) );\n\t\t\t\t}\n\t\t\t\tj += 2; // stride\n\t\t\t}\n\t\t\treturn out;\n\t\t}\n\t\treturn new this( src );\n\t}\n\tif ( isObject( src ) && HAS_ITERATOR_SYMBOL && isFunction( src[ ITERATOR_SYMBOL ] ) ) { // eslint-disable-line max-len\n\t\tbuf = src[ ITERATOR_SYMBOL ]();\n\t\tif ( !isFunction( buf.next ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. First argument must be an array-like object or an iterable. Value: `%s`.', src ) );\n\t\t}\n\t\tif ( clbk ) {\n\t\t\ttmp = fromIteratorMap( buf, clbk, thisArg );\n\t\t} else {\n\t\t\ttmp = fromIterator( buf );\n\t\t}\n\t\tif ( tmp instanceof Error ) {\n\t\t\tthrow tmp;\n\t\t}\n\t\tlen = tmp.length / 2;\n\t\tout = new this( len );\n\t\tbuf = out._buffer; // eslint-disable-line no-underscore-dangle\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tbuf[ i ] = tmp[ i ];\n\t\t}\n\t\treturn out;\n\t}\n\tthrow new TypeError( format( 'invalid argument. First argument must be an array-like object or an iterable. Value: `%s`.', src ) );\n});\n\n/**\n* Creates a new 64-bit complex number array from a variable number of arguments.\n*\n* @name of\n* @memberof Complex64Array\n* @type {Function}\n* @param {...*} element - array elements\n* @throws {TypeError} `this` context must be a constructor\n* @throws {TypeError} `this` must be a complex number array\n* @returns {Complex64Array} 64-bit complex number array\n*\n* @example\n* var arr = Complex64Array.of( 1.0, 1.0, 1.0, 1.0 );\n* // returns \n*\n* var len = arr.length;\n* // returns 2\n*/\nsetReadOnly( Complex64Array, 'of', function of() {\n\tvar args;\n\tvar i;\n\tif ( !isFunction( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` context must be a constructor.' );\n\t}\n\tif ( !isComplexArrayConstructor( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\targs = [];\n\tfor ( i = 0; i < arguments.length; i++ ) {\n\t\targs.push( arguments[ i ] );\n\t}\n\treturn new this( args );\n});\n\n/**\n* Returns an array element with support for both nonnegative and negative integer indices.\n*\n* @name at\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @param {integer} idx - element index\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} must provide an integer\n* @returns {(Complex64|void)} array element\n*\n* @example\n* var arr = new Complex64Array( 10 );\n* import realf from '@stdlib/complex/float32/real';\n* import imagf from '@stdlib/complex/float32/imag';\n*\n* var z = arr.at( 0 );\n* // returns \n*\n* var re = realf( z );\n* // returns 0.0\n*\n* var im = imagf( z );\n* // returns 0.0\n*\n* arr.set( [ 1.0, -1.0 ], 0 );\n* arr.set( [ 2.0, -2.0 ], 1 );\n* arr.set( [ 9.0, -9.0 ], 9 );\n*\n* z = arr.at( 0 );\n* // returns \n*\n* re = realf( z );\n* // returns 1.0\n*\n* im = imagf( z );\n* // returns -1.0\n*\n* z = arr.at( -1 );\n* // returns \n*\n* re = realf( z );\n* // returns 9.0\n*\n* im = imagf( z );\n* // returns -9.0\n*\n* z = arr.at( 100 );\n* // returns undefined\n*\n* z = arr.at( -100 );\n* // returns undefined\n*/\nsetReadOnly( Complex64Array.prototype, 'at', function at( idx ) {\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isInteger( idx ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide an integer. Value: `%s`.', idx ) );\n\t}\n\tif ( idx < 0 ) {\n\t\tidx += this._length;\n\t}\n\tif ( idx < 0 || idx >= this._length ) {\n\t\treturn;\n\t}\n\treturn getComplex64( this._buffer, idx );\n});\n\n/**\n* Pointer to the underlying data buffer.\n*\n* @name buffer\n* @memberof Complex64Array.prototype\n* @readonly\n* @type {ArrayBuffer}\n*\n* @example\n* var arr = new Complex64Array( 10 );\n*\n* var buf = arr.buffer;\n* // returns \n*/\nsetReadOnlyAccessor( Complex64Array.prototype, 'buffer', function get() {\n\treturn this._buffer.buffer;\n});\n\n/**\n* Size (in bytes) of the array.\n*\n* @name byteLength\n* @memberof Complex64Array.prototype\n* @readonly\n* @type {NonNegativeInteger}\n*\n* @example\n* var arr = new Complex64Array( 10 );\n*\n* var byteLength = arr.byteLength;\n* // returns 80\n*/\nsetReadOnlyAccessor( Complex64Array.prototype, 'byteLength', function get() {\n\treturn this._buffer.byteLength;\n});\n\n/**\n* Offset (in bytes) of the array from the start of its underlying `ArrayBuffer`.\n*\n* @name byteOffset\n* @memberof Complex64Array.prototype\n* @readonly\n* @type {NonNegativeInteger}\n*\n* @example\n* var arr = new Complex64Array( 10 );\n*\n* var byteOffset = arr.byteOffset;\n* // returns 0\n*/\nsetReadOnlyAccessor( Complex64Array.prototype, 'byteOffset', function get() {\n\treturn this._buffer.byteOffset;\n});\n\n/**\n* Size (in bytes) of each array element.\n*\n* @name BYTES_PER_ELEMENT\n* @memberof Complex64Array.prototype\n* @readonly\n* @type {PositiveInteger}\n* @default 8\n*\n* @example\n* var arr = new Complex64Array( 10 );\n*\n* var nbytes = arr.BYTES_PER_ELEMENT;\n* // returns 8\n*/\nsetReadOnly( Complex64Array.prototype, 'BYTES_PER_ELEMENT', Complex64Array.BYTES_PER_ELEMENT );\n\n/**\n* Copies a sequence of elements within the array to the position starting at `target`.\n*\n* @name copyWithin\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @param {integer} target - index at which to start copying elements\n* @param {integer} start - source index at which to copy elements from\n* @param {integer} [end] - source index at which to stop copying elements from\n* @throws {TypeError} `this` must be a complex number array\n* @returns {Complex64Array} modified array\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 arr = new Complex64Array( 4 );\n*\n* // Set the array elements:\n* arr.set( new Complex64( 1.0, 1.0 ), 0 );\n* arr.set( new Complex64( 2.0, 2.0 ), 1 );\n* arr.set( new Complex64( 3.0, 3.0 ), 2 );\n* arr.set( new Complex64( 4.0, 4.0 ), 3 );\n*\n* // Copy the first two elements to the last two elements:\n* arr.copyWithin( 2, 0, 2 );\n*\n* // Get the last array element:\n* var z = arr.get( 3 );\n*\n* var re = realf( z );\n* // returns 2.0\n*\n* var im = imagf( z );\n* // returns 2.0\n*/\nsetReadOnly( Complex64Array.prototype, 'copyWithin', function copyWithin( target, start ) {\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\t// FIXME: prefer a functional `copyWithin` implementation which addresses lack of universal browser support (e.g., IE11 and Safari) or ensure that typed arrays are polyfilled\n\tif ( arguments.length === 2 ) {\n\t\tthis._buffer.copyWithin( target*2, start*2 );\n\t} else {\n\t\tthis._buffer.copyWithin( target*2, start*2, arguments[2]*2 );\n\t}\n\treturn this;\n});\n\n/**\n* Returns an iterator for iterating over array key-value pairs.\n*\n* @name entries\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @throws {TypeError} `this` must be a complex number array\n* @returns {Iterator} iterator\n*\n* @example\n* import Complex64 from '@stdlib/complex/float32/ctor';\n*\n* var arr = [\n* new Complex64( 1.0, 1.0 ),\n* new Complex64( 2.0, 2.0 ),\n* new Complex64( 3.0, 3.0 )\n* ];\n* arr = new Complex64Array( arr );\n*\n* // Create an iterator:\n* var it = arr.entries();\n*\n* // Iterate over the key-value pairs...\n* var v = it.next().value;\n* // returns [ 0, ]\n*\n* v = it.next().value;\n* // returns [ 1, ]\n*\n* v = it.next().value;\n* // returns [ 2, ]\n*\n* var bool = it.next().done;\n* // returns true\n*/\nsetReadOnly( Complex64Array.prototype, 'entries', function entries() {\n\tvar self;\n\tvar iter;\n\tvar len;\n\tvar buf;\n\tvar FLG;\n\tvar i;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tself = this;\n\tbuf = this._buffer;\n\tlen = this._length;\n\n\t// Initialize an iteration index:\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\tif ( ITERATOR_SYMBOL ) {\n\t\tsetReadOnly( iter, ITERATOR_SYMBOL, 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 >= len ) {\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, getComplex64( buf, 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 self.entries();\n\t}\n});\n\n/**\n* Tests whether all elements in an array pass a test implemented by a predicate function.\n*\n* @name every\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @param {Function} predicate - test function\n* @param {*} [thisArg] - predicate function execution context\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a function\n* @returns {boolean} boolean indicating whether all elements pass a test\n*\n* @example\n* import realf from '@stdlib/complex/float32/real';\n* import imagf from '@stdlib/complex/float32/imag';\n*\n* function predicate( v ) {\n* return ( realf( v ) === imagf( v ) );\n* }\n*\n* var arr = new Complex64Array( 3 );\n*\n* arr.set( [ 1.0, 1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n* arr.set( [ 3.0, 3.0 ], 2 );\n*\n* var bool = arr.every( predicate );\n* // returns true\n*/\nsetReadOnly( Complex64Array.prototype, 'every', function every( predicate, thisArg ) {\n\tvar buf;\n\tvar i;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isFunction( predicate ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', predicate ) );\n\t}\n\tbuf = this._buffer;\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tif ( !predicate.call( thisArg, getComplex64( buf, i ), i, this ) ) {\n\t\t\treturn false;\n\t\t}\n\t}\n\treturn true;\n});\n\n/**\n* Returns a modified typed array filled with a fill value.\n*\n* @name fill\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @param {ComplexLike} value - fill value\n* @param {integer} [start=0] - starting index (inclusive)\n* @param {integer} [end] - ending index (exclusive)\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a complex number\n* @throws {TypeError} second argument must be an integer\n* @throws {TypeError} third argument must be an integer\n* @returns {Complex64Array} modified array\n*\n* @example\n* import realf from '@stdlib/complex/float32/real';\n* import imagf from '@stdlib/complex/float32/imag';\n*\n* var arr = new Complex64Array( 3 );\n*\n* arr.fill( new Complex64( 1.0, 1.0 ), 1 );\n*\n* var z = arr.get( 1 );\n* // returns \n*\n* var re = realf( z );\n* // returns 1.0\n*\n* var im = imagf( z );\n* // returns 1.0\n*\n* z = arr.get( 2 );\n* // returns \n*\n* re = realf( z );\n* // returns 1.0\n*\n* im = imagf( z );\n* // returns 1.0\n*/\nsetReadOnly( Complex64Array.prototype, 'fill', function fill( value, start, end ) {\n\tvar buf;\n\tvar len;\n\tvar idx;\n\tvar re;\n\tvar im;\n\tvar i;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isComplexLike( value ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a complex number. Value: `%s`.', value ) );\n\t}\n\tbuf = this._buffer;\n\tlen = this._length;\n\tif ( arguments.length > 1 ) {\n\t\tif ( !isInteger( start ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an integer. Value: `%s`.', start ) );\n\t\t}\n\t\tif ( start < 0 ) {\n\t\t\tstart += len;\n\t\t\tif ( start < 0 ) {\n\t\t\t\tstart = 0;\n\t\t\t}\n\t\t}\n\t\tif ( arguments.length > 2 ) {\n\t\t\tif ( !isInteger( end ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Third argument must be an integer. Value: `%s`.', end ) );\n\t\t\t}\n\t\t\tif ( end < 0 ) {\n\t\t\t\tend += len;\n\t\t\t\tif ( end < 0 ) {\n\t\t\t\t\tend = 0;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( end > len ) {\n\t\t\t\tend = len;\n\t\t\t}\n\t\t} else {\n\t\t\tend = len;\n\t\t}\n\t} else {\n\t\tstart = 0;\n\t\tend = len;\n\t}\n\tre = realf( value );\n\tim = imagf( value );\n\tfor ( i = start; i < end; i++ ) {\n\t\tidx = 2*i;\n\t\tbuf[ idx ] = re;\n\t\tbuf[ idx+1 ] = im;\n\t}\n\treturn this;\n});\n\n/**\n* Returns a new array containing the elements of an array which pass a test implemented by a predicate function.\n*\n* @name filter\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @param {Function} predicate - test function\n* @param {*} [thisArg] - predicate function execution context\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a function\n* @returns {Complex64Array} complex number array\n*\n* @example\n* import realf from '@stdlib/complex/float32/real';\n* import imagf from '@stdlib/complex/float32/imag';\n*\n* function predicate( v ) {\n* return ( realf( v ) === imagf( v ) );\n* }\n*\n* var arr = new Complex64Array( 3 );\n*\n* arr.set( [ 1.0, -1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n* arr.set( [ 3.0, -3.0 ], 2 );\n*\n* var out = arr.filter( predicate );\n* // returns \n*\n* var len = out.length;\n* // returns 1\n*\n* var z = out.get( 0 );\n* // returns \n*\n* var re = realf( z );\n* // returns 2.0\n*\n* var im = imagf( z );\n* // returns 2.0\n*/\nsetReadOnly( Complex64Array.prototype, 'filter', function filter( predicate, thisArg ) {\n\tvar buf;\n\tvar out;\n\tvar i;\n\tvar z;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isFunction( predicate ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', predicate ) );\n\t}\n\tbuf = this._buffer;\n\tout = [];\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tz = getComplex64( buf, i );\n\t\tif ( predicate.call( thisArg, z, i, this ) ) {\n\t\t\tout.push( z );\n\t\t}\n\t}\n\treturn new this.constructor( out );\n});\n\n/**\n* Returns the first element in an array for which a predicate function returns a truthy value.\n*\n* @name find\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @param {Function} predicate - test function\n* @param {*} [thisArg] - predicate function execution context\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a function\n* @returns {(Complex64|void)} array element or undefined\n*\n* @example\n* import realf from '@stdlib/complex/float32/real';\n* import imagf from '@stdlib/complex/float32/imag';\n* import Complex64 from '@stdlib/complex/float32/ctor';\n*\n* function predicate( v ) {\n* return ( realf( v ) === imagf( v ) );\n* }\n*\n* var arr = new Complex64Array( 3 );\n*\n* arr.set( [ 1.0, 1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n* arr.set( [ 3.0, 3.0 ], 2 );\n*\n* var z = arr.find( predicate );\n* // returns \n*\n* var re = realf( z );\n* // returns 1.0\n*\n* var im = imagf( z );\n* // returns 1.0\n*/\nsetReadOnly( Complex64Array.prototype, 'find', function find( predicate, thisArg ) {\n\tvar buf;\n\tvar i;\n\tvar z;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isFunction( predicate ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', predicate ) );\n\t}\n\tbuf = this._buffer;\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tz = getComplex64( buf, i );\n\t\tif ( predicate.call( thisArg, z, i, this ) ) {\n\t\t\treturn z;\n\t\t}\n\t}\n});\n\n/**\n* Returns the index of the first element in an array for which a predicate function returns a truthy value.\n*\n* @name findIndex\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @param {Function} predicate - test function\n* @param {*} [thisArg] - predicate function execution context\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a function\n* @returns {integer} index or -1\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* function predicate( v ) {\n* return ( realf( v ) === imagf( v ) );\n* }\n*\n* var arr = new Complex64Array( 3 );\n*\n* arr.set( [ 1.0, -1.0 ], 0 );\n* arr.set( [ 2.0, -2.0 ], 1 );\n* arr.set( [ 3.0, 3.0 ], 2 );\n*\n* var idx = arr.findIndex( predicate );\n* // returns 2\n*/\nsetReadOnly( Complex64Array.prototype, 'findIndex', function findIndex( predicate, thisArg ) {\n\tvar buf;\n\tvar i;\n\tvar z;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isFunction( predicate ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', predicate ) );\n\t}\n\tbuf = this._buffer;\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tz = getComplex64( buf, i );\n\t\tif ( predicate.call( thisArg, z, i, this ) ) {\n\t\t\treturn i;\n\t\t}\n\t}\n\treturn -1;\n});\n\n/**\n* Returns the last element in an array for which a predicate function returns a truthy value.\n*\n* @name findLast\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @param {Function} predicate - test function\n* @param {*} [thisArg] - predicate function execution context\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a function\n* @returns {(Complex64|void)} array element or undefined\n*\n* @example\n* import realf from '@stdlib/complex/float32/real';\n* import imagf from '@stdlib/complex/float32/imag';\n* import Complex64 from '@stdlib/complex/float32/ctor';\n*\n* function predicate( v ) {\n* return ( realf( v ) === imagf( v ) );\n* }\n*\n* var arr = new Complex64Array( 3 );\n*\n* arr.set( [ 1.0, 1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n* arr.set( [ 3.0, 3.0 ], 2 );\n*\n* var z = arr.findLast( predicate );\n* // returns \n*\n* var re = realf( z );\n* // returns 3.0\n*\n* var im = imagf( z );\n* // returns 3.0\n*/\nsetReadOnly( Complex64Array.prototype, 'findLast', function findLast( predicate, thisArg ) {\n\tvar buf;\n\tvar i;\n\tvar z;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isFunction( predicate ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', predicate ) );\n\t}\n\tbuf = this._buffer;\n\tfor ( i = this._length-1; i >= 0; i-- ) {\n\t\tz = getComplex64( buf, i );\n\t\tif ( predicate.call( thisArg, z, i, this ) ) {\n\t\t\treturn z;\n\t\t}\n\t}\n});\n\n/**\n* Returns the index of the last element in an array for which a predicate function returns a truthy value.\n*\n* @name findLastIndex\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @param {Function} predicate - test function\n* @param {*} [thisArg] - predicate function execution context\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a function\n* @returns {integer} index or -1\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* function predicate( v ) {\n* return ( realf( v ) === imagf( v ) );\n* }\n*\n* var arr = new Complex64Array( 3 );\n*\n* arr.set( [ 1.0, 1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n* arr.set( [ 3.0, -3.0 ], 2 );\n*\n* var idx = arr.findLastIndex( predicate );\n* // returns 1\n*/\nsetReadOnly( Complex64Array.prototype, 'findLastIndex', function findLastIndex( predicate, thisArg ) {\n\tvar buf;\n\tvar i;\n\tvar z;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isFunction( predicate ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', predicate ) );\n\t}\n\tbuf = this._buffer;\n\tfor ( i = this._length-1; i >= 0; i-- ) {\n\t\tz = getComplex64( buf, i );\n\t\tif ( predicate.call( thisArg, z, i, this ) ) {\n\t\t\treturn i;\n\t\t}\n\t}\n\treturn -1;\n});\n\n/**\n* Invokes a function once for each array element.\n*\n* @name forEach\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @param {Function} fcn - function to invoke\n* @param {*} [thisArg] - function invocation context\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a function\n*\n* @example\n* import Complex64 from '@stdlib/complex/float32/ctor';\n*\n* function log( v, i ) {\n* console.log( '%s: %s', i, v.toString() );\n* }\n*\n* var arr = new Complex64Array( 3 );\n*\n* arr.set( [ 1.0, 1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n* arr.set( [ 3.0, 3.0 ], 2 );\n*\n* arr.forEach( log );\n*/\nsetReadOnly( Complex64Array.prototype, 'forEach', function forEach( fcn, thisArg ) {\n\tvar buf;\n\tvar i;\n\tvar z;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isFunction( fcn ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', fcn ) );\n\t}\n\tbuf = this._buffer;\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tz = getComplex64( buf, i );\n\t\tfcn.call( thisArg, z, i, this );\n\t}\n});\n\n/**\n* Returns an array element.\n*\n* @name get\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @param {NonNegativeInteger} idx - element index\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} must provide a nonnegative integer\n* @returns {(Complex64|void)} array element\n*\n* @example\n* var arr = new Complex64Array( 10 );\n* import realf from '@stdlib/complex/float32/real';\n* import imagf from '@stdlib/complex/float32/imag';\n*\n* var z = arr.get( 0 );\n* // returns \n*\n* var re = realf( z );\n* // returns 0.0\n*\n* var im = imagf( z );\n* // returns 0.0\n*\n* arr.set( [ 1.0, -1.0 ], 0 );\n*\n* z = arr.get( 0 );\n* // returns \n*\n* re = realf( z );\n* // returns 1.0\n*\n* im = imagf( z );\n* // returns -1.0\n*\n* z = arr.get( 100 );\n* // returns undefined\n*/\nsetReadOnly( Complex64Array.prototype, 'get', function get( idx ) {\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isNonNegativeInteger( idx ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide a nonnegative integer. Value: `%s`.', idx ) );\n\t}\n\tif ( idx >= this._length ) {\n\t\treturn;\n\t}\n\treturn getComplex64( this._buffer, idx );\n});\n\n/**\n* Returns a boolean indicating whether an array includes a provided value.\n*\n* @name includes\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @param {ComplexLike} searchElement - search element\n* @param {integer} [fromIndex=0] - starting index (inclusive)\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a complex number\n* @throws {TypeError} second argument must be an integer\n* @returns {boolean} boolean indicating whether an array includes a provided value\n*\n* @example\n* import Complex64 from '@stdlib/complex/float32/ctor';\n*\n* var arr = new Complex64Array( 5 );\n*\n* arr.set( [ 1.0, -1.0 ], 0 );\n* arr.set( [ 2.0, -2.0 ], 1 );\n* arr.set( [ 3.0, -3.0 ], 2 );\n* arr.set( [ 4.0, -4.0 ], 3 );\n* arr.set( [ 5.0, -5.0 ], 4 );\n*\n* var bool = arr.includes( new Complex64( 3.0, -3.0 ) );\n* // returns true\n*\n* bool = arr.includes( new Complex64( 3.0, -3.0 ), 3 );\n* // returns false\n*\n* bool = arr.includes( new Complex64( 4.0, -4.0 ), -3 );\n* // returns true\n*/\nsetReadOnly( Complex64Array.prototype, 'includes', function includes( searchElement, fromIndex ) {\n\tvar buf;\n\tvar idx;\n\tvar re;\n\tvar im;\n\tvar i;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isComplexLike( searchElement ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a complex number. Value: `%s`.', searchElement ) );\n\t}\n\tif ( arguments.length > 1 ) {\n\t\tif ( !isInteger( fromIndex ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an integer. Value: `%s`.', fromIndex ) );\n\t\t}\n\t\tif ( fromIndex < 0 ) {\n\t\t\tfromIndex += this._length;\n\t\t\tif ( fromIndex < 0 ) {\n\t\t\t\tfromIndex = 0;\n\t\t\t}\n\t\t}\n\t} else {\n\t\tfromIndex = 0;\n\t}\n\tre = realf( searchElement );\n\tim = imagf( searchElement );\n\tbuf = this._buffer;\n\tfor ( i = fromIndex; i < this._length; i++ ) {\n\t\tidx = 2 * i;\n\t\tif ( re === buf[ idx ] && im === buf[ idx+1 ] ) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n});\n\n/**\n* Returns the first index at which a given element can be found.\n*\n* @name indexOf\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @param {ComplexLike} searchElement - element to find\n* @param {integer} [fromIndex=0] - starting index (inclusive)\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a complex number\n* @throws {TypeError} second argument must be an integer\n* @returns {integer} index or -1\n*\n* @example\n* import Complex64 from '@stdlib/complex/float32/ctor';\n*\n* var arr = new Complex64Array( 10 );\n*\n* arr.set( [ 1.0, -1.0 ], 0 );\n* arr.set( [ 2.0, -2.0 ], 1 );\n* arr.set( [ 3.0, -3.0 ], 2 );\n* arr.set( [ 4.0, -4.0 ], 3 );\n* arr.set( [ 5.0, -5.0 ], 4 );\n*\n* var idx = arr.indexOf( new Complex64( 3.0, -3.0 ) );\n* // returns 2\n*\n* idx = arr.indexOf( new Complex64( 3.0, -3.0 ), 3 );\n* // returns -1\n*\n* idx = arr.indexOf( new Complex64( 4.0, -4.0 ), -3 );\n* // returns -1\n*/\nsetReadOnly( Complex64Array.prototype, 'indexOf', function indexOf( searchElement, fromIndex ) {\n\tvar buf;\n\tvar idx;\n\tvar re;\n\tvar im;\n\tvar i;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isComplexLike( searchElement ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a complex number. Value: `%s`.', searchElement ) );\n\t}\n\tif ( arguments.length > 1 ) {\n\t\tif ( !isInteger( fromIndex ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an integer. Value: `%s`.', fromIndex ) );\n\t\t}\n\t\tif ( fromIndex < 0 ) {\n\t\t\tfromIndex += this._length;\n\t\t\tif ( fromIndex < 0 ) {\n\t\t\t\tfromIndex = 0;\n\t\t\t}\n\t\t}\n\t} else {\n\t\tfromIndex = 0;\n\t}\n\tre = realf( searchElement );\n\tim = imagf( searchElement );\n\tbuf = this._buffer;\n\tfor ( i = fromIndex; i < this._length; i++ ) {\n\t\tidx = 2 * i;\n\t\tif ( re === buf[ idx ] && im === buf[ idx+1 ] ) {\n\t\t\treturn i;\n\t\t}\n\t}\n\treturn -1;\n});\n\n/**\n* Returns a new string by concatenating all array elements.\n*\n* @name join\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @param {string} [separator=','] - element separator\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a string\n* @returns {string} string representation\n*\n* @example\n* var arr = new Complex64Array( 2 );\n*\n* arr.set( [ 1.0, 1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n*\n* var str = arr.join();\n* // returns '1 + 1i,2 + 2i'\n*\n* str = arr.join( '/' );\n* // returns '1 + 1i/2 + 2i'\n*/\nsetReadOnly( Complex64Array.prototype, 'join', function join( separator ) {\n\tvar out;\n\tvar buf;\n\tvar sep;\n\tvar i;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( arguments.length === 0 ) {\n\t\tsep = ',';\n\t} else if ( isString( separator ) ) {\n\t\tsep = separator;\n\t} else {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a string. Value: `%s`.', separator ) );\n\t}\n\tout = [];\n\tbuf = this._buffer;\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tout.push( getComplex64( buf, i ).toString() );\n\t}\n\treturn out.join( sep );\n});\n\n/**\n* Returns an iterator for iterating over each index key in a typed array.\n*\n* @name keys\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @throws {TypeError} `this` must be a complex number array\n* @returns {Iterator} iterator\n*\n* @example\n* var arr = new Complex64Array( 2 );\n*\n* arr.set( [ 1.0, 1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n*\n* var iter = arr.keys();\n*\n* var v = iter.next().value;\n* // returns 0\n*\n* v = iter.next().value;\n* // returns 1\n*\n* var bool = iter.next().done;\n* // returns true\n*/\nsetReadOnly( Complex64Array.prototype, 'keys', function keys() {\n\tvar self;\n\tvar iter;\n\tvar len;\n\tvar FLG;\n\tvar i;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tself = this;\n\tlen = this._length;\n\n\t// Initialize an iteration index:\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\tif ( ITERATOR_SYMBOL ) {\n\t\tsetReadOnly( iter, ITERATOR_SYMBOL, 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 >= len ) {\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 self.keys();\n\t}\n});\n\n/**\n* Returns the last index at which a given element can be found.\n*\n* @name lastIndexOf\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @param {ComplexLike} searchElement - element to find\n* @param {integer} [fromIndex] - index at which to start searching backward (inclusive)\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a complex number\n* @throws {TypeError} second argument must be an integer\n* @returns {integer} index or -1\n*\n* @example\n* import Complex64 from '@stdlib/complex/float32/ctor';\n*\n* var arr = new Complex64Array( 5 );\n*\n* arr.set( [ 1.0, -1.0 ], 0 );\n* arr.set( [ 2.0, -2.0 ], 1 );\n* arr.set( [ 3.0, -3.0 ], 2 );\n* arr.set( [ 4.0, -4.0 ], 3 );\n* arr.set( [ 3.0, -3.0 ], 4 );\n*\n* var idx = arr.lastIndexOf( new Complex64( 3.0, -3.0 ) );\n* // returns 4\n*\n* idx = arr.lastIndexOf( new Complex64( 3.0, -3.0 ), 3 );\n* // returns 2\n*\n* idx = arr.lastIndexOf( new Complex64( 5.0, -5.0 ), 3 );\n* // returns -1\n*\n* idx = arr.lastIndexOf( new Complex64( 2.0, -2.0 ), -3 );\n* // returns 1\n*/\nsetReadOnly( Complex64Array.prototype, 'lastIndexOf', function lastIndexOf( searchElement, fromIndex ) {\n\tvar buf;\n\tvar idx;\n\tvar re;\n\tvar im;\n\tvar i;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isComplexLike( searchElement ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a complex number. Value: `%s`.', searchElement ) );\n\t}\n\tif ( arguments.length > 1 ) {\n\t\tif ( !isInteger( fromIndex ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an integer. Value: `%s`.', fromIndex ) );\n\t\t}\n\t\tif ( fromIndex >= this._length ) {\n\t\t\tfromIndex = this._length - 1;\n\t\t} else if ( fromIndex < 0 ) {\n\t\t\tfromIndex += this._length;\n\t\t}\n\t} else {\n\t\tfromIndex = this._length - 1;\n\t}\n\tre = realf( searchElement );\n\tim = imagf( searchElement );\n\tbuf = this._buffer;\n\tfor ( i = fromIndex; i >= 0; i-- ) {\n\t\tidx = 2 * i;\n\t\tif ( re === buf[ idx ] && im === buf[ idx+1 ] ) {\n\t\t\treturn i;\n\t\t}\n\t}\n\treturn -1;\n});\n\n/**\n* Number of array elements.\n*\n* @name length\n* @memberof Complex64Array.prototype\n* @readonly\n* @type {NonNegativeInteger}\n*\n* @example\n* var arr = new Complex64Array( 10 );\n*\n* var len = arr.length;\n* // returns 10\n*/\nsetReadOnlyAccessor( Complex64Array.prototype, 'length', function get() {\n\treturn this._length;\n});\n\n/**\n* Returns a new array with each element being the result of a provided callback function.\n*\n* @name map\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @param {Function} fcn - callback function\n* @param {*} [thisArg] - callback function execution context\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a function\n* @returns {Complex64Array} complex number array\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* function scale( v, i ) {\n* return new Complex64( 2.0*realf( v ), 2.0*imagf( v ) );\n* }\n*\n* var arr = new Complex64Array( 3 );\n*\n* arr.set( [ 1.0, -1.0 ], 0 );\n* arr.set( [ 2.0, -2.0 ], 1 );\n* arr.set( [ 3.0, -3.0 ], 2 );\n*\n* var out = arr.map( scale );\n* // returns \n*\n* var z = out.get( 0 );\n* // returns \n*\n* var re = realf( z );\n* // returns 2\n*\n* var im = imagf( z );\n* // returns -2\n*/\nsetReadOnly( Complex64Array.prototype, 'map', function map( fcn, thisArg ) {\n\tvar outbuf;\n\tvar buf;\n\tvar out;\n\tvar i;\n\tvar v;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isFunction( fcn ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', fcn ) );\n\t}\n\tbuf = this._buffer;\n\tout = new this.constructor( this._length );\n\toutbuf = out._buffer; // eslint-disable-line no-underscore-dangle\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tv = fcn.call( thisArg, getComplex64( buf, i ), i, this );\n\t\tif ( isComplexLike( v ) ) {\n\t\t\toutbuf[ 2*i ] = realf( v );\n\t\t\toutbuf[ (2*i)+1 ] = imagf( v );\n\t\t} else if ( isArrayLikeObject( v ) && v.length === 2 ) {\n\t\t\toutbuf[ 2*i ] = v[ 0 ];\n\t\t\toutbuf[ (2*i)+1 ] = v[ 1 ];\n\t\t} else {\n\t\t\tthrow new TypeError( format( 'invalid argument. Callback must return either a two-element array containing real and imaginary components or a complex number. Value: `%s`.', v ) );\n\t\t}\n\t}\n\treturn out;\n});\n\n/**\n* Applies a provided callback function to each element of the array, in order, passing in the return value from the calculation on the preceding element and returning the accumulated result upon completion.\n*\n* @name reduce\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @param {Function} reducer - callback function\n* @param {*} [initialValue] - initial value\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a function\n* @throws {Error} if not provided an initial value, the array must have at least one element\n* @returns {*} accumulated result\n*\n* @example\n* import realf from '@stdlib/complex/float32/real';\n* import imagf from '@stdlib/complex/float32/imag';\n* import caddf from '@stdlib/complex/float32/base/add';\n*\n* var arr = new Complex64Array( 3 );\n*\n* arr.set( [ 1.0, 1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n* arr.set( [ 3.0, 3.0 ], 2 );\n*\n* var z = arr.reduce( caddf );\n* // returns \n*\n* var re = realf( z );\n* // returns 6.0\n*\n* var im = imagf( z );\n* // returns 6.0\n*/\nsetReadOnly( Complex64Array.prototype, 'reduce', function reduce( reducer, initialValue ) {\n\tvar buf;\n\tvar acc;\n\tvar len;\n\tvar v;\n\tvar i;\n\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isFunction( reducer ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', reducer ) );\n\t}\n\tbuf = this._buffer;\n\tlen = this._length;\n\tif ( arguments.length > 1 ) {\n\t\tacc = initialValue;\n\t\ti = 0;\n\t} else {\n\t\tif ( len === 0 ) {\n\t\t\tthrow new Error( 'invalid operation. If not provided an initial value, an array must contain at least one element.' );\n\t\t}\n\t\tacc = getComplex64( buf, 0 );\n\t\ti = 1;\n\t}\n\tfor ( ; i < len; i++ ) {\n\t\tv = getComplex64( buf, i );\n\t\tacc = reducer( acc, v, i, this );\n\t}\n\treturn acc;\n});\n\n/**\n* Applies a provided callback function to each element of the array, in reverse order, passing in the return value from the calculation on the preceding element and returning the accumulated result upon completion.\n*\n* @name reduceRight\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @param {Function} reducer - callback function\n* @param {*} [initialValue] - initial value\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a function\n* @throws {Error} if not provided an initial value, the array must have at least one element\n* @returns {*} accumulated result\n*\n* @example\n* import realf from '@stdlib/complex/float32/real';\n* import imagf from '@stdlib/complex/float32/imag';\n* import caddf from '@stdlib/complex/float32/base/add';\n*\n* var arr = new Complex64Array( 3 );\n*\n* arr.set( [ 1.0, 1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n* arr.set( [ 3.0, 3.0 ], 2 );\n*\n* var z = arr.reduceRight( caddf );\n* // returns \n*\n* var re = realf( z );\n* // returns 6.0\n*\n* var im = imagf( z );\n* // returns 6.0\n*/\nsetReadOnly( Complex64Array.prototype, 'reduceRight', function reduceRight( reducer, initialValue ) {\n\tvar buf;\n\tvar acc;\n\tvar len;\n\tvar v;\n\tvar i;\n\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isFunction( reducer ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', reducer ) );\n\t}\n\tbuf = this._buffer;\n\tlen = this._length;\n\tif ( arguments.length > 1 ) {\n\t\tacc = initialValue;\n\t\ti = len-1;\n\t} else {\n\t\tif ( len === 0 ) {\n\t\t\tthrow new Error( 'invalid operation. If not provided an initial value, an array must contain at least one element.' );\n\t\t}\n\t\tacc = getComplex64( buf, len-1 );\n\t\ti = len-2;\n\t}\n\tfor ( ; i >= 0; i-- ) {\n\t\tv = getComplex64( buf, i );\n\t\tacc = reducer( acc, v, i, this );\n\t}\n\treturn acc;\n});\n\n/**\n* Reverses an array in-place.\n*\n* @name reverse\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @throws {TypeError} `this` must be a complex number array\n* @returns {Complex64Array} reversed array\n*\n* @example\n* import realf from '@stdlib/complex/float32/real';\n* import imagf from '@stdlib/complex/float32/imag';\n*\n* var arr = new Complex64Array( 3 );\n*\n* arr.set( [ 1.0, 1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n* arr.set( [ 3.0, 3.0 ], 2 );\n*\n* var out = arr.reverse();\n* // returns \n*\n* var z = out.get( 0 );\n* // returns \n*\n* var re = realf( z );\n* // returns 3.0\n*\n* var im = imagf( z );\n* // returns 3.0\n*\n* z = out.get( 1 );\n* // returns \n*\n* re = realf( z );\n* // returns 2.0\n*\n* im = imagf( z );\n* // returns 2.0\n*\n* z = out.get( 2 );\n* // returns \n*\n* re = realf( z );\n* // returns 1.0\n*\n* im = imagf( z );\n* // returns 1.0\n*/\nsetReadOnly( Complex64Array.prototype, 'reverse', function reverse() {\n\tvar buf;\n\tvar tmp;\n\tvar len;\n\tvar N;\n\tvar i;\n\tvar j;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tlen = this._length;\n\tbuf = this._buffer;\n\tN = floor( len / 2 );\n\tfor ( i = 0; i < N; i++ ) {\n\t\tj = len - i - 1;\n\t\ttmp = buf[ (2*i) ];\n\t\tbuf[ (2*i) ] = buf[ (2*j) ];\n\t\tbuf[ (2*j) ] = tmp;\n\t\ttmp = buf[ (2*i)+1 ];\n\t\tbuf[ (2*i)+1 ] = buf[ (2*j)+1 ];\n\t\tbuf[ (2*j)+1 ] = tmp;\n\t}\n\treturn this;\n});\n\n/**\n* Sets an array element.\n*\n* ## Notes\n*\n* - When provided a typed array, real or complex, we must check whether the source array shares the same buffer as the target array and whether the underlying memory overlaps. In particular, we are concerned with the following scenario:\n*\n* ```text\n* buf: ---------------------\n* src: ---------------------\n* ```\n*\n* In the above, as we copy values from `src`, we will overwrite values in the `src` view, resulting in duplicated values copied into the end of `buf`, which is not intended. Hence, to avoid overwriting source values, we must **copy** source values to a temporary array.\n*\n* In the other overlapping scenario,\n*\n* ```text\n* buf: ---------------------\n* src: ---------------------\n* ```\n*\n* by the time we begin copying into the overlapping region, we are copying from the end of `src`, a non-overlapping region, which means we don't run the risk of copying copied values, rather than the original `src` values, as intended.\n*\n* @name set\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @param {(Collection|Complex|ComplexArray)} value - value(s)\n* @param {NonNegativeInteger} [i=0] - element index at which to start writing values\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be either a complex number, an array-like object, or a complex number array\n* @throws {TypeError} index argument must be a nonnegative integer\n* @throws {RangeError} array-like objects must have a length which is a multiple of two\n* @throws {RangeError} index argument is out-of-bounds\n* @throws {RangeError} target array lacks sufficient storage to accommodate source values\n* @returns {void}\n*\n* @example\n* import realf from '@stdlib/complex/float32/real';\n* import imagf from '@stdlib/complex/float32/imag';\n*\n* var arr = new Complex64Array( 10 );\n*\n* var z = arr.get( 0 );\n* // returns \n*\n* var re = realf( z );\n* // returns 0.0\n*\n* var im = imagf( z );\n* // returns 0.0\n*\n* arr.set( [ 1.0, -1.0 ], 0 );\n*\n* z = arr.get( 0 );\n* // returns \n*\n* re = realf( z );\n* // returns 1.0\n*\n* im = imagf( z );\n* // returns -1.0\n*/\nsetReadOnly( Complex64Array.prototype, 'set', function set( value ) {\n\t/* eslint-disable no-underscore-dangle */\n\tvar sbuf;\n\tvar idx;\n\tvar buf;\n\tvar tmp;\n\tvar flg;\n\tvar N;\n\tvar v;\n\tvar i;\n\tvar j;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tbuf = this._buffer;\n\tif ( arguments.length > 1 ) {\n\t\tidx = arguments[ 1 ];\n\t\tif ( !isNonNegativeInteger( idx ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Index argument must be a nonnegative integer. Value: `%s`.', idx ) );\n\t\t}\n\t} else {\n\t\tidx = 0;\n\t}\n\tif ( isComplexLike( value ) ) {\n\t\tif ( idx >= this._length ) {\n\t\t\tthrow new RangeError( format( 'invalid argument. Index argument is out-of-bounds. Value: `%u`.', idx ) );\n\t\t}\n\t\tidx *= 2;\n\t\tbuf[ idx ] = realf( value );\n\t\tbuf[ idx+1 ] = imagf( value );\n\t\treturn;\n\t}\n\tif ( isComplexArray( value ) ) {\n\t\tN = value._length;\n\t\tif ( idx+N > this._length ) {\n\t\t\tthrow new RangeError( 'invalid arguments. Target array lacks sufficient storage to accommodate source values.' );\n\t\t}\n\t\tsbuf = value._buffer;\n\n\t\t// Check for overlapping memory...\n\t\tj = buf.byteOffset + (idx*BYTES_PER_ELEMENT);\n\t\tif (\n\t\t\tsbuf.buffer === buf.buffer &&\n\t\t\t(\n\t\t\t\tsbuf.byteOffset < j &&\n\t\t\t\tsbuf.byteOffset+sbuf.byteLength > j\n\t\t\t)\n\t\t) {\n\t\t\t// We need to copy source values...\n\t\t\ttmp = new Float32Array( sbuf.length );\n\t\t\tfor ( i = 0; i < sbuf.length; i++ ) {\n\t\t\t\ttmp[ i ] = sbuf[ i ];\n\t\t\t}\n\t\t\tsbuf = tmp;\n\t\t}\n\t\tidx *= 2;\n\t\tj = 0;\n\t\tfor ( i = 0; i < N; i++ ) {\n\t\t\tbuf[ idx ] = sbuf[ j ];\n\t\t\tbuf[ idx+1 ] = sbuf[ j+1 ];\n\t\t\tidx += 2; // stride\n\t\t\tj += 2; // stride\n\t\t}\n\t\treturn;\n\t}\n\tif ( isCollection( value ) ) {\n\t\t// Detect whether we've been provided an array of complex numbers...\n\t\tN = value.length;\n\t\tfor ( i = 0; i < N; i++ ) {\n\t\t\tif ( !isComplexLike( value[ i ] ) ) {\n\t\t\t\tflg = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\t// If an array does not contain only complex numbers, then we assume interleaved real and imaginary components...\n\t\tif ( flg ) {\n\t\t\tif ( !isEven( N ) ) {\n\t\t\t\tthrow new RangeError( format( 'invalid argument. Array-like object arguments must have a length which is a multiple of two. Length: `%u`.', N ) );\n\t\t\t}\n\t\t\tif ( idx+(N/2) > this._length ) {\n\t\t\t\tthrow new RangeError( 'invalid arguments. Target array lacks sufficient storage to accommodate source values.' );\n\t\t\t}\n\t\t\tsbuf = value;\n\n\t\t\t// Check for overlapping memory...\n\t\t\tj = buf.byteOffset + (idx*BYTES_PER_ELEMENT);\n\t\t\tif (\n\t\t\t\tsbuf.buffer === buf.buffer &&\n\t\t\t\t(\n\t\t\t\t\tsbuf.byteOffset < j &&\n\t\t\t\t\tsbuf.byteOffset+sbuf.byteLength > j\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\t// We need to copy source values...\n\t\t\t\ttmp = new Float32Array( N );\n\t\t\t\tfor ( i = 0; i < N; i++ ) {\n\t\t\t\t\ttmp[ i ] = sbuf[ i ]; // TODO: handle accessor arrays\n\t\t\t\t}\n\t\t\t\tsbuf = tmp;\n\t\t\t}\n\t\t\tidx *= 2;\n\t\t\tN /= 2;\n\t\t\tj = 0;\n\t\t\tfor ( i = 0; i < N; i++ ) {\n\t\t\t\tbuf[ idx ] = sbuf[ j ];\n\t\t\t\tbuf[ idx+1 ] = sbuf[ j+1 ];\n\t\t\t\tidx += 2; // stride\n\t\t\t\tj += 2; // stride\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\t// If an array contains only complex numbers, then we need to extract real and imaginary components...\n\t\tif ( idx+N > this._length ) {\n\t\t\tthrow new RangeError( 'invalid arguments. Target array lacks sufficient storage to accommodate source values.' );\n\t\t}\n\t\tidx *= 2;\n\t\tfor ( i = 0; i < N; i++ ) {\n\t\t\tv = value[ i ];\n\t\t\tbuf[ idx ] = realf( v );\n\t\t\tbuf[ idx+1 ] = imagf( v );\n\t\t\tidx += 2; // stride\n\t\t}\n\t\treturn;\n\t}\n\tthrow new TypeError( format( 'invalid argument. First argument must be either a complex number, an array-like object, or a complex number array. Value: `%s`.', value ) );\n\n\t/* eslint-enable no-underscore-dangle */\n});\n\n/**\n* Copies a portion of a typed array to a new typed array.\n*\n* @name slice\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @param {integer} [start=0] - starting index (inclusive)\n* @param {integer} [end] - ending index (exclusive)\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be an integer\n* @throws {TypeError} second argument must be an integer\n* @returns {Complex64Array} complex number array\n*\n* @example\n* import realf from '@stdlib/complex/float32/real';\n* import imagf from '@stdlib/complex/float32/imag';\n*\n* var arr = new Complex64Array( 5 );\n*\n* arr.set( [ 1.0, -1.0 ], 0 );\n* arr.set( [ 2.0, -2.0 ], 1 );\n* arr.set( [ 3.0, -3.0 ], 2 );\n* arr.set( [ 4.0, -4.0 ], 3 );\n* arr.set( [ 5.0, -5.0 ], 4 );\n*\n* var out = arr.slice();\n* // returns \n*\n* var len = out.length;\n* // returns 5\n*\n* var z = out.get( 0 );\n* // returns \n*\n* var re = realf( z );\n* // returns 1.0\n*\n* var im = imagf( z );\n* // returns -1.0\n*\n* z = out.get( len-1 );\n* // returns \n*\n* re = realf( z );\n* // returns 5.0\n*\n* im = imagf( z );\n* // returns -5.0\n*\n* out = arr.slice( 1, -2 );\n* // returns \n*\n* len = out.length;\n* // returns 2\n*\n* z = out.get( 0 );\n* // returns \n*\n* re = realf( z );\n* // returns 2.0\n*\n* im = imagf( z );\n* // returns -2.0\n*\n* z = out.get( len-1 );\n* // returns \n*\n* re = realf( z );\n* // returns 3.0\n*\n* im = imagf( z );\n* // returns -3.0\n*/\nsetReadOnly( Complex64Array.prototype, 'slice', function slice( start, end ) {\n\tvar outlen;\n\tvar outbuf;\n\tvar out;\n\tvar idx;\n\tvar buf;\n\tvar len;\n\tvar i;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tbuf = this._buffer;\n\tlen = this._length;\n\tif ( arguments.length === 0 ) {\n\t\tstart = 0;\n\t\tend = len;\n\t} else {\n\t\tif ( !isInteger( start ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. First argument must be an integer. Value: `%s`.', start ) );\n\t\t}\n\t\tif ( start < 0 ) {\n\t\t\tstart += len;\n\t\t\tif ( start < 0 ) {\n\t\t\t\tstart = 0;\n\t\t\t}\n\t\t}\n\t\tif ( arguments.length === 1 ) {\n\t\t\tend = len;\n\t\t} else {\n\t\t\tif ( !isInteger( end ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an integer. Value: `%s`.', end ) );\n\t\t\t}\n\t\t\tif ( end < 0 ) {\n\t\t\t\tend += len;\n\t\t\t\tif ( end < 0 ) {\n\t\t\t\t\tend = 0;\n\t\t\t\t}\n\t\t\t} else if ( end > len ) {\n\t\t\t\tend = len;\n\t\t\t}\n\t\t}\n\t}\n\tif ( start < end ) {\n\t\toutlen = end - start;\n\t} else {\n\t\toutlen = 0;\n\t}\n\tout = new this.constructor( outlen );\n\toutbuf = out._buffer; // eslint-disable-line no-underscore-dangle\n\tfor ( i = 0; i < outlen; i++ ) {\n\t\tidx = 2*(i+start);\n\t\toutbuf[ 2*i ] = buf[ idx ];\n\t\toutbuf[ (2*i)+1 ] = buf[ idx+1 ];\n\t}\n\treturn out;\n});\n\n/**\n* Tests whether at least one element in an array passes a test implemented by a predicate function.\n*\n* @name some\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @param {Function} predicate - test function\n* @param {*} [thisArg] - predicate function execution context\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a function\n* @returns {boolean} boolean indicating whether at least one element passes a test\n*\n* @example\n* import realf from '@stdlib/complex/float32/real';\n* import imagf from '@stdlib/complex/float32/imag';\n*\n* function predicate( v ) {\n* return ( realf( v ) === imagf( v ) );\n* }\n*\n* var arr = new Complex64Array( 3 );\n*\n* arr.set( [ 1.0, -1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n* arr.set( [ 3.0, -3.0 ], 2 );\n*\n* var bool = arr.some( predicate );\n* // returns true\n*/\nsetReadOnly( Complex64Array.prototype, 'some', function some( predicate, thisArg ) {\n\tvar buf;\n\tvar i;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isFunction( predicate ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', predicate ) );\n\t}\n\tbuf = this._buffer;\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tif ( predicate.call( thisArg, getComplex64( buf, i ), i, this ) ) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n});\n\n/**\n* Sorts an array in-place.\n*\n* @name sort\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @param {Function} compareFcn - comparison function\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a function\n* @returns {Complex64Array} sorted array\n*\n* @example\n* import realf from '@stdlib/complex/float32/real';\n* import imagf from '@stdlib/complex/float32/imag';\n*\n* function compare( a, b ) {\n* var re1;\n* var re2;\n* var im1;\n* var im2;\n* re1 = realf( a );\n* re2 = realf( b );\n* if ( re1 < re2 ) {\n* return -1;\n* }\n* if ( re1 > re2 ) {\n* return 1;\n* }\n* im1 = imagf( a );\n* im2 = imagf( b );\n* if ( im1 < im2 ) {\n* return -1;\n* }\n* if ( im1 > im2 ) {\n* return 1;\n* }\n* return 0;\n* }\n*\n* var arr = new Complex64Array( 3 );\n*\n* arr.set( [ 3.0, -3.0 ], 0 );\n* arr.set( [ 1.0, -1.0 ], 1 );\n* arr.set( [ 2.0, -2.0 ], 2 );\n*\n* var out = arr.sort( compare );\n* // returns \n*\n* var z = out.get( 0 );\n* // returns \n*\n* var re = realf( z );\n* // returns 1.0\n*\n* var im = imagf( z );\n* // returns -1.0\n*\n* z = out.get( 1 );\n* // returns \n*\n* re = realf( z );\n* // returns 2.0\n*\n* im = imagf( z );\n* // returns -2.0\n*\n* z = out.get( 2 );\n* // returns \n*\n* re = realf( z );\n* // returns 3.0\n*\n* im = imagf( z );\n* // returns -3.0\n*/\nsetReadOnly( Complex64Array.prototype, 'sort', function sort( compareFcn ) {\n\tvar tmp;\n\tvar buf;\n\tvar len;\n\tvar i;\n\tvar j;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isFunction( compareFcn ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', compareFcn ) );\n\t}\n\tbuf = this._buffer;\n\tlen = this._length;\n\ttmp = [];\n\tfor ( i = 0; i < len; i++ ) {\n\t\ttmp.push( getComplex64( buf, i ) );\n\t}\n\ttmp.sort( compareFcn );\n\tfor ( i = 0; i < len; i++ ) {\n\t\tj = 2 * i;\n\t\tbuf[ j ] = realf( tmp[i] );\n\t\tbuf[ j+1 ] = imagf( tmp[i] );\n\t}\n\treturn this;\n});\n\n/**\n* Creates a new typed array view over the same underlying `ArrayBuffer` and with the same underlying data type as the host array.\n*\n* @name subarray\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @param {integer} [begin=0] - starting index (inclusive)\n* @param {integer} [end] - ending index (exclusive)\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be an integer\n* @throws {TypeError} second argument must be an integer\n* @returns {Complex64Array} subarray\n*\n* @example\n* import realf from '@stdlib/complex/float32/real';\n* import imagf from '@stdlib/complex/float32/imag';\n*\n* var arr = new Complex64Array( 5 );\n*\n* arr.set( [ 1.0, -1.0 ], 0 );\n* arr.set( [ 2.0, -2.0 ], 1 );\n* arr.set( [ 3.0, -3.0 ], 2 );\n* arr.set( [ 4.0, -4.0 ], 3 );\n* arr.set( [ 5.0, -5.0 ], 4 );\n*\n* var subarr = arr.subarray();\n* // returns \n*\n* var len = subarr.length;\n* // returns 5\n*\n* var z = subarr.get( 0 );\n* // returns \n*\n* var re = realf( z );\n* // returns 1.0\n*\n* var im = imagf( z );\n* // returns -1.0\n*\n* z = subarr.get( len-1 );\n* // returns \n*\n* re = realf( z );\n* // returns 5.0\n*\n* im = imagf( z );\n* // returns -5.0\n*\n* subarr = arr.subarray( 1, -2 );\n* // returns \n*\n* len = subarr.length;\n* // returns 2\n*\n* z = subarr.get( 0 );\n* // returns \n*\n* re = realf( z );\n* // returns 2.0\n*\n* im = imagf( z );\n* // returns -2.0\n*\n* z = subarr.get( len-1 );\n* // returns \n*\n* re = realf( z );\n* // returns 3.0\n*\n* im = imagf( z );\n* // returns -3.0\n*/\nsetReadOnly( Complex64Array.prototype, 'subarray', function subarray( begin, end ) {\n\tvar offset;\n\tvar buf;\n\tvar len;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tbuf = this._buffer;\n\tlen = this._length;\n\tif ( arguments.length === 0 ) {\n\t\tbegin = 0;\n\t\tend = len;\n\t} else {\n\t\tif ( !isInteger( begin ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. First argument must be an integer. Value: `%s`.', begin ) );\n\t\t}\n\t\tif ( begin < 0 ) {\n\t\t\tbegin += len;\n\t\t\tif ( begin < 0 ) {\n\t\t\t\tbegin = 0;\n\t\t\t}\n\t\t}\n\t\tif ( arguments.length === 1 ) {\n\t\t\tend = len;\n\t\t} else {\n\t\t\tif ( !isInteger( end ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an integer. Value: `%s`.', end ) );\n\t\t\t}\n\t\t\tif ( end < 0 ) {\n\t\t\t\tend += len;\n\t\t\t\tif ( end < 0 ) {\n\t\t\t\t\tend = 0;\n\t\t\t\t}\n\t\t\t} else if ( end > len ) {\n\t\t\t\tend = len;\n\t\t\t}\n\t\t}\n\t}\n\tif ( begin >= len ) {\n\t\tlen = 0;\n\t\toffset = buf.byteLength;\n\t} else if ( begin >= end ) {\n\t\tlen = 0;\n\t\toffset = buf.byteOffset + (begin*BYTES_PER_ELEMENT);\n\t} else {\n\t\tlen = end - begin;\n\t\toffset = buf.byteOffset + ( begin*BYTES_PER_ELEMENT );\n\t}\n\treturn new this.constructor( buf.buffer, offset, ( len < 0 ) ? 0 : len );\n});\n\n/**\n* Serializes an array as a locale-specific string.\n*\n* @name toLocaleString\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @param {(string|Array)} [locales] - locale identifier(s)\n* @param {Object} [options] - configuration options\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a string or an array of strings\n* @throws {TypeError} options argument must be an object\n* @returns {string} string representation\n*\n* @example\n* var arr = new Complex64Array( 2 );\n*\n* arr.set( [ 1.0, 1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n*\n* var str = arr.toLocaleString();\n* // returns '1 + 1i,2 + 2i'\n*/\nsetReadOnly( Complex64Array.prototype, 'toLocaleString', function toLocaleString( locales, options ) {\n\tvar opts;\n\tvar loc;\n\tvar out;\n\tvar buf;\n\tvar i;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( arguments.length === 0 ) {\n\t\tloc = [];\n\t} else if ( isString( locales ) || isStringArray( locales ) ) {\n\t\tloc = locales;\n\t} else {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a string or an array of strings. Value: `%s`.', locales ) );\n\t}\n\tif ( arguments.length < 2 ) {\n\t\topts = {};\n\t} else if ( isObject( options ) ) {\n\t\topts = options;\n\t} else {\n\t\tthrow new TypeError( format( 'invalid argument. Options argument must be an object. Value: `%s`.', options ) );\n\t}\n\tbuf = this._buffer;\n\tout = [];\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tout.push( getComplex64( buf, i ).toLocaleString( loc, opts ) );\n\t}\n\treturn out.join( ',' );\n});\n\n/**\n* Returns a new typed array containing the elements in reversed order.\n*\n* @name toReversed\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @throws {TypeError} `this` must be a complex number array\n* @returns {Complex64Array} reversed array\n*\n* @example\n* import realf from '@stdlib/complex/float32/real';\n* import imagf from '@stdlib/complex/float32/imag';\n*\n* var arr = new Complex64Array( 3 );\n*\n* arr.set( [ 1.0, 1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n* arr.set( [ 3.0, 3.0 ], 2 );\n*\n* var out = arr.toReversed();\n* // returns \n*\n* var z = out.get( 0 );\n* // returns \n*\n* var re = realf( z );\n* // returns 3.0\n*\n* var im = imagf( z );\n* // returns 3.0\n*\n* z = out.get( 1 );\n* // returns \n*\n* re = realf( z );\n* // returns 2.0\n*\n* im = imagf( z );\n* // returns 2.0\n*\n* z = out.get( 2 );\n* // returns \n*\n* re = realf( z );\n* // returns 1.0\n*\n* im = imagf( z );\n* // returns 1.0\n*/\nsetReadOnly( Complex64Array.prototype, 'toReversed', function toReversed() {\n\tvar outbuf;\n\tvar out;\n\tvar len;\n\tvar buf;\n\tvar i;\n\tvar j;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tlen = this._length;\n\tout = new this.constructor( len );\n\tbuf = this._buffer;\n\toutbuf = out._buffer; // eslint-disable-line no-underscore-dangle\n\tfor ( i = 0; i < len; i++ ) {\n\t\tj = len - i - 1;\n\t\toutbuf[ (2*i) ] = buf[ (2*j) ];\n\t\toutbuf[ (2*i)+1 ] = buf[ (2*j)+1 ];\n\t}\n\treturn out;\n});\n\n/**\n* Returns a new typed array containing the elements in sorted order.\n*\n* @name toSorted\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @param {Function} compareFcn - comparison function\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a function\n* @returns {Complex64Array} sorted array\n*\n* @example\n* import realf from '@stdlib/complex/float32/real';\n* import imagf from '@stdlib/complex/float32/imag';\n*\n* function compare( a, b ) {\n* var re1;\n* var re2;\n* var im1;\n* var im2;\n* re1 = realf( a );\n* re2 = realf( b );\n* if ( re1 < re2 ) {\n* return -1;\n* }\n* if ( re1 > re2 ) {\n* return 1;\n* }\n* im1 = imagf( a );\n* im2 = imagf( b );\n* if ( im1 < im2 ) {\n* return -1;\n* }\n* if ( im1 > im2 ) {\n* return 1;\n* }\n* return 0;\n* }\n*\n* var arr = new Complex64Array( 3 );\n*\n* arr.set( [ 3.0, -3.0 ], 0 );\n* arr.set( [ 1.0, -1.0 ], 1 );\n* arr.set( [ 2.0, -2.0 ], 2 );\n*\n* var out = arr.sort( compare );\n* // returns \n*\n* var z = out.get( 0 );\n* // returns \n*\n* var re = realf( z );\n* // returns 1.0\n*\n* var im = imagf( z );\n* // returns -1.0\n*\n* z = out.get( 1 );\n* // returns \n*\n* re = realf( z );\n* // returns 2.0\n*\n* im = imagf( z );\n* // returns -2.0\n*\n* z = out.get( 2 );\n* // returns \n*\n* re = realf( z );\n* // returns 3.0\n*\n* im = imagf( z );\n* // returns -3.0\n*/\nsetReadOnly( Complex64Array.prototype, 'toSorted', function toSorted( compareFcn ) {\n\tvar tmp;\n\tvar buf;\n\tvar len;\n\tvar i;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isFunction( compareFcn ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', compareFcn ) );\n\t}\n\tbuf = this._buffer;\n\tlen = this._length;\n\ttmp = [];\n\tfor ( i = 0; i < len; i++ ) {\n\t\ttmp.push( getComplex64( buf, i ) );\n\t}\n\ttmp.sort( compareFcn );\n\treturn new Complex64Array( tmp );\n});\n\n/**\n* Serializes an array as a string.\n*\n* @name toString\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @throws {TypeError} `this` must be a complex number array\n* @returns {string} string representation\n*\n* @example\n* var arr = new Complex64Array( 2 );\n*\n* arr.set( [ 1.0, 1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n*\n* var str = arr.toString();\n* // returns '1 + 1i,2 + 2i'\n*/\nsetReadOnly( Complex64Array.prototype, 'toString', function toString() {\n\tvar out;\n\tvar buf;\n\tvar i;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tout = [];\n\tbuf = this._buffer;\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tout.push( getComplex64( buf, i ).toString() );\n\t}\n\treturn out.join( ',' );\n});\n\n/**\n* Returns an iterator for iterating over each value in a typed array.\n*\n* @name values\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @throws {TypeError} `this` must be a complex number array\n* @returns {Iterator} iterator\n*\n* @example\n* import realf from '@stdlib/complex/float32/real';\n* import imagf from '@stdlib/complex/float32/imag';\n* var arr = new Complex64Array( 2 );\n*\n* arr.set( [ 1.0, -1.0 ], 0 );\n* arr.set( [ 2.0, -2.0 ], 1 );\n*\n* var iter = arr.values();\n*\n* var v = iter.next().value;\n* // returns \n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns -1.0\n*\n* v = iter.next().value;\n* // returns \n*\n* re = realf( v );\n* // returns 2.0\n*\n* im = imagf( v );\n* // returns -2.0\n*\n* var bool = iter.next().done;\n* // returns true\n*/\nsetReadOnly( Complex64Array.prototype, 'values', function values() {\n\tvar iter;\n\tvar self;\n\tvar len;\n\tvar FLG;\n\tvar buf;\n\tvar i;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tself = this;\n\tbuf = this._buffer;\n\tlen = this._length;\n\n\t// Initialize an iteration index:\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\tif ( ITERATOR_SYMBOL ) {\n\t\tsetReadOnly( iter, ITERATOR_SYMBOL, 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 >= len ) {\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': getComplex64( buf, 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 self.values();\n\t}\n});\n\n/**\n* Returns a new typed array with the element at a provided index replaced with a provided value.\n*\n* @name with\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @param {integer} index - element index\n* @param {ComplexLike} value - new value\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be an integer\n* @throws {RangeError} index argument is out-of-bounds\n* @throws {TypeError} second argument must be a complex number\n* @returns {Complex64Array} new typed array\n*\n* @example\n* import realf from '@stdlib/complex/float32/real';\n* import imagf from '@stdlib/complex/float32/imag';\n* import Complex64 from '@stdlib/complex/float32/ctor';\n*\n* var arr = new Complex64Array( 3 );\n*\n* arr.set( [ 1.0, 1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n* arr.set( [ 3.0, 3.0 ], 2 );\n*\n* var out = arr.with( 0, new Complex64( 4.0, 4.0 ) );\n* // returns \n*\n* var z = out.get( 0 );\n* // returns \n*\n* var re = realf( z );\n* // returns 4.0\n*\n* var im = imagf( z );\n* // returns 4.0\n*/\nsetReadOnly( Complex64Array.prototype, 'with', function copyWith( index, value ) {\n\tvar buf;\n\tvar out;\n\tvar len;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isInteger( index ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an integer. Value: `%s`.', index ) );\n\t}\n\tlen = this._length;\n\tif ( index < 0 ) {\n\t\tindex += len;\n\t}\n\tif ( index < 0 || index >= len ) {\n\t\tthrow new RangeError( format( 'invalid argument. Index argument is out-of-bounds. Value: `%s`.', index ) );\n\t}\n\tif ( !isComplexLike( value ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be a complex number. Value: `%s`.', value ) );\n\t}\n\tout = new this.constructor( this._buffer );\n\tbuf = out._buffer; // eslint-disable-line no-underscore-dangle\n\tbuf[ 2*index ] = realf( value );\n\tbuf[ (2*index)+1 ] = imagf( value );\n\treturn out;\n});\n\n\n// EXPORTS //\n\nexport default Complex64Array;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isComplexLike from '@stdlib/assert/is-complex-like';\nimport realf from '@stdlib/complex/float32/real';\nimport imagf from '@stdlib/complex/float32/imag';\n\n\n// MAIN //\n\n/**\n* Returns a strided array of real and imaginary components.\n*\n* @private\n* @param {Float32Array} buf - output array\n* @param {Array} arr - array containing complex numbers\n* @returns {(Float32Array|null)} output array or null\n*/\nfunction fromArray( buf, arr ) {\n\tvar len;\n\tvar v;\n\tvar i;\n\tvar j;\n\n\tlen = arr.length;\n\tj = 0;\n\tfor ( i = 0; i < len; i++ ) {\n\t\tv = arr[ i ];\n\t\tif ( !isComplexLike( v ) ) {\n\t\t\treturn null;\n\t\t}\n\t\tbuf[ j ] = realf( v );\n\t\tbuf[ j+1 ] = imagf( v );\n\t\tj += 2; // stride\n\t}\n\treturn buf;\n}\n\n\n// EXPORTS //\n\nexport default fromArray;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isArrayLikeObject from '@stdlib/assert/is-array-like-object';\nimport isComplexLike from '@stdlib/assert/is-complex-like';\nimport format from '@stdlib/string/format';\nimport real from '@stdlib/complex/float64/real';\nimport imag from '@stdlib/complex/float64/imag';\n\n\n// MAIN //\n\n/**\n* Returns an array of iterated values.\n*\n* @private\n* @param {Object} it - iterator\n* @returns {(Array|TypeError)} array or an error\n*/\nfunction fromIterator( it ) {\n\tvar out;\n\tvar v;\n\tvar z;\n\n\tout = [];\n\twhile ( true ) {\n\t\tv = it.next();\n\t\tif ( v.done ) {\n\t\t\tbreak;\n\t\t}\n\t\tz = v.value;\n\t\tif ( isArrayLikeObject( z ) && z.length >= 2 ) {\n\t\t\tout.push( z[ 0 ], z[ 1 ] );\n\t\t} else if ( isComplexLike( z ) ) {\n\t\t\tout.push( real( z ), imag( z ) );\n\t\t} else {\n\t\t\treturn new TypeError( format( 'invalid argument. An iterator must return either a two-element array containing real and imaginary components or a complex number. Value: `%s`.', z ) );\n\t\t}\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default fromIterator;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isArrayLikeObject from '@stdlib/assert/is-array-like-object';\nimport isComplexLike from '@stdlib/assert/is-complex-like';\nimport realf from '@stdlib/complex/float32/real';\nimport imagf from '@stdlib/complex/float32/imag';\nimport format from '@stdlib/string/format';\n\n\n// MAIN //\n\n/**\n* Returns an array of iterated values.\n*\n* @private\n* @param {Object} it - iterator\n* @param {Function} clbk - callback to invoke for each iterated value\n* @param {*} thisArg - invocation context\n* @returns {(Array|TypeError)} array or an error\n*/\nfunction fromIteratorMap( it, clbk, thisArg ) {\n\tvar out;\n\tvar v;\n\tvar z;\n\tvar i;\n\n\tout = [];\n\ti = -1;\n\twhile ( true ) {\n\t\tv = it.next();\n\t\tif ( v.done ) {\n\t\t\tbreak;\n\t\t}\n\t\ti += 1;\n\t\tz = clbk.call( thisArg, v.value, i );\n\t\tif ( isArrayLikeObject( z ) && z.length >= 2 ) {\n\t\t\tout.push( z[ 0 ], z[ 1 ] );\n\t\t} else if ( isComplexLike( z ) ) {\n\t\t\tout.push( realf( z ), imagf( z ) );\n\t\t} else {\n\t\t\treturn new TypeError( format( 'invalid argument. Callback must return either a two-element array containing real and imaginary components or a complex number. Value: `%s`.', z ) );\n\t\t}\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default fromIteratorMap;\n","/* eslint-disable no-restricted-syntax, max-lines, no-invalid-this */\n\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 { isPrimitive as isNonNegativeInteger } from '@stdlib/assert/is-nonnegative-integer';\nimport isArrayLikeObject from '@stdlib/assert/is-array-like-object';\nimport isCollection from '@stdlib/assert/is-collection';\nimport isArrayBuffer from '@stdlib/assert/is-arraybuffer';\nimport isObject from '@stdlib/assert/is-object';\nimport isArray from '@stdlib/assert/is-array';\nimport { primitives as isStringArray } from '@stdlib/assert/is-string-array';\nimport isString from '@stdlib/assert/is-string';\nimport isFunction from '@stdlib/assert/is-function';\nimport isComplexLike from '@stdlib/assert/is-complex-like';\nimport isEven from '@stdlib/math/base/assert/is-even';\nimport isInteger from '@stdlib/math/base/assert/is-integer';\nimport isComplex64Array from './../../base/assert/is-complex64array';\nimport isComplex128Array from './../../base/assert/is-complex128array';\nimport hasIteratorSymbolSupport from '@stdlib/assert/has-iterator-symbol-support';\nimport ITERATOR_SYMBOL from '@stdlib/symbol/iterator';\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport setReadOnlyAccessor from '@stdlib/utils/define-nonenumerable-read-only-accessor';\nimport Float64Array from './../../float64';\nimport Complex128 from '@stdlib/complex/float64/ctor';\nimport real from '@stdlib/complex/float64/real';\nimport imag from '@stdlib/complex/float64/imag';\nimport floor from '@stdlib/math/base/special/floor';\nimport reinterpret64 from '@stdlib/strided/base/reinterpret-complex64';\nimport reinterpret128 from '@stdlib/strided/base/reinterpret-complex128';\nimport getter from './../../base/getter';\nimport accessorGetter from './../../base/accessor-getter';\nimport format from '@stdlib/string/format';\nimport fromIterator from './from_iterator.js';\nimport fromIteratorMap from './from_iterator_map.js';\nimport fromArray from './from_array.js';\n\n\n// VARIABLES //\n\nvar BYTES_PER_ELEMENT = Float64Array.BYTES_PER_ELEMENT * 2;\nvar HAS_ITERATOR_SYMBOL = hasIteratorSymbolSupport();\n\n\n// FUNCTIONS //\n\n/**\n* Returns a boolean indicating if a value is a complex typed array.\n*\n* @private\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a complex typed array\n*/\nfunction isComplexArray( value ) {\n\treturn (\n\t\tvalue instanceof Complex128Array ||\n\t\t(\n\t\t\ttypeof value === 'object' &&\n\t\t\tvalue !== null &&\n\t\t\t(\n\t\t\t\tvalue.constructor.name === 'Complex64Array' ||\n\t\t\t\tvalue.constructor.name === 'Complex128Array'\n\t\t\t) &&\n\t\t\ttypeof value._length === 'number' && // eslint-disable-line no-underscore-dangle\n\n\t\t\t// NOTE: we don't perform a more rigorous test here for a typed array for performance reasons, as robustly checking for a typed array instance could require walking the prototype tree and performing relatively expensive constructor checks...\n\t\t\ttypeof value._buffer === 'object' // eslint-disable-line no-underscore-dangle\n\t\t)\n\t);\n}\n\n/**\n* Returns a boolean indicating if a value is a complex typed array constructor.\n*\n* @private\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a complex typed array constructor\n*/\nfunction isComplexArrayConstructor( value ) {\n\treturn (\n\t\tvalue === Complex128Array ||\n\n\t\t// NOTE: weaker test in order to avoid a circular dependency with Complex64Array...\n\t\tvalue.name === 'Complex64Array'\n\t);\n}\n\n/**\n* Retrieves a complex number from a complex number array buffer.\n*\n* @private\n* @param {Float64Array} buf - array buffer\n* @param {NonNegativeInteger} idx - element index\n* @returns {Complex128} complex number\n*/\nfunction getComplex128( buf, idx ) {\n\tidx *= 2;\n\treturn new Complex128( buf[ idx ], buf[ idx+1 ] );\n}\n\n\n// MAIN //\n\n/**\n* 128-bit complex number array constructor.\n*\n* @constructor\n* @param {(NonNegativeInteger|Collection|ArrayBuffer|Iterable)} [arg] - length, typed array, array-like object, buffer, or iterable\n* @param {NonNegativeInteger} [byteOffset=0] - byte offset\n* @param {NonNegativeInteger} [length] - view length\n* @throws {RangeError} ArrayBuffer byte length must be a multiple of `16`\n* @throws {RangeError} array-like object and typed array input arguments must have a length which is a multiple of two\n* @throws {TypeError} if provided only a single argument, must provide a valid argument\n* @throws {TypeError} byte offset must be a nonnegative integer\n* @throws {RangeError} byte offset must be a multiple of `16`\n* @throws {TypeError} view length must be a positive multiple of `16`\n* @throws {RangeError} must provide sufficient memory to accommodate byte offset and view length requirements\n* @throws {TypeError} an iterator must return either a two element array containing real and imaginary components or a complex number\n* @returns {Complex128Array} complex number array\n*\n* @example\n* var arr = new Complex128Array();\n* // returns \n*\n* var len = arr.length;\n* // returns 0\n*\n* @example\n* var arr = new Complex128Array( 2 );\n* // returns \n*\n* var len = arr.length;\n* // returns 2\n*\n* @example\n* var arr = new Complex128Array( [ 1.0, -1.0 ] );\n* // returns \n*\n* var len = arr.length;\n* // returns 1\n*\n* @example\n* import ArrayBuffer from '@stdlib/array/buffer';\n*\n* var buf = new ArrayBuffer( 32 );\n* var arr = new Complex128Array( buf );\n* // returns \n*\n* var len = arr.length;\n* // returns 2\n*\n* @example\n* import ArrayBuffer from '@stdlib/array/buffer';\n*\n* var buf = new ArrayBuffer( 32 );\n* var arr = new Complex128Array( buf, 16 );\n* // returns \n*\n* var len = arr.length;\n* // returns 1\n*\n* @example\n* import ArrayBuffer from '@stdlib/array/buffer';\n*\n* var buf = new ArrayBuffer( 64 );\n* var arr = new Complex128Array( buf, 16, 2 );\n* // returns \n*\n* var len = arr.length;\n* // returns 2\n*/\nfunction Complex128Array() {\n\tvar byteOffset;\n\tvar nargs;\n\tvar buf;\n\tvar len;\n\n\tnargs = arguments.length;\n\tif ( !(this instanceof Complex128Array) ) {\n\t\tif ( nargs === 0 ) {\n\t\t\treturn new Complex128Array();\n\t\t}\n\t\tif ( nargs === 1 ) {\n\t\t\treturn new Complex128Array( arguments[0] );\n\t\t}\n\t\tif ( nargs === 2 ) {\n\t\t\treturn new Complex128Array( arguments[0], arguments[1] );\n\t\t}\n\t\treturn new Complex128Array( arguments[0], arguments[1], arguments[2] );\n\t}\n\t// Create the underlying data buffer...\n\tif ( nargs === 0 ) {\n\t\tbuf = new Float64Array( 0 ); // backward-compatibility\n\t} else if ( nargs === 1 ) {\n\t\tif ( isNonNegativeInteger( arguments[0] ) ) {\n\t\t\tbuf = new Float64Array( arguments[0]*2 );\n\t\t} else if ( isCollection( arguments[0] ) ) {\n\t\t\tbuf = arguments[ 0 ];\n\t\t\tlen = buf.length;\n\n\t\t\t// If provided a \"generic\" array, peak at the first value, and, if the value is a complex number, try to process as an array of complex numbers, falling back to \"normal\" typed array initialization if we fail and ensuring consistency if the first value had not been a complex number...\n\t\t\tif ( len && isArray( buf ) && isComplexLike( buf[0] ) ) {\n\t\t\t\tbuf = fromArray( new Float64Array( len*2 ), buf );\n\t\t\t\tif ( buf === null ) {\n\t\t\t\t\t// We failed and we are now forced to allocate a new array :-(\n\t\t\t\t\tif ( !isEven( len ) ) {\n\t\t\t\t\t\tthrow new RangeError( format( 'invalid argument. Array-like object arguments must have a length which is a multiple of two. Length: `%u`.', len ) );\n\t\t\t\t\t}\n\t\t\t\t\t// We failed, so fall back to directly setting values...\n\t\t\t\t\tbuf = new Float64Array( arguments[0] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif ( isComplex64Array( buf ) ) {\n\t\t\t\t\tbuf = reinterpret64( buf, 0 );\n\t\t\t\t} else if ( isComplex128Array( buf ) ) {\n\t\t\t\t\tbuf = reinterpret128( buf, 0 );\n\t\t\t\t} else if ( !isEven( len ) ) {\n\t\t\t\t\tthrow new RangeError( format( 'invalid argument. Array-like object and typed array arguments must have a length which is a multiple of two. Length: `%u`.', len ) );\n\t\t\t\t}\n\t\t\t\tbuf = new Float64Array( buf );\n\t\t\t}\n\t\t} else if ( isArrayBuffer( arguments[0] ) ) {\n\t\t\tbuf = arguments[ 0 ];\n\t\t\tif ( !isInteger( buf.byteLength/BYTES_PER_ELEMENT ) ) {\n\t\t\t\tthrow new RangeError( format( 'invalid argument. ArrayBuffer byte length must be a multiple of %u. Byte length: `%u`.', BYTES_PER_ELEMENT, buf.byteLength ) );\n\t\t\t}\n\t\t\tbuf = new Float64Array( buf );\n\t\t} else if ( isObject( arguments[0] ) ) {\n\t\t\tbuf = arguments[ 0 ];\n\t\t\tif ( HAS_ITERATOR_SYMBOL === false ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Environment lacks Symbol.iterator support. Must provide a length, ArrayBuffer, typed array, or array-like object. Value: `%s`.', buf ) );\n\t\t\t}\n\t\t\tif ( !isFunction( buf[ ITERATOR_SYMBOL ] ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Must provide a length, ArrayBuffer, typed array, array-like object, or an iterable. Value: `%s`.', buf ) );\n\t\t\t}\n\t\t\tbuf = buf[ ITERATOR_SYMBOL ]();\n\t\t\tif ( !isFunction( buf.next ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Must provide a length, ArrayBuffer, typed array, array-like object, or an iterable. Value: `%s`.', buf ) );\n\t\t\t}\n\t\t\tbuf = fromIterator( buf );\n\t\t\tif ( buf instanceof Error ) {\n\t\t\t\tthrow buf;\n\t\t\t}\n\t\t\tbuf = new Float64Array( buf );\n\t\t} else {\n\t\t\tthrow new TypeError( format( 'invalid argument. Must provide a length, ArrayBuffer, typed array, array-like object, or an iterable. Value: `%s`.', arguments[0] ) );\n\t\t}\n\t} else {\n\t\tbuf = arguments[ 0 ];\n\t\tif ( !isArrayBuffer( buf ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. First argument must be an ArrayBuffer. Value: `%s`.', buf ) );\n\t\t}\n\t\tbyteOffset = arguments[ 1 ];\n\t\tif ( !isNonNegativeInteger( byteOffset ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Byte offset must be a nonnegative integer. Value: `%s`.', byteOffset ) );\n\t\t}\n\t\tif ( !isInteger( byteOffset/BYTES_PER_ELEMENT ) ) {\n\t\t\tthrow new RangeError( format( 'invalid argument. Byte offset must be a multiple of %u. Value: `%u`.', BYTES_PER_ELEMENT, byteOffset ) );\n\t\t}\n\t\tif ( nargs === 2 ) {\n\t\t\tlen = buf.byteLength - byteOffset;\n\t\t\tif ( !isInteger( len/BYTES_PER_ELEMENT ) ) {\n\t\t\t\tthrow new RangeError( format( 'invalid arguments. ArrayBuffer view byte length must be a multiple of %u. View byte length: `%u`.', BYTES_PER_ELEMENT, len ) );\n\t\t\t}\n\t\t\tbuf = new Float64Array( buf, byteOffset );\n\t\t} else {\n\t\t\tlen = arguments[ 2 ];\n\t\t\tif ( !isNonNegativeInteger( len ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Length must be a nonnegative integer. Value: `%s`.', len ) );\n\t\t\t}\n\t\t\tif ( (len*BYTES_PER_ELEMENT) > (buf.byteLength-byteOffset) ) {\n\t\t\t\tthrow new RangeError( format( 'invalid arguments. ArrayBuffer has insufficient capacity. Either decrease the array length or provide a bigger buffer. Minimum capacity: `%u`.', len*BYTES_PER_ELEMENT ) );\n\t\t\t}\n\t\t\tbuf = new Float64Array( buf, byteOffset, len*2 );\n\t\t}\n\t}\n\tsetReadOnly( this, '_buffer', buf );\n\tsetReadOnly( this, '_length', buf.length/2 );\n\n\treturn this;\n}\n\n/**\n* Size (in bytes) of each array element.\n*\n* @name BYTES_PER_ELEMENT\n* @memberof Complex128Array\n* @readonly\n* @type {PositiveInteger}\n* @default 16\n*\n* @example\n* var nbytes = Complex128Array.BYTES_PER_ELEMENT;\n* // returns 16\n*/\nsetReadOnly( Complex128Array, 'BYTES_PER_ELEMENT', BYTES_PER_ELEMENT );\n\n/**\n* Constructor name.\n*\n* @name name\n* @memberof Complex128Array\n* @readonly\n* @type {string}\n* @default 'Complex128Array'\n*\n* @example\n* var name = Complex128Array.name;\n* // returns 'Complex128Array'\n*/\nsetReadOnly( Complex128Array, 'name', 'Complex128Array' );\n\n/**\n* Creates a new 128-bit complex number array from an array-like object or an iterable.\n*\n* @name from\n* @memberof Complex128Array\n* @type {Function}\n* @param {(Collection|Object)} src - array-like object or iterable\n* @param {Function} [clbk] - callback to invoke for each source element\n* @param {*} [thisArg] - context\n* @throws {TypeError} `this` context must be a constructor\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be an array-like object or an iterable\n* @throws {TypeError} second argument must be a function\n* @throws {RangeError} array-like objects must have a length which is a multiple of two\n* @throws {TypeError} an iterator must return either a two element array containing real and imaginary components or a complex number\n* @throws {TypeError} when provided an iterator, a callback must return either a two element array containing real and imaginary components or a complex number\n* @returns {Complex128Array} 128-bit complex number array\n*\n* @example\n* var arr = Complex128Array.from( [ 1.0, -1.0 ] );\n* // returns \n*\n* var len = arr.length;\n* // returns 1\n*\n* @example\n* import Complex128 from '@stdlib/complex/float64/ctor';\n*\n* var arr = Complex128Array.from( [ new Complex128( 1.0, 1.0 ) ] );\n* // returns \n*\n* var len = arr.length;\n* // returns 1\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* function clbk( v ) {\n* return new Complex128( real(v)*2.0, imag(v)*2.0 );\n* }\n*\n* var arr = Complex128Array.from( [ new Complex128( 1.0, 1.0 ) ], clbk );\n* // returns \n*\n* var len = arr.length;\n* // returns 1\n*/\nsetReadOnly( Complex128Array, 'from', function from( src ) {\n\tvar thisArg;\n\tvar nargs;\n\tvar clbk;\n\tvar out;\n\tvar buf;\n\tvar tmp;\n\tvar get;\n\tvar len;\n\tvar flg;\n\tvar v;\n\tvar i;\n\tvar j;\n\tif ( !isFunction( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` context must be a constructor.' );\n\t}\n\tif ( !isComplexArrayConstructor( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tnargs = arguments.length;\n\tif ( nargs > 1 ) {\n\t\tclbk = arguments[ 1 ];\n\t\tif ( !isFunction( clbk ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be a function. Value: `%s`.', clbk ) );\n\t\t}\n\t\tif ( nargs > 2 ) {\n\t\t\tthisArg = arguments[ 2 ];\n\t\t}\n\t}\n\tif ( isComplexArray( src ) ) {\n\t\tlen = src.length;\n\t\tif ( clbk ) {\n\t\t\tout = new this( len );\n\t\t\tbuf = out._buffer; // eslint-disable-line no-underscore-dangle\n\t\t\tj = 0;\n\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\tv = clbk.call( thisArg, src.get( i ), i );\n\t\t\t\tif ( isComplexLike( v ) ) {\n\t\t\t\t\tbuf[ j ] = real( v );\n\t\t\t\t\tbuf[ j+1 ] = imag( v );\n\t\t\t\t} else if ( isArrayLikeObject( v ) && v.length >= 2 ) {\n\t\t\t\t\tbuf[ j ] = v[ 0 ];\n\t\t\t\t\tbuf[ j+1 ] = v[ 1 ];\n\t\t\t\t} else {\n\t\t\t\t\tthrow new TypeError( format( 'invalid argument. Callback must return either a two-element array containing real and imaginary components or a complex number. Value: `%s`.', v ) );\n\t\t\t\t}\n\t\t\t\tj += 2; // stride\n\t\t\t}\n\t\t\treturn out;\n\t\t}\n\t\treturn new this( src );\n\t}\n\tif ( isCollection( src ) ) {\n\t\tif ( clbk ) {\n\t\t\t// Note: array contents affect how we iterate over a provided data source. If only complex number objects, we can extract real and imaginary components. Otherwise, for non-complex number arrays (e.g., `Float64Array`, etc), we assume a strided array where real and imaginary components are interleaved. In the former case, we expect a callback to return real and imaginary components (possibly as a complex number). In the latter case, we expect a callback to return *either* a real or imaginary component.\n\n\t\t\tlen = src.length;\n\t\t\tif ( src.get && src.set ) {\n\t\t\t\tget = accessorGetter( 'default' );\n\t\t\t} else {\n\t\t\t\tget = getter( 'default' );\n\t\t\t}\n\t\t\t// Detect whether we've been provided an array which returns complex number objects...\n\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\tif ( !isComplexLike( get( src, i ) ) ) {\n\t\t\t\t\tflg = true;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// If an array does not contain only complex number objects, then we assume interleaved real and imaginary components...\n\t\t\tif ( flg ) {\n\t\t\t\tif ( !isEven( len ) ) {\n\t\t\t\t\tthrow new RangeError( format( 'invalid argument. First argument must have a length which is a multiple of two. Length: `%u`.', len ) );\n\t\t\t\t}\n\t\t\t\tout = new this( len/2 );\n\t\t\t\tbuf = out._buffer; // eslint-disable-line no-underscore-dangle\n\t\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\t\tbuf[ i ] = clbk.call( thisArg, get( src, i ), i );\n\t\t\t\t}\n\t\t\t\treturn out;\n\t\t\t}\n\t\t\t// If an array contains only complex number objects, then we need to extract real and imaginary components...\n\t\t\tout = new this( len );\n\t\t\tbuf = out._buffer; // eslint-disable-line no-underscore-dangle\n\t\t\tj = 0;\n\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\tv = clbk.call( thisArg, get( src, i ), i );\n\t\t\t\tif ( isComplexLike( v ) ) {\n\t\t\t\t\tbuf[ j ] = real( v );\n\t\t\t\t\tbuf[ j+1 ] = imag( v );\n\t\t\t\t} else if ( isArrayLikeObject( v ) && v.length >= 2 ) {\n\t\t\t\t\tbuf[ j ] = v[ 0 ];\n\t\t\t\t\tbuf[ j+1 ] = v[ 1 ];\n\t\t\t\t} else {\n\t\t\t\t\tthrow new TypeError( format( 'invalid argument. Callback must return either a two-element array containing real and imaginary components or a complex number. Value: `%s`.', v ) );\n\t\t\t\t}\n\t\t\t\tj += 2; // stride\n\t\t\t}\n\t\t\treturn out;\n\t\t}\n\t\treturn new this( src );\n\t}\n\tif ( isObject( src ) && HAS_ITERATOR_SYMBOL && isFunction( src[ ITERATOR_SYMBOL ] ) ) { // eslint-disable-line max-len\n\t\tbuf = src[ ITERATOR_SYMBOL ]();\n\t\tif ( !isFunction( buf.next ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. First argument must be an array-like object or an iterable. Value: `%s`.', src ) );\n\t\t}\n\t\tif ( clbk ) {\n\t\t\ttmp = fromIteratorMap( buf, clbk, thisArg );\n\t\t} else {\n\t\t\ttmp = fromIterator( buf );\n\t\t}\n\t\tif ( tmp instanceof Error ) {\n\t\t\tthrow tmp;\n\t\t}\n\t\tlen = tmp.length / 2;\n\t\tout = new this( len );\n\t\tbuf = out._buffer; // eslint-disable-line no-underscore-dangle\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tbuf[ i ] = tmp[ i ];\n\t\t}\n\t\treturn out;\n\t}\n\tthrow new TypeError( format( 'invalid argument. First argument must be an array-like object or an iterable. Value: `%s`.', src ) );\n});\n\n/**\n* Creates a new 128-bit complex number array from a variable number of arguments.\n*\n* @name of\n* @memberof Complex128Array\n* @type {Function}\n* @param {...*} element - array elements\n* @throws {TypeError} `this` context must be a constructor\n* @throws {TypeError} `this` must be a complex number array\n* @returns {Complex128Array} 128-bit complex number array\n*\n* @example\n* var arr = Complex128Array.of( 1.0, 1.0, 1.0, 1.0 );\n* // returns \n*\n* var len = arr.length;\n* // returns 2\n*/\nsetReadOnly( Complex128Array, 'of', function of() {\n\tvar args;\n\tvar i;\n\tif ( !isFunction( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` context must be a constructor.' );\n\t}\n\tif ( !isComplexArrayConstructor( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\targs = [];\n\tfor ( i = 0; i < arguments.length; i++ ) {\n\t\targs.push( arguments[ i ] );\n\t}\n\treturn new this( args );\n});\n\n/**\n* Returns an array element with support for both nonnegative and negative integer indices.\n*\n* @name at\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @param {integer} idx - element index\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} must provide an integer\n* @returns {(Complex128|void)} array element\n*\n* @example\n* import real from '@stdlib/complex/float64/real';\n* import imag from '@stdlib/complex/float64/imag';\n*\n* var arr = new Complex128Array( 10 );\n*\n* var z = arr.at( 0 );\n* // returns \n*\n* var re = real( z );\n* // returns 0.0\n*\n* var im = imag( z );\n* // returns 0.0\n*\n* arr.set( [ 1.0, -1.0 ], 0 );\n* arr.set( [ 2.0, -2.0 ], 1 );\n* arr.set( [ 9.0, -9.0 ], 9 );\n*\n* z = arr.at( 0 );\n* // returns \n*\n* re = real( z );\n* // returns 1.0\n*\n* im = imag( z );\n* // returns -1.0\n*\n* z = arr.at( -1 );\n* // returns \n*\n* re = real( z );\n* // returns 9.0\n*\n* im = imag( z );\n* // returns -9.0\n*\n* z = arr.at( 100 );\n* // returns undefined\n*\n* z = arr.at( -100 );\n* // returns undefined\n*/\nsetReadOnly( Complex128Array.prototype, 'at', function at( idx ) {\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isInteger( idx ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide an integer. Value: `%s`.', idx ) );\n\t}\n\tif ( idx < 0 ) {\n\t\tidx += this._length;\n\t}\n\tif ( idx < 0 || idx >= this._length ) {\n\t\treturn;\n\t}\n\treturn getComplex128( this._buffer, idx );\n});\n\n/**\n* Pointer to the underlying data buffer.\n*\n* @name buffer\n* @memberof Complex128Array.prototype\n* @readonly\n* @type {ArrayBuffer}\n*\n* @example\n* var arr = new Complex128Array( 10 );\n*\n* var buf = arr.buffer;\n* // returns \n*/\nsetReadOnlyAccessor( Complex128Array.prototype, 'buffer', function get() {\n\treturn this._buffer.buffer;\n});\n\n/**\n* Size (in bytes) of the array.\n*\n* @name byteLength\n* @memberof Complex128Array.prototype\n* @readonly\n* @type {NonNegativeInteger}\n*\n* @example\n* var arr = new Complex128Array( 10 );\n*\n* var byteLength = arr.byteLength;\n* // returns 160\n*/\nsetReadOnlyAccessor( Complex128Array.prototype, 'byteLength', function get() {\n\treturn this._buffer.byteLength;\n});\n\n/**\n* Offset (in bytes) of the array from the start of its underlying `ArrayBuffer`.\n*\n* @name byteOffset\n* @memberof Complex128Array.prototype\n* @readonly\n* @type {NonNegativeInteger}\n*\n* @example\n* var arr = new Complex128Array( 10 );\n*\n* var byteOffset = arr.byteOffset;\n* // returns 0\n*/\nsetReadOnlyAccessor( Complex128Array.prototype, 'byteOffset', function get() {\n\treturn this._buffer.byteOffset;\n});\n\n/**\n* Size (in bytes) of each array element.\n*\n* @name BYTES_PER_ELEMENT\n* @memberof Complex128Array.prototype\n* @readonly\n* @type {PositiveInteger}\n* @default 16\n*\n* @example\n* var arr = new Complex128Array( 10 );\n*\n* var nbytes = arr.BYTES_PER_ELEMENT;\n* // returns 16\n*/\nsetReadOnly( Complex128Array.prototype, 'BYTES_PER_ELEMENT', Complex128Array.BYTES_PER_ELEMENT );\n\n/**\n* Copies a sequence of elements within the array to the position starting at `target`.\n*\n* @name copyWithin\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @param {integer} target - index at which to start copying elements\n* @param {integer} start - source index at which to copy elements from\n* @param {integer} [end] - source index at which to stop copying elements from\n* @throws {TypeError} `this` must be a complex number array\n* @returns {Complex128Array} modified array\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 arr = new Complex128Array( 4 );\n*\n* // Set the array elements:\n* arr.set( new Complex128( 1.0, 1.0 ), 0 );\n* arr.set( new Complex128( 2.0, 2.0 ), 1 );\n* arr.set( new Complex128( 3.0, 3.0 ), 2 );\n* arr.set( new Complex128( 4.0, 4.0 ), 3 );\n*\n* // Copy the first two elements to the last two elements:\n* arr.copyWithin( 2, 0, 2 );\n*\n* // Get the last array element:\n* var z = arr.get( 3 );\n*\n* var re = real( z );\n* // returns 2.0\n*\n* var im = imag( z );\n* // returns 2.0\n*/\nsetReadOnly( Complex128Array.prototype, 'copyWithin', function copyWithin( target, start ) {\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\t// FIXME: prefer a functional `copyWithin` implementation which addresses lack of universal browser support (e.g., IE11 and Safari) or ensure that typed arrays are polyfilled\n\tif ( arguments.length === 2 ) {\n\t\tthis._buffer.copyWithin( target*2, start*2 );\n\t} else {\n\t\tthis._buffer.copyWithin( target*2, start*2, arguments[2]*2 );\n\t}\n\treturn this;\n});\n\n/**\n* Returns an iterator for iterating over array key-value pairs.\n*\n* @name entries\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @throws {TypeError} `this` must be a complex number array\n* @returns {Iterator} iterator\n*\n* @example\n* import Complex128 from '@stdlib/complex/float64/ctor';\n*\n* var arr = [\n* new Complex128( 1.0, 1.0 ),\n* new Complex128( 2.0, 2.0 ),\n* new Complex128( 3.0, 3.0 )\n* ];\n* arr = new Complex128Array( arr );\n*\n* // Create an iterator:\n* var it = arr.entries();\n*\n* // Iterate over the key-value pairs...\n* var v = it.next().value;\n* // returns [ 0, ]\n*\n* v = it.next().value;\n* // returns [ 1, ]\n*\n* v = it.next().value;\n* // returns [ 2, ]\n*\n* var bool = it.next().done;\n* // returns true\n*/\nsetReadOnly( Complex128Array.prototype, 'entries', function entries() {\n\tvar buffer;\n\tvar self;\n\tvar iter;\n\tvar len;\n\tvar FLG;\n\tvar i;\n\tvar j;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tself = this;\n\tbuffer = this._buffer;\n\tlen = this._length;\n\n\t// Initialize the iteration indices:\n\ti = -1;\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\tif ( ITERATOR_SYMBOL ) {\n\t\tsetReadOnly( iter, ITERATOR_SYMBOL, 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 z;\n\t\ti += 1;\n\t\tif ( FLG || i >= len ) {\n\t\t\treturn {\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\tj += 2;\n\t\tz = new Complex128( buffer[ j ], buffer[ j+1 ] );\n\t\treturn {\n\t\t\t'value': [ i, z ],\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 self.entries();\n\t}\n});\n\n/**\n* Tests whether all elements in an array pass a test implemented by a predicate function.\n*\n* @name every\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @param {Function} predicate - test function\n* @param {*} [thisArg] - predicate function execution context\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a function\n* @returns {boolean} boolean indicating whether all elements pass a test\n*\n* @example\n* import real from '@stdlib/complex/float64/real';\n* import imag from '@stdlib/complex/float64/imag';\n*\n* function predicate( v ) {\n* return ( real( v ) === imag( v ) );\n* }\n*\n* var arr = new Complex128Array( 3 );\n*\n* arr.set( [ 1.0, 1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n* arr.set( [ 3.0, 3.0 ], 2 );\n*\n* var bool = arr.every( predicate );\n* // returns true\n*/\nsetReadOnly( Complex128Array.prototype, 'every', function every( predicate, thisArg ) {\n\tvar buf;\n\tvar i;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isFunction( predicate ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', predicate ) );\n\t}\n\tbuf = this._buffer;\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tif ( !predicate.call( thisArg, getComplex128( buf, i ), i, this ) ) {\n\t\t\treturn false;\n\t\t}\n\t}\n\treturn true;\n});\n\n/**\n* Returns a modified typed array filled with a fill value.\n*\n* @name fill\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @param {ComplexLike} value - fill value\n* @param {integer} [start=0] - starting index (inclusive)\n* @param {integer} [end] - ending index (exclusive)\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a complex number\n* @throws {TypeError} second argument must be an integer\n* @throws {TypeError} third argument must be an integer\n* @returns {Complex128Array} modified array\n*\n* @example\n* import real from '@stdlib/complex/float64/real';\n* import imag from '@stdlib/complex/float64/imag';\n*\n* var arr = new Complex128Array( 3 );\n*\n* arr.fill( new Complex128( 1.0, 1.0 ), 1 );\n*\n* var z = arr.get( 1 );\n* // returns \n*\n* var re = real( z );\n* // returns 1.0\n*\n* var im = imag( z );\n* // returns 1.0\n*\n* z = arr.get( 2 );\n* // returns \n*\n* re = real( z );\n* // returns 1.0\n*\n* im = imag( z );\n* // returns 1.0\n*/\nsetReadOnly( Complex128Array.prototype, 'fill', function fill( value, start, end ) {\n\tvar buf;\n\tvar len;\n\tvar idx;\n\tvar re;\n\tvar im;\n\tvar i;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isComplexLike( value ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a complex number. Value: `%s`.', value ) );\n\t}\n\tbuf = this._buffer;\n\tlen = this._length;\n\tif ( arguments.length > 1 ) {\n\t\tif ( !isInteger( start ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an integer. Value: `%s`.', start ) );\n\t\t}\n\t\tif ( start < 0 ) {\n\t\t\tstart += len;\n\t\t\tif ( start < 0 ) {\n\t\t\t\tstart = 0;\n\t\t\t}\n\t\t}\n\t\tif ( arguments.length > 2 ) {\n\t\t\tif ( !isInteger( end ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Third argument must be an integer. Value: `%s`.', end ) );\n\t\t\t}\n\t\t\tif ( end < 0 ) {\n\t\t\t\tend += len;\n\t\t\t\tif ( end < 0 ) {\n\t\t\t\t\tend = 0;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( end > len ) {\n\t\t\t\tend = len;\n\t\t\t}\n\t\t} else {\n\t\t\tend = len;\n\t\t}\n\t} else {\n\t\tstart = 0;\n\t\tend = len;\n\t}\n\tre = real( value );\n\tim = imag( value );\n\tfor ( i = start; i < end; i++ ) {\n\t\tidx = 2*i;\n\t\tbuf[ idx ] = re;\n\t\tbuf[ idx+1 ] = im;\n\t}\n\treturn this;\n});\n\n/**\n* Returns a new array containing the elements of an array which pass a test implemented by a predicate function.\n*\n* @name filter\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @param {Function} predicate - test function\n* @param {*} [thisArg] - predicate function execution context\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a function\n* @returns {Complex128Array} complex number array\n*\n* @example\n* import real from '@stdlib/complex/float64/real';\n* import imag from '@stdlib/complex/float64/imag';\n*\n* function predicate( v ) {\n* return ( real( v ) === imag( v ) );\n* }\n*\n* var arr = new Complex128Array( 3 );\n*\n* arr.set( [ 1.0, -1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n* arr.set( [ 3.0, -3.0 ], 2 );\n*\n* var out = arr.filter( predicate );\n* // returns \n*\n* var len = out.length;\n* // returns 1\n*\n* var z = out.get( 0 );\n* // returns \n*\n* var re = real( z );\n* // returns 2.0\n*\n* var im = imag( z );\n* // returns 2.0\n*/\nsetReadOnly( Complex128Array.prototype, 'filter', function filter( predicate, thisArg ) {\n\tvar buf;\n\tvar out;\n\tvar i;\n\tvar z;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isFunction( predicate ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', predicate ) );\n\t}\n\tbuf = this._buffer;\n\tout = [];\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tz = getComplex128( buf, i );\n\t\tif ( predicate.call( thisArg, z, i, this ) ) {\n\t\t\tout.push( z );\n\t\t}\n\t}\n\treturn new this.constructor( out );\n});\n\n/**\n* Returns the first element in an array for which a predicate function returns a truthy value.\n*\n* @name find\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @param {Function} predicate - test function\n* @param {*} [thisArg] - predicate function execution context\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a function\n* @returns {(Complex128|void)} array element or undefined\n*\n* @example\n* import real from '@stdlib/complex/float64/real';\n* import imag from '@stdlib/complex/float64/imag';\n*\n* function predicate( v ) {\n* return ( real( v ) === imag( v ) );\n* }\n*\n* var arr = new Complex128Array( 3 );\n*\n* arr.set( [ 1.0, 1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n* arr.set( [ 3.0, 3.0 ], 2 );\n*\n* var z = arr.find( predicate );\n* // returns \n*\n* var re = real( z );\n* // returns 1.0\n*\n* var im = imag( z );\n* // returns 1.0\n*/\nsetReadOnly( Complex128Array.prototype, 'find', function find( predicate, thisArg ) {\n\tvar buf;\n\tvar i;\n\tvar z;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isFunction( predicate ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', predicate ) );\n\t}\n\tbuf = this._buffer;\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tz = getComplex128( buf, i );\n\t\tif ( predicate.call( thisArg, z, i, this ) ) {\n\t\t\treturn z;\n\t\t}\n\t}\n});\n\n/**\n* Returns the index of the first element in an array for which a predicate function returns a truthy value.\n*\n* @name findIndex\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @param {Function} predicate - test function\n* @param {*} [thisArg] - predicate function execution context\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a function\n* @returns {integer} index or -1\n*\n* @example\n* import real from '@stdlib/complex/float64/real';\n* import imag from '@stdlib/complex/float64/imag';\n*\n* function predicate( v ) {\n* return ( real( v ) === imag( v ) );\n* }\n*\n* var arr = new Complex128Array( 3 );\n*\n* arr.set( [ 1.0, -1.0 ], 0 );\n* arr.set( [ 2.0, -2.0 ], 1 );\n* arr.set( [ 3.0, 3.0 ], 2 );\n*\n* var idx = arr.findIndex( predicate );\n* // returns 2\n*/\nsetReadOnly( Complex128Array.prototype, 'findIndex', function findIndex( predicate, thisArg ) {\n\tvar buf;\n\tvar i;\n\tvar z;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isFunction( predicate ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', predicate ) );\n\t}\n\tbuf = this._buffer;\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tz = getComplex128( buf, i );\n\t\tif ( predicate.call( thisArg, z, i, this ) ) {\n\t\t\treturn i;\n\t\t}\n\t}\n\treturn -1;\n});\n\n/**\n* Returns the last element in an array for which a predicate function returns a truthy value.\n*\n* @name findLast\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @param {Function} predicate - test function\n* @param {*} [thisArg] - predicate function execution context\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a function\n* @returns {(Complex128|void)} array element or undefined\n*\n* @example\n* import real from '@stdlib/complex/float64/real';\n* import imag from '@stdlib/complex/float64/imag';\n*\n* function predicate( v ) {\n* return ( real( v ) === imag( v ) );\n* }\n*\n* var arr = new Complex128Array( 3 );\n*\n* arr.set( [ 1.0, 1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n* arr.set( [ 3.0, 3.0 ], 2 );\n*\n* var z = arr.findLast( predicate );\n* // returns \n*\n* var re = real( z );\n* // returns 3.0\n*\n* var im = imag( z );\n* // returns 3.0\n*/\nsetReadOnly( Complex128Array.prototype, 'findLast', function findLast( predicate, thisArg ) {\n\tvar buf;\n\tvar i;\n\tvar z;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isFunction( predicate ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', predicate ) );\n\t}\n\tbuf = this._buffer;\n\tfor ( i = this._length-1; i >= 0; i-- ) {\n\t\tz = getComplex128( buf, i );\n\t\tif ( predicate.call( thisArg, z, i, this ) ) {\n\t\t\treturn z;\n\t\t}\n\t}\n});\n\n/**\n* Returns the index of the last element in an array for which a predicate function returns a truthy value.\n*\n* @name findLastIndex\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @param {Function} predicate - test function\n* @param {*} [thisArg] - predicate function execution context\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a function\n* @returns {integer} index or -1\n*\n* @example\n* import real from '@stdlib/complex/float64/real';\n* import imag from '@stdlib/complex/float64/imag';\n*\n* function predicate( v ) {\n* return ( real( v ) === imag( v ) );\n* }\n*\n* var arr = new Complex128Array( 3 );\n*\n* arr.set( [ 1.0, 1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n* arr.set( [ 3.0, -3.0 ], 2 );\n*\n* var idx = arr.findLastIndex( predicate );\n* // returns 1\n*/\nsetReadOnly( Complex128Array.prototype, 'findLastIndex', function findLastIndex( predicate, thisArg ) {\n\tvar buf;\n\tvar i;\n\tvar z;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isFunction( predicate ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', predicate ) );\n\t}\n\tbuf = this._buffer;\n\tfor ( i = this._length-1; i >= 0; i-- ) {\n\t\tz = getComplex128( buf, i );\n\t\tif ( predicate.call( thisArg, z, i, this ) ) {\n\t\t\treturn i;\n\t\t}\n\t}\n\treturn -1;\n});\n\n/**\n* Invokes a function once for each array element.\n*\n* @name forEach\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @param {Function} fcn - function to invoke\n* @param {*} [thisArg] - function invocation context\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a function\n*\n* @example\n* import Complex128 from '@stdlib/complex/float64/ctor';\n*\n* function log( v, i ) {\n* console.log( '%s: %s', i, v.toString() );\n* }\n*\n* var arr = new Complex128Array( 3 );\n*\n* arr.set( [ 1.0, 1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n* arr.set( [ 3.0, 3.0 ], 2 );\n*\n* arr.forEach( log );\n*/\nsetReadOnly( Complex128Array.prototype, 'forEach', function forEach( fcn, thisArg ) {\n\tvar buf;\n\tvar i;\n\tvar z;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isFunction( fcn ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', fcn ) );\n\t}\n\tbuf = this._buffer;\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tz = getComplex128( buf, i );\n\t\tfcn.call( thisArg, z, i, this );\n\t}\n});\n\n/**\n* Returns an array element.\n*\n* @name get\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @param {NonNegativeInteger} idx - element index\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} must provide a nonnegative integer\n* @returns {(Complex128|void)} array element\n*\n* @example\n* var arr = new Complex128Array( 10 );\n* import real from '@stdlib/complex/float64/real';\n* import imag from '@stdlib/complex/float64/imag';\n*\n* var z = arr.get( 0 );\n* // returns \n*\n* var re = real( z );\n* // returns 0.0\n*\n* var im = imag( z );\n* // returns 0.0\n*\n* arr.set( [ 1.0, -1.0 ], 0 );\n*\n* z = arr.get( 0 );\n* // returns \n*\n* re = real( z );\n* // returns 1.0\n*\n* im = imag( z );\n* // returns -1.0\n*\n* z = arr.get( 100 );\n* // returns undefined\n*/\nsetReadOnly( Complex128Array.prototype, 'get', function get( idx ) {\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isNonNegativeInteger( idx ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide a nonnegative integer. Value: `%s`.', idx ) );\n\t}\n\tif ( idx >= this._length ) {\n\t\treturn;\n\t}\n\treturn getComplex128( this._buffer, idx );\n});\n\n/**\n* Number of array elements.\n*\n* @name length\n* @memberof Complex128Array.prototype\n* @readonly\n* @type {NonNegativeInteger}\n*\n* @example\n* var arr = new Complex128Array( 10 );\n*\n* var len = arr.length;\n* // returns 10\n*/\nsetReadOnlyAccessor( Complex128Array.prototype, 'length', function get() {\n\treturn this._length;\n});\n\n/**\n* Returns a boolean indicating whether an array includes a provided value.\n*\n* @name includes\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @param {ComplexLike} searchElement - search element\n* @param {integer} [fromIndex=0] - starting index (inclusive)\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a complex number\n* @throws {TypeError} second argument must be an integer\n* @returns {boolean} boolean indicating whether an array includes a provided value\n*\n* @example\n* import Complex128 from '@stdlib/complex/float64/ctor';\n*\n* var arr = new Complex128Array( 5 );\n*\n* arr.set( [ 1.0, -1.0 ], 0 );\n* arr.set( [ 2.0, -2.0 ], 1 );\n* arr.set( [ 3.0, -3.0 ], 2 );\n* arr.set( [ 4.0, -4.0 ], 3 );\n* arr.set( [ 5.0, -5.0 ], 4 );\n*\n* var bool = arr.includes( new Complex128( 3.0, -3.0 ) );\n* // returns true\n*\n* bool = arr.includes( new Complex128( 3.0, -3.0 ), 3 );\n* // returns false\n*\n* bool = arr.includes( new Complex128( 4.0, -4.0 ), -3 );\n* // returns true\n*/\nsetReadOnly( Complex128Array.prototype, 'includes', function includes( searchElement, fromIndex ) {\n\tvar buf;\n\tvar idx;\n\tvar re;\n\tvar im;\n\tvar i;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isComplexLike( searchElement ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a complex number. Value: `%s`.', searchElement ) );\n\t}\n\tif ( arguments.length > 1 ) {\n\t\tif ( !isInteger( fromIndex ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an integer. Value: `%s`.', fromIndex ) );\n\t\t}\n\t\tif ( fromIndex < 0 ) {\n\t\t\tfromIndex += this._length;\n\t\t\tif ( fromIndex < 0 ) {\n\t\t\t\tfromIndex = 0;\n\t\t\t}\n\t\t}\n\t} else {\n\t\tfromIndex = 0;\n\t}\n\tre = real( searchElement );\n\tim = imag( searchElement );\n\tbuf = this._buffer;\n\tfor ( i = fromIndex; i < this._length; i++ ) {\n\t\tidx = 2 * i;\n\t\tif ( re === buf[ idx ] && im === buf[ idx+1 ] ) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n});\n\n/**\n* Returns the first index at which a given element can be found.\n*\n* @name indexOf\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @param {ComplexLike} searchElement - element to find\n* @param {integer} [fromIndex=0] - starting index (inclusive)\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a complex number\n* @throws {TypeError} second argument must be an integer\n* @returns {integer} index or -1\n*\n* @example\n* import Complex128 from '@stdlib/complex/float64/ctor';\n*\n* var arr = new Complex128Array( 5 );\n*\n* arr.set( [ 1.0, -1.0 ], 0 );\n* arr.set( [ 2.0, -2.0 ], 1 );\n* arr.set( [ 3.0, -3.0 ], 2 );\n* arr.set( [ 4.0, -4.0 ], 3 );\n* arr.set( [ 5.0, -5.0 ], 4 );\n*\n* var idx = arr.indexOf( new Complex128( 3.0, -3.0 ) );\n* // returns 2\n*\n* idx = arr.indexOf( new Complex128( 3.0, -3.0 ), 3 );\n* // returns -1\n*\n* idx = arr.indexOf( new Complex128( 4.0, -4.0 ), -3 );\n* // returns 3\n*/\nsetReadOnly( Complex128Array.prototype, 'indexOf', function indexOf( searchElement, fromIndex ) {\n\tvar buf;\n\tvar idx;\n\tvar re;\n\tvar im;\n\tvar i;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isComplexLike( searchElement ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a complex number. Value: `%s`.', searchElement ) );\n\t}\n\tif ( arguments.length > 1 ) {\n\t\tif ( !isInteger( fromIndex ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an integer. Value: `%s`.', fromIndex ) );\n\t\t}\n\t\tif ( fromIndex < 0 ) {\n\t\t\tfromIndex += this._length;\n\t\t\tif ( fromIndex < 0 ) {\n\t\t\t\tfromIndex = 0;\n\t\t\t}\n\t\t}\n\t} else {\n\t\tfromIndex = 0;\n\t}\n\tre = real( searchElement );\n\tim = imag( searchElement );\n\tbuf = this._buffer;\n\tfor ( i = fromIndex; i < this._length; i++ ) {\n\t\tidx = 2 * i;\n\t\tif ( re === buf[ idx ] && im === buf[ idx+1 ] ) {\n\t\t\treturn i;\n\t\t}\n\t}\n\treturn -1;\n});\n\n/**\n* Returns a new string by concatenating all array elements.\n*\n* @name join\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @param {string} [separator=','] - element separator\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a string\n* @returns {string} string representation\n*\n* @example\n* var arr = new Complex128Array( 2 );\n*\n* arr.set( [ 1.0, 1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n*\n* var str = arr.join();\n* // returns '1 + 1i,2 + 2i'\n*\n* str = arr.join( '/' );\n* // returns '1 + 1i/2 + 2i'\n*/\nsetReadOnly( Complex128Array.prototype, 'join', function join( separator ) {\n\tvar out;\n\tvar buf;\n\tvar sep;\n\tvar i;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( arguments.length === 0 ) {\n\t\tsep = ',';\n\t} else if ( isString( separator ) ) {\n\t\tsep = separator;\n\t} else {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a string. Value: `%s`.', separator ) );\n\t}\n\tout = [];\n\tbuf = this._buffer;\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tout.push( getComplex128( buf, i ).toString() );\n\t}\n\treturn out.join( sep );\n});\n\n/**\n* Returns an iterator for iterating over each index key in a typed array.\n*\n* @name keys\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @throws {TypeError} `this` must be a complex number array\n* @returns {Iterator} iterator\n*\n* @example\n* var arr = new Complex128Array( 2 );\n*\n* arr.set( [ 1.0, 1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n*\n* var iter = arr.keys();\n*\n* var v = iter.next().value;\n* // returns 0\n*\n* v = iter.next().value;\n* // returns 1\n*\n* var bool = iter.next().done;\n* // returns true\n*/\nsetReadOnly( Complex128Array.prototype, 'keys', function keys() {\n\tvar self;\n\tvar iter;\n\tvar len;\n\tvar FLG;\n\tvar i;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tself = this;\n\tlen = this._length;\n\n\t// Initialize an iteration index:\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\tif ( ITERATOR_SYMBOL ) {\n\t\tsetReadOnly( iter, ITERATOR_SYMBOL, 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 >= len ) {\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 self.keys();\n\t}\n});\n\n/**\n* Returns the last index at which a given element can be found.\n*\n* @name lastIndexOf\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @param {ComplexLike} searchElement - element to find\n* @param {integer} [fromIndex] - index at which to start searching backward (inclusive)\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a complex number\n* @throws {TypeError} second argument must be an integer\n* @returns {integer} index or -1\n*\n* @example\n* import Complex128 from '@stdlib/complex/float64/ctor';\n*\n* var arr = new Complex128Array( 5 );\n*\n* arr.set( [ 1.0, -1.0 ], 0 );\n* arr.set( [ 2.0, -2.0 ], 1 );\n* arr.set( [ 3.0, -3.0 ], 2 );\n* arr.set( [ 4.0, -4.0 ], 3 );\n* arr.set( [ 3.0, -3.0 ], 4 );\n*\n* var idx = arr.lastIndexOf( new Complex128( 3.0, -3.0 ) );\n* // returns 4\n*\n* idx = arr.lastIndexOf( new Complex128( 3.0, -3.0 ), 3 );\n* // returns 2\n*\n* idx = arr.lastIndexOf( new Complex128( 5.0, -5.0 ), 3 );\n* // returns -1\n*\n* idx = arr.lastIndexOf( new Complex128( 2.0, -2.0 ), -3 );\n* // returns 1\n*/\nsetReadOnly( Complex128Array.prototype, 'lastIndexOf', function lastIndexOf( searchElement, fromIndex ) {\n\tvar buf;\n\tvar idx;\n\tvar re;\n\tvar im;\n\tvar i;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isComplexLike( searchElement ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a complex number. Value: `%s`.', searchElement ) );\n\t}\n\tif ( arguments.length > 1 ) {\n\t\tif ( !isInteger( fromIndex ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an integer. Value: `%s`.', fromIndex ) );\n\t\t}\n\t\tif ( fromIndex >= this._length ) {\n\t\t\tfromIndex = this._length - 1;\n\t\t} else if ( fromIndex < 0 ) {\n\t\t\tfromIndex += this._length;\n\t\t}\n\t} else {\n\t\tfromIndex = this._length - 1;\n\t}\n\tre = real( searchElement );\n\tim = imag( searchElement );\n\tbuf = this._buffer;\n\tfor ( i = fromIndex; i >= 0; i-- ) {\n\t\tidx = 2 * i;\n\t\tif ( re === buf[ idx ] && im === buf[ idx+1 ] ) {\n\t\t\treturn i;\n\t\t}\n\t}\n\treturn -1;\n});\n\n/**\n* Returns a new array with each element being the result of a provided callback function.\n*\n* @name map\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @param {Function} fcn - callback function\n* @param {*} [thisArg] - callback function execution context\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a function\n* @returns {Complex128Array} complex number array\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* function scale( v, i ) {\n* return new Complex128( 2.0*real( v ), 2.0*imag( v ) );\n* }\n*\n* var arr = new Complex128Array( 3 );\n*\n* arr.set( [ 1.0, -1.0 ], 0 );\n* arr.set( [ 2.0, -2.0 ], 1 );\n* arr.set( [ 3.0, -3.0 ], 2 );\n*\n* var out = arr.map( scale );\n* // returns \n*\n* var z = out.get( 0 );\n* // returns \n*\n* var re = real( z );\n* // returns 2.0\n*\n* var im = imag( z );\n* // returns -2.0\n*/\nsetReadOnly( Complex128Array.prototype, 'map', function map( fcn, thisArg ) {\n\tvar outbuf;\n\tvar buf;\n\tvar out;\n\tvar i;\n\tvar v;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isFunction( fcn ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', fcn ) );\n\t}\n\tbuf = this._buffer;\n\tout = new this.constructor( this._length );\n\toutbuf = out._buffer; // eslint-disable-line no-underscore-dangle\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tv = fcn.call( thisArg, getComplex128( buf, i ), i, this );\n\t\tif ( isComplexLike( v ) ) {\n\t\t\toutbuf[ 2*i ] = real( v );\n\t\t\toutbuf[ (2*i)+1 ] = imag( v );\n\t\t} else if ( isArrayLikeObject( v ) && v.length === 2 ) {\n\t\t\toutbuf[ 2*i ] = v[ 0 ];\n\t\t\toutbuf[ (2*i)+1 ] = v[ 1 ];\n\t\t} else {\n\t\t\tthrow new TypeError( format( 'invalid argument. Callback must return either a two-element array containing real and imaginary components or a complex number. Value: `%s`.', v ) );\n\t\t}\n\t}\n\treturn out;\n});\n\n/**\n* Applies a provided callback function to each element of the array, in order, passing in the return value from the calculation on the preceding element and returning the accumulated result upon completion.\n*\n* @name reduce\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @param {Function} reducer - callback function\n* @param {*} [initialValue] - initial value\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a function\n* @throws {Error} if not provided an initial value, the array must have at least one element\n* @returns {*} accumulated result\n*\n* @example\n* import real from '@stdlib/complex/float64/real';\n* import imag from '@stdlib/complex/float64/imag';\n* import cadd from '@stdlib/complex/float64/base/add';\n*\n* var arr = new Complex128Array( 3 );\n*\n* arr.set( [ 1.0, 1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n* arr.set( [ 3.0, 3.0 ], 2 );\n*\n* var z = arr.reduce( cadd );\n* // returns \n*\n* var re = real( z );\n* // returns 6.0\n*\n* var im = imag( z );\n* // returns 6.0\n*/\nsetReadOnly( Complex128Array.prototype, 'reduce', function reduce( reducer, initialValue ) {\n\tvar buf;\n\tvar acc;\n\tvar len;\n\tvar v;\n\tvar i;\n\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isFunction( reducer ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', reducer ) );\n\t}\n\tbuf = this._buffer;\n\tlen = this._length;\n\tif ( arguments.length > 1 ) {\n\t\tacc = initialValue;\n\t\ti = 0;\n\t} else {\n\t\tif ( len === 0 ) {\n\t\t\tthrow new Error( 'invalid operation. If not provided an initial value, an array must contain at least one element.' );\n\t\t}\n\t\tacc = getComplex128( buf, 0 );\n\t\ti = 1;\n\t}\n\tfor ( ; i < len; i++ ) {\n\t\tv = getComplex128( buf, i );\n\t\tacc = reducer( acc, v, i, this );\n\t}\n\treturn acc;\n});\n\n/**\n* Applies a provided callback function to each element of the array, in reverse order, passing in the return value from the calculation on the preceding element and returning the accumulated result upon completion.\n*\n* @name reduceRight\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @param {Function} reducer - callback function\n* @param {*} [initialValue] - initial value\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a function\n* @throws {Error} if not provided an initial value, the array must have at least one element\n* @returns {*} accumulated result\n*\n* @example\n* import real from '@stdlib/complex/float64/real';\n* import imag from '@stdlib/complex/float64/imag';\n* import cadd from '@stdlib/complex/float64/base/add';\n*\n* var arr = new Complex128Array( 3 );\n*\n* arr.set( [ 1.0, 1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n* arr.set( [ 3.0, 3.0 ], 2 );\n*\n* var z = arr.reduceRight( cadd );\n* // returns \n*\n* var re = real( z );\n* // returns 6.0\n*\n* var im = imag( z );\n* // returns 6.0\n*/\nsetReadOnly( Complex128Array.prototype, 'reduceRight', function reduceRight( reducer, initialValue ) {\n\tvar buf;\n\tvar acc;\n\tvar len;\n\tvar v;\n\tvar i;\n\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isFunction( reducer ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', reducer ) );\n\t}\n\tbuf = this._buffer;\n\tlen = this._length;\n\tif ( arguments.length > 1 ) {\n\t\tacc = initialValue;\n\t\ti = len-1;\n\t} else {\n\t\tif ( len === 0 ) {\n\t\t\tthrow new Error( 'invalid operation. If not provided an initial value, an array must contain at least one element.' );\n\t\t}\n\t\tacc = getComplex128( buf, len-1 );\n\t\ti = len-2;\n\t}\n\tfor ( ; i >= 0; i-- ) {\n\t\tv = getComplex128( buf, i );\n\t\tacc = reducer( acc, v, i, this );\n\t}\n\treturn acc;\n});\n\n/**\n* Reverses an array in-place.\n*\n* @name reverse\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @throws {TypeError} `this` must be a complex number array\n* @returns {Complex128Array} reversed array\n*\n* @example\n* import real from '@stdlib/complex/float64/real';\n* import imag from '@stdlib/complex/float64/imag';\n*\n* var arr = new Complex128Array( 3 );\n*\n* arr.set( [ 1.0, 1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n* arr.set( [ 3.0, 3.0 ], 2 );\n*\n* var out = arr.reverse();\n* // returns \n*\n* var z = out.get( 0 );\n* // returns \n*\n* var re = real( z );\n* // returns 3.0\n*\n* var im = imag( z );\n* // returns 3.0\n*\n* z = out.get( 1 );\n* // returns \n*\n* re = real( z );\n* // returns 2.0\n*\n* im = imag( z );\n* // returns 2.0\n*\n* z = out.get( 2 );\n* // returns \n*\n* re = real( z );\n* // returns 1.0\n*\n* im = imag( z );\n* // returns 1.0\n*/\nsetReadOnly( Complex128Array.prototype, 'reverse', function reverse() {\n\tvar buf;\n\tvar tmp;\n\tvar len;\n\tvar N;\n\tvar i;\n\tvar j;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tlen = this._length;\n\tbuf = this._buffer;\n\tN = floor( len / 2 );\n\tfor ( i = 0; i < N; i++ ) {\n\t\tj = len - i - 1;\n\t\ttmp = buf[ (2*i) ];\n\t\tbuf[ (2*i) ] = buf[ (2*j) ];\n\t\tbuf[ (2*j) ] = tmp;\n\t\ttmp = buf[ (2*i)+1 ];\n\t\tbuf[ (2*i)+1 ] = buf[ (2*j)+1 ];\n\t\tbuf[ (2*j)+1 ] = tmp;\n\t}\n\treturn this;\n});\n\n/**\n* Sets an array element.\n*\n* ## Notes\n*\n* - When provided a typed array, real or complex, we must check whether the source array shares the same buffer as the target array and whether the underlying memory overlaps. In particular, we are concerned with the following scenario:\n*\n* ```text\n* buf: ---------------------\n* src: ---------------------\n* ```\n*\n* In the above, as we copy values from `src`, we will overwrite values in the `src` view, resulting in duplicated values copied into the end of `buf`, which is not intended. Hence, to avoid overwriting source values, we must **copy** source values to a temporary array.\n*\n* In the other overlapping scenario,\n*\n* ```text\n* buf: ---------------------\n* src: ---------------------\n* ```\n*\n* by the time we begin copying into the overlapping region, we are copying from the end of `src`, a non-overlapping region, which means we don't run the risk of copying copied values, rather than the original `src` values as intended.\n*\n* @name set\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @param {(Collection|Complex|ComplexArray)} value - value(s)\n* @param {NonNegativeInteger} [i=0] - element index at which to start writing values\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be either a complex number, an array-like object, or a complex number array\n* @throws {TypeError} index argument must be a nonnegative integer\n* @throws {RangeError} array-like objects must have a length which is a multiple of two\n* @throws {RangeError} index argument is out-of-bounds\n* @throws {RangeError} target array lacks sufficient storage to accommodate source values\n* @returns {void}\n*\n* @example\n* import real from '@stdlib/complex/float64/real';\n* import imag from '@stdlib/complex/float64/imag';\n*\n* var arr = new Complex128Array( 10 );\n*\n* var z = arr.get( 0 );\n* // returns \n*\n* var re = real( z );\n* // returns 0.0\n*\n* var im = imag( z );\n* // returns 0.0\n*\n* arr.set( [ 1.0, -1.0 ], 0 );\n*\n* z = arr.get( 0 );\n* // returns \n*\n* re = real( z );\n* // returns 1.0\n*\n* im = imag( z );\n* // returns -1.0\n*/\nsetReadOnly( Complex128Array.prototype, 'set', function set( value ) {\n\t/* eslint-disable no-underscore-dangle */\n\tvar sbuf;\n\tvar idx;\n\tvar buf;\n\tvar tmp;\n\tvar flg;\n\tvar N;\n\tvar v;\n\tvar i;\n\tvar j;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tbuf = this._buffer;\n\tif ( arguments.length > 1 ) {\n\t\tidx = arguments[ 1 ];\n\t\tif ( !isNonNegativeInteger( idx ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Index argument must be a nonnegative integer. Value: `%s`.', idx ) );\n\t\t}\n\t} else {\n\t\tidx = 0;\n\t}\n\tif ( isComplexLike( value ) ) {\n\t\tif ( idx >= this._length ) {\n\t\t\tthrow new RangeError( format( 'invalid argument. Index argument is out-of-bounds. Value: `%u`.', idx ) );\n\t\t}\n\t\tidx *= 2;\n\t\tbuf[ idx ] = real( value );\n\t\tbuf[ idx+1 ] = imag( value );\n\t\treturn;\n\t}\n\tif ( isComplexArray( value ) ) {\n\t\tN = value._length;\n\t\tif ( idx+N > this._length ) {\n\t\t\tthrow new RangeError( 'invalid arguments. Target array lacks sufficient storage to accommodate source values.' );\n\t\t}\n\t\tsbuf = value._buffer;\n\n\t\t// Check for overlapping memory...\n\t\tj = buf.byteOffset + (idx*BYTES_PER_ELEMENT);\n\t\tif (\n\t\t\tsbuf.buffer === buf.buffer &&\n\t\t\t(\n\t\t\t\tsbuf.byteOffset < j &&\n\t\t\t\tsbuf.byteOffset+sbuf.byteLength > j\n\t\t\t)\n\t\t) {\n\t\t\t// We need to copy source values...\n\t\t\ttmp = new Float64Array( sbuf.length );\n\t\t\tfor ( i = 0; i < sbuf.length; i++ ) {\n\t\t\t\ttmp[ i ] = sbuf[ i ];\n\t\t\t}\n\t\t\tsbuf = tmp;\n\t\t}\n\t\tidx *= 2;\n\t\tj = 0;\n\t\tfor ( i = 0; i < N; i++ ) {\n\t\t\tbuf[ idx ] = sbuf[ j ];\n\t\t\tbuf[ idx+1 ] = sbuf[ j+1 ];\n\t\t\tidx += 2; // stride\n\t\t\tj += 2; // stride\n\t\t}\n\t\treturn;\n\t}\n\tif ( isCollection( value ) ) {\n\t\t// Detect whether we've been provided an array of complex numbers...\n\t\tN = value.length;\n\t\tfor ( i = 0; i < N; i++ ) {\n\t\t\tif ( !isComplexLike( value[ i ] ) ) {\n\t\t\t\tflg = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\t// If an array does not contain only complex numbers, then we assume interleaved real and imaginary components...\n\t\tif ( flg ) {\n\t\t\tif ( !isEven( N ) ) {\n\t\t\t\tthrow new RangeError( format( 'invalid argument. Array-like object arguments must have a length which is a multiple of two. Length: `%u`.', N ) );\n\t\t\t}\n\t\t\tif ( idx+(N/2) > this._length ) {\n\t\t\t\tthrow new RangeError( 'invalid arguments. Target array lacks sufficient storage to accommodate source values.' );\n\t\t\t}\n\t\t\tsbuf = value;\n\n\t\t\t// Check for overlapping memory...\n\t\t\tj = buf.byteOffset + (idx*BYTES_PER_ELEMENT);\n\t\t\tif (\n\t\t\t\tsbuf.buffer === buf.buffer &&\n\t\t\t\t(\n\t\t\t\t\tsbuf.byteOffset < j &&\n\t\t\t\t\tsbuf.byteOffset+sbuf.byteLength > j\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\t// We need to copy source values...\n\t\t\t\ttmp = new Float64Array( N );\n\t\t\t\tfor ( i = 0; i < N; i++ ) {\n\t\t\t\t\ttmp[ i ] = sbuf[ i ];\n\t\t\t\t}\n\t\t\t\tsbuf = tmp;\n\t\t\t}\n\t\t\tidx *= 2;\n\t\t\tN /= 2;\n\t\t\tj = 0;\n\t\t\tfor ( i = 0; i < N; i++ ) {\n\t\t\t\tbuf[ idx ] = sbuf[ j ];\n\t\t\t\tbuf[ idx+1 ] = sbuf[ j+1 ];\n\t\t\t\tidx += 2; // stride\n\t\t\t\tj += 2; // stride\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\t// If an array contains only complex numbers, then we need to extract real and imaginary components...\n\t\tif ( idx+N > this._length ) {\n\t\t\tthrow new RangeError( 'invalid arguments. Target array lacks sufficient storage to accommodate source values.' );\n\t\t}\n\t\tidx *= 2;\n\t\tfor ( i = 0; i < N; i++ ) {\n\t\t\tv = value[ i ];\n\t\t\tbuf[ idx ] = real( v );\n\t\t\tbuf[ idx+1 ] = imag( v );\n\t\t\tidx += 2; // stride\n\t\t}\n\t\treturn;\n\t}\n\tthrow new TypeError( format( 'invalid argument. First argument must be either a complex number, an array-like object, or a complex number array. Value: `%s`.', value ) );\n\n\t/* eslint-enable no-underscore-dangle */\n});\n\n/**\n* Copies a portion of a typed array to a new typed array.\n*\n* @name slice\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @param {integer} [start=0] - starting index (inclusive)\n* @param {integer} [end] - ending index (exclusive)\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be an integer\n* @throws {TypeError} second argument must be an integer\n* @returns {Complex128Array} complex number array\n*\n* @example\n* import real from '@stdlib/complex/float64/real';\n* import imag from '@stdlib/complex/float64/imag';\n*\n* var arr = new Complex128Array( 5 );\n*\n* arr.set( [ 1.0, -1.0 ], 0 );\n* arr.set( [ 2.0, -2.0 ], 1 );\n* arr.set( [ 3.0, -3.0 ], 2 );\n* arr.set( [ 4.0, -4.0 ], 3 );\n* arr.set( [ 5.0, -5.0 ], 4 );\n*\n* var out = arr.slice();\n* // returns \n*\n* var len = out.length;\n* // returns 5\n*\n* var z = out.get( 0 );\n* // returns \n*\n* var re = real( z );\n* // returns 1.0\n*\n* var im = imag( z );\n* // returns -1.0\n*\n* z = out.get( len-1 );\n* // returns \n*\n* re = real( z );\n* // returns 5.0\n*\n* im = imag( z );\n* // returns -5.0\n*\n* out = arr.slice( 1, -2 );\n* // returns \n*\n* len = out.length;\n* // returns 2\n*\n* z = out.get( 0 );\n* // returns \n*\n* re = real( z );\n* // returns 2.0\n*\n* im = imag( z );\n* // returns -2.0\n*\n* z = out.get( len-1 );\n* // returns \n*\n* re = real( z );\n* // returns 3.0\n*\n* im = imag( z );\n* // returns -3.0\n*/\nsetReadOnly( Complex128Array.prototype, 'slice', function slice( start, end ) {\n\tvar outlen;\n\tvar outbuf;\n\tvar out;\n\tvar idx;\n\tvar buf;\n\tvar len;\n\tvar i;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tbuf = this._buffer;\n\tlen = this._length;\n\tif ( arguments.length === 0 ) {\n\t\tstart = 0;\n\t\tend = len;\n\t} else {\n\t\tif ( !isInteger( start ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. First argument must be an integer. Value: `%s`.', start ) );\n\t\t}\n\t\tif ( start < 0 ) {\n\t\t\tstart += len;\n\t\t\tif ( start < 0 ) {\n\t\t\t\tstart = 0;\n\t\t\t}\n\t\t}\n\t\tif ( arguments.length === 1 ) {\n\t\t\tend = len;\n\t\t} else {\n\t\t\tif ( !isInteger( end ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an integer. Value: `%s`.', end ) );\n\t\t\t}\n\t\t\tif ( end < 0 ) {\n\t\t\t\tend += len;\n\t\t\t\tif ( end < 0 ) {\n\t\t\t\t\tend = 0;\n\t\t\t\t}\n\t\t\t} else if ( end > len ) {\n\t\t\t\tend = len;\n\t\t\t}\n\t\t}\n\t}\n\tif ( start < end ) {\n\t\toutlen = end - start;\n\t} else {\n\t\toutlen = 0;\n\t}\n\tout = new this.constructor( outlen );\n\toutbuf = out._buffer; // eslint-disable-line no-underscore-dangle\n\tfor ( i = 0; i < outlen; i++ ) {\n\t\tidx = 2*(i+start);\n\t\toutbuf[ 2*i ] = buf[ idx ];\n\t\toutbuf[ (2*i)+1 ] = buf[ idx+1 ];\n\t}\n\treturn out;\n});\n\n/**\n* Tests whether at least one element in an array passes a test implemented by a predicate function.\n*\n* @name some\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @param {Function} predicate - test function\n* @param {*} [thisArg] - predicate function execution context\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a function\n* @returns {boolean} boolean indicating whether at least one element passes a test\n*\n* @example\n* import real from '@stdlib/complex/float64/real';\n* import imag from '@stdlib/complex/float64/imag';\n*\n* function predicate( v ) {\n* return ( real( v ) === imag( v ) );\n* }\n*\n* var arr = new Complex128Array( 3 );\n*\n* arr.set( [ 1.0, -1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n* arr.set( [ 3.0, -3.0 ], 2 );\n*\n* var bool = arr.some( predicate );\n* // returns true\n*/\nsetReadOnly( Complex128Array.prototype, 'some', function some( predicate, thisArg ) {\n\tvar buf;\n\tvar i;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isFunction( predicate ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', predicate ) );\n\t}\n\tbuf = this._buffer;\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tif ( predicate.call( thisArg, getComplex128( buf, i ), i, this ) ) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n});\n\n/**\n* Sorts an array in-place.\n*\n* @name sort\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @param {Function} compareFcn - comparison function\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a function\n* @returns {Complex128Array} sorted array\n*\n* @example\n* import real from '@stdlib/complex/float64/real';\n* import imag from '@stdlib/complex/float64/imag';\n*\n* function compare( a, b ) {\n* var re1;\n* var re2;\n* var im1;\n* var im2;\n* re1 = real( a );\n* re2 = real( b );\n* if ( re1 < re2 ) {\n* return -1;\n* }\n* if ( re1 > re2 ) {\n* return 1;\n* }\n* im1 = imag( a );\n* im2 = imag( b );\n* if ( im1 < im2 ) {\n* return -1;\n* }\n* if ( im1 > im2 ) {\n* return 1;\n* }\n* return 0;\n* }\n*\n* var arr = new Complex128Array( 3 );\n*\n* arr.set( [ 3.0, -3.0 ], 0 );\n* arr.set( [ 1.0, -1.0 ], 1 );\n* arr.set( [ 2.0, -2.0 ], 2 );\n*\n* var out = arr.sort( compare );\n* // returns \n*\n* var z = out.get( 0 );\n* // returns \n*\n* var re = real( z );\n* // returns 1.0\n*\n* var im = imag( z );\n* // returns -1.0\n*\n* z = out.get( 1 );\n* // returns \n*\n* re = real( z );\n* // returns 2.0\n*\n* im = imag( z );\n* // returns -2.0\n*\n* z = out.get( 2 );\n* // returns \n*\n* re = real( z );\n* // returns 3.0\n*\n* im = imag( z );\n* // returns -3.0\n*/\nsetReadOnly( Complex128Array.prototype, 'sort', function sort( compareFcn ) {\n\tvar tmp;\n\tvar buf;\n\tvar len;\n\tvar i;\n\tvar j;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isFunction( compareFcn ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', compareFcn ) );\n\t}\n\tbuf = this._buffer;\n\tlen = this._length;\n\ttmp = [];\n\tfor ( i = 0; i < len; i++ ) {\n\t\ttmp.push( getComplex128( buf, i ) );\n\t}\n\ttmp.sort( compareFcn );\n\tfor ( i = 0; i < len; i++ ) {\n\t\tj = 2 * i;\n\t\tbuf[ j ] = real( tmp[i] );\n\t\tbuf[ j+1 ] = imag( tmp[i] );\n\t}\n\treturn this;\n});\n\n/**\n* Creates a new typed array view over the same underlying `ArrayBuffer` and with the same underlying data type as the host array.\n*\n* @name subarray\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @param {integer} [begin=0] - starting index (inclusive)\n* @param {integer} [end] - ending index (exclusive)\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be an integer\n* @throws {TypeError} second argument must be an integer\n* @returns {Complex64Array} subarray\n*\n* @example\n* import real from '@stdlib/complex/float64/real';\n* import imag from '@stdlib/complex/float64/imag';\n*\n* var arr = new Complex128Array( 5 );\n*\n* arr.set( [ 1.0, -1.0 ], 0 );\n* arr.set( [ 2.0, -2.0 ], 1 );\n* arr.set( [ 3.0, -3.0 ], 2 );\n* arr.set( [ 4.0, -4.0 ], 3 );\n* arr.set( [ 5.0, -5.0 ], 4 );\n*\n* var subarr = arr.subarray();\n* // returns \n*\n* var len = subarr.length;\n* // returns 5\n*\n* var z = subarr.get( 0 );\n* // returns \n*\n* var re = real( z );\n* // returns 1.0\n*\n* var im = imag( z );\n* // returns -1.0\n*\n* z = subarr.get( len-1 );\n* // returns \n*\n* re = real( z );\n* // returns 5.0\n*\n* im = imag( z );\n* // returns -5.0\n*\n* subarr = arr.subarray( 1, -2 );\n* // returns \n*\n* len = subarr.length;\n* // returns 2\n*\n* z = subarr.get( 0 );\n* // returns \n*\n* re = real( z );\n* // returns 2.0\n*\n* im = imag( z );\n* // returns -2.0\n*\n* z = subarr.get( len-1 );\n* // returns \n*\n* re = real( z );\n* // returns 3.0\n*\n* im = imag( z );\n* // returns -3.0\n*/\nsetReadOnly( Complex128Array.prototype, 'subarray', function subarray( begin, end ) {\n\tvar offset;\n\tvar buf;\n\tvar len;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tbuf = this._buffer;\n\tlen = this._length;\n\tif ( arguments.length === 0 ) {\n\t\tbegin = 0;\n\t\tend = len;\n\t} else {\n\t\tif ( !isInteger( begin ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. First argument must be an integer. Value: `%s`.', begin ) );\n\t\t}\n\t\tif ( begin < 0 ) {\n\t\t\tbegin += len;\n\t\t\tif ( begin < 0 ) {\n\t\t\t\tbegin = 0;\n\t\t\t}\n\t\t}\n\t\tif ( arguments.length === 1 ) {\n\t\t\tend = len;\n\t\t} else {\n\t\t\tif ( !isInteger( end ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an integer. Value: `%s`.', end ) );\n\t\t\t}\n\t\t\tif ( end < 0 ) {\n\t\t\t\tend += len;\n\t\t\t\tif ( end < 0 ) {\n\t\t\t\t\tend = 0;\n\t\t\t\t}\n\t\t\t} else if ( end > len ) {\n\t\t\t\tend = len;\n\t\t\t}\n\t\t}\n\t}\n\tif ( begin >= len ) {\n\t\tlen = 0;\n\t\toffset = buf.byteLength;\n\t} else if ( begin >= end ) {\n\t\tlen = 0;\n\t\toffset = buf.byteOffset + ( begin*BYTES_PER_ELEMENT );\n\t} else {\n\t\tlen = end - begin;\n\t\toffset = buf.byteOffset + ( begin*BYTES_PER_ELEMENT );\n\t}\n\treturn new this.constructor( buf.buffer, offset, ( len < 0 ) ? 0 : len );\n});\n\n/**\n* Serializes an array as a locale-specific string.\n*\n* @name toLocaleString\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @param {(string|Array)} [locales] - locale identifier(s)\n* @param {Object} [options] - configuration options\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a string or an array of strings\n* @throws {TypeError} options argument must be an object\n* @returns {string} string representation\n*\n* @example\n* var arr = new Complex128Array( 2 );\n*\n* arr.set( [ 1.0, 1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n*\n* var str = arr.toLocaleString();\n* // returns '1 + 1i,2 + 2i'\n*/\nsetReadOnly( Complex128Array.prototype, 'toLocaleString', function toLocaleString( locales, options ) {\n\tvar opts;\n\tvar loc;\n\tvar out;\n\tvar buf;\n\tvar i;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( arguments.length === 0 ) {\n\t\tloc = [];\n\t} else if ( isString( locales ) || isStringArray( locales ) ) {\n\t\tloc = locales;\n\t} else {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a string or an array of strings. Value: `%s`.', locales ) );\n\t}\n\tif ( arguments.length < 2 ) {\n\t\topts = {};\n\t} else if ( isObject( options ) ) {\n\t\topts = options;\n\t} else {\n\t\tthrow new TypeError( format( 'invalid argument. Options argument must be an object. Value: `%s`.', options ) );\n\t}\n\tbuf = this._buffer;\n\tout = [];\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tout.push( getComplex128( buf, i ).toLocaleString( loc, opts ) );\n\t}\n\treturn out.join( ',' );\n});\n\n/**\n* Returns a new typed array containing the elements in reversed order.\n*\n* @name toReversed\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @throws {TypeError} `this` must be a complex number array\n* @returns {Complex128Array} reversed array\n*\n* @example\n* import real from '@stdlib/complex/float64/real';\n* import imag from '@stdlib/complex/float64/imag';\n*\n* var arr = new Complex128Array( 3 );\n*\n* arr.set( [ 1.0, 1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n* arr.set( [ 3.0, 3.0 ], 2 );\n*\n* var out = arr.toReversed();\n* // returns \n*\n* var z = out.get( 0 );\n* // returns \n*\n* var re = real( z );\n* // returns 3.0\n*\n* var im = imag( z );\n* // returns 3.0\n*\n* z = out.get( 1 );\n* // returns \n*\n* re = real( z );\n* // returns 2.0\n*\n* im = imag( z );\n* // returns 2.0\n*\n* z = out.get( 2 );\n* // returns \n*\n* re = real( z );\n* // returns 1.0\n*\n* im = imag( z );\n* // returns 1.0\n*/\nsetReadOnly( Complex128Array.prototype, 'toReversed', function toReversed() {\n\tvar outbuf;\n\tvar out;\n\tvar len;\n\tvar buf;\n\tvar i;\n\tvar j;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tlen = this._length;\n\tout = new this.constructor( len );\n\tbuf = this._buffer;\n\toutbuf = out._buffer; // eslint-disable-line no-underscore-dangle\n\tfor ( i = 0; i < len; i++ ) {\n\t\tj = len - i - 1;\n\t\toutbuf[ (2*i) ] = buf[ (2*j) ];\n\t\toutbuf[ (2*i)+1 ] = buf[ (2*j)+1 ];\n\t}\n\treturn out;\n});\n\n/**\n* Returns a new typed array containing the elements in sorted order.\n*\n* @name toSorted\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @param {Function} compareFcn - comparison function\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a function\n* @returns {Complex128Array} sorted array\n*\n* @example\n* import real from '@stdlib/complex/float64/real';\n* import imag from '@stdlib/complex/float64/imag';\n*\n* function compare( a, b ) {\n* var re1;\n* var re2;\n* var im1;\n* var im2;\n* re1 = real( a );\n* re2 = real( b );\n* if ( re1 < re2 ) {\n* return -1;\n* }\n* if ( re1 > re2 ) {\n* return 1;\n* }\n* im1 = imag( a );\n* im2 = imag( b );\n* if ( im1 < im2 ) {\n* return -1;\n* }\n* if ( im1 > im2 ) {\n* return 1;\n* }\n* return 0;\n* }\n*\n* var arr = new Complex128Array( 3 );\n*\n* arr.set( [ 3.0, -3.0 ], 0 );\n* arr.set( [ 1.0, -1.0 ], 1 );\n* arr.set( [ 2.0, -2.0 ], 2 );\n*\n* var out = arr.sort( compare );\n* // returns \n*\n* var z = out.get( 0 );\n* // returns \n*\n* var re = real( z );\n* // returns 1.0\n*\n* var im = imag( z );\n* // returns -1.0\n*\n* z = out.get( 1 );\n* // returns \n*\n* re = real( z );\n* // returns 2.0\n*\n* im = imag( z );\n* // returns -2.0\n*\n* z = out.get( 2 );\n* // returns \n*\n* re = real( z );\n* // returns 3.0\n*\n* im = imag( z );\n* // returns -3.0\n*/\nsetReadOnly( Complex128Array.prototype, 'toSorted', function toSorted( compareFcn ) {\n\tvar tmp;\n\tvar buf;\n\tvar len;\n\tvar i;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isFunction( compareFcn ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', compareFcn ) );\n\t}\n\tbuf = this._buffer;\n\tlen = this._length;\n\ttmp = [];\n\tfor ( i = 0; i < len; i++ ) {\n\t\ttmp.push( getComplex128( buf, i ) );\n\t}\n\ttmp.sort( compareFcn );\n\treturn new Complex128Array( tmp );\n});\n\n/**\n* Serializes an array as a string.\n*\n* @name toString\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @throws {TypeError} `this` must be a complex number array\n* @returns {string} string representation\n*\n* @example\n* var arr = new Complex128Array( 2 );\n*\n* arr.set( [ 1.0, 1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n*\n* var str = arr.toString();\n* // returns '1 + 1i,2 + 2i'\n*/\nsetReadOnly( Complex128Array.prototype, 'toString', function toString() {\n\tvar out;\n\tvar buf;\n\tvar i;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tout = [];\n\tbuf = this._buffer;\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tout.push( getComplex128( buf, i ).toString() );\n\t}\n\treturn out.join( ',' );\n});\n\n/**\n* Returns an iterator for iterating over each value in a typed array.\n*\n* @name values\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @throws {TypeError} `this` must be a complex number array\n* @returns {Iterator} iterator\n*\n* @example\n* import real from '@stdlib/complex/float64/real';\n* import imag from '@stdlib/complex/float64/imag';\n* var arr = new Complex128Array( 2 );\n*\n* arr.set( [ 1.0, -1.0 ], 0 );\n* arr.set( [ 2.0, -2.0 ], 1 );\n*\n* var iter = arr.values();\n*\n* var v = iter.next().value;\n* // returns \n*\n* var re = real( v );\n* // returns 1.0\n*\n* var im = imag( v );\n* // returns -1.0\n*\n* v = iter.next().value;\n* // returns \n*\n* re = real( v );\n* // returns 2.0\n*\n* im = imag( v );\n* // returns -2.0\n*\n* var bool = iter.next().done;\n* // returns true\n*/\nsetReadOnly( Complex128Array.prototype, 'values', function values() {\n\tvar iter;\n\tvar self;\n\tvar len;\n\tvar FLG;\n\tvar buf;\n\tvar i;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tself = this;\n\tbuf = this._buffer;\n\tlen = this._length;\n\n\t// Initialize an iteration index:\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\tif ( ITERATOR_SYMBOL ) {\n\t\tsetReadOnly( iter, ITERATOR_SYMBOL, 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 >= len ) {\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': getComplex128( buf, 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 self.values();\n\t}\n});\n\n/**\n* Returns a new typed array with the element at a provided index replaced with a provided value.\n*\n* @name with\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @param {integer} index - element index\n* @param {ComplexLike} value - new value\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be an integer\n* @throws {RangeError} index argument is out-of-bounds\n* @throws {TypeError} second argument must be a complex number\n* @returns {Complex128Array} new typed array\n*\n* @example\n* import real from '@stdlib/complex/float64/real';\n* import imag from '@stdlib/complex/float64/imag';\n* import Complex128 from '@stdlib/complex/float64/ctor';\n*\n* var arr = new Complex128Array( 3 );\n*\n* arr.set( [ 1.0, 1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n* arr.set( [ 3.0, 3.0 ], 2 );\n*\n* var out = arr.with( 0, new Complex128( 4.0, 4.0 ) );\n* // returns \n*\n* var z = out.get( 0 );\n* // returns \n*\n* var re = real( z );\n* // returns 4.0\n*\n* var im = imag( z );\n* // returns 4.0\n*/\nsetReadOnly( Complex128Array.prototype, 'with', function copyWith( index, value ) {\n\tvar buf;\n\tvar out;\n\tvar len;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isInteger( index ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an integer. Value: `%s`.', index ) );\n\t}\n\tlen = this._length;\n\tif ( index < 0 ) {\n\t\tindex += len;\n\t}\n\tif ( index < 0 || index >= len ) {\n\t\tthrow new RangeError( format( 'invalid argument. Index argument is out-of-bounds. Value: `%s`.', index ) );\n\t}\n\tif ( !isComplexLike( value ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be a complex number. Value: `%s`.', value ) );\n\t}\n\tout = new this.constructor( this._buffer );\n\tbuf = out._buffer; // eslint-disable-line no-underscore-dangle\n\tbuf[ 2*index ] = real( value );\n\tbuf[ (2*index)+1 ] = imag( value );\n\treturn out;\n});\n\n\n// EXPORTS //\n\nexport default Complex128Array;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isComplexLike from '@stdlib/assert/is-complex-like';\nimport real from '@stdlib/complex/float64/real';\nimport imag from '@stdlib/complex/float64/imag';\n\n\n// MAIN //\n\n/**\n* Returns a strided array of real and imaginary components.\n*\n* @private\n* @param {Float64Array} buf - output array\n* @param {Array} arr - array containing complex numbers\n* @returns {(Float64Array|null)} output array or null\n*/\nfunction fromArray( buf, arr ) {\n\tvar len;\n\tvar v;\n\tvar i;\n\tvar j;\n\n\tlen = arr.length;\n\tj = 0;\n\tfor ( i = 0; i < len; i++ ) {\n\t\tv = arr[ i ];\n\t\tif ( !isComplexLike( v ) ) {\n\t\t\treturn null;\n\t\t}\n\t\tbuf[ j ] = real( v );\n\t\tbuf[ j+1 ] = imag( v );\n\t\tj += 2; // stride\n\t}\n\treturn buf;\n}\n\n\n// EXPORTS //\n\nexport default fromArray;\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 Boolean from '@stdlib/boolean/ctor';\n\n\n// MAIN //\n\n/**\n* Returns an array of iterated values.\n*\n* @private\n* @param {Object} it - iterator\n* @returns {Array} output array\n*/\nfunction fromIterator( it ) {\n\tvar out;\n\tvar v;\n\n\tout = [];\n\twhile ( true ) {\n\t\tv = it.next();\n\t\tif ( v.done ) {\n\t\t\tbreak;\n\t\t}\n\t\tout.push( Boolean( v.value ) );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default fromIterator;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isArrayLikeObject from '@stdlib/assert/is-array-like-object';\nimport isComplexLike from '@stdlib/assert/is-complex-like';\nimport format from '@stdlib/string/format';\nimport real from '@stdlib/complex/float64/real';\nimport imag from '@stdlib/complex/float64/imag';\n\n\n// MAIN //\n\n/**\n* Returns an array of iterated values.\n*\n* @private\n* @param {Object} it - iterator\n* @param {Function} clbk - callback to invoke for each iterated value\n* @param {*} thisArg - invocation context\n* @returns {(Array|TypeError)} array or an error\n*/\nfunction fromIteratorMap( it, clbk, thisArg ) {\n\tvar out;\n\tvar v;\n\tvar z;\n\tvar i;\n\n\tout = [];\n\ti = -1;\n\twhile ( true ) {\n\t\tv = it.next();\n\t\tif ( v.done ) {\n\t\t\tbreak;\n\t\t}\n\t\ti += 1;\n\t\tz = clbk.call( thisArg, v.value, i );\n\t\tif ( isArrayLikeObject( z ) && z.length >= 2 ) {\n\t\t\tout.push( z[ 0 ], z[ 1 ] );\n\t\t} else if ( isComplexLike( z ) ) {\n\t\t\tout.push( real( z ), imag( z ) );\n\t\t} else {\n\t\t\treturn new TypeError( format( 'invalid argument. Callback must return either a two-element array containing real and imaginary components or a complex number. Value: `%s`.', z ) );\n\t\t}\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default fromIteratorMap;\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/* eslint-disable no-restricted-syntax, no-invalid-this */\n\n'use strict';\n\n// MODULES //\n\nimport { isPrimitive as isNonNegativeInteger } from '@stdlib/assert/is-nonnegative-integer';\nimport isCollection from '@stdlib/assert/is-collection';\nimport isArrayBuffer from '@stdlib/assert/is-arraybuffer';\nimport isObject from '@stdlib/assert/is-object';\nimport isFunction from '@stdlib/assert/is-function';\nimport { isPrimitive as isBoolean } from '@stdlib/assert/is-boolean';\nimport { isPrimitive as isInteger } from '@stdlib/assert/is-integer';\nimport { isPrimitive as isString } from '@stdlib/assert/is-string';\nimport { primitives as isStringArray } from '@stdlib/assert/is-string-array';\nimport hasIteratorSymbolSupport from '@stdlib/assert/has-iterator-symbol-support';\nimport ITERATOR_SYMBOL from '@stdlib/symbol/iterator';\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport setReadOnlyAccessor from '@stdlib/utils/define-nonenumerable-read-only-accessor';\nimport Uint8Array from './../../uint8';\nimport Boolean from '@stdlib/boolean/ctor';\nimport getter from './../../base/getter';\nimport floor from '@stdlib/math/base/special/floor';\nimport accessorGetter from './../../base/accessor-getter';\nimport format from '@stdlib/string/format';\nimport fromIterator from './from_iterator.js';\nimport fromIteratorMap from './from_iterator_map.js';\nimport fromArray from './from_array.js';\n\n\n// VARIABLES //\n\nvar BYTES_PER_ELEMENT = Uint8Array.BYTES_PER_ELEMENT;\nvar HAS_ITERATOR_SYMBOL = hasIteratorSymbolSupport();\n\n\n// FUNCTIONS //\n\n/**\n* Returns a boolean indicating if a value is a `BooleanArray`.\n*\n* @private\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a `BooleanArray`\n*/\nfunction isBooleanArray( value ) {\n\treturn (\n\t\ttypeof value === 'object' &&\n\t\tvalue !== null &&\n\t\tvalue.constructor.name === 'BooleanArray' &&\n\t\tvalue.BYTES_PER_ELEMENT === BYTES_PER_ELEMENT\n\t);\n}\n\n/**\n* Returns a boolean indicating if a value is a boolean typed array constructor.\n*\n* @private\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a boolean typed array constructor\n*/\nfunction isBooleanArrayConstructor( value ) {\n\treturn ( value === BooleanArray);\n}\n\n\n// MAIN //\n\n/**\n* Boolean array constructor.\n*\n* @constructor\n* @param {(NonNegativeInteger|Collection|ArrayBuffer|Iterable)} [arg] - length, typed array, array-like object, buffer, or an iterable\n* @param {NonNegativeInteger} [byteOffset=0] - byte offset\n* @param {NonNegativeInteger} [length] - view length\n* @throws {TypeError} if provided only a single argument, must provide a valid argument\n* @throws {TypeError} byte offset must be a nonnegative integer\n* @throws {RangeError} must provide sufficient memory to accommodate byte offset and view length requirements\n* @returns {BooleanArray} boolean array\n*\n* @example\n* var arr = new BooleanArray();\n* // returns \n*\n* var len = arr.length;\n* // returns 0\n*\n* @example\n* var arr = new BooleanArray( 2 );\n* // returns \n*\n* var len = arr.length;\n* // returns 2\n*\n* @example\n* var arr = new BooleanArray( [ true, false ] );\n* // returns \n*\n* var len = arr.length;\n* // returns 2\n*\n* @example\n* import ArrayBuffer from '@stdlib/array/buffer';\n*\n* var buf = new ArrayBuffer( 16 );\n* var arr = new BooleanArray( buf );\n* // returns \n*\n* var len = arr.length;\n* // returns 16\n*\n* @example\n* import ArrayBuffer from '@stdlib/array/buffer';\n*\n* var buf = new ArrayBuffer( 16 );\n* var arr = new BooleanArray( buf, 8 );\n* // returns \n*\n* var len = arr.length;\n* // returns 8\n*\n* @example\n* import ArrayBuffer from '@stdlib/array/buffer';\n*\n* var buf = new ArrayBuffer( 32 );\n* var arr = new BooleanArray( buf, 8, 2 );\n* // returns \n*\n* var len = arr.length;\n* // returns 2\n*/\nfunction BooleanArray() {\n\tvar byteOffset;\n\tvar nargs;\n\tvar buf;\n\tvar len;\n\tvar arg;\n\n\tnargs = arguments.length;\n\tif ( !(this instanceof BooleanArray) ) {\n\t\tif ( nargs === 0 ) {\n\t\t\treturn new BooleanArray();\n\t\t}\n\t\tif ( nargs === 1 ) {\n\t\t\treturn new BooleanArray( arguments[0] );\n\t\t}\n\t\tif ( nargs === 2 ) {\n\t\t\treturn new BooleanArray( arguments[0], arguments[1] );\n\t\t}\n\t\treturn new BooleanArray( arguments[0], arguments[1], arguments[2] );\n\t}\n\t// Create the underlying data buffer...\n\tif ( nargs === 0 ) {\n\t\tbuf = new Uint8Array( 0 ); // backward-compatibility\n\t} else if ( nargs === 1 ) {\n\t\targ = arguments[ 0 ];\n\t\tif ( isNonNegativeInteger( arg ) ) {\n\t\t\tbuf = new Uint8Array( arg );\n\t\t} else if ( isCollection( arg ) ) {\n\t\t\tbuf = fromArray( new Uint8Array( arg.length ), arg );\n\t\t} else if ( isArrayBuffer( arg ) ) {\n\t\t\tbuf = new Uint8Array( arg );\n\t\t} else if ( isObject( arg ) ) {\n\t\t\tif ( HAS_ITERATOR_SYMBOL === false ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Environment lacks Symbol.iterator support. Must provide a length, ArrayBuffer, typed array, or array-like object. Value: `%s`.', arg ) );\n\t\t\t}\n\t\t\tif ( !isFunction( arg[ ITERATOR_SYMBOL ] ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Must provide a length, ArrayBuffer, typed array, array-like object, or an iterable. Value: `%s`.', arg ) );\n\t\t\t}\n\t\t\tbuf = arg[ ITERATOR_SYMBOL ]();\n\t\t\tif ( !isFunction( buf.next ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Must provide a length, ArrayBuffer, typed array, array-like object, or an iterable. Value: `%s`.', arg ) );\n\t\t\t}\n\t\t\tbuf = new Uint8Array( fromIterator( buf ) );\n\t\t} else {\n\t\t\tthrow new TypeError( format( 'invalid argument. Must provide a length, ArrayBuffer, typed array, array-like object, or an iterable. Value: `%s`.', arg ) );\n\t\t}\n\t} else {\n\t\tbuf = arguments[ 0 ];\n\t\tif ( !isArrayBuffer( buf ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. First argument must be an ArrayBuffer. Value: `%s`.', buf ) );\n\t\t}\n\t\tbyteOffset = arguments[ 1 ];\n\t\tif ( !isNonNegativeInteger( byteOffset ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Byte offset must be a nonnegative integer. Value: `%s`.', byteOffset ) );\n\t\t}\n\t\tif ( nargs === 2 ) {\n\t\t\tbuf = new Uint8Array( buf, byteOffset );\n\t\t} else {\n\t\t\tlen = arguments[ 2 ];\n\t\t\tif ( !isNonNegativeInteger( len ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Length must be a nonnegative integer. Value: `%s`.', len ) );\n\t\t\t}\n\t\t\tif ( (len*BYTES_PER_ELEMENT) > (buf.byteLength-byteOffset) ) {\n\t\t\t\tthrow new RangeError( format( 'invalid arguments. ArrayBuffer has insufficient capacity. Either decrease the array length or provide a bigger buffer. Minimum capacity: `%u`.', len*BYTES_PER_ELEMENT ) );\n\t\t\t}\n\t\t\tbuf = new Uint8Array( buf, byteOffset, len );\n\t\t}\n\t}\n\tsetReadOnly( this, '_buffer', buf );\n\tsetReadOnly( this, '_length', buf.length );\n\n\treturn this;\n}\n\n/**\n* Size (in bytes) of each array element.\n*\n* @name BYTES_PER_ELEMENT\n* @memberof BooleanArray\n* @readonly\n* @type {PositiveInteger}\n* @default 1\n*\n* @example\n* var nbytes = BooleanArray.BYTES_PER_ELEMENT;\n* // returns 1\n*/\nsetReadOnly( BooleanArray, 'BYTES_PER_ELEMENT', BYTES_PER_ELEMENT );\n\n/**\n* Constructor name.\n*\n* @name name\n* @memberof BooleanArray\n* @readonly\n* @type {string}\n* @default 'BooleanArray'\n*\n* @example\n* var str = BooleanArray.name;\n* // returns 'BooleanArray'\n*/\nsetReadOnly( BooleanArray, 'name', 'BooleanArray' );\n\n/**\n* Creates a new boolean array from an array-like object or an iterable.\n*\n* @name from\n* @memberof BooleanArray\n* @type {Function}\n* @param {(Collection|Iterable)} src - array-like object or iterable\n* @param {Function} [clbk] - callback to invoke for each source element\n* @param {*} [thisArg] - context\n* @throws {TypeError} `this` context must be a constructor\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} first argument must be an array-like object or an iterable\n* @throws {TypeError} second argument must be a function\n* @returns {BooleanArray} boolean array\n*\n* @example\n* var arr = BooleanArray.from( [ true, false ] );\n* // returns \n*\n* var len = arr.length;\n* // returns 2\n*\n* @example\n* function clbk( v ) {\n* return !v;\n* }\n*\n* var arr = BooleanArray.from( [ true, false ], clbk );\n* // returns \n*\n* var len = arr.length;\n* // returns 2\n*/\nsetReadOnly( BooleanArray, 'from', function from( src ) {\n\tvar thisArg;\n\tvar nargs;\n\tvar clbk;\n\tvar out;\n\tvar buf;\n\tvar tmp;\n\tvar get;\n\tvar len;\n\tvar i;\n\tif ( !isFunction( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` context must be a constructor.' );\n\t}\n\tif ( !isBooleanArrayConstructor( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tnargs = arguments.length;\n\tif ( nargs > 1 ) {\n\t\tclbk = arguments[ 1 ];\n\t\tif ( !isFunction( clbk ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be a function. Value: `%s`.', clbk ) );\n\t\t}\n\t\tif ( nargs > 2 ) {\n\t\t\tthisArg = arguments[ 2 ];\n\t\t}\n\t}\n\tif ( isCollection( src ) ) {\n\t\tif ( clbk ) {\n\t\t\tlen = src.length;\n\t\t\tif ( src.get && src.set ) {\n\t\t\t\tget = accessorGetter( 'default' );\n\t\t\t} else {\n\t\t\t\tget = getter( 'default' );\n\t\t\t}\n\t\t\tout = new this( len );\n\t\t\tbuf = out._buffer; // eslint-disable-line no-underscore-dangle\n\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\tbuf[ i ] = Boolean( clbk.call( thisArg, get( src, i ), i ) );\n\t\t\t}\n\t\t\treturn out;\n\t\t}\n\t\treturn new this( src );\n\t}\n\tif ( isObject( src ) && HAS_ITERATOR_SYMBOL && isFunction( src[ ITERATOR_SYMBOL ] ) ) { // eslint-disable-line max-len\n\t\tbuf = src[ ITERATOR_SYMBOL ]();\n\t\tif ( !isFunction( buf.next ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. First argument must be an array-like object or an iterable. Value: `%s`.', src ) );\n\t\t}\n\t\tif ( clbk ) {\n\t\t\ttmp = fromIteratorMap( buf, clbk, thisArg );\n\t\t} else {\n\t\t\ttmp = fromIterator( buf );\n\t\t}\n\t\tlen = tmp.length;\n\t\tout = new this( len );\n\t\tbuf = out._buffer; // eslint-disable-line no-underscore-dangle\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tbuf[ i ] = tmp[ i ];\n\t\t}\n\t\treturn out;\n\t}\n\tthrow new TypeError( format( 'invalid argument. First argument must be an array-like object or an iterable. Value: `%s`.', src ) );\n});\n\n/**\n* Creates a new boolean array from a variable number of arguments.\n*\n* @name of\n* @memberof BooleanArray\n* @type {Function}\n* @param {...*} element - array elements\n* @throws {TypeError} `this` context must be a constructor\n* @throws {TypeError} `this` must be a boolean array\n* @returns {BooleanArray} boolean array\n*\n* @example\n* var arr = BooleanArray.of( true, true, true, true );\n* // returns \n*\n* var len = arr.length;\n* // returns 4\n*/\nsetReadOnly( BooleanArray, 'of', function of() {\n\tvar args;\n\tvar i;\n\tif ( !isFunction( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` context must be a constructor.' );\n\t}\n\tif ( !isBooleanArrayConstructor( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\targs = [];\n\tfor ( i = 0; i < arguments.length; i++ ) {\n\t\targs.push( arguments[ i ] );\n\t}\n\treturn new this( args );\n});\n\n/**\n* Returns an array element located at integer position (index) `i`, with support for both nonnegative and negative integer indices.\n*\n* @name at\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {integer} idx - element index\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} must provide an integer\n* @returns {(boolean|void)} array element\n*\n* @example\n* var arr = new BooleanArray( 3 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( true, 2 );\n*\n* var v = arr.at( 0 );\n* // returns true\n*\n* v = arr.at( -1 );\n* // returns true\n*\n* v = arr.at( 100 );\n* // returns undefined\n*/\nsetReadOnly( BooleanArray.prototype, 'at', function at( idx ) {\n\tvar buf;\n\tvar len;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tif ( !isInteger( idx ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide an integer. Value: `%s`.', idx ) );\n\t}\n\tlen = this._length;\n\tbuf = this._buffer;\n\tif ( idx < 0 ) {\n\t\tidx += len;\n\t}\n\tif ( idx < 0 || idx >= len ) {\n\t\treturn;\n\t}\n\treturn Boolean( buf[ idx ] );\n});\n\n/**\n* Pointer to the underlying data buffer.\n*\n* @name buffer\n* @memberof BooleanArray.prototype\n* @readonly\n* @type {ArrayBuffer}\n*\n* @example\n* var arr = new BooleanArray( 10 );\n*\n* var buf = arr.buffer;\n* // returns \n*/\nsetReadOnlyAccessor( BooleanArray.prototype, 'buffer', function get() {\n\treturn this._buffer.buffer;\n});\n\n/**\n* Size (in bytes) of the array.\n*\n* @name byteLength\n* @memberof BooleanArray.prototype\n* @readonly\n* @type {NonNegativeInteger}\n*\n* @example\n* var arr = new BooleanArray( 10 );\n*\n* var byteLength = arr.byteLength;\n* // returns 10\n*/\nsetReadOnlyAccessor( BooleanArray.prototype, 'byteLength', function get() {\n\treturn this._buffer.byteLength;\n});\n\n/**\n* Offset (in bytes) of the array from the start of its underlying `ArrayBuffer`.\n*\n* @name byteOffset\n* @memberof BooleanArray.prototype\n* @readonly\n* @type {NonNegativeInteger}\n*\n* @example\n* var arr = new BooleanArray( 10 );\n*\n* var byteOffset = arr.byteOffset;\n* // returns 0\n*/\nsetReadOnlyAccessor( BooleanArray.prototype, 'byteOffset', function get() {\n\treturn this._buffer.byteOffset;\n});\n\n/**\n* Size (in bytes) of each array element.\n*\n* @name BYTES_PER_ELEMENT\n* @memberof BooleanArray.prototype\n* @readonly\n* @type {PositiveInteger}\n* @default 1\n*\n* @example\n* var arr = new BooleanArray( 10 );\n*\n* var nbytes = arr.BYTES_PER_ELEMENT;\n* // returns 1\n*/\nsetReadOnly( BooleanArray.prototype, 'BYTES_PER_ELEMENT', BooleanArray.BYTES_PER_ELEMENT );\n\n/**\n* Copies a sequence of elements within the array to the position starting at `target`.\n*\n* @name copyWithin\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {integer} target - index at which to start copying elements\n* @param {integer} start - source index at which to copy elements from\n* @param {integer} [end] - source index at which to stop copying elements from\n* @throws {TypeError} `this` must be a boolean array\n* @returns {BooleanArray} modified array\n*\n* @example\n* var arr = new BooleanArray( 4 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( false, 2 );\n* arr.set( true, 3 );\n*\n* // Copy the first two elements to the last two elements:\n* arr.copyWithin( 2, 0, 2 );\n*\n* var v = arr.get( 2 );\n* // returns true\n*\n* v = arr.get( 3 );\n* // returns false\n*/\nsetReadOnly( BooleanArray.prototype, 'copyWithin', function copyWithin( target, start ) {\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\t// FIXME: prefer a functional `copyWithin` implementation which addresses lack of universal browser support (e.g., IE11 and Safari) or ensure that typed arrays are polyfilled\n\tif ( arguments.length === 2 ) {\n\t\tthis._buffer.copyWithin( target, start );\n\t} else {\n\t\tthis._buffer.copyWithin( target, start, arguments[2] );\n\t}\n\treturn this;\n});\n\n/**\n* Returns an iterator for iterating over array key-value pairs.\n*\n* @name entries\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @throws {TypeError} `this` must be a boolean array\n* @returns {Iterator} iterator\n*\n* @example\n* var arr = new BooleanArray( 3 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( true, 2 );\n*\n* var it = arr.entries();\n*\n* var v = it.next().value;\n* // returns [ 0, true ]\n*\n* v = it.next().value;\n* // returns [ 1, false ]\n*\n* v = it.next().value;\n* // returns [ 2, true ]\n*\n* var bool = it.next().done;\n* // returns true\n*/\nsetReadOnly( BooleanArray.prototype, 'entries', function entries() {\n\tvar self;\n\tvar iter;\n\tvar len;\n\tvar buf;\n\tvar FLG;\n\tvar i;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tself = this;\n\tbuf = this._buffer;\n\tlen = this._length;\n\n\t// Initialize an iteration index:\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\tif ( ITERATOR_SYMBOL ) {\n\t\tsetReadOnly( iter, ITERATOR_SYMBOL, 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 >= len ) {\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, Boolean( buf[ 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 self.entries();\n\t}\n});\n\n/**\n* Tests whether all elements in an array pass a test implemented by a predicate function.\n*\n* @name every\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {Function} predicate - predicate function\n* @param {*} [thisArg] - predicate function execution context\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} first argument must be a function\n* @returns {boolean} boolean indicating whether all elements pass a test\n*\n* @example\n* function predicate( v ) {\n* return v === true;\n* }\n*\n* var arr = new BooleanArray( 3 );\n*\n* arr.set( true, 0 );\n* arr.set( true, 1 );\n* arr.set( true, 2 );\n*\n* var bool = arr.every( predicate );\n* // returns true\n*/\nsetReadOnly( BooleanArray.prototype, 'every', function every( predicate, thisArg ) {\n\tvar buf;\n\tvar i;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tif ( !isFunction( predicate ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', predicate ) );\n\t}\n\tbuf = this._buffer;\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tif ( !predicate.call( thisArg, Boolean( buf[ i ] ), i, this ) ) {\n\t\t\treturn false;\n\t\t}\n\t}\n\treturn true;\n});\n\n/**\n* Returns a modified typed array filled with a fill value.\n*\n* @name fill\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {boolean} value - fill value\n* @param {integer} [start=0] - starting index (inclusive)\n* @param {integer} [end] - ending index (exclusive)\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} first argument must be a boolean\n* @throws {TypeError} second argument must be an integer\n* @throws {TypeError} third argument must be an integer\n* @returns {BooleanArray} modified array\n*\n* @example\n* var arr = new BooleanArray( 3 );\n*\n* arr.fill( true, 1 );\n*\n* var v = arr.get( 0 );\n* // returns false\n*\n* v = arr.get( 1 );\n* // returns true\n*\n* v = arr.get( 2 );\n* // returns true\n*/\nsetReadOnly( BooleanArray.prototype, 'fill', function fill( value, start, end ) {\n\tvar buf;\n\tvar len;\n\tvar val;\n\tvar i;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tif ( !isBoolean( value ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a boolean. Value: `%s`.', value ) );\n\t}\n\tbuf = this._buffer;\n\tlen = this._length;\n\tif ( arguments.length > 1 ) {\n\t\tif ( !isInteger( start ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an integer. Value: `%s`.', start ) );\n\t\t}\n\t\tif ( start < 0 ) {\n\t\t\tstart += len;\n\t\t\tif ( start < 0 ) {\n\t\t\t\tstart = 0;\n\t\t\t}\n\t\t}\n\t\tif ( arguments.length > 2 ) {\n\t\t\tif ( !isInteger( end ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Third argument must be an integer. Value: `%s`.', end ) );\n\t\t\t}\n\t\t\tif ( end < 0 ) {\n\t\t\t\tend += len;\n\t\t\t\tif ( end < 0 ) {\n\t\t\t\t\tend = 0;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( end > len ) {\n\t\t\t\tend = len;\n\t\t\t}\n\t\t} else {\n\t\t\tend = len;\n\t\t}\n\t} else {\n\t\tstart = 0;\n\t\tend = len;\n\t}\n\tif ( value ) {\n\t\tval = 1;\n\t} else {\n\t\tval = 0;\n\t}\n\tfor ( i = start; i < end; i++ ) {\n\t\tbuf[ i ] = val;\n\t}\n\treturn this;\n});\n\n/**\n* Returns a new array containing the elements of an array which pass a test implemented by a predicate function.\n*\n* @name filter\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {Function} predicate - test function\n* @param {*} [thisArg] - predicate function execution context\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} first argument must be a function\n* @returns {BooleanArray} boolean array\n*\n* @example\n* function predicate( v ) {\n* return ( v === true );\n* }\n*\n* var arr = new BooleanArray( 3 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( true, 2 );\n*\n* var out = arr.filter( predicate );\n* // returns \n*\n* var len = out.length;\n* // returns 2\n*\n* var v = out.get( 0 );\n* // returns true\n*\n* v = out.get( 1 );\n* // returns true\n*/\nsetReadOnly( BooleanArray.prototype, 'filter', function filter( predicate, thisArg ) {\n\tvar buf;\n\tvar out;\n\tvar i;\n\tvar v;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tif ( !isFunction( predicate ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', predicate ) );\n\t}\n\tbuf = this._buffer;\n\tout = [];\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tv = Boolean( buf[ i ] );\n\t\tif ( predicate.call( thisArg, v, i, this ) ) {\n\t\t\tout.push( v );\n\t\t}\n\t}\n\treturn new this.constructor( out );\n});\n\n/**\n* Returns the first element in an array for which a predicate function returns a truthy value.\n*\n* @name find\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {Function} predicate - predicate function\n* @param {*} [thisArg] - predicate function execution context\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} first argument must be a function\n* @returns {(boolean|void)} array element or undefined\n*\n* @example\n* function predicate( v ) {\n* return v === true;\n* }\n*\n* var arr = new BooleanArray( 3 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( true, 2 );\n*\n* var v = arr.find( predicate );\n* // returns true\n*/\nsetReadOnly( BooleanArray.prototype, 'find', function find( predicate, thisArg ) {\n\tvar buf;\n\tvar v;\n\tvar i;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tif ( !isFunction( predicate ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', predicate ) );\n\t}\n\tbuf = this._buffer;\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tv = Boolean( buf[ i ] );\n\t\tif ( predicate.call( thisArg, v, i, this ) ) {\n\t\t\treturn v;\n\t\t}\n\t}\n});\n\n/**\n* Returns the index of the first element in an array for which a predicate function returns a truthy value.\n*\n* @name findIndex\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {Function} predicate - predicate function\n* @param {*} [thisArg] - predicate function execution context\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} first argument must be a function\n* @returns {integer} index or -1\n*\n* @example\n* function predicate( v ) {\n* return v === true;\n* }\n*\n* var arr = new BooleanArray( 3 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( true, 2 );\n*\n* var v = arr.findIndex( predicate );\n* // returns 0\n*/\nsetReadOnly( BooleanArray.prototype, 'findIndex', function findIndex( predicate, thisArg ) {\n\tvar buf;\n\tvar v;\n\tvar i;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tif ( !isFunction( predicate ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', predicate ) );\n\t}\n\tbuf = this._buffer;\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tv = Boolean( buf[ i ] );\n\t\tif ( predicate.call( thisArg, v, i, this ) ) {\n\t\t\treturn i;\n\t\t}\n\t}\n\treturn -1;\n});\n\n/**\n* Returns the last element in an array for which a predicate function returns a truthy value.\n*\n* @name findLast\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {Function} predicate - predicate function\n* @param {*} [thisArg] - predicate function execution context\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} first argument must be a function\n* @returns {(boolean|void)} array element or undefined\n*\n* @example\n* function predicate( v ) {\n* return v === true;\n* }\n*\n* var arr = new BooleanArray( 3 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( true, 2 );\n*\n* var v = arr.findLast( predicate );\n* // returns true\n*/\nsetReadOnly( BooleanArray.prototype, 'findLast', function findLast( predicate, thisArg ) {\n\tvar buf;\n\tvar v;\n\tvar i;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tif ( !isFunction( predicate ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', predicate ) );\n\t}\n\tbuf = this._buffer;\n\tfor ( i = this._length-1; i >= 0; i-- ) {\n\t\tv = Boolean( buf[ i ] );\n\t\tif ( predicate.call( thisArg, v, i, this ) ) {\n\t\t\treturn v;\n\t\t}\n\t}\n});\n\n/**\n* Returns the index of the last element in an array for which a predicate function returns a truthy value.\n*\n* @name findLastIndex\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {Function} predicate - predicate function\n* @param {*} [thisArg] - predicate function execution context\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} first argument must be a function\n* @returns {integer} index or -1\n*\n* @example\n* function predicate( v ) {\n* return v === true;\n* }\n*\n* var arr = new BooleanArray( 3 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( true, 2 );\n*\n* var v = arr.findLastIndex( predicate );\n* // returns 2\n*/\nsetReadOnly( BooleanArray.prototype, 'findLastIndex', function findLastIndex( predicate, thisArg ) {\n\tvar buf;\n\tvar v;\n\tvar i;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tif ( !isFunction( predicate ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', predicate ) );\n\t}\n\tbuf = this._buffer;\n\tfor ( i = this._length-1; i >= 0; i-- ) {\n\t\tv = Boolean( buf[ i ] );\n\t\tif ( predicate.call( thisArg, v, i, this ) ) {\n\t\t\treturn i;\n\t\t}\n\t}\n\treturn -1;\n});\n\n/**\n* Invokes a function once for each array element.\n*\n* @name forEach\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {Function} fcn - function to invoke\n* @param {*} [thisArg] - function invocation context\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} first argument must be a function\n*\n* @example\n* function log( v, i ) {\n* console.log( '%s: %s', i, v.toString() );\n* }\n*\n* var arr = new BooleanArray( 3 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( true, 2 );\n*\n* arr.forEach( log );\n*/\nsetReadOnly( BooleanArray.prototype, 'forEach', function forEach( fcn, thisArg ) {\n\tvar buf;\n\tvar i;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tif ( !isFunction( fcn ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', fcn ) );\n\t}\n\tbuf = this._buffer;\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tfcn.call( thisArg, Boolean( buf[ i ] ), i, this );\n\t}\n});\n\n/**\n* Returns an array element.\n*\n* @name get\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {NonNegativeInteger} idx - element index\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} must provide a nonnegative integer\n* @returns {(boolean|void)} array element\n*\n* @example\n* var arr = new BooleanArray( 10 );\n*\n* var v = arr.get( 0 );\n* // returns false\n*\n* arr.set( [ true, false ], 0 );\n*\n* v = arr.get( 0 );\n* // returns true\n*\n* v = arr.get( 100 );\n* // returns undefined\n*/\nsetReadOnly( BooleanArray.prototype, 'get', function get( idx ) {\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tif ( !isNonNegativeInteger( idx ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide a nonnegative integer. Value: `%s`.', idx ) );\n\t}\n\tif ( idx >= this._length ) {\n\t\treturn;\n\t}\n\treturn Boolean( this._buffer[ idx ] );\n});\n\n/**\n* Returns a boolean indicating whether an array includes a provided value.\n*\n* @name includes\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {boolean} searchElement - search element\n* @param {integer} [fromIndex=0] - starting index (inclusive)\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} first argument must be a boolean value\n* @throws {TypeError} second argument must be an integer\n* @returns {boolean} boolean indicating whether an array includes a value\n*\n* @example\n* var arr = new BooleanArray( 5 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( true, 2 );\n* arr.set( true, 3 );\n* arr.set( true, 4 );\n*\n* var bool = arr.includes( true );\n* // returns true\n*\n* bool = arr.includes( false, 2 );\n* // returns false\n*/\nsetReadOnly( BooleanArray.prototype, 'includes', function includes( searchElement, fromIndex ) {\n\tvar buf;\n\tvar i;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tif ( !isBoolean( searchElement ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a boolean. Value: `%s`.', searchElement ) );\n\t}\n\tif ( arguments.length > 1 ) {\n\t\tif ( !isInteger( fromIndex ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an integer. Value: `%s`.', fromIndex ) );\n\t\t}\n\t\tif ( fromIndex < 0 ) {\n\t\t\tfromIndex += this._length;\n\t\t\tif ( fromIndex < 0 ) {\n\t\t\t\tfromIndex = 0;\n\t\t\t}\n\t\t}\n\t} else {\n\t\tfromIndex = 0;\n\t}\n\tbuf = this._buffer;\n\tfor ( i = fromIndex; i < this._length; i++ ) {\n\t\tif ( searchElement === Boolean( buf[ i ] ) ) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n});\n\n/**\n* Returns the first index at which a given element can be found.\n*\n* @name indexOf\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {boolean} searchElement - element to find\n* @param {integer} [fromIndex=0] - starting index (inclusive)\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} first argument must be a boolean value\n* @throws {TypeError} second argument must be an integer\n* @returns {integer} index or -1\n*\n* @example\n* var arr = new BooleanArray( 5 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( true, 2 );\n* arr.set( true, 3 );\n* arr.set( true, 4 );\n*\n* var idx = arr.indexOf( true );\n* // returns 0\n*\n* idx = arr.indexOf( false, 2 );\n* // returns -1\n*\n* idx = arr.indexOf( false, -3 );\n* // returns -1\n*/\nsetReadOnly( BooleanArray.prototype, 'indexOf', function indexOf( searchElement, fromIndex ) {\n\tvar buf;\n\tvar i;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tif ( !isBoolean( searchElement ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a boolean. Value: `%s`.', searchElement ) );\n\t}\n\tif ( arguments.length > 1 ) {\n\t\tif ( !isInteger( fromIndex ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an integer. Value: `%s`.', fromIndex ) );\n\t\t}\n\t\tif ( fromIndex < 0 ) {\n\t\t\tfromIndex += this._length;\n\t\t\tif ( fromIndex < 0 ) {\n\t\t\t\tfromIndex = 0;\n\t\t\t}\n\t\t}\n\t} else {\n\t\tfromIndex = 0;\n\t}\n\tbuf = this._buffer;\n\tfor ( i = fromIndex; i < this._length; i++ ) {\n\t\tif ( searchElement === Boolean( buf[ i ] ) ) {\n\t\t\treturn i;\n\t\t}\n\t}\n\treturn -1;\n});\n\n/**\n* Returns a new string by concatenating all array elements.\n*\n* @name join\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {string} [separator=','] - element separator\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} first argument must be a string\n* @returns {string} string representation\n*\n* @example\n* var arr = new BooleanArray( 3 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( true, 2 );\n*\n* var str = arr.join();\n* // returns 'true,false,true'\n*\n* str = arr.join( '|' );\n* // returns 'true|false|true'\n*/\nsetReadOnly( BooleanArray.prototype, 'join', function join( separator ) {\n\tvar buf;\n\tvar out;\n\tvar i;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tif ( arguments.length > 0 ) {\n\t\tif ( !isString( separator ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. First argument must be a string. Value: `%s`.', separator ) );\n\t\t}\n\t} else {\n\t\tseparator = ',';\n\t}\n\tbuf = this._buffer;\n\tout = [];\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tif ( buf[i] ) {\n\t\t\tout.push( 'true' );\n\t\t} else {\n\t\t\tout.push( 'false' );\n\t\t}\n\t}\n\treturn out.join( separator );\n});\n\n/**\n* Returns an iterator for iterating over each index key in a typed array.\n*\n* @name keys\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @throws {TypeError} `this` must be a boolean array\n* @returns {Iterator} iterator\n*\n* @example\n* var arr = new BooleanArray( 2 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n*\n* var iter = arr.keys();\n*\n* var v = iter.next().value;\n* // returns 0\n*\n* v = iter.next().value;\n* // returns 1\n*\n* var bool = iter.next().done;\n* // returns true\n*/\nsetReadOnly( BooleanArray.prototype, 'keys', function keys() {\n\tvar self;\n\tvar iter;\n\tvar len;\n\tvar FLG;\n\tvar i;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tself = this;\n\tlen = this._length;\n\n\t// Initialize an iteration index:\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\tif ( ITERATOR_SYMBOL ) {\n\t\tsetReadOnly( iter, ITERATOR_SYMBOL, 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 >= len ) {\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 self.keys();\n\t}\n});\n\n/**\n* Returns the last index at which a given element can be found.\n*\n* @name lastIndexOf\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {boolean} searchElement - element to find\n* @param {integer} [fromIndex] - starting index (inclusive)\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} first argument must be a boolean value\n* @throws {TypeError} second argument must be an integer\n* @returns {integer} index or -1\n*\n* @example\n* var arr = new BooleanArray( 5 );\n*\n* arr.set( true, 0 );\n* arr.set( true, 1 );\n* arr.set( true, 2 );\n* arr.set( false, 3 );\n* arr.set( true, 4 );\n*\n* var idx = arr.lastIndexOf( true );\n* // returns 4\n*\n* idx = arr.lastIndexOf( false, 2 );\n* // returns -1\n*\n* idx = arr.lastIndexOf( false, -3 );\n* // returns -1\n*/\nsetReadOnly( BooleanArray.prototype, 'lastIndexOf', function lastIndexOf( searchElement, fromIndex ) {\n\tvar buf;\n\tvar i;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tif ( !isBoolean( searchElement ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a boolean. Value: `%s`.', searchElement ) );\n\t}\n\tif ( arguments.length > 1 ) {\n\t\tif ( !isInteger( fromIndex ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an integer. Value: `%s`.', fromIndex ) );\n\t\t}\n\t\tif ( fromIndex >= this._length ) {\n\t\t\tfromIndex = this._length - 1;\n\t\t} else if ( fromIndex < 0 ) {\n\t\t\tfromIndex += this._length;\n\t\t}\n\t} else {\n\t\tfromIndex = this._length - 1;\n\t}\n\tbuf = this._buffer;\n\tfor ( i = fromIndex; i >= 0; i-- ) {\n\t\tif ( searchElement === Boolean( buf[ i ] ) ) {\n\t\t\treturn i;\n\t\t}\n\t}\n\treturn -1;\n});\n\n/**\n* Number of array elements.\n*\n* @name length\n* @memberof BooleanArray.prototype\n* @readonly\n* @type {NonNegativeInteger}\n*\n* @example\n* var arr = new BooleanArray( 10 );\n*\n* var len = arr.length;\n* // returns 10\n*/\nsetReadOnlyAccessor( BooleanArray.prototype, 'length', function get() {\n\treturn this._length;\n});\n\n/**\n* Returns a new array with each element being the result of a provided callback function.\n*\n* @name map\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {Function} fcn - callback function\n* @param {*} [thisArg] - callback function execution context\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} first argument must be a function\n* @returns {BooleanArray} new boolean array\n*\n* @example\n* function invert( v ) {\n* return !v;\n* }\n*\n* var arr = new BooleanArray( 3 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( true, 2 );\n*\n* var out = arr.map( invert );\n* // returns \n*\n* var z = out.get( 0 );\n* // returns false\n*\n* z = out.get( 1 );\n* // returns true\n*\n* z = out.get( 2 );\n* // returns false\n*/\nsetReadOnly( BooleanArray.prototype, 'map', function map( fcn, thisArg ) {\n\tvar outbuf;\n\tvar out;\n\tvar buf;\n\tvar i;\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tif ( !isFunction( fcn ) ) {\n\t\tthrow new TypeError( 'invalid argument. First argument must be a function. Value: `%s`.', fcn );\n\t}\n\tbuf = this._buffer;\n\tout = new this.constructor( this._length );\n\toutbuf = out._buffer; // eslint-disable-line no-underscore-dangle\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\toutbuf[ i ] = Boolean( fcn.call( thisArg, Boolean( buf[ i ] ), i, this ) );\n\t}\n\treturn out;\n});\n\n/**\n* Applies a provided callback function to each element of the array, in order, passing in the return value from the calculation on the preceding element and returning the accumulated result upon completion.\n*\n* @name reduce\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {Function} reducer - callback function\n* @param {*} [initialValue] - initial value\n* @throws {TypeError} `this` must be a boolean array\n* @throws {Error} if not provided an initial value, the array must have at least one element\n* @returns {*} accumulated result\n*\n* @example\n* function reducer( acc, v ) {\n* if ( v ) {\n* return acc + 1;\n* }\n* return acc;\n* }\n*\n* var arr = new BooleanArray( 3 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( true, 2 );\n*\n* var out = arr.reduce( reducer, 0 );\n* // returns 2\n*/\nsetReadOnly( BooleanArray.prototype, 'reduce', function reduce( reducer, initialValue ) {\n\tvar buf;\n\tvar len;\n\tvar acc;\n\tvar i;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tif ( !isFunction( reducer ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', reducer ) );\n\t}\n\tbuf = this._buffer;\n\tlen = this._length;\n\tif ( arguments.length > 1 ) {\n\t\tacc = initialValue;\n\t\ti = 0;\n\t} else {\n\t\tif ( len === 0 ) {\n\t\t\tthrow new Error( 'invalid operation. If not provided an initial value, an array must contain at least one element.' );\n\t\t}\n\t\tacc = Boolean( buf[ 0 ] );\n\t\ti = 1;\n\t}\n\tfor ( ; i < len; i++ ) {\n\t\tacc = reducer( acc, Boolean( buf[ i ] ), i, this );\n\t}\n\treturn acc;\n});\n\n/**\n* Applies a provided callback function to each element of the array, in reverse order, passing in the return value from the calculation on the preceding element and returning the accumulated result upon completion.\n*\n* @name reduceRight\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {Function} reducer - callback function\n* @param {*} [initialValue] - initial value\n* @throws {TypeError} `this` must be a boolean array\n* @throws {Error} if not provided an initial value, the array must have at least one element\n* @returns {*} accumulated result\n*\n* @example\n* function reducer( acc, v ) {\n* if ( v ) {\n* return acc + 1;\n* }\n* return acc;\n* }\n*\n* var arr = new BooleanArray( 3 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( true, 2 );\n*\n* var out = arr.reduceRight( reducer, 0 );\n* // returns 2\n*/\nsetReadOnly( BooleanArray.prototype, 'reduceRight', function reduceRight( reducer, initialValue ) {\n\tvar buf;\n\tvar len;\n\tvar acc;\n\tvar i;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tif ( !isFunction( reducer ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', reducer ) );\n\t}\n\tbuf = this._buffer;\n\tlen = this._length;\n\tif ( arguments.length > 1 ) {\n\t\tacc = initialValue;\n\t\ti = len - 1;\n\t} else {\n\t\tif ( len === 0 ) {\n\t\t\tthrow new Error( 'invalid operation. If not provided an initial value, an array must contain at least one element.' );\n\t\t}\n\t\tacc = Boolean( buf[ len-1 ] );\n\t\ti = len - 2;\n\t}\n\tfor ( ; i >= 0; i-- ) {\n\t\tacc = reducer( acc, Boolean( buf[ i ] ), i, this );\n\t}\n\treturn acc;\n});\n\n/**\n* Reverses an array in-place.\n*\n* @name reverse\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @throws {TypeError} `this` must be a boolean array\n* @returns {BooleanArray} reversed array\n*\n* @example\n* var arr = new BooleanArray( 3 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( false, 2 );\n*\n* var out = arr.reverse();\n* // returns \n*\n* var v = out.get( 0 );\n* // returns false\n*\n* v = out.get( 1 );\n* // returns false\n*\n* v = out.get( 2 );\n* // returns true\n*/\nsetReadOnly( BooleanArray.prototype, 'reverse', function reverse() {\n\tvar buf;\n\tvar tmp;\n\tvar len;\n\tvar N;\n\tvar i;\n\tvar j;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tbuf = this._buffer;\n\tlen = this._length;\n\tN = floor( len / 2 );\n\tfor ( i = 0; i < N; i++ ) {\n\t\tj = len - i - 1;\n\t\ttmp = buf[ i ];\n\t\tbuf[ i ] = buf[ j ];\n\t\tbuf[ j ] = tmp;\n\t}\n\treturn this;\n});\n\n/**\n* Sets an array element.\n*\n* ## Notes\n*\n* - When provided a typed array, we must check whether the source array shares the same buffer as the target array and whether the underlying memory overlaps. In particular, we are concerned with the following scenario:\n*\n* ```text\n* buf: ---------------------\n* src: ---------------------\n* ```\n*\n* In the above, as we copy values from `src`, we will overwrite values in the `src` view, resulting in duplicated values copied into the end of `buf`, which is not intended. Hence, to avoid overwriting source values, we must **copy** source values to a temporary array.\n*\n* In the other overlapping scenario,\n*\n* ```text\n* buf: ---------------------\n* src: ---------------------\n* ```\n*\n* by the time we begin copying into the overlapping region, we are copying from the end of `src`, a non-overlapping region, which means we don't run the risk of copying copied values, rather than the original `src` values, as intended.\n*\n* @name set\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {(Collection|BooleanArray|*)} value - value(s)\n* @param {NonNegativeInteger} [i=0] - element index at which to start writing values\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} index argument must be a nonnegative integer\n* @throws {RangeError} index argument is out-of-bounds\n* @throws {RangeError} target array lacks sufficient storage to accommodate source values\n* @returns {void}\n*\n* @example\n* var arr = new BooleanArray( 10 );\n*\n* var v = arr.get( 0 );\n* // returns false\n*\n* arr.set( [ true, false ], 0 );\n*\n* v = arr.get( 0 );\n* // returns true\n*/\nsetReadOnly( BooleanArray.prototype, 'set', function set( value ) {\n\tvar sbuf;\n\tvar idx;\n\tvar buf;\n\tvar tmp;\n\tvar N;\n\tvar i;\n\tvar j;\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tbuf = this._buffer;\n\tif ( arguments.length > 1 ) {\n\t\tidx = arguments[ 1 ];\n\t\tif ( !isNonNegativeInteger( idx ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Index argument must be a nonnegative integer. Value: `%s`.', idx ) );\n\t\t}\n\t} else {\n\t\tidx = 0;\n\t}\n\tif ( isCollection( value ) ) {\n\t\tN = value.length;\n\t\tif ( idx+N > this._length ) {\n\t\t\tthrow new RangeError( 'invalid arguments. Target array lacks sufficient storage to accommodate source values.' );\n\t\t}\n\t\tif ( isBooleanArray( value ) ) {\n\t\t\tsbuf = value._buffer; // eslint-disable-line no-underscore-dangle\n\t\t} else {\n\t\t\tsbuf = value;\n\t\t}\n\t\t// Check for overlapping memory...\n\t\tj = buf.byteOffset + (idx*BYTES_PER_ELEMENT);\n\t\tif (\n\t\t\tsbuf.buffer === buf.buffer &&\n\t\t\t(\n\t\t\t\tsbuf.byteOffset < j &&\n\t\t\t\tsbuf.byteOffset+sbuf.byteLength > j\n\t\t\t)\n\t\t) {\n\t\t\t// We need to copy source values...\n\t\t\ttmp = new Uint8Array( sbuf.length );\n\t\t\tfor ( i = 0; i < sbuf.length; i++ ) {\n\t\t\t\ttmp[ i ] = sbuf[ i ]; // TODO: handle accessor arrays\n\t\t\t}\n\t\t\tsbuf = tmp;\n\t\t}\n\t\tfor ( i = 0; i < N; idx++, i++ ) {\n\t\t\tbuf[ idx ] = ( sbuf[ i ] ) ? 1 : 0;\n\t\t}\n\t\treturn;\n\t}\n\tif ( idx >= this._length ) {\n\t\tthrow new RangeError( format( 'invalid argument. Index argument is out-of-bounds. Value: `%u`.', idx ) );\n\t}\n\tbuf[ idx ] = ( value ) ? 1 : 0;\n});\n\n/**\n* Copies a portion of a typed array to a new typed array.\n*\n* @name slice\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {integer} [begin] - start index (inclusive)\n* @param {integer} [end] - end index (exclusive)\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} first argument must be integer\n* @throws {TypeError} second argument must be integer\n* @returns {BooleanArray} boolean array\n*\n* @example\n* var arr = new BooleanArray( 5 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( true, 2 );\n* arr.set( false, 3 );\n* arr.set( true, 4 );\n*\n* var out = arr.slice();\n* // returns \n*\n* var len = out.length;\n* // returns 5\n*\n* var bool = out.get( 0 );\n* // returns true\n*\n* bool = out.get( len-1 );\n* // returns true\n*\n* out = arr.slice( 1, -2 );\n* // returns \n*\n* len = out.length;\n* // returns 2\n*\n* bool = out.get( 0 );\n* // returns false\n*\n* bool = out.get( len-1 );\n* // returns true\n*/\nsetReadOnly( BooleanArray.prototype, 'slice', function slice( begin, end ) {\n\tvar outlen;\n\tvar outbuf;\n\tvar out;\n\tvar buf;\n\tvar len;\n\tvar i;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tbuf = this._buffer;\n\tlen = this._length;\n\tif ( arguments.length === 0 ) {\n\t\tbegin = 0;\n\t\tend = len;\n\t} else {\n\t\tif ( !isInteger( begin ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. First argument must be an integer. Value: `%s`.', begin ) );\n\t\t}\n\t\tif ( begin < 0 ) {\n\t\t\tbegin += len;\n\t\t\tif ( begin < 0 ) {\n\t\t\t\tbegin = 0;\n\t\t\t}\n\t\t}\n\t\tif ( arguments.length === 1 ) {\n\t\t\tend = len;\n\t\t} else {\n\t\t\tif ( !isInteger( end ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an integer. Value: `%s`.', end ) );\n\t\t\t}\n\t\t\tif ( end < 0 ) {\n\t\t\t\tend += len;\n\t\t\t\tif ( end < 0 ) {\n\t\t\t\t\tend = 0;\n\t\t\t\t}\n\t\t\t} else if ( end > len ) {\n\t\t\t\tend = len;\n\t\t\t}\n\t\t}\n\t}\n\tif ( begin < end ) {\n\t\toutlen = end - begin;\n\t} else {\n\t\toutlen = 0;\n\t}\n\tout = new this.constructor( outlen );\n\toutbuf = out._buffer; // eslint-disable-line no-underscore-dangle\n\tfor ( i = 0; i < outlen; i++ ) {\n\t\toutbuf[ i ] = buf[ i+begin ];\n\t}\n\treturn out;\n});\n\n/**\n* Tests whether at least one element in an array passes a test implemented by a predicate function.\n*\n* @name some\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {Function} predicate - predicate function\n* @param {*} [thisArg] - predicate function execution context\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} first argument must be a function\n* @returns {boolean} boolean indicating whether at least one element passes a test\n*\n* @example\n* function predicate( v ) {\n* return v === true;\n* }\n*\n* var arr = new BooleanArray( 3 );\n*\n* arr.set( false, 0 );\n* arr.set( true, 1 );\n* arr.set( false, 2 );\n*\n* var bool = arr.some( predicate );\n* // returns true\n*/\nsetReadOnly( BooleanArray.prototype, 'some', function some( predicate, thisArg ) {\n\tvar buf;\n\tvar i;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tif ( !isFunction( predicate ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', predicate ) );\n\t}\n\tbuf = this._buffer;\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tif ( predicate.call( thisArg, Boolean( buf[ i ] ), i, this ) ) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n});\n\n/**\n* Sorts an array in-place.\n*\n* @name sort\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {Function} [compareFcn] - comparison function\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} first argument must be a function\n* @returns {BooleanArray} sorted array\n*\n* @example\n* function compare( a, b ) {\n* if ( a === false ) {\n* if ( b === false ) {\n* return 0;\n* }\n* return 1;\n* }\n* if ( b === true ) {\n* return 0;\n* }\n* return -1;\n* }\n*\n* var arr = new BooleanArray( 3 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( true, 2 );\n*\n* arr.sort( compare );\n*\n* var v = arr.get( 0 );\n* // returns true\n*\n* v = arr.get( 1 );\n* // returns true\n*\n* v = arr.get( 2 );\n* // returns false\n*/\nsetReadOnly( BooleanArray.prototype, 'sort', function sort( compareFcn ) {\n\tvar buf;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tbuf = this._buffer;\n\tif ( arguments.length === 0 ) {\n\t\tbuf.sort();\n\t\treturn this;\n\t}\n\tif ( !isFunction( compareFcn ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', compareFcn ) );\n\t}\n\tbuf.sort( compare );\n\treturn this;\n\n\t/**\n\t* Comparison function for sorting.\n\t*\n\t* @private\n\t* @param {boolean} a - first boolean value for comparison\n\t* @param {boolean} b - second boolean value for comparison\n\t* @returns {number} comparison result\n\t*/\n\tfunction compare( a, b ) {\n\t\treturn compareFcn( Boolean( a ), Boolean( b ) );\n\t}\n});\n\n/**\n* Creates a new typed array view over the same underlying `ArrayBuffer` and with the same underlying data type as the host array.\n*\n* @name subarray\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {integer} [begin] - start index (inclusive)\n* @param {integer} [end] - end index (exclusive)\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} first argument must be an integer\n* @throws {TypeError} second argument must be an integer\n* @returns {BooleanArray} subarray\n*\n* @example\n* var arr = new BooleanArray( 5 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( true, 2 );\n* arr.set( false, 3 );\n* arr.set( true, 4 );\n*\n* var subarr = arr.subarray();\n* // returns \n*\n* var len = subarr.length;\n* // returns 5\n*\n* var bool = subarr.get( 0 );\n* // returns true\n*\n* bool = subarr.get( len-1 );\n* // returns true\n*\n* subarr = arr.subarray( 1, -2 );\n* // returns \n*\n* len = subarr.length;\n* // returns 2\n*\n* bool = subarr.get( 0 );\n* // returns false\n*\n* bool = subarr.get( len-1 );\n* // returns true\n*/\nsetReadOnly( BooleanArray.prototype, 'subarray', function subarray( begin, end ) {\n\tvar offset;\n\tvar buf;\n\tvar len;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tbuf = this._buffer;\n\tlen = this._length;\n\tif ( arguments.length === 0 ) {\n\t\tbegin = 0;\n\t\tend = len;\n\t} else {\n\t\tif ( !isInteger( begin ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. First argument must be an integer. Value: `%s`.', begin ) );\n\t\t}\n\t\tif ( begin < 0 ) {\n\t\t\tbegin += len;\n\t\t\tif ( begin < 0 ) {\n\t\t\t\tbegin = 0;\n\t\t\t}\n\t\t}\n\t\tif ( arguments.length === 1 ) {\n\t\t\tend = len;\n\t\t} else {\n\t\t\tif ( !isInteger( end ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an integer. Value: `%s`.', end ) );\n\t\t\t}\n\t\t\tif ( end < 0 ) {\n\t\t\t\tend += len;\n\t\t\t\tif ( end < 0 ) {\n\t\t\t\t\tend = 0;\n\t\t\t\t}\n\t\t\t} else if ( end > len ) {\n\t\t\t\tend = len;\n\t\t\t}\n\t\t}\n\t}\n\tif ( begin >= len ) {\n\t\tlen = 0;\n\t\toffset = buf.byteLength;\n\t} else if ( begin >= end ) {\n\t\tlen = 0;\n\t\toffset = buf.byteOffset + ( begin*BYTES_PER_ELEMENT );\n\t} else {\n\t\tlen = end - begin;\n\t\toffset = buf.byteOffset + ( begin*BYTES_PER_ELEMENT );\n\t}\n\treturn new this.constructor( buf.buffer, offset, ( len < 0 ) ? 0 : len );\n});\n\n/**\n* Serializes an array as a locale-specific string.\n*\n* @name toLocaleString\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {(string|Array)} [locales] - locale identifier(s)\n* @param {Object} [options] - configuration options\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} first argument must be a string or an array of strings\n* @throws {TypeError} options argument must be an object\n* @returns {string} string representation\n*\n* @example\n* var arr = new BooleanArray( 3 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( true, 2 );\n*\n* var str = arr.toLocaleString();\n* // returns 'true,false,true'\n*/\nsetReadOnly( BooleanArray.prototype, 'toLocaleString', function toLocaleString( locales, options ) {\n\tvar opts;\n\tvar loc;\n\tvar out;\n\tvar buf;\n\tvar i;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tif ( arguments.length === 0 ) {\n\t\tloc = [];\n\t} else if ( isString( locales ) || isStringArray( locales ) ) {\n\t\tloc = locales;\n\t} else {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a string or an array of strings. Value: `%s`.', locales ) );\n\t}\n\tif ( arguments.length < 2 ) {\n\t\topts = {};\n\t} else if ( isObject( options ) ) {\n\t\topts = options;\n\t} else {\n\t\tthrow new TypeError( format( 'invalid argument. Options argument must be an object. Value: `%s`.', options ) );\n\t}\n\tbuf = this._buffer;\n\tout = [];\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tout.push( Boolean( buf[ i ] ).toLocaleString( loc, opts ) );\n\t}\n\treturn out.join( ',' );\n});\n\n/**\n* Returns a new typed array containing the elements in reversed order.\n*\n* @name toReversed\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @throws {TypeError} `this` must be a boolean array\n* @returns {BooleanArray} reversed array\n*\n* @example\n* var arr = new BooleanArray( 3 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( false, 2 );\n*\n* var out = arr.toReversed();\n* // returns \n*\n* var v = out.get( 0 );\n* // returns false\n*\n* v = out.get( 1 );\n* // returns false\n*\n* v = out.get( 2 );\n* // returns true\n*/\nsetReadOnly( BooleanArray.prototype, 'toReversed', function toReversed() {\n\tvar outbuf;\n\tvar out;\n\tvar len;\n\tvar buf;\n\tvar i;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tlen = this._length;\n\tout = new this.constructor( len );\n\tbuf = this._buffer;\n\toutbuf = out._buffer; // eslint-disable-line no-underscore-dangle\n\tfor ( i = 0; i < len; i++ ) {\n\t\toutbuf[ i ] = buf[ len - i - 1 ];\n\t}\n\treturn out;\n});\n\n/**\n* Returns a new typed array containing the elements in sorted order.\n*\n* @name toSorted\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {Function} [compareFcn] - comparison function\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} first argument must be a function\n* @returns {BooleanArray} sorted array\n*\n* @example\n* function compare( a, b ) {\n* if ( a === false ) {\n* if ( b === false ) {\n* return 0;\n* }\n* return 1;\n* }\n* if ( b === true ) {\n* return 0;\n* }\n* return -1;\n* }\n*\n* var arr = new BooleanArray( 3 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( true, 2 );\n*\n* var out = arr.sort( compare );\n* // returns \n*\n* var v = out.get( 0 );\n* // returns true\n*\n* v = out.get( 1 );\n* // returns true\n*\n* v = out.get( 2 );\n* // returns false\n*/\nsetReadOnly( BooleanArray.prototype, 'toSorted', function toSorted( compareFcn ) {\n\tvar outbuf;\n\tvar out;\n\tvar len;\n\tvar buf;\n\tvar i;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tlen = this._length;\n\tout = new this.constructor( len );\n\tbuf = this._buffer;\n\toutbuf = out._buffer; // eslint-disable-line no-underscore-dangle\n\tfor ( i = 0; i < len; i++ ) {\n\t\toutbuf[ i ] = buf[ i ];\n\t}\n\tif ( arguments.length === 0 ) {\n\t\toutbuf.sort();\n\t\treturn out;\n\t}\n\tif ( !isFunction( compareFcn ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', compareFcn ) );\n\t}\n\toutbuf.sort( compare );\n\treturn out;\n\n\t/**\n\t* Comparison function for sorting.\n\t*\n\t* @private\n\t* @param {boolean} a - first boolean value for comparison\n\t* @param {boolean} b - second boolean value for comparison\n\t* @returns {number} comparison result\n\t*/\n\tfunction compare( a, b ) {\n\t\treturn compareFcn( Boolean( a ), Boolean( b ) );\n\t}\n});\n\n/**\n* Serializes an array as a string.\n*\n* @name toString\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @throws {TypeError} `this` must be a boolean array\n* @returns {string} string representation\n*\n* @example\n* var arr = new BooleanArray( 3 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( true, 2 );\n*\n* var str = arr.toString();\n* // returns 'true,false,true'\n*/\nsetReadOnly( BooleanArray.prototype, 'toString', function toString() {\n\tvar out;\n\tvar buf;\n\tvar i;\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tout = [];\n\tbuf = this._buffer;\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tif ( buf[i] ) {\n\t\t\tout.push( 'true' );\n\t\t} else {\n\t\t\tout.push( 'false' );\n\t\t}\n\t}\n\treturn out.join( ',' );\n});\n\n/**\n* Returns an iterator for iterating over each value in a typed array.\n*\n* @name values\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @throws {TypeError} `this` must be a boolean array\n* @returns {Iterator} iterator\n*\n* @example\n* var arr = new BooleanArray( 2 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n*\n* var iter = arr.values();\n*\n* var v = iter.next().value;\n* // returns true\n*\n* v = iter.next().value;\n* // returns false\n*\n* var bool = iter.next().done;\n* // returns true\n*/\nsetReadOnly( BooleanArray.prototype, 'values', function values() {\n\tvar iter;\n\tvar self;\n\tvar len;\n\tvar FLG;\n\tvar buf;\n\tvar i;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tself = this;\n\tbuf = this._buffer;\n\tlen = this._length;\n\n\t// Initialize an iteration index:\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\tif ( ITERATOR_SYMBOL ) {\n\t\tsetReadOnly( iter, ITERATOR_SYMBOL, 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 >= len ) {\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': Boolean( buf[ 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 self.values();\n\t}\n});\n\n/**\n* Returns a new typed array with the element at a provided index replaced with a provided value.\n*\n* @name with\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {integer} index - element index\n* @param {boolean} value - new value\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} first argument must be an integer\n* @throws {RangeError} index argument is out-of-bounds\n* @throws {TypeError} second argument must be a boolean\n* @returns {BooleanArray} new typed array\n*\n* @example\n* var arr = new BooleanArray( 3 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( true, 2 );\n*\n* var out = arr.with( 0, false );\n* // returns \n*\n* var v = out.get( 0 );\n* // returns false\n*/\nsetReadOnly( BooleanArray.prototype, 'with', function copyWith( index, value ) {\n\tvar buf;\n\tvar out;\n\tvar len;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tif ( !isInteger( index ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an integer. Value: `%s`.', index ) );\n\t}\n\tlen = this._length;\n\tif ( index < 0 ) {\n\t\tindex += len;\n\t}\n\tif ( index < 0 || index >= len ) {\n\t\tthrow new RangeError( format( 'invalid argument. Index argument is out-of-bounds. Value: `%s`.', index ) );\n\t}\n\tif ( !isBoolean( value ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be a boolean. Value: `%s`.', value ) );\n\t}\n\tout = new this.constructor( this._buffer );\n\tbuf = out._buffer; // eslint-disable-line no-underscore-dangle\n\tif ( value ) {\n\t\tbuf[ index ] = 1;\n\t} else {\n\t\tbuf[ index ] = 0;\n\t}\n\treturn out;\n});\n\n\n// EXPORTS //\n\nexport default BooleanArray;\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 Boolean from '@stdlib/boolean/ctor';\n\n\n// MAIN //\n\n/**\n* Fills an output array with \"boolean\" values.\n*\n* @private\n* @param {Uint8Array} buf - output array\n* @param {Array} arr - input array\n* @returns {Uint8Array} output array\n*/\nfunction fromArray( buf, arr ) {\n\tvar len;\n\tvar i;\n\n\tlen = arr.length;\n\tfor ( i = 0; i < len; i++ ) {\n\t\tbuf[ i ] = Boolean( arr[ i ] );\n\t}\n\treturn buf;\n}\n\n\n// EXPORTS //\n\nexport default fromArray;\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 Boolean from '@stdlib/boolean/ctor';\n\n\n// MAIN //\n\n/**\n* Returns an array of iterated values.\n*\n* @private\n* @param {Object} it - iterator\n* @param {Function} clbk - callback to invoke for each iterated value\n* @param {*} thisArg - invocation context\n* @returns {Array} output array\n*/\nfunction fromIteratorMap( it, clbk, thisArg ) {\n\tvar out;\n\tvar v;\n\tvar i;\n\n\tout = [];\n\ti = -1;\n\twhile ( true ) {\n\t\tv = it.next();\n\t\tif ( v.done ) {\n\t\t\tbreak;\n\t\t}\n\t\ti += 1;\n\t\tout.push( Boolean( clbk.call( thisArg, v.value, i ) ) );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default fromIteratorMap;\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 Float64Array from '@stdlib/array/float64';\nimport Float32Array from '@stdlib/array/float32';\nimport Uint32Array from '@stdlib/array/uint32';\nimport Int32Array from '@stdlib/array/int32';\nimport Uint16Array from '@stdlib/array/uint16';\nimport Int16Array from '@stdlib/array/int16';\nimport Uint8Array from '@stdlib/array/uint8';\nimport Uint8ClampedArray from '@stdlib/array/uint8c';\nimport Int8Array from '@stdlib/array/int8';\nimport Complex64Array from '@stdlib/array/complex64';\nimport Complex128Array from '@stdlib/array/complex128';\nimport BooleanArray from '@stdlib/array/bool';\n\n\n// MAIN //\n\n// Note: order should match `dtypes` order\nvar CTORS = [\n\tFloat64Array,\n\tFloat32Array,\n\tInt32Array,\n\tUint32Array,\n\tInt16Array,\n\tUint16Array,\n\tInt8Array,\n\tUint8Array,\n\tUint8ClampedArray,\n\tComplex64Array,\n\tComplex128Array,\n\tBooleanArray\n];\n\n\n// EXPORTS //\n\nexport default CTORS;\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// MAIN //\n\n// Note: order should match `ctors` order\nvar DTYPES = [\n\t'float64',\n\t'float32',\n\t'int32',\n\t'uint32',\n\t'int16',\n\t'uint16',\n\t'int8',\n\t'uint8',\n\t'uint8c',\n\t'complex64',\n\t'complex128',\n\t'bool'\n];\n\n\n// EXPORTS //\n\nexport default DTYPES;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isBuffer from '@stdlib/assert/is-buffer';\nimport isArray from '@stdlib/assert/is-array';\nimport constructorName from '@stdlib/utils/constructor-name';\nimport ctor2dtype from './ctor2dtype.js';\nimport CTORS from './ctors.js';\nimport DTYPES from './dtypes.js';\n\n\n// VARIABLES //\n\nvar NTYPES = DTYPES.length;\n\n\n// MAIN //\n\n/**\n* Returns the data type of an ndarray data buffer.\n*\n* @param {*} value - input value\n* @returns {(string|null)} data type\n*\n* @example\n* var dt = dtype( [ 1, 2, 3 ] );\n* // returns 'generic'\n*\n* var dt = dtype( 'beep' );\n* // returns null\n*/\nfunction dtype( value ) {\n\tvar i;\n\tif ( isArray( value ) ) {\n\t\treturn 'generic';\n\t}\n\tif ( isBuffer( value ) ) {\n\t\treturn 'binary';\n\t}\n\tfor ( i = 0; i < NTYPES; i++ ) {\n\t\tif ( value instanceof CTORS[ i ] ) {\n\t\t\treturn DTYPES[ i ];\n\t\t}\n\t}\n\t// If the above failed, fall back to a more robust (and significantly slower) means for resolving underlying data types:\n\treturn ctor2dtype[ constructorName( value ) ] || null;\n}\n\n\n// EXPORTS //\n\nexport default dtype;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 main = ( typeof Buffer === 'function' ) ? Buffer : null; // eslint-disable-line stdlib/require-globals\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* Buffer constructor.\n*\n* @module @stdlib/buffer/ctor\n*\n* @example\n* import ctor from '@stdlib/buffer/ctor';\n*\n* var b = new ctor( [ 1, 2, 3, 4 ] );\n* // returns \n*/\n\n// MODULES //\n\nimport hasNodeBufferSupport from '@stdlib/assert/has-node-buffer-support';\nimport main from './main.js';\nimport polyfill from './polyfill.js';\n\n\n// MAIN //\n\nvar ctor;\nif ( hasNodeBufferSupport() ) {\n\tctor = main;\n} else {\n\tctor = polyfill;\n}\n\n\n// EXPORTS //\n\nexport default ctor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 ctor = require( 'buffer' ).Buffer; // eslint-disable-line stdlib/require-globals\n\n\n// EXPORTS //\n\nexport default ctor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isBuffer from './../../is-buffer';\nimport GlobalBuffer from './buffer.js';\n\n\n// MAIN //\n\n/**\n* Tests for native `Buffer` support.\n*\n* @returns {boolean} boolean indicating if an environment has `Buffer` support\n*\n* @example\n* var bool = hasNodeBufferSupport();\n* // returns \n*/\nfunction hasNodeBufferSupport() {\n\tvar bool;\n\tvar b;\n\n\tif ( typeof GlobalBuffer !== 'function' ) {\n\t\treturn false;\n\t}\n\t// Test basic support...\n\ttry {\n\t\tif ( typeof GlobalBuffer.from === 'function' ) {\n\t\t\tb = GlobalBuffer.from( [ 1, 2, 3, 4 ] );\n\t\t} else {\n\t\t\tb = new GlobalBuffer( [ 1, 2, 3, 4 ] ); // Note: this is deprecated behavior starting in Node v6 (see https://nodejs.org/api/buffer.html#buffer_new_buffer_array)\n\t\t}\n\t\tbool = (\n\t\t\tisBuffer( b ) &&\n\t\t\tb[ 0 ] === 1 &&\n\t\t\tb[ 1 ] === 2 &&\n\t\t\tb[ 2 ] === 3 &&\n\t\t\tb[ 3 ] === 4\n\t\t);\n\t} catch ( err ) { // eslint-disable-line no-unused-vars\n\t\tbool = false;\n\t}\n\treturn bool;\n}\n\n\n// EXPORTS //\n\nexport default hasNodeBufferSupport;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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: write (browser) polyfill\n\n// MAIN //\n\n/**\n* Buffer constructor.\n*\n* @throws {Error} not implemented\n*/\nfunction polyfill() {\n\tthrow new Error( 'not implemented' );\n}\n\n\n// EXPORTS //\n\nexport default polyfill;\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 Buffer from '@stdlib/buffer/ctor';\nimport Float64Array from '@stdlib/array/float64';\nimport Float32Array from '@stdlib/array/float32';\nimport Int16Array from '@stdlib/array/int16';\nimport Int32Array from '@stdlib/array/int32';\nimport Int8Array from '@stdlib/array/int8';\nimport Uint16Array from '@stdlib/array/uint16';\nimport Uint32Array from '@stdlib/array/uint32';\nimport Uint8Array from '@stdlib/array/uint8';\nimport Uint8ClampedArray from '@stdlib/array/uint8c';\nimport Complex64Array from '@stdlib/array/complex64';\nimport Complex128Array from '@stdlib/array/complex128';\nimport BooleanArray from '@stdlib/array/bool';\n\n\n// MAIN //\n\n// Mapping from data types to underlying buffer constructors...\nvar ctors = {\n\t'binary': Buffer,\n\t'float64': Float64Array,\n\t'float32': Float32Array,\n\t'generic': Array, // TODO: replace with `stdlib` pkg\n\t'int16': Int16Array,\n\t'int32': Int32Array,\n\t'int8': Int8Array,\n\t'uint16': Uint16Array,\n\t'uint32': Uint32Array,\n\t'uint8': Uint8Array,\n\t'uint8c': Uint8ClampedArray,\n\t'complex64': Complex64Array,\n\t'complex128': Complex128Array,\n\t'bool': BooleanArray\n};\n\n\n// EXPORTS //\n\nexport default ctors;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Allocate a buffer having a specified number of bytes.\n*\n* @module @stdlib/buffer/alloc-unsafe\n*\n* @example\n* import allocUnsafe from '@stdlib/buffer/alloc-unsafe';\n*\n* var buf = allocUnsafe( 10 );\n* // returns \n*/\n\n// MODULES //\n\nimport hasAllocUnsafe from './has_alloc_unsafe.js';\nimport main from './main.js';\nimport polyfill from './polyfill.js';\n\n\n// MAIN //\n\nvar allocUnsafe;\nif ( hasAllocUnsafe ) {\n\tallocUnsafe = main;\n} else {\n\tallocUnsafe = polyfill;\n}\n\n\n// EXPORTS //\n\nexport default allocUnsafe;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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 Buffer from './../../ctor';\n\n\n// MAIN //\n\nvar bool = isFunction( Buffer.allocUnsafe );\n\n\n// EXPORTS //\n\nexport default bool;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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 '@stdlib/assert/is-nonnegative-integer';\nimport format from '@stdlib/string/format';\nimport Buffer from './../../ctor';\n\n\n// MAIN //\n\n/**\n* Allocates a buffer having a specified number of bytes.\n*\n* ## Notes\n*\n* - The underlying memory of returned `Buffer` instances is not initialized. Memory contents are unknown and may contain sensitive data.\n* - When the size is less than half the pool size (specified on the `Buffer` constructor), memory is allocated from the `Buffer` pool for faster allocation of new `Buffer` instances.\n*\n* @param {NonNegativeInteger} size - number of bytes to allocate\n* @throws {TypeError} must provide a nonnegative integer\n* @returns {Buffer} new `Buffer` instance\n*\n* @example\n* var buf = allocUnsafe( 10 );\n* // returns \n*/\nfunction allocUnsafe( size ) {\n\tif ( !isNonNegativeInteger( size ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide a nonnegative integer. Value: `%s`.', size ) );\n\t}\n\treturn Buffer.allocUnsafe( size );\n}\n\n\n// EXPORTS //\n\nexport default allocUnsafe;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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 '@stdlib/assert/is-nonnegative-integer';\nimport format from '@stdlib/string/format';\nimport Buffer from './../../ctor';\n\n\n// MAIN //\n\n/**\n* Allocates a buffer having a specified number of bytes.\n*\n* ## Notes\n*\n* - The underlying memory of returned `Buffer` instances is not initialized. Memory contents are unknown and may contain sensitive data.\n* - When the size is less than half the pool size (specified on the `Buffer` constructor), memory is allocated from the `Buffer` pool for faster allocation of new `Buffer` instances.\n*\n* @param {NonNegativeInteger} size - number of bytes to allocate\n* @throws {TypeError} must provide a nonnegative integer\n* @returns {Buffer} new `Buffer` instance\n*\n* @example\n* var buf = allocUnsafe( 10 );\n* // returns \n*/\nfunction allocUnsafe( size ) {\n\tif ( !isNonNegativeInteger( size ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide a nonnegative integer. Value: `%s`.', size ) );\n\t}\n\treturn new Buffer( size );\n}\n\n\n// EXPORTS //\n\nexport default allocUnsafe;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport bufferCtors from './../../../base/buffer-ctors';\nimport allocUnsafe from '@stdlib/buffer/alloc-unsafe';\nimport zeros from './zeros.js';\n\n\n// FUNCTIONS //\n\n/**\n* Returns a zero-filled generic array.\n*\n* @private\n* @param {NonNegativeInteger} size - buffer size\n* @returns {Array} zero-filled generic array\n*/\nfunction generic( size ) {\n\tvar buf;\n\tvar i;\n\n\tbuf = [];\n\tfor ( i = 0; i < size; i++ ) {\n\t\tbuf.push( 0 );\n\t}\n\treturn buf;\n}\n\n/**\n* Returns a zero-filled binary buffer.\n*\n* @private\n* @param {NonNegativeInteger} size - buffer size\n* @returns {Buffer} zero-filled binary buffer\n*/\nfunction binary( size ) {\n\treturn zeros( allocUnsafe( size ) );\n}\n\n/**\n* Returns a typed array.\n*\n* @private\n* @param {string} dtype - data type\n* @param {NonNegativeInteger} size - buffer size\n* @returns {(TypedArray|null)} typed array\n*/\nfunction typedarray( dtype, size ) {\n\tvar ctor = bufferCtors( dtype );\n\tif ( ctor ) {\n\t\treturn new ctor( size );\n\t}\n\treturn null;\n}\n\n\n// MAIN //\n\n/**\n* Returns a contiguous linear ndarray data buffer.\n*\n* @param {string} dtype - data type\n* @param {NonNegativeInteger} size - buffer size\n* @returns {(Array|TypedArray|Buffer|null)} data buffer\n*\n* @example\n* var buf = buffer( 'float64', 3 );\n* // returns [ 0.0, 0.0, 0.0 ]\n*/\nfunction buffer( dtype, size ) {\n\tif ( dtype === 'generic' ) {\n\t\treturn generic( size );\n\t}\n\tif ( dtype === 'binary' ) {\n\t\treturn binary( size );\n\t}\n\treturn typedarray( dtype, size );\n}\n\n\n// EXPORTS //\n\nexport default buffer;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport table from './ctors.js';\n\n\n// MAIN //\n\n/**\n* Returns an ndarray data buffer constructor.\n*\n* @param {string} dtype - data type\n* @returns {(Function|null)} data buffer constructor or null\n*\n* @example\n* var ctor = ctors( 'float64' );\n* // returns \n*\n* @example\n* var ctor = ctors( 'float' );\n* // returns null\n*/\nfunction ctors( dtype ) {\n\treturn table[ dtype ] || null;\n}\n\n\n// EXPORTS //\n\nexport default ctors;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Fills an array-like object with zeros.\n*\n* @private\n* @param {(Array|TypedArray|Buffer)} v - array-like object to fill\n* @returns {(Array|TypedArray|Buffer)} input value\n*\n* @example\n* var arr = zeros( new Array( 2 ) );\n* // returns [ 0, 0 ]\n*/\nfunction zeros( v ) {\n\tvar i;\n\tfor ( i = 0; i < v.length; i++ ) {\n\t\tv[ i ] = 0;\n\t}\n\treturn v;\n}\n\n\n// EXPORTS //\n\nexport default zeros;\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// MAIN //\n\n/**\n* Copies the elements of an indexed array-like object to a new \"generic\" array.\n*\n* @param {Collection} x - input array\n* @returns {Array} output array\n*\n* @example\n* var out = copy( [ 1, 2, 3 ] );\n* // returns [ 1, 2, 3 ]\n*/\nfunction copy( x ) {\n\tvar out;\n\tvar len;\n\tvar i;\n\n\tlen = x.length;\n\tout = [];\n\tfor ( i = 0; i < len; i++ ) {\n\t\tout.push( x[ i ] ); // use `Array#push` to ensure \"fast\" elements\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default copy;\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 copyIndexed from '@stdlib/array/base/copy-indexed';\n\n\n// MAIN //\n\n/**\n* Returns the shape of a provided ndarray.\n*\n* @param {ndarrayLike} x - input ndarray\n* @param {boolean} copy - boolean indicating whether to explicitly copy the value assigned to the input ndarray's `shape` property\n* @returns {NonNegativeIntegerArray} shape\n*\n* @example\n* import zeros from '@stdlib/ndarray/zeros';\n*\n* var out = shape( zeros( [ 3, 3, 3 ] ), false );\n* // returns [ 3, 3, 3 ]\n*/\nfunction shape( x, copy ) {\n\tvar sh = x.shape;\n\tif ( copy ) {\n\t\treturn copyIndexed( sh );\n\t}\n\treturn sh;\n}\n\n\n// EXPORTS //\n\nexport default shape;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// FUNCTIONS //\n\n/**\n* Generates a stride array from an array shape (row-major).\n*\n* @private\n* @param {NonNegativeIntegerArray} shape - array shape\n* @returns {Array} array strides\n*/\nfunction rowmajor( shape ) {\n\tvar ndims;\n\tvar out;\n\tvar s;\n\tvar i;\n\n\tndims = shape.length;\n\tout = [];\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\tout.push( 0 );\n\t}\n\ts = 1;\n\tfor ( i = ndims-1; i >= 0; i-- ) {\n\t\tout[ i ] = s;\n\t\ts *= shape[ i ];\n\t}\n\treturn out;\n}\n\n/**\n* Generates a stride array from an array shape (column-major).\n*\n* @private\n* @param {NonNegativeIntegerArray} shape - array shape\n* @returns {Array} array strides\n*/\nfunction columnmajor( shape ) {\n\tvar out;\n\tvar s;\n\tvar i;\n\n\tout = [];\n\ts = 1;\n\tfor ( i = 0; i < shape.length; i++ ) {\n\t\tout.push( s );\n\t\ts *= shape[ i ];\n\t}\n\treturn out;\n}\n\n\n// MAIN //\n\n/**\n* Generates a stride array from an array shape.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {string} order - specifies whether an array is row-major (C-style) or column-major (Fortran-style)\n* @returns {Array} array strides\n*\n* @example\n* var s = shape2strides( [ 3, 2 ], 'row-major' );\n* // returns [ 2, 1 ]\n*\n* s = shape2strides( [ 3, 2 ], 'column-major' );\n* // returns [ 1, 3 ]\n*/\nfunction shape2strides( shape, order ) {\n\tif ( order === 'column-major' ) {\n\t\treturn columnmajor( shape );\n\t}\n\treturn rowmajor( shape );\n}\n\n\n// EXPORTS //\n\nexport default shape2strides;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Generate a stride array from an array shape.\n*\n* @module @stdlib/ndarray/base/shape2strides\n*\n* @example\n* import shape2strides from '@stdlib/ndarray/base/shape2strides';\n*\n* var strides = shape2strides( [ 3, 2 ], 'row-major' );\n* // returns [ 2, 1 ]\n*\n* strides = shape2strides( [ 3, 2 ], 'column-major' );\n* // returns [ 1, 3 ]\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// FUNCTIONS //\n\n/**\n* Generates a stride array from an array shape (row-major).\n*\n* @private\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {(Array|TypedArray|Object)} out - output object\n* @returns {(Array|TypedArray|Object)} array strides\n*/\nfunction rowmajor( shape, out ) {\n\tvar ndims;\n\tvar s;\n\tvar i;\n\n\tndims = shape.length;\n\ts = 1;\n\tfor ( i = ndims-1; i >= 0; i-- ) {\n\t\tout[ i ] = s;\n\t\ts *= shape[ i ];\n\t}\n\treturn out;\n}\n\n/**\n* Generates a stride array from an array shape (column-major).\n*\n* @private\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {(Array|TypedArray|Object)} out - output object\n* @returns {(Array|TypedArray|Object)} array strides\n*/\nfunction columnmajor( shape, out ) {\n\tvar s;\n\tvar i;\n\n\ts = 1;\n\tfor ( i = 0; i < shape.length; i++ ) {\n\t\tout[ i ] = s;\n\t\ts *= shape[ i ];\n\t}\n\treturn out;\n}\n\n\n// MAIN //\n\n/**\n* Generates a stride array from an array shape.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {string} order - specifies whether an array is row-major (C-style) or column-major (Fortran-style)\n* @param {(Array|TypedArray|Object)} out - output object\n* @returns {(Array|TypedArray|Object)} array strides\n*\n* @example\n* var strides = [ 0, 0 ];\n*\n* var out = shape2strides( [ 3, 2 ], 'row-major', strides );\n* // returns [ 2, 1 ]\n*\n* var bool = ( out === strides );\n* // returns true\n*\n* out = shape2strides( [ 3, 2 ], 'column-major', strides );\n* // returns [ 1, 3 ]\n*/\nfunction shape2strides( shape, order, out ) {\n\tif ( order === 'column-major' ) {\n\t\treturn columnmajor( shape, out );\n\t}\n\treturn rowmajor( shape, out );\n}\n\n\n// EXPORTS //\n\nexport default shape2strides;\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 shape2strides from './../../../base/shape2strides';\nimport copyIndexed from '@stdlib/array/base/copy-indexed';\n\n\n// VARIABLES //\n\nvar ROW_MAJOR = 'row-major';\n\n\n// MAIN //\n\n/**\n* Returns the strides of a provided ndarray.\n*\n* @param {ndarrayLike} x - input ndarray\n* @param {boolean} copy - boolean indicating whether to explicitly copy the value assigned to the input ndarray's `strides` property\n* @returns {IntegerArray} strides\n*\n* @example\n* import zeros from '@stdlib/ndarray/zeros';\n*\n* var out = strides( zeros( [ 3, 3, 3 ] ), false );\n* // returns [ 9, 3, 1 ]\n*/\nfunction strides( x, copy ) {\n\tvar ord;\n\tvar sh;\n\tvar st;\n\n\tst = x.strides;\n\tif ( typeof st !== 'object' || st === null ) {\n\t\tsh = x.shape;\n\t\tif ( sh.length === 0 ) {\n\t\t\treturn [ 0 ];\n\t\t}\n\t\tord = x.order;\n\t\tif ( typeof ord !== 'string' ) {\n\t\t\tord = ROW_MAJOR;\n\t\t}\n\t\treturn shape2strides( sh, ord );\n\t}\n\tif ( copy ) {\n\t\treturn copyIndexed( st );\n\t}\n\treturn st;\n}\n\n\n// EXPORTS //\n\nexport default strides;\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 strides2offset from './../../../base/strides2offset';\n\n\n// MAIN //\n\n/**\n* Returns the index offset specifying the underlying buffer index of the first iterated ndarray element.\n*\n* @param {ndarrayLike} x - input ndarray\n* @returns {NonNegativeInteger} index offset\n*\n* @example\n* import zeros from '@stdlib/ndarray/zeros';\n*\n* var n = offset( zeros( [ 3, 3, 3 ] ) );\n* // returns 0\n*/\nfunction offset( x ) {\n\tvar st;\n\tvar sh;\n\tvar o;\n\n\to = x.offset;\n\tif ( typeof o === 'number' ) {\n\t\treturn o;\n\t}\n\tsh = x.shape;\n\tif ( sh.length === 0 ) {\n\t\treturn 0;\n\t}\n\tst = x.strides;\n\tif ( typeof st !== 'object' || st === null ) {\n\t\treturn 0;\n\t}\n\treturn strides2offset( sh, st );\n}\n\n\n// EXPORTS //\n\nexport default offset;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 index offset which specifies the location of the first indexed value in a multidimensional array based on a stride array.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {IntegerArray} strides - stride array\n* @returns {NonNegativeInteger} offset - offset\n*\n* @example\n* var shape = [ 2, 3, 10 ];\n* var strides = [ 30, -10, 1 ];\n*\n* var offset = strides2offset( shape, strides );\n* // returns 20\n*/\nfunction strides2offset( shape, strides ) {\n\tvar offset;\n\tvar ndims;\n\tvar i;\n\n\tndims = shape.length;\n\toffset = 0;\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\tif ( strides[ i ] < 0 ) {\n\t\t\t// Note that, since the stride is negative, this operation increments, not decrements, the offset...\n\t\t\toffset -= strides[ i ] * ( shape[ i ]-1 );\n\t\t}\n\t}\n\treturn offset;\n}\n\n\n// EXPORTS //\n\nexport default strides2offset;\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 strides2order from './../../../base/strides2order';\n\n\n// VARIABLES //\n\nvar ROW_MAJOR = 'row-major';\nvar COLUMN_MAJOR = 'column-major';\n\n\n// MAIN //\n\n/**\n* Returns the layout order of a provided ndarray.\n*\n* @param {ndarrayLike} x - input ndarray\n* @returns {(string|null)} layout order\n*\n* @example\n* import zeros from '@stdlib/ndarray/zeros';\n*\n* var x = zeros( [ 3, 3, 3 ], {\n* 'order': 'row-major'\n* });\n*\n* var out = order( x );\n* // returns 'row-major'\n*/\nfunction order( x ) {\n\tvar st;\n\tvar o;\n\n\to = x.order;\n\tif ( typeof o === 'string' ) {\n\t\treturn o;\n\t}\n\t// Try to infer the layout order from the strides array...\n\tst = x.strides;\n\tif ( typeof st !== 'object' || st === null ) {\n\t\treturn ROW_MAJOR; // WARNING: default to row-major for ndarray-like objects lacking strides. This may or may not be accurate, and we're defaulting to row-major here based on the belief that row-major is more likely given that, e.g., JavaScript arrays are similar to C arrays (i.e., stored in row-major order).\n\t}\n\to = strides2order( st );\n\tif ( o === 1 || o === 3 ) {\n\t\treturn ROW_MAJOR; // for o == 3 (both row- and column-major; e.g., one-dimensional ndarrays), default to row-major\n\t}\n\tif ( o === 2 ) {\n\t\treturn COLUMN_MAJOR;\n\t}\n\t// o === 0\n\tif ( x.shape.length === 0 ) {\n\t\treturn ROW_MAJOR; // default to row-major for zero-dimensional ndarrays\n\t}\n\t// Case: mixed strides (e.g., [ 2, 3, 1 ] )\n\treturn null;\n}\n\n\n// EXPORTS //\n\nexport default order;\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* Returns the data type of a provided ndarray.\n*\n* @param {ndarrayLike} x - input ndarray\n* @returns {string} data type\n*\n* @example\n* import zeros from '@stdlib/ndarray/zeros';\n*\n* var x = zeros( [ 3, 3, 3 ], {\n* 'dtype': 'float64'\n* });\n*\n* var dt = dtype( x );\n* // returns 'float64'\n*/\nfunction dtype( x ) {\n\treturn x.dtype;\n}\n\n\n// EXPORTS //\n\nexport default dtype;\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* Returns the underlying data buffer of a provided ndarray.\n*\n* @param {ndarrayLike} x - input ndarray\n* @returns {Collection} underlying data buffer\n*\n* @example\n* import zeros from '@stdlib/ndarray/zeros';\n*\n* var x = zeros( [ 3, 3, 3 ], {\n* 'dtype': 'float64'\n* });\n*\n* var out = data( x );\n* // returns \n*/\nfunction data( x ) {\n\treturn x.data;\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 copy from '@stdlib/array/base/copy-indexed';\nimport ndarray from './../../../base/ctor';\nimport getShape from './../../../base/shape';\nimport getStrides from './../../../base/strides';\nimport getOffset from './../../../base/offset';\nimport getOrder from './../../../base/order';\nimport getDType from './../../../base/dtype';\nimport getData from './../../../base/data-buffer';\nimport format from '@stdlib/string/format';\n\n\n// MAIN //\n\n/**\n* Broadcasts an ndarray to a specified shape.\n*\n* ## Notes\n*\n* - The returned array is a view on the input array data buffer. The view is typically **not** contiguous. As more than one element of a returned view may refer to the same memory location, writing to the view may affect multiple elements. If you need to write to the returned array, copy the array before performing operations which may mutate elements.\n*\n* @param {ndarray} arr - input array\n* @param {NonNegativeIntegerArray} shape - desired shape\n* @throws {Error} input array cannot have more dimensions than the desired shape\n* @throws {Error} input array dimension sizes must be `1` or equal to the corresponding dimension in the provided shape\n* @throws {Error} input array and desired shape must be broadcast compatible\n* @returns {ndarray} broadcasted array\n*\n* @example\n* import array from '@stdlib/ndarray/array';\n*\n* var x = array( [ [ 1, 2 ], [ 3, 4 ] ] );\n* // returns \n*\n* var shx = x.shape;\n* // returns [ 2, 2 ]\n*\n* var y = broadcastArray( x, [ 3, 2, 2 ] );\n* // returns \n*\n* var shy = y.shape;\n* // returns [ 3, 2, 2 ]\n*\n* var v = y.get( 0, 0, 0 );\n* // returns 1\n*\n* v = y.get( 0, 0, 1 );\n* // returns 2\n*\n* v = y.get( 1, 0, 0 );\n* // returns 1\n*\n* v = y.get( 1, 1, 0 );\n* // returns 3\n*\n* v = y.get( 2, 0, 0 );\n* // returns 1\n*\n* v = y.get( 2, 1, 1 );\n* // returns 4\n*\n* @example\n* import array from '@stdlib/ndarray/array';\n*\n* var x = array( [ [ 1, 2 ], [ 3, 4 ] ] );\n* // returns \n*\n* var y = broadcastArray( x, [ 3, 2 ] );\n* // throws \n*/\nfunction broadcastArray( arr, shape ) {\n\tvar strides;\n\tvar dim;\n\tvar sh;\n\tvar st;\n\tvar N;\n\tvar M;\n\tvar d;\n\tvar i;\n\tvar j;\n\n\tN = shape.length;\n\tsh = getShape( arr, false );\n\tM = sh.length;\n\tif ( N < M ) {\n\t\tthrow new Error( 'invalid argument. Cannot broadcast an array to a shape having fewer dimensions. Arrays can only be broadcasted to shapes having the same or more dimensions.' );\n\t}\n\t// Initialize a strides array...\n\tstrides = [];\n\tfor ( i = 0; i < N; i++ ) {\n\t\tstrides.push( 0 );\n\t}\n\t// Determine the output array strides...\n\tst = getStrides( arr, false );\n\tfor ( i = N-1; i >= 0; i-- ) {\n\t\tj = M - N + i;\n\t\tif ( j < 0 ) {\n\t\t\t// Prepended singleton dimension; stride is zero...\n\t\t\tcontinue;\n\t\t}\n\t\td = sh[ j ];\n\t\tdim = shape[ i ];\n\t\tif ( dim !== 0 && dim < d ) {\n\t\t\tthrow new Error( format( 'invalid argument. Input array cannot be broadcast to the specified shape, as the specified shape has a dimension whose size is less than the size of the corresponding dimension in the input array. Array shape: (%s). Desired shape: (%s). Dimension: %u.', copy( sh ).join( ', ' ), copy( shape ).join( ', ' ), i ) );\n\t\t}\n\t\tif ( d === dim ) {\n\t\t\tstrides[ i ] = st[ j ];\n\t\t} else if ( d === 1 ) {\n\t\t\t// In order to broadcast dimensions, we set the stride for that dimension to zero...\n\t\t\tstrides[ i ] = 0;\n\t\t} else {\n\t\t\t// At this point, we know that `dim > d` and that `d` does not equal `1` (e.g., `dim=3` and `d=2`); in which case, the shapes are considered incompatible (even for desired shapes which are multiples of array dimensions, as might be desired when \"tiling\" an array; e.g., `dim=4` and `d=2`)...\n\t\t\tthrow new Error( format( 'invalid argument. Input array and the specified shape are broadcast incompatible. Array shape: (%s). Desired shape: (%s). Dimension: %u.', copy( sh ).join( ', ' ), copy( shape ).join( ', ' ), i ) );\n\t\t}\n\t}\n\treturn ndarray( getDType( arr ), getData( arr ), copy( shape ), strides, getOffset( arr ), getOrder( arr ) ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default broadcastArray;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isArrayLike from './../../../is-array-like';\nimport format from '@stdlib/string/format';\n\n\n// MAIN //\n\n/**\n* Returns a function which tests if every element in an array-like object passes a test condition.\n*\n* @param {Function} predicate - function to apply\n* @throws {TypeError} must provide a function\n* @returns {Function} an array-like object function\n*\n* @example\n* import isOdd from '@stdlib/assert/is-odd';\n*\n* var arr1 = [ 1, 3, 5, 7 ];\n* var arr2 = [ 3, 5, 8 ];\n*\n* var validate = arraylikefcn( isOdd );\n*\n* var bool = validate( arr1 );\n* // returns true\n*\n* bool = validate( arr2 );\n* // returns false\n*/\nfunction arraylikefcn( predicate ) {\n\tif ( typeof predicate !== 'function' ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide a function. Value: `%s`.', predicate ) );\n\t}\n\treturn every;\n\n\t/**\n\t* Tests if every element in an array-like object passes a test condition.\n\t*\n\t* @private\n\t* @param {*} value - value to test\n\t* @returns {boolean} boolean indicating whether a value is an array-like object for which all elements pass a test condition\n\t*/\n\tfunction every( value ) {\n\t\tvar len;\n\t\tvar i;\n\t\tif ( !isArrayLike( value ) ) {\n\t\t\treturn false;\n\t\t}\n\t\tlen = value.length;\n\t\tif ( len === 0 ) {\n\t\t\treturn false;\n\t\t}\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tif ( predicate( value[ i ] ) === false ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t\treturn true;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default arraylikefcn;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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 '@stdlib/math/base/assert/is-integer';\nimport MAX_LENGTH from '@stdlib/constants/array/max-array-length';\n\n\n// MAIN //\n\n/**\n* Tests if a value is array-like.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is array-like\n*\n* @example\n* var bool = isArrayLike( [] );\n* // returns true\n*\n* @example\n* var bool = isArrayLike( {'length':10} );\n* // returns true\n*/\nfunction isArrayLike( value ) {\n\treturn (\n\t\tvalue !== void 0 &&\n\t\tvalue !== null &&\n\t\ttypeof value !== 'function' &&\n\t\ttypeof value.length === 'number' &&\n\t\tisInteger( value.length ) &&\n\t\tvalue.length >= 0 &&\n\t\tvalue.length <= MAX_LENGTH\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isArrayLike;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Test if a value is an array-like object containing only nonnegative integers.\n*\n* @module @stdlib/assert/is-nonnegative-integer-array\n*\n* @example\n* import isNonNegativeIntegerArray from '@stdlib/assert/is-nonnegative-integer-array';\n*\n* var bool = isNonNegativeIntegerArray( [ 3.0, new Number(3.0) ] );\n* // returns true\n*\n* bool = isNonNegativeIntegerArray( [ 3.0, '3.0' ] );\n* // returns false\n*\n* @example\n* import { primitives as isNonNegativeIntegerArray } from '@stdlib/assert/is-nonnegative-integer-array';\n*\n* var bool = isNonNegativeIntegerArray( [ 1.0, 0.0, 10.0 ] );\n* // returns true\n*\n* bool = isNonNegativeIntegerArray( [ 3.0, new Number(1.0) ] );\n* // returns false\n*\n* @example\n* import { objects as isNonNegativeIntegerArray } from '@stdlib/assert/is-nonnegative-integer-array';\n*\n* var bool = isNonNegativeIntegerArray( [ new Number(3.0), new Number(1.0) ] );\n* // returns true\n*\n* bool = isNonNegativeIntegerArray( [ 1.0, 0.0, 10.0 ] );\n* // returns false\n*/\n\n// MODULES //\n\nimport isNonNegativeInteger from './../../is-nonnegative-integer';\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport arrayfun from './../../tools/array-like-function';\n\n\n// VARIABLES //\n\nvar isPrimitiveArray = arrayfun( isNonNegativeInteger.isPrimitive );\nvar isObjectArray = arrayfun( isNonNegativeInteger.isObject );\n\n\n// MAIN //\n\nvar isNonNegativeIntegerArray = arrayfun( isNonNegativeInteger );\nsetReadOnly( isNonNegativeIntegerArray, 'primitives', isPrimitiveArray );\nsetReadOnly( isNonNegativeIntegerArray, 'objects', isObjectArray );\n\n\n// EXPORTS //\n\nexport default isNonNegativeIntegerArray;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Test if a value is an array-like object containing only integers.\n*\n* @module @stdlib/assert/is-integer-array\n*\n* @example\n* import isIntegerArray from '@stdlib/assert/is-integer-array';\n*\n* var bool = isIntegerArray( [ -3.0, new Number(0.0), 2.0 ] );\n* // returns true\n*\n* bool = isIntegerArray( [ -3.0, '3.0' ] );\n* // returns false\n*\n* @example\n* import { primitives as isIntegerArray } from '@stdlib/assert/is-integer-array';\n*\n* var bool = isIntegerArray( [ -1.0, 10.0 ] );\n* // returns true\n*\n* bool = isIntegerArray( [ -1.0, 0.0, 5.0 ] );\n* // returns true\n*\n* bool = isIntegerArray( [ -3.0, new Number(-1.0) ] );\n* // returns false\n*\n* @example\n* import { objects as isIntegerArray } from '@stdlib/assert/is-integer-array';\n*\n* var bool = isIntegerArray( [ new Number(1.0), new Number(3.0) ] );\n* // returns true\n*\n* bool = isIntegerArray( [ -1.0, 0.0, 3.0 ] );\n* // returns false\n*\n* bool = isIntegerArray( [ 3.0, new Number(-1.0) ] );\n* // returns false\n*/\n\n// MODULES //\n\nimport isInteger from './../../is-integer';\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport arrayfun from './../../tools/array-like-function';\n\n\n// VARIABLES //\n\nvar isPrimitiveArray = arrayfun( isInteger.isPrimitive );\nvar isObjectArray = arrayfun( isInteger.isObject );\n\n\n// MAIN //\n\nvar isIntegerArray = arrayfun( isInteger );\nsetReadOnly( isIntegerArray, 'primitives', isPrimitiveArray );\nsetReadOnly( isIntegerArray, 'objects', isObjectArray );\n\n\n// EXPORTS //\n\nexport default isIntegerArray;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport orders from './../../../../orders';\n\n\n// VARIABLES //\n\nvar ORDERS = orders();\nvar len = ORDERS.length;\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is an ndarray order.\n*\n* @param {*} v - value to test\n* @returns {boolean} boolean indicating whether an input value is an ndarray order\n*\n* @example\n* var bool = isOrder( 'row-major' );\n* // returns true\n*\n* bool = isOrder( 'column-major' );\n* // returns true\n*\n* bool = isOrder( 'foo' );\n* // returns false\n*/\nfunction isOrder( v ) {\n\tvar i;\n\tfor ( i = 0; i < len; i++ ) {\n\t\tif ( v === ORDERS[ i ] ) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default isOrder;\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// VARIABLES //\n\nvar TYPE = 'function';\n\n\n// MAIN //\n\n/**\n* Tests if an array-like object supports the accessor (get/set) protocol.\n*\n* @param {Object} value - value to test\n* @returns {boolean} boolean indicating whether a value is an accessor array\n*\n* @example\n* import Complex128Array from '@stdlib/array/complex128';\n*\n* var bool = isAccessorArray( new Complex128Array( 10 ) );\n* // returns true\n*\n* @example\n* var bool = isAccessorArray( [] );\n* // returns false\n*/\nfunction isAccessorArray( value ) {\n\treturn ( typeof value.get === TYPE && typeof value.set === TYPE ); // eslint-disable-line valid-typeof\n}\n\n\n// EXPORTS //\n\nexport default isAccessorArray;\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// MAIN //\n\n// Mapping from array constructors to data types...\nvar ctor2dtypes = {\n\t'Float32Array': 'float32',\n\t'Float64Array': 'float64',\n\t'Array': 'generic',\n\t'Int16Array': 'int16',\n\t'Int32Array': 'int32',\n\t'Int8Array': 'int8',\n\t'Uint16Array': 'uint16',\n\t'Uint32Array': 'uint32',\n\t'Uint8Array': 'uint8',\n\t'Uint8ClampedArray': 'uint8c',\n\t'Complex64Array': 'complex64',\n\t'Complex128Array': 'complex128',\n\t'BooleanArray': 'bool'\n};\n\n\n// EXPORTS //\n\nexport default ctor2dtypes;\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 Float64Array from './../../float64';\nimport Float32Array from './../../float32';\nimport Uint32Array from './../../uint32';\nimport Int32Array from './../../int32';\nimport Uint16Array from './../../uint16';\nimport Int16Array from './../../int16';\nimport Uint8Array from './../../uint8';\nimport Uint8ClampedArray from './../../uint8c';\nimport Int8Array from './../../int8';\nimport Complex64Array from './../../complex64';\nimport Complex128Array from './../../complex128';\nimport BooleanArray from './../../bool';\n\n\n// MAIN //\n\n// Note: order should match `dtypes` order\nvar CTORS = [\n\tFloat64Array,\n\tFloat32Array,\n\tInt32Array,\n\tUint32Array,\n\tInt16Array,\n\tUint16Array,\n\tInt8Array,\n\tUint8Array,\n\tUint8ClampedArray,\n\tComplex64Array,\n\tComplex128Array,\n\tBooleanArray\n];\n\n\n// EXPORTS //\n\nexport default CTORS;\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// MAIN //\n\n// Note: order should match `ctors` order\nvar DTYPES = [\n\t'float64',\n\t'float32',\n\t'int32',\n\t'uint32',\n\t'int16',\n\t'uint16',\n\t'int8',\n\t'uint8',\n\t'uint8c',\n\t'complex64',\n\t'complex128',\n\t'bool'\n];\n\n\n// EXPORTS //\n\nexport default DTYPES;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isBuffer from '@stdlib/assert/is-buffer';\nimport isArray from '@stdlib/assert/is-array';\nimport constructorName from '@stdlib/utils/constructor-name';\nimport ctor2dtype from './ctor2dtype.js';\nimport CTORS from './ctors.js';\nimport DTYPES from './dtypes.js';\n\n\n// VARIABLES //\n\nvar NTYPES = DTYPES.length;\n\n\n// MAIN //\n\n/**\n* Returns the data type of an array.\n*\n* @param {*} value - input value\n* @returns {(string|null)} data type\n*\n* @example\n* var dt = dtype( [ 1, 2, 3 ] );\n* // returns 'generic'\n*\n* var dt = dtype( 'beep' );\n* // returns null\n*/\nfunction dtype( value ) {\n\tvar i;\n\tif ( isArray( value ) ) {\n\t\treturn 'generic';\n\t}\n\tif ( isBuffer( value ) ) {\n\t\treturn null;\n\t}\n\tfor ( i = 0; i < NTYPES; i++ ) {\n\t\tif ( value instanceof CTORS[ i ] ) {\n\t\t\treturn DTYPES[ i ];\n\t\t}\n\t}\n\t// If the above failed, fall back to a more robust (and significantly slower) means for resolving underlying data types:\n\treturn ctor2dtype[ constructorName( value ) ] || null;\n}\n\n\n// EXPORTS //\n\nexport default dtype;\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 isCollection from '@stdlib/assert/is-collection';\nimport isAccessorArray from './../../../../base/assert/is-accessor-array';\nimport accessorGetter from './../../../../base/accessor-getter';\nimport dtype from './../../../../dtype';\nimport format from '@stdlib/string/format';\n\n\n// MAIN //\n\n/**\n* Returns a function to tests if an array contains a provided search value.\n*\n* @param {Collection} x - input array\n* @throws {TypeError} must provide an array-like object\n* @returns {Function} function to test if an array contains a search value\n*\n* @example\n* var contains = factory( [ 1, 2, 3 ] );\n* // returns \n*\n* var bool = contains( 2 );\n* // returns true\n*/\nfunction factory( x ) {\n\tvar get;\n\tvar len;\n\tvar dt;\n\n\tif ( !isCollection( x ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide an array-like object. Value: `%s`.', x ) );\n\t}\n\t// Resolve the input array data type:\n\tdt = dtype( x );\n\n\t// Resolve an accessor for retrieving input array elements:\n\tif ( isAccessorArray( x ) ) {\n\t\tget = accessorGetter( dt );\n\t}\n\t// Get the number of elements over which to iterate:\n\tlen = x.length;\n\n\treturn ( get === void 0 ) ? contains : accessors;\n\t/**\n\t* Tests if an array contains a provided search value.\n\t*\n\t* @private\n\t* @param {*} value - search value\n\t* @returns {boolean} boolean indicating if an array contains a search value\n\t*\n\t* @example\n\t* var out = contains( [ 1, 2, 3 ], 2 );\n\t* // returns true\n\t*/\n\tfunction contains( value ) {\n\t\tvar i;\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tif ( x[ i ] === value ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\t/**\n\t* Tests if an array contains a provided search value.\n\t*\n\t* @private\n\t* @param {*} value - search value\n\t* @returns {boolean} boolean indicating if an array contains a search value\n\t*/\n\tfunction accessors( value ) {\n\t\tvar i;\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tif ( get( x, i ) === value ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default factory;\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/**\n* Test if an array contains a provided search value.\n*\n* @module @stdlib/array/base/assert/contains\n*\n* @example\n* import contains from '@stdlib/array/base/assert/contains';\n*\n* var out = contains( [ 1, 2, 3 ], 2 );\n* // returns true\n*/\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// exports: { \"factory\": \"main.factory\" }\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 isAccessorArray from './../../../../base/assert/is-accessor-array';\nimport accessorGetter from './../../../../base/accessor-getter';\nimport getter from './../../../../base/getter';\nimport dtype from './../../../../dtype';\n\n\n// MAIN //\n\n/**\n* Tests if an array contains a provided search value.\n*\n* @param {Collection} x - input array\n* @param {*} value - search value\n* @returns {boolean} boolean indicating if an array contains a search value\n*\n* @example\n* var out = contains( [ 1, 2, 3 ], 2 );\n* // returns true\n*/\nfunction contains( x, value ) {\n\tvar len;\n\tvar get;\n\tvar dt;\n\tvar i;\n\n\t// Resolve the input array data type:\n\tdt = dtype( x );\n\n\t// Resolve an accessor for retrieving input array elements:\n\tif ( isAccessorArray( x ) ) {\n\t\tget = accessorGetter( dt );\n\t} else {\n\t\tget = getter( dt );\n\t}\n\t// Get the number of elements over which to iterate:\n\tlen = x.length;\n\n\t// Loop over the elements...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tif ( get( x, i ) === value ) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default contains;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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 contains } from '@stdlib/array/base/assert/contains';\nimport dtypes from './../../../../dtypes';\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is a supported ndarray data type.\n*\n* @name isDataType\n* @type {Function}\n* @param {*} v - value to test\n* @returns {boolean} boolean indicating whether an input value is a supported ndarray data type\n*\n* @example\n* var bool = isDataType( 'binary' );\n* // returns true\n*\n* bool = isDataType( 'float32' );\n* // returns true\n*\n* bool = isDataType( 'float64' );\n* // returns true\n*\n* bool = isDataType( 'generic' );\n* // returns true\n*\n* bool = isDataType( 'int16' );\n* // returns true\n*\n* bool = isDataType( 'int32' );\n* // returns true\n*\n* bool = isDataType( 'int8' );\n* // returns true\n*\n* bool = isDataType( 'uint16' );\n* // returns true\n*\n* bool = isDataType( 'uint32' );\n* // returns true\n*\n* bool = isDataType( 'uint8' );\n* // returns true\n*\n* bool = isDataType( 'uint8c' );\n* // returns true\n*\n* bool = isDataType( 'foo' );\n* // returns false\n*/\nvar isDataType = contains( dtypes() );\n\n\n// EXPORTS //\n\nexport default isDataType;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 number of elements in an array.\n*\n* @param {(NonNegativeIntegerArray|EmptyArray)} shape - array shape\n* @returns {NonNegativeInteger} number of elements\n*\n* @example\n* var n = numel( [ 3, 3, 3 ] );\n* // returns 27\n*/\nfunction numel( shape ) {\n\tvar ndims;\n\tvar n;\n\tvar i;\n\n\tndims = shape.length;\n\tif ( ndims === 0 ) {\n\t\treturn 0;\n\t}\n\tn = 1;\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\tn *= shape[ i ];\n\t}\n\treturn n;\n}\n\n\n// EXPORTS //\n\nexport default numel;\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// MAIN //\n\n/**\n* Returns default ndarray settings.\n*\n* @returns {Object} defaults\n*\n* @example\n* var o = defaults();\n* // returns {...}\n*/\nfunction defaults() {\n\treturn {\n\t\t// Data types:\n\t\t'dtypes': {\n\t\t\t'default': 'float64',\n\t\t\t'numeric': 'float64',\n\t\t\t'real': 'float64',\n\t\t\t'floating_point': 'float64',\n\t\t\t'real_floating_point': 'float64',\n\t\t\t'complex_floating_point': 'complex128',\n\t\t\t'integer': 'int32',\n\t\t\t'signed_integer': 'int32',\n\t\t\t'unsigned_integer': 'uint32',\n\t\t\t'boolean': 'bool'\n\t\t},\n\n\t\t// Memory layout:\n\t\t'order': 'row-major',\n\n\t\t// Casting mode:\n\t\t'casting': 'safe',\n\n\t\t// Index mode:\n\t\t'index_mode': 'throw'\n\t};\n}\n\n\n// EXPORTS //\n\nexport default defaults;\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 defaults from './main.js';\n\n\n// VARIABLES //\n\nvar DEFAULTS = defaults();\nvar HASH = {\n\t'dtypes.default': DEFAULTS.dtypes.default,\n\t'dtypes.numeric': DEFAULTS.dtypes.numeric,\n\t'dtypes.real': DEFAULTS.dtypes.real,\n\t'dtypes.floating_point': DEFAULTS.dtypes.floating_point,\n\t'dtypes.real_floating_point': DEFAULTS.dtypes.real_floating_point,\n\t'dtypes.complex_floating_point': DEFAULTS.dtypes.complex_floating_point,\n\t'dtypes.integer': DEFAULTS.dtypes.integer,\n\t'dtypes.signed_integer': DEFAULTS.dtypes.signed_integer,\n\t'dtypes.unsigned_integer': DEFAULTS.dtypes.unsigned_integer,\n\t'dtypes.boolean': DEFAULTS.dtypes.boolean,\n\t'order': DEFAULTS.order,\n\t'casting': DEFAULTS.casting,\n\t'index_mode': DEFAULTS.index_mode\n};\n\n\n// MAIN //\n\n/**\n* Returns a default ndarray setting.\n*\n* @param {string} name - setting name\n* @returns {*} default setting or null\n*\n* @example\n* var v = get( 'dtypes.default' );\n* // returns \n*/\nfunction get( name ) {\n\tvar v = HASH[ name ];\n\treturn ( v === void 0 ) ? null : v;\n}\n\n\n// EXPORTS //\n\nexport default get;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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* Tests that a value is a valid constructor.\n*\n* @private\n* @param {*} value - value to test\n* @returns {(Error|null)} error object or null\n*\n* @example\n* var ctor = function ctor() {};\n*\n* var err = validate( ctor );\n* // returns null\n*\n* err = validate( null );\n* // returns \n*/\nfunction validate( value ) {\n\tvar type = typeof value;\n\tif (\n\t\tvalue === null ||\n\t\t(type !== 'object' && type !== 'function')\n\t) {\n\t\treturn new TypeError( format( 'invalid argument. A provided constructor must be either an object (except null) or a function. Value: `%s`.', value ) );\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nexport default validate;\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/**\n* Return default ndarray settings.\n*\n* @module @stdlib/ndarray/defaults\n*\n* @example\n* import defaults from '@stdlib/ndarray/defaults';\n*\n* var o = defaults();\n* // returns {...}\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport get from './get.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'get', get );\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// EXPORTS //\n\nexport default Object.create;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// FUNCTIONS //\n\n/**\n* Dummy constructor.\n*\n* @private\n*/\nfunction Ctor() {\n\t// Empty...\n}\n\n\n// MAIN //\n\n/**\n* An `Object.create` shim for older JavaScript engines.\n*\n* @private\n* @param {Object} proto - prototype\n* @returns {Object} created object\n*\n* @example\n* var obj = createObject( Object.prototype );\n* // returns {}\n*/\nfunction createObject( proto ) {\n\tCtor.prototype = proto;\n\treturn new Ctor();\n}\n\n\n// EXPORTS //\n\nexport default createObject;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport builtin from './native.js';\nimport polyfill from './polyfill.js';\n\n\n// MAIN //\n\nvar createObject;\nif ( typeof builtin === 'function' ) {\n\tcreateObject = builtin;\n} else {\n\tcreateObject = polyfill;\n}\n\n\n// EXPORTS //\n\nexport default createObject;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Restricts an index to the interval `[0,max]`.\n*\n* @param {integer} idx - index\n* @param {NonNegativeInteger} max - maximum index\n* @returns {NonNegativeInteger} index\n*\n* @example\n* var idx = clampIndex( -1, 10 );\n* // returns 0\n*\n* idx = clampIndex( 15, 10 );\n* // returns 10\n*\n* idx = clampIndex( 5, 10 );\n* // returns 5\n*/\nfunction clampIndex( idx, max ) {\n\tif ( idx < 0 ) {\n\t\treturn 0;\n\t}\n\tif ( idx > max ) {\n\t\treturn max;\n\t}\n\treturn idx;\n}\n\n\n// EXPORTS //\n\nexport default clampIndex;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Wraps an index on the interval `[0,max]`.\n*\n* @param {integer} idx - index\n* @param {NonNegativeInteger} max - maximum index\n* @returns {NonNegativeInteger} index\n*\n* @example\n* var idx = wrapIndex( -1, 10 );\n* // returns 10\n*\n* idx = wrapIndex( 13, 10 );\n* // returns 2\n*\n* idx = wrapIndex( 6, 10 );\n* // returns 6\n*/\nfunction wrapIndex( idx, max ) {\n\tvar mp1 = max + 1;\n\tif ( idx < 0 ) {\n\t\tidx += mp1; // slight optimization to avoid modulo arithmetic when |idx| <= max+1\n\t\tif ( idx < 0 ) {\n\t\t\tidx %= mp1;\n\t\t\tif ( idx !== 0 ) {\n\t\t\t\tidx += mp1;\n\t\t\t}\n\t\t}\n\t\treturn idx;\n\t}\n\tif ( idx > max ) {\n\t\tidx -= mp1; // slight optimization to avoid modulo arithmetic when max+1 < idx <= 2*(max+1)\n\t\tif ( idx > max ) {\n\t\t\tidx %= mp1;\n\t\t}\n\t\treturn idx;\n\t}\n\treturn idx;\n}\n\n\n// EXPORTS //\n\nexport default wrapIndex;\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* Normalizes an index to the interval `[0,max]`.\n*\n* @param {integer} idx - index\n* @param {NonNegativeInteger} max - maximum index\n* @returns {integer} index\n*\n* @example\n* var idx = normalizeIndex( -2, 10 );\n* // returns 9\n*\n* idx = normalizeIndex( 15, 10 );\n* // returns -1\n*\n* idx = normalizeIndex( 5, 10 );\n* // returns 5\n*/\nfunction normalizeIndex( idx, max ) {\n\tif ( idx < 0 ) {\n\t\tidx += max + 1;\n\t\tif ( idx < 0 ) {\n\t\t\treturn -1;\n\t\t}\n\t\treturn idx;\n\t}\n\tif ( idx > max ) {\n\t\treturn -1;\n\t}\n\treturn idx;\n}\n\n\n// EXPORTS //\n\nexport default normalizeIndex;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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 contains } from '@stdlib/array/base/assert/contains';\nimport modes from './../../../../index-modes';\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is a supported ndarray index mode.\n*\n* @name isIndexMode\n* @type {Function}\n* @param {*} v - value to test\n* @returns {boolean} boolean indicating whether an input value is a supported ndarray index mode\n*\n* @example\n* var bool = isIndexMode( 'wrap' );\n* // returns true\n*\n* bool = isIndexMode( 'clamp' );\n* // returns true\n*\n* bool = isIndexMode( 'throw' );\n* // returns true\n*\n* bool = isIndexMode( 'foo' );\n* // returns false\n*/\nvar isIndexMode = contains( modes() );\n\n\n// EXPORTS //\n\nexport default isIndexMode;\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 clampIndex from './../../../base/clamp-index';\nimport wrapIndex from './../../../base/wrap-index';\nimport normalize from './../../../base/normalize-index';\nimport isIndexMode from './../../../base/assert/is-index-mode';\nimport format from '@stdlib/string/format';\n\n\n// VARIABLES //\n\nvar TABLE = {\n\t'wrap': wrapIndex,\n\t'clamp': clampIndex,\n\t'normalize': normalizeIndex,\n\t'throw': throwIfOutOfBounds\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an index if within bounds and throw an error otherwise.\n*\n* @private\n* @param {integer} idx - index\n* @param {NonNegativeInteger} max - maximum index\n* @throws {RangeError} index out-of-bounds\n* @returns {integer} index\n*\n* @example\n* var idx = throwIfOutOfBounds( 2, 9 );\n* // returns 2\n*\n* idx = throwIfOutOfBounds( 10, 9 );\n* // throws \n*\n* idx = throwIfOutOfBounds( -1, 9 );\n* // throws \n*/\nfunction throwIfOutOfBounds( idx, max ) {\n\tif ( idx < 0 || idx > max ) {\n\t\tthrow new RangeError( format( 'invalid argument. Index must resolve to a value on the interval: [0, %d]. Value: `%d`.', max, idx ) );\n\t}\n\treturn idx;\n}\n\n/**\n* Normalizes an index before performing a strict bounds check.\n*\n* @private\n* @param {integer} idx - index\n* @param {NonNegativeInteger} max - maximum index\n* @throws {RangeError} index out-of-bounds\n* @returns {integer} index\n*\n* @example\n* var idx = normalizeIndex( 1, 10 );\n* // returns 1\n*\n* idx = normalizeIndex( -4, 10 );\n* // returns 7\n*\n* idx = normalizeIndex( -100, 10 );\n* // throws \n*/\nfunction normalizeIndex( idx, max ) {\n\tvar index = normalize( idx, max );\n\tif ( index < 0 || index > max ) {\n\t\tthrow new RangeError( format( 'invalid argument. Index must resolve to a value on the interval: [0, %d]. Value: `%d`.', max, idx ) );\n\t}\n\treturn index;\n}\n\n\n// MAIN //\n\n/**\n* Returns a function for returning an index according to a provided index mode.\n*\n* @param {string} mode - specifies how to handle an out-of-bounds index\n* @throws {TypeError} first argument must be a recognized index mode\n* @returns {Function} function for returning an index\n*\n* @example\n* var ind = factory( 'clamp' );\n*\n* var idx = ind( 2, 9 );\n* // returns 2\n*\n* idx = ind( 10, 9 );\n* // returns 9\n*\n* idx = ind( -1, 9 );\n* // returns 0\n*\n* @example\n* var ind = factory( 'wrap' );\n*\n* var idx = ind( 2, 9 );\n* // returns 2\n*\n* idx = ind( 10, 9 );\n* // returns 0\n*\n* idx = ind( -1, 9 );\n* // returns 9\n*\n* @example\n* var ind = factory( 'throw' );\n*\n* var idx = ind( 2, 9 );\n* // returns 2\n*\n* idx = ind( 10, 9 );\n* // throws \n*\n* idx = ind( -1, 9 );\n* // throws \n*\n* @example\n* var ind = factory( 'normalize' );\n*\n* var idx = ind( 1, 10 );\n* // returns 1\n*\n* idx = ind( -4, 10 );\n* // returns 7\n*\n* idx = ind( -100, 10 );\n* // throws \n*/\nfunction factory( mode ) {\n\tif ( !isIndexMode( mode ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a recognized index mode. Value: `%s`.', mode ) );\n\t}\n\treturn TABLE[ mode ];\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// MODULES //\n\nimport clampIndex from './../../../base/clamp-index';\nimport wrapIndex from './../../../base/wrap-index';\nimport normalizeIndex from './../../../base/normalize-index';\nimport format from '@stdlib/string/format';\n\n\n// MAIN //\n\n/**\n* Returns an index given an index mode.\n*\n* @param {integer} idx - index\n* @param {NonNegativeInteger} max - maximum index\n* @param {string} mode - specifies how to handle an index outside the interval `[0,max]`\n* @throws {RangeError} index out-of-bounds\n* @returns {integer} index\n*\n* @example\n* var idx = ind( 2, 9, 'clamp' );\n* // returns 2\n*\n* idx = ind( 10, 9, 'clamp' );\n* // returns 9\n*\n* idx = ind( -1, 9, 'clamp' );\n* // returns 0\n*\n* @example\n* var idx = ind( 2, 9, 'wrap' );\n* // returns 2\n*\n* idx = ind( 10, 9, 'wrap' );\n* // returns 0\n*\n* idx = ind( -1, 9, 'wrap' );\n* // returns 9\n*\n* @example\n* var idx = ind( 2, 9, 'throw' );\n* // returns 2\n*\n* idx = ind( 10, 9, 'throw' );\n* // throws \n*\n* idx = ind( -1, 9, 'throw' );\n* // throws \n*\n* @example\n* var idx = ind( 1, 10, 'normalize' );\n* // returns 1\n*\n* idx = ind( -4, 10, 'normalize' );\n* // returns 7\n*\n* idx = ind( -100, 10, 'normalize' );\n* // throws \n*/\nfunction ind( idx, max, mode ) {\n\tvar index;\n\tif ( mode === 'clamp' ) {\n\t\treturn clampIndex( idx, max );\n\t}\n\tif ( mode === 'wrap' ) {\n\t\treturn wrapIndex( idx, max );\n\t}\n\tindex = idx;\n\tif ( mode === 'normalize' ) {\n\t\tindex = normalizeIndex( index, max );\n\t}\n\tif ( index < 0 || index > max ) {\n\t\tthrow new RangeError( format( 'invalid argument. Index must resolve to a value on the interval: [0, %d]. Value: `%d`.', max, idx ) );\n\t}\n\treturn index;\n}\n\n\n// EXPORTS //\n\nexport default ind;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 an index given an index mode.\n*\n* @module @stdlib/ndarray/base/ind\n*\n* @example\n* import ind from '@stdlib/ndarray/base/ind';\n*\n* var idx = ind( -1, 10, 'wrap' );\n* // returns 10\n*\n* idx = ind( 14, 10, 'wrap' );\n* // returns 3\n*\n* idx = ind( 6, 10, 'wrap' );\n* // returns 6\n*\n* @example\n* import ind from '@stdlib/ndarray/base/ind';\n*\n* var idx = ind( -1, 10, 'clamp' );\n* // returns 0\n*\n* idx = ind( 14, 10, 'clamp' );\n* // returns 10\n*\n* idx = ind( 6, 10, 'clamp' );\n* // returns 6\n*\n* @example\n* import ind from '@stdlib/ndarray/base/ind';\n*\n* var idx = ind( 1, 10, 'throw' );\n* // returns 1\n*\n* idx = ind( 14, 10, 'throw' );\n* // throws \n*\n* idx = ind( -1, 10, 'throw' );\n* // throws \n*\n* @example\n* import ind from '@stdlib/ndarray/base/ind';\n*\n* var idx = ind( 1, 10, 'normalize' );\n* // returns 1\n*\n* idx = ind( -4, 10, 'normalize' );\n* // returns 7\n*\n* idx = ind( -100, 10, 'normalize' );\n* // throws \n*\n* @example\n* import ind from '@stdlib/ndarray/base/ind';\n*\n* var fcn = ind.factory( 'clamp' );\n*\n* var idx = fcn( -1, 10 );\n* // returns 0\n*\n* idx = fcn( 14, 10 );\n* // returns 10\n*\n* idx = fcn( 6, 10 );\n* // returns 6\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport factory from './factory.js';\nimport main from './main.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/* eslint-disable no-invalid-this */\n\n'use strict';\n\n// MODULES //\n\nimport { isPrimitive as isInteger } from '@stdlib/assert/is-integer';\nimport getIndex from './../../base/ind';\nimport parent from './../../base/ctor'; // eslint-disable-line stdlib/no-redeclare\nimport format from '@stdlib/string/format';\n\n\n// VARIABLES //\n\nvar base = parent.prototype.iget;\n\n\n// MAIN //\n\n/**\n* Returns an array element located at a specified linear index.\n*\n* ## Notes\n*\n* - For zero-dimensional arrays, the input argument is ignored and, for clarity, should not be provided.\n*\n* @private\n* @param {integer} [idx] - linear view index\n* @throws {TypeError} index must be an integer\n* @throws {RangeError} index exceeds array dimensions\n* @returns {*} array element\n*/\nfunction iget( idx ) {\n\tif ( this._ndims > 0 ) {\n\t\tif ( !isInteger( idx ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Index must be an integer. Value: `%s`.', idx ) );\n\t\t}\n\t\tidx = getIndex( idx, this._length-1, this._mode );\n\t\treturn base.call( this, idx );\n\t}\n\treturn base.call( this );\n}\n\n\n// EXPORTS //\n\nexport default iget;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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 no-invalid-this */\n\n'use strict';\n\n// METHODS //\n\nimport { isPrimitive as isInteger } from '@stdlib/assert/is-integer';\nimport getIndex from './../../base/ind';\nimport parent from './../../base/ctor'; // eslint-disable-line stdlib/no-redeclare\nimport format from '@stdlib/string/format';\n\n\n// VARIABLES //\n\nvar base = parent.prototype.iset;\n\n\n// MAIN //\n\n/**\n* Sets an array element located at a specified linear index.\n*\n* ## Notes\n*\n* - For zero-dimensional arrays, the first, and only, argument should be the value to set.\n*\n* @private\n* @param {integer} [idx] - linear view index\n* @param {*} v - value to set\n* @throws {Error} cannot write to a read-only array\n* @throws {TypeError} index must be an integer\n* @throws {RangeError} index exceeds array dimensions\n* @returns {ndarray} ndarray instance\n*/\nfunction iset( idx, v ) {\n\tif ( this._flags.READONLY ) {\n\t\tthrow new Error( 'invalid invocation. Cannot write to a read-only array.' );\n\t}\n\tif ( this._ndims > 0 ) {\n\t\tif ( !isInteger( idx ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Index must be an integer. Value: `%s`.', idx ) );\n\t\t}\n\t\tidx = getIndex( idx, this._length-1, this._mode );\n\t\tbase.call( this, idx, v );\n\t} else {\n\t\tbase.call( this, idx );\n\t}\n\treturn this;\n}\n\n\n// EXPORTS //\n\nexport default iset;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Copies the contents of array-like value to a new array.\n*\n* @private\n* @param {ArrayLike} arr - input array\n* @param {NonNegativeInteger} len - array length\n* @returns {Array} output array\n*\n* @example\n* var arr = [ 1.0, 2.0, 3.0 ];\n*\n* var out = copy( arr, arr.length );\n* // returns [ 1.0, 2.0, 3.0 ]\n*\n* var bool = ( arr === out );\n* // returns false\n*/\nfunction copy( arr, len ) {\n\tvar out;\n\tvar i;\n\n\tout = [];\n\tfor ( i = 0; i < len; i++ ) {\n\t\tout.push( arr[ i ] );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default copy;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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 no-invalid-this */\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport isCollection from '@stdlib/assert/is-collection';\nimport { primitives as isNonNegativeIntegerArray } from '@stdlib/assert/is-nonnegative-integer-array';\nimport { isPrimitive as isNonNegativeInteger } from '@stdlib/assert/is-nonnegative-integer';\nimport { primitives as isIntegerArray } from '@stdlib/assert/is-integer-array';\nimport isFunction from '@stdlib/assert/is-function';\nimport isOrder from './../../base/assert/is-order';\nimport isDataType from './../../base/assert/is-data-type';\nimport isBufferLengthCompatible from './../../base/assert/is-buffer-length-compatible';\nimport numel from './../../base/numel';\nimport parent from './../../base/ctor'; // eslint-disable-line stdlib/no-redeclare\nimport defaults from './../../defaults';\nimport inherit from '@stdlib/utils/inherit';\nimport format from '@stdlib/string/format';\nimport iget from './iget.js';\nimport iset from './iset.js';\nimport get from './get.js';\nimport set from './set.js';\nimport copy from './copy_array.js';\nimport validate from './validate.js';\n\n\n// VARIABLES //\n\n/*\n* See the following references:\n*\n* - https://stackoverflow.com/questions/22747068/is-there-a-max-number-of-arguments-javascript-functions-can-accept\n* - https://bugs.webkit.org/show_bug.cgi?id=80797\n* - https://github.com/numpy/numpy/issues/5744\n*\n* Note that the maximum number of function arguments can vary from engine to engine. Here, we choose something of a lowest common denominator which may **not** be valid everywhere.\n*/\nvar MAX_DIMS = 32767|0;\n\nvar INDEX_MODE = defaults.get( 'index_mode' );\nvar READONLY = false;\n\n\n// MAIN //\n\n/**\n* ndarray constructor.\n*\n* @constructor\n* @param {string} dtype - data type\n* @param {Collection} buffer - data buffer\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {IntegerArray} strides - array strides\n* @param {NonNegativeInteger} offset - index offset\n* @param {string} order - specifies whether an array is row-major (C-style) or column-major (Fortran-style)\n* @param {Options} [options] - function options\n* @param {string} [options.mode=\"throw\"] - specifies how to handle indices which exceed array dimensions\n* @param {StringArray} [options.submode=[\"throw\"]] - specifies how to handle subscripts which exceed array dimensions on a per dimension basis\n* @param {boolean} [options.readonly=false] - boolean indicating whether an array should be read-only\n* @throws {TypeError} `dtype` argument must be a supported ndarray data type\n* @throws {TypeError} `buffer` argument must be an array-like object, typed-array-like, or a Buffer\n* @throws {TypeError} `buffer` argument `get` and `set` properties must be functions\n* @throws {TypeError} `shape` argument must be an array-like object containing nonnegative integers\n* @throws {Error} `shape` argument length must equal the number of dimensions\n* @throws {TypeError} `strides` argument must be an array-like object containing integers\n* @throws {Error} `strides` argument length must equal the number of dimensions (except for zero-dimensional arrays; in which case, the `strides` argument length must be equal to `1`)\n* @throws {Error} for zero-dimensional ndarrays, the `strides` argument must contain a single element equal to `0`\n* @throws {TypeError} `offset` argument must be a nonnegative integer\n* @throws {TypeError} `order` argument must be a supported ndarray order\n* @throws {Error} `buffer` argument must be compatible with specified meta data\n* @throws {TypeError} options argument must be an object\n* @throws {TypeError} must provide valid options\n* @throws {RangeError} too many dimensions\n* @returns {ndarray} ndarray instance\n*\n* @example\n* var buffer = [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var out = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*/\nfunction ndarray( dtype, buffer, shape, strides, offset, order, options ) {\n\tvar ndims;\n\tvar opts;\n\tvar err;\n\tvar sh;\n\tvar st;\n\n\tif ( !(this instanceof ndarray) ) {\n\t\tif ( arguments.length < 7 ) {\n\t\t\treturn new ndarray( dtype, buffer, shape, strides, offset, order );\n\t\t}\n\t\treturn new ndarray( dtype, buffer, shape, strides, offset, order, options ); // eslint-disable-line max-len\n\t}\n\tif ( !isDataType( dtype ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a supported ndarray data type. Value: `%s`.', dtype ) );\n\t}\n\tif ( !isCollection( buffer ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an array-like object, typed-array-like, or a Buffer. Value: `%s`.', buffer ) );\n\t} else if ( buffer.get && buffer.set && ( !isFunction( buffer.get ) || !isFunction( buffer.set ) ) ) { // eslint-disable-line max-len\n\t\tthrow new TypeError( format( 'invalid argument. Second argument `get` and `set` properties must be functions. Value: `%s`.', buffer ) );\n\t}\n\tif ( !isNonNegativeIntegerArray( shape ) ) {\n\t\tif ( !isCollection( shape) || shape.length > 0 ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Third argument must be an array-like object containing nonnegative integers. Value: `%s`.', shape ) );\n\t\t}\n\t}\n\tndims = shape.length;\n\tif ( ndims > MAX_DIMS ) {\n\t\tthrow new RangeError( format( 'invalid argument. Number of dimensions must not exceed %u due to stack limits. Value: `%u`.', MAX_DIMS, ndims ) );\n\t}\n\tif ( !isIntegerArray( strides ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Fourth argument must be an array-like object containing integers. Value: `%s`.', strides ) );\n\t}\n\tif ( ndims > 0 ) {\n\t\tif ( strides.length !== ndims ) {\n\t\t\tthrow new RangeError( format( 'invalid argument. Fourth argument length must match the number of dimensions. Expected number of dimensions: `%u`. Strides length: `%u`.', ndims, strides.length ) );\n\t\t}\n\t} else if ( strides.length !== 1 ) {\n\t\tthrow new RangeError( 'invalid argument. Fourth argument length must be equal to 1 when creating a zero-dimensional ndarray.' );\n\t} else if ( strides[ 0 ] !== 0 ) {\n\t\tthrow new RangeError( format( 'invalid argument. Fourth argument must contain a single element equal to 0. Value: `%d`.', strides[ 0 ] ) );\n\t}\n\tif ( !isNonNegativeInteger( offset ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Fifth argument must be a nonnegative integer. Value: `%s`.', offset ) );\n\t}\n\tif ( !isOrder( order ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Sixth argument must be a supported order. Value: `%s`.', order ) );\n\t}\n\tif ( ndims > 0 && !isBufferLengthCompatible( buffer.length, shape, strides, offset ) && numel( shape ) > 0 ) { // eslint-disable-line max-len\n\t\tthrow new Error( 'invalid arguments. Input buffer is incompatible with the specified meta data. Ensure that the offset is valid with regard to the strides array and that the buffer has enough elements to satisfy the desired array shape.' );\n\t}\n\topts = {};\n\topts.mode = INDEX_MODE;\n\topts.readonly = READONLY;\n\tif ( arguments.length > 6 ) {\n\t\terr = validate( opts, options );\n\t\tif ( err ) {\n\t\t\tthrow err;\n\t\t}\n\t}\n\tthis._mode = opts.mode;\n\tif ( opts.submode === void 0 ) {\n\t\topts.submode = [ this._mode ];\n\t}\n\tthis._submode = opts.submode;\n\n\t// Copy `shape` and `strides` to prevent external mutation:\n\tsh = copy( shape, ndims );\n\tst = copy( strides, ndims || 1 );\n\n\t// Call the parent constructor:\n\tparent.call( this, dtype, buffer, sh, st, offset, order );\n\tthis._flags.READONLY = opts.readonly;\n\n\treturn this;\n\n\t/* eslint-enable no-invalid-this */\n}\n\n// Inherit from the parent constructor:\ninherit( ndarray, parent );\n\n/**\n* Constructor name.\n*\n* @name name\n* @memberof ndarray\n* @type {string}\n* @default 'ndarray'\n*\n* @example\n* var str = ndarray.name;\n* // returns 'ndarray'\n*/\nsetReadOnly( ndarray, 'name', 'ndarray' );\n\n/**\n* Returns an array element.\n*\n* ## Notes\n*\n* - The number of indices should **equal** the number of dimensions. Accordingly, for zero-dimensional arrays, no indices should be provided.\n*\n* @name get\n* @memberof ndarray.prototype\n* @type {Function}\n* @param {...integer} [idx] - indices\n* @returns {*} array element\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var v = x.get( 1, 1 );\n* // returns 4\n*/\nsetReadOnly( ndarray.prototype, 'get', get );\n\n/**\n* Returns an array element located at a specified linear index.\n*\n* ## Notes\n*\n* - For zero-dimensional arrays, the input argument is ignored and, for clarity, should not be provided.\n*\n* @name iget\n* @memberof ndarray.prototype\n* @type {Function}\n* @param {integer} [idx] - linear index\n* @returns {*} array element\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var v = x.iget( 3 );\n* // returns 4\n*/\nsetReadOnly( ndarray.prototype, 'iget', iget );\n\n/**\n* Sets an array element.\n*\n* ## Notes\n*\n* - The number of indices should **equal** the number of dimensions. Accordingly, for zero-dimensional arrays, no indices should be provided.\n*\n* @name set\n* @memberof ndarray.prototype\n* @type {Function}\n* @param {...integer} [idx] - indices\n* @param {*} v - value to set\n* @returns {ndarray} ndarray instance\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var v = x.get( 1, 1 );\n* // returns 4\n*\n* x.set( 1, 1, 10 );\n*\n* var b = x.data;\n* // returns [ 1, 2, 3, 10, 5, 6 ]\n*\n* v = x.get( 1, 1 );\n* // returns 10\n*/\nsetReadOnly( ndarray.prototype, 'set', set );\n\n/**\n* Sets an array element located at a specified linear index.\n*\n* ## Notes\n*\n* - For zero-dimensional arrays, the first, and only, argument should be the value to set.\n*\n* @name iset\n* @memberof ndarray.prototype\n* @type {Function}\n* @param {integer} [idx] - linear index\n* @param {*} v - value to set\n* @returns {ndarray} ndarray instance\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var v = x.iget( 3 );\n* // returns 4\n*\n* x.iset( 3, 10 );\n*\n* var b = x.data;\n* // returns [ 1, 2, 3, 10, 5, 6 ]\n*\n* v = x.iget( 3 );\n* // returns 10\n*/\nsetReadOnly( ndarray.prototype, 'iset', iset );\n\n\n// EXPORTS //\n\nexport default ndarray;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport minmax from './../../../../base/minmax-view-buffer-index';\n\n\n// MAIN //\n\n/**\n* Returns a boolean indicating if a buffer length is compatible with provided ndarray meta data.\n*\n* @param {NonNegativeInteger} len - buffer length\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {IntegerArray} strides - stride array\n* @param {NonNegativeInteger} offset - index offset\n* @returns {boolean} boolean indicating if a buffer length is compatible\n*\n* @example\n* var shape = [ 2, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var bool = isBufferLengthCompatible( 4, shape, strides, offset );\n* // returns true\n*\n* @example\n* var shape = [ 2, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 2;\n*\n* var bool = isBufferLengthCompatible( 4, shape, strides, offset );\n* // returns false\n*/\nfunction isBufferLengthCompatible( len, shape, strides, offset ) {\n\t// Determine the minimum and maximum linear indices which are accessible by the array view:\n\tvar buf = minmax( shape, strides, offset );\n\n\t// If the indices are \"inbounds\", then the buffer length is compatible:\n\treturn ( buf[ 0 ] >= 0 && buf[ 1 ] < len );\n}\n\n\n// EXPORTS //\n\nexport default isBufferLengthCompatible;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isObject from '@stdlib/assert/is-plain-object';\nimport hasOwnProp from '@stdlib/assert/has-own-property';\nimport isArrayLikeObject from '@stdlib/assert/is-array-like-object';\nimport isIndexMode from './../../base/assert/is-index-mode';\nimport { isPrimitive as isBoolean } from '@stdlib/assert/is-boolean';\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 {string} [options.mode] - specifies how to handle indices which exceed array dimensions\n* @param {StringArray} [options.submode] - specifies how to handle subscripts which exceed array dimensions\n* @param {boolean} [options.readonly] - boolean indicating whether an array should be read-only\n* @returns {(Error|null)} null or an error object\n*\n* @example\n* var opts = {};\n* var options = {\n* 'mode': 'clamp',\n* 'submode': [ 'throw', 'wrap', 'clamp' ]\n* };\n* var err = validate( opts, options );\n* if ( err ) {\n* throw err;\n* }\n*/\nfunction validate( opts, options ) {\n\tvar i;\n\tif ( !isObject( options ) ) {\n\t\treturn new TypeError( format( 'invalid argument. Options argument must be an object. Value: `%s`.', options ) );\n\t}\n\tif ( hasOwnProp( options, 'mode' ) ) {\n\t\topts.mode = options.mode;\n\t\tif ( !isIndexMode( opts.mode ) ) {\n\t\t\treturn new TypeError( format( 'invalid option. `%s` option must be a recognized mode. Option: `%s`.', 'mode', opts.mode ) );\n\t\t}\n\t}\n\tif ( hasOwnProp( options, 'submode' ) ) {\n\t\topts.submode = options.submode;\n\t\tif ( !isArrayLikeObject( opts.submode ) ) {\n\t\t\treturn new TypeError( format( 'invalid option. `%s` option must be an array containing recognized modes. Option: `%s`.', 'submode', opts.submode ) );\n\t\t}\n\t\tif ( opts.submode.length === 0 ) {\n\t\t\treturn new TypeError( format( 'invalid option. `%s` option must be an array containing recognized modes. Option: `%s`.', 'submode', opts.submode.join( ',' ) ) );\n\t\t}\n\t\tfor ( i = 0; i < opts.submode.length; i++ ) {\n\t\t\tif ( !isIndexMode( opts.submode[ i ] ) ) {\n\t\t\t\treturn new TypeError( format( 'invalid option. Each submode must be a recognized mode. Option: `%s`.', opts.submode[ i ] ) );\n\t\t\t}\n\t\t}\n\t\topts.submode = opts.submode.slice();\n\t}\n\tif ( hasOwnProp( options, 'readonly' ) ) {\n\t\topts.readonly = options.readonly;\n\t\tif ( !isBoolean( opts.readonly ) ) {\n\t\t\treturn new TypeError( format( 'invalid option. `%s` option must be a boolean. Option: `%s`.', 'readonly', opts.readonly ) );\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 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) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport defineProperty from './../../define-property';\nimport format from '@stdlib/string/format';\nimport validate from './validate.js';\nimport createObject from './detect.js';\n\n\n// MAIN //\n\n/**\n* Implements prototypical inheritance by replacing the prototype of one constructor with the prototype of another constructor.\n*\n* ## Notes\n*\n* - This implementation is not designed to work with ES2015/ES6 classes. For ES2015/ES6 classes, use `class` with `extends`.\n* - For reference, see [node#3455](https://github.com/nodejs/node/pull/3455), [node#4179](https://github.com/nodejs/node/issues/4179), [node#3452](https://github.com/nodejs/node/issues/3452), and [node commit](https://github.com/nodejs/node/commit/29da8cf8d7ab8f66b9091ab22664067d4468461e#diff-3deb3f32958bb937ae05c6f3e4abbdf5).\n*\n* @param {(Object|Function)} ctor - constructor which will inherit\n* @param {(Object|Function)} superCtor - super (parent) constructor\n* @throws {TypeError} first argument must be either an object or a function which can inherit\n* @throws {TypeError} second argument must be either an object or a function from which a constructor can inherit\n* @throws {TypeError} second argument must have an inheritable prototype\n* @returns {(Object|Function)} child constructor\n*\n* @example\n* function Foo() {\n* return this;\n* }\n* Foo.prototype.beep = function beep() {\n* return 'boop';\n* };\n*\n* function Bar() {\n* Foo.call( this );\n* return this;\n* }\n* inherit( Bar, Foo );\n*\n* var bar = new Bar();\n* var v = bar.beep();\n* // returns 'boop'\n*/\nfunction inherit( ctor, superCtor ) {\n\tvar err = validate( ctor );\n\tif ( err ) {\n\t\tthrow err;\n\t}\n\terr = validate( superCtor );\n\tif ( err ) {\n\t\tthrow err;\n\t}\n\tif ( typeof superCtor.prototype === 'undefined' ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must have a prototype from which another object can inherit. Value: `%s`.', superCtor.prototype ) );\n\t}\n\t// Create a prototype which inherits from the parent prototype:\n\tctor.prototype = createObject( superCtor.prototype );\n\n\t// Set the constructor to refer to the child constructor:\n\tdefineProperty( ctor.prototype, 'constructor', {\n\t\t'configurable': true,\n\t\t'enumerable': false,\n\t\t'writable': true,\n\t\t'value': ctor\n\t});\n\n\treturn ctor;\n}\n\n\n// EXPORTS //\n\nexport default inherit;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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 no-invalid-this */\n\n'use strict';\n\n// MODULES //\n\nimport { isPrimitive as isInteger } from '@stdlib/assert/is-integer';\nimport getIndex from './../../base/ind';\nimport format from '@stdlib/string/format';\n\n\n// MAIN //\n\n/**\n* Returns an array element.\n*\n* ## Notes\n*\n* - The number of indices should **equal** the number of dimensions. Accordingly, for zero-dimensional arrays, no indices should be provided.\n*\n* @private\n* @param {...integer} [idx] - indices\n* @throws {TypeError} provided indices must be integer valued\n* @throws {RangeError} index exceeds array dimensions\n* @throws {RangeError} number of indices must equal the number of dimensions\n* @returns {*} array element\n*/\nfunction get() {\n\tvar idx;\n\tvar ind;\n\tvar M;\n\tvar i;\n\n\tif ( arguments.length !== this._ndims ) {\n\t\tthrow new RangeError( format( 'invalid arguments. Number of indices must match the number of dimensions. ndims: `%u`. nargs: `%u`.', this._ndims, arguments.length ) );\n\t}\n\tidx = this._offset;\n\tM = this._submode.length;\n\tfor ( i = 0; i < arguments.length; i++ ) {\n\t\tif ( !isInteger( arguments[ i ] ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Indices must be integer valued. Argument: `%u`. Value: `%s`.', i, arguments[ i ] ) );\n\t\t}\n\t\tind = getIndex( arguments[ i ], this._shape[ i ]-1, this._submode[ i%M ] ); // eslint-disable-line max-len\n\t\tidx += this._strides[ i ] * ind;\n\t}\n\tif ( this._accessors ) {\n\t\treturn this._buffer.get( idx );\n\t}\n\treturn this._buffer[ idx ];\n}\n\n\n// EXPORTS //\n\nexport default get;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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 no-invalid-this */\n\n'use strict';\n\n// MODULES //\n\nimport { isPrimitive as isInteger } from '@stdlib/assert/is-integer';\nimport getIndex from './../../base/ind';\nimport format from '@stdlib/string/format';\n\n\n// MAIN //\n\n/**\n* Sets an array element.\n*\n* ## Notes\n*\n* - The number of indices should **equal** the number of dimensions. Accordingly, for zero-dimensional arrays, no indices should be provided.\n*\n* @private\n* @param {...integer} [idx] - indices\n* @param {*} v - value to set\n* @throws {Error} cannot write to a read-only array\n* @throws {TypeError} provided indices must be integer valued\n* @throws {RangeError} index exceeds array dimensions\n* @throws {RangeError} number of indices must equal the number of dimensions\n* @returns {ndarray} ndarray instance\n*/\nfunction set() {\n\tvar idx;\n\tvar ind;\n\tvar M;\n\tvar i;\n\n\tif ( this._flags.READONLY ) {\n\t\tthrow new Error( 'invalid invocation. Cannot write to a read-only array.' );\n\t}\n\tif ( arguments.length !== this._ndims+1 ) {\n\t\tthrow new RangeError( format( 'invalid arguments. Number of indices must match the number of dimensions. ndims: `%u`. nargs: `%u`.', this._ndims, arguments.length ) );\n\t}\n\tidx = this._offset;\n\tM = this._submode.length;\n\tfor ( i = 0; i < arguments.length-1; i++ ) {\n\t\tif ( !isInteger( arguments[ i ] ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Indices must be integer valued. Argument: `%i`. Value: `%s`.', i, arguments[ i ] ) );\n\t\t}\n\t\tind = getIndex( arguments[ i ], this._shape[ i ]-1, this._submode[ i%M ] ); // eslint-disable-line max-len\n\t\tidx += this._strides[ i ] * ind;\n\t}\n\tif ( this._accessors ) {\n\t\tthis._buffer.set( arguments[ i ], idx );\n\t} else {\n\t\tthis._buffer[ idx ] = arguments[ i ];\n\t}\n\treturn this;\n}\n\n\n// EXPORTS //\n\nexport default set;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isCollection from './../../is-collection';\nimport { isPrimitive as isInteger } from './../../is-integer';\nimport { isPrimitive as isString } from './../../is-string';\nimport { isPrimitive as isnan } from './../../is-nan';\nimport format from '@stdlib/string/format';\n\n\n// MAIN //\n\n/**\n* Tests if an array-like value contains a search value.\n*\n* @param {(Collection|string)} val - input value\n* @param {*} searchValue - search value\n* @param {integer} [position=0] - position at which to start searching for `searchValue`\n* @throws {TypeError} first argument must be array-like\n* @throws {Error} must provide a search value\n* @throws {TypeError} second argument must be a string when the first argument is a string\n* @throws {TypeError} third argument must be an integer\n* @returns {boolean} boolean indicating whether one value contains another\n*\n* @example\n* var bool = contains( 'last man standing', 'stand' );\n* // returns true\n*\n* @example\n* var bool = contains( [ 1, 2, 3, 4 ], 2 );\n* // returns true\n*\n* @example\n* var bool = contains( 'presidential election', 'president' );\n* // returns true\n*\n* @example\n* var bool = contains( [ NaN, 2, 3, 4 ], NaN );\n* // returns true\n*\n* @example\n* var bool = contains( 'javaScript', 'js' );\n* // returns false\n*\n* @example\n* var bool = contains( [ 1, 2, 3, {} ], {} );\n* // returns false\n*\n* @example\n* var bool = contains( 'Hidden Treasures', '' );\n* // returns true\n*/\nfunction contains( val, searchValue, position ) {\n\tvar len;\n\tvar pos;\n\tvar i;\n\tif ( !isCollection( val ) && !isString( val ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be array-like. Value: `%s`.', val ) );\n\t}\n\tif ( arguments.length < 2 ) {\n\t\tthrow new Error( 'insufficient arguments. Must provide a search value.' );\n\t}\n\tif ( arguments.length > 2 ) {\n\t\tif ( !isInteger( position ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Third argument must be an integer. Value: `%s`.', position ) );\n\t\t}\n\t\tpos = position;\n\t\tif ( pos < 0 ) {\n\t\t\tpos = 0;\n\t\t}\n\t} else {\n\t\tpos = 0;\n\t}\n\tif ( isString( val ) ) {\n\t\tif ( !isString( searchValue ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be a string. Value: `%s`.', searchValue ) );\n\t\t}\n\t\treturn val.indexOf( searchValue, pos ) !== -1;\n\t}\n\tlen = val.length;\n\tif ( isnan( searchValue ) ) {\n\t\tfor ( i = pos; i < len; i++ ) {\n\t\t\tif ( isnan( val[ i ] ) ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\tfor ( i = pos; i < len; i++ ) {\n\t\tif ( val[ i ] === searchValue ) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default contains;\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) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 value is `null`.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether value is null\n*\n* @example\n* var bool = isNull( null );\n* // returns true\n*\n* bool = isNull( true );\n* // returns false\n*/\nfunction isNull( value ) {\n\treturn value === null;\n}\n\n\n// EXPORTS //\n\nexport default isNull;\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) 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 setReadOnlyAccessor from '@stdlib/utils/define-nonenumerable-read-only-accessor';\nimport dtypes2signatures from '@stdlib/ndarray/base/dtypes2signatures';\n\n\n// MAIN //\n\n/**\n* Defines non-enumerable read-only properties which expose strided array function meta data.\n*\n* @param {Object} meta - function meta data\n* @param {NonNegativeInteger} meta.nargs - total number of arguments (excluding offsets)\n* @param {NonNegativeInteger} meta.nin - total number of input arrays\n* @param {NonNegativeInteger} meta.nout - total number of output arrays\n* @param {ArrayLikeObject} dtypes - list of strided array data types\n* @param {(Function|Object)} obj - object on which to define properties\n* @param {boolean} bool - boolean indicating whether the provided object should describe an \"ndarray\" function interface\n* @returns {(Function|Object)} object on which properties were defined\n*\n* @example\n* // Define strided array function meta data:\n* var meta = {\n* 'nargs': 7,\n* 'nin': 1,\n* 'nout': 1\n* };\n*\n* // Define the list of strided array data types:\n* var dtypes = [\n* 'float64', 'float64',\n* 'float32', 'float32',\n* 'generic', 'generic'\n* ];\n*\n* // Define an object on which to set the properties:\n* var obj = {};\n*\n* // Set the properties:\n* setProps( meta, dtypes, obj, false );\n*\n* @example\n* // Define strided array function meta data:\n* var meta = {\n* 'nargs': 7,\n* 'nin': 1,\n* 'nout': 1\n* };\n*\n* // Define the list of strided array data types:\n* var dtypes = [\n* 'float64', 'float64',\n* 'float32', 'float32',\n* 'generic', 'generic'\n* ];\n*\n* // Define a function on which to set the properties:\n* function abs( N, dtypeX, x, strideX, dtypeY, y, strideY ) {\n* // Implementation...\n* }\n*\n* // Set the properties:\n* setProps( meta, dtypes, abs, false );\n*/\nfunction setProps( meta, dtypes, obj, bool ) {\n\t// Define the number of arguments:\n\tif ( bool ) {\n\t\tsetReadOnly( obj, 'nargs', meta.nargs+meta.nin+meta.nout ); // Note: accounts for one offset argument per input/output strided array\n\t} else {\n\t\tsetReadOnly( obj, 'nargs', meta.nargs );\n\t}\n\t// Define the number of input strided arrays:\n\tsetReadOnly( obj, 'nin', meta.nin );\n\n\t// Define the number of output strided arrays:\n\tsetReadOnly( obj, 'nout', meta.nout );\n\n\t// Define a read-only accessor for listing a function's supported array data types:\n\tsetReadOnlyAccessor( obj, 'types', types );\n\n\treturn obj;\n\n\t/**\n\t* Returns a list of strided array interface array type signatures.\n\t*\n\t* @private\n\t* @returns {StringArray} list of signatures\n\t*/\n\tfunction types() {\n\t\treturn dtypes2signatures( dtypes, meta.nin, meta.nout );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default setProps;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { isPrimitive as isInteger } from './../../is-integer';\n\n\n// MAIN //\n\n/**\n* Tests if a value is a number primitive having a positive integer value.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a number primitive having a positive integer value\n*\n* @example\n* var bool = isPositiveInteger( 3.0 );\n* // returns true\n*\n* @example\n* var bool = isPositiveInteger( new Number( 3.0 ) );\n* // returns false\n*/\nfunction isPositiveInteger( value ) {\n\treturn (\n\t\tisInteger( value ) &&\n\t\tvalue > 0.0\n\t);\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 { isObject as isInteger } from './../../is-integer';\n\n\n// MAIN //\n\n/**\n* Tests if a value is a number object having a positive integer value.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a number object having a positive integer value\n*\n* @example\n* var bool = isPositiveInteger( 3.0 );\n* // returns false\n*\n* @example\n* var bool = isPositiveInteger( new Number( 3.0 ) );\n* // returns true\n*/\nfunction isPositiveInteger( value ) {\n\treturn (\n\t\tisInteger( value ) &&\n\t\tvalue.valueOf() > 0.0\n\t);\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 isPrimitive from './primitive.js';\nimport isObject from './object.js';\n\n\n// MAIN //\n\n/**\n* Tests if a value is a positive integer.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether value is a positive integer\n*\n* @example\n* var bool = isPositiveInteger( 5.0 );\n* // returns true\n*\n* @example\n* var bool = isPositiveInteger( new Number( 5.0 ) );\n* // returns true\n*\n* @example\n* var bool = isPositiveInteger( 0.0 );\n* // returns false\n*\n* @example\n* var bool = isPositiveInteger( -5.0 );\n* // returns false\n*\n* @example\n* var bool = isPositiveInteger( 3.14 );\n* // returns false\n*\n* @example\n* var bool = isPositiveInteger( null );\n* // returns false\n*/\nfunction isPositiveInteger( value ) {\n\treturn ( isPrimitive( value ) || isObject( value ) );\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/**\n* Test if a value is a positive integer.\n*\n* @module @stdlib/assert/is-positive-integer\n*\n* @example\n* import isPositiveInteger from '@stdlib/assert/is-positive-integer';\n*\n* var bool = isPositiveInteger( 5.0 );\n* // returns true\n*\n* bool = isPositiveInteger( new Number( 5.0 ) );\n* // returns true\n*\n* bool = isPositiveInteger( -5.0 );\n* // returns false\n*\n* bool = isPositiveInteger( 3.14 );\n* // returns false\n*\n* bool = isPositiveInteger( null );\n* // returns false\n*\n* @example\n* import { isPrimitive as isPositiveInteger } from '@stdlib/assert/is-positive-integer';\n*\n* var bool = isPositiveInteger( 3.0 );\n* // returns true\n*\n* bool = isPositiveInteger( new Number( 3.0 ) );\n* // returns false\n*\n* @example\n* import { isObject as isPositiveInteger } from '@stdlib/assert/is-positive-integer';\n*\n* var bool = isPositiveInteger( 3.0 );\n* // returns false\n*\n* bool = isPositiveInteger( new Number( 3.0 ) );\n* // returns true\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport isPrimitive from './primitive.js';\nimport isObject from './object.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'isPrimitive', isPrimitive );\nsetReadOnly( main, 'isObject', isObject );\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* Test if a value is an array-like object containing only functions.\n*\n* @module @stdlib/assert/is-function-array\n*\n* @example\n* import isFunctionArray from '@stdlib/assert/is-function-array';\n*\n* function beep() {}\n*\n* function boop() {}\n*\n* var bool = isFunctionArray( [ beep, boop ] );\n* // returns true\n*\n* bool = isFunctionArray( [ {}, beep ] );\n* // returns false\n*\n* bool = isFunctionArray( [] );\n* // returns false\n*/\n\n// MODULES //\n\nimport arrayfun from './../../tools/array-like-function';\nimport isFunction from './../../is-function';\n\n\n// MAIN //\n\nvar isFunctionArray = arrayfun( isFunction );\n\n\n// EXPORTS //\n\nexport default isFunctionArray;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { isPrimitive as isNonNegativeInteger } from '@stdlib/assert/is-nonnegative-integer';\nimport isPositiveInteger from '@stdlib/assert/is-positive-integer';\nimport { isPrimitive as isInteger } from '@stdlib/assert/is-integer';\nimport isFunctionArray from '@stdlib/assert/is-function-array';\nimport isFunction from '@stdlib/assert/is-function';\nimport isCollection from '@stdlib/assert/is-collection';\nimport format from '@stdlib/string/format';\nimport abs from '@stdlib/math/base/special/abs';\nimport indexOfTypes from './index_of_types.js';\n\n\n// MAIN //\n\n/**\n* Returns a strided array function interface which performs multiple dispatch.\n*\n* @param {(FunctionArray|Function)} fcns - list of strided array functions\n* @param {Collection} types - one-dimensional list of strided array argument data types\n* @param {(Collection|null)} data - strided array function data (e.g., callbacks)\n* @param {PositiveInteger} nargs - total number of strided array function interface arguments (including data types, strides, and offsets)\n* @param {NonNegativeInteger} nin - number of input strided arrays\n* @param {NonNegativeInteger} nout - number of output strided arrays\n* @throws {TypeError} first argument must be either a function or an array of functions\n* @throws {TypeError} second argument must be an an array-like object\n* @throws {TypeError} third argument must be an array-like object or `null`\n* @throws {Error} third and first arguments must have the same number of elements\n* @throws {TypeError} fourth argument must be a positive integer\n* @throws {TypeError} fifth argument must be a nonnegative integer\n* @throws {TypeError} sixth argument must be a nonnegative integer\n* @throws {Error} fourth argument must be compatible with the specified number of input and output arrays\n* @throws {Error} number of types must match the number of functions times the total number of array arguments for each function\n* @throws {Error} interface must accept at least one strided input and/or output array\n* @returns {Function} strided array function interface\n*\n* @example\n* import unary from '@stdlib/strided/base/unary';\n* import abs from '@stdlib/math/base/special/abs';\n* import Float64Array from '@stdlib/array/float64';\n*\n* var types = [\n* 'float64', 'float64'\n* ];\n*\n* var data = [\n* abs\n* ];\n*\n* var strided = dispatch( unary, types, data, 7, 1, 1 );\n*\n* // ...\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* strided( x.length, 'float64', x, 1, 'float64', y, 1 );\n* // y => [ 1.0, 2.0, 3.0, 4.0, 5.0 ]\n*/\nfunction dispatch( fcns, types, data, nargs, nin, nout ) {\n\tvar strideArgs;\n\tvar hasOffsets;\n\tvar narrays;\n\tvar nfcns;\n\tvar iout;\n\tvar fcn;\n\n\tif ( isFunction( fcns ) ) {\n\t\tfcn = fcns;\n\t} else if ( !isFunctionArray( fcns ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be either a function or an array of functions. Value: `%s`.', fcns ) );\n\t}\n\tif ( !isCollection( types ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an array-like object. Value: `%s`.', types ) );\n\t}\n\tif ( !isCollection( data ) && data !== null ) {\n\t\tthrow new TypeError( format( 'invalid argument. Third argument must be an array-like object or null. Value: `%s`.', data ) );\n\t}\n\tif ( !isPositiveInteger( nargs ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Fourth argument must be a positive integer. Value: `%s`.', nargs ) );\n\t}\n\tif ( !isNonNegativeInteger( nin ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Fifth argument must be a nonnegative integer. Value: `%s`.', nin ) );\n\t}\n\tif ( !isNonNegativeInteger( nout ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Sixth argument must be a nonnegative integer. Value: `%s`.', nout ) );\n\t}\n\tnarrays = nin + nout;\n\tif ( narrays === 0 ) {\n\t\tthrow new Error( 'invalid arguments. Interface must accept at least one strided input and/or output array. Based on the provided arguments, `nin+nout` equals `0`.' );\n\t}\n\tif ( fcn ) {\n\t\tnfcns = types.length / narrays;\n\t\tif ( !isInteger( nfcns ) ) {\n\t\t\tthrow new Error( 'invalid argument. Unexpected number of types. A type must be specified for each strided input and output array for each provided strided array function.' );\n\t\t}\n\t} else {\n\t\tnfcns = fcns.length;\n\t\tif ( types.length !== nfcns*narrays ) {\n\t\t\tthrow new Error( 'invalid argument. Unexpected number of types. A type must be specified for each strided input and output array for each provided strided array function.' );\n\t\t}\n\t}\n\tif ( data && data.length !== nfcns ) {\n\t\tthrow new Error( 'invalid argument. The third argument must have the same number of elements as the first argument.' );\n\t}\n\t// Determine whether the strided array interface includes offsets:\n\tif ( (narrays*3)+1 === nargs ) {\n\t\thasOffsets = false;\n\t} else if ( (narrays*4)+1 === nargs ) {\n\t\thasOffsets = true;\n\t} else {\n\t\tthrow new Error( 'invalid argument. Fourth argument is incompatible with the number of strided input and output arrays.' );\n\t}\n\t// Determine the \"stride\" for accessing related arguments:\n\tif ( hasOffsets ) {\n\t\tstrideArgs = 4;\n\t} else {\n\t\tstrideArgs = 3;\n\t}\n\t// Compute the index of the first output strided array argument:\n\tiout = ( nin*strideArgs ) + 1;\n\n\treturn dispatcher;\n\n\t/**\n\t* Strided array function interface which performs multiple dispatch.\n\t*\n\t* @private\n\t* @param {integer} N - number of indexed elements\n\t* @param {*} dtypeX - data type for `x`\n\t* @param {Collection} x - strided array\n\t* @param {integer} strideX - index increment for `x`\n\t* @param {...(Collection|integer|NonNegativeInteger)} args - array arguments (data types, arrays, strides, and offsets)\n\t* @throws {Error} insufficient arguments\n\t* @throws {Error} too many arguments\n\t* @throws {TypeError} first argument must be an integer\n\t* @throws {TypeError} input array strides must be integers\n\t* @throws {TypeError} output array strides must be integers\n\t* @throws {TypeError} input array offsets must be nonnegative integers\n\t* @throws {TypeError} output array offsets must be nonnegative integers\n\t* @throws {TypeError} input array arguments must be array-like objects\n\t* @throws {TypeError} output array arguments must be array-like objects\n\t* @throws {RangeError} input array arguments must have sufficient elements based on the associated stride and the number of indexed elements\n\t* @throws {RangeError} output array arguments must have sufficient elements based on the associated stride and the number of indexed elements\n\t* @throws {TypeError} unable to resolve a strided array function supporting the provided array argument data types\n\t* @returns {(Collection|Array|void)} destination array(s)\n\t*/\n\tfunction dispatcher() {\n\t\tvar strides;\n\t\tvar offsets;\n\t\tvar arrays;\n\t\tvar dtypes;\n\t\tvar shape;\n\t\tvar argc;\n\t\tvar idx;\n\t\tvar N;\n\t\tvar v;\n\t\tvar f;\n\t\tvar i;\n\t\tvar j;\n\n\t\targc = arguments.length;\n\t\tif ( argc !== nargs ) {\n\t\t\tif ( argc < nargs ) {\n\t\t\t\tthrow new Error( 'invalid invocation. Insufficient arguments.' );\n\t\t\t}\n\t\t\tthrow new Error( 'invalid invocation. Too many arguments.' );\n\t\t}\n\t\tN = arguments[ 0 ];\n\t\tif ( !isInteger( N ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. First argument must be an integer. Value: `%s`.', N ) );\n\t\t}\n\t\tshape = [ N ];\n\n\t\t// data types for both input and output strided arrays are every `strideArgs` arguments beginning from the second argument...\n\t\tdtypes = [];\n\t\tfor ( i = 1; i < nargs; i += strideArgs ) {\n\t\t\tdtypes.push( arguments[ i ] );\n\t\t}\n\n\t\t// Strides for both input and output strided arrays are every `strideArgs` arguments beginning from the fourth argument...\n\t\tstrides = [];\n\t\tfor ( i = 3; i < nargs; i += strideArgs ) {\n\t\t\tv = arguments[ i ];\n\t\t\tif ( !isInteger( v ) ) {\n\t\t\t\tif ( i < iout ) {\n\t\t\t\t\tthrow new TypeError( format( 'invalid argument. Input array stride must be an integer. Value: `%s`.', v ) );\n\t\t\t\t} else {\n\t\t\t\t\tthrow new TypeError( format( 'invalid argument. Output array stride must be an integer. Value: `%s`.', v ) );\n\t\t\t\t}\n\t\t\t}\n\t\t\tstrides.push( v );\n\t\t}\n\t\tif ( hasOffsets ) {\n\t\t\t// Offsets for both input and output strided arrays are every `strideArgs` arguments beginning from the fifth argument...\n\t\t\toffsets = [];\n\t\t\tfor ( i = 4; i < nargs; i += strideArgs ) {\n\t\t\t\tv = arguments[ i ];\n\t\t\t\tif ( !isNonNegativeInteger( v ) ) {\n\t\t\t\t\tif ( i < iout ) {\n\t\t\t\t\t\tthrow new TypeError( format( 'invalid argument. Input array offset must be a nonnegative integer. Value: `%s`.', v ) );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthrow new TypeError( format( 'invalid argument. Output array offset must be a nonnegative integer. Value: `%s`.', v ) );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\toffsets.push( v );\n\t\t\t}\n\t\t}\n\t\t// Input and output strided arrays are every `strideArgs` arguments beginning from the third argument...\n\t\tarrays = [];\n\t\tfor ( i = 2; i < nargs; i += strideArgs ) {\n\t\t\tv = arguments[ i ];\n\t\t\tif ( !isCollection( v ) ) {\n\t\t\t\tif ( i < iout ) {\n\t\t\t\t\tthrow new TypeError( format( 'invalid argument. Input array must be an array-like object. Value: `%s`.', v ) );\n\t\t\t\t} else {\n\t\t\t\t\tthrow new TypeError( format( 'invalid argument. Output array must be an array-like object. Value: `%s`.', v ) );\n\t\t\t\t}\n\t\t\t}\n\t\t\tj = (i-2) / strideArgs;\n\t\t\tif ( hasOffsets ) {\n\t\t\t\tidx = offsets[ j ] + ( (N-1)*strides[j] );\n\t\t\t\tif ( N > 0 && (idx < 0 || idx >= v.length) ) {\n\t\t\t\t\tif ( i < iout ) {\n\t\t\t\t\t\tthrow new RangeError( 'invalid argument. Input array has insufficient elements based on the associated stride and the number of indexed elements.' );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthrow new RangeError( 'invalid argument. Output array has insufficient elements based on the associated stride and the number of indexed elements.' );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if ( (N-1)*abs(strides[j]) >= v.length ) {\n\t\t\t\tif ( i < iout ) {\n\t\t\t\t\tthrow new RangeError( 'invalid argument. Input array has insufficient elements based on the associated stride and the number of indexed elements.' );\n\t\t\t\t} else {\n\t\t\t\t\tthrow new RangeError( 'invalid argument. Output array has insufficient elements based on the associated stride and the number of indexed elements.' );\n\t\t\t\t}\n\t\t\t}\n\t\t\tarrays.push( v );\n\t\t}\n\t\t// Resolve the strided array function satisfying the input array types:\n\t\tidx = indexOfTypes( nfcns, narrays, types, narrays, 1, 0, dtypes, 1, 0 ); // eslint-disable-line max-len\n\n\t\t// Check whether we were able to successfully resolve a strided array function:\n\t\tif ( idx < 0 ) {\n\t\t\tthrow new TypeError( 'invalid arguments. Unable to resolve a strided array function supporting the provided array argument data types.' );\n\t\t}\n\t\t// Retrieve the strided array function:\n\t\tif ( fcn ) {\n\t\t\tf = fcn;\n\t\t} else {\n\t\t\tf = fcns[ idx ];\n\t\t}\n\t\t// Evaluate the strided array function:\n\t\tif ( data ) {\n\t\t\tif ( hasOffsets ) {\n\t\t\t\tf( arrays, shape, strides, offsets, data[ idx ] );\n\t\t\t} else {\n\t\t\t\tf( arrays, shape, strides, data[ idx ] );\n\t\t\t}\n\t\t} else if ( hasOffsets ) {\n\t\t\tf( arrays, shape, strides, offsets );\n\t\t} else {\n\t\t\tf( arrays, shape, strides );\n\t\t}\n\t\tif ( nout === 1 ) {\n\t\t\treturn arrays[ narrays-1 ];\n\t\t}\n\t\tif ( nout === 0 ) {\n\t\t\treturn;\n\t\t}\n\t\treturn arrays.slice( nin );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default dispatch;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 first row index at which a given one-dimensional array of types can be found in a two-dimensional reference array of types (or `-1` if not found).\n*\n* ## Notes\n*\n* - The intended use case for this function is for type dispatch (i.e., given a set of array data types, find a matching interface according the interface's accepted array data types).\n* - The function assumes that `x` is stored in row-major order.\n* - The function assumes that the number of indexed elements in `y` equals the number of columns in `x`.\n* - The function returns a row index. To convert to a linear index, multiply `strideX1` by the return value.\n*\n* @private\n* @param {NonNegativeInteger} N - number of rows in `x` (size of first dimension)\n* @param {NonNegativeInteger} M - number of columns in `x` (size of second dimension)\n* @param {ArrayLikeObject} x - input two-dimensional reference array\n* @param {integer} strideX1 - `x` stride length along first dimension\n* @param {integer} strideX2 - `x` stride length along second dimension\n* @param {NonNegativeInteger} offsetX - `x` starting index\n* @param {ArrayLikeObject} y - search array\n* @param {integer} strideY - `y` stride length\n* @param {NonNegativeInteger} offsetY - `y` starting index\n* @returns {integer} row index (if found) and `-1` otherwise\n*\n* @example\n* // Define a reference array to search:\n* var types = [\n* 'float64', 'float64', 'float64',\n* 'float32', 'float32', 'float32',\n* 'uint32', 'uint32', 'float64',\n* 'int32', 'int32', 'float64',\n* 'uint16', 'uint16', 'float64',\n* 'int16', 'int16', 'float64',\n* 'uint8', 'uint8', 'float64',\n* 'int8', 'int8', 'float64'\n* ];\n*\n* // Define reference array dimensions:\n* var N = 8; // rows\n* var M = 3; // columns\n*\n* // Define a search array:\n* y1 = [\n* 'float32', 'float32', 'float32',\n* ];\n*\n* // Find the list of types:\n* var r1 = indexOfTypes( N, M, types, M, 1, 0, y1, 1, 0 );\n* // returns 1\n*\n// Define a search array:\n* y2 = [\n* 'float32', 'float32', 'float64',\n* ];\n*\n* // Find the list of types:\n* var r2 = indexOfTypes( N, M, types, M, 1, 0, y2, 1, 0 );\n* // returns -1\n*/\nfunction indexOfTypes( N, M, x, strideX1, strideX2, offsetX, y, strideY, offsetY ) { // eslint-disable-line max-len\n\tvar ix;\n\tvar iy;\n\tvar i;\n\tvar j;\n\n\t// Search for the first row which matches `y`...\n\tix = offsetX;\n\tfor ( i = 0; i < N; i++ ) {\n\t\tiy = offsetY;\n\t\tfor ( j = 0; j < M; j++ ) {\n\t\t\tif ( x[ ix+(j*strideX2) ] !== y[ iy ] ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tiy += strideY;\n\t\t}\n\t\t// If we successfully iterated over all columns, then that means we've found a match...\n\t\tif ( j === M ) {\n\t\t\treturn i;\n\t\t}\n\t\tix += strideX1;\n\t}\n\treturn -1;\n}\n\n\n// EXPORTS //\n\nexport default indexOfTypes;\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// VARIABLES //\n\nvar SETTERS = {\n\t'complex128': setComplex128,\n\t'complex64': setComplex64,\n\t'default': setArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Sets an element in a `Complex128Array`.\n*\n* @private\n* @param {Complex128Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @param {(Collection|Complex|ComplexArray)} value - value(s)\n*\n* @example\n* import Complex128Array from '@stdlib/array/complex128';\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 arr = new Complex128Array( [ 1, 2, 3, 4 ] );\n*\n* setComplex128( arr, 1, new Complex128( 10.0, 11.0 ) );\n* var v = arr.get( 1 );\n* // returns \n*\n* var re = real( v );\n* // returns 10.0\n*\n* var im = imag( v );\n* // returns 11.0\n*/\nfunction setComplex128( arr, idx, value ) {\n\tarr.set( value, idx );\n}\n\n/**\n* Sets an element in a `Complex64Array`.\n*\n* @private\n* @param {Complex64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @param {(Collection|Complex|ComplexArray)} value - value(s)\n*\n* @example\n* import Complex64Array from '@stdlib/array/complex64';\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 arr = new Complex64Array( [ 1, 2, 3, 4 ] );\n*\n* setComplex64( arr, 1, new Complex64( 10.0, 11.0 ) );\n* var v = arr.get( 1 );\n* // returns \n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 11.0\n*/\nfunction setComplex64( arr, idx, value ) {\n\tarr.set( value, idx );\n}\n\n/**\n* Sets an element in an array-like object supporting the get/set protocol.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @param {(Collection|Complex|ComplexArray)} value - value(s)\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* function get( idx ) {\n* return arr[ idx ];\n* }\n*\n* function set( value, idx ) {\n* arr[ idx ] = value;\n* }\n*\n* arr.get = get;\n* arr.set = set;\n*\n* setArrayLike( arr, 2, 10 );\n*\n* var v = arr[ 2 ];\n* // returns 10\n*/\nfunction setArrayLike( arr, idx, value ) {\n\tarr.set( value, idx );\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for setting an element in an array-like object supporting the get/set protocol.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import Complex64Array from '@stdlib/array/complex64';\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* import dtype from '@stdlib/array/dtype';\n*\n* var arr = new Complex64Array( [ 1, 2, 3, 4 ] );\n*\n* var set = setter( dtype( arr ) );\n* set( arr, 1, new Complex64( 10.0, 11.0 ) );\n*\n* var v = arr.get( 1 );\n* // returns \n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 11.0\n*/\nfunction setter( dtype ) {\n\tvar f = SETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn SETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default setter;\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// VARIABLES //\n\nvar SETTERS = {\n\t'float64': setFloat64,\n\t'float32': setFloat32,\n\t'int32': setInt32,\n\t'int16': setInt16,\n\t'int8': setInt8,\n\t'uint32': setUint32,\n\t'uint16': setUint16,\n\t'uint8': setUint8,\n\t'uint8c': setUint8c,\n\t'generic': setGeneric,\n\t'default': setArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Sets an element in a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @param {number} value - value to set\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* var arr = new Float64Array( 4 );\n*\n* setFloat64( arr, 2, 3.0 );\n*\n* var v = arr[ 2 ];\n* // returns 3.0\n*/\nfunction setFloat64( arr, idx, value ) {\n\tarr[ idx ] = value;\n}\n\n/**\n* Sets an element in a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @param {number} value - value to set\n*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n*\n* var arr = new Float32Array( 4 );\n*\n* setFloat32( arr, 2, 3.0 );\n*\n* var v = arr[ 2 ];\n* // returns 3.0\n*/\nfunction setFloat32( arr, idx, value ) {\n\tarr[ idx ] = value;\n}\n\n/**\n* Sets an element in an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @param {number} value - value to set\n*\n* @example\n* import Int32Array from '@stdlib/array/int32';\n*\n* var arr = new Int32Array( 4 );\n*\n* setInt32( arr, 2, 3 );\n*\n* var v = arr[ 2 ];\n* // returns 3\n*/\nfunction setInt32( arr, idx, value ) {\n\tarr[ idx ] = value;\n}\n\n/**\n* Sets an element in an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @param {number} value - value to set\n*\n* @example\n* import Int16Array from '@stdlib/array/int16';\n*\n* var arr = new Int16Array( 4 );\n*\n* setInt16( arr, 2, 3 );\n*\n* var v = arr[ 2 ];\n* // returns 3\n*/\nfunction setInt16( arr, idx, value ) {\n\tarr[ idx ] = value;\n}\n\n/**\n* Sets an element in an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @param {number} value - value to set\n*\n* @example\n* import Int8Array from '@stdlib/array/int8';\n*\n* var arr = new Int8Array( 4 );\n*\n* setInt8( arr, 2, 3 );\n*\n* var v = arr[ 2 ];\n* // returns 3\n*/\nfunction setInt8( arr, idx, value ) {\n\tarr[ idx ] = value;\n}\n\n/**\n* Sets an element in a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @param {number} value - value to set\n*\n* @example\n* import Uint32Array from '@stdlib/array/uint32';\n*\n* var arr = new Uint32Array( 4 );\n*\n* setUint32( arr, 2, 3 );\n*\n* var v = arr[ 2 ];\n* // returns 3\n*/\nfunction setUint32( arr, idx, value ) {\n\tarr[ idx ] = value;\n}\n\n/**\n* Sets an element in a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @param {number} value - value to set\n*\n* @example\n* import Uint16Array from '@stdlib/array/uint16';\n*\n* var arr = new Uint16Array( 4 );\n*\n* setUint16( arr, 2, 3 );\n*\n* var v = arr[ 2 ];\n* // returns 3\n*/\nfunction setUint16( arr, idx, value ) {\n\tarr[ idx ] = value;\n}\n\n/**\n* Sets an element in a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @param {number} value - value to set\n*\n* @example\n* import Uint8Array from '@stdlib/array/uint8';\n*\n* var arr = new Uint8Array( 4 );\n*\n* setUint8( arr, 2, 3 );\n*\n* var v = arr[ 2 ];\n* // returns 3\n*/\nfunction setUint8( arr, idx, value ) {\n\tarr[ idx ] = value;\n}\n\n/**\n* Sets an element in a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @param {number} value - value to set\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array/uint8c';\n*\n* var arr = new Uint8ClampedArray( 4 );\n*\n* setUint8c( arr, 2, 3 );\n*\n* var v = arr[ 2 ];\n* // returns 3\n*/\nfunction setUint8c( arr, idx, value ) {\n\tarr[ idx ] = value;\n}\n\n/**\n* Sets an element in a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @param {*} value - value to set\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* setGeneric( arr, 2, 3 );\n*\n* var v = arr[ 2 ];\n* // returns 3\n*/\nfunction setGeneric( arr, idx, value ) {\n\tarr[ idx ] = value;\n}\n\n/**\n* Sets an element in an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @param {*} value - value to set\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* setArrayLike( arr, 2, 3 );\n*\n* var v = arr[ 2 ];\n* // returns 3\n*/\nfunction setArrayLike( arr, idx, value ) {\n\tarr[ idx ] = value;\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for setting an element in an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array/dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var set = setter( dtype( arr ) );\n* set( arr, 2, 3 );\n*\n* var v = arr[ 2 ];\n* // returns 3\n*/\nfunction setter( dtype ) {\n\tvar f = SETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn SETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default setter;\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// MAIN //\n\n/**\n* Returns the index offset which specifies the location of the first indexed value in a strided array.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {integer} stride - index increment\n* @returns {NonNegativeInteger} offset - offset\n*\n* @example\n* var offset = stride2offset( 10, -10 );\n* // returns 90\n*/\nfunction stride2offset( N, stride ) {\n\tif ( stride > 0 ) {\n\t\treturn 0;\n\t}\n\treturn ( 1 - N ) * stride;\n}\n\n\n// EXPORTS //\n\nexport default stride2offset;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Applies a unary callback to elements in a strided input array and assigns results to elements in a strided output array.\n*\n* @private\n* @param {ArrayLikeObject} arrays - array-like object containing one input array and one output array\n* @param {NonNegativeIntegerArray} shape - array-like object containing a single element, the number of indexed elements\n* @param {IntegerArray} strides - array-like object containing the stride lengths for the input and output arrays\n* @param {NonNegativeIntegerArray} offsets - array-like object containing the starting indices (i.e., index offsets) for the input and output arrays\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var y = new Float64Array( x.length );\n*\n* var shape = [ x.length ];\n* var strides = [ 1, 1 ];\n* var offsets = [ 0, 0 ];\n*\n* unary( [ x, y ], shape, strides, offsets, scale );\n*\n* console.log( y );\n* // => [ 10.0, 20.0, 30.0, 40.0, 50.0 ]\n*/\nfunction unary( arrays, shape, strides, offsets, fcn ) {\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar x;\n\tvar y;\n\tvar N;\n\tvar i;\n\n\tN = shape[ 0 ];\n\tif ( N <= 0 ) {\n\t\treturn;\n\t}\n\tix = offsets[ 0 ];\n\tiy = offsets[ 1 ];\n\tsx = strides[ 0 ];\n\tsy = strides[ 1 ];\n\tx = arrays[ 0 ];\n\ty = arrays[ 1 ];\n\tfor ( i = 0; i < N; i++ ) {\n\t\ty[ iy ] = fcn( x[ ix ] );\n\t\tix += sx;\n\t\tiy += sy;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary;\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* Applies a unary callback to elements in a strided input array and assigns results to elements in a strided output array.\n*\n* @private\n* @param {ArrayLikeObject} arrays - array-like object containing one input array and one output array\n* @param {NonNegativeIntegerArray} shape - array-like object containing a single element, the number of indexed elements\n* @param {IntegerArray} strides - array-like object containing the stride lengths for the input and output arrays\n* @param {NonNegativeIntegerArray} offsets - array-like object containing the starting indices (i.e., index offsets) for the input and output arrays\n* @param {Array} accessors - array-like object containing accessors for the input and output arrays\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* function get( buf, idx ) {\n* return buf[ idx ] * 2.0;\n* }\n*\n* function set( buf, idx, value ) {\n* buf[ idx ] = value;\n* }\n*\n* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var y = new Float64Array( x.length );\n*\n* var shape = [ x.length ];\n* var strides = [ 1, 1 ];\n* var offsets = [ 0, 0 ];\n*\n* unary( [ x, y ], shape, strides, offsets, [ get, set ], scale );\n*\n* console.log( y );\n* // => [ 20.0, 40.0, 60.0, 80.0, 100.0 ]\n*/\nfunction unary( arrays, shape, strides, offsets, accessors, fcn ) {\n\tvar xget;\n\tvar yset;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar x;\n\tvar y;\n\tvar N;\n\tvar i;\n\n\tN = shape[ 0 ];\n\tif ( N <= 0 ) {\n\t\treturn;\n\t}\n\tix = offsets[ 0 ];\n\tiy = offsets[ 1 ];\n\tsx = strides[ 0 ];\n\tsy = strides[ 1 ];\n\tx = arrays[ 0 ];\n\ty = arrays[ 1 ];\n\txget = accessors[ 0 ];\n\tyset = accessors[ 1 ];\n\tfor ( i = 0; i < N; i++ ) {\n\t\tyset( y, iy, fcn( xget( x, ix ) ) );\n\t\tix += sx;\n\t\tiy += sy;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isAccessorArray from '@stdlib/array/base/assert/is-accessor-array';\nimport accessorGetter from '@stdlib/array/base/accessor-getter';\nimport accessorSetter from '@stdlib/array/base/accessor-setter';\nimport getter from '@stdlib/array/base/getter';\nimport setter from '@stdlib/array/base/setter';\nimport dtype from '@stdlib/array/dtype';\nimport strided from './unary.js';\nimport accessors from './accessors.js';\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a strided input array and assigns results to elements in a strided output array.\n*\n* @param {ArrayLikeObject} arrays - array-like object containing one input array and one output array\n* @param {NonNegativeIntegerArray} shape - array-like object containing a single element, the number of indexed elements\n* @param {IntegerArray} strides - array-like object containing the stride lengths for the input and output arrays\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var y = new Float64Array( x.length );\n*\n* var shape = [ x.length ];\n* var strides = [ 1, 1 ];\n*\n* unary( [ x, y ], shape, strides, scale );\n*\n* console.log( y );\n* // => [ 10.0, 20.0, 30.0, 40.0, 50.0 ]\n*/\nfunction unary( arrays, shape, strides, fcn ) {\n\tvar xget;\n\tvar yset;\n\tvar x;\n\tvar y;\n\n\tx = arrays[ 0 ];\n\tif ( isAccessorArray( x ) ) {\n\t\txget = accessorGetter( dtype( x ) );\n\t}\n\ty = arrays[ 1 ];\n\tif ( isAccessorArray( y ) ) {\n\t\tyset = accessorSetter( dtype( y ) );\n\t}\n\tif ( xget || yset ) {\n\t\txget = xget || getter( dtype( x ) );\n\t\tyset = yset || setter( dtype( y ) );\n\t\treturn accessors( arrays, shape, strides, [ xget, yset ], fcn );\n\t}\n\treturn strided( arrays, shape, strides, fcn );\n}\n\n\n// EXPORTS //\n\nexport default unary;\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 stride2offset from './../../../base/stride2offset';\nimport ndarray from './accessors.ndarray.js';\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a strided input array and assigns results to elements in a strided output array.\n*\n* @private\n* @param {ArrayLikeObject} arrays - array-like object containing one input array and one output array\n* @param {NonNegativeIntegerArray} shape - array-like object containing a single element, the number of indexed elements\n* @param {IntegerArray} strides - array-like object containing the stride lengths for the input and output arrays\n* @param {Array} accessors - array-like object containing accessors for the input and output arrays\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* function get( buf, idx ) {\n* return buf[ idx ] * 2.0;\n* }\n*\n* function set( buf, idx, value ) {\n* buf[ idx ] = value;\n* }\n*\n* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var y = new Float64Array( x.length );\n*\n* var shape = [ x.length ];\n* var strides = [ 1, 1 ];\n*\n* unary( [ x, y ], shape, strides, [ get, set ], scale );\n*\n* console.log( y );\n* // => [ 20.0, 40.0, 60.0, 80.0, 100.0 ]\n*/\nfunction unary( arrays, shape, strides, accessors, fcn ) {\n\tvar offsets;\n\tvar N;\n\n\tN = shape[ 0 ];\n\toffsets = [\n\t\tstride2offset( N, strides[ 0 ] ),\n\t\tstride2offset( N, strides[ 1 ] )\n\t];\n\treturn ndarray( arrays, shape, strides, offsets, accessors, fcn );\n}\n\n\n// EXPORTS //\n\nexport default unary;\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 stride2offset from './../../../base/stride2offset';\nimport ndarray from './unary.ndarray.js';\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a strided input array and assigns results to elements in a strided output array.\n*\n* @private\n* @param {ArrayLikeObject} arrays - array-like object containing one input array and one output array\n* @param {NonNegativeIntegerArray} shape - array-like object containing a single element, the number of indexed elements\n* @param {IntegerArray} strides - array-like object containing the stride lengths for the input and output arrays\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var y = new Float64Array( x.length );\n*\n* var shape = [ x.length ];\n* var strides = [ 1, 1 ];\n*\n* unary( [ x, y ], shape, strides, scale );\n*\n* console.log( y );\n* // => [ 10.0, 20.0, 30.0, 40.0, 50.0 ]\n*/\nfunction unary( arrays, shape, strides, fcn ) {\n\tvar offsets;\n\tvar N;\n\n\tN = shape[ 0 ];\n\toffsets = [\n\t\tstride2offset( N, strides[ 0 ] ),\n\t\tstride2offset( N, strides[ 1 ] )\n\t];\n\treturn ndarray( arrays, shape, strides, offsets, fcn );\n}\n\n\n// EXPORTS //\n\nexport default unary;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isAccessorArray from '@stdlib/array/base/assert/is-accessor-array';\nimport accessorGetter from '@stdlib/array/base/accessor-getter';\nimport accessorSetter from '@stdlib/array/base/accessor-setter';\nimport getter from '@stdlib/array/base/getter';\nimport setter from '@stdlib/array/base/setter';\nimport dtype from '@stdlib/array/dtype';\nimport strided from './unary.ndarray.js';\nimport accessors from './accessors.ndarray.js';\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a strided input array and assigns results to elements in a strided output array.\n*\n* @param {ArrayLikeObject} arrays - array-like object containing one input array and one output array\n* @param {NonNegativeIntegerArray} shape - array-like object containing a single element, the number of indexed elements\n* @param {IntegerArray} strides - array-like object containing the stride lengths for the input and output arrays\n* @param {NonNegativeIntegerArray} offsets - array-like object containing the starting indices (i.e., index offsets) for the input and output arrays\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var y = new Float64Array( x.length );\n*\n* var shape = [ x.length ];\n* var strides = [ 1, 1 ];\n* var offsets = [ 0, 0 ];\n*\n* unary( [ x, y ], shape, strides, offsets, scale );\n*\n* console.log( y );\n* // => [ 10.0, 20.0, 30.0, 40.0, 50.0 ]\n*/\nfunction unary( arrays, shape, strides, offsets, fcn ) {\n\tvar xget;\n\tvar yset;\n\tvar x;\n\tvar y;\n\n\tx = arrays[ 0 ];\n\tif ( isAccessorArray( x ) ) {\n\t\txget = accessorGetter( dtype( x ) );\n\t}\n\ty = arrays[ 1 ];\n\tif ( isAccessorArray( y ) ) {\n\t\tyset = accessorSetter( dtype( y ) );\n\t}\n\tif ( xget || yset ) {\n\t\txget = xget || getter( dtype( x ) );\n\t\tyset = yset || setter( dtype( y ) );\n\t\treturn accessors( arrays, shape, strides, offsets, [ xget, yset ], fcn ); // eslint-disable-line max-len\n\t}\n\treturn strided( arrays, shape, strides, offsets, fcn );\n}\n\n\n// EXPORTS //\n\nexport default unary;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Apply a unary callback to elements in a strided input array and assign results to elements in a strided output array.\n*\n* @module @stdlib/strided/base/unary\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import unary from '@stdlib/strided/base/unary';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var y = new Float64Array( x.length );\n*\n* var shape = [ x.length ];\n* var strides = [ 1, 1 ];\n*\n* unary( [ x, y ], shape, strides, scale );\n*\n* console.log( y );\n* // => [ 10.0, 20.0, 30.0, 40.0, 50.0 ]\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import unary from '@stdlib/strided/base/unary';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var y = new Float64Array( x.length );\n*\n* var shape = [ x.length ];\n* var strides = [ 1, 1 ];\n* var offsets = [ 0, 0 ];\n*\n* unary.ndarray( [ x, y ], shape, strides, offsets, scale );\n*\n* console.log( y );\n* // => [ 10.0, 20.0, 30.0, 40.0, 50.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) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport DTYPES from './dtypes.json';\n\n\n// MAIN //\n\n/**\n* Returns a list of strided array data type strings.\n*\n* @returns {StringArray} list of strided array data type strings\n*\n* @example\n* var list = dtypes();\n* // returns [...]\n*/\nfunction dtypes() {\n\treturn DTYPES.slice();\n}\n\n\n// EXPORTS //\n\nexport default dtypes;\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 { enum as ndtypes } from '@stdlib/ndarray/dtypes';\n\n\n// VARIABLES //\n\nvar dt = ndtypes();\n\n\n// MAIN //\n\n/**\n* Returns an object mapping supported data strings to enumeration constants for purposes of C inter-operation.\n*\n* ## Notes\n*\n* - Downstream consumers of this mapping should **not** rely on specific integer values (e.g., `INT8 == 0`). Instead, the object should be used in an opaque manner.\n* - The main purpose of this function is JavaScript and C inter-operation of strided arrays.\n*\n* @private\n* @returns {Object} object mapping supported data strings strings to enumeration constants\n*\n* @example\n* var table = enumeration();\n* // returns \n*/\nfunction enumeration() {\n\t// NOTE: the returned object should match the C `dtypes.h` enumeration!!!!\n\treturn {\n\t\t'bool': dt[ 'bool' ],\n\n\t\t'int8': dt[ 'int8' ],\n\t\t'uint8': dt[ 'uint8' ],\n\t\t'uint8c': dt[ 'uint8c' ],\n\t\t'int16': dt[ 'int16' ],\n\t\t'uint16': dt[ 'uint16' ],\n\t\t'int32': dt[ 'int32' ],\n\t\t'uint32': dt[ 'uint32' ],\n\t\t'int64': dt[ 'int64' ],\n\t\t'uint64': dt[ 'uint64' ],\n\n\t\t'float32': dt[ 'float32' ],\n\t\t'float64': dt[ 'float64' ],\n\n\t\t'complex64': dt[ 'complex64' ],\n\t\t'complex128': dt[ 'complex128' ],\n\n\t\t'binary': dt[ 'binary' ],\n\n\t\t'generic': dt[ 'generic' ],\n\n\t\t'notype': dt[ 'notype' ],\n\n\t\t'userdefined_type': dt[ 'userdefined_type' ]\n\t};\n}\n\n\n// EXPORTS //\n\nexport default enumeration;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 a list of strided array data types.\n*\n* @module @stdlib/strided/dtypes\n*\n* @example\n* import dtypes from '@stdlib/strided/dtypes';\n*\n* var list = dtypes();\n* // returns [...]\n*\n* @example\n* import { enum as enumeration } from '@stdlib/strided/dtypes';\n*\n* var table = enumeration();\n* // returns {...}\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport enumeration from './enum.js';\nimport assign from './assign.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'enum', enumeration );\nassign( main, enumeration() );\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 setReadOnly from '@stdlib/utils/define-read-only-property';\nimport objectKeys from '@stdlib/utils/keys';\n\n\n// MAIN //\n\n/**\n* Copies all enumerable own properties from a source object to a target object as enumerable read-only properties.\n*\n* @private\n* @param {Object} target - target object\n* @param {Object} source - source object\n* @returns {Object} modified target object\n*\n* @example\n* var source = {\n* 'beep': 'boop'\n* };\n* var target = {};\n*\n* var out = assign( target, source );\n* // returns \n*\n* var bool = ( out === target );\n* // returns true\n*\n* var v = target.beep;\n* // returns 'boop'\n*/\nfunction assign( target, source ) {\n\tvar keys;\n\tvar k;\n\tvar i;\n\n\tkeys = objectKeys( source );\n\tfor ( i = 0; i < keys.length; i++ ) {\n\t\tk = keys[ i ];\n\t\tsetReadOnly( target, k, source[ k ] );\n\t}\n\treturn target;\n}\n\n\n// EXPORTS //\n\nexport default assign;\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 objectInverse from '@stdlib/utils/object-inverse';\nimport { enum as enumeration } from './../../../dtypes';\n\n\n// VARIABLES //\n\nvar hash = objectInverse( enumeration(), {\n\t'duplicates': false\n});\n\n\n// MAIN //\n\n/**\n* Returns the data type string associated with a strided array data type enumeration constant.\n*\n* @param {integer} dtype - data type enumeration constant\n* @returns {(string|null)} data type string or null\n*\n* @example\n* import str2enum from '@stdlib/strided/base/dtype-str2enum';\n*\n* var v = str2enum( 'float64' );\n* // returns \n*\n* var dt = enum2str( v );\n* // returns 'float64'\n*/\nfunction enum2str( dtype ) {\n\tvar v = hash[ dtype ];\n\treturn ( typeof v === 'string' ) ? v : null; // note: we include this guard to prevent walking the prototype chain\n}\n\n\n// EXPORTS //\n\nexport default enum2str;\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 { enum as enumeration } from './../../../dtypes';\n\n\n// VARIABLES //\n\nvar ENUM = enumeration();\n\n\n// MAIN //\n\n/**\n* Returns the enumeration constant associated with a strided array data type string.\n*\n* ## Notes\n*\n* - Downstream consumers of this function should **not** rely on specific integer values (e.g., `INT8 == 0`). Instead, the function should be used in an opaque manner.\n*\n* @param {string} dtype - data type string\n* @returns {(integer|null)} integer value or null\n*\n* @example\n* var v = str2enum( 'int8' );\n* // returns \n*/\nfunction str2enum( dtype ) {\n\tvar v = ENUM[ dtype ];\n\treturn ( typeof v === 'number' ) ? v : null; // note: we include this guard to prevent walking the prototype chain\n}\n\n\n// EXPORTS //\n\nexport default str2enum;\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 enum2str from './../../../base/dtype-enum2str';\nimport str2enum from './../../../base/dtype-str2enum';\n\n\n// MAIN //\n\n/**\n* Returns the enumeration constant associated with a supported strided array data type value.\n*\n* ## Notes\n*\n* - Downstream consumers of this function should **not** rely on specific integer values (e.g., `INT8 == 0`). Instead, the function should be used in an opaque manner.\n*\n* @param {*} dtype - data type value\n* @returns {(integer|null)} enumeration constant or null\n*\n* @example\n* var v = resolve( 'int8' );\n* // returns \n*/\nfunction resolve( dtype ) {\n\tvar t = ( typeof dtype );\n\tif ( t === 'number' ) {\n\t\treturn ( enum2str( dtype ) ) ? dtype : null;\n\t}\n\tif ( t === 'string' ) {\n\t\treturn str2enum( dtype );\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nexport default resolve;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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) 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 isDataType from './../../base/assert/is-data-type';\nimport format from '@stdlib/string/format';\n\n\n// MAIN //\n\n/**\n* Returns the data type of a provided ndarray.\n*\n* @param {ndarrayLike} x - input ndarray\n* @throws {TypeError} must provide an ndarray having a supported data type\n* @returns {string} data type\n*\n* @example\n* import zeros from '@stdlib/ndarray/zeros';\n*\n* var x = zeros( [ 3, 3, 3 ], {\n* 'dtype': 'float64'\n* });\n*\n* var dt = dtype( x );\n* // returns 'float64'\n*/\nfunction dtype( x ) {\n\tvar dt;\n\n\t// Note: we intentionally avoid rigorous ndarray checks to minimize performance impacts. This obviously means that non-ndarray-like objects can sneak through, but this is likely all right for the purposes of this function...\n\tif ( typeof x !== 'object' || x === null ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide an ndarray. Value: `%s`.', x ) );\n\t}\n\tdt = x.dtype;\n\tif ( isDataType( dt ) ) {\n\t\treturn dt;\n\t}\n\t// A data type is essential for interpreting the memory associated with an ndarray object, so no fallbacks or workarounds for data type resolution...\n\tthrow new TypeError( format( 'invalid argument. Must provide an ndarray having a supported data type. Value: `%s`.', dt ) );\n}\n\n\n// EXPORTS //\n\nexport default dtype;\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 enum2str from './../../../base/dtype-enum2str';\nimport str2enum from './../../../base/dtype-str2enum';\n\n\n// MAIN //\n\n/**\n* Returns the enumeration constant associated with a supported ndarray data type value.\n*\n* ## Notes\n*\n* - Downstream consumers of this function should **not** rely on specific integer values (e.g., `INT8 == 0`). Instead, the function should be used in an opaque manner.\n*\n* @param {*} dtype - data type value\n* @returns {(integer|null)} enumeration constant or null\n*\n* @example\n* var v = resolve( 'int8' );\n* // returns \n*/\nfunction resolve( dtype ) {\n\tvar t = ( typeof dtype );\n\tif ( t === 'number' ) {\n\t\treturn ( enum2str( dtype ) ) ? dtype : null;\n\t}\n\tif ( t === 'string' ) {\n\t\treturn str2enum( dtype );\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nexport default resolve;\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 isAccessorArray from '@stdlib/array/base/assert/is-accessor-array';\nimport accessorGetter from '@stdlib/array/base/accessor-getter';\nimport accessorSetter from '@stdlib/array/base/accessor-setter';\nimport getter from '@stdlib/array/base/getter';\nimport setter from '@stdlib/array/base/setter';\nimport numel from './../../../base/numel';\nimport getDType from './../../../base/dtype';\nimport getShape from './../../../base/shape';\nimport getStrides from './../../../base/strides';\nimport getOffset from './../../../base/offset';\nimport getOrder from './../../../base/order';\nimport getData from './../../../base/data-buffer';\n\n\n// MAIN //\n\n/**\n* Converts an ndarray-like object to an object likely to have the same \"shape\".\n*\n* ## Notes\n*\n* - This function is intended as a potential performance optimization. In V8, for example, even if two objects share common properties, if those properties were added in different orders or if one object has additional properties not shared by the other object, then those objects will have different \"hidden\" classes. If a function is provided many objects having different \"shapes\", some JavaScript VMs (e.g., V8) will consider the function \"megamorphic\" and fail to perform various runtime optimizations. Accordingly, the intent of this function is to standardize the \"shape\" of the object holding ndarray meta data to ensure that internal functions operating on ndarrays are provided consistent argument \"shapes\".\n*\n* - The returned object has the following properties:\n*\n* - **ref**: reference to the original ndarray-like object.\n* - **dtype**: underlying data type.\n* - **data**: data buffer.\n* - **length**: number of elements.\n* - **shape**: array dimensions.\n* - **strides**: array strides.\n* - **offset**: index offset.\n* - **order**: order.\n* - **accessorProtocol**: `boolean` indicating whether the data buffer supports the get/set protocol (i.e., uses accessors for getting and setting elements).\n* - **accessors**: a two-element array whose first element is an accessor for retrieving an ndarray element and whose second element is an accessor for setting an ndarray element.\n*\n* @param {ndarrayLike} x - ndarray-like object\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {Object} object containing ndarray meta data\n*\n* @example\n* import array from '@stdlib/ndarray/array';\n*\n* var x = array( [ [ 1, 2, 3 ], [ 4, 5, 6 ] ] );\n*\n* var obj = ndarraylike2object( x );\n* // returns {...}\n*/\nfunction ndarraylike2object( x ) {\n\tvar xbuf;\n\tvar bool;\n\tvar sh;\n\tvar dt;\n\n\txbuf = getData( x );\n\tsh = getShape( x, true );\n\tdt = getDType( x );\n\n\tbool = isAccessorArray( xbuf );\n\n\treturn {\n\t\t'ref': x,\n\t\t'dtype': dt,\n\t\t'data': xbuf,\n\t\t'length': numel( sh ),\n\t\t'shape': sh,\n\t\t'strides': getStrides( x, true ),\n\t\t'offset': getOffset( x ),\n\t\t'order': getOrder( x ),\n\t\t'accessorProtocol': bool,\n\t\t'accessors': ( bool ) ?\n\t\t\t[ accessorGetter( dt ), accessorSetter( dt ) ] :\n\t\t\t[ getter( dt ), setter( dt ) ]\n\t};\n}\n\n\n// EXPORTS //\n\nexport default ndarraylike2object;\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// MAIN //\n\n/**\n* Generates a linearly spaced numeric array whose elements increment by 1 starting from zero.\n*\n* @param {number} n - number of elements\n* @returns {Array} linearly spaced numeric array\n*\n* @example\n* var arr = zeroTo( 6 );\n* // returns [ 0, 1, 2, 3, 4, 5 ]\n*/\nfunction zeroTo( n ) {\n\tvar arr;\n\tvar i;\n\n\tarr = [];\n\tif ( n <= 0 ) {\n\t\treturn arr;\n\t}\n\tfor ( i = 0; i < n; i++ ) {\n\t\tarr.push( i );\n\t}\n\treturn arr;\n}\n\n\n// EXPORTS //\n\nexport default zeroTo;\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 arraylike2object from './../../../base/arraylike2object';\nimport reinterpret128 from '@stdlib/strided/base/reinterpret-complex128';\nimport reinterpret64 from '@stdlib/strided/base/reinterpret-complex64';\n\n\n// FUNCTIONS //\n\n/**\n* Fills an indexed array with linearly spaced numeric elements which increment by 1 starting from zero.\n*\n* @private\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, 0, 0, 0, 0 ];\n*\n* var arr = indexed( out, 1, 0 );\n* // returns [ 0, 1, 2, 3, 4, 5 ]\n*\n* @example\n* var out = [ 0, 0, 0, 0, 0, 0 ];\n*\n* var arr = indexed( out, -1, out.length-1 );\n* // returns [ 5, 4, 3, 2, 1, 0 ]\n*/\nfunction indexed( out, stride, offset ) {\n\tvar v;\n\tvar i;\n\n\ti = offset;\n\tv = 0;\n\twhile ( i >= 0 && i < out.length ) {\n\t\tout[ i ] = v;\n\t\ti += stride;\n\t\tv += 1;\n\t}\n\treturn out;\n}\n\n/**\n* Fills a complex number array with linearly spaced numeric elements which increment by 1 starting from zero.\n*\n* @private\n* @param {(Complex128Array|Complex64Array)} out - output complex number array\n* @param {(Float64Array|Float32Array)} data - output array data\n* @param {integer} stride - output array stride\n* @param {NonNegativeInteger} offset - output array index offset\n* @returns {(Complex128Array|Complex64Array)} output array\n*\n* @example\n* import Complex128Array from '@stdlib/array/complex128';\n* import reinterpret128 from '@stdlib/strided/base/reinterpret-complex128';\n*\n* var out = new Complex128Array( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n* // returns \n*\n* var data = reinterpret128( out, 0 );\n* // returns [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ]\n*\n* var arr = complex( out, data, 1, 0 );\n* // returns \n*\n* var bool = ( arr === out );\n* // returns true\n*\n* data = reinterpret128( out, 0 );\n* returns [ 0.0, 0.0, 1.0, 0.0, 2.0, 0.0 ]\n*/\nfunction complex( out, data, stride, offset ) {\n\tvar v;\n\tvar s;\n\tvar i;\n\n\ts = stride * 2;\n\ti = offset * 2;\n\tv = 0.0;\n\twhile ( i >= 0 && i < data.length ) {\n\t\tdata[ i ] = v; // real component\n\t\tdata[ i+1 ] = 0.0; // imaginary component\n\t\ti += s;\n\t\tv += 1.0;\n\t}\n\treturn out;\n}\n\n/**\n* Fills an accessor array with linearly spaced numeric elements which increment by 1 starting from zero.\n*\n* @private\n* @param {Object} out - output array object\n* @param {integer} stride - output array stride\n* @param {NonNegativeInteger} offset - output array index offset\n* @returns {Collection} output array\n*\n* @example\n* import toAccessorArray from '@stdlib/array/base/to-accessor-array';\n* import arraylike2object from '@stdlib/array/base/arraylike2object';\n\n* var out = toAccessorArray( [ 0, 0, 0, 0, 0, 0 ] );\n* var arr = accessors( arraylike2object( out ), 1, 0 );\n*\n* var bool = ( arr === out );\n* // returns true\n*\n* var v = out.get( 0 );\n* // returns 0\n*\n* v = out.get( out.length-1 );\n* // returns 5\n*/\nfunction accessors( out, stride, offset ) {\n\tvar data;\n\tvar set;\n\tvar v;\n\tvar i;\n\n\tdata = out.data;\n\tset = out.accessors[ 1 ];\n\n\ti = offset;\n\tv = 0;\n\twhile ( i >= 0 && i < data.length ) {\n\t\tset( data, i, v );\n\t\ti += stride;\n\t\tv += 1;\n\t}\n\treturn data;\n}\n\n\n// MAIN //\n\n/**\n* Fills an array with linearly spaced numeric elements which increment by 1 starting from zero.\n*\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, 0, 0, 0, 0 ];\n*\n* var arr = assign( out, 1, 0 );\n* // returns [ 0, 1, 2, 3, 4, 5 ]\n*\n* @example\n* var out = [ 0, 0, 0, 0, 0, 0 ];\n*\n* var arr = assign( out, -1, out.length-1 );\n* // returns [ 5, 4, 3, 2, 1, 0 ]\n*/\nfunction assign( out, stride, offset ) {\n\tvar obj = arraylike2object( out );\n\tif ( obj.accessorProtocol ) {\n\t\t// If provided a complex number array, reinterpret as a real typed array and only set the real components...\n\t\tif ( obj.dtype === 'complex128' ) {\n\t\t\treturn complex( out, reinterpret128( out, 0 ), stride, offset );\n\t\t}\n\t\tif ( obj.dtype === 'complex64' ) {\n\t\t\treturn complex( out, reinterpret64( out, 0 ), stride, offset );\n\t\t}\n\t\treturn accessors( obj, stride, offset );\n\t}\n\treturn indexed( out, stride, offset );\n}\n\n\n// EXPORTS //\n\nexport default assign;\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* Takes elements from an indexed array.\n*\n* @param {Collection} x - input array\n* @param {NonNegativeIntegerArray} indices - list of indices\n* @returns {Array} output array\n*\n* @example\n* var x = [ 1, 2, 3, 4 ];\n* var indices = [ 3, 1, 2, 0 ];\n*\n* var y = take( x, indices );\n* // returns [ 4, 2, 3, 1 ]\n*/\nfunction take( x, indices ) {\n\tvar out;\n\tvar i;\n\n\tout = [];\n\tfor ( i = 0; i < indices.length; i++ ) {\n\t\tout.push( x[ indices[ i ] ] ); // use `Array#push` to ensure \"fast\" elements\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default take;\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 zeroTo from '@stdlib/array/base/zero-to';\nimport copy from '@stdlib/array/base/copy-indexed';\nimport take from '@stdlib/array/base/take-indexed';\nimport sort2ins from './sort2ins.js';\n\n\n// MAIN //\n\n/**\n* Reorders ndarray dimensions and associated strides for loop interchange.\n*\n* ## Notes\n*\n* - The returned object has the following properties:\n*\n* - **sh**: dimensions sorted in loop order.\n* - **sx**: input ndarray strides sorted in loop order.\n* - **sy**: output ndarray strides sorted in loop order.\n* - **idx**: dimension indices sorted in loop order.\n*\n* @param {NonNegativeIntegerArray} sh - array dimensions\n* @param {IntegerArray} sx - input array stride lengths\n* @param {IntegerArray} sy - output array stride lengths\n* @returns {Object} loop interchange data\n*\n* @example\n* var sh = [ 2, 3, 4 ];\n*\n* var sx = [ 12, 4, 1 ]; // row-major\n* var sy = [ 1, -2, 6 ]; // column-major\n*\n* var o = loopOrder( sh, sx, sy );\n* // returns {...}\n*\n* var ssh = o.sh;\n* // returns [ 4, 3, 2 ]\n*\n* var ssx = o.sx;\n* // returns [ 1, 4, 12 ]\n*\n* var ssy = o.sy;\n* // returns [ 6, -2, 1 ]\n*\n* var idx = o.idx;\n* // returns [ 2, 1, 0 ]\n*/\nfunction loopOrder( sh, sx, sy ) {\n\tvar idx;\n\n\t// Initialize a loop interchange index array for generating a loop order permutation:\n\tidx = zeroTo( sh.length );\n\n\t// Sort the input array strides in increasing order (of magnitude):\n\tsx = copy( sx );\n\tsort2ins( sx, idx );\n\n\t// Permute the shape and output array strides based on the sorted input array strides:\n\tsh = take( sh, idx );\n\tsy = take( sy, idx );\n\n\treturn {\n\t\t'sh': sh,\n\t\t'sx': sx,\n\t\t'sy': sy,\n\t\t'idx': idx\n\t};\n}\n\n\n// EXPORTS //\n\nexport default loopOrder;\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// MAIN //\n\n/**\n* Simultaneously sorts two arrays based on the sort order of the first array using insertion sort.\n*\n* ## Notes\n*\n* - The first array is sorted in increasing order according to absolute value.\n* - The algorithm has space complexity `O(1)` and worst case time complexity `O(N^2)`.\n* - The algorithm is efficient for small arrays (typically `N <= 20``) and is particularly efficient for sorting arrays which are already substantially sorted.\n* - The algorithm is **stable**, meaning that the algorithm does **not** change the order of array elements which are equal or equivalent.\n* - The input arrays are sorted in-place (i.e., the input arrays are mutated).\n*\n* @private\n* @param {Array} x - first array\n* @param {Array} y - second array\n* @returns {void}\n*\n* @example\n* var x = [ -4, -2, 3, 1 ];\n* var y = [ 0, 1, 2, 3 ];\n*\n* sort2ins( x, y );\n*\n* console.log( x );\n* // => [ 1, -2, 3, -4 ]\n*\n* console.log( y );\n* // => [ 3, 1, 2, 0 ]\n*/\nfunction sort2ins( x, y ) {\n\tvar avx;\n\tvar aux;\n\tvar ix;\n\tvar iy;\n\tvar jx;\n\tvar jy;\n\tvar vx;\n\tvar vy;\n\tvar ux;\n\tvar i;\n\n\tix = 1;\n\tiy = 1;\n\n\t// Sort in increasing order...\n\tfor ( i = 1; i < x.length; i++ ) {\n\t\tvx = x[ ix ];\n\t\tavx = ( vx < 0 ) ? -vx : vx;\n\n\t\tvy = y[ iy ];\n\n\t\tjx = ix - 1;\n\t\tjy = iy - 1;\n\n\t\t// Shift all larger values to the left of the current element to the right...\n\t\twhile ( jx >= 0 ) {\n\t\t\tux = x[ jx ];\n\t\t\taux = ( ux < 0 ) ? -ux : ux;\n\t\t\tif ( aux <= avx ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tx[ jx+1 ] = ux;\n\t\t\ty[ jy+1 ] = y[ jy ];\n\t\t\tjx -= 1;\n\t\t\tjy -= 1;\n\t\t}\n\t\tx[ jx+1 ] = vx;\n\t\ty[ jy+1 ] = vy;\n\t\tix += 1;\n\t\tiy += 1;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default sort2ins;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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) 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* Generate a linearly spaced numeric array whose elements increment by 1 starting from zero.\n*\n* @module @stdlib/array/base/zero-to\n*\n* @example\n* import zeroTo from '@stdlib/array/base/zero-to';\n*\n* var arr = zeroTo( 6 );\n* // returns [ 0, 1, 2, 3, 4, 5 ]\n*\n* @example\n* import zeroTo from '@stdlib/array/base/zero-to';\n*\n* var out = [ 0, 0, 0, 0, 0, 0 ];\n* var arr = zeroTo.assign( out, 1, 0 );\n* // returns [ 0, 1, 2, 3, 4, 5 ]\n*\n* var bool = ( out === arr );\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) 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 isAccessorArray from './../../../base/assert/is-accessor-array';\nimport getter from './../../../base/getter';\nimport setter from './../../../base/setter';\nimport accessorGetter from './../../../base/accessor-getter';\nimport accessorSetter from './../../../base/accessor-setter';\nimport dtype from './../../../dtype';\n\n\n// MAIN //\n\n/**\n* Converts an array-like to an object likely to have the same \"shape\".\n*\n* ## Notes\n*\n* - This function is intended as a potential performance optimization. In V8, for example, even if two objects share common properties, if those properties were added in different orders or if one object has additional properties not shared by the other object, then those objects will have different \"hidden\" classes. If a function is provided many objects having different \"shapes\", some JavaScript VMs (e.g., V8) will consider the function \"megamorphic\" and fail to perform various runtime optimizations. Accordingly, the intent of this function is to standardize the \"shape\" of the object holding array meta data to ensure that internal functions operating on arrays are provided consistent argument \"shapes\".\n*\n* - The returned object has the following properties:\n*\n* - **data**: reference to the input array.\n* - **dtype**: array data type.\n* - **accessorProtocol**: `boolean` indicating whether the input array uses accessors for getting and setting elements.\n* - **accessors**: a two-element array whose first element is an accessor for retrieving an array element and whose second element is an accessor for setting an array element.\n*\n* @param {Collection} x - array-like object\n* @returns {Object} object containing array meta data\n*\n* @example\n* var obj = arraylike2object( [ 1, 2, 3, 4 ] );\n* // returns {...}\n*/\nfunction arraylike2object( x ) {\n\tvar dt = dtype( x );\n\tif ( isAccessorArray( x ) ) {\n\t\treturn {\n\t\t\t'data': x,\n\t\t\t'dtype': dt,\n\t\t\t'accessorProtocol': true,\n\t\t\t'accessors': [\n\t\t\t\taccessorGetter( dt ),\n\t\t\t\taccessorSetter( dt )\n\t\t\t]\n\t\t};\n\t}\n\treturn {\n\t\t'data': x,\n\t\t'dtype': dt,\n\t\t'accessorProtocol': false,\n\t\t'accessors': [\n\t\t\tgetter( dt ),\n\t\t\tsetter( dt )\n\t\t]\n\t};\n}\n\n\n// EXPORTS //\n\nexport default arraylike2object;\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// MAIN //\n\nvar defaults = {\n\t// Define a default block size (in bytes):\n\t'BLOCK_SIZE_IN_BYTES': 64|0, // 64b is a common cache line size. How applicable the common cache line size is here is debatable, given that, depending on the associated stride(s), the innermost loop may not iterate over adjacent elements. The primary goal is to have a block size in which all data within a block can always fit in (L1) cache, regardless of cache size (i.e., cache-oblivious). For reference, a common L1 cache size is 32kB per core. For best performance, block sizes should be tuned based on system hardware; however, such tuning is not readily available to us here. Without obvious better alternatives, 64b has some theoretical (and practical) underpinning, and it should be good enough for most inputs, especially for ndarrays with near contiguity.\n\n\t// Define a default block size (in elements):\n\t'BLOCK_SIZE_IN_ELEMENTS': 8|0 // 64 bytes / 8 bytes per element (i.e., default element size is same as a double)\n};\n\n\n// EXPORTS //\n\nexport default defaults;\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 bytesPerElement from './../../../base/bytes-per-element';\nimport defaults from './defaults.js';\n\n\n// MAIN //\n\n/**\n* Returns a loop block size for multi-dimensional array tiled loops.\n*\n* @param {string} dtypeX - input array data type\n* @param {string} dtypeY - output array data type\n* @returns {integer} block size (in units of elements)\n*\n* @example\n* var bsize = unaryBlockSize( 'float64', 'float64' );\n* // returns \n*/\nfunction unaryBlockSize( dtypeX, dtypeY ) {\n\tvar nbx;\n\tvar nby;\n\n\tnbx = bytesPerElement( dtypeX );\n\tnby = bytesPerElement( dtypeY );\n\tif ( nbx === null || nby === null ) { // e.g., \"generic\" arrays\n\t\treturn defaults.BLOCK_SIZE_IN_ELEMENTS;\n\t}\n\tif ( nbx > nby ) {\n\t\treturn ( defaults.BLOCK_SIZE_IN_BYTES/nbx )|0; // asm type annotation\n\t}\n\treturn ( defaults.BLOCK_SIZE_IN_BYTES/nby )|0; // asm type annotation\n}\n\n\n// EXPORTS //\n\nexport default unaryBlockSize;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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* Converts a linear index in an array view to a linear index in an underlying data buffer.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {IntegerArray} strides - stride array\n* @param {NonNegativeInteger} offset - location of the first indexed value **based** on the stride array\n* @param {string} order - specifies whether an array is row-major (C-style) or column-major (Fortran-style)\n* @param {integer} idx - linear index in an array view\n* @param {string} mode - specifies how to handle a linear index which exceeds array dimensions\n* @throws {RangeError} linear index must not exceed array dimensions\n* @returns {NonNegativeInteger} linear index in an underlying data buffer\n*\n* @example\n* var shape = [ 3, 3 ];\n* var strides = [ -3, 1 ];\n* var offset = 6;\n* var order = 'row-major';\n* var mode = 'throw';\n*\n* var ind = vind2bind( shape, strides, offset, order, 1, mode );\n* // returns 7\n*/\nfunction vind2bind( shape, strides, offset, order, idx, mode ) {\n\tvar ndims;\n\tvar len;\n\tvar ind;\n\tvar s;\n\tvar i;\n\n\tndims = shape.length;\n\tlen = 1;\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\tlen *= shape[ i ];\n\t}\n\tif ( mode === 'clamp' ) {\n\t\tif ( idx < 0 ) {\n\t\t\tidx = 0;\n\t\t} else if ( idx >= len ) {\n\t\t\tidx = len - 1;\n\t\t}\n\t} else if ( mode === 'wrap' ) {\n\t\tif ( idx < 0 ) {\n\t\t\tidx += len; // slight optimization to avoid modulo arithmetic when |idx| <= len\n\t\t\tif ( idx < 0 ) {\n\t\t\t\tidx %= len;\n\t\t\t\tif ( idx !== 0 ) {\n\t\t\t\t\tidx += len;\n\t\t\t\t}\n\t\t\t}\n\t\t} else if ( idx >= len ) {\n\t\t\tidx -= len; // slight optimization to avoid modulo arithmetic when len < idx <= 2*len\n\t\t\tif ( idx >= len ) {\n\t\t\t\tidx %= len;\n\t\t\t}\n\t\t}\n\t} else {\n\t\tif ( mode === 'normalize' && idx < 0 ) {\n\t\t\tidx += len;\n\t\t}\n\t\tif ( idx < 0 || idx >= len ) {\n\t\t\tthrow new RangeError( format( 'invalid argument. Linear index must not exceed array dimensions. Number of array elements: `%u`. Value: `%d`.', len, idx ) );\n\t\t}\n\t}\n\t// The approach which follows is to resolve a view index to its subscripts and then plug the subscripts into the standard formula for computing the linear index in the underlying data buffer...\n\tind = offset;\n\tif ( order === 'column-major' ) {\n\t\tfor ( i = 0; i < ndims; i++ ) {\n\t\t\ts = idx % shape[ i ];\n\t\t\tidx -= s;\n\t\t\tidx /= shape[ i ];\n\t\t\tind += s * strides[ i ];\n\t\t}\n\t\treturn ind;\n\t}\n\t// Case: row-major\n\tfor ( i = ndims-1; i >= 0; i-- ) {\n\t\ts = idx % shape[ i ];\n\t\tidx -= s;\n\t\tidx /= shape[ i ];\n\t\tind += s * strides[ i ];\n\t}\n\treturn ind;\n}\n\n\n// EXPORTS //\n\nexport default vind2bind;\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 numel from './../../../base/numel';\nimport vind2bind from './../../../base/vind2bind';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in an n-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array/complex64';\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unarynd( x, y, scale );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction unarynd( x, y, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar ordx;\n\tvar ordy;\n\tvar len;\n\tvar get;\n\tvar set;\n\tvar sh;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache references to the input and output ndarray data buffers:\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache references to the respective stride arrays:\n\tsx = x.strides;\n\tsy = y.strides;\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays:\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache the respective array orders:\n\tordx = x.order;\n\tordy = y.order;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\tiy = vind2bind( sh, sy, oy, ordy, i, MODE );\n\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unarynd;\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 numel from './../../../base/numel';\nimport vind2bind from './../../../base/vind2bind';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in an n-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Float64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unarynd( x, y, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0 ]\n*/\nfunction unarynd( x, y, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar ordx;\n\tvar ordy;\n\tvar len;\n\tvar sh;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache references to the input and output ndarray data buffers:\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache references to the respective stride arrays:\n\tsx = x.strides;\n\tsy = y.strides;\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays:\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache the respective array orders:\n\tordx = x.order;\n\tordy = y.order;\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\tiy = vind2bind( sh, sy, oy, ordy, i, MODE );\n\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unarynd;\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 iterationOrder from './../../../base/iteration-order';\nimport minmaxViewBufferIndex from './../../../base/minmax-view-buffer-index';\nimport ndarray2object from './../../../base/ndarraylike2object';\nimport blockedaccessorunary2d from './2d_blocked_accessors.js';\nimport blockedaccessorunary3d from './3d_blocked_accessors.js';\nimport blockedaccessorunary4d from './4d_blocked_accessors.js';\nimport blockedaccessorunary5d from './5d_blocked_accessors.js';\nimport blockedaccessorunary6d from './6d_blocked_accessors.js';\nimport blockedaccessorunary7d from './7d_blocked_accessors.js';\nimport blockedaccessorunary8d from './8d_blocked_accessors.js';\nimport blockedaccessorunary9d from './9d_blocked_accessors.js';\nimport blockedaccessorunary10d from './10d_blocked_accessors.js';\nimport blockedunary2d from './2d_blocked.js';\nimport blockedunary3d from './3d_blocked.js';\nimport blockedunary4d from './4d_blocked.js';\nimport blockedunary5d from './5d_blocked.js';\nimport blockedunary6d from './6d_blocked.js';\nimport blockedunary7d from './7d_blocked.js';\nimport blockedunary8d from './8d_blocked.js';\nimport blockedunary9d from './9d_blocked.js';\nimport blockedunary10d from './10d_blocked.js';\nimport accessorunary0d from './0d_accessors.js';\nimport accessorunary1d from './1d_accessors.js';\nimport accessorunary2d from './2d_accessors.js';\nimport accessorunary3d from './3d_accessors.js';\nimport accessorunary4d from './4d_accessors.js';\nimport accessorunary5d from './5d_accessors.js';\nimport accessorunary6d from './6d_accessors.js';\nimport accessorunary7d from './7d_accessors.js';\nimport accessorunary8d from './8d_accessors.js';\nimport accessorunary9d from './9d_accessors.js';\nimport accessorunary10d from './10d_accessors.js';\nimport accessorunarynd from './nd_accessors.js';\nimport unary0d from './0d.js';\nimport unary1d from './1d.js';\nimport unary2d from './2d.js';\nimport unary3d from './3d.js';\nimport unary4d from './4d.js';\nimport unary5d from './5d.js';\nimport unary6d from './6d.js';\nimport unary7d from './7d.js';\nimport unary8d from './8d.js';\nimport unary9d from './9d.js';\nimport unary10d from './10d.js';\nimport unarynd from './nd.js';\n\n\n// VARIABLES //\n\nvar UNARY = [\n\tunary0d,\n\tunary1d,\n\tunary2d,\n\tunary3d,\n\tunary4d,\n\tunary5d,\n\tunary6d,\n\tunary7d,\n\tunary8d,\n\tunary9d,\n\tunary10d\n];\nvar ACCESSOR_UNARY = [\n\taccessorunary0d,\n\taccessorunary1d,\n\taccessorunary2d,\n\taccessorunary3d,\n\taccessorunary4d,\n\taccessorunary5d,\n\taccessorunary6d,\n\taccessorunary7d,\n\taccessorunary8d,\n\taccessorunary9d,\n\taccessorunary10d\n];\nvar BLOCKED_UNARY = [\n\tblockedunary2d, // 0\n\tblockedunary3d,\n\tblockedunary4d,\n\tblockedunary5d,\n\tblockedunary6d,\n\tblockedunary7d,\n\tblockedunary8d,\n\tblockedunary9d,\n\tblockedunary10d // 8\n];\nvar BLOCKED_ACCESSOR_UNARY = [\n\tblockedaccessorunary2d, // 0\n\tblockedaccessorunary3d,\n\tblockedaccessorunary4d,\n\tblockedaccessorunary5d,\n\tblockedaccessorunary6d,\n\tblockedaccessorunary7d,\n\tblockedaccessorunary8d,\n\tblockedaccessorunary9d,\n\tblockedaccessorunary10d // 8\n];\nvar MAX_DIMS = UNARY.length - 1;\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in an input ndarray and assigns results to elements in an output ndarray.\n*\n* ## Notes\n*\n* - Each provided ndarray should be an `object` with the following properties:\n*\n* - **dtype**: data type.\n* - **data**: data buffer.\n* - **shape**: dimensions.\n* - **strides**: stride lengths.\n* - **offset**: index offset.\n* - **order**: specifies whether an ndarray is row-major (C-style) or column major (Fortran-style).\n*\n* @param {ArrayLikeObject} arrays - array-like object containing one input array and one output array\n* @param {Callback} fcn - unary callback\n* @throws {Error} arrays must have the same number of dimensions\n* @throws {Error} arrays must have the same shape\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n* var sy = [ 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary( [ x, y ], scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction unary( arrays, fcn ) {\n\tvar ndims;\n\tvar xmmv;\n\tvar ymmv;\n\tvar shx;\n\tvar shy;\n\tvar iox;\n\tvar ioy;\n\tvar len;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ns;\n\tvar x;\n\tvar y;\n\tvar d;\n\tvar i;\n\n\t// Unpack the ndarrays and standardize ndarray meta data:\n\tx = ndarray2object( arrays[ 0 ] );\n\ty = ndarray2object( arrays[ 1 ] );\n\n\t// Verify that the input and output arrays have the same number of dimensions...\n\tshx = x.shape;\n\tshy = y.shape;\n\tndims = shx.length;\n\tif ( ndims !== shy.length ) {\n\t\tthrow new Error( 'invalid arguments. Arrays must have the same number of dimensions (i.e., same rank). ndims(x) == '+ndims+'. ndims(y) == '+shy.length+'.' );\n\t}\n\t// Determine whether we can avoid iteration altogether...\n\tif ( ndims === 0 ) {\n\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\treturn ACCESSOR_UNARY[ ndims ]( x, y, fcn );\n\t\t}\n\t\treturn UNARY[ ndims ]( x, y, fcn );\n\t}\n\t// Verify that the input and output arrays have the same dimensions...\n\tlen = 1; // number of elements\n\tns = 0; // number of singleton dimensions\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\td = shx[ i ];\n\t\tif ( d !== shy[ i ] ) {\n\t\t\tthrow new Error( 'invalid arguments. Arrays must have the same shape.' );\n\t\t}\n\t\t// Note that, if one of the dimensions is `0`, the length will be `0`...\n\t\tlen *= d;\n\n\t\t// Check whether the current dimension is a singleton dimension...\n\t\tif ( d === 1 ) {\n\t\t\tns += 1;\n\t\t}\n\t}\n\t// Check whether we were provided empty ndarrays...\n\tif ( len === 0 ) {\n\t\treturn;\n\t}\n\t// Determine whether the ndarrays are one-dimensional and thus readily translate to one-dimensional strided arrays...\n\tif ( ndims === 1 ) {\n\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\treturn ACCESSOR_UNARY[ ndims ]( x, y, fcn );\n\t\t}\n\t\treturn UNARY[ ndims ]( x, y, fcn );\n\t}\n\tsx = x.strides;\n\tsy = y.strides;\n\n\t// Determine whether the ndarray has only **one** non-singleton dimension (e.g., ndims=4, shape=[10,1,1,1]) so that we can treat the ndarrays as being equivalent to one-dimensional strided arrays...\n\tif ( ns === ndims-1 ) {\n\t\t// Get the index of the non-singleton dimension...\n\t\tfor ( i = 0; i < ndims; i++ ) {\n\t\t\tif ( shx[ i ] !== 1 ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tx.shape = [ shx[i] ];\n\t\ty.shape = x.shape;\n\t\tx.strides = [ sx[i] ];\n\t\ty.strides = [ sy[i] ];\n\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\treturn ACCESSOR_UNARY[ 1 ]( x, y, fcn );\n\t\t}\n\t\treturn UNARY[ 1 ]( x, y, fcn );\n\t}\n\tiox = iterationOrder( sx ); // +/-1\n\tioy = iterationOrder( sy ); // +/-1\n\n\t// Determine whether we can avoid blocked iteration...\n\tif ( iox !== 0 && ioy !== 0 && iox === ioy ) {\n\t\t// Determine the minimum and maximum linear indices which are accessible by the array views:\n\t\txmmv = minmaxViewBufferIndex( shx, sx, x.offset );\n\t\tymmv = minmaxViewBufferIndex( shy, sy, y.offset );\n\n\t\t// Determine whether we can ignore shape (and strides) and treat the ndarrays as linear one-dimensional strided arrays...\n\t\tif ( len === ( xmmv[1]-xmmv[0]+1 ) && len === ( ymmv[1]-ymmv[0]+1 ) ) {\n\t\t\t// Note: the above is equivalent to @stdlib/ndarray/base/assert/is-contiguous, but in-lined so we can retain computed values...\n\t\t\tif ( iox === 1 ) {\n\t\t\t\tox = xmmv[ 0 ];\n\t\t\t} else {\n\t\t\t\tox = xmmv[ 1 ];\n\t\t\t}\n\t\t\tif ( ioy === 1 ) {\n\t\t\t\toy = ymmv[ 0 ];\n\t\t\t} else {\n\t\t\t\toy = ymmv[ 1 ];\n\t\t\t}\n\t\t\tx.shape = [ len ];\n\t\t\ty.shape = x.shape;\n\t\t\tx.strides = [ iox ];\n\t\t\ty.strides = [ ioy ];\n\t\t\tx.offset = ox;\n\t\t\ty.offset = oy;\n\t\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\t\treturn ACCESSOR_UNARY[ 1 ]( x, y, fcn );\n\t\t\t}\n\t\t\treturn UNARY[ 1 ]( x, y, fcn );\n\t\t}\n\t\t// At least one ndarray is non-contiguous, so we cannot directly use one-dimensional array functionality...\n\n\t\t// Determine whether we can use simple nested loops...\n\t\tif ( ndims <= MAX_DIMS ) {\n\t\t\t// So long as iteration for each respective array always moves in the same direction (i.e., no mixed sign strides), we can leverage cache-optimal (i.e., normal) nested loops without resorting to blocked iteration...\n\t\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\t\treturn ACCESSOR_UNARY[ ndims ]( x, y, fcn );\n\t\t\t}\n\t\t\treturn UNARY[ ndims ]( x, y, fcn );\n\t\t}\n\t\t// Fall-through to blocked iteration...\n\t}\n\t// At this point, we're either dealing with non-contiguous n-dimensional arrays, high dimensional n-dimensional arrays, and/or arrays having differing memory layouts, so our only hope is that we can still perform blocked iteration...\n\n\t// Determine whether we can perform blocked iteration...\n\tif ( ndims <= MAX_DIMS ) {\n\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\treturn BLOCKED_ACCESSOR_UNARY[ ndims-2 ]( x, y, fcn );\n\t\t}\n\t\treturn BLOCKED_UNARY[ ndims-2 ]( x, y, fcn );\n\t}\n\t// Fall-through to linear view iteration without regard for how data is stored in memory (i.e., take the slow path)...\n\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\treturn accessorunarynd( x, y, fcn );\n\t}\n\tunarynd( x, y, fcn );\n}\n\n\n// EXPORTS //\n\nexport default unary;\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* Applies a unary callback to elements in a zero-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0 ] );\n* var ybuf = new Float64Array( 1 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 0 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary0d( x, y, scale );\n*\n* console.log( y.data );\n* // => [ 20.0 ]\n*/\nfunction unary0d( x, y, fcn ) {\n\ty.data[ y.offset ] = fcn( x.data[ x.offset ] );\n}\n\n\n// EXPORTS //\n\nexport default unary0d;\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* Applies a unary callback to elements in a one-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Float64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 4 ];\n*\n* // Define the array strides:\n* var sx = [ 2 ];\n* var sy = [ 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary1d( x, y, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 40.0, 60.0, 80.0 ]\n*/\nfunction unary1d( x, y, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dy0;\n\tvar S0;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments...\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\tdy0 = y.strides[ 0 ];\n\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t\tix += dx0;\n\t\tiy += dy0;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary1d;\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* Applies a unary callback to elements in a two-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Float64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary2d( x, y, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0 ]\n*/\nfunction unary2d( x, y, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dy0;\n\tvar dy1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 1 ];\n\t\tdy1 = sy[ 0 ] - ( S0*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t\t\tix += dx0;\n\t\t\tiy += dy0;\n\t\t}\n\t\tix += dx1;\n\t\tiy += dy1;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary2d;\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* Applies a unary callback to elements in a three-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n* var sy = [ 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary3d( x, y, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction unary3d( x, y, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 2 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[2] );\n\t\tdy2 = sy[ 0 ] - ( S1*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t\t\t\tix += dx0;\n\t\t\t\tiy += dy0;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t\tiy += dy1;\n\t\t}\n\t\tix += dx2;\n\t\tiy += dy2;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary3d;\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* Applies a unary callback to elements in a four-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 4, 1 ];\n* var sy = [ 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary4d( x, y, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction unary4d( x, y, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 3 ];\n\t\tdy1 = sy[ 2 ] - ( S0*sy[3] );\n\t\tdy2 = sy[ 1 ] - ( S1*sy[2] );\n\t\tdy3 = sy[ 0 ] - ( S2*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t\t\t\t\tix += dx0;\n\t\t\t\t\tiy += dy0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t\tiy += dy1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t\tiy += dy2;\n\t\t}\n\t\tix += dx3;\n\t\tiy += dy3;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary4d;\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* Applies a unary callback to elements in a five-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary5d( x, y, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction unary5d( x, y, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 4 ];\n\t\tdy1 = sy[ 3 ] - ( S0*sy[4] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[3] );\n\t\tdy3 = sy[ 1 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 0 ] - ( S3*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t\tiy += dy1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t\tiy += dy2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t\tiy += dy3;\n\t\t}\n\t\tix += dx4;\n\t\tiy += dy4;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary5d;\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-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a six-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary6d( x, y, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction unary6d( x, y, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 5 ];\n\t\tdy1 = sy[ 4 ] - ( S0*sy[5] );\n\t\tdy2 = sy[ 3 ] - ( S1*sy[4] );\n\t\tdy3 = sy[ 2 ] - ( S2*sy[3] );\n\t\tdy4 = sy[ 1 ] - ( S3*sy[2] );\n\t\tdy5 = sy[ 0 ] - ( S4*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t\tiy += dy2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t\tiy += dy3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t\tiy += dy4;\n\t\t}\n\t\tix += dx5;\n\t\tiy += dy5;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary6d;\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-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a seven-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary7d( x, y, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction unary7d( x, y, fcn ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 6 ];\n\t\tdy1 = sy[ 5 ] - ( S0*sy[6] );\n\t\tdy2 = sy[ 4 ] - ( S1*sy[5] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[4] );\n\t\tdy4 = sy[ 2 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 1 ] - ( S4*sy[2] );\n\t\tdy6 = sy[ 0 ] - ( S5*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t\tiy += dy3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t\tiy += dy4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t\tiy += dy5;\n\t\t}\n\t\tix += dx6;\n\t\tiy += dy6;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary7d;\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-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in an eight-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary8d( x, y, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction unary8d( x, y, fcn ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 7 ];\n\t\tdy1 = sy[ 6 ] - ( S0*sy[7] );\n\t\tdy2 = sy[ 5 ] - ( S1*sy[6] );\n\t\tdy3 = sy[ 4 ] - ( S2*sy[5] );\n\t\tdy4 = sy[ 3 ] - ( S3*sy[4] );\n\t\tdy5 = sy[ 2 ] - ( S4*sy[3] );\n\t\tdy6 = sy[ 1 ] - ( S5*sy[2] );\n\t\tdy7 = sy[ 0 ] - ( S6*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t\tiy += dy4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t\tiy += dy5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t\tiy += dy6;\n\t\t}\n\t\tix += dx7;\n\t\tiy += dy7;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary8d;\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-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a nine-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary9d( x, y, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction unary9d( x, y, fcn ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 8 ];\n\t\tdy1 = sy[ 7 ] - ( S0*sy[8] );\n\t\tdy2 = sy[ 6 ] - ( S1*sy[7] );\n\t\tdy3 = sy[ 5 ] - ( S2*sy[6] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[5] );\n\t\tdy5 = sy[ 3 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 2 ] - ( S5*sy[3] );\n\t\tdy7 = sy[ 1 ] - ( S6*sy[2] );\n\t\tdy8 = sy[ 0 ] - ( S7*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdy8 = sy[ 8 ] - ( S7*sy[7] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t\tiy += dy5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t\tiy += dy6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t\tiy += dy7;\n\t\t}\n\t\tix += dx8;\n\t\tiy += dy8;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary9d;\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-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a ten-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary10d( x, y, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction unary10d( x, y, fcn ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dy9;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 9 ];\n\t\tdy1 = sy[ 8 ] - ( S0*sy[9] );\n\t\tdy2 = sy[ 7 ] - ( S1*sy[8] );\n\t\tdy3 = sy[ 6 ] - ( S2*sy[7] );\n\t\tdy4 = sy[ 5 ] - ( S3*sy[6] );\n\t\tdy5 = sy[ 4 ] - ( S4*sy[5] );\n\t\tdy6 = sy[ 3 ] - ( S5*sy[4] );\n\t\tdy7 = sy[ 2 ] - ( S6*sy[3] );\n\t\tdy8 = sy[ 1 ] - ( S7*sy[2] );\n\t\tdy9 = sy[ 0 ] - ( S8*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdy8 = sy[ 8 ] - ( S7*sy[7] );\n\t\tdy9 = sy[ 9 ] - ( S8*sy[8] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t\tiy += dy6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t\tiy += dy7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t\tiy += dy8;\n\t\t}\n\t\tix += dx9;\n\t\tiy += dy9;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary10d;\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* Applies a unary callback to elements in a zero-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array/complex64';\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0 ] );\n* var ybuf = new Complex64Array( 2 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 0 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unary0d( x, y, scale );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 30.0\n*\n* var im = imagf( v );\n* // returns 40.0\n*/\nfunction unary0d( x, y, fcn ) {\n\ty.accessors[ 1 ]( y.data, y.offset, fcn( x.accessors[ 0 ]( x.data, x.offset ) ) ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default unary0d;\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* Applies a unary callback to elements in a one-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array/complex64';\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 4 ];\n*\n* // Define the array strides:\n* var sx = [ 1 ];\n* var sy = [ 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unary1d( x, y, scale );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction unary1d( x, y, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dy0;\n\tvar S0;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments...\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\tdy0 = y.strides[ 0 ];\n\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) );\n\t\tix += dx0;\n\t\tiy += dy0;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary1d;\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* Applies a unary callback to elements in a two-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array/complex64';\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unary2d( x, y, scale );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction unary2d( x, y, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dy0;\n\tvar dy1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 1 ];\n\t\tdy1 = sy[ 0 ] - ( S0*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) );\n\t\t\tix += dx0;\n\t\t\tiy += dy0;\n\t\t}\n\t\tix += dx1;\n\t\tiy += dy1;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary2d;\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* Applies a unary callback to elements in a three-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array/complex64';\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2, 1 ];\n* var sy = [ 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unary3d( x, y, scale );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction unary3d( x, y, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 2 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[2] );\n\t\tdy2 = sy[ 0 ] - ( S1*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) );\n\t\t\t\tix += dx0;\n\t\t\t\tiy += dy0;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t\tiy += dy1;\n\t\t}\n\t\tix += dx2;\n\t\tiy += dy2;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary3d;\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* Applies a unary callback to elements in a four-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array/complex64';\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unary4d( x, y, scale );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction unary4d( x, y, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 3 ];\n\t\tdy1 = sy[ 2 ] - ( S0*sy[3] );\n\t\tdy2 = sy[ 1 ] - ( S1*sy[2] );\n\t\tdy3 = sy[ 0 ] - ( S2*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) );\n\t\t\t\t\tix += dx0;\n\t\t\t\t\tiy += dy0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t\tiy += dy1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t\tiy += dy2;\n\t\t}\n\t\tix += dx3;\n\t\tiy += dy3;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary4d;\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* Applies a unary callback to elements in a five-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array/complex64';\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unary5d( x, y, scale );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction unary5d( x, y, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 4 ];\n\t\tdy1 = sy[ 3 ] - ( S0*sy[4] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[3] );\n\t\tdy3 = sy[ 1 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 0 ] - ( S3*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) );\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t\tiy += dy1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t\tiy += dy2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t\tiy += dy3;\n\t\t}\n\t\tix += dx4;\n\t\tiy += dy4;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary5d;\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-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a six-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array/complex64';\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unary6d( x, y, scale );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction unary6d( x, y, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 5 ];\n\t\tdy1 = sy[ 4 ] - ( S0*sy[5] );\n\t\tdy2 = sy[ 3 ] - ( S1*sy[4] );\n\t\tdy3 = sy[ 2 ] - ( S2*sy[3] );\n\t\tdy4 = sy[ 1 ] - ( S3*sy[2] );\n\t\tdy5 = sy[ 0 ] - ( S4*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) );\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t\tiy += dy2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t\tiy += dy3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t\tiy += dy4;\n\t\t}\n\t\tix += dx5;\n\t\tiy += dy5;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary6d;\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-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a seven-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array/complex64';\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unary7d( x, y, scale );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction unary7d( x, y, fcn ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 6 ];\n\t\tdy1 = sy[ 5 ] - ( S0*sy[6] );\n\t\tdy2 = sy[ 4 ] - ( S1*sy[5] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[4] );\n\t\tdy4 = sy[ 2 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 1 ] - ( S4*sy[2] );\n\t\tdy6 = sy[ 0 ] - ( S5*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) );\n\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t\tiy += dy3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t\tiy += dy4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t\tiy += dy5;\n\t\t}\n\t\tix += dx6;\n\t\tiy += dy6;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary7d;\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-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in an eight-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array/complex64';\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unary8d( x, y, scale );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction unary8d( x, y, fcn ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 7 ];\n\t\tdy1 = sy[ 6 ] - ( S0*sy[7] );\n\t\tdy2 = sy[ 5 ] - ( S1*sy[6] );\n\t\tdy3 = sy[ 4 ] - ( S2*sy[5] );\n\t\tdy4 = sy[ 3 ] - ( S3*sy[4] );\n\t\tdy5 = sy[ 2 ] - ( S4*sy[3] );\n\t\tdy6 = sy[ 1 ] - ( S5*sy[2] );\n\t\tdy7 = sy[ 0 ] - ( S6*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) );\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t\tiy += dy4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t\tiy += dy5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t\tiy += dy6;\n\t\t}\n\t\tix += dx7;\n\t\tiy += dy7;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary8d;\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-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a nine-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array/complex64';\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unary9d( x, y, scale );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction unary9d( x, y, fcn ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 8 ];\n\t\tdy1 = sy[ 7 ] - ( S0*sy[8] );\n\t\tdy2 = sy[ 6 ] - ( S1*sy[7] );\n\t\tdy3 = sy[ 5 ] - ( S2*sy[6] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[5] );\n\t\tdy5 = sy[ 3 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 2 ] - ( S5*sy[3] );\n\t\tdy7 = sy[ 1 ] - ( S6*sy[2] );\n\t\tdy8 = sy[ 0 ] - ( S7*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdy8 = sy[ 8 ] - ( S7*sy[7] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) );\n\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t\tiy += dy5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t\tiy += dy6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t\tiy += dy7;\n\t\t}\n\t\tix += dx8;\n\t\tiy += dy8;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary9d;\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-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a ten-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array/complex64';\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unary10d( x, y, scale );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction unary10d( x, y, fcn ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dy9;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 9 ];\n\t\tdy1 = sy[ 8 ] - ( S0*sy[9] );\n\t\tdy2 = sy[ 7 ] - ( S1*sy[8] );\n\t\tdy3 = sy[ 6 ] - ( S2*sy[7] );\n\t\tdy4 = sy[ 5 ] - ( S3*sy[6] );\n\t\tdy5 = sy[ 4 ] - ( S4*sy[5] );\n\t\tdy6 = sy[ 3 ] - ( S5*sy[4] );\n\t\tdy7 = sy[ 2 ] - ( S6*sy[3] );\n\t\tdy8 = sy[ 1 ] - ( S7*sy[2] );\n\t\tdy9 = sy[ 0 ] - ( S8*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdy8 = sy[ 8 ] - ( S7*sy[7] );\n\t\tdy9 = sy[ 9 ] - ( S8*sy[8] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) ); // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t\tiy += dy6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t\tiy += dy7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t\tiy += dy8;\n\t\t}\n\t\tix += dx9;\n\t\tiy += dy9;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary10d;\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 loopOrder from './../../../base/unary-loop-interchange-order';\nimport blockSize from './../../../base/unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a two-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - unary callback\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Float64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* blockedunary2d( x, y, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0 ]\n*/\nfunction blockedunary2d( x, y, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dy0;\n\tvar dy1;\n\tvar ox1;\n\tvar oy1;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\toy1 = oy + ( j1*sy[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t// Compute loop offset increments...\n\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t\t\t\t\tix += dx0;\n\t\t\t\t\tiy += dy0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t\tiy += dy1;\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedunary2d;\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-depth */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from './../../../base/unary-loop-interchange-order';\nimport blockSize from './../../../base/unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a three-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - unary callback\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n* var sy = [ 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* blockedunary3d( x, y, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction blockedunary3d( x, y, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar ox1;\n\tvar ox2;\n\tvar oy1;\n\tvar oy2;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\toy2 = oy + ( j2*sy[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t// Compute loop offset increments...\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t\tiy += dy2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedunary3d;\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-depth */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from './../../../base/unary-loop-interchange-order';\nimport blockSize from './../../../base/unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a four-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - unary callback\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 4, 1 ];\n* var sy = [ 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* blockedunary4d( x, y, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction blockedunary4d( x, y, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\toy3 = oy + ( j3*sy[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedunary4d;\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-depth */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from './../../../base/unary-loop-interchange-order';\nimport blockSize from './../../../base/unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a five-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - unary callback\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* blockedunary5d( x, y, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction blockedunary5d( x, y, fcn ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\toy4 = oy + ( j4*sy[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedunary5d;\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-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from './../../../base/unary-loop-interchange-order';\nimport blockSize from './../../../base/unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a six-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - unary callback\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* blockedunary6d( x, y, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction blockedunary6d( x, y, fcn ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\toy5 = oy + ( j5*sy[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedunary6d;\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-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from './../../../base/unary-loop-interchange-order';\nimport blockSize from './../../../base/unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a seven-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - unary callback\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* blockedunary7d( x, y, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction blockedunary7d( x, y, fcn ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\toy6 = oy + ( j6*sy[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedunary7d;\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-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from './../../../base/unary-loop-interchange-order';\nimport blockSize from './../../../base/unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in an eight-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - unary callback\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* blockedunary8d( x, y, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction blockedunary8d( x, y, fcn ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\toy7 = oy + ( j7*sy[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedunary8d;\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-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from './../../../base/unary-loop-interchange-order';\nimport blockSize from './../../../base/unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a nine-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - unary callback\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* blockedunary9d( x, y, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction blockedunary9d( x, y, fcn ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oy8;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\toy8 = oy + ( j8*sy[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\tdy8 = sy[8] - ( s7*sy[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\toy7 = oy8 + ( j7*sy[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedunary9d;\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-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from './../../../base/unary-loop-interchange-order';\nimport blockSize from './../../../base/unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a ten-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - unary callback\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* blockedunary10d( x, y, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction blockedunary10d( x, y, fcn ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dy9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oy8;\n\tvar oy9;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\ts9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\ts9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\toy9 = oy + ( j9*sy[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( s8*sx[8] );\n\t\t\tdy9 = sy[9] - ( s8*sy[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\toy8 = oy9 + ( j8*sy[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\t\tdy8 = sy[8] - ( s7*sy[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\toy7 = oy8 + ( j7*sy[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy9;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedunary10d;\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 loopOrder from './../../../base/unary-loop-interchange-order';\nimport blockSize from './../../../base/unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a two-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - unary callback\n*\n* @example\n* import Complex64Array from '@stdlib/array/complex64';\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* blockedunary2d( x, y, scale );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction blockedunary2d( x, y, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dy0;\n\tvar dy1;\n\tvar ox1;\n\tvar oy1;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\toy1 = oy + ( j1*sy[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t// Compute loop offset increments...\n\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) );\n\t\t\t\t\tix += dx0;\n\t\t\t\t\tiy += dy0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t\tiy += dy1;\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedunary2d;\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-depth */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from './../../../base/unary-loop-interchange-order';\nimport blockSize from './../../../base/unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a three-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - unary callback\n*\n* @example\n* import Complex64Array from '@stdlib/array/complex64';\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2, 1 ];\n* var sy = [ 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* blockedunary3d( x, y, scale );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction blockedunary3d( x, y, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar ox1;\n\tvar ox2;\n\tvar oy1;\n\tvar oy2;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\toy2 = oy + ( j2*sy[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t// Compute loop offset increments...\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) );\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t\tiy += dy2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedunary3d;\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-depth */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from './../../../base/unary-loop-interchange-order';\nimport blockSize from './../../../base/unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a four-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - unary callback\n*\n* @example\n* import Complex64Array from '@stdlib/array/complex64';\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* blockedunary4d( x, y, scale );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction blockedunary4d( x, y, fcn ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\toy3 = oy + ( j3*sy[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) );\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedunary4d;\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-depth */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from './../../../base/unary-loop-interchange-order';\nimport blockSize from './../../../base/unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a five-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - unary callback\n*\n* @example\n* import Complex64Array from '@stdlib/array/complex64';\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* blockedunary5d( x, y, scale );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction blockedunary5d( x, y, fcn ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\toy4 = oy + ( j4*sy[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) ); // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedunary5d;\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-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from './../../../base/unary-loop-interchange-order';\nimport blockSize from './../../../base/unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a six-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - unary callback\n*\n* @example\n* import Complex64Array from '@stdlib/array/complex64';\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* blockedunary6d( x, y, scale );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction blockedunary6d( x, y, fcn ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\toy5 = oy + ( j5*sy[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedunary6d;\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-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from './../../../base/unary-loop-interchange-order';\nimport blockSize from './../../../base/unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a seven-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - unary callback\n*\n* @example\n* import Complex64Array from '@stdlib/array/complex64';\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* blockedunary7d( x, y, scale );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction blockedunary7d( x, y, fcn ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\toy6 = oy + ( j6*sy[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedunary7d;\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-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from './../../../base/unary-loop-interchange-order';\nimport blockSize from './../../../base/unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in an eight-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - unary callback\n*\n* @example\n* import Complex64Array from '@stdlib/array/complex64';\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* blockedunary8d( x, y, scale );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction blockedunary8d( x, y, fcn ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\toy7 = oy + ( j7*sy[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedunary8d;\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-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from './../../../base/unary-loop-interchange-order';\nimport blockSize from './../../../base/unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a nine-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - unary callback\n*\n* @example\n* import Complex64Array from '@stdlib/array/complex64';\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* blockedunary9d( x, y, scale );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction blockedunary9d( x, y, fcn ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oy8;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\toy8 = oy + ( j8*sy[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\tdy8 = sy[8] - ( s7*sy[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\toy7 = oy8 + ( j7*sy[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedunary9d;\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-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from './../../../base/unary-loop-interchange-order';\nimport blockSize from './../../../base/unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a ten-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - unary callback\n*\n* @example\n* import Complex64Array from '@stdlib/array/complex64';\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* blockedunary10d( x, y, scale );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction blockedunary10d( x, y, fcn ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dy9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oy8;\n\tvar oy9;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\ts9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\ts9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\toy9 = oy + ( j9*sy[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( s8*sx[8] );\n\t\t\tdy9 = sy[9] - ( s8*sy[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\toy8 = oy9 + ( j8*sy[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\t\tdy8 = sy[8] - ( s7*sy[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\toy7 = oy8 + ( j7*sy[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy9;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedunary10d;\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) 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 { isPrimitive as isNonNegativeInteger } from '@stdlib/assert/is-nonnegative-integer';\nimport isPositiveInteger from '@stdlib/assert/is-positive-integer';\nimport { isPrimitive as isInteger } from '@stdlib/assert/is-integer';\nimport isFunctionArray from '@stdlib/assert/is-function-array';\nimport isFunction from '@stdlib/assert/is-function';\nimport isCollection from '@stdlib/assert/is-collection';\nimport isndarrayLike from '@stdlib/assert/is-ndarray-like';\nimport format from '@stdlib/string/format';\nimport getDType from './../../dtype';\nimport resolveEnum from './../../base/dtype-resolve-enum';\nimport indexOfTypes from './index_of_types.js';\n\n\n// FUNCTIONS //\n\n/**\n* Returns a list of data type enumeration constants.\n*\n* @private\n* @param {Collection} types - list of types\n* @returns {IntegerArray} list of data type enumeration constants\n*/\nfunction types2enums( types ) {\n\tvar out;\n\tvar i;\n\n\tout = [];\n\tfor ( i = 0; i < types.length; i++ ) {\n\t\tout.push( resolveEnum( types[ i ] ) );\n\t}\n\treturn out;\n}\n\n\n// MAIN //\n\n/**\n* Returns an ndarray function interface which performs multiple dispatch.\n*\n* @param {(FunctionArray|Function)} fcns - list of ndarray functions\n* @param {Collection} types - one-dimensional list of ndarray argument data types\n* @param {(Collection|null)} data - ndarray function data (e.g., callbacks)\n* @param {PositiveInteger} nargs - total number of ndarray function interface arguments\n* @param {NonNegativeInteger} nin - number of input ndarrays\n* @param {NonNegativeInteger} nout - number of output ndarrays\n* @throws {TypeError} first argument must be either a function or an array of functions\n* @throws {TypeError} second argument must be an array-like object\n* @throws {TypeError} third argument must be an array-like object or `null`\n* @throws {Error} third and first arguments must have the same number of elements\n* @throws {TypeError} fourth argument must be a positive integer\n* @throws {TypeError} fifth argument must be a nonnegative integer\n* @throws {TypeError} sixth argument must be a nonnegative integer\n* @throws {Error} fourth argument must equal the specified number of input and output arrays\n* @throws {Error} number of types must match the number of functions times the total number of array arguments for each function\n* @throws {Error} interface must accept at least one input and/or output ndarray\n* @returns {Function} ndarray function interface\n*\n* @example\n* import unary from '@stdlib/ndarray/base/unary';\n* import abs from '@stdlib/math/base/special/abs';\n* import Float64Array from '@stdlib/array/float64';\n* import ndarray from '@stdlib/ndarray/ctor';\n*\n* var types = [\n* 'float64', 'float64'\n* ];\n*\n* var data = [\n* abs\n* ];\n*\n* var absolute = dispatch( unary, types, data, 2, 1, 1 );\n*\n* // ...\n*\n* var xbuf = new Float64Array( [ -1.0, -2.0, -3.0, -4.0, -5.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* var x = ndarray( 'float64', xbuf, [ 5 ], [ 1 ], 0, 'row-major' );\n* var y = ndarray( 'float64', ybuf, [ 5 ], [ 1 ], 0, 'row-major' );\n*\n* absolute( x, y );\n* // ybuf => [ 1.0, 2.0, 3.0, 4.0, 5.0 ]\n*/\nfunction dispatch( fcns, types, data, nargs, nin, nout ) {\n\tvar narrays;\n\tvar nfcns;\n\tvar fcn;\n\n\tif ( isFunction( fcns ) ) {\n\t\tfcn = fcns;\n\t} else if ( !isFunctionArray( fcns ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be either a function or an array of functions. Value: `%s`.', fcns ) );\n\t}\n\tif ( !isCollection( types ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an array-like object. Value: `%s`.', types ) );\n\t}\n\tif ( !isCollection( data ) && data !== null ) {\n\t\tthrow new TypeError( format( 'invalid argument. Third argument must be an array-like object or null. Value: `%s`.', data ) );\n\t}\n\tif ( !isPositiveInteger( nargs ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Fourth argument must be a positive integer. Value: `%s`.', nargs ) );\n\t}\n\tif ( !isNonNegativeInteger( nin ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Fifth argument must be a nonnegative integer. Value: `%s`.', nin ) );\n\t}\n\tif ( !isNonNegativeInteger( nout ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Sixth argument must be a nonnegative integer. Value: `%s`.', nout ) );\n\t}\n\tnarrays = nin + nout;\n\tif ( narrays === 0 ) {\n\t\tthrow new Error( 'invalid arguments. Interface must accept at least one input and/or output ndarray. Based on the provided arguments, `nin+nout` equals `0`.' );\n\t}\n\tif ( nargs !== narrays ) {\n\t\tthrow new Error( 'invalid arguments. Fourth argument does not equal the number of input and output ndarrays.' );\n\t}\n\tif ( fcn ) {\n\t\tnfcns = types.length / narrays;\n\t\tif ( !isInteger( nfcns ) ) {\n\t\t\tthrow new Error( 'invalid argument. Unexpected number of types. A type must be specified for each input and output ndarray for each provided ndarray function.' );\n\t\t}\n\t} else {\n\t\tnfcns = fcns.length;\n\t\tif ( types.length !== nfcns*narrays ) {\n\t\t\tthrow new Error( 'invalid argument. Unexpected number of types. A type must be specified for each input and output ndarray for each provided ndarray function.' );\n\t\t}\n\t}\n\tif ( data && data.length !== nfcns ) {\n\t\tthrow new Error( 'invalid argument. The third argument must have the same number of elements as the first argument.' );\n\t}\n\ttypes = types2enums( types );\n\treturn dispatcher;\n\n\t/**\n\t* ndarray function interface which performs multiple dispatch.\n\t*\n\t* @private\n\t* @param {ndarrayLike} x - ndarray\n\t* @param {...ndarrayLike} args - ndarray arguments\n\t* @throws {Error} insufficient arguments\n\t* @throws {Error} too many arguments\n\t* @throws {TypeError} input array arguments must be ndarray-like objects\n\t* @throws {TypeError} output array arguments must be ndarray-like objects\n\t* @throws {TypeError} unable to resolve an ndarray function supporting the provided ndarray argument data types\n\t* @returns {(ndarrayLike|Array|void)} destination array(s)\n\t*/\n\tfunction dispatcher() {\n\t\tvar arrays;\n\t\tvar dtypes;\n\t\tvar argc;\n\t\tvar idx;\n\t\tvar v;\n\t\tvar f;\n\t\tvar i;\n\n\t\targc = arguments.length;\n\t\tif ( argc !== nargs ) {\n\t\t\tif ( argc < nargs ) {\n\t\t\t\tthrow new Error( 'invalid invocation. Insufficient arguments.' );\n\t\t\t}\n\t\t\tthrow new Error( 'invalid invocation. Too many arguments.' );\n\t\t}\n\t\tarrays = [];\n\t\tdtypes = [];\n\t\tfor ( i = 0; i < nargs; i++ ) {\n\t\t\tv = arguments[ i ];\n\t\t\tif ( !isndarrayLike( v ) ) {\n\t\t\t\tif ( i < nin ) {\n\t\t\t\t\tthrow new TypeError( format( 'invalid argument. Input array must be an ndarray-like object. Value: `%s`.', v ) );\n\t\t\t\t} else {\n\t\t\t\t\tthrow new TypeError( format( 'invalid argument. Output array must be an ndarray-like object. Value: `%s`.', v ) );\n\t\t\t\t}\n\t\t\t}\n\t\t\tarrays.push( v );\n\t\t\tdtypes.push( resolveEnum( getDType( v ) ) );\n\t\t}\n\t\t// Resolve the ndarray function satisfying the input array types:\n\t\tidx = indexOfTypes( nfcns, narrays, types, narrays, 1, 0, dtypes, 1, 0 ); // eslint-disable-line max-len\n\n\t\t// Check whether we were able to successfully resolve an ndarray function:\n\t\tif ( idx < 0 ) {\n\t\t\tthrow new TypeError( 'invalid arguments. Unable to resolve an ndarray function supporting the provided array argument data types.' );\n\t\t}\n\t\t// Retrieve the ndarray function:\n\t\tif ( fcn ) {\n\t\t\tf = fcn;\n\t\t} else {\n\t\t\tf = fcns[ idx ];\n\t\t}\n\t\t// Evaluate the ndarray function:\n\t\tif ( data ) {\n\t\t\tf( arrays, data[ idx ] );\n\t\t} else {\n\t\t\tf( arrays );\n\t\t}\n\t\tif ( nout === 1 ) {\n\t\t\treturn arrays[ narrays-1 ];\n\t\t}\n\t\tif ( nout === 0 ) {\n\t\t\treturn;\n\t\t}\n\t\treturn arrays.slice( nin );\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/**\n* Returns the first row index at which a given one-dimensional array of types can be found in a two-dimensional reference array of types (or `-1` if not found).\n*\n* ## Notes\n*\n* - The intended use case for this function is for type dispatch (i.e., given a set of array data types, find a matching interface according the interface's accepted array data types).\n* - The function assumes that `x` is stored in row-major order.\n* - The function assumes that the number of indexed elements in `y` equals the number of columns in `x`.\n* - The function returns a row index. To convert to a linear index, multiply `strideX1` by the return value.\n*\n* @private\n* @param {NonNegativeInteger} N - number of rows in `x` (size of first dimension)\n* @param {NonNegativeInteger} M - number of columns in `x` (size of second dimension)\n* @param {ArrayLikeObject} x - input two-dimensional reference array\n* @param {integer} strideX1 - `x` stride length along first dimension\n* @param {integer} strideX2 - `x` stride length along second dimension\n* @param {NonNegativeInteger} offsetX - `x` starting index\n* @param {ArrayLikeObject} y - search array\n* @param {integer} strideY - `y` stride length\n* @param {NonNegativeInteger} offsetY - `y` starting index\n* @returns {integer} row index (if found) and `-1` otherwise\n*\n* @example\n* // Define a reference array to search:\n* var types = [\n* 'float64', 'float64', 'float64',\n* 'float32', 'float32', 'float32',\n* 'uint32', 'uint32', 'float64',\n* 'int32', 'int32', 'float64',\n* 'uint16', 'uint16', 'float64',\n* 'int16', 'int16', 'float64',\n* 'uint8', 'uint8', 'float64',\n* 'int8', 'int8', 'float64'\n* ];\n*\n* // Define reference array dimensions:\n* var N = 8; // rows\n* var M = 3; // columns\n*\n* // Define a search array:\n* y1 = [\n* 'float32', 'float32', 'float32',\n* ];\n*\n* // Find the list of types:\n* var r1 = indexOfTypes( N, M, types, M, 1, 0, y1, 1, 0 );\n* // returns 1\n*\n// Define a search array:\n* y2 = [\n* 'float32', 'float32', 'float64',\n* ];\n*\n* // Find the list of types:\n* var r2 = indexOfTypes( N, M, types, M, 1, 0, y2, 1, 0 );\n* // returns -1\n*/\nfunction indexOfTypes( N, M, x, strideX1, strideX2, offsetX, y, strideY, offsetY ) { // eslint-disable-line max-len\n\tvar ix;\n\tvar iy;\n\tvar i;\n\tvar j;\n\n\t// Search for the first row which matches `y`...\n\tix = offsetX;\n\tfor ( i = 0; i < N; i++ ) {\n\t\tiy = offsetY;\n\t\tfor ( j = 0; j < M; j++ ) {\n\t\t\tif ( x[ ix+(j*strideX2) ] !== y[ iy ] ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tiy += strideY;\n\t\t}\n\t\t// If we successfully iterated over all columns, then that means we've found a match...\n\t\tif ( j === M ) {\n\t\t\treturn i;\n\t\t}\n\t\tix += strideX1;\n\t}\n\treturn -1;\n}\n\n\n// EXPORTS //\n\nexport default indexOfTypes;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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 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) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport objectKeys from '@stdlib/utils/keys';\nimport hasOwnProp from '@stdlib/assert/has-own-property';\nimport resolve from './../../base/dtype-resolve-str';\nimport PROMOTION_RULES from './promotion_rules.json';\n\n\n// FUNCTIONS //\n\n/**\n* Generates a full table of promotion rules.\n*\n* @private\n* @returns {Object} table\n*/\nfunction generateFullTable() {\n\tvar dtypes;\n\tvar ntypes;\n\tvar out;\n\tvar tmp;\n\tvar dt1;\n\tvar dt2;\n\tvar o;\n\tvar j;\n\tvar i;\n\n\tout = {};\n\tdtypes = objectKeys( PROMOTION_RULES );\n\tntypes = dtypes.length;\n\tfor ( i = 0; i < ntypes; i++ ) {\n\t\tdt1 = dtypes[ i ];\n\t\to = PROMOTION_RULES[ dt1 ];\n\t\ttmp = {};\n\t\tfor ( j = 0; j < ntypes; j++ ) {\n\t\t\tdt2 = dtypes[ j ];\n\t\t\ttmp[ dt2 ] = o[ dt2 ];\n\t\t}\n\t\tout[ dt1 ] = tmp;\n\t}\n\treturn out;\n}\n\n\n// MAIN //\n\n/**\n* Returns the ndarray data type with the smallest size and closest \"kind\" to which ndarray data types can be safely cast.\n*\n* @param {*} [dtype1] - ndarray data type value\n* @param {*} [dtype2] - ndarray data type value\n* @returns {(Object|integer|string|null)} promotion rule(s) or null\n*\n* @example\n* var table = promotionRules();\n* // returns {...}\n*\n* @example\n* var dt = promotionRules( 'float32', 'uint32' );\n* // returns 'float64'\n*\n* @example\n* var dt = promotionRules( 'binary', 'generic' );\n* // returns -1\n*\n* @example\n* var dt = promotionRules( 'float32', 'foo' );\n* // returns null\n*/\nfunction promotionRules( dtype1, dtype2 ) {\n\tvar o;\n\tif ( arguments.length === 0 ) {\n\t\treturn generateFullTable();\n\t}\n\tdtype1 = resolve( dtype1 );\n\tif ( hasOwnProp( PROMOTION_RULES, dtype1 ) ) {\n\t\to = PROMOTION_RULES[ dtype1 ];\n\t\tdtype2 = resolve( dtype2 );\n\t\tif ( hasOwnProp( o, dtype2 ) ) {\n\t\t\treturn o[ dtype2 ];\n\t\t}\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nexport default promotionRules;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport objectKeys from '@stdlib/utils/keys';\nimport hasOwnProp from '@stdlib/assert/has-own-property';\nimport resolve from './../../base/dtype-resolve-str';\nimport SAFE_CASTS from './safe_casts.json';\n\n\n// VARIABLES //\n\nvar TABLE;\n\n\n// FUNCTIONS //\n\n/**\n* Generates a full table of safe casts for each ndarray data type.\n*\n* @private\n* @returns {Object} table\n*/\nfunction generateFullTable() {\n\tvar dtypes;\n\tvar ntypes;\n\tvar out;\n\tvar tmp;\n\tvar dt1;\n\tvar dt2;\n\tvar o;\n\tvar j;\n\tvar i;\n\n\tout = {};\n\tdtypes = objectKeys( SAFE_CASTS );\n\tntypes = dtypes.length;\n\tfor ( i = 0; i < ntypes; i++ ) {\n\t\tdt1 = dtypes[ i ];\n\t\to = SAFE_CASTS[ dt1 ];\n\t\ttmp = {};\n\t\tfor ( j = 0; j < ntypes; j++ ) {\n\t\t\tdt2 = dtypes[ j ];\n\t\t\ttmp[ dt2 ] = o[ dt2 ];\n\t\t}\n\t\tout[ dt1 ] = tmp;\n\t}\n\treturn out;\n}\n\n/**\n* Generates a table of safe casts for each ndarray data type.\n*\n* @private\n* @returns {Object} table\n*/\nfunction generateTable() {\n\tvar dtypes;\n\tvar ntypes;\n\tvar out;\n\tvar tmp;\n\tvar dt1;\n\tvar dt2;\n\tvar o;\n\tvar j;\n\tvar i;\n\n\tout = {};\n\tdtypes = objectKeys( SAFE_CASTS );\n\tntypes = dtypes.length;\n\tfor ( i = 0; i < ntypes; i++ ) {\n\t\tdt1 = dtypes[ i ];\n\t\to = SAFE_CASTS[ dt1 ];\n\t\ttmp = [];\n\t\tfor ( j = 0; j < ntypes; j++ ) {\n\t\t\tdt2 = dtypes[ j ];\n\t\t\tif ( o[ dt2 ] === 1 ) {\n\t\t\t\ttmp.push( dt2 );\n\t\t\t}\n\t\t}\n\t\tout[ dt1 ] = tmp;\n\t}\n\treturn out;\n}\n\n\n// MAIN //\n\n/**\n* Returns a list of ndarray data types to which a provided ndarray data type can be safely cast.\n*\n* @param {*} [dtype] - ndarray data type value\n* @returns {(Object|StringArray|null)} list of ndarray data types or null\n*\n* @example\n* var list = safeCasts( 'float32' );\n* // returns [...]\n*/\nfunction safeCasts( dtype ) {\n\tif ( arguments.length === 0 ) {\n\t\treturn generateFullTable();\n\t}\n\tif ( TABLE === void 0 ) {\n\t\t// Lazily generate table...\n\t\tTABLE = generateTable();\n\t}\n\tdtype = resolve( dtype );\n\tif ( hasOwnProp( TABLE, dtype ) ) {\n\t\treturn TABLE[ dtype ].slice();\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nexport default safeCasts;\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 enum2str from './../../../base/dtype-enum2str';\nimport str2enum from './../../../base/dtype-str2enum';\n\n\n// MAIN //\n\n/**\n* Returns the data type string associated with a supported strided array data type value.\n*\n* @param {*} dtype - data type value\n* @returns {(string|null)} data type string or null\n*\n* @example\n* import str2enum from '@stdlib/strided/base/dtype-str2enum';\n*\n* var v = resolve( str2enum( 'float64' ) );\n* // returns 'float64'\n*/\nfunction resolve( dtype ) {\n\tvar t = ( typeof dtype );\n\tif ( t === 'string' ) {\n\t\treturn ( str2enum( dtype ) === null ) ? null : dtype;\n\t}\n\tif ( t === 'number' ) {\n\t\treturn enum2str( dtype );\n\t}\n\treturn null;\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 promotionRules from '@stdlib/ndarray/promotion-rules';\nimport safeCasts from '@stdlib/ndarray/safe-casts';\nimport resolveEnum from './../../../base/dtype-resolve-enum';\nimport resolveStr from './../../../base/dtype-resolve-str';\nimport format from '@stdlib/string/format';\n\n\n// FUNCTIONS //\n\n/**\n* Returns the intersection of two sorted lists.\n*\n* @private\n* @param {ArrayLikeObject} list1 - first sorted list\n* @param {ArrayLikeObject} list2 - second sorted list\n* @returns {ArrayLikeObject} result\n*\n* @example\n* var list1 = [ 'a', 'b', 'c', 'd' ];\n* var list2 = [ 'b', 'd', 'e' ];\n*\n* var out = intersection( list1, list2 );\n* // returns [ 'b', 'd' ]\n*/\nfunction intersection( list1, list2 ) {\n\tvar out;\n\tvar M;\n\tvar N;\n\tvar v;\n\tvar i;\n\tvar j;\n\tvar k;\n\n\tM = list1.length;\n\tN = list2.length;\n\n\tout = [];\n\tk = 0;\n\tfor ( i = 0; i < M; i++ ) {\n\t\tif ( k >= N ) {\n\t\t\tbreak;\n\t\t}\n\t\tv = list1[ i ];\n\t\tfor ( j = k; j < N; j++ ) {\n\t\t\tif ( v === list2[ j ] ) {\n\t\t\t\tk = j + 1;\n\t\t\t\tout.push( v );\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\treturn out;\n}\n\n/**\n* Resolves a list of data types to data type strings.\n*\n* @private\n* @param {ArrayLikeObject} dtypes - list of data types\n* @returns {(StringArray|Error)} data type strings (or an error)\n*\n* @example\n* var out = resolve( [ 1, 2, 3 ] );\n* // returns [...]\n*/\nfunction resolve( dtypes ) {\n\tvar out;\n\tvar dt;\n\tvar i;\n\n\tout = [];\n\tfor ( i = 0; i < dtypes.length; i++ ) {\n\t\tdt = resolveStr( dtypes[ i ] );\n\t\tif ( dt === null ) {\n\t\t\treturn new TypeError( format( 'invalid argument. Must provide recognized data types. Unable to resolve a data type string. Value: `%s`.', dtypes[ i ] ) );\n\t\t}\n\t\tout.push( dt );\n\t}\n\treturn out;\n}\n\n/**\n* Tests whether a provided array contains a specified value.\n*\n* @private\n* @param {Array} arr - input array\n* @param {*} value - search value\n* @returns {boolean} boolean indicating whether a provided array contains a specified value\n*/\nfunction contains( arr, value ) {\n\tvar i;\n\tfor ( i = 0; i < arr.length; i++ ) {\n\t\tif ( arr[ i ] === value ) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// MAIN //\n\n/**\n* Generates a list of binary interface signatures from strided array data types.\n*\n* ## Notes\n*\n* - The function returns a strided array having a stride length of `3` (i.e., every `3` elements define a binary interface signature).\n* - For each signature (i.e., set of three consecutive non-overlapping strided array elements), the first two elements are the input data types and the third element is the return data type.\n* - All signatures follow type promotion rules.\n*\n* @param {Array} dtypes1 - list of supported data types for the first argument\n* @param {Array} dtypes2 - list of supported data types for the second argument\n* @param {Array} dtypes3 - list of supported data types for the output\n* @param {Options} [options] - options\n* @param {boolean} [options.enums=false] - boolean flag indicating whether to return signatures as a list of enumeration constants\n* @throws {TypeError} must provide recognized data types\n* @returns {Array} strided array containing binary interface signatures\n*\n* @example\n* var dtypes = [\n* 'float64',\n* 'float32',\n* 'int32',\n* 'uint8'\n* ];\n*\n* var sigs = signatures( dtypes, dtypes, dtypes );\n* // returns [ 'float32', 'float32', 'float32', ... ]\n*/\nfunction signatures( dtypes1, dtypes2, dtypes3, options ) {\n\tvar cache;\n\tvar casts;\n\tvar opts;\n\tvar tmp;\n\tvar out;\n\tvar dt1;\n\tvar dt2;\n\tvar dt3;\n\tvar t1;\n\tvar t2;\n\tvar t3;\n\tvar t4;\n\tvar M;\n\tvar N;\n\tvar i;\n\tvar j;\n\tvar k;\n\n\tif ( arguments.length > 3 ) {\n\t\topts = options;\n\t} else {\n\t\topts = {};\n\t}\n\t// Resolve the list of provided data types to data type strings:\n\tdt1 = resolve( dtypes1 );\n\tif ( dt1 instanceof Error ) {\n\t\tthrow dt1;\n\t}\n\tif ( dtypes2 === dtypes1 ) { // don't do work if we don't need to\n\t\tdt2 = dt1;\n\t} else {\n\t\tdt2 = resolve( dtypes2 );\n\t\tif ( dt2 instanceof Error ) {\n\t\t\tthrow dt2;\n\t\t}\n\t}\n\tif ( dtypes3 === dtypes1 ) { // don't do work if we don't need to\n\t\tdt3 = dt1;\n\t} else if ( dtypes3 === dtypes2 ) {\n\t\tdt3 = dt2;\n\t} else {\n\t\tdt3 = resolve( dtypes3 );\n\t\tif ( dt3 instanceof Error ) {\n\t\t\tthrow dt3;\n\t\t}\n\t}\n\t// Sort the list of return dtypes:\n\tdt3.sort();\n\n\t// Initialize a cache for storing the safe casts for promoted dtypes:\n\tcache = {};\n\n\t// Generate the list of signatures...\n\tM = dt1.length;\n\tN = dt2.length;\n\tout = [];\n\tfor ( i = 0; i < M; i++ ) {\n\t\tt1 = dt1[ i ];\n\t\tfor ( j = 0; j < N; j++ ) {\n\t\t\tt2 = dt2[ j ];\n\n\t\t\t// Resolve the promoted dtype for the current dtype pair:\n\t\t\tt3 = promotionRules( t1, t2 );\n\n\t\t\t// Check whether the dtype pair promotes...\n\t\t\tif ( t3 === -1 || t3 === null ) {\n\t\t\t\t// The dtype pair does not promote:\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\t// Check whether the promoted dtype is in our list of output dtypes...\n\t\t\tif ( contains( dt3, t3 ) ) {\n\t\t\t\tout.push( t1, t2, t3 );\n\t\t\t}\n\t\t\t// Retrieve the allowed casts for the promoted dtype:\n\t\t\tcasts = cache[ t3 ];\n\n\t\t\t// If a list of allowed casts is not in the cache, we need to resolve them...\n\t\t\tif ( casts === void 0 ) {\n\t\t\t\t// Resolve the list of safe casts for the promoted dtype:\n\t\t\t\tcasts = safeCasts( t3 );\n\n\t\t\t\t// Remove safe casts which are not among the supported output dtypes:\n\t\t\t\tcasts = intersection( dt3, casts.sort() );\n\n\t\t\t\t// Store the list of safe casts in the cache:\n\t\t\t\tcache[ t3 ] = casts;\n\t\t\t}\n\t\t\t// Generate signatures for allowed casts...\n\t\t\tfor ( k = 0; k < casts.length; k++ ) {\n\t\t\t\tt4 = casts[ k ];\n\t\t\t\tif ( t4 !== t3 ) {\n\t\t\t\t\tout.push( t1, t2, t4 );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tif ( opts.enums ) {\n\t\ttmp = [];\n\t\tfor ( i = 0; i < out.length; i++ ) {\n\t\t\ttmp.push( resolveEnum( out[ i ] ) );\n\t\t}\n\t\tout = tmp;\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default signatures;\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) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Applies a binary callback to strided input array elements and assigns results to elements in a strided output array.\n*\n* @private\n* @param {ArrayLikeObject} arrays - array-like object containing two input arrays and one output array\n* @param {NonNegativeIntegerArray} shape - array-like object containing a single element, the number of indexed elements\n* @param {IntegerArray} strides - array-like object containing the stride lengths for the input and output arrays\n* @param {NonNegativeIntegerArray} offsets - array-like object containing the starting indices (i.e., index offsets) for the input and output arrays\n* @param {Callback} fcn - binary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import add from '@stdlib/math/base/ops/add';\n*\n* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var y = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var z = new Float64Array( x.length );\n*\n* var shape = [ x.length ];\n* var strides = [ 1, 1, 1 ];\n* var offsets = [ 0, 0, 0 ];\n*\n* binary( [ x, y, z ], shape, strides, offsets, add );\n*\n* console.log( z );\n* // => [ 2.0, 4.0, 6.0, 8.0, 10.0 ]\n*/\nfunction binary( arrays, shape, strides, offsets, fcn ) {\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar x;\n\tvar y;\n\tvar z;\n\tvar N;\n\tvar i;\n\n\tN = shape[ 0 ];\n\tif ( N <= 0 ) {\n\t\treturn;\n\t}\n\tix = offsets[ 0 ];\n\tiy = offsets[ 1 ];\n\tiz = offsets[ 2 ];\n\tsx = strides[ 0 ];\n\tsy = strides[ 1 ];\n\tsz = strides[ 2 ];\n\tx = arrays[ 0 ];\n\ty = arrays[ 1 ];\n\tz = arrays[ 2 ];\n\tfor ( i = 0; i < N; i++ ) {\n\t\tz[ iz ] = fcn( x[ ix ], y[ iy ] );\n\t\tix += sx;\n\t\tiy += sy;\n\t\tiz += sz;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default binary;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Applies a binary callback to strided input array elements and assigns results to elements in a strided output array.\n*\n* @private\n* @param {ArrayLikeObject} arrays - array-like object containing two input arrays and one output array\n* @param {NonNegativeIntegerArray} shape - array-like object containing a single element, the number of indexed elements\n* @param {IntegerArray} strides - array-like object containing the stride lengths for the input and output arrays\n* @param {NonNegativeIntegerArray} offsets - array-like object containing the starting indices (i.e., index offsets) for the input and output arrays\n* @param {Array} accessors - array-like object containing accessors for the input and output arrays\n* @param {Callback} fcn - binary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import add from '@stdlib/math/base/ops/add';\n*\n* function get( buf, idx ) {\n* return buf[ idx ] * 2.0;\n* }\n*\n* function set( buf, idx, value ) {\n* buf[ idx ] = value;\n* }\n*\n* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var y = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var z = new Float64Array( x.length );\n*\n* var shape = [ x.length ];\n* var strides = [ 1, 1, 1 ];\n* var offsets = [ 0, 0, 0 ];\n*\n* binary( [ x, y, z ], shape, strides, offsets, [ get, get, set ], add );\n*\n* console.log( z );\n* // => [ 4.0, 8.0, 12.0, 16.0, 20.0 ]\n*/\nfunction binary( arrays, shape, strides, offsets, accessors, fcn ) {\n\tvar xget;\n\tvar yget;\n\tvar zset;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar x;\n\tvar y;\n\tvar z;\n\tvar N;\n\tvar i;\n\n\tN = shape[ 0 ];\n\tif ( N <= 0 ) {\n\t\treturn;\n\t}\n\tix = offsets[ 0 ];\n\tiy = offsets[ 1 ];\n\tiz = offsets[ 2 ];\n\tsx = strides[ 0 ];\n\tsy = strides[ 1 ];\n\tsz = strides[ 2 ];\n\tx = arrays[ 0 ];\n\ty = arrays[ 1 ];\n\tz = arrays[ 2 ];\n\txget = accessors[ 0 ];\n\tyget = accessors[ 1 ];\n\tzset = accessors[ 2 ];\n\tfor ( i = 0; i < N; i++ ) {\n\t\tzset( z, iz, fcn( xget( x, ix ), yget( y, iy ) ) );\n\t\tix += sx;\n\t\tiy += sy;\n\t\tiz += sz;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default binary;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isAccessorArray from '@stdlib/array/base/assert/is-accessor-array';\nimport accessorGetter from '@stdlib/array/base/accessor-getter';\nimport accessorSetter from '@stdlib/array/base/accessor-setter';\nimport getter from '@stdlib/array/base/getter';\nimport setter from '@stdlib/array/base/setter';\nimport dtype from '@stdlib/array/dtype';\nimport strided from './binary.js';\nimport accessors from './accessors.js';\n\n\n// MAIN //\n\n/**\n* Applies a binary callback to strided input array elements and assigns results to elements in a strided output array.\n*\n* @param {ArrayLikeObject} arrays - array-like object containing two input arrays and one output array\n* @param {NonNegativeIntegerArray} shape - array-like object containing a single element, the number of indexed elements\n* @param {IntegerArray} strides - array-like object containing the stride lengths for the input and output arrays\n* @param {Callback} fcn - binary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import add from '@stdlib/math/base/ops/add';\n*\n* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var y = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var z = new Float64Array( x.length );\n*\n* var shape = [ x.length ];\n* var strides = [ 1, 1, 1 ];\n*\n* binary( [ x, y, z ], shape, strides, add );\n*\n* console.log( z );\n* // => [ 2.0, 4.0, 6.0, 8.0, 10.0 ]\n*/\nfunction binary( arrays, shape, strides, fcn ) {\n\tvar xget;\n\tvar yget;\n\tvar zset;\n\tvar x;\n\tvar y;\n\tvar z;\n\n\tx = arrays[ 0 ];\n\tif ( isAccessorArray( x ) ) {\n\t\txget = accessorGetter( dtype( x ) );\n\t}\n\ty = arrays[ 1 ];\n\tif ( isAccessorArray( y ) ) {\n\t\tyget = accessorGetter( dtype( y ) );\n\t}\n\tz = arrays[ 2 ];\n\tif ( isAccessorArray( z ) ) {\n\t\tzset = accessorSetter( dtype( z ) );\n\t}\n\tif ( xget || yget || zset ) {\n\t\txget = xget || getter( dtype( x ) );\n\t\tyget = yget || getter( dtype( y ) );\n\t\tzset = zset || setter( dtype( z ) );\n\t\treturn accessors( arrays, shape, strides, [ xget, yget, zset ], fcn );\n\t}\n\treturn strided( arrays, shape, strides, fcn );\n}\n\n\n// EXPORTS //\n\nexport default binary;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport stride2offset from './../../../base/stride2offset';\nimport ndarray from './accessors.ndarray.js';\n\n\n// MAIN //\n\n/**\n* Applies a binary callback to strided input array elements and assigns results to elements in a strided output array.\n*\n* @private\n* @param {ArrayLikeObject} arrays - array-like object containing two input arrays and one output array\n* @param {NonNegativeIntegerArray} shape - array-like object containing a single element, the number of indexed elements\n* @param {IntegerArray} strides - array-like object containing the stride lengths for the input and output arrays\n* @param {Array} accessors - array-like object containing accessors for the input and output arrays\n* @param {Callback} fcn - binary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import add from '@stdlib/math/base/ops/add';\n*\n* function get( buf, idx ) {\n* return buf[ idx ] * 2.0;\n* }\n*\n* function set( buf, idx, value ) {\n* buf[ idx ] = value;\n* }\n*\n* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var y = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var z = new Float64Array( x.length );\n*\n* var shape = [ x.length ];\n* var strides = [ 1, 1, 1 ];\n*\n* binary( [ x, y, z ], shape, strides, [ get, get, set ], add );\n*\n* console.log( z );\n* // => [ 4.0, 8.0, 12.0, 16.0, 20.0 ]\n*/\nfunction binary( arrays, shape, strides, accessors, fcn ) {\n\tvar offsets;\n\tvar N;\n\n\tN = shape[ 0 ];\n\toffsets = [\n\t\tstride2offset( N, strides[ 0 ] ),\n\t\tstride2offset( N, strides[ 1 ] ),\n\t\tstride2offset( N, strides[ 2 ] )\n\t];\n\treturn ndarray( arrays, shape, strides, offsets, accessors, fcn );\n}\n\n\n// EXPORTS //\n\nexport default binary;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport stride2offset from './../../../base/stride2offset';\nimport ndarray from './binary.ndarray.js';\n\n\n// MAIN //\n\n/**\n* Applies a binary callback to strided input array elements and assigns results to elements in a strided output array.\n*\n* @private\n* @param {ArrayLikeObject} arrays - array-like object containing two input arrays and one output array\n* @param {NonNegativeIntegerArray} shape - array-like object containing a single element, the number of indexed elements\n* @param {IntegerArray} strides - array-like object containing the stride lengths for the input and output arrays\n* @param {Callback} fcn - binary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import add from '@stdlib/math/base/ops/add';\n*\n* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var y = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var z = new Float64Array( x.length );\n*\n* var shape = [ x.length ];\n* var strides = [ 1, 1, 1 ];\n*\n* binary( [ x, y, z ], shape, strides, add );\n*\n* console.log( z );\n* // => [ 2.0, 4.0, 6.0, 8.0, 10.0 ]\n*/\nfunction binary( arrays, shape, strides, fcn ) {\n\tvar offsets;\n\tvar N;\n\n\tN = shape[ 0 ];\n\toffsets = [\n\t\tstride2offset( N, strides[ 0 ] ),\n\t\tstride2offset( N, strides[ 1 ] ),\n\t\tstride2offset( N, strides[ 2 ] )\n\t];\n\treturn ndarray( arrays, shape, strides, offsets, fcn );\n}\n\n\n// EXPORTS //\n\nexport default binary;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isAccessorArray from '@stdlib/array/base/assert/is-accessor-array';\nimport accessorGetter from '@stdlib/array/base/accessor-getter';\nimport accessorSetter from '@stdlib/array/base/accessor-setter';\nimport getter from '@stdlib/array/base/getter';\nimport setter from '@stdlib/array/base/setter';\nimport dtype from '@stdlib/array/dtype';\nimport strided from './binary.ndarray.js';\nimport accessors from './accessors.ndarray.js';\n\n\n// MAIN //\n\n/**\n* Applies a binary callback to strided input array elements and assigns results to elements in a strided output array.\n*\n* @param {ArrayLikeObject} arrays - array-like object containing two input arrays and one output array\n* @param {NonNegativeIntegerArray} shape - array-like object containing a single element, the number of indexed elements\n* @param {IntegerArray} strides - array-like object containing the stride lengths for the input and output arrays\n* @param {NonNegativeIntegerArray} offsets - array-like object containing the starting indices (i.e., index offsets) for the input and output arrays\n* @param {Callback} fcn - binary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import add from '@stdlib/math/base/ops/add';\n*\n* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var y = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var z = new Float64Array( x.length );\n*\n* var shape = [ x.length ];\n* var strides = [ 1, 1, 1 ];\n* var offsets = [ 0, 0, 0 ];\n*\n* binary( [ x, y, z ], shape, strides, offsets, add );\n*\n* console.log( z );\n* // => [ 2.0, 4.0, 6.0, 8.0, 10.0 ]\n*/\nfunction binary( arrays, shape, strides, offsets, fcn ) {\n\tvar xget;\n\tvar yget;\n\tvar zset;\n\tvar x;\n\tvar y;\n\tvar z;\n\n\tx = arrays[ 0 ];\n\tif ( isAccessorArray( x ) ) {\n\t\txget = accessorGetter( dtype( x ) );\n\t}\n\ty = arrays[ 1 ];\n\tif ( isAccessorArray( y ) ) {\n\t\tyget = accessorGetter( dtype( y ) );\n\t}\n\tz = arrays[ 2 ];\n\tif ( isAccessorArray( z ) ) {\n\t\tzset = accessorSetter( dtype( z ) );\n\t}\n\tif ( xget || yget || zset ) {\n\t\txget = xget || getter( dtype( x ) );\n\t\tyget = yget || getter( dtype( y ) );\n\t\tzset = zset || setter( dtype( z ) );\n\t\treturn accessors( arrays, shape, strides, offsets, [ xget, yget, zset ], fcn ); // eslint-disable-line max-len\n\t}\n\treturn strided( arrays, shape, strides, offsets, fcn );\n}\n\n\n// EXPORTS //\n\nexport default binary;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Apply a binary callback to strided input array elements and assign results to elements in a strided output array.\n*\n* @module @stdlib/strided/base/binary\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import binary from '@stdlib/strided/base/binary';\n* import add from '@stdlib/math/base/ops/add';\n*\n* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var y = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var z = new Float64Array( x.length );\n*\n* var shape = [ x.length ];\n* var strides = [ 1, 1, 1 ];\n*\n* binary( [ x, y, z ], shape, strides, add );\n*\n* console.log( z );\n* // => [ 2.0, 4.0, 6.0, 8.0, 10.0 ]\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import binary from '@stdlib/strided/base/binary';\n* import add from '@stdlib/math/base/ops/add';\n*\n* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var y = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var z = new Float64Array( x.length );\n*\n* var shape = [ x.length ];\n* var strides = [ 1, 1, 1 ];\n* var offsets = [ 0, 0, 0 ];\n*\n* binary.ndarray( [ x, y, z ], shape, strides, offsets, add );\n*\n* console.log( z );\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/* eslint-disable valid-typeof */\n\n'use strict';\n\n// MODULES //\n\nimport isFunction from '@stdlib/assert/is-function';\nimport { isPrimitive as isNonNegativeInteger } from '@stdlib/assert/is-nonnegative-integer';\nimport format from '@stdlib/string/format';\n\n\n// VARIABLES //\n\nvar T = 'number';\n\n\n// FUNCTIONS //\n\n/**\n* Wraps a function accepting complex number arguments to support providing both real and complex numbers.\n*\n* ## Notes\n*\n* - The returned function **assumes** that the wrapped function accepts **only** complex number input arguments (i.e., every argument must be a complex number).\n* - The returned function **assumes** that, if an input argument is non-numeric (i.e., not of type `number`), then the input argument is a complex number. The returned function does **not** verify that non-numeric input arguments are, in fact, complex number objects. The returned function passes non-numeric input arguments to the wrapped function without modification.\n*\n* @param {Function} fcn - function to wrap\n* @param {NonNegativeInteger} nargs - number of arguments\n* @param {Function} ctor - complex number constructor\n* @throws {TypeError} first argument must be a function\n* @throws {TypeError} second argument must be a nonnegative integer\n* @throws {TypeError} third argument must be a constructor function\n* @returns {Function} wrapped function\n*\n* @example\n* import Complex64 from '@stdlib/complex/float32/ctor';\n* import caddf from '@stdlib/complex/float32/base/add';\n* import realf from '@stdlib/complex/float32/real';\n* import imagf from '@stdlib/complex/float32/imag';\n*\n* var f = wrap( caddf, 2, Complex64 );\n*\n* // ...\n*\n* var z = f( 3.0, 4.0 );\n* // returns \n*\n* var re = realf( z );\n* // returns 7.0\n*\n* var im = imagf( z );\n* // returns 0.0\n*/\nfunction wrap( fcn, nargs, ctor ) {\n\tvar fcns;\n\tif ( !isFunction( fcn ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', fcn ) );\n\t}\n\tif ( !isNonNegativeInteger( nargs ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be a nonnegative integer. Value: `%s`.', nargs ) );\n\t}\n\tif ( !isFunction( ctor ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Third argument must be a constructor function. Value: `%s`.', ctor ) );\n\t}\n\tfcns = [ fcn0, fcn1, fcn2, fcn3, fcn4, fcn5 ];\n\treturn ( nargs <= 5 ) ? fcns[ nargs ] : fcnN;\n\n\t/**\n\t* Invokes a nullary function.\n\t*\n\t* @private\n\t* @returns {*} result\n\t*/\n\tfunction fcn0() {\n\t\treturn fcn();\n\t}\n\n\t/**\n\t* Invokes a unary function accepting complex numbers.\n\t*\n\t* @private\n\t* @param {(number|Complex)} x - input value\n\t* @returns {*} result\n\t*/\n\tfunction fcn1( x ) {\n\t\tif ( typeof x === T ) {\n\t\t\tx = new ctor( x, 0.0 );\n\t\t}\n\t\treturn fcn( x );\n\t}\n\n\t/**\n\t* Invokes a binary function accepting complex numbers.\n\t*\n\t* @private\n\t* @param {(number|Complex)} x - input value\n\t* @param {(number|Complex)} y - input value\n\t* @returns {*} result\n\t*/\n\tfunction fcn2( x, y ) {\n\t\tif ( typeof x === T ) {\n\t\t\tx = new ctor( x, 0.0 );\n\t\t}\n\t\tif ( typeof y === T ) {\n\t\t\ty = new ctor( y, 0.0 );\n\t\t}\n\t\treturn fcn( x, y );\n\t}\n\n\t/**\n\t* Invokes a ternary function accepting complex numbers.\n\t*\n\t* @private\n\t* @param {(number|Complex)} x - input value\n\t* @param {(number|Complex)} y - input value\n\t* @param {(number|Complex)} z - input value\n\t* @returns {*} result\n\t*/\n\tfunction fcn3( x, y, z ) {\n\t\tif ( typeof x === T ) {\n\t\t\tx = new ctor( x, 0.0 );\n\t\t}\n\t\tif ( typeof y === T ) {\n\t\t\ty = new ctor( y, 0.0 );\n\t\t}\n\t\tif ( typeof z === T ) {\n\t\t\tz = new ctor( z, 0.0 );\n\t\t}\n\t\treturn fcn( x, y, z );\n\t}\n\n\t/**\n\t* Invokes a quaternary function accepting complex numbers.\n\t*\n\t* @private\n\t* @param {(number|Complex)} x - input value\n\t* @param {(number|Complex)} y - input value\n\t* @param {(number|Complex)} z - input value\n\t* @param {(number|Complex)} w - input value\n\t* @returns {*} result\n\t*/\n\tfunction fcn4( x, y, z, w ) {\n\t\tif ( typeof x === T ) {\n\t\t\tx = new ctor( x, 0.0 );\n\t\t}\n\t\tif ( typeof y === T ) {\n\t\t\ty = new ctor( y, 0.0 );\n\t\t}\n\t\tif ( typeof z === T ) {\n\t\t\tz = new ctor( z, 0.0 );\n\t\t}\n\t\tif ( typeof w === T ) {\n\t\t\tw = new ctor( w, 0.0 );\n\t\t}\n\t\treturn fcn( x, y, z, w );\n\t}\n\n\t/**\n\t* Invokes a quinary function accepting complex numbers.\n\t*\n\t* @private\n\t* @param {(number|Complex)} x - input value\n\t* @param {(number|Complex)} y - input value\n\t* @param {(number|Complex)} z - input value\n\t* @param {(number|Complex)} w - input value\n\t* @param {(number|Complex)} v - input value\n\t* @returns {*} result\n\t*/\n\tfunction fcn5( x, y, z, w, v ) {\n\t\tif ( typeof x === T ) {\n\t\t\tx = new ctor( x, 0.0 );\n\t\t}\n\t\tif ( typeof y === T ) {\n\t\t\ty = new ctor( y, 0.0 );\n\t\t}\n\t\tif ( typeof z === T ) {\n\t\t\tz = new ctor( z, 0.0 );\n\t\t}\n\t\tif ( typeof w === T ) {\n\t\t\tw = new ctor( w, 0.0 );\n\t\t}\n\t\tif ( typeof v === T ) {\n\t\t\tv = new ctor( v, 0.0 );\n\t\t}\n\t\treturn fcn( x, y, z, w, v );\n\t}\n\n\t/**\n\t* Invokes a function accepting an arbitrary number of complex number input arguments.\n\t*\n\t* @private\n\t* @param {...(number|Complex)} args - input values\n\t* @returns {*} result\n\t*/\n\tfunction fcnN() {\n\t\tvar args;\n\t\tvar v;\n\t\tvar i;\n\n\t\targs = [];\n\t\tfor ( i = 0; i < arguments.length; i++ ) {\n\t\t\tv = arguments[ i ];\n\t\t\tif ( typeof v === T ) {\n\t\t\t\tv = new ctor( v, 0.0 );\n\t\t\t}\n\t\t\targs.push( v );\n\t\t}\n\t\treturn fcn.apply( null, args );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default wrap;\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 resolve from './../../../base/dtype-resolve-str';\nimport Complex64 from '@stdlib/complex/float32/ctor';\nimport Complex128 from '@stdlib/complex/float64/ctor';\nimport wrap from '@stdlib/complex/base/wrap-function';\n\n\n// VARIABLES //\n\nvar C64 = 'complex64';\nvar C128 = 'complex128';\nvar CTORS = {\n\t'complex64': Complex64,\n\t'complex128': Complex128\n};\n\n\n// FUNCTIONS //\n\n/**\n* Resolves a callback based on provided dtypes.\n*\n* @private\n* @param {Object} table - callback table\n* @param {Function} table.default - default callback\n* @param {Function} table.complex64 - callback for single-precision complex floating-point numbers\n* @param {Function} table.complex128 - callback for double-precision complex floating-point numbers\n* @param {string} t1 - dtype for first argument\n* @param {string} t2 - dtype for second argument\n* @param {string} t3 - dtype for return value\n* @returns {Function} callback\n*/\nfunction resolveCallback( table, t1, t2, t3 ) {\n\t// The following branches attempt to follow type promotion rules; however, some accommodations are made for completeness...\n\n\t// Signature: ??_z\n\tif ( t3 === C128 ) {\n\t\t// c?_z\n\t\tif ( t1 === C64 ) {\n\t\t\t// cz_z or cc_z\n\t\t\tif ( t2 === C128 || t2 === C64 ) {\n\t\t\t\treturn table[ C128 ]; // Signature: cz_z_as_zz_z or cc_z_as_zz_z\n\t\t\t}\n\t\t\t// cd_z\n\t\t\treturn wrap( table[ C128 ], 2, CTORS[ C128 ] ); // Signature: cd_z_as_zz_z\n\t\t}\n\t\t// z?_z\n\t\tif ( t1 === C128 ) {\n\t\t\t// zz_z or zc_z\n\t\t\tif ( t2 === C128 || t2 === C64 ) {\n\t\t\t\treturn table[ C128 ]; // Signature: zz_z or zc_z_as_zz_z\n\t\t\t}\n\t\t\t// zd_z\n\t\t\treturn wrap( table[ C128 ], 2, CTORS[ C128 ] ); // Signature: zd_z_as_zz_z\n\t\t}\n\t\t// dc_z, dz_z, or dd_z\n\t\treturn wrap( table[ C128 ], 2, CTORS[ C128 ] ); // Signature: dc_z_as_zz_z, dz_z_as_zz_z, or dd_z_as_zz_z\n\t}\n\t// Signature: ??_c\n\tif ( t3 === C64 ) {\n\t\t// z?_c\n\t\tif ( t1 === C128 ) {\n\t\t\t// zc_c or zz_c (note: according to type promotion rules `zz_c` should not happen, as `z` does not promote to `c`, but we accommodate here anyway)\n\t\t\tif ( t2 === C64 || t2 === C128 ) {\n\t\t\t\treturn table[ C128 ]; // Signature: zc_c_as_zz_z or zz_c_as_zz_z\n\t\t\t}\n\t\t\t// zd_c (note: according to type promotion rules `zd_c` should not happen, as neither `z` nor `d` promote to `c`, but we accommodate here anyway)\n\t\t\treturn wrap( table[ C128 ], 2, CTORS[ C128 ] ); // Signature: zd_c_as_zz_z\n\t\t}\n\t\t// c?_c\n\t\tif ( t1 === C64 ) {\n\t\t\t// cz_c (note: according to type promotion rules `cz_c` should not happen, as `z` does not promote to `c`, but we accommodate here anyway)\n\t\t\tif ( t2 === C128 ) {\n\t\t\t\treturn table[ C128 ]; // Signature: cz_c_as_zz_z\n\t\t\t}\n\t\t\t// cc_c\n\t\t\tif ( t2 === C64 ) {\n\t\t\t\treturn table[ C64 ]; // Signature: cc_c\n\t\t\t}\n\t\t\t// cd_c (note: in JavaScript, real values are double-precision, but we downcast `d` to `c`, as, according to type promotion rules `cd_c` should not happen, as `d` does not promote to `c`, but `cf_c` can happen)\n\t\t\treturn wrap( table[ C64 ], 2, CTORS[ C64 ] ); // Signature: cd_c_as_cc_c (cf_c_as_cc_c)\n\t\t}\n\t\t// dz_c\n\t\tif ( t2 === C128 ) {\n\t\t\t// Note: according to type promotion rules `dz_c` should not happen, as neither `z` nor `d` promote to `c`, but we accommodate here anyway\n\t\t\treturn wrap( table[ C128 ], 2, CTORS[ C128 ] ); // Signature: zd_c_as_zz_z\n\t\t}\n\t\t// dc_c\n\t\tif ( t2 === C64 ) {\n\t\t\t// Note: in JavaScript, real values are double-precision, but we downcast `d` to `c`, as, according to type promotion rules `dc_c` should not happen, as `d` does not promote to `c`, but `fc_c` can happen\n\t\t\treturn wrap( table[ C64 ], 2, CTORS[ C64 ] ); // Signature: dc_c_as_cc_c (fc_c_as_cc_c)\n\t\t}\n\t\t// dd_c (note: in JavaScript, real values are double-precision, but we downcast `d` to `c`, as, according to type promotion rules `dd_c` should not happen, as `d` does not promote to `c`, but `ff_c` can happen)\n\t\treturn wrap( table[ C64 ], 2, CTORS[ C64 ] ); // Signature: dd_c_as_cc_c (ff_c_as_cc_c)\n\t}\n\t// Signature: ??_o\n\tif ( t3 === 'generic' ) {\n\t\t// z?_o\n\t\tif ( t1 === C128 ) {\n\t\t\t// zz_o or zc_o\n\t\t\tif ( t2 === C128 || t2 === C64 ) {\n\t\t\t\treturn table[ C128 ]; // Signature: zz_o_as_zz_z or zc_o_as_zz_z\n\t\t\t}\n\t\t\t// zd_o\n\t\t\treturn wrap( table[ C128 ], 2, CTORS[ C128 ] ); // Signature: zd_o_as_zz_z\n\t\t}\n\t\t// c?_o\n\t\tif ( t1 === C64 ) {\n\t\t\t// cc_o\n\t\t\tif ( t2 === C64 ) {\n\t\t\t\treturn table[ C64 ]; // Signature: cc_o_as_cc_c\n\t\t\t}\n\t\t\t// cz_o\n\t\t\tif ( t2 === C128 ) {\n\t\t\t\treturn table[ C128 ]; // Signature: cz_o_as_zz_z\n\t\t\t}\n\t\t\t// cd_o\n\t\t\treturn wrap( table[ C64 ], 2, CTORS[ C64 ] ); // Signature: cd_o_as_cc_c\n\t\t}\n\t\t// dz_o\n\t\tif ( t2 === C128 ) {\n\t\t\treturn wrap( table[ C128 ], 2, CTORS[ C128 ] ); // Signature: dz_o_as_zz_z\n\t\t}\n\t\t// dc_o\n\t\tif ( t2 === C64 ) {\n\t\t\treturn wrap( table[ C64 ], 2, CTORS[ C64 ] ); // Signature: dc_o_as_cc_c\n\t\t}\n\t\t// dd_o\n\t\treturn table.default;\n\t}\n\treturn table.default;\n}\n\n\n// MAIN //\n\n/**\n* Assigns callbacks to binary interfaces according to type promotion rules.\n*\n* ## Notes\n*\n* - The function assumes that the provided signature array has the following properties:\n*\n* - a strided array having a stride length of `3` (i.e., every `3` elements define a binary interface signature).\n* - for each signature (i.e., set of three consecutive non-overlapping strided array elements), the first two elements are the input data types and the third element is the return data type.\n* - all signatures follow type promotion rules.\n*\n* - Based on type promotion rules, we can simply use the callback for `float64` (i.e., the assumed \"default\") for all interfaces not involving complex numbers, even for `float32`, as we shouldn't need to explicitly downcast strided array values. The only time we need to return `float32` values is when input arrays are already `float32` or of a type which can be safely represented in `float32` without concern for truncation.\n*\n* @param {Object} table - callback table\n* @param {Function} table.default - default callback\n* @param {Function} table.complex64 - callback for single-precision complex floating-point numbers\n* @param {Function} table.complex128 - callback for double-precision complex floating-point numbers\n* @param {ArrayLikeObject} signatures - strided array containing binary interface signatures\n* @returns {Array} list of callbacks\n*\n* @example\n* import signatures from '@stdlib/strided/base/binary-dtype-signatures';\n* import add from '@stdlib/math/base/ops/add';\n* import cadd from '@stdlib/complex/float64/base/add';\n* import caddf from '@stdlib/complex/float32/base/add';\n*\n* var dtypes = [\n* 'float64',\n* 'float32',\n* 'int32',\n* 'uint8'\n* ];\n*\n* var sigs = signatures( dtypes, dtypes, dtypes );\n* // returns [...]\n*\n* var table = {\n* 'default': add,\n* 'complex64': caddf,\n* 'complex128': cadd\n* };\n*\n* var list = callbacks( table, sigs );\n* // returns [...]\n*/\nfunction callbacks( table, signatures ) {\n\tvar out;\n\tvar t1;\n\tvar t2;\n\tvar t3;\n\tvar i;\n\n\tout = [];\n\tfor ( i = 0; i < signatures.length; i += 3 ) {\n\t\tt1 = resolve( signatures[ i ] );\n\t\tt2 = resolve( signatures[ i+1 ] );\n\t\tt3 = resolve( signatures[ i+2 ] );\n\t\tout.push( resolveCallback( table, t1, t2, t3 ) );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default callbacks;\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) 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* Applies a binary function to each element retrieved from a strided input array according to a callback function and assigns results to a strided output array.\n*\n* @private\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 - input array/collection\n* @param {integer} strideY - `y` stride length\n* @param {NonNegativeInteger} offsetY - starting `y` index\n* @param {Collection} z - destination array/collection\n* @param {integer} strideZ - `z` stride length\n* @param {NonNegativeInteger} offsetZ - starting `z` index\n* @param {Function} fcn - binary function to apply to callback return values\n* @param {Callback} clbk - callback function which returns an array-like object containing two values\n* @param {*} [thisArg] - callback execution context\n* @returns {Collection} `z`\n*\n* @example\n* import add from '@stdlib/math/base/ops/add';\n*\n* function accessor( values ) {\n* values[ 0 ] *= 2.0;\n* values[ 1 ] *= 2.0;\n* return values;\n* }\n*\n* var x = [ 1.0, -2.0, 3.0, -4.0, 5.0 ];\n* var y = [ 1.0, 2.0, 3.0, 4.0, 5.0 ];\n* var z = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* mapBy2( x.length, x, 1, 0, y, 1, 0, z, 1, 0, add, accessor );\n*\n* console.log( z );\n* // => [ 4.0, 0.0, 12.0, 0.0, 20.0 ]\n*/\nfunction mapBy2( N, x, strideX, offsetX, y, strideY, offsetY, z, strideZ, offsetZ, fcn, clbk, thisArg ) { // eslint-disable-line max-len, max-params\n\tvar args;\n\tvar o;\n\tvar a;\n\tvar v;\n\tvar i;\n\tif ( N <= 0 ) {\n\t\treturn z;\n\t}\n\to = [ offsetX, offsetY, offsetZ ];\n\ta = [ x, y, z ];\n\targs = [ 0, 0 ];\n\tfor ( i = 0; i < N; i++ ) {\n\t\targs[ 0 ] = x[ o[0] ];\n\t\targs[ 1 ] = y[ o[1] ];\n\t\tv = clbk.call( thisArg, args, i, o, a );\n\t\tif ( v !== void 0 ) {\n\t\t\tz[ o[2] ] = fcn( v[ 0 ], v[ 1 ] );\n\t\t}\n\t\to[ 0 ] += strideX;\n\t\to[ 1 ] += strideY;\n\t\to[ 2 ] += strideZ;\n\t}\n\treturn z;\n}\n\n\n// EXPORTS //\n\nexport default mapBy2;\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// MAIN //\n\n/**\n* Applies a binary function to each element retrieved from a strided input array according to a callback function and assigns results to a strided output array.\n*\n* @private\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 {Function} xget - accessor for retrieving elements in `x`\n* @param {Collection} y - input array/collection\n* @param {integer} strideY - `y` stride length\n* @param {NonNegativeInteger} offsetY - starting `y` index\n* @param {Function} yget - accessor for retrieving elements in `y`\n* @param {Collection} z - destination array/collection\n* @param {integer} strideZ - `z` stride length\n* @param {NonNegativeInteger} offsetZ - starting `z` index\n* @param {Function} zset - accessor for setting elements in `z`\n* @param {Function} fcn - binary function to apply to callback return values\n* @param {Callback} clbk - callback function which returns an array-like object containing two values\n* @param {*} [thisArg] - callback execution context\n* @returns {Collection} `z`\n*\n* @example\n* import add from '@stdlib/math/base/ops/add';\n*\n* function accessor( values ) {\n* return values;\n* }\n*\n* function get( buf, idx ) {\n* return buf[ idx ] * 2.0;\n* }\n*\n* function set( buf, idx, value ) {\n* buf[ idx ] = value;\n* }\n*\n* var x = [ 1.0, -2.0, 3.0, -4.0, 5.0 ];\n* var y = [ 1.0, 2.0, 3.0, 4.0, 5.0 ];\n* var z = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* mapBy2( x.length, x, 1, 0, get, y, 1, 0, get, z, 1, 0, set, add, accessor );\n*\n* console.log( z );\n* // => [ 4.0, 0.0, 12.0, 0.0, 20.0 ]\n*/\nfunction mapBy2( N, x, strideX, offsetX, xget, y, strideY, offsetY, yget, z, strideZ, offsetZ, zset, fcn, clbk, thisArg ) { // eslint-disable-line max-len, max-params\n\tvar args;\n\tvar o;\n\tvar a;\n\tvar v;\n\tvar i;\n\tif ( N <= 0 ) {\n\t\treturn z;\n\t}\n\to = [ offsetX, offsetY, offsetZ ];\n\ta = [ x, y, z ];\n\targs = [ 0, 0 ];\n\tfor ( i = 0; i < N; i++ ) {\n\t\targs[ 0 ] = xget( x, o[ 0 ] );\n\t\targs[ 1 ] = yget( y, o[ 1 ] );\n\t\tv = clbk.call( thisArg, args, i, o, a );\n\t\tif ( v !== void 0 ) {\n\t\t\tzset( z, o[ 2 ], fcn( v[ 0 ], v[ 1 ] ) );\n\t\t}\n\t\to[ 0 ] += strideX;\n\t\to[ 1 ] += strideY;\n\t\to[ 2 ] += strideZ;\n\t}\n\treturn z;\n}\n\n\n// EXPORTS //\n\nexport default mapBy2;\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 isAccessorArray from '@stdlib/array/base/assert/is-accessor-array';\nimport accessorGetter from '@stdlib/array/base/accessor-getter';\nimport accessorSetter from '@stdlib/array/base/accessor-setter';\nimport getter from '@stdlib/array/base/getter';\nimport setter from '@stdlib/array/base/setter';\nimport dtype from '@stdlib/array/dtype';\nimport strided from './map.js';\nimport accessors from './accessors.js';\n\n\n// MAIN //\n\n/**\n* Applies a binary function to each element retrieved from a strided input array according to a callback function and assigns results to a strided output array.\n*\n* @private\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 - input array/collection\n* @param {integer} strideY - `y` stride length\n* @param {Collection} z - destination array/collection\n* @param {integer} strideZ - `z` stride length\n* @param {Function} fcn - binary function to apply to callback return values\n* @param {Callback} clbk - callback function which returns an array-like object containing two values\n* @param {*} [thisArg] - callback execution context\n* @returns {Collection} `z`\n*\n* @example\n* import add from '@stdlib/math/base/ops/add';\n*\n* function accessor( values ) {\n* values[ 0 ] *= 2.0;\n* values[ 1 ] *= 2.0;\n* return values;\n* }\n*\n* var x = [ 1.0, -2.0, 3.0, -4.0, 5.0 ];\n* var y = [ 1.0, 2.0, 3.0, 4.0, 5.0 ];\n* var z = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* mapBy2( x.length, x, 1, y, 1, z, 1, add, accessor );\n*\n* console.log( z );\n* // => [ 4.0, 0.0, 12.0, 0.0, 20.0 ]\n*/\nfunction mapBy2( N, x, strideX, y, strideY, z, strideZ, fcn, clbk, thisArg ) {\n\tvar xget;\n\tvar yget;\n\tvar zset;\n\n\tif ( isAccessorArray( x ) ) {\n\t\txget = accessorGetter( dtype( x ) );\n\t}\n\tif ( isAccessorArray( y ) ) {\n\t\tyget = accessorGetter( dtype( y ) );\n\t}\n\tif ( isAccessorArray( z ) ) {\n\t\tzset = accessorSetter( dtype( z ) );\n\t}\n\tif ( xget || yget || zset ) {\n\t\txget = xget || getter( dtype( x ) );\n\t\tyget = yget || getter( dtype( y ) );\n\t\tzset = zset || setter( dtype( z ) );\n\t\treturn accessors( N, x, strideX, xget, y, strideY, yget, z, strideZ, zset, fcn, clbk, thisArg ); // eslint-disable-line max-len\n\t}\n\treturn strided( N, x, strideX, y, strideY, z, strideZ, fcn, clbk, thisArg );\n}\n\n\n// EXPORTS //\n\nexport default mapBy2;\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 stride2offset from './../../../base/stride2offset';\nimport ndarray from './accessors.ndarray.js';\n\n\n// MAIN //\n\n/**\n* Applies a binary function to each element retrieved from a strided input array according to a callback function and assigns results to a strided output array.\n*\n* @private\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Collection} x - input array/collection\n* @param {integer} strideX - `x` stride length\n* @param {Function} xget - accessor for retrieving elements in `x`\n* @param {Collection} y - input array/collection\n* @param {integer} strideY - `y` stride length\n* @param {Function} yget - accessor for retrieving elements in `y`\n* @param {Collection} z - destination array/collection\n* @param {integer} strideZ - `z` stride length\n* @param {Function} zset - accessor for setting elements in `z`\n* @param {Function} fcn - binary function to apply to callback return values\n* @param {Callback} clbk - callback function which returns an array-like object containing two values\n* @param {*} [thisArg] - callback execution context\n* @returns {Collection} `z`\n*\n* @example\n* import add from '@stdlib/math/base/ops/add';\n*\n* function accessor( values ) {\n* return values;\n* }\n*\n* function get( buf, idx ) {\n* return buf[ idx ] * 2.0;\n* }\n*\n* function set( buf, idx, value ) {\n* buf[ idx ] = value;\n* }\n*\n* var x = [ 1.0, -2.0, 3.0, -4.0, 5.0 ];\n* var y = [ 1.0, 2.0, 3.0, 4.0, 5.0 ];\n* var z = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* mapBy2( x.length, x, 1, get, y, 1, get, z, 1, set, add, accessor );\n*\n* console.log( z );\n* // => [ 4.0, 0.0, 12.0, 0.0, 20.0 ]\n*/\nfunction mapBy2( N, x, strideX, xget, y, strideY, yget, z, strideZ, zset, fcn, clbk, thisArg ) { // eslint-disable-line max-len, max-params\n\treturn ndarray( N, x, strideX, stride2offset( N, strideX ), xget, y, strideY, stride2offset( N, strideY ), yget, z, strideZ, stride2offset( N, strideZ ), zset, fcn, clbk, thisArg ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default mapBy2;\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 stride2offset from './../../../base/stride2offset';\nimport ndarray from './map.ndarray.js';\n\n\n// MAIN //\n\n/**\n* Applies a binary function to each element retrieved from a strided input array according to a callback function and assigns results to a strided output array.\n*\n* @private\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 - input array/collection\n* @param {integer} strideY - `y` stride length\n* @param {Collection} z - destination array/collection\n* @param {integer} strideZ - `z` stride length\n* @param {Function} fcn - binary function to apply to callback return values\n* @param {Callback} clbk - callback function which returns an array-like object containing two values\n* @param {*} [thisArg] - callback execution context\n* @returns {Collection} `z`\n*\n* @example\n* import add from '@stdlib/math/base/ops/add';\n*\n* function accessor( values ) {\n* values[ 0 ] *= 2.0;\n* values[ 1 ] *= 2.0;\n* return values;\n* }\n*\n* var x = [ 1.0, -2.0, 3.0, -4.0, 5.0 ];\n* var y = [ 1.0, 2.0, 3.0, 4.0, 5.0 ];\n* var z = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* mapBy2( x.length, x, 1, y, 1, z, 1, add, accessor );\n*\n* console.log( z );\n* // => [ 4.0, 0.0, 12.0, 0.0, 20.0 ]\n*/\nfunction mapBy2( N, x, strideX, y, strideY, z, strideZ, fcn, clbk, thisArg ) {\n\treturn ndarray( N, x, strideX, stride2offset( N, strideX ), y, strideY, stride2offset( N, strideY ), z, strideZ, stride2offset( N, strideZ ), fcn, clbk, thisArg ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default mapBy2;\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 isAccessorArray from '@stdlib/array/base/assert/is-accessor-array';\nimport accessorGetter from '@stdlib/array/base/accessor-getter';\nimport accessorSetter from '@stdlib/array/base/accessor-setter';\nimport getter from '@stdlib/array/base/getter';\nimport setter from '@stdlib/array/base/setter';\nimport dtype from '@stdlib/array/dtype';\nimport strided from './map.ndarray.js';\nimport accessors from './accessors.ndarray.js';\n\n\n// MAIN //\n\n/**\n* Applies a binary function to each element retrieved from a strided input array according to a callback function and assigns results to a strided output array.\n*\n* @private\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 - input array/collection\n* @param {integer} strideY - `y` stride length\n* @param {NonNegativeInteger} offsetY - starting `y` index\n* @param {Collection} z - destination array/collection\n* @param {integer} strideZ - `z` stride length\n* @param {NonNegativeInteger} offsetZ - starting `z` index\n* @param {Function} fcn - binary function to apply to callback return values\n* @param {Callback} clbk - callback function which returns an array-like object containing two values\n* @param {*} [thisArg] - callback execution context\n* @returns {Collection} `z`\n*\n* @example\n* import add from '@stdlib/math/base/ops/add';\n*\n* function accessor( values ) {\n* values[ 0 ] *= 2.0;\n* values[ 1 ] *= 2.0;\n* return values;\n* }\n*\n* var x = [ 1.0, -2.0, 3.0, -4.0, 5.0 ];\n* var y = [ 1.0, 2.0, 3.0, 4.0, 5.0 ];\n* var z = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* mapBy2( x.length, x, 1, 0, y, 1, 0, z, 1, 0, add, accessor );\n*\n* console.log( z );\n* // => [ 4.0, 0.0, 12.0, 0.0, 20.0 ]\n*/\nfunction mapBy2( N, x, strideX, offsetX, y, strideY, offsetY, z, strideZ, offsetZ, fcn, clbk, thisArg ) { // eslint-disable-line max-len, max-params\n\tvar xget;\n\tvar yget;\n\tvar zset;\n\n\tif ( isAccessorArray( x ) ) {\n\t\txget = accessorGetter( dtype( x ) );\n\t}\n\tif ( isAccessorArray( y ) ) {\n\t\tyget = accessorGetter( dtype( y ) );\n\t}\n\tif ( isAccessorArray( z ) ) {\n\t\tzset = accessorSetter( dtype( z ) );\n\t}\n\tif ( xget || yget || zset ) {\n\t\txget = xget || getter( dtype( x ) );\n\t\tyget = yget || getter( dtype( y ) );\n\t\tzset = zset || setter( dtype( z ) );\n\t\treturn accessors( N, x, strideX, offsetX, xget, y, strideY, offsetY, yget, z, strideZ, offsetZ, zset, fcn, clbk, thisArg ); // eslint-disable-line max-len\n\t}\n\treturn strided( N, x, strideX, offsetX, y, strideY, offsetY, z, strideZ, offsetZ, fcn, clbk, thisArg ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default mapBy2;\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) 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* Apply a binary function to each pair of elements retrieved from strided input arrays according to a callback function and assign results to a strided output array.\n*\n* @module @stdlib/strided/base/map-by2\n*\n* @example\n* import add from '@stdlib/math/base/ops/add';\n* import mapBy2 from '@stdlib/strided/base/map-by2';\n*\n* function accessor( values ) {\n* values[ 0 ] *= 2.0;\n* values[ 1 ] *= 2.0;\n* return values;\n* }\n*\n* var x = [ 1.0, -2.0, 3.0, -4.0, 5.0 ];\n* var y = [ 1.0, 2.0, 3.0, 4.0, 5.0 ];\n* var z = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* mapBy2( x.length, x, 1, y, 1, z, 1, add, accessor );\n*\n* console.log( z );\n* // => [ 4.0, 0.0, 12.0, 0.0, 20.0 ]\n*\n* @example\n* import add from '@stdlib/math/base/ops/add';\n* import mapBy2 from '@stdlib/strided/base/map-by2';\n*\n* function accessor( values ) {\n* values[ 0 ] *= 2.0;\n* values[ 1 ] *= 2.0;\n* return values;\n* }\n*\n* var x = [ 1.0, -2.0, 3.0, -4.0, 5.0 ];\n* var y = [ 1.0, 2.0, 3.0, 4.0, 5.0 ];\n* var z = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* mapBy2.ndarray( x.length, x, 1, 0, y, 1, 0, z, 1, 0, add, accessor );\n*\n* console.log( z );\n* // => [ 4.0, 0.0, 12.0, 0.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'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// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a strided input array according to a callback function and assigns results to a strided output array.\n*\n* @private\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 {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {Collection} `y`\n*\n* @example\n* import abs from '@stdlib/math/base/special/abs';\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* mapBy( x.length, x, 1, 0, y, 1, 0, abs, accessor );\n*\n* console.log( y );\n* // => [ 2.0, 4.0, 6.0, 8.0, 10.0 ]\n*/\nfunction mapBy( N, x, strideX, offsetX, y, strideY, offsetY, fcn, clbk, thisArg ) { // eslint-disable-line max-len\n\tvar ix;\n\tvar iy;\n\tvar v;\n\tvar i;\n\n\tif ( N <= 0 ) {\n\t\treturn y;\n\t}\n\tix = offsetX;\n\tiy = offsetY;\n\tfor ( i = 0; i < N; i++ ) {\n\t\tv = clbk.call( thisArg, x[ ix ], i, [ ix, iy ], [ x, y ] );\n\t\tif ( v !== void 0 ) {\n\t\t\ty[ iy ] = fcn( v );\n\t\t}\n\t\tix += strideX;\n\t\tiy += strideY;\n\t}\n\treturn y;\n}\n\n\n// EXPORTS //\n\nexport default mapBy;\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* Applies a unary function to each element retrieved from a strided input array according to a callback function and assigns results to a strided output array.\n*\n* @private\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 {Function} xget - accessor for retrieving elements in `x`\n* @param {Collection} y - destination array/collection\n* @param {integer} strideY - `y` stride length\n* @param {NonNegativeInteger} offsetY - starting `y` index\n* @param {Function} yset - accessor for setting elements in `x`\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {Collection} `y`\n*\n* @example\n* import abs from '@stdlib/math/base/special/abs';\n*\n* function accessor( v ) {\n* return v;\n* }\n*\n* function xget( buf, idx ) {\n* return buf[ idx ] * 2.0;\n* }\n*\n* function yset( buf, idx, value ) {\n* buf[ idx ] = value;\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* mapBy( x.length, x, 1, 0, xget, y, 1, 0, yset, abs, accessor );\n*\n* console.log( y );\n* // => [ 2.0, 4.0, 6.0, 8.0, 10.0 ]\n*/\nfunction mapBy( N, x, strideX, offsetX, xget, y, strideY, offsetY, yset, fcn, clbk, thisArg ) { // eslint-disable-line max-len, max-params\n\tvar ix;\n\tvar iy;\n\tvar v;\n\tvar i;\n\n\tif ( N <= 0 ) {\n\t\treturn y;\n\t}\n\tix = offsetX;\n\tiy = offsetY;\n\tfor ( i = 0; i < N; i++ ) {\n\t\tv = clbk.call( thisArg, xget( x, ix ), i, [ ix, iy ], [ x, y ] );\n\t\tif ( v !== void 0 ) {\n\t\t\tyset( y, iy, fcn( v ) );\n\t\t}\n\t\tix += strideX;\n\t\tiy += strideY;\n\t}\n\treturn y;\n}\n\n\n// EXPORTS //\n\nexport default mapBy;\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 isAccessorArray from '@stdlib/array/base/assert/is-accessor-array';\nimport accessorGetter from '@stdlib/array/base/accessor-getter';\nimport accessorSetter from '@stdlib/array/base/accessor-setter';\nimport getter from '@stdlib/array/base/getter';\nimport setter from '@stdlib/array/base/setter';\nimport dtype from '@stdlib/array/dtype';\nimport strided from './map.js';\nimport accessors from './accessors.js';\n\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a strided input array according to a callback function and assigns results to a strided output array.\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 {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {Collection} `y`\n*\n* @example\n* import abs from '@stdlib/math/base/special/abs';\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* mapBy( x.length, x, 1, y, 1, abs, accessor );\n*\n* console.log( y );\n* // => [ 2.0, 4.0, 6.0, 8.0, 10.0 ]\n*/\nfunction mapBy( N, x, strideX, y, strideY, fcn, clbk, thisArg ) {\n\tvar xget;\n\tvar yset;\n\n\tif ( isAccessorArray( x ) ) {\n\t\txget = accessorGetter( dtype( x ) );\n\t}\n\tif ( isAccessorArray( y ) ) {\n\t\tyset = accessorSetter( dtype( y ) );\n\t}\n\tif ( xget || yset ) {\n\t\txget = xget || getter( dtype( x ) );\n\t\tyset = yset || setter( dtype( y ) );\n\t\treturn accessors( N, x, strideX, xget, y, strideY, yset, fcn, clbk, thisArg ); // eslint-disable-line max-len\n\t}\n\treturn strided( N, x, strideX, y, strideY, fcn, clbk, thisArg );\n}\n\n\n// EXPORTS //\n\nexport default mapBy;\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 stride2offset from './../../../base/stride2offset';\nimport ndarray from './accessors.ndarray.js';\n\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a strided input array according to a callback function and assigns results to a strided output array.\n*\n* @private\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Collection} x - input array/collection\n* @param {integer} strideX - `x` stride length\n* @param {Function} xget - accessor for retrieving elements in `x`\n* @param {Collection} y - destination array/collection\n* @param {integer} strideY - `y` stride length\n* @param {Function} yset - accessor for setting elements in `x`\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {Collection} `y`\n*\n* @example\n* import abs from '@stdlib/math/base/special/abs';\n*\n* function accessor( v ) {\n* return v;\n* }\n*\n* function xget( buf, idx ) {\n* return buf[ idx ] * 2.0;\n* }\n*\n* function yset( buf, idx, value ) {\n* buf[ idx ] = value;\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* mapBy( x.length, x, 1, xget, y, 1, yset, abs, accessor );\n*\n* console.log( y );\n* // => [ 2.0, 4.0, 6.0, 8.0, 10.0 ]\n*/\nfunction mapBy( N, x, strideX, xget, y, strideY, yset, fcn, clbk, thisArg ) {\n\treturn ndarray( N, x, strideX, stride2offset( N, strideX ), xget, y, strideY, stride2offset( N, strideY ), yset, fcn, clbk, thisArg ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default mapBy;\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 stride2offset from './../../../base/stride2offset';\nimport ndarray from './map.ndarray.js';\n\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a strided input array according to a callback function and assigns results to a strided output array.\n*\n* @private\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 {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {Collection} `y`\n*\n* @example\n* import abs from '@stdlib/math/base/special/abs';\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* mapBy( x.length, x, 1, y, 1, abs, accessor );\n*\n* console.log( y );\n* // => [ 2.0, 4.0, 6.0, 8.0, 10.0 ]\n*/\nfunction mapBy( N, x, strideX, y, strideY, fcn, clbk, thisArg ) {\n\treturn ndarray( N, x, strideX, stride2offset( N, strideX ), y, strideY, stride2offset( N, strideY ), fcn, clbk, thisArg ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default mapBy;\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 isAccessorArray from '@stdlib/array/base/assert/is-accessor-array';\nimport accessorGetter from '@stdlib/array/base/accessor-getter';\nimport accessorSetter from '@stdlib/array/base/accessor-setter';\nimport getter from '@stdlib/array/base/getter';\nimport setter from '@stdlib/array/base/setter';\nimport dtype from '@stdlib/array/dtype';\nimport strided from './map.ndarray.js';\nimport accessors from './accessors.ndarray.js';\n\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a strided input array according to a callback function and assigns results to a strided output array.\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 {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {Collection} `y`\n*\n* @example\n* import abs from '@stdlib/math/base/special/abs';\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* mapBy( x.length, x, 1, 0, y, 1, 0, abs, accessor );\n*\n* console.log( y );\n* // => [ 2.0, 4.0, 6.0, 8.0, 10.0 ]\n*/\nfunction mapBy( N, x, strideX, offsetX, y, strideY, offsetY, fcn, clbk, thisArg ) { // eslint-disable-line max-len\n\tvar xget;\n\tvar yset;\n\n\tif ( isAccessorArray( x ) ) {\n\t\txget = accessorGetter( dtype( x ) );\n\t}\n\tif ( isAccessorArray( y ) ) {\n\t\tyset = accessorSetter( dtype( y ) );\n\t}\n\tif ( xget || yset ) {\n\t\txget = xget || getter( dtype( x ) );\n\t\tyset = yset || setter( dtype( y ) );\n\t\treturn accessors( N, x, strideX, offsetX, xget, y, strideY, offsetY, yset, fcn, clbk, thisArg ); // eslint-disable-line max-len\n\t}\n\treturn strided( N, x, strideX, offsetX, y, strideY, offsetY, fcn, clbk, thisArg ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default mapBy;\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* Apply a unary function to each element retrieved from a strided input array according to a callback function and assign results to a strided output array.\n*\n* @module @stdlib/strided/base/map-by\n*\n* @example\n* import abs from '@stdlib/math/base/special/abs';\n* import mapBy from '@stdlib/strided/base/map-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* mapBy( x.length, x, 1, y, 1, abs, accessor );\n*\n* console.log( y );\n* // => [ 2.0, 4.0, 6.0, 8.0, 10.0 ]\n*\n* @example\n* import abs from '@stdlib/math/base/special/abs';\n* import mapBy from '@stdlib/strided/base/map-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* mapBy.ndarray( x.length, x, 1, 0, y, 1, 0, abs, 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/**\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) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Applies a unary function to a double-precision floating-point strided input array and assigns results to a double-precision floating-point strided output 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 {Function} fcn - unary function to apply\n* @returns {Float64Array} `y`\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var y = new Float64Array( x.length );\n*\n* dmap( x.length, x, 1, 0, y, 1, 0, scale );\n*\n* console.log( y );\n* // => [ 10.0, 20.0, 30.0, 40.0, 50.0 ]\n*/\nfunction dmap( N, x, strideX, offsetX, y, strideY, offsetY, fcn ) {\n\tvar ix;\n\tvar iy;\n\tvar i;\n\tif ( N <= 0 ) {\n\t\treturn y;\n\t}\n\tix = offsetX;\n\tiy = offsetY;\n\tfor ( i = 0; i < N; i++ ) {\n\t\ty[ iy ] = fcn( x[ ix ] );\n\t\tix += strideX;\n\t\tiy += strideY;\n\t}\n\treturn y;\n}\n\n\n// EXPORTS //\n\nexport default dmap;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport stride2offset from './../../../base/stride2offset';\nimport ndarray from './ndarray.js';\n\n\n// MAIN //\n\n/**\n* Applies a unary function to a double-precision floating-point strided input array and assigns results to a double-precision floating-point strided output 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 {Function} fcn - unary function to apply\n* @returns {Float64Array} `y`\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var y = new Float64Array( x.length );\n*\n* dmap( x.length, x, 1, y, 1, scale );\n*\n* console.log( y );\n* // => [ 10.0, 20.0, 30.0, 40.0, 50.0 ]\n*/\nfunction dmap( N, x, strideX, y, strideY, fcn ) {\n\treturn ndarray( N, x, strideX, stride2offset( N, strideX ), y, strideY, stride2offset( N, strideY ), fcn ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default dmap;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Apply a unary function to a double-precision floating-point strided input array and assign results to a double-precision floating-point strided output array.\n*\n* @module @stdlib/strided/base/dmap\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import dmap from '@stdlib/strided/base/dmap';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var y = new Float64Array( x.length );\n*\n* dmap( x.length, x, 1, y, 1, scale );\n*\n* console.log( y );\n* // => [ 10.0, 20.0, 30.0, 40.0, 50.0 ]\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import dmap from '@stdlib/strided/base/dmap';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var y = new Float64Array( x.length );\n*\n* dmap.ndarray( x.length, x, 1, 0, y, 1, 0, scale );\n*\n* console.log( y );\n* // => [ 10.0, 20.0, 30.0, 40.0, 50.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) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Applies a unary function to a double-precision floating-point strided input array according to a strided mask array and assigns results to a double-precision floating-point strided output 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 {Uint8Array} mask - mask array\n* @param {integer} strideMask - `mask` stride length\n* @param {NonNegativeInteger} offsetMask - starting `mask` index\n* @param {Float64Array} y - destination array\n* @param {integer} strideY - `y` stride length\n* @param {NonNegativeInteger} offsetY - starting `y` index\n* @param {Function} fcn - unary function to apply\n* @returns {Float64Array} `y`\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import Uint8Array from '@stdlib/array/uint8';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var m = new Uint8Array( [ 0, 0, 1, 0, 0 ] );\n* var y = new Float64Array( x.length );\n*\n* dmskmap( x.length, x, 1, 0, m, 1, 0, y, 1, 0, scale );\n*\n* console.log( y );\n* // => [ 10.0, 20.0, 0.0, 40.0, 50.0 ]\n*/\nfunction dmskmap( N, x, strideX, offsetX, mask, strideMask, offsetMask, y, strideY, offsetY, fcn ) { // eslint-disable-line max-len, max-params\n\tvar ix;\n\tvar im;\n\tvar iy;\n\tvar i;\n\tif ( N <= 0 ) {\n\t\treturn y;\n\t}\n\tix = offsetX;\n\tim = offsetMask;\n\tiy = offsetY;\n\tfor ( i = 0; i < N; i++ ) {\n\t\tif ( mask[ im ] === 0 ) {\n\t\t\ty[ iy ] = fcn( x[ ix ] );\n\t\t}\n\t\tix += strideX;\n\t\tim += strideMask;\n\t\tiy += strideY;\n\t}\n\treturn y;\n}\n\n\n// EXPORTS //\n\nexport default dmskmap;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport stride2offset from './../../../base/stride2offset';\nimport ndarray from './ndarray.js';\n\n\n// MAIN //\n\n/**\n* Applies a unary function to a double-precision floating-point strided input array according to a strided mask array and assigns results to a double-precision floating-point strided output 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 {Uint8Array} mask - mask array\n* @param {integer} strideMask - `mask` stride length\n* @param {Float64Array} y - destination array\n* @param {integer} strideY - `y` stride length\n* @param {Function} fcn - unary function to apply\n* @returns {Float64Array} `y`\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import Uint8Array from '@stdlib/array/uint8';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var m = new Uint8Array( [ 0, 0, 1, 0, 0 ] );\n* var y = new Float64Array( x.length );\n*\n* dmskmap( x.length, x, 1, m, 1, y, 1, scale );\n*\n* console.log( y );\n* // => [ 10.0, 20.0, 0.0, 40.0, 50.0 ]\n*/\nfunction dmskmap( N, x, strideX, mask, strideMask, y, strideY, fcn ) {\n\treturn ndarray( N, x, strideX, stride2offset( N, strideX ), mask, strideMask, stride2offset( N, strideMask ), y, strideY, stride2offset( N, strideY ), fcn ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default dmskmap;\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) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Apply a unary function to a double-precision floating-point strided input array according to a strided mask array and assign results to a double-precision floating-point strided output array.\n*\n* @module @stdlib/strided/base/dmskmap\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import Uint8Array from '@stdlib/array/uint8';\n* import dmskmap from '@stdlib/strided/base/dmskmap';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var m = new Uint8Array( [ 0, 0, 1, 0, 0 ] );\n* var y = new Float64Array( x.length );\n*\n* dmskmap( x.length, x, 1, m, 1, y, 1, scale );\n*\n* console.log( y );\n* // => [ 10.0, 20.0, 0.0, 40.0, 50.0 ]\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import Uint8Array from '@stdlib/array/uint8';\n* import dmskmap from '@stdlib/strided/base/dmskmap';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var m = new Uint8Array( [ 0, 0, 1, 0, 0 ] );\n* var y = new Float64Array( x.length );\n*\n* dmskmap.ndarray( x.length, x, 1, 0, m, 1, 0, y, 1, 0, scale );\n*\n* console.log( y );\n* // => [ 10.0, 20.0, 0.0, 40.0, 50.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 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// MAIN //\n\n/**\n* Applies a unary function to a single-precision floating-point strided input array and assigns results to a single-precision floating-point strided output array.\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* @param {Function} fcn - unary function to apply\n* @returns {Float32Array} `y`\n*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var x = new Float32Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var y = new Float32Array( x.length );\n*\n* smap( x.length, x, 1, 0, y, 1, 0, scale );\n*\n* console.log( y );\n* // => [ 10.0, 20.0, 30.0, 40.0, 50.0 ]\n*/\nfunction smap( N, x, strideX, offsetX, y, strideY, offsetY, fcn ) {\n\tvar ix;\n\tvar iy;\n\tvar i;\n\tif ( N <= 0 ) {\n\t\treturn y;\n\t}\n\tix = offsetX;\n\tiy = offsetY;\n\tfor ( i = 0; i < N; i++ ) {\n\t\ty[ iy ] = fcn( x[ ix ] );\n\t\tix += strideX;\n\t\tiy += strideY;\n\t}\n\treturn y;\n}\n\n\n// EXPORTS //\n\nexport default smap;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport stride2offset from './../../../base/stride2offset';\nimport ndarray from './ndarray.js';\n\n\n// MAIN //\n\n/**\n* Applies a unary function to a single-precision floating-point strided input array and assigns results to a single-precision floating-point strided output array.\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* @param {Function} fcn - unary function to apply\n* @returns {Float32Array} `y`\n*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var x = new Float32Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var y = new Float32Array( x.length );\n*\n* smap( x.length, x, 1, y, 1, scale );\n*\n* console.log( y );\n* // => [ 10.0, 20.0, 30.0, 40.0, 50.0 ]\n*/\nfunction smap( N, x, strideX, y, strideY, fcn ) {\n\treturn ndarray( N, x, strideX, stride2offset( N, strideX ), y, strideY, stride2offset( N, strideY ), fcn ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default smap;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Applies a unary function to a single-precision floating-point strided input array according to a strided mask array and assigns results to a single-precision floating-point strided output array.\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 {Uint8Array} mask - mask array\n* @param {integer} strideMask - `mask` stride length\n* @param {NonNegativeInteger} offsetMask - starting `mask` index\n* @param {Float32Array} y - destination array\n* @param {integer} strideY - `y` stride length\n* @param {NonNegativeInteger} offsetY - starting `y` index\n* @param {Function} fcn - unary function to apply\n* @returns {Float32Array} `y`\n*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n* import Uint8Array from '@stdlib/array/uint8';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\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, 0 ] );\n* var y = new Float32Array( x.length );\n*\n* smskmap( x.length, x, 1, 0, m, 1, 0, y, 1, 0, scale );\n*\n* console.log( y );\n* // => [ 10.0, 20.0, 0.0, 40.0, 50.0 ]\n*/\nfunction smskmap( N, x, strideX, offsetX, mask, strideMask, offsetMask, y, strideY, offsetY, fcn ) { // eslint-disable-line max-len, max-params\n\tvar ix;\n\tvar im;\n\tvar iy;\n\tvar i;\n\tif ( N <= 0 ) {\n\t\treturn y;\n\t}\n\tix = offsetX;\n\tim = offsetMask;\n\tiy = offsetY;\n\tfor ( i = 0; i < N; i++ ) {\n\t\tif ( mask[ im ] === 0 ) {\n\t\t\ty[ iy ] = fcn( x[ ix ] );\n\t\t}\n\t\tix += strideX;\n\t\tim += strideMask;\n\t\tiy += strideY;\n\t}\n\treturn y;\n}\n\n\n// EXPORTS //\n\nexport default smskmap;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport stride2offset from './../../../base/stride2offset';\nimport ndarray from './ndarray.js';\n\n\n// MAIN //\n\n/**\n* Applies a unary function to a single-precision floating-point strided input array according to a strided mask array and assigns results to a single-precision floating-point strided output array.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Float32Array} x - input array\n* @param {integer} strideX - `x` stride length\n* @param {Uint8Array} mask - mask array\n* @param {integer} strideMask - `mask` stride length\n* @param {Float32Array} y - destination array\n* @param {integer} strideY - `y` stride length\n* @param {Function} fcn - unary function to apply\n* @returns {Float32Array} `y`\n*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n* import Uint8Array from '@stdlib/array/uint8';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\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, 0 ] );\n* var y = new Float32Array( x.length );\n*\n* smskmap( x.length, x, 1, m, 1, y, 1, scale );\n*\n* console.log( y );\n* // => [ 10.0, 20.0, 0.0, 40.0, 50.0 ]\n*/\nfunction smskmap( N, x, strideX, mask, strideMask, y, strideY, fcn ) {\n\treturn ndarray( N, x, strideX, stride2offset( N, strideX ), mask, strideMask, stride2offset( N, strideMask ), y, strideY, stride2offset( N, strideY ), fcn ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default smskmap;\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/**\n* Apply a unary function to a single-precision floating-point strided input array and assign results to a single-precision floating-point strided output array.\n*\n* @module @stdlib/strided/base/smap\n*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n* import smap from '@stdlib/strided/base/smap';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var x = new Float32Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var y = new Float32Array( x.length );\n*\n* smap( x.length, x, 1, y, 1, scale );\n*\n* console.log( y );\n* // => [ 10.0, 20.0, 30.0, 40.0, 50.0 ]\n*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n* import smap from '@stdlib/strided/base/smap';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var x = new Float32Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var y = new Float32Array( x.length );\n*\n* smap.ndarray( x.length, x, 1, 0, y, 1, 0, scale );\n*\n* console.log( y );\n* // => [ 10.0, 20.0, 30.0, 40.0, 50.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) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Apply a unary function to a single-precision floating-point strided input array according to a strided mask array and assign results to a single-precision floating-point strided output array.\n*\n* @module @stdlib/strided/base/smskmap\n*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n* import Uint8Array from '@stdlib/array/uint8';\n* import smskmap from '@stdlib/strided/base/smskmap';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\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, 0 ] );\n* var y = new Float32Array( x.length );\n*\n* smskmap( x.length, x, 1, m, 1, y, 1, scale );\n*\n* console.log( y );\n* // => [ 10.0, 20.0, 0.0, 40.0, 50.0 ]\n*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n* import Uint8Array from '@stdlib/array/uint8';\n* import smskmap from '@stdlib/strided/base/smskmap';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\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, 0 ] );\n* var y = new Float32Array( x.length );\n*\n* smskmap.ndarray( x.length, x, 1, 0, m, 1, 0, y, 1, 0, scale );\n*\n* console.log( y );\n* // => [ 10.0, 20.0, 0.0, 40.0, 50.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 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":["main","Object","defineProperty","isNumber","value","zeros","n","i","out","zeroPad","str","width","right","negative","pad","length","startsWithMinus","substr","lowercase","String","prototype","toLowerCase","uppercase","toUpperCase","formatInteger","token","base","specifier","arg","parseInt","isFinite","Error","toString","precision","padRight","sign","alternate","call","charAt","abs","Math","replace","RE_EXP_POS_DIGITS","RE_EXP_NEG_DIGITS","RE_ONLY_DIGITS","RE_DIGITS_BEFORE_EXP","RE_TRAILING_PERIOD_ZERO","RE_PERIOD_ZERO_EXP","RE_ZERO_BEFORE_EXP","formatDouble","digits","f","parseFloat","toExponential","toFixed","toPrecision","spaces","fromCharCode","isArray","Array","isnan","initialize","flags","mapping","formatInterpolate","tokens","hasPeriod","flag","num","pos","j","TypeError","padZeros","indexOf","arguments","maxWidth","substring","RE","parse","match","formatTokenize","content","prev","exec","slice","lastIndex","push","format","args","tokenize","interpolate","apply","objectProtoype","toStr","defineGetter","__defineGetter__","defineSetter","__defineSetter__","lookupGetter","__lookupGetter__","lookupSetter","__lookupSetter__","err","hasDefinePropertySupport","builtin","obj","prop","descriptor","hasValue","hasGet","hasSet","__proto__","get","set","defineProperty$1","setReadOnly","configurable","enumerable","writable","sqrt","floor","FLOAT64_MAX_SAFE_INTEGER","isPrime","x","N","WHEEL_PRIMES","isInteger","FLOAT64_PINF","Number","POSITIVE_INFINITY","isComposite","PINF","main$h","FLOAT64_NINF","NEGATIVE_INFINITY","INT32_MAX","gcd","a","b","NINF","NaN","t","k","bitwise","largeIntegers","isEven","FLG","Symbol","hasToStringTagSupport","toStringTag","has","hasOwnProperty","hasOwnProp","property","Sym","toStrTag","hasToStringTag","v","isOwn","tag","nativeClass","hasFloat32Array","Float32Array","ctor","bool","arr","GlobalFloat32Array","hasFloat32ArraySupport","Float32Array$1","hasUint32Array","Uint32Array","UINT32_MAX","GlobalUint32Array","hasUint32ArraySupport","Uint32Array$1","FLOAT32_VIEW","buffer","isInfinite","isInfinitef","isnanf","isNegativeInteger","isNegativeZero","isNegativeZerof","isNonNegativeInteger","isOdd","isPositiveZero","isProbability","ns","MAX_SAFE_INTEGER","fround","float64ToFloat32$1","setNonEnumerableReadOnly","test","isPrimitive","isObject","Complex64","real","imag","this","float64ToFloat32","z","re","im","add","z1","z2","realf","imagf","mul","re1","re2","im1","im2","Complex128","cadd","y","max","FLOAT64_MAX","FLOAT64_SMALLEST_NORMAL","FLOAT64_EPSILON","internalCompreal","r","br","robustInternal","LARGE_THRESHOLD","FLOAT64_BIGGEST","SMALL_THRESHOLD","FLOAT64_SMALLEST","EPS","RECIP_EPS_SQR","csub","csubf","imul","la","lb","LOW_WORD_MASK","imuldw","stride","offset","w1","w3","ha","hb","fcn","sub","assign","umuldw","abs2","abs2f","absf","caddf","cmulf","cmul","w","u","ab","cd","s","FOURTH_PI","MOREBITS","asin","sgn","zz","p","s1","s2","ratevalRS","PIO4","ratevalPQ","acos","CONST_180_DIV_PI","rad2deg","sqrtf","UINT32_VIEW","toWordf","fromWordf","word","FLOAT32_PI","evalpoly","ALMOST_PI","PIO2_HI","PIO2_LO","MASK_LO","SMALL","QS1","PIO2","acosf","df","ax","q","c","PI","polyp","fromWord","toWord","hasFloat64Array","Float64Array","GlobalFloat64Array","hasFloat64ArraySupport","Float64Array$1","hasUint8Array","Uint8Array","GlobalUint8Array","UINT8_MAX","hasUint8ArraySupport","Uint8Array$1","hasUint16Array","Uint16Array","GlobalUint16Array","UINT16_MAX","hasUint16ArraySupport","uint16view","Uint16Array$1","ctors","uint16","uint8","IS_LITTLE_ENDIAN","HIGH$7","isLittleEndian","FLOAT64_VIEW","getHighWord","HIGH","HIGH$5","setHighWord","high","FLOAT64_EXPONENT_BIAS","LN2_HI","LN2_LO","SQRT2M1","SQRT2HALFM1","TINY","TWO53","TWO_THIRDS","log1p","hfsq","hu","R","polyval","LN2","TWO54","ONE_THIRD","HIGH_SIGNIFICAND_MASK","HIGH_MAX_NORMAL_EXP","HIGH_MIN_NORMAL_EXP","HIGH_BIASED_EXP_0","ln","hx","t2","t1","BIAS","polyvalP","polyvalQ","HUGE","acosh","HALF_PI","T3P8","atan","flg","acot","FLOAT32_HALF_PI","FLOAT32_FOURTH_PI","atanf","PI02F","PI04F","NEAR_ZERO","atanh","acoth","acovercos","acoversin","acsc","rad2degf","asinf","acscf","asinh","xx","isinfinite","ahavercos","ahaversin","asec","asecf","LOW","FLOAT64_HIGH_WORD_SIGN_MASK","FLOAT64_HIGH_WORD_ABS_MASK","indices$3","indices","toWords","indices$1","fromWords","low","WORDS","copysign","hy","ABS_MASK","SIGN_MASK","atan2","signbit","avercos","aversin","MAX_BERNOULLI","bernoulli","BERNOULLI","FLOAT64_HIGH_WORD_EXPONENT_MASK","FLOAT64_HIGH_WORD_SIGNIFICAND_MASK","LOW$3","FLOAT64_MAX_BASE2_EXPONENT","FLOAT64_MAX_BASE2_EXPONENT_SUBNORMAL","FLOAT64_MIN_BASE2_EXPONENT_SUBNORMAL","SCALAR","normalize","exponent","EXP_MASK","TWO52_INV","CLEAR_EXP_MASK","FRAC","ldexp","frac","exp","m","floatExp","MIN_SUBNORMAL_EXPONENT","MAX_EXPONENT","MAX_SUBNORMAL_EXPONENT","len","filled","IPIO2","TWO24","TWON24","F","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","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","SQRT_PI","j1","TWO_DIV_PI","x3","x31","x32","y0","besselj0","poly3","y1","besselj1","ceil","trunc","LOG2_E","OVERFLOW","UNDERFLOW","NEARZERO","NEG_NEARZERO","hi","lo","expmulti","LOW$1","setLowWord","uint32ToInt32","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","logx","ss","hs","ls","ht","bp","dp","lz","log2ax","pow2","E","evalrational","Infinity","G","beta","ambh","agh","bgh","cgh","res","EPSILON","lanczosSumExpGScaled","HALF_LN2","OVERFLOW_THRESHOLD","LN2_INV","LN2x56","LN2_HALFX3","expm1","halfX","twopk","r1","e","min","kernelCos","polyval13","polyval46","kernelSin","sin","HIGH_WORD_ABS_MASK","HIGH_WORD_EXPONENT_MASK","SQRT_TWO_PI","MAX_STIRLING","gamma","GAMMA","EULER","stirlingApprox","smallApprox","rateval","FLOAT64_MAX_SAFE_NTH_FACTORIAL","factorial","FACTORIALS","FLOAT64_GAMMA_LANCZOS_G","FACTORIAL_169","gammaDeltaRatioLanczos","delta","result","ratio","zgh","MAX_FACTORIAL","lanczosSum","gammaDeltaRatio","idelta","iz","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","FLOAT64_SQRT_EPSILON","FLOAT64_MAX_LN","ERX","PPC","QQC","PAC","QAC","RAC","SAC","RBC","SBC","erfc","polyvalPP","polyvalQQ","polyvalPA","polyvalQA","polyvalRA","polyvalSA","polyvalRB","polyvalSB","FLOAT64_MIN_LN","fullIGammaPrefix","alz","MAX_LN","MIN_LN","Fcn","Function","factory","evil","eval","hasGeneratorSupport","sumSeries","generator","options","tolerance","nextTerm","counter","opts","maxTerms","initialValue","next","sumSeries$1","log1pmx","FLOAT_EPS","mMult","mProd","log1pSeries","TWO_PI","workspace","lowerGammaSeries","a1","lowerIncompleteGammaSeries","regularisedGammaPrefix","prefix","amza","amz","sq","d","powm1","Y1","Y2","Y3","lgammaSmallImp","zm1","zm2","rateval2","rateval3","gamma1pm1","FLOAT32_SMALLEST_NORMAL","continuedFraction","maxIter","eps","keep","gen","factor","isgenerator","C","D","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","pgam","apn","smallGamma2Series","tgammaSmallUpperPart","phi","polyvalC0","polyvalC1","polyvalC2","polyvalC3","polyvalC4","polyvalC5","polyvalC6","polyvalC7","polyvalC8","igammaTemmeLarge","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","MAX_INT32","startTerm","start","binomialCCDF","kernelBetainc","betainc","Y4","Y5","erfcinv","rationalFcnR1","rationalFcnR2","rationalFcnR3","rationalFcnR4","rationalFcnR5","SQRT2","c0","inverseStudentsTBodySeries","idf","polyval2","polyval3","polyval4","polyval5","polyval6","polyval7","polyval8","polyval9","inverseStudentsTTailSeries","np2","np4","np6","rn","inverseStudentsTHill","ndf","DF_THRESHOLD","EXP","findIBetaInvFromTDist","py","rootAlpha","p0","p4","inverseStudentsT","terms","BIG","MAX_VALUE","temmeRootFinder","signum","newtonRaphsonIterate","fun","guess","f0last","delta1","delta2","count","f0","f1","FLOAT32_MAX","debug","require$$0","THRESHOLD","ONEO12","ONEO120","AK","lambdaeta","eta","L2","L3","L4","L5","L","polyvalAK2","LN_SQRT_TWO_PI","A","stirling","SMALLEST_FLOAT32","MAX_FLOAT32","tt","u0","u1","u2","chepolsum","polyvalC","polyvalD","gamstar","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","FLOAT64_SMALLEST_SUBNORMAL","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","halleyIterate","ALGMCS","LEN","XBIG","XMAX","gammaCorrection","twox","b0","dceval","betaln","corr","correction","MAX_INTEGER_P1","MAX_INTEGER","cospi","rx","PHI","SQRT_5","binet","hypot","cabs","hypotf","HIGH_WORD_MASK","TWO_54","TWO_31","ONE","B1","FLOAT64_SMALLEST_NORMAL_HIGH_WORD","cbrt","cbrtf","ceilf","FLOAT64_MAX_BASE10_EXPONENT","FLOAT64_MIN_BASE10_EXPONENT","FLOAT64_MIN_BASE10_EXPONENT_SUBNORMAL","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","FLOAT32_SIGN_MASK","PI_DIV_180","deg2rad","isinf","valueOf","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","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","FLOAT64_MIN_BASE2_EXPONENT","exp2","px","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","minn","minmax","minmaxabs","ay","minmaxabsn","av","minmaxn","ALL_ONES","modf","nonfibonacci","PI_SQUARED","YOFFSET24","trigamma","rateval12","rateval24","rateval48","rateval816","rateval16INF","MAX_SERIES_ITERATIONS","atinfinityplus","partTerm","xsquared","k2","LN_TWO","DIGITS_BASE10","LN_PI","PI2","PI3","PI4","PI5","PI6","PI7","PI8","PI9","PI10","PI11","PI12","polycotpi","xc","powTerms","idx","ncols","mcols","mo","so","co","calculateDerivatives","ramp","rampf","HALF_HUGE","round2","round10","rsqrt","rsqrtf","sici","si","ci","polyvalFN4","polyvalFD4","polyvalGN4","polyvalGD4","polyvalFN8","polyvalFD8","polyvalGN8","polyvalGD8","polyvalSN","polyvalSD","polyvalCN","polyvalCD","sinc","sincospi","PI2O6","spence","polyvalA","polyvalB","sqrt1pm1","trunc2","trunc10","truncn","truncf","vercos","versin","special","evalpolyf","P","evalrationalf","bessely0","bessely1","kernelBetaincinv","binomcoefln","lgx","ly","wx","wy","az","last","fast","FIBONACCI","gammaLanczosSum","gammaLanczosSumExpGScaled","fx","continuity","LUCAS","nargs","an","NEGAFIBONACCI","NEGALUCAS","polygamma","factorialPart","scale","AX","MAX","nearzero","minusMminus1","iter","sum0","attransitionplus","TRIBONACCI","cache","coefficients","coefs","fibpoly","normhermitepoly","y3","isint","wrap","hermitepoly","constantFunction","half","lucaspoly","isBoolean","Bool","Boolean","self","window","globalThis","getGlobal","codegen","GlobalThis","Self","Win","nodeList","document","childNodes","typedarray","Int8Array","reFunctionName","RE_FUNCTION_NAME","REGEXP","main$9","arrayfcn","predicate","isObjectLike","isBuffer","_isBuffer","constructor","constructorName","name","arrayfun","ctorName","type","isFunction","typeOf","SCALES","mean","relativeDifference","SCALE","MAX_DIFF","reldiff","isIteratorLike","hasIteratorSymbolSupport","iterator","assert","ops","tools","utils","IteratorSymbol","iterAdd","iterators","types","niter","done","iteratorSymbol","iterDivide","iterMod","iterMultiply","iterSubtract","getProto","Obj","getPrototypeOf","proto","getProto$1","objectPrototype","isPlainObject","isPrototypeOf","key","ownProps","isfinite","setNonEnumerableReadOnlyAccessor","getter","Node","FIFO","_length","_first","_last","values","toArray","node","data","returns","RESULT_FUNCTION","convergent","convergents","MAX_ITER","iterMap","invalid","validate","iterMap2","iter0","iter1","iterCompositesSeq","iterContinuedFractionSeq","orig","neg","bi","fi","Ci","Di","tol","join","item","pop","first","clear","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","MAX_ARRAY_LENGTH","isArrayLikeObject","MAX_LENGTH","keys","isArguments","bool$9","detect","hasArgumentsClass","isString","isNan","isEnumerableProperty","propertyIsEnumerable","hasStringEnumBug","isEnum","isArguments$1","MAX_TYPED_ARRAY_LENGTH","isCollection","searchElement","fromIndex","isConstructorPrototype","hasAutomationEqualityBug","win","EXCLUDED_KEYS","check","HAS_BUILTIN","skipConstructor","skipPrototype","isFcn","HAS_ENUM_PROTO_BUG","HAS_NON_ENUM_PROPS_BUG","HAS_WINDOW","error","NON_ENUMERABLE","main$7","val","allowDupes","duplicates","objectKeys","search","newval","RE_SUFFIX","dtypes","kind","DTYPES","all","enumeration","int8","uint8c","int16","int32","uint32","int64","uint64","float32","float64","complex64","complex128","binary","generic","notype","userdefined_type","source","hash","objectInverse","enum2str","dtype","ENUM","str2enum","resolve","dtypes2signatures","nin","nout","dt","M","setProps","meta","setReadOnlyAccessor","isComplexLike","Global","bytesPerElement","BYTES_PER_ELEMENT","iterationOrder","strides","cnt","strides2order","column","ndims","row","isColumnMajorContiguous","order","contiguous","isRowMajorContiguous","minmaxViewBufferIndex","shape","RE_CHARS","RegExp","isRegExp","rescape","CTORS","hasArrayBuffer","ArrayBuffer","isArrayBuffer","view","GlobalArrayBuffer","isView","byteLength","hasArrayBufferSupport","ArrayBuffer$1","hasDataView","DataView","GlobalDataView","getFloat64","setFloat64","byteOffset","hasDataViewSupport","DataView$1","BigInteger","BigInt","orders","ORDERS","enumerated","DATA","LAYOUTS","modes","MODES","throw","clamp","LOW_MASK","TWO_32","BYTES","VIEW","float64ToInt64Bytes","setUint32","bytes","ndarray","nbytes","ord","_byteLength","_bytesPerElement","_buffer","_dtype","_ndims","_offset","_order","_shape","_strides","_accessors","_iterationOrder","isContiguous","_flags","ROW_MAJOR_CONTIGUOUS","COLUMN_MAJOR_CONTIGUOUS","READONLY","__meta_dataview__","isndarrayLike","ind","iget","flgs","sh","st","sm","_mode","_submode","setInt8","setInt16","setBigInt64","setInt32","Buffer","Int16Array","Int32Array","Uint8ClampedArray","Complex64Array","Complex128Array","BooleanArray","hasInt32Array","GlobalInt32Array","hasInt32ArraySupport","Int32Array$1","hasInt16Array","GlobalInt16Array","INT16_MAX","hasInt16ArraySupport","Int16Array$1","hasUint8ClampedArray","GlobalUint8ClampedArray","hasUint8ClampedArraySupport","Uint8ClampedArray$1","hasInt8Array","GlobalInt8Array","INT8_MAX","hasInt8ArraySupport","Int8Array$1","isPrimitiveArray","isObjectArray","isStringArray","isComplex64Array","isComplex128Array","reinterpret","GETTERS","default","fromIterator","it","HAS_ITERATOR_SYMBOL","isComplexArray","isComplexArrayConstructor","getComplex64","fromArray","reinterpret64","reinterpret128","ITERATOR_SYMBOL","src","thisArg","clbk","accessorGetter","fromIteratorMap","copyWithin","entries","end","separator","sep","outbuf","reducer","acc","sbuf","outlen","compareFcn","sort","begin","locales","loc","toLocaleString","index","getComplex128","isBooleanArray","isBooleanArrayConstructor","NTYPES","ctor2dtype","GlobalBuffer","from","hasNodeBufferSupport","allocUnsafe$1","allocUnsafe","size","bufferCtors","copy","copyIndexed","shape2strides","columnmajor","rowmajor","ROW_MAJOR","strides2offset","COLUMN_MAJOR","broadcastArray","dim","getShape","getStrides","getDType","getData","getOffset","getOrder","arraylikefcn","isArrayLike","isNonNegativeIntegerArray","isIntegerArray","TYPE","isAccessorArray","ctor2dtypes","isDataType","contains","numel","defaults","numeric","floating_point","real_floating_point","complex_floating_point","integer","signed_integer","unsigned_integer","boolean","casting","index_mode","DEFAULTS","HASH","create","Ctor","createObject$1","clampIndex","wrapIndex","mp1","normalizeIndex","isIndexMode","TABLE","mode","parent","iset","MAX_DIMS","INDEX_MODE","isOrder","isBufferLengthCompatible","readonly","submode","xdtype","policy","superCtor","createObject","inherit","getIndex","searchValue","position","dispatch","fields","validateTable","number","complex","array","output_dtype_policy","POLICIES","validateOptions","ydtype","odtype","yorder","ndarrayfcn","xsh","ysh","broadcast","isPositiveInteger","isFunctionArray","fcns","strideArgs","hasOffsets","narrays","nfcns","iout","offsets","arrays","argc","strideX1","strideX2","offsetX","strideY","offsetY","iy","indexOfTypes","SETTERS","setter","stride2offset","unary","accessors","xget","yset","accessorSetter","strided","dtypeX","strideX","dtypeY","ndarraylike2object","xbuf","ref","accessorProtocol","zeroTo","take","loopOrder","avx","jy","vx","vy","ux","sort2ins","arraylike2object","indexed","BLOCK_SIZE_IN_BYTES","BLOCK_SIZE_IN_ELEMENTS","unaryBlockSize","nbx","nby","vind2bind","MODE","UNARY","ybuf","dx0","dy0","S0","dx1","dy1","dx2","dy2","i2","dx3","dy3","i3","dx4","dy4","i4","dx5","dy5","i5","dx6","dy6","i6","dx7","dy7","S7","i7","dx8","dy8","S8","i8","dx9","dy9","S9","i9","ACCESSOR_UNARY","BLOCKED_UNARY","bsize","ox1","oy1","ox","oy","blockSize","ox2","oy2","j2","ox3","oy3","s3","j3","ox4","oy4","s4","j4","ox5","oy5","s5","j5","ox6","oy6","s6","j6","ox7","oy7","s7","j7","ox8","oy8","s8","j8","ox9","oy9","s9","j9","BLOCKED_ACCESSOR_UNARY","resolveEnum","types2enums","dispatcher","xmmv","ymmv","shx","shy","iox","ioy","ndarray2object","ordx","ordy","accessorunarynd","unarynd","config","setProps$1","promotionRules","dtype1","dtype2","ntypes","dt1","dt2","PROMOTION_RULES","generateFullTable","safeCasts","SAFE_CASTS","generateTable","intersection","list1","list2","resolveStr","signatures","dtypes1","dtypes2","dtypes3","casts","dt3","t3","enums","sz","yget","zset","T","C64","C128","resolveCallback","callbacks","dtypeZ","strideZ","mapBy2","offsetZ","addBy","oz","mulBy","subBy","mapBy","absBy","abs2By","acosBy","acoshBy","acotBy","acothBy","acovercosBy","acoversinBy","ahavercosBy","ahaversinBy","asinBy","asinhBy","atanBy","atanhBy","avercosBy","aversinBy","besselj0By","besselj1By","bessely0By","bessely1By","binetBy","cbrtBy","cosBy","dmap","dabs","dabs2","dcbrt","dcbrtBy","dceil","ddeg2rad","dfloor","dinv","dmskmap","strideMask","offsetMask","dmskabs","dmskabs2","dmskcbrt","dmskceil","dmskdeg2rad","dmskfloor","dmskinv","dmskramp","dmskrsqrt","dmsksqrt","dmsktrunc","dramp","drsqrt","dsqrt","dtrunc","om","smap","sabs","sabs2","scbrt","sceil","sdeg2rad","sfloor","sinBy","sinv","smskmap","smskabs","smskabs2","smskcbrt","smskceil","smskdeg2rad","smskfloor","smskinv","smskramp","smskrsqrt","smsksqrt","smsktrunc","sqrtBy","sramp","srsqrt","ssqrt","strunc"],"mappings":"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rQA,SAA0BnvD,EAAG4F,EAAG4B,GAC/B,IAAIooD,EACAzD,EACAsB,EACApuD,EACAC,EACAouD,EACAG,EACAE,EACAG,EACAG,EACAG,EACAG,EACAG,EACAI,EACAI,EACA3B,EACAG,EACAE,EACAG,EACAG,EACAG,EACAG,EACAG,EACAI,EACAI,EACAM,EACAK,EACAG,EACAI,EACAI,EACAI,EACAI,EACAI,EACAI,EACA/B,EACAK,EACAG,EACAI,EACAI,EACAI,EACAI,EACAI,EACAI,EACAjS,EACAz2B,EACAvgB,EACAC,EACAynD,EACAI,EACAI,EACAI,EACAI,GACAI,GACAI,GACA72C,GACAC,GACA40C,GACAC,GACAr7C,GACAy2C,GACAv/B,GACAC,GACAmiC,GACAG,GACAG,GACAG,GACAG,GACAI,GACAI,GACAI,GACAh4C,GACAS,GACAk4C,GACAI,GACAI,GACAI,GACAI,GACAI,GACAI,GACAI,GACAnc,GA8BJ,IAxBAgK,GADAhK,GAAI2W,GAAWxsD,EAAE47C,MAAO57C,EAAEi7C,QAASr1C,EAAEq1C,UAC9B4E,GACP3kC,GAAK26B,GAAE36B,GACPC,GAAK06B,GAAE16B,GAGPy0C,EAAQK,GAAWjwD,EAAEg6C,MAAOp0C,EAAEo0C,OAG9B+V,GAAK/vD,EAAEmH,OACP6oD,GAAKpqD,EAAEuB,OAGPglD,EAAOnsD,EAAEkyC,KACTub,EAAO7nD,EAAEssC,KAGTwb,EAAMxyC,GAAG,GACTyyC,EAAMxyC,GAAG,GAGT9b,EAAMW,EAAE0rD,UAAU,GAClBpsD,EAAMsG,EAAE8lD,UAAU,GAGZsG,GAAKnS,EAAG,GAAImS,GAAK,GAUtB,IATKA,GAAKpC,GACTmC,GAAKC,GACLA,GAAK,IAELD,GAAKnC,EACLoC,IAAMpC,GAEPiC,EAAM9B,GAAOiC,GAAG92C,GAAG,GACnB42C,EAAM9B,GAAOgC,GAAG72C,GAAG,GACby2C,GAAK/R,EAAG,GAAI+R,GAAK,GAYtB,IAXKA,GAAKhC,GACT+B,GAAKC,GACLA,GAAK,IAELD,GAAK/B,EACLgC,IAAMhC,GAEPN,EAA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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,18,21,24,25,26,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,79,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,103,104,105,106,107,108,109,110,142,149,150,151,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,183,188,193,194,211,212,213,214,215,216,217,218,220,222,226,227,228,229,230,231,232,233,234,235,236,237,238,239,241,242,256,278,279,280,291,294,303,306,310,313,329,330,340,343,346,347,353,365,407,427,432,452,474,483,484,485,497,499,500,501,503,587,619,654,673,682,771,825,839,840,841,842,843,844,845,846,847,848,849,850,851,852,853,854,855,856,857,858,859,860,861,862,863,864,865,866,867,882,883,884,886,892,893,894,895,896,897,898,899,900,901,902,903,904,905,906,907,908,909,910,911,912,913,914,915,916,917,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,1117,1118,1119,1120,1121,1122,1123,1124,1125,1126,1127,1128,1129,1130,1131,1132,1133,1134,1135,1136,1137,1138,1139,1140,1141,1142,1143,1144,1145,1146,1147,1148,1149,1150,1151,1152,1153,1154,1155,1156,1157,1158,1159,1160,1161,1162,1163,1164,1165,1166,1167,1168,1169,1170,1171,1172,1173,1174,1175,1176,1177,1178,1179,1180,1181,1182,1183,1184,1185,1186,1187,1188,1189,1190,1191,1192,1193,1194,1195,1196,1197,1198,1199,1200,1201,1202,1203,1204,1205,1206,1207,1208,1209,1210,1211,1212,1213,1214,1215,1216,1217,1218,1219,1220,1221,1222,1223,1224,1225,1226,1227,1228,1229,1230,1231,1232,1233,1234,1235,1236,1237,1238,1239,1240,1241,1242,1243,1244,1245,1246,1247,1248,1249,1250,1251,1252,1253,1254,1255,1256,1257,1258,1259,1260,1261,1262,1263,1264,1265,1266,1267,1268,1269,1270,1271,1272,1273,1274,1275,1276,1277,1278,1279,1280,1281,1282,1283,1284,1285,1286,1287,1288,1289,1290,1291,1292,1293,1294,1295,1296,1297,1299,1300,1301,1302,1306,1309,1310,1311,1312,1313,1314,1315,1316,1317,1318,1319,1320,1321,1322,1323,1324,1325,1326,1327,1328,1329,1330,1331,1332,1333,1337,1338,1339,1340,1341,1342,1343,1344,1346,1347,1348,1349,1350,1351,1352,1353,1354,1355,1356,1357,1358,1359,1360,1361,1362,1363,1364,1365,1366,1367,1368,1369,1370,1371,1372,1373,1374,1375,1376,1377,1378,1379,1380,1381,1382,1383,1384,1385,1386,1387,1388,1389,1390,1391,1392,1393,1396,1397,1401,1402,1403,1404,1406,1407,1408,1409,1410,1411,1412,1413,1414,1418,1419,1420,1421,1422,1423,1426,1446,1447,1448,1449,1450,1451,1453,1531,1532,1542,1560,1561,1582,1628,1629,1638,1639,1652,1669]} \ No newline at end of file diff --git a/index.js b/index.js deleted file mode 100644 index 060362b3f..000000000 --- a/index.js +++ /dev/null @@ -1,3 +0,0 @@ -// Copyright (c) 2024 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 -!function(r,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n(require("path"),require("buffer")):"function"==typeof define&&define.amd?define(["path","buffer"],n):(r="undefined"!=typeof globalThis?globalThis:r||self).math=n(r.require$$0$2,r.require$$0$1)}(this,(function(r,n){"use strict";var e="function"==typeof Object.defineProperty?Object.defineProperty:null;var t=Object.defineProperty;function i(r){return"number"==typeof r}function o(r){var n,e="";for(n=0;n0&&(n-=1),e=t.toExponential(n)):e=t.toPrecision(r.precision),r.alternate||(e=p.call(e,b,"$1e"),e=p.call(e,w,"e"),e=p.call(e,y,""));break;default:throw new Error("invalid double notation. Value: "+r.specifier)}return e=p.call(e,v,"e+0$1"),e=p.call(e,d,"e-0$1"),r.alternate&&(e=p.call(e,m,"$1."),e=p.call(e,g,"$1.e")),t>=0&&r.sign&&(e=r.sign+e),e=r.specifier===h.call(r.specifier)?h.call(e):l.call(e)}function E(r){var n,e="";for(n=0;n127)throw new Error("invalid character code. Value: "+t.arg);t.arg=N(o)?String(t.arg):x(o)}break;case"e":case"E":case"f":case"F":case"g":case"G":n||(t.precision=6),t.arg=_(t);break;default:throw new Error("invalid specifier: "+t.specifier)}t.maxWidth>=0&&t.arg.length>t.maxWidth&&(t.arg=t.arg.substring(0,t.maxWidth)),t.padZeros?t.arg=u(t.arg,t.width||t.precision,t.padRight):t.width&&(t.arg=(h=t.arg,p=t.width,v=t.padRight,d=void 0,(d=p-h.length)<0?h:h=v?h+E(d):E(d)+h)),a+=t.arg||"",f+=1}return a}var O=/%(?:([1-9]\d*)\$)?([0 +\-#]*)(\*|\d+)?(?:(\.)(\*|\d+)?)?[hlL]?([%A-Za-z])/g;function A(r){var n={mapping:r[1]?parseInt(r[1],10):void 0,flags:r[2],width:r[3],precision:r[5],specifier:r[6]};return"."===r[4]&&void 0===r[5]&&(n.precision="1"),n}function S(r){var n,e,t,i;for(e=[],i=0,t=O.exec(r);t;)(n=r.slice(i,O.lastIndex-t[0].length)).length&&e.push(n),e.push(A(t)),i=O.lastIndex,t=O.exec(r);return(n=r.slice(i)).length&&e.push(n),e}function I(r){var n,e;if("string"!=typeof r)throw new TypeError(I("invalid argument. First argument must be a string. Value: `%s`.",r));for(n=[S(r)],e=1;e1;if(r>D||r%2==0)return!1;if(r<9)return!0;if(r%3==0)return!1;if(r%5==0)return!1;if(r%7==0)return!1;if(W[r])return!0;for(n=Y(q(r)),e=11;e<=n;e+=210)if(r%e==0||r%(e+2)==0||r%(e+6)==0||r%(e+8)==0||r%(e+12)==0||r%(e+18)==0||r%(e+20)==0||r%(e+26)==0||r%(e+30)==0||r%(e+32)==0||r%(e+36)==0||r%(e+42)==0||r%(e+48)==0||r%(e+50)==0||r%(e+56)==0||r%(e+60)==0||r%(e+62)==0||r%(e+68)==0||r%(e+72)==0||r%(e+78)==0||r%(e+86)==0||r%(e+90)==0||r%(e+92)==0||r%(e+96)==0||r%(e+98)==0||r%(e+102)==0||r%(e+110)==0||r%(e+116)==0||r%(e+120)==0||r%(e+126)==0||r%(e+128)==0||r%(e+132)==0||r%(e+138)==0||r%(e+140)==0||r%(e+146)==0||r%(e+152)==0||r%(e+156)==0||r%(e+158)==0||r%(e+162)==0||r%(e+168)==0||r%(e+170)==0||r%(e+176)==0||r%(e+180)==0||r%(e+182)==0||r%(e+186)==0||r%(e+188)==0||r%(e+198)==0||r%(e+200)==0)return!1;return!0}function G(r){return Y(r)===r}var $=Number.POSITIVE_INFINITY;function J(r){return G(r)&&r>1&&r!==$&&!1===z(r)}function Z(r){return r!=r}var H=Number,K=H.NEGATIVE_INFINITY,X=2147483647;function Q(r,n){return Z(r)||Z(n)||r===$||n===$||r===K||n===K?NaN:G(r)&&G(n)?(r<0&&(r=-r),n<0&&(n=-n),r<=X&&n<=X?function(r,n){var e,t=0;if(0===r)return n;if(0===n)return r;for(;0==(1&r)&&0==(1&n);)r>>>=1,n>>>=1,t+=1;for(;0==(1&r);)r>>>=1;for(;n;){for(;0==(1&n);)n>>>=1;r>n&&(e=n,n=r,r=e),n-=r}return r<n&&(e=n,n=r,r=e),n-=r}return t*r}(r,n)):NaN}function rr(r){return G(r/2)}var nr="function"==typeof Symbol&&"symbol"==typeof Symbol("foo");function er(){return nr&&"symbol"==typeof Symbol.toStringTag}var tr=Object.prototype.toString;var ir=Object.prototype.hasOwnProperty;function or(r,n){return null!=r&&ir.call(r,n)}var ur,ar="function"==typeof Symbol?Symbol:void 0,fr="function"==typeof ar?ar.toStringTag:"";ur=er()?function(r){var n,e,t;if(null==r)return tr.call(r);e=r[fr],n=or(r,fr);try{r[fr]=void 0}catch(n){return tr.call(r)}return t=tr.call(r),n?r[fr]=e:delete r[fr],t}:function(r){return tr.call(r)};var sr=ur,cr="function"==typeof Float32Array;var lr="function"==typeof Float32Array?Float32Array:null;var hr,pr="function"==typeof Float32Array?Float32Array:void 0;hr=function(){var r,n,e;if("function"!=typeof lr)return!1;try{n=new lr([1,3.14,-3.14,5e40]),e=n,r=(cr&&e instanceof Float32Array||"[object Float32Array]"===sr(e))&&1===n[0]&&3.140000104904175===n[1]&&-3.140000104904175===n[2]&&n[3]===$}catch(n){r=!1}return r}()?pr:function(){throw new Error("not implemented")};var vr=hr,dr="function"==typeof Uint32Array;var mr=4294967295,gr="function"==typeof Uint32Array?Uint32Array:null;var yr,wr="function"==typeof Uint32Array?Uint32Array:void 0;yr=function(){var r,n,e;if("function"!=typeof gr)return!1;try{n=new gr(n=[1,3.14,-3.14,4294967296,4294967297]),e=n,r=(dr&&e instanceof Uint32Array||"[object Uint32Array]"===sr(e))&&1===n[0]&&3===n[1]&&4294967293===n[2]&&0===n[3]&&1===n[4]}catch(n){r=!1}return r}()?wr:function(){throw new Error("not implemented")};var br=yr,_r=new vr(1);new br(_r.buffer)[0]=2139095040;var Er=_r[0],xr=new vr(1);new br(xr.buffer)[0]=4286578688;var Tr=xr[0];function Nr(r){return r===$||r===K}function jr(r){return r===Er||r===Tr}function Vr(r){return r!=r}function Or(r){return Y(r)===r&&r<0}function Ar(r){return 0===r&&1/r===K}function Sr(r){return 0===r&&1/r===Tr}function Ir(r){return Y(r)===r&&r>=0}function kr(r){return rr(r>0?r-1:r+1)}function Fr(r){return 0===r&&1/r===$}function Br(r){return r>=0&&r<=1}var Rr={};C(Rr,"isEvenInt32",(function(r){return 0==(1&r)})),C(Rr,"isOddInt32",(function(r){return 1==(1&r)})),C(Rr,"isComposite",J),C(Rr,"isCoprime",(function(r,n){var e=Q(r,n);return e==e&&1===e})),C(Rr,"isEven",rr),C(Rr,"isFinite",(function(r){return r==r&&r>K&&r<$})),C(Rr,"isFinitef",(function(r){return r==r&&r>Tr&&rK})),C(Rr,"isNegativeInteger",Or),C(Rr,"isNegativeZero",Ar),C(Rr,"isNegativeZerof",Sr),C(Rr,"isNonNegativeFinite",(function(r){return r>=0&&r<$})),C(Rr,"isNonNegativeInteger",Ir),C(Rr,"isNonPositiveFinite",(function(r){return r<=0&&r>K})),C(Rr,"isNonPositiveInteger",(function(r){return Y(r)===r&&r<=0})),C(Rr,"isOdd",kr),C(Rr,"isPositiveFinite",(function(r){return r>0&&r<$})),C(Rr,"isPositiveInteger",(function(r){return Y(r)===r&&r>0})),C(Rr,"isPositiveZero",Fr),C(Rr,"isPositiveZerof",(function(r){return 0===r&&1/r===Er})),C(Rr,"isPrime",z),C(Rr,"isProbability",Br),C(Rr,"isSafeInteger",(function(r){return r>=-9007199254740991&&r<=D&&G(r)})),C(Rr,"isPow2Uint32",(function(r){return!(!(r>>>=0)||r&r-1)}));var Lr="function"==typeof Math.fround?Math.fround:null,Mr=new vr(1);var Pr="function"==typeof Lr?Lr:function(r){return Mr[0]=r,Mr[0]};function Ur(r,n,e){U(r,n,{configurable:!1,enumerable:!1,writable:!1,value:e})}function Cr(r){return"number"==typeof r}var qr=H.prototype.toString;var Yr=er();function Dr(r){return"object"==typeof r&&(r instanceof H||(Yr?function(r){try{return qr.call(r),!0}catch(r){return!1}}(r):"[object Number]"===sr(r)))}function Wr(r){return Cr(r)||Dr(r)}function zr(r,n){if(!(this instanceof zr))throw new TypeError("invalid invocation. Constructor must be called with the `new` keyword.");if(!Cr(r))throw new TypeError(I("invalid argument. Real component must be a number. Value: `%s`.",r));if(!Cr(n))throw new TypeError(I("invalid argument. Imaginary component must be a number. Value: `%s`.",n));return U(this,"re",{configurable:!1,enumerable:!0,writable:!1,value:Pr(r)}),U(this,"im",{configurable:!1,enumerable:!0,writable:!1,value:Pr(n)}),this}function Gr(r){return r.re}function $r(r){return r.im}function Jr(r,n){return new zr(Pr(Gr(r)+Gr(n)),Pr($r(r)+$r(n)))}function Zr(r,n){var e=Gr(r),t=Gr(n),i=$r(r),o=$r(n),u=Pr(e*t)-Pr(i*o),a=Pr(e*o)+Pr(i*t);return new zr(Pr(u),Pr(a))}function Hr(r,n){if(!(this instanceof Hr))throw new TypeError("invalid invocation. Constructor must be called with the `new` keyword.");if(!Cr(r))throw new TypeError(I("invalid argument. Real component must be a number. Value: `%s`.",r));if(!Cr(n))throw new TypeError(I("invalid argument. Imaginary component must be a number. Value: `%s`.",n));return U(this,"re",{configurable:!1,enumerable:!0,writable:!1,value:r}),U(this,"im",{configurable:!1,enumerable:!0,writable:!1,value:n}),this}function Kr(r){return r.re}function Xr(r){return r.im}function Qr(r,n){return new Hr(Kr(r)+Kr(n),Xr(r)+Xr(n))}function rn(r,n){var e=Kr(r),t=Kr(n),i=Xr(r),o=Xr(n);return new Hr(e*t-i*o,e*o+i*t)}function nn(r,n){return r+n}function en(r){return Math.abs(r)}function tn(r,n){return Z(r)||Z(n)?NaN:r===$||n===$?$:r===n&&0===r?Fr(r)?r:n:r>n?r:n}Ur(Wr,"isPrimitive",Cr),Ur(Wr,"isObject",Dr),Ur(zr,"BYTES_PER_ELEMENT",4),Ur(zr.prototype,"BYTES_PER_ELEMENT",4),Ur(zr.prototype,"byteLength",8),Ur(zr.prototype,"toString",(function(){var r=""+this.re;return this.im<0?r+=" - "+-this.im:r+=" + "+this.im,r+="i"})),Ur(zr.prototype,"toJSON",(function(){var r={type:"Complex64"};return r.re=this.re,r.im=this.im,r})),Ur(Hr,"BYTES_PER_ELEMENT",8),Ur(Hr.prototype,"BYTES_PER_ELEMENT",8),Ur(Hr.prototype,"byteLength",16),Ur(Hr.prototype,"toString",(function(){var r=""+this.re;return this.im<0?r+=" - "+-this.im:r+=" + "+this.im,r+="i"})),Ur(Hr.prototype,"toJSON",(function(){var r={type:"Complex128"};return r.re=this.re,r.im=this.im,r}));var on=17976931348623157e292,un=22250738585072014e-324,an=2220446049250313e-31;function fn(r,n,e,t,i,o){var u;return 0===i?(r+t*(n/e))*o:0===(u=n*i)?r*o+n*o*i:(r+u)*o}function sn(r,n,e,t){var i,o,u;return u=1/(e+t*(o=t/e)),(i=[0,0])[0]=fn(r,n,e,t,o,u),i[1]=fn(n,-r,e,t,o,u),i}var cn=.5*on,ln=un*(2/an),hn=2/(an*an);function pn(r,n){return new Hr(Kr(r)-Kr(n),Xr(r)-Xr(n))}function vn(r,n){return new zr(Pr(Gr(r)-Gr(n)),Pr($r(r)-$r(n)))}var dn="function"==typeof Math.imul?Math.imul:null;var mn="function"==typeof dn?dn:function(r,n){var e,t;return((e=(65535&(r|=0))>>>0)*(t=(65535&(n|=0))>>>0)>>>0)+((r>>>16>>>0)*t+e*(n>>>16>>>0)<<16>>>0)|0},gn=65535;function yn(r,n,e,t,i){var o,u,a,f,s,c,l,h;return Z(r)||Z(n)?(e[i]=NaN,e[i+t]=NaN,e):(u=((l=(s=((r|=0)&gn)>>>0)*(c=((n|=0)&gn)>>>0)>>>0)&gn)>>>0,o=(l=(a=r>>16|0)*c+(h=l>>>16>>>0)>>>0)>>16>>>0,h=(l=s*(f=n>>16|0)+((l&gn)>>>0)>>>0)>>16>>>0,e[i]=a*f+o+h|0,e[i+t]=(l<<16)+u|0,e)}function wn(r,n){return yn(r,n,[0,0],1,0)}function bn(r,n){return r*n}function _n(r,n){return r-n}Ur(wn,"assign",yn);var En=65535;function xn(r,n,e,t,i){var o,u,a,f,s,c,l,h;return Z(r)||Z(n)?(e[i]=NaN,e[i+t]=NaN,e):(u=((l=(s=((r>>>=0)&En)>>>0)*(c=((n>>>=0)&En)>>>0)>>>0)&En)>>>0,o=(l=(a=r>>>16>>>0)*c+(h=l>>>16>>>0)>>>0)>>>16>>>0,h=(l=s*(f=n>>>16>>>0)+((l&En)>>>0)>>>0)>>>16>>>0,e[i]=a*f+o+h>>>0,e[i+t]=(l<<16)+u>>>0,e)}function Tn(r,n){return xn(r,n,[0,0],1,0)}Ur(Tn,"assign",xn);var Nn={};function jn(r){return r*r}function Vn(r){return Pr(Pr(r)*Pr(r))}function On(r){return Math.abs(r)}C(Nn,"caddf",Jr),C(Nn,"cmulf",Zr),C(Nn,"cadd",Qr),C(Nn,"cmul",rn),C(Nn,"add",nn),C(Nn,"add3",(function(r,n,e){return r+n+e})),C(Nn,"add4",(function(r,n,e,t){return r+n+e+t})),C(Nn,"add5",(function(r,n,e,t,i){return r+n+e+t+i})),C(Nn,"addf",(function(r,n){return Pr(Pr(r)+Pr(n))})),C(Nn,"cdiv",(function(r,n){var e,t,i,o,u,a,f,s;return e=Kr(r),t=Kr(n),i=Xr(r),o=Xr(n),a=tn(en(e),en(i)),f=tn(en(t),en(o)),s=1,a>=cn?(e*=.5,i*=.5,s*=2):a<=ln&&(e*=hn,i*=hn,s/=hn),f>=cn?(t*=.5,o*=.5,s*=.5):f<=ln&&(t*=hn,o*=hn,s*=hn),en(o)<=en(t)?u=sn(e,i,t,o):(u=sn(i,e,o,t))[1]*=-1,u[0]*=s,u[1]*=s,new Hr(u[0],u[1])})),C(Nn,"cneg",(function(r){return new Hr(-Kr(r),-Xr(r))})),C(Nn,"cnegf",(function(r){return new zr(-Gr(r),-$r(r))})),C(Nn,"csub",pn),C(Nn,"csubf",vn),C(Nn,"div",(function(r,n){return r/n})),C(Nn,"divf",(function(r,n){return Pr(Pr(r)/Pr(n))})),C(Nn,"imul",mn),C(Nn,"imuldw",wn),C(Nn,"mul",bn),C(Nn,"mulf",(function(r,n){return Pr(Pr(r)*Pr(n))})),C(Nn,"sub",_n),C(Nn,"subf",(function(r,n){return Pr(Pr(r)-Pr(n))})),C(Nn,"umul",(function(r,n){var e,t;return((e=(65535&(r>>>=0))>>>0)*(t=(65535&(n>>>=0))>>>0)>>>0)+((r>>>16>>>0)*t+e*(n>>>16>>>0)<<16>>>0)>>>0})),C(Nn,"umuldw",Tn);var An=.7853981633974483;var Sn=6123233995736766e-32;function In(r){var n,e,t,i,o;if(Z(r))return NaN;if(r>0?t=r:(n=!0,t=-r),t>1)return NaN;if(t>.625)i=(e=1-t)*function(r){var n,e;return 0===r?.08333333333333809:((r<0?-r:r)<=1?(n=28.536655482610616+r*(r*(6.968710824104713+r*(.002967721961301243*r-.5634242780008963))-25.56901049652825),e=342.43986579130785+r*(r*(147.0656354026815+r*(1*r-21.947795316429207))-383.8770957603691)):(n=.002967721961301243+(r=1/r)*(r*(6.968710824104713+r*(28.536655482610616*r-25.56901049652825))-.5634242780008963),e=1+r*(r*(147.0656354026815+r*(342.43986579130785*r-383.8770957603691))-21.947795316429207)),n/e)}(e),e=q(e+e),o=An-e,o-=e=e*i-Sn,o+=An;else{if(t<1e-8)return r;o=(e=t*t)*function(r){var n,e;return 0===r?.16666666666666713:((r<0?-r:r)<=1?(n=r*(19.562619833175948+r*(r*(5.444622390564711+r*(.004253011369004428*r-.6019598008014124))-16.262479672107002))-8.198089802484825,e=r*(139.51056146574857+r*(r*(70.49610280856842+r*(1*r-14.740913729888538))-147.1791292232726))-49.18853881490881):(n=.004253011369004428+(r=1/r)*(r*(5.444622390564711+r*(r*(19.562619833175948+-8.198089802484825*r)-16.262479672107002))-.6019598008014124),e=1+r*(r*(70.49610280856842+r*(r*(139.51056146574857+-49.18853881490881*r)-147.1791292232726))-14.740913729888538)),n/e)}(e),o=t*o+t}return n?-o:o}var kn=6123233995736766e-32;function Fn(r){var n;return Z(r)||r<-1||r>1?NaN:r>.5?2*In(q(.5-.5*r)):(n=An-In(r),n+=kn,n+=An)}var Bn=57.29577951308232;function Rn(r){return r*Bn}function Ln(r){return Pr(q(Pr(r)))}var Mn=new vr(1),Pn=new br(Mn.buffer);function Un(r){return Mn[0]=r,Pn[0]}var Cn=new br(1),qn=new vr(Cn.buffer);function Yn(r){return Cn[0]=r,qn[0]}var Dn=Pr(3.141592653589793);function Wn(r){return 0===r?.16666586697101593:Pr(.16666586697101593+Pr(r*Pr(-.04274342209100723+Pr(-.008656363002955914*r))))}var zn=3.1415925026,Gn=1.5707962513,$n=7.5497894159e-8,Jn=-4096,Zn=1.4901161193847656e-8,Hn=-.7066296339,Kn=Pr(Gn+$n);function Xn(r){var n,e,t,i,o,u,a,f,s;return Vr(r)||(r=Pr(r))<-1||r>1?NaN:1===r?0:-1===r?Dn:(e=On(r))<.5?e<=Zn?Kn:(t=Pr(r*r),i=Pr(t*Wn(t)),o=Pr(1+Pr(t*Hn)),u=Pr(i/o),Pr(Gn-Pr(r-Pr($n-Pr(r*u))))):r<-.5?(t=Pr(.5*Pr(1+r)),i=Pr(t*Wn(t)),o=Pr(1+Pr(t*Hn)),a=Ln(t),u=Pr(i/o),s=Pr(Pr(u*a)-$n),Pr(zn-Pr(2*Pr(a+s)))):(n=Yn(Un(a=Ln(t=Pr(.5*Pr(1-r))))&Jn),f=Pr(Pr(t-Pr(n*n))/Pr(a+n)),i=Pr(t*Wn(t)),o=Pr(1+Pr(t*Hn)),u=Pr(i/o),s=Pr(Pr(u*a)+f),Pr(2*Pr(n+s)))}var Qn="function"==typeof Float64Array;var re="function"==typeof Float64Array?Float64Array:null;var ne,ee="function"==typeof Float64Array?Float64Array:void 0;ne=function(){var r,n,e;if("function"!=typeof re)return!1;try{n=new re([1,3.14,-3.14,NaN]),e=n,r=(Qn&&e instanceof Float64Array||"[object Float64Array]"===sr(e))&&1===n[0]&&3.14===n[1]&&-3.14===n[2]&&n[3]!=n[3]}catch(n){r=!1}return r}()?ee:function(){throw new Error("not implemented")};var te=ne,ie="function"==typeof Uint8Array;var oe="function"==typeof Uint8Array?Uint8Array:null;var ue,ae="function"==typeof Uint8Array?Uint8Array:void 0;ue=function(){var r,n,e;if("function"!=typeof oe)return!1;try{n=new oe(n=[1,3.14,-3.14,256,257]),e=n,r=(ie&&e instanceof Uint8Array||"[object Uint8Array]"===sr(e))&&1===n[0]&&3===n[1]&&253===n[2]&&0===n[3]&&1===n[4]}catch(n){r=!1}return r}()?ae:function(){throw new Error("not implemented")};var fe=ue,se="function"==typeof Uint16Array;var ce="function"==typeof Uint16Array?Uint16Array:null;var le,he="function"==typeof Uint16Array?Uint16Array:void 0;le=function(){var r,n,e;if("function"!=typeof ce)return!1;try{n=new ce(n=[1,3.14,-3.14,65536,65537]),e=n,r=(se&&e instanceof Uint16Array||"[object Uint16Array]"===sr(e))&&1===n[0]&&3===n[1]&&65533===n[2]&&0===n[3]&&1===n[4]}catch(n){r=!1}return r}()?he:function(){throw new Error("not implemented")};var pe,ve=le,de={uint16:ve,uint8:fe};(pe=new de.uint16(1))[0]=4660;var me=52===new de.uint8(pe.buffer)[0],ge=!0===me?1:0,ye=new te(1),we=new br(ye.buffer);function be(r){return ye[0]=r,we[ge]}var _e=!0===me?1:0,Ee=new te(1),xe=new br(Ee.buffer);function Te(r,n){return Ee[0]=r,xe[_e]=n>>>0,Ee[0]}var Ne=1023;var je=.6931471803691238,Ve=1.9082149292705877e-10,Oe=.41421356237309503,Ae=-.2928932188134525,Se=1.862645149230957e-9,Ie=5551115123125783e-32,ke=9007199254740992,Fe=.6666666666666666;function Be(r){var n,e,t,i,o,u,a,f,s,c;if(r<-1||Z(r))return NaN;if(-1===r)return K;if(r===$)return r;if(0===r)return r;if(c=1,(t=r<0?-r:r)Ae&&(c=0,i=r,e=1)}return 0!==c&&(t>20)-Ne)>0?1-(s-r):r-(s-1),o/=s):(c=((e=be(s=r))>>20)-Ne,o=0),(e&=1048575)<434334?s=Te(s,1072693248|e):(c+=1,s=Te(s,1071644672|e),e=1048576-e>>2),i=s-1),n=.5*i*i,0===e?0===i?c*je+(o+=c*Ve):c*je-((f=n*(1-Fe*i))-(c*Ve+o)-i):(f=(a=(u=i/(2+i))*u)*function(r){return 0===r?.6666666666666735:.6666666666666735+r*(.3999999999940942+r*(.2857142874366239+r*(.22222198432149784+r*(.1818357216161805+r*(.15313837699209373+.14798198605116586*r)))))}(a),0===c?i-(n-u*(n+f)):c*je-(n-(u*(n+f)+(c*Ve+o))-i))}var Re=.6931471805599453;var Le=.6931471803691238,Me=1.9082149292705877e-10,Pe=0x40000000000000,Ue=.3333333333333333,Ce=1048575,qe=2146435072,Ye=1048576,De=1072693248;function We(r){var n,e,t,i,o,u,a,f,s,c,l,h;return 0===r?K:Z(r)||r<0?NaN:(o=0,(e=be(r))=qe?r+r:(o+=(e>>20)-Ne|0,o+=(f=(e&=Ce)+614244&1048576|0)>>20|0,a=(r=Te(r,e|f^De))-1,(Ce&2+e)<3?0===a?0===o?0:o*Le+o*Me:(u=a*a*(.5-Ue*a),0===o?a-u:o*Le-(u-o*Me-a)):(f=e-398458|0,s=440401-e|0,i=(l=(h=(c=a/(2+a))*c)*h)*function(r){return 0===r?.3999999999940942:.3999999999940942+r*(.22222198432149784+.15313837699209373*r)}(l),t=h*function(r){return 0===r?.6666666666666735:.6666666666666735+r*(.2857142874366239+r*(.1818357216161805+.14798198605116586*r))}(l),u=t+i,(f|=s)>0?(n=.5*a*a,0===o?a-(n-c*(n+u)):o*Le-(n-(c*(n+u)+o*Me)-a)):0===o?a-c*(a-u):o*Le-(c*(a-u)-o*Me-a))))}var ze=1<<28;function Ge(r){var n;return Z(r)||r<1?NaN:1===r?0:r>=ze?We(r)+Re:r>2?We(2*r-1/(r+q(r*r-1))):Be((n=r-1)+q(2*n+n*n))}var $e=1.5707963267948966;var Je=6123233995736766e-32,Ze=2.414213562373095;function He(r){var n,e,t,i;return Z(r)||0===r?r:r===$?$e:r===K?-$e:(r<0&&(e=!0,r=-r),n=0,r>Ze?(t=$e,n=1,r=-1/r):r<=.66?t=0:(t=An,n=2,r=(r-1)/(r+1)),i=(i=r*r)*function(r){return 0===r?-64.85021904942025:r*(r*(r*(-.8750608600031904*r-16.157537187333652)-75.00855792314705)-122.88666844901361)-64.85021904942025}(i)/function(r){return 0===r?194.5506571482614:194.5506571482614+r*(485.3903996359137+r*(432.88106049129027+r*(165.02700983169885+r*(24.858464901423062+1*r))))}(i),i=r*i+r,2===n?i+=.5*Je:1===n&&(i+=Je),t+=i,e?-t:t)}function Ke(r){return He(1/r)}var Xe=Pr(1.5707963267948966),Qe=Pr(.7853981633974483);function rt(r){var n,e,t;return Vr(r)||0===r?r:((r=Pr(r))<0?(n=-1,r=-r):n=1,r>2.414213562373095?(e=Xe,r=-Pr(1/r)):r>.414213562373095?(e=Qe,r=Pr(Pr(r-1)/Pr(r+1))):e=0,t=Pr(r*r),e=Pr(e+Pr(Pr(function(r){return 0===r?-.3333294987678528:Pr(-.3333294987678528+Pr(r*Pr(.19977711141109467+Pr(r*Pr(-.13877685368061066+Pr(.08053744584321976*r))))))}(t))*Pr(t*r)+r)),n<0&&(e=-e),e)}var nt=1/(1<<28);function et(r){var n,e;return Z(r)||r<-1||r>1?NaN:1===r?$:-1===r?K:(r<0&&(n=!0,r=-r),r0?(e=1,t=r):(e=-1,t=-r),t>1?NaN:t<1e-4?r:(t>.5?(t=Ln(i=Pr(.5*Pr(1-t))),n=1):(i=Pr(t*t),n=0),i=Pr(Pr(Pr(function(r){return 0===r?.16666752099990845:Pr(.16666752099990845+Pr(r*Pr(.07495300471782684+Pr(r*Pr(.04547002539038658+Pr(r*Pr(.024181311950087547+Pr(.04216320067644119*r))))))))}(i)*i)*t)+t),0!==n&&(i=Pr(i+i),i=Pr(Xe-i)),e<0&&(i=-i),i))}function ct(r){return st(Pr(1/Pr(r)))}var lt=1/(1<<28),ht=1<<28;function pt(r){var n,e,t;return Z(r)||Nr(r)?r:(r<0&&(r=-r,n=!0),t=rht?We(r)+Re:r>2?We(2*r+1/(q(r*r+1)+r)):Be(r+(e=r*r)/(1+q(1+e))),n?-t:t)}function vt(r){return 2*Fn(q(r))}function dt(r){return 2*In(q(r))}function mt(r){return Fn(1/r)}function gt(r){return Xn(Pr(1/Pr(r)))}var yt,wt,bt=2147483648,_t=2147483647;!0===me?(yt=1,wt=0):(yt=0,wt=1);var Et,xt,Tt={HIGH:yt,LOW:wt},Nt=new te(1),jt=new br(Nt.buffer),Vt=Tt.HIGH,Ot=Tt.LOW;function At(r,n,e,t){return Nt[0]=r,n[t]=jt[Vt],n[t+e]=jt[Ot],n}function St(r){return At(r,[0,0],1,0)}Ur(St,"assign",At),!0===me?(Et=1,xt=0):(Et=0,xt=1);var It={HIGH:Et,LOW:xt},kt=new te(1),Ft=new br(kt.buffer),Bt=It.HIGH,Rt=It.LOW;function Lt(r,n){return Ft[Bt]=r,Ft[Rt]=n,kt[0]}var Mt=[0,0];function Pt(r,n){var e,t;return St.assign(r,Mt,1,0),e=Mt[0],e&=_t,t=be(n),Lt(e|=t&=bt,Mt[1])}var Ut=3.141592653589793;function Ct(r,n){var e;return Z(n)||Z(r)?NaN:Nr(n)?n===$?Nr(r)?Pt(Ut/4,r):Pt(0,r):Nr(r)?Pt(3*Ut/4,r):Pt(Ut,r):Nr(r)?Pt(Ut/2,r):0===r?n>=0&&!function(r){return!!(be(r)>>>31)}(n)?Pt(0,r):Pt(Ut,r):0===n?Pt(Ut/2,r):(e=He(r/n),n<0?e<=0?e+Ut:e-Ut:e)}function qt(r){return Fn(1+r)}function Yt(r){return Fn(1-r)}var Dt=[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],Wt=258;function zt(r){return Z(r)||!Ir(r)?NaN:kr(r)?0:r>Wt?r/2&1?$:K:Dt[r/2]}var Gt=2146435072,$t=1048575,Jt=!0===me?0:1,Zt=new te(1),Ht=new br(Zt.buffer);var Kt=1023,Xt=-1023,Qt=-1074;function ri(r){return r===$||r===K}function ni(r){return r!=r}function ei(r){return Math.abs(r)}var ti=4503599627370496;function ii(r,n,e,t){return ni(r)||ri(r)?(n[t]=r,n[t+e]=0,n):0!==r&&ei(r)>>20)-Ne|0}Ur((function(r){return ii(r,[0,0],1,0)}),"assign",ii);var ui=2220446049250313e-31,ai=2148532223,fi=[0,0],si=[0,0];function ci(r,n){var e,t;return 0===n||0===r||Z(r)||Nr(r)?r:(ii(r,fi,1,0),r=fi[0],n+=fi[1],(n+=oi(r))Kt?r<0?K:$:(n<=Xt?(n+=52,t=ui):t=1,St.assign(r,si,1,0),e=si[0],e&=ai,t*Lt(e|=n+Ne<<20,si[1])))}function li(r){return function(r,n){var e,t;for(e=[],t=0;t0;p++)c=di*g|0,wi[p]=g-vi*c|0,g=t[m-1]+c,m-=1;if(g=ci(g,i),g-=8*Y(.125*g),g-=d=0|g,l=0,i>0?(d+=p=wi[e-1]>>24-i,wi[e-1]-=p<<24-i,l=wi[e-1]>>23-i):0===i?l=wi[e-1]>>23:g>=.5&&(l=2),l>0){for(d+=1,s=0,p=0;p0)switch(i){case 1:wi[e-1]&=8388607;break;case 2:wi[e-1]&=4194303}2===l&&(g=1-g,0!==s&&(g-=ci(1,i)))}if(0===g){for(m=0,p=e-1;p>=o;p--)m|=wi[p];if(0===m){for(v=1;0===wi[o-v];v++);for(p=e+1;p<=e+v;p++){for(f[a+p]=hi[u+p],c=0,m=0;m<=a;m++)c+=r[m]*f[a+(p-m)];t[p]=c}return bi(r,n,e+=v,t,i,o,u,a,f)}for(e-=1,i-=24;0===wi[e];)e-=1,i-=24}else(g=ci(g,-i))>=vi?(c=di*g|0,wi[e]=g-vi*c|0,i+=24,wi[e+=1]=c):wi[e]=0|g;for(c=ci(1,i),p=e;p>=0;p--)t[p]=c*wi[p],c*=di;for(p=e;p>=0;p--){for(c=0,v=0;v<=h&&v<=e-p;v++)c+=pi[v]*t[p+v];yi[e-p]=c}for(c=0,p=e;p>=0;p--)c+=yi[p];for(n[0]=0===l?c:-c,c=yi[0]-c,p=1;p<=e;p++)c+=yi[p];return n[1]=0===l?c:-c,7&d}function _i(r,n,e,t){var i,o,u,a,f,s,c;for(4,(o=(e-3)/24|0)<0&&(o=0),a=e-24*(o+1),s=o-(u=t-1),c=u+4,f=0;f<=c;f++)mi[f]=s<0?0:hi[s],s+=1;for(f=0;f<=4;f++){for(i=0,s=0;s<=u;s++)i+=r[s]*mi[u+(f-s)];gi[f]=i}return 4,bi(r,n,4,gi,a,4,o,u,mi)}var Ei=Math.round,xi=.6366197723675814,Ti=1.5707963267341256,Ni=6077100506506192e-26,ji=6077100506303966e-26,Vi=20222662487959506e-37,Oi=20222662487111665e-37,Ai=84784276603689e-45,Si=2047;function Ii(r,n,e){var t,i,o,u,a;return o=r-(t=Ei(r*xi))*Ti,u=t*Ni,a=n>>20|0,e[0]=o-u,a-(be(e[0])>>20&Si)>16&&(u=t*Vi-((i=o)-(o=i-(u=t*ji))-u),e[0]=o-u,a-(be(e[0])>>20&Si)>49&&(u=t*Ai-((i=o)-(o=i-(u=t*Oi))-u),e[0]=o-u)),e[1]=o-e[0]-u,t}var ki=0,Fi=16777216,Bi=1.5707963267341256,Ri=6077100506506192e-26,Li=2*Ri,Mi=3*Ri,Pi=4*Ri,Ui=598523,Ci=1072243195,qi=1073928572,Yi=1074752122,Di=1074977148,Wi=1075183036,zi=1075388923,Gi=1075594811,$i=1094263291,Ji=[0,0,0],Zi=[0,0];function Hi(r,n){var e,t,i,o,u,a,f;if((i=be(r)&_t|0)<=Ci)return n[0]=r,n[1]=0,0;if(i<=Yi)return(i&$t)===Ui?Ii(r,i,n):i<=qi?r>0?(f=r-Bi,n[0]=f-Ri,n[1]=f-n[0]-Ri,1):(f=r+Bi,n[0]=f+Ri,n[1]=f-n[0]+Ri,-1):r>0?(f=r-2*Bi,n[0]=f-Li,n[1]=f-n[0]-Li,2):(f=r+2*Bi,n[0]=f+Li,n[1]=f-n[0]+Li,-2);if(i<=Gi)return i<=Wi?i===Di?Ii(r,i,n):r>0?(f=r-3*Bi,n[0]=f-Mi,n[1]=f-n[0]-Mi,3):(f=r+3*Bi,n[0]=f+Mi,n[1]=f-n[0]+Mi,-3):i===zi?Ii(r,i,n):r>0?(f=r-4*Bi,n[0]=f-Pi,n[1]=f-n[0]-Pi,4):(f=r+4*Bi,n[0]=f+Pi,n[1]=f-n[0]+Pi,-4);if(i<$i)return Ii(r,i,n);if(i>=Gt)return n[0]=NaN,n[1]=NaN,0;for(e=function(r){return Zt[0]=r,Ht[Jt]}(r),f=Lt(i-((t=(i>>20)-1046)<<20|0),e),u=0;u<2;u++)Ji[u]=0|f,f=(f-Ji[u])*Fi;for(Ji[2]=f,o=3;Ji[o-1]===ki;)o-=1;return a=_i(Ji,Zi,t,o),r<0?(n[0]=-Zi[0],n[1]=-Zi[1],-a):(n[0]=Zi[0],n[1]=Zi[1],a)}var Ki=-.16666666666666632,Xi=.00833333333332249,Qi=-.0001984126982985795,ro=27557313707070068e-22,no=-2.5050760253406863e-8,eo=1.58969099521155e-10,to=.0416666666666666,io=-.001388888888887411,oo=2480158728947673e-20,uo=-2.7557314351390663e-7,ao=2.087572321298175e-9,fo=-11359647557788195e-27;function so(r,n,e,t,i){var o,u,a,f,s;return u=Xi+(s=r*r)*(Qi+s*ro)+s*(f=s*s)*(no+s*eo),a=s*r,e[i]=0===n?r+a*(Ki+s*u):r-(s*(.5*n-a*u)-n-a*Ki),u=s*(to+s*(io+s*oo)),u+=f*f*(uo+s*(ao+s*fo)),f=1-(o=.5*s),e[i+t]=f+(1-f-o+(s*u-r*n)),e}var co=1072243195,lo=1044381696,ho=[0,0];function po(r,n,e,t){var i,o,u;if(o=be(r),(o&=_t)<=co)return o=Gt)return n[t]=NaN,n[t+e]=NaN,n;switch(u=Hi(r,ho),so(ho[0],ho[1],n,e,t),3&u){case 1:return i=n[t+e],n[t+e]=-n[t],n[t]=i,n;case 2:return n[t]*=-1,n[t+e]*=-1,n;case 3:return i=-n[t+e],n[t+e]=n[t],n[t]=i,n;default:return n}}function vo(r){return po(r,[0,0],1,0)}Ur(vo,"assign",po);var mo=.5641895835477563,go=2.404825557695773,yo=5.520078110286311,wo=616,bo=-.0014244423042272315,_o=1413,Eo=.0005468602863106496,xo=[0,0];function To(r){var n,e,t,i,o,u;return r<0&&(r=-r),r===$?0:0===r?1:r<=4?(i=function(r){var n,e;return 0===r?-.17291506903064494:((r<0?-r:r)<=1?(n=r*(27282507878.60594+r*(r*(6630299.79048338+r*(r*(103.44222815443189+-.12117036164593528*r)-36629.81465510709))-621407004.2354012))-412986685009.9087,e=2388378799633.229+r*(26328198300.85965+r*(139850973.72263435+r*(456126.9622421994+r*(936.1402239233771+r*(1+0*r)))))):(n=(r=1/r)*(103.44222815443189+r*(r*(6630299.79048338+r*(r*(27282507878.60594+-412986685009.9087*r)-621407004.2354012))-36629.81465510709))-.12117036164593528,e=0+r*(1+r*(936.1402239233771+r*(456126.9622421994+r*(139850973.72263435+r*(26328198300.85965+2388378799633.229*r)))))),n/e)}(o=r*r),(u=(r+go)*(r-wo/256-bo))*i):r<=8?(i=function(r){var n,e;return 0===r?.005119512965174424:((r<0?-r:r)<=1?(n=r*(r*(r*(10341.910641583727+r*(11725.046279757104+r*(4417.670702532509+r*(743.2119668062425+48.5917033559165*r))))-7287.970246446462)-12254.07816137899)-1831.9397969392085,e=r*(245991.0226258631+r*(r*(18680.99000835919+r*(r*(333.07310774649073+r*(1*r-25.258076240801554))-2945.876654550934))-84055.06259116957))-357834.78026152303):(n=48.5917033559165+(r=1/r)*(743.2119668062425+r*(4417.670702532509+r*(11725.046279757104+r*(10341.910641583727+r*(r*(-1831.9397969392085*r-12254.07816137899)-7287.970246446462))))),e=1+r*(r*(333.07310774649073+r*(r*(18680.99000835919+r*(r*(245991.0226258631+-357834.78026152303*r)-84055.06259116957))-2945.876654550934))-25.258076240801554)),n/e)}(o=1-r*r/64),(u=(r+yo)*(r-_o/256-Eo))*i):(n=function(r){var n,e;return 0===r?1:((r<0?-r:r)<=1?(n=22779.090197304686+r*(41345.38663958076+r*(21170.523380864943+r*(3480.648644324927+r*(153.76201909008356+.8896154842421046*r)))),e=22779.090197304686+r*(41370.41249551042+r*(21215.350561880117+r*(3502.8735138235606+r*(157.11159858080893+1*r))))):(n=.8896154842421046+(r=1/r)*(153.76201909008356+r*(3480.648644324927+r*(21170.523380864943+r*(41345.38663958076+22779.090197304686*r)))),e=1+r*(157.11159858080893+r*(3502.8735138235606+r*(21215.350561880117+r*(41370.41249551042+22779.090197304686*r))))),n/e)}(t=(o=8/r)*o),e=function(r){var n,e;return 0===r?-.015625:((r<0?-r:r)<=1?(n=r*(r*(r*(r*(-.008803330304868075*r-1.244102674583564)-22.300261666214197)-111.83429920482737)-185.91953644342993)-89.22660020080009,e=5710.502412851206+r*(11951.131543434614+r*(7264.278016921102+r*(1488.7231232283757+r*(90.59376959499312+1*r))))):(n=(r=1/r)*(r*(r*(r*(-89.22660020080009*r-185.91953644342993)-111.83429920482737)-22.300261666214197)-1.244102674583564)-.008803330304868075,e=1+r*(90.59376959499312+r*(1488.7231232283757+r*(7264.278016921102+r*(11951.131543434614+5710.502412851206*r))))),n/e)}(t),u=mo/q(r),po(r,xo,1,0),u*(n*(xo[1]+xo[0])-o*e*(xo[0]-xo[1])))}var No=1.772453850905516;var jo=3.8317059702075125,Vo=7.015586669815619,Oo=981,Ao=-.0003252797924876844,So=1796,Io=-38330184381246464e-21,ko=[0,0];function Fo(r){var n,e,t,i,o,u,a,f;return f=en(r),0===r||f===$?0:(f<=4?(o=function(r){var n,e;return 0===r?-.03405537391318949:((r<0?-r:r)<=1?(n=r*(6678104126.14924+r*(r*(980629.0409895825+r*(r*(10.650724020080236+-.010767857011487301*r)-4461.579298277507))-115486967.64841276))-142585098013.66644,e=4186860446082.0176+r*(42091902282.58013+r*(202283751.40097034+r*(591176.1449417479+r*(1074.227223951738+r*(1+0*r)))))):(n=(r=1/r)*(10.650724020080236+r*(r*(980629.0409895825+r*(r*(6678104126.14924+-142585098013.66644*r)-115486967.64841276))-4461.579298277507))-.010767857011487301,e=0+r*(1+r*(1074.227223951738+r*(591176.1449417479+r*(202283751.40097034+r*(42091902282.58013+4186860446082.0176*r)))))),n/e)}(u=r*r),n=(a=f*(f+jo)*(f-Oo/256-Ao))*o):f<=8?(o=function(r){var n,e;return 0===r?-.010158790774176108:((r<0?-r:r)<=1?(n=r*(1660853173129901.8+r*(r*(355806656709.1062+r*(r*(5079326.614801118+r*(4.6179191852758255*r-7502.334222078161))-1811393126.9860668))-36658018905416.664))-0x3e45840c066730,e=0x17f1d1995ae4fb00+r*(0x3cda8dbce6f4c4+r*(84899346165481.42+r*(276227772862.44086+r*(648725028.9959639+r*(1126712.5065029138+r*(1388.6978985861358+1*r))))))):(n=4.6179191852758255+(r=1/r)*(r*(5079326.614801118+r*(r*(355806656709.1062+r*(r*(1660853173129901.8+-0x3e45840c066730*r)-36658018905416.664))-1811393126.9860668))-7502.334222078161),e=1+r*(1388.6978985861358+r*(1126712.5065029138+r*(648725028.9959639+r*(276227772862.44086+r*(84899346165481.42+r*(0x3cda8dbce6f4c4+0x17f1d1995ae4fb00*r))))))),n/e)}(u=r*r),n=(a=f*(f+Vo)*(f-So/256-Io))*o):(e=function(r){var n,e;return 0===r?1:((r<0?-r:r)<=1?(n=r*(r*(r*(r*(r*(0*r-1611.6166443246102)-109824.05543459347)-1523529.3511811374)-6603373.248364939)-9942246.505077641)-4435757.816794128,e=r*(r*(r*(r*(r*(1*r-1455.0094401904962)-107263.8599110382)-1511809.5066341609)-6585339.4797230875)-9934124.389934586)-4435757.816794128):(n=0+(r=1/r)*(r*(r*(r*(r*(-4435757.816794128*r-9942246.505077641)-6603373.248364939)-1523529.3511811374)-109824.05543459347)-1611.6166443246102),e=1+r*(r*(r*(r*(r*(-4435757.816794128*r-9934124.389934586)-6585339.4797230875)-1511809.5066341609)-107263.8599110382)-1455.0094401904962)),n/e)}(i=(u=8/f)*u),t=function(r){var n,e;return 0===r?.046875:((r<0?-r:r)<=1?(n=33220.913409857225+r*(85145.1606753357+r*(66178.83658127084+r*(18494.262873223866+r*(1706.375429020768+r*(35.26513384663603+0*r))))),e=708712.8194102874+r*(1819458.0422439973+r*(1419460.669603721+r*(400294.43582266977+r*(37890.2297457722+r*(863.8367769604992+1*r)))))):(n=0+(r=1/r)*(35.26513384663603+r*(1706.375429020768+r*(18494.262873223866+r*(66178.83658127084+r*(85145.1606753357+33220.913409857225*r))))),e=1+r*(863.8367769604992+r*(37890.2297457722+r*(400294.43582266977+r*(1419460.669603721+r*(1819458.0422439973+708712.8194102874*r)))))),n/e)}(i),a=1/(q(f)*No),po(f,ko,1,0),n=a*(e*(ko[0]-ko[1])+u*t*(ko[0]+ko[1]))),r<0&&(n*=-1),n)}var Bo=1/No,Ro=2/Ut,Lo=.8935769662791675,Mo=3.957678419314858,Po=7.086051060301773,Uo=228,Co=.0029519662791675214,qo=1013,Yo=.0006471693148578684,Do=1814,Wo=.00011356030177269763,zo=[0,0];function Go(r){var n,e,t,i,o,u,a;return r<0?NaN:0===r?K:r===$?0:r<=3?(o=r*r,u=We(r/Lo)*To(r)*Ro,i=function(r){var n,e;return 0===r?.18214429522164177:((r<0?-r:r)<=1?(n=107235387820.03177+r*(r*(204222743.5737662+r*(r*(10102.532948020907+-18.402381979244993*r)-2128754.84744018))-8371625545.12605),e=588738657389.9703+r*(8161718777.729036+r*(55662956.624278255+r*(238893.93209447255+r*(664.7598668924019+1*r))))):(n=(r=1/r)*(10102.532948020907+r*(r*(204222743.5737662+r*(107235387820.03177*r-8371625545.12605))-2128754.84744018))-18.402381979244993,e=1+r*(664.7598668924019+r*(238893.93209447255+r*(55662956.624278255+r*(8161718777.729036+588738657389.9703*r))))),n/e)}(o),u+(a=(r+Lo)*(r-Uo/256-Co))*i):r<=5.5?(o=r*r,u=We(r/Mo)*To(r)*Ro,i=function(r){var n,e;return 0===r?-.051200622130023854:((r<0?-r:r)<=1?(n=r*(r*(43600098638.60306+r*(r*(4690528.861167863+r*(17.427031242901595*r-14566.865832663636))-695904393.9461962))-551074352067.2264)-22213976967566.19,e=433861465807072.6+r*(5426682441941.234+r*(34015103849.97124+r*(139602027.7098683+r*(406699.82352539554+r*(830.3085761207029+1*r)))))):(n=17.427031242901595+(r=1/r)*(r*(4690528.861167863+r*(r*(43600098638.60306+r*(-22213976967566.19*r-551074352067.2264))-695904393.9461962))-14566.865832663636),e=1+r*(830.3085761207029+r*(406699.82352539554+r*(139602027.7098683+r*(34015103849.97124+r*(5426682441941.234+433861465807072.6*r)))))),n/e)}(o),u+(a=(r+Mo)*(r-qo/256-Yo))*i):r<=8?(o=r*r,u=We(r/Po)*To(r)*Ro,i=function(r){var n,e;return 0===r?-.023356489432789604:((r<0?-r:r)<=1?(n=r*(670166418691732.4+r*(r*(r*(2195882717.0518103+r*(r*(21363.5341693139+-17.439661319197498*r)-10085539.923498211))-193630512667.72083)-128299123640.88687))-8072872690515021,e=0x4cbf33e862b0ac0+r*(0xdf3ce698dfcbf+r*(22598377924042.9+r*(86926121104.20982+r*(247272194.75672302+r*(539247.3920976806+r*(879.0336216812844+1*r))))))):(n=(r=1/r)*(21363.5341693139+r*(r*(2195882717.0518103+r*(r*(r*(670166418691732.4+-8072872690515021*r)-128299123640.88687)-193630512667.72083))-10085539.923498211))-17.439661319197498,e=1+r*(879.0336216812844+r*(539247.3920976806+r*(247272194.75672302+r*(86926121104.20982+r*(22598377924042.9+r*(0xdf3ce698dfcbf+0x4cbf33e862b0ac0*r))))))),n/e)}(o),u+(a=(r+Po)*(r-Do/256-Wo))*i):(n=function(r){var n,e;return 0===r?1:((r<0?-r:r)<=1?(n=22779.090197304686+r*(41345.38663958076+r*(21170.523380864943+r*(3480.648644324927+r*(153.76201909008356+.8896154842421046*r)))),e=22779.090197304686+r*(41370.41249551042+r*(21215.350561880117+r*(3502.8735138235606+r*(157.11159858080893+1*r))))):(n=.8896154842421046+(r=1/r)*(153.76201909008356+r*(3480.648644324927+r*(21170.523380864943+r*(41345.38663958076+22779.090197304686*r)))),e=1+r*(157.11159858080893+r*(3502.8735138235606+r*(21215.350561880117+r*(41370.41249551042+22779.090197304686*r))))),n/e)}(t=(o=8/r)*o),e=function(r){var n,e;return 0===r?-.015625:((r<0?-r:r)<=1?(n=r*(r*(r*(r*(-.008803330304868075*r-1.244102674583564)-22.300261666214197)-111.83429920482737)-185.91953644342993)-89.22660020080009,e=5710.502412851206+r*(11951.131543434614+r*(7264.278016921102+r*(1488.7231232283757+r*(90.59376959499312+1*r))))):(n=(r=1/r)*(r*(r*(r*(-89.22660020080009*r-185.91953644342993)-111.83429920482737)-22.300261666214197)-1.244102674583564)-.008803330304868075,e=1+r*(90.59376959499312+r*(1488.7231232283757+r*(7264.278016921102+r*(11951.131543434614+5710.502412851206*r))))),n/e)}(t),a=Bo/q(r),po(r,zo,1,0),a*(n*(zo[0]-zo[1])+o*e*(zo[1]+zo[0])))}var $o=1/No,Jo=2/Ut,Zo=2.197141326031017,Ho=5.429681040794135,Ko=562,Xo=.001828826031017035,Qo=1390,ru=-6459205864867228e-21,nu=[0,0];function eu(r){var n,e,t,i,o,u,a;return r<0?NaN:0===r?K:r===$?0:r<=4?(o=r*r,u=We(r/Zo)*Fo(r)*Jo,i=function(r){var n,e;return 0===r?.13187550549740895:((r<0?-r:r)<=1?(n=40535726612579.55+r*(5470861171652.543+r*(r*(7214454821.450256+r*(r*(221579.5322228026+-317.1442466004613*r)-59157479.9974084))-375959744978.196)),e=307378739210792.9+r*(4127228620040.646+r*(27800352738.690586+r*(122504351.22182964+r*(381364.70753052575+r*(820.7990816839387+1*r)))))):(n=(r=1/r)*(221579.5322228026+r*(r*(7214454821.450256+r*(r*(5470861171652.543+40535726612579.55*r)-375959744978.196))-59157479.9974084))-317.1442466004613,e=1+r*(820.7990816839387+r*(381364.70753052575+r*(122504351.22182964+r*(27800352738.690586+r*(4127228620040.646+307378739210792.9*r)))))),n/e)}(o),u+(a=(r+Zo)*(r-Ko/256-Xo)/r)*i):r<=8?(o=r*r,u=We(r/Ho)*Fo(r)*Jo,i=function(r){var n,e;return 0===r?.021593919914419626:((r<0?-r:r)<=1?(n=0x9fcaed579ed86000+r*(r*(r*(4068627528980474.5+r*(r*(374536739624.3849+r*(r*(1915380.6858264203+-1233.7180442012952*r)-1195796191.2070618))-59530713129741.984))-0x53fb01dd8596c0)-0x4ed64a1a7552bc00),e=5332184431331618e5+r*(0x4f0f2b7ff905d800+r*(0x6d8e405cd717f0+r*(111870100658569.7+r*(302217668529.60406+r*(635503180.8708892+r*(1045374.8201934079+r*(1285.516484932161+1*r)))))))):(n=(r=1/r)*(1915380.6858264203+r*(r*(374536739624.3849+r*(r*(4068627528980474.5+r*(r*(0x9fcaed579ed86000*r-0x4ed64a1a7552bc00)-0x53fb01dd8596c0))-59530713129741.984))-1195796191.2070618))-1233.7180442012952,e=1+r*(1285.516484932161+r*(1045374.8201934079+r*(635503180.8708892+r*(302217668529.60406+r*(111870100658569.7+r*(0x6d8e405cd717f0+r*(0x4f0f2b7ff905d800+5332184431331618e5*r)))))))),n/e)}(o),u+(a=(r+Ho)*(r-Qo/256-ru)/r)*i):(n=function(r){var n,e;return 0===r?1:((r<0?-r:r)<=1?(n=r*(r*(r*(r*(r*(0*r-1611.6166443246102)-109824.05543459347)-1523529.3511811374)-6603373.248364939)-9942246.505077641)-4435757.816794128,e=r*(r*(r*(r*(r*(1*r-1455.0094401904962)-107263.8599110382)-1511809.5066341609)-6585339.4797230875)-9934124.389934586)-4435757.816794128):(n=0+(r=1/r)*(r*(r*(r*(r*(-4435757.816794128*r-9942246.505077641)-6603373.248364939)-1523529.3511811374)-109824.05543459347)-1611.6166443246102),e=1+r*(r*(r*(r*(r*(-4435757.816794128*r-9934124.389934586)-6585339.4797230875)-1511809.5066341609)-107263.8599110382)-1455.0094401904962)),n/e)}(t=(o=8/r)*o),e=function(r){var n,e;return 0===r?.046875:((r<0?-r:r)<=1?(n=33220.913409857225+r*(85145.1606753357+r*(66178.83658127084+r*(18494.262873223866+r*(1706.375429020768+r*(35.26513384663603+0*r))))),e=708712.8194102874+r*(1819458.0422439973+r*(1419460.669603721+r*(400294.43582266977+r*(37890.2297457722+r*(863.8367769604992+1*r)))))):(n=0+(r=1/r)*(35.26513384663603+r*(1706.375429020768+r*(18494.262873223866+r*(66178.83658127084+r*(85145.1606753357+33220.913409857225*r))))),e=1+r*(863.8367769604992+r*(37890.2297457722+r*(400294.43582266977+r*(1419460.669603721+r*(1819458.0422439973+708712.8194102874*r)))))),n/e)}(t),a=$o/q(r),po(r,nu,1,0),a*(o*e*(nu[0]-nu[1])-n*(nu[0]+nu[1])))}var tu=Math.ceil;function iu(r){return r<0?tu(r):Y(r)}var ou=.6931471803691238,uu=1.9082149292705877e-10,au=1.4426950408889634,fu=709.782712893384,su=-745.1332191019411,cu=1/(1<<28),lu=-cu;function hu(r){var n;return Z(r)||r===$?r:r===K?0:r>fu?$:rlu&&r>>0,vu[0]}function gu(r){return 0|r}var yu=1072693247,wu=1e300,bu=1e-300;var _u=1048575,Eu=1048576,xu=1072693248,Tu=536870912,Nu=524288,ju=20,Vu=9007199254740992,Ou=.9617966939259756,Au=.9617967009544373,Su=-7.028461650952758e-9,Iu=[1,1.5],ku=[0,.5849624872207642],Fu=[0,1.350039202129749e-8];var Bu=1.4426950408889634,Ru=1.4426950216293335,Lu=1.9259629911266175e-8;var Mu=1048576,Pu=1071644672,Uu=20,Cu=.6931471824645996,qu=-1.904654299957768e-9;var Yu=1072693247,Du=1105199104,Wu=1139802112,zu=1083179008,Gu=1072693248,$u=1083231232,Ju=3230714880,Zu=31,Hu=1e300,Ku=1e-300,Xu=8008566259537294e-32,Qu=[0,0],ra=[0,0];function na(r,n){var e,t,i,o,u,a,f,s,c,l,h,p,v,d;if(Z(r)||Z(n))return NaN;if(St.assign(n,Qu,1,0),u=Qu[0],0===Qu[1]){if(0===n)return 1;if(1===n)return r;if(-1===n)return 1/r;if(.5===n)return q(r);if(-.5===n)return 1/q(r);if(2===n)return r*r;if(3===n)return r*r*r;if(4===n)return(r*=r)*r;if(Nr(n))return function(r,n){return-1===r?(r-r)/(r-r):1===r?1:en(r)<1==(n===$)?0:$}(r,n)}if(St.assign(r,Qu,1,0),o=Qu[0],0===Qu[1]){if(0===o)return function(r,n){return n===K?$:n===$?0:n>0?kr(n)?r:0:kr(n)?Pt($,r):$}(r,n);if(1===r)return 1;if(-1===r&&kr(n))return-1;if(Nr(r))return r===K?na(-0,-n):n<0?0:$}if(r<0&&!1===G(n))return(r-r)/(r-r);if(i=en(r),e=o&_t|0,t=u&_t|0,f=u>>>Zu|0,a=(a=o>>>Zu|0)&&kr(n)?-1:1,t>Du){if(t>Wu)return function(r,n){return(be(r)&_t)<=yu?n<0?wu*wu:bu*bu:n>0?wu*wu:bu*bu}(r,n);if(eGu)return 0===f?a*Hu*Hu:a*Ku*Ku;h=function(r,n){var e,t,i,o,u,a,f;return o=(i=n-1)*i*(0===(f=i)?.5:.5+f*(.25*f-.3333333333333333)),e=(a=i*Lu-o*Bu)-((t=mu(t=(u=Ru*i)+a,0))-u),r[0]=t,r[1]=e,r}(ra,i)}else h=function(r,n,e){var t,i,o,u,a,f,s,c,l,h,p,v,d,m,g,y,w,b,_,E,x;return b=0,e>ju)-Ne|0,e=(_=e&_u|0)|xu|0,_<=235662?E=0:_<767610?E=1:(E=0,b+=1,e-=Eu),u=mu(i=(y=(n=Te(n,e))-(s=Iu[E]))*(w=1/(n+s)),0),t=(e>>1|Tu)+Nu,f=Te(0,t+=E<<18),g=(o=i*i)*o*(0===(x=o)?.5999999999999946:.5999999999999946+x*(.4285714285785502+x*(.33333332981837743+x*(.272728123808534+x*(.23066074577556175+.20697501780033842*x))))),f=mu(f=3+(o=u*u)+(g+=(a=w*(y-u*f-u*(n-(f-s))))*(u+i)),0),l=mu(l=(y=u*f)+(w=a*f+(g-(f-3-o))*i),0),h=Au*l,d=(p=Su*l+(w-(l-y))*Ou+Fu[E])-((v=mu(v=h+p+(c=ku[E])+(m=b),0))-m-c-h),r[0]=v,r[1]=d,r}(ra,i,e);if(p=(l=(n-(s=mu(n,0)))*h[0]+n*h[1])+(c=s*h[0]),St.assign(p,Qu,1,0),v=gu(Qu[0]),d=gu(Qu[1]),v>=zu){if(0!=(v-zu|d))return a*Hu*Hu;if(l+Xu>p-c)return a*Hu*Hu}else if((v&_t)>=$u){if(0!=(v-Ju|d))return a*Ku*Ku;if(l<=p-c)return a*Ku*Ku}return p=function(r,n,e){var t,i,o,u,a,f,s,c,l,h;return l=((c=r&_t|0)>>Uu)-Ne|0,s=0,c>Pu&&(i=Te(0,((s=r+(Mu>>l+1)>>>0)&~($t>>(l=((s&_t)>>Uu)-Ne|0)))>>>0),s=(s&$t|Mu)>>Uu-l>>>0,r<0&&(s=-s),n-=i),r=gu(r=be(f=1-((f=(o=(i=mu(i=e+n,0))*Cu)+(u=(e-(i-n))*Re+i*qu))*(t=f-(i=f*f)*(0===(h=i)?.16666666666666602:.16666666666666602+h*(h*(6613756321437934e-20+h*(4.1381367970572385e-8*h-16533902205465252e-22))-.0027777777777015593)))/(t-2)-((a=u-(f-o))+f*a)-f))),(r+=s<>>0)>>Uu<=0?ci(f,s):Te(f,r)}(v,c,l),a*p}var ea=2.718281828459045;function ta(r){var n,e;return 0===r?1/0:((r<0?-r:r)<=1?(n=709811.662581658+r*(679979.8474157227+r*(293136.7857211597+r*(74887.54032914672+r*(12555.290582413863+r*(1443.4299244417066+r*(115.24194596137347+r*(6.309239205732627+r*(.22668404630224365+r*(.004826466289237662+4624429436045379e-20*r))))))))),e=0+r*(362880+r*(1026576+r*(1172700+r*(723680+r*(269325+r*(63273+r*(9450+r*(870+r*(45+1*r)))))))))):(n=4624429436045379e-20+(r=1/r)*(.004826466289237662+r*(.22668404630224365+r*(6.309239205732627+r*(115.24194596137347+r*(1443.4299244417066+r*(12555.290582413863+r*(74887.54032914672+r*(293136.7857211597+r*(679979.8474157227+709811.662581658*r))))))))),e=1+r*(45+r*(870+r*(9450+r*(63273+r*(269325+r*(723680+r*(1172700+r*(1026576+r*(362880+0*r)))))))))),n/e)}var ia=10.900511;function oa(r,n){var e,t,i,o,u,a,f;return Z(r)||Z(n)||r<0||n<0?NaN:1===n?1/r:1===r?1/n:(f=r+n)100?u*=hu(e*Be(-n/o)):u*=na(t/o,e),u*=na(o>1e10?t/o*(i/o):t*i/(o*o),n),u*=q(ea/i))}var ua=.34657359027997264;var aa=709.782712893384,fa=.6931471803691238,sa=1.9082149292705877e-10,ca=1.4426950408889634,la=38.816242111356935,ha=1.0397207708399179;function pa(r){var n,e,t,i,o,u,a,f,s,c,l,h,p;if(r===$||Z(r))return r;if(r===K)return-1;if(0===r)return r;if(r<0?(t=!0,f=-r):(t=!1,f=r),f>=la){if(t)return-1;if(f>=aa)return $}if(u=0|be(f),f>ua)f56?(f=1-(h-r),1024===p?f=Te(f,i=be(f)+(p<<20)|0):f*=e,f-1):(l=1,p<20?f=(l=Te(l,i=1072693248-(2097152>>p)|0))-(h-r):(f=r-(h+(l=Te(l,i=Ne-p<<20|0))),f+=1),f*=e))}function va(r,n){return Z(r)||Z(n)?NaN:r===K||n===K?K:r===n&&0===r?Ar(r)?r:n:r=Gt)return NaN;switch(3&Hi(r,Na)){case 0:return Ea(Na[0],Na[1]);case 1:return da(Na[0],Na[1]);case 2:return-Ea(Na[0],Na[1]);default:return-da(Na[0],Na[1])}}var Va=2.5066282746310007;var Oa=143.01608;function Aa(r){var n,e,t;return n=1+(n=1/r)*function(r){return 0===r?.08333333333334822:.08333333333334822+r*(.0034722222160545866+r*(r*(.0007873113957930937*r-.00022954996161337813)-.0026813261780578124))}(n),e=hu(r),e=r>Oa?(t=na(r,.5*r-.25))*(t/e):na(r,r-.5)/e,Va*e*n}var Sa=.5772156649015329;function Ia(r,n){return n/((1+Sa*r)*r)}function ka(r){var n,e,t,i;if(G(r)&&r<0||r===K||Z(r))return NaN;if(0===r)return Ar(r)?K:$;if(r>171.61447887182297)return $;if(r<-170.5674972726612)return 0;if((e=en(r))>33)return r>=0?Aa(r):(n=0==(1&(t=Y(e)))?-1:1,(i=e-t)>.5&&(i=e-(t+=1)),i=e*ja(Ut*i),n*Ut/(en(i)*Aa(e)));for(i=1;r>=3;)i*=r-=1;for(;r<0;){if(r>-1e-9)return Ia(r,i);i/=r,r+=1}for(;r<2;){if(r<1e-9)return Ia(r,i);i/=r,r+=1}return 2===r?i:i*function(r){var n,e;return 0===r?1:((r<0?-r:r)<=1?(n=1+r*(.4942148268014971+r*(.20744822764843598+r*(.04763678004571372+r*(.010421379756176158+r*(.0011913514700658638+r*(.00016011952247675185+0*r)))))),e=1+r*(.0714304917030273+r*(r*(.035823639860549865+r*(.011813978522206043+r*(r*(.0005396055804933034+-23158187332412014e-21*r)-.004456419138517973)))-.23459179571824335))):(n=0+(r=1/r)*(.00016011952247675185+r*(.0011913514700658638+r*(.010421379756176158+r*(.04763678004571372+r*(.20744822764843598+r*(.4942148268014971+1*r)))))),e=r*(.0005396055804933034+r*(r*(.011813978522206043+r*(.035823639860549865+r*(r*(.0714304917030273+1*r)-.23459179571824335)))-.004456419138517973))-23158187332412014e-21),n/e)}(r-=2)}var Fa=170,Ba=[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 Ra(r){return Z(r)?NaN:G(r)?r<0?NaN:r<=Fa?Ba[r]:$:ka(r+1)}function La(r){var n,e;return 0===r?1/0:((r<0?-r:r)<=1?(n=38474670393.31777+r*(36857665043.51951+r*(15889202453.72942+r*(4059208354.298835+r*(680547661.1834733+r*(78239755.00312005+r*(6246580.776401795+r*(341986.3488721347+r*(12287.194511824551+r*(261.61404416416684+2.5066282746310007*r))))))))),e=0+r*(362880+r*(1026576+r*(1172700+r*(723680+r*(269325+r*(63273+r*(9450+r*(870+r*(45+1*r)))))))))):(n=2.5066282746310007+(r=1/r)*(261.61404416416684+r*(12287.194511824551+r*(341986.3488721347+r*(6246580.776401795+r*(78239755.00312005+r*(680547661.1834733+r*(4059208354.298835+r*(15889202453.72942+r*(36857665043.51951+38474670393.31777*r))))))))),e=1+r*(45+r*(870+r*(9450+r*(63273+r*(269325+r*(723680+r*(1172700+r*(1026576+r*(362880+0*r)))))))))),n/e)}var Ma=10.900511,Pa=4269068009004705e289;function Ua(r,n){var e,t,i;return r=Fa?(t=Ua(n,Fa-n),t*=r,1/(t*=Pa)):1/(r*ka(r+n)):(i=r+Ma-.5,r+n===r?e=en(n/i)=Gt)return NaN;switch(3&Hi(r,qa)){case 0:return da(qa[0],qa[1]);case 1:return-Ea(qa[0],qa[1]);case 2:return-da(qa[0],qa[1]);default:return Ea(qa[0],qa[1])}}function za(r){var n,e;return Z(r)||Nr(r)?NaN:0===(n=en(e=r%2))||1===n?Pt(0,e):n<.25?ja(Ut*e):n<.75?Pt(Wa(Ut*(n=.5-n)),e):n<1.25?(e=Pt(1,e)-e,ja(Ut*e)):n<1.75?-Pt(Wa(Ut*(n-=1.5)),e):(e-=Pt(2,e),ja(Ut*e))}var Ga=.07721566490153287,$a=.3224670334241136,Ja=1,Za=-.07721566490153287,Ha=.48383612272381005,Ka=-.1475877229945939,Xa=.06462494023913339,Qa=-.07721566490153287,rf=1,nf=.4189385332046727,ef=1.4616321449683622,tf=4503599627370496,of=72057594037927940,uf=13877787807814457e-33,af=1.4616321449683622,ff=-.12148629053584961,sf=-3638676997039505e-33;function cf(r){var n,e,t,i,o,u,a,f,s,c,l,h,p;if(Z(r)||Nr(r))return r;if(0===r)return $;if(r<0?(n=!0,r=-r):n=!1,r=tf)return $;if(0===(s=za(r)))return $;e=We(Ut/en(s*r))}if(1===r||2===r)return 0;if(r<2)switch(r<=.9?(p=-We(r),r>=ef-1+.27?(l=1-r,t=0):r>=ef-1-.27?(l=r-(af-1),t=1):(l=r,t=2)):(p=0,r>=ef+.27?(l=2-r,t=0):r>=ef-.27?(l=r-af,t=1):(l=r-1,t=2)),t){case 0:u=Ga+(h=l*l)*function(r){return 0===r?.06735230105312927:.06735230105312927+r*(.007385550860814029+r*(.0011927076318336207+r*(.00022086279071390839+25214456545125733e-21*r)))}(h),o=h*($a+h*function(r){return 0===r?.020580808432516733:.020580808432516733+r*(.0028905138367341563+r*(.0005100697921535113+r*(.00010801156724758394+44864094961891516e-21*r)))}(h)),p+=(a=l*u+o)-.5*l;break;case 1:u=Ha+(c=(h=l*l)*l)*function(r){return 0===r?-.032788541075985965:r*(.006100538702462913+r*(.00031563207090362595*r-.0014034646998923284))-.032788541075985965}(c),o=Ka+c*function(r){return 0===r?.01797067508118204:.01797067508118204+r*(r*(.000881081882437654+-.00031275416837512086*r)-.0036845201678113826)}(c),i=Xa+c*function(r){return 0===r?-.010314224129834144:r*(.0022596478090061247+r*(.0003355291926355191*r-.0005385953053567405))-.010314224129834144}(c),p+=ff+(a=h*u-(sf-c*(o+l*i)));break;case 2:u=l*(Qa+l*function(r){return 0===r?.6328270640250934:.6328270640250934+r*(1.4549225013723477+r*(.9777175279633727+r*(.22896372806469245+.013381091853678766*r)))}(l)),o=rf+l*function(r){return 0===r?2.4559779371304113:2.4559779371304113+r*(2.128489763798934+r*(.7692851504566728+r*(.10422264559336913+.003217092422824239*r)))}(l),p+=-.5*l+u/o}else if(r<8)switch(a=(l=r-(t=iu(r)))*(Za+l*function(r){return 0===r?.21498241596060885:.21498241596060885+r*(.325778796408931+r*(.14635047265246445+r*(.02664227030336386+r*(.0018402845140733772+3194753265841009e-20*r))))}(l)),f=Ja+l*function(r){return 0===r?1.3920053346762105:1.3920053346762105+r*(.7219355475671381+r*(.17193386563280308+r*(.01864591917156529+r*(.0007779424963818936+7326684307446256e-21*r))))}(l),p=.5*l+a/f,h=1,t){case 7:h*=l+6;case 6:h*=l+5;case 5:h*=l+4;case 4:h*=l+3;case 3:p+=We(h*=l+2)}else r=1?eNf?na(n,r)*hu(-n):r>=1?na(n/hu(n/r),r):hu(e-n):e>Nf?na(n,r)*hu(-n):n/r=0;)e=e*n+r[t],t-=1;return e}var Of=Function;function Af(r){var n,e,t,i;if(r.length>500)return function(n){return Vf(r,n)};if(n="return function evalpoly(x){",0===(e=r.length))n+="return 0.0;";else if(1===e)n+="return "+r[0]+";";else{for(n+="if(x===0.0){return "+r[0]+";}",n+="return "+r[0],t=e-1,i=1;i1&&(u=n),e=u.tolerance||an,i=u.maxTerms||1e6,o=u.initialValue||0,!0==("function"==typeof r.next)){for(t of r)if(en(e*(o+=t))>=en(t)||0==--i)break}else do{o+=t=r()}while(en(e*o)1&&(u=n),e=u.tolerance||an,i=u.maxTerms||1e6,o=u.initialValue||0;do{o+=t=r()}while(en(e*o).95?We(1+r)-r:e150?e=hu(e=r*(Be(f)-f)+n*(.5-Ma)/i):va(o=r*We(n/i),u=r-n)<=Nf||tn(o,u)>=hf?(t=u/r,va(o,u)/2>Nf&&tn(o,u)/2Nf&&tn(o,u)/4r?(e=(a=na(n/i,r/4)*hu(u/4))*a,e*=e):e=t>Nf&&t0){if((en(n*(r-1))<.5||en(n)<.2)&&(t=We(r)*n)<.5)return pa(t)}else if(iu(n)!==n)return NaN;return Nr(e=na(r,n)-1)||Z(e)?NaN:e}var qf=.15896368026733398,Yf=.5281534194946289,Df=.45201730728149414;function Wf(r,n,e){var t,i,o,u,a,f,s;if(r2){if(r>=3){do{e-=1,i+=We(r-=1)}while(r>=3);e=r-2}return u=0===(a=e)?-.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+=(o=e*(r+1))*qf+o*u}return r<1&&(i+=-We(r),e=n,n=r,r+=1),r<=1.5?(o=function(r){var n,e;return 0===r?.04906224540690395:((r<0?-r:r)<=1?(n=.04906224540690395+r*(r*(r*(r*(r*(-.0010034668769627955*r-.024014982064857155)-.1584135863906922)-.4065671242119384)-.4149833583594954)-.09691175301595212),e=1+r*(3.0234982984646304+r*(3.4873958536072385+r*(1.9141558827442668+r*(.5071377386143635+r*(.05770397226904519+.001957681026011072*r)))))):(n=(r=1/r)*(r*(r*(r*(r*(.04906224540690395*r-.09691175301595212)-.4149833583594954)-.4065671242119384)-.1584135863906922)-.024014982064857155)-.0010034668769627955,e=.001957681026011072+r*(.05770397226904519+r*(.5071377386143635+r*(1.9141558827442668+r*(3.4873958536072385+r*(3.0234982984646304+1*r)))))),n/e)}(n),i+=(t=n*e)*Yf+t*o):(o=e*n,u=function(r){var n,e;return 0===r?-.029232972183027003:((r<0?-r:r)<=1?(n=r*(.14421626775719232+r*(r*(.05428096940550536+r*(r*(.0004311713426792973+0*r)-.008505359768683364))-.14244039073863127))-.029232972183027003,e=1+r*(r*(.846973248876495+r*(r*(.02558279715597587+r*(-8.271935218912905e-7*r-.0010066679553914337))-.22009515181499575))-1.5016935605448505)):(n=0+(r=1/r)*(.0004311713426792973+r*(r*(.05428096940550536+r*(r*(.14421626775719232+-.029232972183027003*r)-.14244039073863127))-.008505359768683364)),e=r*(r*(.02558279715597587+r*(r*(.846973248876495+r*(1*r-1.5016935605448505))-.22009515181499575))-.0010066679553914337)-8.271935218912905e-7),n/e)}(-e),i+=o*Df+o*u)}function zf(r){return Z(r)?NaN:r<0?r<-.5?ka(1+r)-1:pa(-Be(r)+Wf(r+2,r+1,r)):r<2?pa(Wf(r+1,r,r-1)):ka(1+r)-1}var Gf=11754943508222875e-54;var $f;$f=If()?function(r,n){var e,t,i;return t={},arguments.length>1&&(t=n),e=t.maxIter||1e6,i=t.tolerance||an,t.keep?function(r,n,e){var t,i,o,u,a,f;if(0===(o=(f=(t="function"==typeof r.next)?r.next().value:r())[1])&&(o=Gf),u=o,a=0,!0===t)do{(f=r.next().value)&&(0===(a=f[1]+f[0]*a)&&(a=Gf),0===(u=f[1]+f[0]/u)&&(u=Gf),o*=i=u*(a=1/a))}while(f&&en(i-1)>n&&--e);else do{(f=r())&&(0===(a=f[1]+f[0]*a)&&(a=Gf),0===(u=f[1]+f[0]/u)&&(u=Gf),o*=i=u*(a=1/a))}while(f&&en(i-1)>n&&--e);return o}(r,i,e):function(r,n,e){var t,i,o,u,a,f,s;if(u=(s=(t="function"==typeof r.next)?r.next().value:r())[1],o=s[0],0===u&&(u=Gf),a=u,f=0,!0===t)do{(s=r.next().value)&&(0===(f=s[1]+s[0]*f)&&(f=Gf),0===(a=s[1]+s[0]/a)&&(a=Gf),u*=i=a*(f=1/f))}while(en(i-1)>n&&--e);else do{(s=r())&&(0===(f=s[1]+s[0]*f)&&(f=Gf),0===(a=s[1]+s[0]/a)&&(a=Gf),u*=i=a*(f=1/f))}while(s&&en(i-1)>n&&--e);return o/u}(r,i,e)}:function(r,n){var e,t,i;return t={},arguments.length>1&&(t=n),i=t.tolerance||an,e=t.maxIter||1e6,t.keep?function(r,n,e){var t,i,o,u,a;0===(u=(a=r())[1])&&(u=Gf),i=u,o=0;do{(a=r())&&(0===(o=a[1]+a[0]*o)&&(o=Gf),0===(i=a[1]+a[0]/i)&&(i=Gf),u*=t=i*(o=1/o))}while(a&&en(t-1)>n&&--e);return u}(r,i,e):function(r,n,e){var t,i,o,u,a,f;a=(f=r())[1],i=f[0],0===a&&(a=Gf),o=a,u=0;do{(f=r())&&(0===(u=f[1]+f[0]*u)&&(u=Gf),0===(o=f[1]+f[0]/o)&&(o=Gf),a*=t=o*(u=1/u))}while(f&&en(t-1)>n&&--e);return i/a}(r,i,e)};var Jf=$f;function Zf(r,n){var e=function(r,n){var e=n-r+1,t=r,i=0;return function(){return[(i+=1)*(t-i),e+=2]}}(r,n);return 1/(n-r+1+Jf(e))}var Hf=170;function Kf(r,n,e,t){var i,o,u,a,f,s,c,l,h,p,v,d,m;if(r<0||n<=0)return NaN;if(o=void 0===e||e,c=t,l=0,n>=Hf&&!o)return c&&4*n4*r?(l=n*We(r)-r,l+=We(Mf(n,r,a=0)/n)):0===(l=Kf(n,r,!0,c))?c?(l=We(l=1+1/(12*n)+1/(288*n*n))-n+(n-.5)*We(n),l+=We(Va)):(l=n*We(r)-r,l+=We(Mf(n,r,a=0)/n)):l=We(l)+cf(n),l>hf?$:hu(l);switch(n<30&&n<=r+1&&r.6?(c=!c,u=0):f&&r>.2?(c=!c,u=1):r1?u=6:r<.5?u=-.4/We(r)20&&(p=en((r-n)/n),n>200?20/n>p*p&&(s=!0):p<.4&&(s=!0)),s?u=5:r-1/(3*r)1){for(e=hu(-n)/q(Ut*n),e*=n,t=e/=.5,o=2;o=1||on*l>a?(a/=l,o||n<1||on/n>a?(a*=-n,i=!0):a=0):a=0)),l*=Mf(n,r,a)/n,i&&(c=!1,l=-l);break;case 3:v=function(r,n,e){var t,i,o,u;return i=((t=zf(r))+1)/r,t-=o=Cf(n,r),t/=r,u=function(r,n){var e,t,i,o;return e=-n,n=-n,t=r+1,i=1,function(){return o=e/t,e*=n,e/=i+=1,t+=1,o}}(r,n),t=-(o+=1)*Ff(u,{initialValue:((e?i:0)-t)/o}),e&&(t=-t),[t,i]}(n,r,c=!c),l=v[0],m=v[1],c=!1,o&&(l/=m);break;case 4:0!==(l=o?Uf(n,r):jf(n,r))&&(l*=Zf(n,r));break;case 5:l=function(r,n){var e,t,i,o;return i=r*(t=-Bf((n-r)/r)),o=q(2*t),n=n&&(c=!c);break;case 6:l=o?na(r,n)/ka(n+1):na(r,n)/n,l*=1-n*r/(n+1)}return o&&l>1&&(l=1),c&&(l=(o?1:ka(n))-l),l}var Xf=new Array(30);function Qf(r,n,e,t,i,o,u){var a,f,s,c,l,h,p,v,d,m,g,y,w,b,_,E,x,T;if(y=function(r,n){var e,t,i,o,u,a,f;return f=(n-r-Ma+.5)/(i=r+Ma-.5),r<1?n<=Nf?hu(r*We(n)-n-cf(r)):na(n,r)*hu(-n)/ka(r):(en(f*f*r)<=100&&r>150?e=hu(e=r*(Be(f)-f)+n*(.5-Ma)/i):va(o=r*We(n/i),u=r-n)<=Nf||tn(o,u)>=hf?(t=u/r,va(o,u)/2>Nf&&tn(o,u)/2Nf&&tn(o,u)/4r?(e=(a=na(n/i,r/4)*hu(u/4))*a,e*=e):e=t>Nf&&t=1?eNf?na(n,r)*hu(-n):r>=1?na(n/hu(n/r),r):hu(e-n):e>Nf?na(n,r)*hu(-n):n/r1){if(en(E)0||va(r,n)<1)en(l)<.1?o*=hu(r*Be(l)):o*=na(e*c/f,r),en(h)<.1?o*=hu(n*Be(h)):o*=na(t*c/s,n);else if(ns(l,h)<.5)a=n/r,(u=r.1?(p=pa(a*Be(h)),o*=hu(p=r*Be(p=l+p+p*l))):(p=pa(Be(l)/a),o*=hu(p=n*Be(p=h+p+p*h)));else if(en(l)=hf){if((y+=We(o))>=hf)return NaN;o=hu(y)}else o*=hu(y);else if((y=n*Be(h)+r*We(e*c/f))<=Nf||y>=hf){if((y+=We(o))>=hf)return NaN;o=hu(y)}else o*=hu(y);else if(m=t*c/s,l=r*We(d=e*c/f),h=n*We(m),l>=hf||l<=Nf||h>=hf||h<=Nf)if(rNf)o*=na(v*d,r);else{if((h+=l+We(o))>=hf)return NaN;o=hu(h)}else if((p=(We(v=na(d,r/n))+We(m))*n)Nf)o*=na(v*m,n);else{if((h+=l+We(o))>=hf)return NaN;o=hu(h)}else o*=na(d,r)*na(m,n);return o}var is={keep:!0,maxIter:1e3};function os(r,n,e,t,i,o){var u,a;return u=ts(r,n,e,t,i),o&&(o[1]=u),0===u?u:(a=function(r,n,e,t){var i=0;return function(){var o,u,a;return u=(r+i-1)*(r+n+i-1)*i*(n-i)*e*e,o=r+2*i-1,a=i,a+=i*(n-i)*e/(r+2*i-1),a+=(r+i)*(r*t-n*e+1+i*(2-e))/(r+2*i+1),i+=1,[u/=o*o,a]}}(r,n,e,t),u/Jf(a,is))}function us(r,n){var e,t,i,o,u,a,f;if(Z(r)||Z(n))return NaN;if(!G(r)||!G(n))return NaN;if(n<0)return 0;if(t=1,r<0&&(r=-r+n-1,kr(n)&&(t*=-1)),n>r)return 0;if(0===n||n===r)return t;if(1===n||n===r-1)return t*r;for(r-nf);u++)e*=r,e/=u,r-=1;return u>n?t*e:(i=us(r,n-u+1))===$?t*i:(o=us(n,n-u+1),t*(e/=o/=a=Q(i,o))*(i/=a))}function as(r,n,e,t,i,o,u){var a,f,s,c;if(a=ts(r,n,e,t,o),u&&(u[1]=a),0===(a/=r))return a;for(s=1,f=1,c=0;cNf&&lNf&&h1)return o[p]=NaN,o[v]=NaN,o;if(t){if(n<0||e<0)return o[p]=NaN,o[v]=NaN,o;if(0===n){if(0===e)return o[p]=NaN,o[v]=NaN,o;if(e>0)return o[p]=i?0:1,o}else if(0===e&&n>0)return o[p]=i?1:0,o}else if(n<=0||e<=0)return o[p]=NaN,o[v]=NaN,o;return 0===r?(o[v]=1===n?1:n<1?on/2:2*un,i?(o[p]=t?1:oa(n,e),o):(o[p]=0,o)):1===r?(o[v]=1===e?1:e<1?on/2:2*un,o[p]=i?0:t?1:oa(n,e),o):.5===n&&.5===e?(o[v]=cs*q(y*r),g=In(q(i?y:r)),g/=$e,t||(g*=Ut),o[p]=g,o):(1===n&&(h=e,e=n,n=h,h=y,y=r,r=h,i=!i),1===e?1===n?(o[p]=i?y:r,o[v]=1,o):(o[v]=n*na(r,n-1),g=y<.5?i?-pa(n*Be(-y)):hu(n*Be(-y)):i?-(na(r,n)-1):na(r,n),t||(g/=n),o[p]=g,o):(va(n,e)<=1?(r>.5&&(h=e,e=n,n=h,h=y,y=r,r=h,i=!i),tn(n,e)<=1?n>=va(.2,e)||na(r,n)<=.9?i?(i=!1,s=-ss(n,e,r,s=-(t?1:oa(n,e)),t,o,y)):s=ss(n,e,r,0,t,o,y):(h=e,e=n,n=h,h=y,y=r,r=h,i=!i,y>=.3?i?(i=!1,s=-ss(n,e,r,s=-(t?1:oa(n,e)),t,o,y)):s=ss(n,e,r,0,t,o,y):(f=t?1:rs(n+e,n,20),s=as(n,e,r,y,20,t,o),i?(i=!1,s=-Qf(n+20,e,r,y,s-=t?1:oa(n,e),f,t)):s=Qf(n+20,e,r,y,s,f,t))):e<=1||r<.1&&na(e*r,n)<=.7?i?(i=!1,s=-ss(n,e,r,s=-(t?1:oa(n,e)),t,o,y)):s=ss(n,e,r,0,t,o,y):(h=e,e=n,n=h,h=y,y=r,r=h,i=!i,y>=.3?i?(i=!1,s=-ss(n,e,r,s=-(t?1:oa(n,e)),t,o,y)):s=ss(n,e,r,0,t,o,y):n>=15?i?(i=!1,s=-Qf(n,e,r,y,s=-(t?1:oa(n,e)),1,t)):s=Qf(n,e,r,y,0,1,t):(f=t?1:rs(n+e,n,20),s=as(n,e,r,y,20,t,o),i?(i=!1,s=-Qf(n+20,e,r,y,s-=t?1:oa(n,e),f,t)):s=Qf(n+20,e,r,y,s,f,t)))):((nun)for(a=o,f=Y(r-1);f>n;f--)o+=a*=(f+1)*t/((r-f)*e);else if((u=Y(r*e))<=n+1&&(u=Y(n+2)),o=na(e,u)*na(t,r-u),0==(o*=us(Y(r),Y(u))))for(f=u-1;f>n;f--)o+=na(e,f)*na(t,r-f),o*=us(Y(r),Y(f));else{for(a=o,i=o,f=u-1;f>n;f--)o+=a*=(f+1)*t/((r-f)*e);for(a=i,f=u+1;f<=r;f++)o+=a*=(r-f+1)*e/(f*t)}return o}(m=e+(d=n-1),d,r,y),t||(s*=oa(n,e))):e*r<=.7?i?(i=!1,s=-ss(n,e,r,s=-(t?1:oa(n,e)),t,o,y)):s=ss(n,e,r,0,t,o,y):n>15?((m=Y(e))===e&&(m-=1),c=e-m,f=t?1:rs(n+c,c,m),s=Qf(n,c,r,y,s=as(c,n,y,r,m,t),1,t),s/=f):t?((c=e-(m=Y(e)))<=0&&(m-=1,c+=1),s=as(c,n,y,r,m,t),s+=as(n,c,r,y,20,t),i&&(s-=1),s=Qf(n+20,c,r,y,s,1,t),i&&(s=-s,i=!1)):s=os(n,e,r,y,t,o):s=os(n,e,r,y,t,o)),o[v]<0&&(o[v]=ts(n,e,r,y,!0)),l=y*r,0!==o[v]&&(on*l2||r<0?NaN:(r>1?(n=-1,e=2-r):(n=1,e=r),(r=1-e)<=.5?(t=r*(r+10),i=function(r){var n,e;return 0===r?-.0005087819496582806:((r<0?-r:r)<=1?(n=r*(r*(.03348066254097446+r*(r*(r*(.02198786811111689+r*(.008226878746769157+r*(r*(0+0*r)-.005387729650712429)))-.03656379714117627)-.012692614766297404))-.008368748197417368)-.0005087819496582806,e=1+r*(r*(r*(1.5622155839842302+r*(.662328840472003+r*(r*(r*(.07952836873415717+r*(.0008862163904564247*r-.0023339375937419))-.05273963823400997)-.7122890234154284)))-1.5657455823417585)-.9700050433032906)):(n=0+(r=1/r)*(0+r*(r*(.008226878746769157+r*(.02198786811111689+r*(r*(r*(.03348066254097446+r*(-.0005087819496582806*r-.008368748197417368))-.012692614766297404)-.03656379714117627)))-.005387729650712429)),e=.0008862163904564247+r*(r*(.07952836873415717+r*(r*(r*(.662328840472003+r*(1.5622155839842302+r*(r*(1*r-.9700050433032906)-1.5657455823417585)))-.7122890234154284)-.05273963823400997))-.0023339375937419)),n/e)}(r),n*(t*vs+t*i)):e>=.25?(t=q(-2*We(e)),i=function(r){var n,e;return 0===r?-.20243350835593876:((r<0?-r:r)<=1?(n=r*(.10526468069939171+r*(8.3705032834312+r*(17.644729840837403+r*(r*(r*(17.445385985570866+r*(21.12946554483405+-3.6719225470772936*r))-44.6382324441787)-18.851064805871424))))-.20243350835593876,e=1+r*(6.242641248542475+r*(3.971343795334387+r*(r*(r*(48.560921310873994+r*(10.826866735546016+r*(1.7211476576120028*r-22.643693341313973)))-20.14326346804852)-28.66081804998)))):(n=(r=1/r)*(21.12946554483405+r*(17.445385985570866+r*(r*(r*(17.644729840837403+r*(8.3705032834312+r*(.10526468069939171+-.20243350835593876*r)))-18.851064805871424)-44.6382324441787)))-3.6719225470772936,e=1.7211476576120028+r*(r*(10.826866735546016+r*(48.560921310873994+r*(r*(r*(3.971343795334387+r*(6.242641248542475+1*r))-28.66081804998)-20.14326346804852)))-22.643693341313973)),n/e)}(e-=.25),n*(t/(ds+i))):(e=q(-We(e)))<3?(i=function(r){var n,e;return 0===r?-.1311027816799519:((r<0?-r:r)<=1?(n=r*(r*(.11703015634199525+r*(.38707973897260434+r*(.3377855389120359+r*(.14286953440815717+r*(.029015791000532906+r*(.0021455899538880526+r*(r*(2.8522533178221704e-8+-6.81149956853777e-10*r)-6.794655751811263e-7)))))))-.16379404719331705)-.1311027816799519,e=1+r*(3.4662540724256723+r*(5.381683457070069+r*(4.778465929458438+r*(2.5930192162362027+r*(.848854343457902+r*(.15226433829533179+r*(.011059242293464892+r*(0+r*(0+0*r)))))))))):(n=(r=1/r)*(2.8522533178221704e-8+r*(r*(.0021455899538880526+r*(.029015791000532906+r*(.14286953440815717+r*(.3377855389120359+r*(.38707973897260434+r*(.11703015634199525+r*(-.1311027816799519*r-.16379404719331705)))))))-6.794655751811263e-7))-6.81149956853777e-10,e=0+r*(0+r*(0+r*(.011059242293464892+r*(.15226433829533179+r*(.848854343457902+r*(2.5930192162362027+r*(4.778465929458438+r*(5.381683457070069+r*(3.4662540724256723+1*r)))))))))),n/e)}(e-1.125),n*(ms*e+i*e)):e<6?(i=function(r){var n,e;return 0===r?-.0350353787183178:((r<0?-r:r)<=1?(n=r*(r*(.018557330651423107+r*(.009508047013259196+r*(.0018712349281955923+r*(.00015754461742496055+r*(460469890584318e-20+r*(26633922742578204e-28*r-2.304047769118826e-10))))))-.0022242652921344794)-.0350353787183178,e=1+r*(1.3653349817554064+r*(.7620591645536234+r*(.22009110576413124+r*(.03415891436709477+r*(.00263861676657016+r*(7646752923027944e-20+r*(0+0*r)))))))):(n=26633922742578204e-28+(r=1/r)*(r*(460469890584318e-20+r*(.00015754461742496055+r*(.0018712349281955923+r*(.009508047013259196+r*(.018557330651423107+r*(-.0350353787183178*r-.0022242652921344794))))))-2.304047769118826e-10),e=0+r*(0+r*(7646752923027944e-20+r*(.00263861676657016+r*(.03415891436709477+r*(.22009110576413124+r*(.7620591645536234+r*(1.3653349817554064+1*r)))))))),n/e)}(e-3),n*(gs*e+i*e)):(i=function(r){var n,e;return 0===r?-.016743100507663373:((r<0?-r:r)<=1?(n=r*(r*(.001056288621524929+r*(.00020938631748758808+r*(14962478375834237e-21+r*(4.4969678992770644e-7+r*(4.625961635228786e-9+r*(9905570997331033e-32*r-2811287356288318e-29))))))-.0011295143874558028)-.016743100507663373,e=1+r*(.5914293448864175+r*(.1381518657490833+r*(.016074608709367652+r*(.0009640118070051656+r*(27533547476472603e-21+r*(2.82243172016108e-7+r*(0+0*r)))))))):(n=9905570997331033e-32+(r=1/r)*(r*(4.625961635228786e-9+r*(4.4969678992770644e-7+r*(14962478375834237e-21+r*(.00020938631748758808+r*(.001056288621524929+r*(-.016743100507663373*r-.0011295143874558028))))))-2811287356288318e-29),e=0+r*(0+r*(2.82243172016108e-7+r*(27533547476472603e-21+r*(.0009640118070051656+r*(.016074608709367652+r*(.1381518657490833+r*(.5914293448864175+1*r)))))))),n/e)}(e-6),n*(ys*e+i*e)))}var bs=1.4142135623730951;var _s=0,Es=[1,0,0,0,0,0,0,0,0,0];function xs(r,n){var e,t,i;return t=Ca(r/2,.5)*q(r*Ut)*(n-.5),e=1/r,Es[1]=0===(i=e)?.16666666666666666:.16666666666666666+.16666666666666666*i,Es[2]=function(r){return 0===r?.058333333333333334:.058333333333333334+r*(.06666666666666667+.008333333333333333*r)}(e),Es[3]=function(r){return 0===r?.0251984126984127:.0251984126984127+r*(.026785714285714284+r*(.0017857142857142857+.0001984126984126984*r))}(e),Es[4]=function(r){return 0===r?.012039792768959435:.012039792768959435+r*(.010559964726631394+r*(r*(.0003747795414462081+27557319223985893e-22*r)-.0011078042328042327))}(e),Es[5]=function(r){return 0===r?.003837005972422639:.003837005972422639+r*(.00610392115600449+r*(r*(.0005945867404200738+r*(2.505210838544172e-8*r-6270542728876062e-20))-.0016095979637646305))}(e),Es[6]=function(r){return 0===r?.0032177478835464946:.0032177478835464946+r*(.0010898206731540065+r*(r*(.0006908420797309686+r*(r*(154012654012654e-19+1.6059043836821613e-10*r)-.00016376804137220805))-.0012579159844784845))}(e),Es[7]=function(r){return 0===r?.001743826229834001:.001743826229834001+r*(3353097688001788e-20+r*(r*(.0006451304695145635+r*(r*(49255746366361444e-21+r*(7647163731819816e-28*r-39851014346715405e-22))-.000249472580470431))-.0007624513544032393))}(e),Es[8]=function(r){return 0===r?.0009647274732138864:.0009647274732138864+r*(r*(r*(.0005140660578834113+r*(r*(9086710793521991e-20+r*(r*(10914179173496788e-22+28114572543455206e-31*r)-15303004486655377e-21))-.00029133414466938067))-.00036307660358786886)-.0003110108632631878)}(e),Es[9]=function(r){return 0===r?.0005422926281312969:.0005422926281312969+r*(r*(r*(.00035764655430568635+r*(r*(.00012645437628698076+r*(r*(4890304529197534e-21+r*(822063524662433e-32*r-3.123956959982987e-7))-33202652391372056e-21))-.00028690924218514614))-.00010230378073700413)-.0003694266780000966)}(e),_s+t*Vf(Es,t*t)}var Ts=[0,0,0,0,0,0,0];function Ns(r,n){var e,t,i,o,u,a,f;return f=Ca(r/2,.5)*q(r*Ut)*n,i=r+2,o=r+4,u=r+6,Ts[0]=1,Ts[1]=-(r+1)/(2*i),i*=r+2,Ts[2]=-r*(r+1)*(r+3)/(8*i*o),i*=r+2,Ts[3]=-r*(r+1)*(r+5)*((3*r+7)*r-2)/(48*i*o*u),i*=r+2,o*=r+4,Ts[4]=-r*(r+1)*(r+7)*(((((15*r+154)*r+465)*r+286)*r-336)*r+64)/(384*i*o*u*(r+8)),i*=r+2,Ts[5]=-r*(r+1)*(r+3)*(r+9)*((((((35*r+452)*r+1573)*r+600)*r-2020)*r+928)*r-128)/(1280*i*o*u*(r+8)*(r+10)),i*=r+2,o*=r+4,u*=r+6,Ts[6]=-r*(r+1)*(r+11)*(((((((((((945*r+31506)*r+425858)*r+2980236)*r+11266745)*r+20675018)*r+7747124)*r-22574632)*r-8565600)*r+18108416)*r-7099392)*r+884736)/(46080*i*o*u*(r+8)*(r+10)*(r+12)),t=na((a=q(r))*f,1/r),e=Vf(Ts,t*t),e*=a,-(e/=t)}function js(r,n){var e,t,i,o,u,a;return r>1e20?-ws(2*n)*bs:((a=na(2*(o=((94.5/((t=48/((e=1/(r-.5))*e))+(i=((20700*e/t-98)*e-16)*e+96.36))-3)/t+1)*q(e*$e)*r)*n,2/r))>.05+e?(u=-ws(2*n)*bs,r<5&&(i+=.3*(r-4.5)*(u+.6)),a=pa(e*(a=(((((.4*(a=u*u)+6.3)*a+36)*a+94.5)/(i+=(((.05*o*u-5)*u-7)*u-2)*u+t)-a-3)/t+1)*u)*a)):a=((1/(((r+6)/(r*a)-.089*o-.822)*(r+2)*3)+.5/(r+4))*a-1)*(r+1)/(r+2)+1/a,-q(r*a))}var Vs=268435456,Os=1/3,As=106/3,Ss=.8549879733383485;function Is(r,n,e){var t,i,o;return o=function(r,n,e){var t,i,o,u,a,f,s,c,l,h,p,v,d;if(u=0,n>e?(a=e,e=n,n=a,o=!0):o=!1,Y(r)===r&&r<20)switch(t=ci(1,As),Y(r)){case 1:u=.5===n?0:-Wa(Ut*n)/ja(Ut*n);break;case 2:u=(2*n-1)/q(2*n*e);break;case 4:h=4*Wa(Fn(i=q(4*n*e))/3)/i,p=q(h-4),u=n-.5<0?-p:p;break;case 6:if(n<1e-150)return(o?-1:1)*js(r,n);d=na(v=4*(n-n*n),Os),l=6*(1+Ss*(1/d-1));do{f=l,l=2*(8*v*(l*(c=(s=l*l)*s))-270*s+2187)/(5*(4*v*c-216*l-243))}while(en((l-f)/l)>t);l=q(l-r),u=n-.5<0?-l:l;break;default:u=r>Vs?ws(2*n)*bs:r<3?n>.2742-.0242143*r?xs(r,n):Ns(r,n):n>ci(1,Ei(r/-.654))?js(r,n):Ns(r,n)}else u=r>Vs?-ws(2*n)*bs:r<3?n>.2742-.0242143*r?xs(r,n):Ns(r,n):n>ci(1,Ei(r/-.654))?js(r,n):Ns(r,n);return o?-u:u}(t=2*r,i=n/2,1-i),e&&(e.value=o*o/(t+o*o)),t/(t+o*o)}var ks=[0,0,0,0,0,0,0],Fs=[0,0,0,0];var Bs=on/4;function Rs(r,n){return function(e){var t,i;if(0===(i=1-e))return[-Bs,-Bs];if(0===e)return[-Bs,-Bs];return t=We(e)+n*We(i)+r,[t,1/e-n/i]}}function Ls(r){return 0===r||Z(r)?r:r<0?-1:1}function Ms(r,n,e,t,i,o){var u,a,f,s,c,l,h,p,v,d;v=0,u=0,c=n,s=ci(1,1-i),h=on,a=on,f=on,l=o;do{if(u=v,f=a,a=h,v=(p=r(c))[0],d=p[1],l-=1,0===v)break;if(0===d?(0===u&&(u=r(n=c===e?t:e),h=n-c),h=Ls(u)*Ls(v)<0?h<0?(c-e)/2:(c-t)/2:h<0?(c-t)/2:(c-e)/2):h=v/d,en(2*h)>en(f)&&(h=h>0?(c-e)/2:(c-t)/2),n=c,(c-=h)<=e){if((c=n-(h=.5*(n-e)))===e||c===t)break}else if(c>=t&&((c=n-(h=.5*(n-t)))===e||c===t))break;h>0?t=n:e=n}while(l&&en(c*s)()=>{}})),Ys=34028234663852886e22,Ds=qs("gammaincinv:higher_newton");var Ws=1e-8,zs=.08333333333333333,Gs=.008333333333333333,$s=[1,0,0,0,0,0];function Js(r){var n,e,t,i,o,u,a,f,s,c;if(s=r*r*.5,0===r?o=0:r<-1?(f=hu(-1-s),o=0===(c=f)?0:0+c*(1+c*(1+c*(1.5+c*(2.6666666666666665+c*(5.208333333333333+10.8*c)))))):r<1?o=function(r){return 0===r?1:1+r*(1+r*(.3333333333333333+r*(.027777777777777776+r*(r*(.0002314814814814815+5878894767783657e-20*r)-.003703703703703704))))}(f=r):(o=(f=11+s)+(u=We(f)),f=1/f,i=(t=(e=(n=u*u)*u)*u)*u,$s[1]=.5*(2-u),$s[2]=(-9*u+6+2*n)/6,$s[3]=-(3*e+36*u-22*n-12)*zs,$s[4]=(60+350*n-300*u-125*e+12*t)/60,$s[5]=-(-120-274*t+900*u-1700*n+1125*e+20*i)*Gs,o+=u*f*Vf($s,f)),f=1,r>-3.5&&r<-.03||r>.03&&r<40){f=1,a=o;do{f=en(a/(o=a*(s+We(a))/(a-1))-1),a=o}while(f>Ws)}return o}var Zs=.9189385332046728,Hs=[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 Ks=.30865217988013566;function Xs(r){var n;return r=0);return(t-o)/2}(17,n=18/(r*r)-1)/(12*r):(n=1/(r*r),r<1e3?function(r){return 0===r?.025721014990011306:.025721014990011306+r*(.08247596616699963+r*(r*(.0006099292666946337+r*(.000250505279903*r-.00033543297638406))-.0025328157302663564))}(n)/(Ks+n)/r:function(r){return 0===r?.08333333333333333:.08333333333333333+r*(r*(.0007936507936507937+-.0005952380952380953*r)-.002777777777777778)}(n)/r)}function Qs(r){return r>=3?hu(Xs(r)):r>0?ka(r)/(hu(-r+(r-.5)*We(r))*Va):Ys}var rc=qs("gammaincinv:compute"),nc=.5,ec=.3333333333333333,tc=.25,ic=.2,oc=.16666666666666666,uc=.08333333333333333,ac=.041666666666666664,fc=[0,0,0,0,0];function sc(r,n,e){var t,i,o,u,a,f,s,c,l,h,p,v,d,m,g,y,w,b,_,E,x,T,N,j,V,O,A,S,I,k,F,B,R,L,M,P,U,C,Y,D;if(n1&&r<500&&n<1e-80){for(P=0,f=1/r,t=1/(r+1),d=_=hu(_=(cf(r+1)+We(n))*f),L=0;L<10;L++)_=d*hu(_*f)*na(1-_*t,f);M=1,o=cf(r)}if((s=1/r*(We(n)+cf(r+1)))5?(N=(T=(x=R*R)*R)*R,U=1/_,fc[0]=R-1,fc[1]=(3*B-2*B*R+x-2*R+2)*nc,fc[2]=(24*B*R-11*j-24*B-6*x+12*R-12-9*B*x+6*j*R+2*T)*oc,fc[3]=(-12*V*R+8.04*B*x-114*j*R+(72+36*x)+(3*N-72*R+162)*(B-168*B*R)-(12*T+25*V)-(22*B*T+36*j*x+120*j))*uc,fc[4]=0,_=_-R+B*U*Vf(fc,U)):(x=R*R,(Y=R-B*(U=1/_)*(R-1))<_&&(_-=Y)),o=cf(r),M=1),en(a-nc)<1e-5&&0===M&&(P=0,_=r-ec+(.019753086419753086+.007211444248481286*(f=1/r))*f,o=cf(r),M=1),r<1&&0===M&&(P=0,_=hu(u?1/r*(We(a)+cf(r+1)):1/r*(We(1-a)+cf(r+1))),o=cf(r),M=1),0===M){if(P=1,f=1/r,w=C*(U=ws(2*a))/q(r*nc),!(UWe(Ys))return Ds("Warning: overflow problems in one or more steps of the computation. The initial approximation to the root is returned."),s;d=hu(f)}else d=-u*m;d=a?-d*(Kf(m,n,!0,!1)-t):d*(Kf(m,n,!0,!0)-i),t>1e-120||v>1?(c=(2*h-4*m*n+4*m+2*l-3*n+1)/h,r=m+d*(1+d*(.5*(m-n+1)/m+d*(c/=6)))):r=m+d,p=en(m/r-1),v+=1,(m=r)<0&&(m=s,v=100)}while(p>2e-14&&v<35);return(p>2e-14||v>99)&&Ds("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."),m||0}(_,r,P,n,e,o,i,u)),F}function cc(r,n,e){return Z(r)||Z(n)||n1||r<0?NaN:!0===e?0===r?$:1===r?0:sc(n,1-r,r):0===r?0:1===r?$:sc(n,r,1-r)}var lc=5e-324;var hc=32,pc=1e3,vc=[0,0,0,0,0];function dc(r,n,e,t){var i,o,u,a,f,s,c,l,h,p,v,d,m,g,y,w,b,_,E,x,T,N,j,V,O,A,S;if(o=!1,0===t)return[1,0];if(0===e)return[0,1];if(1===r){if(1===n)return[e,1-e];d=n,n=r,r=d,d=t,t=e,e=d,o=!0}if(A=0,a=0,s=1,.5===r){if(.5===n)return A=ja(e*$e),A*=A,S=ja(t*$e),[A,S*=S];n>.5&&(d=n,n=r,r=d,d=t,t=e,e=d,o=!o)}if(.5===n&&r>=.5&&1!==e)A=Is(r,e,x={}),S=x.value;else{if(1===n)return e1?(A=na(e,1/r),S=-pa(We(e)/r)):S=1-(A=na(e,1/r)):(A=hu(Be(-t)/r),S=-pa(Be(-t)/r)),o&&(d=S,S=A,A=d),[A,S];if(r+n>5)e>.5&&(d=n,n=r,r=d,d=t,t=e,e=d,o=!o),h=va(r,n),l=tn(r,n),q(h)>l-h&&h>5?(A=function(r,n,e){var t,i,o,u,a,f,s;return t=ws(2*e),t/=-q(r/2),Fs[0]=t,a=(u=(f=n-r)*f)*f,ks[0]=-f*bs/2,ks[1]=(1-2*f)/8,ks[2]=-f*bs/48,ks[3]=-1/192,ks[4]=-f*bs/3840,ks[5]=0,ks[6]=0,Fs[1]=Vf(ks,t),ks[0]=f*bs*(3*f-2)/12,ks[1]=(20*u-12*f+1)/128,ks[2]=f*bs*(20*f-1)/960,ks[3]=(16*u+30*f-15)/4608,ks[4]=f*bs*(21*f+32)/53760,ks[5]=(-32*u+63)/368640,ks[6]=-f*bs*(120*f+17)/25804480,Fs[2]=Vf(ks,t),ks[0]=f*bs*(-75*u+80*f-16)/480,ks[1]=(-1080*a+868*u-90*f-45)/9216,ks[2]=f*bs*(-1190*u+84*f+373)/53760,ks[3]=(-2240*a-2508*u+2100*f-165)/368640,ks[4]=0,ks[5]=0,ks[6]=0,Fs[3]=Vf(ks,t),s=-hu(-(i=(o=Vf(Fs,1/r))*o)/2),0===i?.5:(1+o*q((1+s)/i))/2}(r,n,e),S=1-A):(f=In(q(r/(V=r+n))),(u=h/V)>=.2&&u<=.8&&V>=10?(A=(v=na(e,1/r))<.0025&&r+n<200?v*na(r*oa(r,n),1/r):function(r,n,e){var t,i,o,u,a,f,s,c,l,h,p,v,d,m,g,y,w,b,_;return u=ws(2*r)/-q(n/2),w=ja(e),y=Wa(e),Us[0]=u,m=w*w,g=y*y,c=(p=(v=w*y)*v)*(h=p*v),s=h*h,f=(l=p*p)*h,Ps[0]=(2*m-1)/(3*v),Ps[1]=-function(r){return 0===r?-1:r*(5*r-5)-1}(m)/(36*p),Ps[2]=function(r){return 0===r?1:1+r*(21+r*(46*r-69))}(m)/(1620*h),Ps[3]=function(r){return 0===r?7:7+r*(r*(33+r*(31*r-62))-2)}(m)/(6480*l),Ps[4]=function(r){return 0===r?25:25+r*(r*(r*(88+r*(46*r-115))-17)-52)}(m)/(90720*c),Ps[5]=0,Us[1]=Vf(Ps,u),Ps[0]=-function(r){return 0===r?7:7+r*(12+r*(52*r-78))}(m)/(405*h),Ps[1]=function(r){return 0===r?-7:r*(2+r*(183+r*(185*r-370)))-7}(m)/(2592*l),Ps[2]=-function(r){return 0===r?-533:r*(776+r*(r*(10240+r*(5410*r-13525))-1835))-533}(m)/(204120*c),Ps[3]=-function(r){return 0===r?-1579:r*(3747+r*(r*(r*(45588+r*(15071*r-45213))-15821)-3372))-1579}(m)/(2099520*s),Ps[4]=0,Ps[5]=0,Us[2]=Vf(Ps,u),Ps[0]=function(r){return 0===r?449:449+r*(r*(r*(6686+r*(3704*r-9260))-769)-1259)}(m)/(102060*c),Ps[1]=-function(r){return 0===r?63149:63149+r*(r*(140052+r*(r*(2239932+r*(750479*r-2251437))-727469))-151557)}(m)/(20995200*s),Ps[2]=function(r){return 0===r?29233:29233+r*(r*(105222+r*(146879+r*(r*(3195183+r*(729754*r-2554139))-1602610)))-78755)}(m)/(36741600*f),Ps[3]=0,Ps[4]=0,Ps[5]=0,Us[3]=Vf(Ps,u),o=y/w,o*=o,d=-(a=Vf(Us,1/n))*a/(2*m)+We(m)+g*We(g)/m,en(a)<.7?(Ps[0]=m,Ps[1]=v,Ps[2]=(1-2*m)/3,Ps[3]=function(r){return 0===r?1:1+r*(13*r-13)}(m)/(36*v),Ps[4]=function(r){return 0===r?1:1+r*(21+r*(46*r-69))}(m)/(270*p),Ps[5]=0,_=Vf(Ps,a)):(b=hu(d),Ps[0]=b,Ps[1]=o,Ps[2]=0,Ps[3]=3*o*(3*o+1)/6,Ps[4]=4*o*(4*o+1)*(4*o+2)/24,Ps[5]=5*o*(5*o+1)*(5*o+2)*(5*o+3)/120,((_=Vf(Ps,b))-m)*a<0&&(_=1-_)),a<0?(i=0,t=m):(i=m,t=1),(_t)&&(_=(i+t)/2),Ms(Rs(-d,o),_,i,t,32,100)}(e,V,f),S=1-A):(r1e-5&&(A=function(r,n,e,t){var i,o,u,a,f,s,c,l,h,p,v,d,m,g,y,w,b,_,E,x,T,N,j,V,O,A;return a=eE&&(A=E),s=E}else r>1&&n>1?(m=(n-1)/(r+n-2),ps(E=(r-1)/(r+n-2),r,n)-e<0&&(d=n,n=r,r=d,d=t,t=e,e=d,d=m,m=E,E=d,o=!o),S=(A=hu(b=We(e*r*oa(r,n))/r))<.9?1-A:-pa(b),nE&&(A=E),s=E):(n.5&&(d=n,n=r,r=d,d=t,t=e,e=d,d=S,S=A,A=d,o=!o,O=1-a,a=1-s,s=O),0===a&&(o?A<(a=an)&&(A=a):a=un,A=t),A=function(r,n,e,t,i,o){var u,a,f,s,c,l,h,p,v,d,m,g,y,w,b,_;w=0,a=!1,l=n,c=ci(1,1-i),h=0,f=v=tn(1e7*n,1e7),s=v,p=o;do{if(h=w,s=f,f=v,w=(y=r(l))[0],b=y[1],_=y[2],p-=1,0===w)break;if(0===b?(0===h&&(h=r(n=l===e?t:e),v=n-l),v=Ls(h)*Ls(w)<0?v<0?(l-e)/2:(l-t)/2:v<0?(l-t)/2:(l-e)/2):0===_?v=w/b:(d=2*w,(v=en(g=2*b-w*(_/b))<1&&en(d)>=en(g)*on?w/b:d/g)*b/w<0&&en(v=w/b)>2*en(n)&&(v=2*(v<0?-1:1)*en(n))),(u=en(v/s))>.8&&u<2&&(en(v=v>0?(l-e)/2:(l-t)/2)>l&&(v=Ls(v)*l),s=3*v),n=l,(l-=v)1&&on/en(l)0&&m<3)l=n-(v=.99*(n-e)),a=!0;else if((l=n-(v=(n-e)/2))===e||l===t)break}else if(l>t)if(m=en(t)<1&&en(l)>1&&on/en(l)0&&m<3)l=n-(v=.99*(n-t)),a=!0;else if((l=n-(v=(n-t)/2))===e||l===t)break;v>0?t=n:e=n}while(p&&en(l*c)=wc?0:r1.1)return NaN;for(t=0,i=0,n=2*r,o=0;o=10?(e=bc(t)+bc(i)-bc(t+i),-.5*We(i)+Zs+e+(t-.5)*We(t/(t+i))+i*Be(-t/(t+i))):i>=10?(e=bc(i)-bc(t+i),cf(t)+e+t-t*We(t+i)+(i-.5)*Be(-t/(t+i))):We(ka(t)*(ka(i)/ka(t+i)))}var Ec=D+1;function xc(r){var n,e,t,i;return Z(r)||Nr(r)?NaN:(n=en(r))>Ec?1:.5===(t=n-(e=Y(n)))?0:(i=t<.25?Wa(Ut*t):t<.75?ja(Ut*(t=.5-t)):-Wa(Ut*(t=1-t)),e%2==1?-i:i)}var Tc=1.618033988749895,Nc=2.23606797749979;function jc(r){var n;return Z(r)||r===$||r===K?NaN:((n=na(Tc,r))-xc(r)/n)/Nc}function Vc(r,n){var e;return Z(r)||Z(n)?NaN:Nr(r)||Nr(n)?$:(r<0&&(r=-r),n<0&&(n=-n),r>>0)&bt)>>>0,i=(e&=_t)>>0)/3>>>0)+Lc>>>0,0):Te(i=0,n|(e/3>>>0)+Rc>>>0),i*=function(r){return 0===r?1.87595182427177:1.87595182427177+r*(r*(1.6214297201053545+r*(.14599619288661245*r-.758397934778766))-1.8849797954337717)}(t=i*i*(i/r)),St.assign(i,Pc,1,0),Pc[1]&Fc?(Pc[0]+=Bc,Pc[1]&=~Fc):Pc[1]|=Fc,i=Lt(Pc[0]&Sc,Pc[1]&Ic),i+=i*(t=((t=r/(i*i))-i)/(i+i+t)))}function Cc(r){return Pr(Uc(Pr(r)))}var qc=Math.ceil;var Yc=308,Dc=-308,Wc=-324,zc=D+1,Gc=1e308;function $c(r,n){var e,t;return Z(r)||Z(n)||Nr(n)?NaN:Nr(r)||0===r||nzc&&n<=0?r:n>Yc?r<=0?-0:$:n=Qc?r+r:i===nl&&0===o?0:(p+=(i>>20)-Ne|0,l=p+=(h=(i&=$t)+614244&rl|0)>>20|0,t=.5*(f=(r=Te(r,i|h^nl))-1)*f,s=Zc(f),e=((a=f-(u=mu(u=f-t,0))-t+s)+u)*Xc+a*Kc,(e+=l-(c=l+(n=u*Kc))+n)+(n=c))}function il(r){var n,e;return Z(r)||Nr(r)||0===r?r:(r<0?(r=-r,n=-1):n=1,(e=tl(r))===Qt?r:(e=-1===n?Y(e):tu(e))>Kt?$:n*na(2,e))}var ol=0x40000000000000,ul=.4342944818781689,al=25082946711645275e-27,fl=.30102999566361177,sl=3694239077158931e-28,cl=2146435072,ll=1048576,hl=1072693248,pl=[0,0];function vl(r){var n,e,t,i,o,u,a,f,s,c,l,h,p,v;if(Z(r)||r<0)return NaN;if(St.assign(r,pl,1,0),u=pl[0],a=pl[1],v=0,u=cl?r+r:u===hl&&0===a?0:(v+=(u>>20)-Ne|0,h=v+=(p=(u&=$t)+614244&ll|0)>>20|0,t=.5*(s=(r=Te(r,u|p^hl))-1)*s,c=Zc(s),i=mu(i=s-t,0),e=h*sl+((o=s-i-t+c)+i)*al+o*ul,(e+=(f=h*fl)-(l=f+(n=i*ul))+n)+(n=l))}function dl(r){var n,e;return Z(r)||Nr(r)||0===r?r:(r<0?(r=-r,n=-1):n=1,e=vl(r),(e=-1===n?Y(e):tu(e))<=Wc?0*n:e>Yc?$:n*na(10,e))}var ml=D+1,gl=1e308;function yl(r,n){var e,t;return Z(r)||Z(n)||Nr(n)?NaN:Nr(r)||0===r||nml&&n<=0?r:n>Yc?r>=0?0:K:n21?hu(r)/2:(hu(r)+hu(-r))/2)}Ur(Vl,"isPrimitive",Nl),Ur(Vl,"isObject",jl);var Al=.7853981633974483;function Sl(r){var n;return r<-Al||r>Al?Wa(r)-1:-.5*(n=r*r)+n*n*function(r){return 0===r?.041666666666666664:.041666666666666664+r*(r*(2480158730157055e-20+r*(r*(2.087675428708152e-9+r*(4737750796424621e-29*r-1147028484342536e-26))-2.755731921499979e-7))-.0013888888888888872)}(n)}var Il=.7853981633974483,kl=3061616997868383e-32,Fl=.3333333333333341,Bl=2147483647;function Rl(r,n,e){var t,i,o,u,a,f,s,c,l;return(i=(t=be(r))&Bl|0)>=1072010280&&(r<0&&(r=-r,n=-n),r=(l=Il-r)+(c=kl-n),n=0),u=function(r){return 0===r?.13333333333320124:.13333333333320124+r*(.021869488294859542+r*(.0035920791075913124+r*(.0005880412408202641+r*(7817944429395571e-20+-18558637485527546e-21*r))))}(c=(l=r*r)*l),s=l*function(r){return 0===r?.05396825397622605:.05396825397622605+r*(.0088632398235993+r*(.0014562094543252903+r*(.0002464631348184699+r*(7140724913826082e-20+2590730518636337e-20*r))))}(c),u=n+l*((a=l*r)*(u+s)+n),c=r+(u+=Fl*a),i>=1072010280?(1-(t>>30&2))*((s=e)-2*(r-(c*c/(c+s)-u))):1===e?c:(s=u-((l=mu(c,0))-r),(f=mu(o=-1/c,0))+o*((a=1+f*l)+f*s))}var Ll=[0,0],Ml=1072243195,Pl=1044381696;function Ul(r){var n,e;return n=be(r),(n&=_t)<=Ml?n=Gt?NaN:(e=Hi(r,Ll),Rl(Ll[0],Ll[1],1-((1&e)<<1)))}function Cl(r){return 1/Ul(r)}var ql=88.02969193111305;function Yl(r){var n,e;if((e=en(r))>.5*ql)return r<0?-1:1;if(e>=.625)e=1-2/((n=hu(2*e))+1),r<0&&(e=-e);else{if(0===r)return r;e=r+r*(n=r*r)*function(r){var n,e;return 0===r?-.3333333333333332:((r<0?-r:r)<=1?(n=r*(r*(0*r-.9643991794250523)-99.28772310019185)-1614.6876844170845,e=4844.063053251255+r*(2235.4883906010045+r*(112.81167849163293+1*r))):(n=0+(r=1/r)*(r*(-1614.6876844170845*r-99.28772310019185)-.9643991794250523),e=1+r*(112.81167849163293+r*(2235.4883906010045+4844.063053251255*r))),n/e)}(n)}return e}function Dl(r){return 1+ja(r)}function Wl(r){return 1-ja(r)}function zl(r){return Ct(Xr(r),Kr(r))}function Gl(r,n,e,t){return n[t]=Oc(r),n[t+e]=zl(r),n}function $l(r){return Gl(r,[0,0],1,0)}Ur($l,"assign",Gl);var Jl=D+1,Zl=1e308;function Hl(r,n){var e,t;return Z(r)||Z(n)||Nr(n)?NaN:Nr(r)||0===r||nJl&&n<=0?r:n>Yc?0*r:nXl||r0?$:K:(n=en(r))>1?n>=rh?(n=hu(.5*n),n*=.5*n,r<0&&(n=-n),n):(n=.5*(n=hu(n))-.5/n,r<0&&(n=-n),n):r+r*(n*=n)*function(r){var n,e;return 0===r?.16666666666666666:((r<0?-r:r)<=1?(n=r*(r*(-.789474443963537*r-163.72585752598383)-11561.443576500522)-351754.9648081514,e=r*(36157.827983443196+r*(1*r-277.7110814206028))-2110529.7888489086):(n=(r=1/r)*(r*(-351754.9648081514*r-11561.443576500522)-163.72585752598383)-.789474443963537,e=1+r*(r*(36157.827983443196+-2110529.7888489086*r)-277.7110814206028)),n/e)}(n)}var eh=Pr(.017453292519943295);function th(r){return Pr(Pr(r)*eh)}var ih=1.4616321446374059,oh=3.309564688275257e-10,uh=9.016312093258695e-20,ah=.9955816268920898;var fh=10;function sh(r){var n,e;if(Z(r)||0===r)return NaN;if(r<=-1){if((n=(r=1-r)-Y(r))>.5&&(n-=1),0===n)return NaN;e=Ut/Ul(Ut*n)}else e=0;if(r>=fh)return e+=function(r){var n;return We(r-=1)+1/(2*r)-(n=1/(r*r))*function(r){return 0===r?.08333333333333333:.08333333333333333+r*(r*(.003968253968253968+r*(r*(.007575757575757576+r*(r*(.08333333333333333+-.4432598039215686*r)-.021092796092796094))-.004166666666666667))-.008333333333333333)}(n)}(r),e;for(;r>2;)e+=1/(r-=1);for(;r<1;)e-=1/r,r+=1;return e+=function(r){var n,e;return n=r-ih,n-=oh,n-=uh,e=function(r){var n,e;return 0===r?.25479851061131553:((r<0?-r:r)<=1?(n=.25479851061131553+r*(r*(r*(r*(r*(0*r-.002071332116774595)-.04525132144873906)-.28919126444774784)-.6503185377089651)-.3255503118680449),e=1+r*(2.076711702373047+r*(1.4606242909763516+r*(.43593529692665967+r*(.054151797245674226+r*(.0021284987017821146+-5.578984132167551e-7*r)))))):(n=0+(r=1/r)*(r*(r*(r*(r*(.25479851061131553*r-.3255503118680449)-.6503185377089651)-.28919126444774784)-.04525132144873906)-.002071332116774595),e=r*(.0021284987017821146+r*(.054151797245674226+r*(.43593529692665967+r*(1.4606242909763516+r*(2.076711702373047+1*r)))))-5.578984132167551e-7),n/e)}(r-1),n*ah+n*e}(r),e}function ch(r){return Z(r)?NaN:0===r?$:0}var lh=[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],hh=[-.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],ph=[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 vh=129,dh=170,mh=709,gh=1.2433929443359375,yh=.6986598968505859;function wh(r){var n,e,t,i,o,u,a,f,s;if(Z(r))return NaN;if(1===r)return NaN;if(r>=56)return 1;if(G(r)&&(i=0|r)===r){if(!(i<0))return 0==(1&i)?hh[i/2]:lh[(i-3)/2];if(0==(1&(t=0|-i)))return 0;if((u=(t+1)/2|0)<=vh)return-ph[u]/(t+1)}return en(r)dh?(n=2*za(.5*e)*wh(r),o=cf(r),(o-=r*We(Rf))>mh?n<0?K:$:n*hu(o)):2*za(.5*e)*na(Rf,-r)*ka(r)*wh(r)):r<1?(n=0===(a=e)?.2433929443359375:((a<0?-a:a)<=1?(f=.2433929443359375+a*(a*(.055761621477604675+a*(a*(.0004515345286457964+-9332412703570615e-21*a)-.003209124988790859))-.4909247051635357),s=1+a*(a*(.04196762233099861+a*(a*(.00024978985622317937+-10185578841856403e-21*a)-.00413421406552171))-.27996033431034445)):(f=(a=1/a)*(.0004515345286457964+a*(a*(.055761621477604675+a*(.2433929443359375*a-.4909247051635357))-.003209124988790859))-9332412703570615e-21,s=a*(.00024978985622317937+a*(a*(.04196762233099861+a*(1*a-.27996033431034445))-.00413421406552171))-10185578841856403e-21),f/s),n-=gh,n+=e,n/=e):r<=2?(n=1/(e=-e))+function(r){var n,e;return 0===r?.5772156649015329:((r<0?-r:r)<=1?(n=.5772156649015329+r*(.24321064694010716+r*(.04173646739882165+r*(.003902520870728433+r*(.0002496063671518772+1101084409767329e-20*r)))),e=1+r*(.29520127712663174+r*(.043460910607305496+r*(.004349305820858264+r*(.0002557842261404885+10991819782396113e-21*r))))):(n=1101084409767329e-20+(r=1/r)*(.0002496063671518772+r*(.003902520870728433+r*(.04173646739882165+r*(.24321064694010716+.5772156649015329*r)))),e=10991819782396113e-21+r*(.0002557842261404885+r*(.004349305820858264+r*(.043460910607305496+r*(.29520127712663174+1*r))))),n/e)}(e):r<=4?(n=yh+1/-e)+function(r){var n,e;return 0===r?-.053725830002359504:((r<0?-r:r)<=1?(n=r*(.04451634732923656+r*(.012867767353451996+r*(.0009754177045739176+r*(7698751015736541e-20+r*(3280325100003831e-21+0*r)))))-.053725830002359504,e=1+r*(.3338319455303405+r*(.048779843129140764+r*(.0047903970857355845+r*(.00027077670395633634+r*(10695186753205734e-21+2.3627662397497864e-8*r)))))):(n=0+(r=1/r)*(3280325100003831e-21+r*(7698751015736541e-20+r*(.0009754177045739176+r*(.012867767353451996+r*(.04451634732923656+-.053725830002359504*r))))),e=2.3627662397497864e-8+r*(10695186753205734e-21+r*(.00027077670395633634+r*(.0047903970857355845+r*(.048779843129140764+r*(.3338319455303405+1*r)))))),n/e)}(r-2):r<=7?(n=function(r){var n,e;return 0===r?-2.497101906022594:((r<0?-r:r)<=1?(n=r*(r*(r*(r*(r*(r*(0+r*(0+0*r))-22925731059489392e-21)-.007017212405498024)-.13844861799574154)-.9392604353771099)-2.600133018094757)-2.497101906022594,e=1+r*(.7060390259377451+r*(.15739599649558628+r*(.010611795097684508+r*(r*(49340956392759e-19+r*(r*(7.188337293654598e-9+-1.1292001134749475e-10*r)-2.3405548702528722e-7))-36910273311764616e-21))))):(n=0+(r=1/r)*(0+r*(0+r*(r*(r*(r*(r*(-2.497101906022594*r-2.600133018094757)-.9392604353771099)-.13844861799574154)-.007017212405498024)-22925731059489392e-21))),e=r*(7.188337293654598e-9+r*(r*(49340956392759e-19+r*(r*(.010611795097684508+r*(.15739599649558628+r*(.7060390259377451+1*r)))-36910273311764616e-21))-2.3405548702528722e-7))-1.1292001134749475e-10),n/e)}(r-4),1+hu(n)):r<15?(n=function(r){var n,e;return 0===r?-4.785580284951356:((r<0?-r:r)<=1?(n=r*(r*(r*(r*(.0011514092388917874+r*(6399492042131645e-20+r*(1393489324453249e-21+r*(0+0*r))))-.0001892047582600767)-.21140713487441282)-1.8919736488197254)-4.785580284951356,e=1+r*(.24434533737818856+r*(.008733707544922887+r*(r*(r*(r*(4.710012640030765e-9+r*(6998415452048457e-28*r-8333784406253855e-26))-21750464515767985e-22)-7437436828999331e-20)-.0011759276533443448)))):(n=0+(r=1/r)*(0+r*(1393489324453249e-21+r*(6399492042131645e-20+r*(.0011514092388917874+r*(r*(r*(-4.785580284951356*r-1.8919736488197254)-.21140713487441282)-.0001892047582600767))))),e=6998415452048457e-28+r*(r*(4.710012640030765e-9+r*(r*(r*(r*(.008733707544922887+r*(.24434533737818856+1*r))-.0011759276533443448)-7437436828999331e-20)-21750464515767985e-22))-8333784406253855e-26)),n/e)}(r-7),1+hu(n)):r<36?(n=function(r){var n,e;return 0===r?-10.39489505733089:((r<0?-r:r)<=1?(n=r*(r*(r*(r*(r*(r*(-8.214657090954655e-9*r-7.855236337967234e-7)-3825293235079675e-20)-.001194591734169687)-.025115606465534634)-.34772826653924577)-2.858272196711067)-10.39489505733089,e=1+r*(.2081963335726719+r*(.019568765731720502+r*(.0011107963810248593+r*(40850774626603926e-21+r*(9.555611230656935e-7+r*(1.185071534740229e-8+2226094836273526e-30*r))))))):(n=(r=1/r)*(r*(r*(r*(r*(r*(-10.39489505733089*r-2.858272196711067)-.34772826653924577)-.025115606465534634)-.001194591734169687)-3825293235079675e-20)-7.855236337967234e-7)-8.214657090954655e-9,e=2226094836273526e-30+r*(1.185071534740229e-8+r*(9.555611230656935e-7+r*(40850774626603926e-21+r*(.0011107963810248593+r*(.019568765731720502+r*(.2081963335726719+1*r))))))),n/e)}(r-15),1+hu(n)):1+na(2,-r))}function bh(r){return Z(r)?NaN:1===r?Re:-Cf(2,1-r)*wh(r)}var _h=.3183098861837907;function Eh(r){var n,e,t,i,o,u;return u=r,r<0&&(u=r/(r-1),n=!0),0===u?$e:1===u?$:u>1?NaN:(u<.1?o=function(r){return 0===r?1.5910034537907922:1.5910034537907922+r*(.41600074399178694+r*(.24579151426410342+r*(.17948148291490615+r*(.14455605708755515+r*(.12320099331242772+r*(.10893881157429353+r*(.09885340987159291+r*(.09143962920174975+r*(.0858425915954139+.08154111871830322*r)))))))))}(u-.05):u<.2?o=function(r){return 0===r?1.63525673226458:1.63525673226458+r*(.4711906261487323+r*(.3097284108314996+r*(.2522083117731357+r*(.22672562321968465+r*(.21577444672958598+r*(.21310877187734892+r*(.21602912460518828+r*(.2232558316330579+r*(.23418050129420992+r*(.24855768297226408+.26636380989261754*r))))))))))}(u-.15):u<.3?o=function(r){return 0===r?1.685750354812596:1.685750354812596+r*(.5417318486132803+r*(.40152443839069024+r*(.3696424734208891+r*(.37606071535458363+r*(.4052358870851259+r*(.45329438175399905+r*(.5205189476511842+r*(.609426039204995+r*(.7242635222829089+r*(.8710138477098124+1.057652872753547*r))))))))))}(u-.25):u<.4?o=function(r){return 0===r?1.7443505972256133:1.7443505972256133+r*(.6348642753719353+r*(.5398425641644455+r*(.5718927051937874+r*(.6702951362654062+r*(.8325865900109772+r*(1.0738574482479333+r*(1.4220914606754977+r*(1.9203871834023047+r*(2.6325525483316543+r*(3.6521097473190394+r*(5.115867135558866+7.224080007363877*r)))))))))))}(u-.35):u<.5?o=function(r){return 0===r?1.8138839368169826:1.8138839368169826+r*(.7631632457005573+r*(.7619286053215958+r*(.9510746536684279+r*(1.315180671703161+r*(1.9285606934774109+r*(2.9375093425313787+r*(4.594894405442878+r*(7.33007122188172+r*(11.871512597425301+r*(19.45851374822938+r*(32.20638657246427+r*(53.73749198700555+90.27388602941*r))))))))))))}(u-.45):u<.6?o=function(r){return 0===r?1.8989249102715535:1.8989249102715535+r*(.9505217946182445+r*(1.1510775899590158+r*(1.7502391069863006+r*(2.952676812636875+r*(5.285800396121451+r*(9.83248571665998+r*(18.787148683275596+r*(36.61468615273698+r*(72.45292395127771+r*(145.1079577347069+r*(293.4786396308497+r*(598.385181505501+r*(1228.4200130758634+2536.5297553827645*r)))))))))))))}(u-.55):u<.7?o=function(r){return 0===r?2.0075983984243764:2.0075983984243764+r*(1.2484572312123474+r*(1.9262346570764797+r*(3.7512896400875877+r*(8.119944554932045+r*(18.665721308735552+r*(44.603924842914374+r*(109.50920543094983+r*(274.2779548232414+r*(697.5598008606327+r*(1795.7160145002472+r*(4668.38171679039+r*(12235.762468136643+r*(32290.17809718321+r*(85713.07608195965+r*(228672.1890493117+612757.2711915852*r)))))))))))))))}(u-.65):u<.8?o=function(r){return 0===r?2.1565156474996434:2.1565156474996434+r*(1.7918056418494632+r*(3.8267512874657132+r*(10.386724683637972+r*(31.403314054680703+r*(100.92370394986955+r*(337.3268282632273+r*(1158.7079305678278+r*(4060.9907421936323+r*(14454.001840343448+r*(52076.661075994045+r*(189493.65914621568+r*(695184.5762413896+r*(2567994.048255285+r*(9541921.966748387+r*(35634927.44218076+r*(133669298.46120408+r*(503352186.68662846+r*(1901975729.53866+7208915015.330104*r))))))))))))))))))}(u-.75):u<.85?o=function(r){return 0===r?2.3181226217125106:2.3181226217125106+r*(2.6169201502912327+r*(7.897935075731356+r*(30.502397154466724+r*(131.48693655235286+r*(602.9847637356492+r*(2877.024617809973+r*(14110.519919151804+r*(70621.4408815654+r*(358977.266582531+r*(1847238.2637239718+r*(9600515.416049214+r*(50307677.08502367+r*(265444188.6527128+r*(1408862325.0287027+7515687935.373775*r))))))))))))))}(u-.825):u<.9?o=function(r){return 0===r?2.473596173751344:2.473596173751344+r*(3.727624244118099+r*(15.607393035549306+r*(84.12850842805888+r*(506.98181970406137+r*(3252.2770581451236+r*(21713.242419574344+r*(149037.04518909327+r*(1043999.3310899908+r*(7427974.817042039+r*(53503839.67558661+r*(389249886.99487084+r*(2855288351.1008105+r*(21090077038.76684+r*(156699833947.7902+r*(1170222242422.44+r*(8777948323668.9375+r*(66101242752484.95+r*(499488053713388.8+0x86813c6c7adde8*r))))))))))))))))))}(u-.875):(i=function(r){return 0===r?0:0+r*(.0625+r*(.03125+r*(.0205078125+r*(.01513671875+r*(.011934280395507812+r*(.009816169738769531+r*(.008315593004226685+r*(.007199153304100037+r*(.00633745662344154+r*(.00565311038371874+r*(.005097046040418718+r*(.004636680381850056+r*(.004249547423822886+.003919665602267974*r)))))))))))))}(t=1-u),e=function(r){return 0===r?1.5910034537907922:1.5910034537907922+r*(.41600074399178694+r*(.24579151426410342+r*(.17948148291490615+r*(.14455605708755515+r*(.12320099331242772+r*(.10893881157429353+r*(.09885340987159291+r*(.09143962920174975+r*(.0858425915954139+.08154111871830322*r)))))))))}(t-.05),o=-We(i)*(e*_h)),n?o/q(1-r):o)}function xh(r){var n,e,t,i,o,u,a;return a=r,r<0&&(a=r/(r-1),n=!0),0===a?$e:1===a?1:a>1?NaN:(a<.1?u=function(r){return 0===r?1.5509733517804722:1.5509733517804722+r*(r*(r*(r*(r*(r*(r*(r*(-.004809187786009338*r-.00580742401295609)-.007246728512402157)-.009442372874146548)-.01305950773199331)-.0197180433173655)-.034318853117591995)-.07849861944294194)-.4003010201031985)}(a-.05):a<.2?u=function(r){return 0===r?1.5101218320928198:1.5101218320928198+r*(r*(r*(r*(r*(r*(r*(r*(r*(-.011197445703074968*r-.011799303775587354)-.012759847429264804)-.01426196082884252)-.016650786739707237)-.020644781177568104)-.027965493064761784)-.04372994401908431)-.09012382040477457)-.41711633390586755)}(a-.15):a<.3?u=function(r){return 0===r?1.4674622093394272:1.4674622093394272+r*(r*(r*(r*(r*(r*(r*(r*(r*(-.03478996038640416*r-.03237139531475812)-.0309169840192389)-.030527000890325277)-.031495443512532785)-.03452772850528084)-.04139162772734022)-.05737184359324173)-.10515555766694255)-.43657629094633776)}(a-.25):a<.4?u=function(r){return 0===r?1.4226911334908792:1.4226911334908792+r*(r*(r*(r*(r*(r*(r*(r*(r*(r*(-.1607911206912746*r-.12705358515769605)-.102539850131046)-.084959075171781)-.07279389536257878)-.06519703281557247)-.06208433913173031)-.06471427847205)-.07813854509440948)-.12525053982206188)-.4595135196210487)}(a-.35):a<.5?u=function(r){return 0===r?1.3754019718711163:1.3754019718711163+r*(r*(r*(r*(r*(r*(r*(r*(r*(r*(r*(-1.3088332057585401*r-.8605232357272398)-.5757544060278792)-.39351311430437586)-.27617433306775174)-.20049532364269734)-.15221716396203505)-.12295422312026907)-.10884095252313576)-.11184944491702783)-.15331170134854022)-.4872021832731848)}(a-.45):a<.6?u=function(r){return 0===r?1.3250244979582302:1.3250244979582302+r*(r*(r*(r*(r*(r*(r*(r*(r*(r*(r*(-11.97703130208884*r-6.446753640156048)-3.5316967730957227)-1.9767211439543984)-1.1363431218392293)-.675948400853106)-.42069845728100574)-.27879895311853475)-.20275465292641914)-.17162372682201127)-.19490643048212622)-.5217276475575667)}(a-.55):a<.7?u=function(r){return 0===r?1.2707074796501499:1.2707074796501499+r*(r*(r*(r*(r*(r*(r*(r*(r*(r*(r*(r*(r*(-1137.38082216936*r-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?u=function(r){return 0===r?1.2110560275684594:1.2110560275684594+r*(r*(r*(r*(r*(r*(r*(r*(r*(r*(r*(r*(r*(r*(r*(-1104011.3443115912*r-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?u=function(r){return 0===r?1.1613071521962828:1.1613071521962828+r*(r*(r*(r*(r*(r*(r*(r*(r*(r*(r*(r*(-1920033.4136826345*r-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?u=function(r){return 0===r?1.1246173251197522:1.1246173251197522+r*(r*(r*(r*(r*(r*(r*(r*(r*(r*(r*(r*(r*(r*(r*(-36409256888.1214*r-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):(e=function(r){return 0===r?1.5910034537907922:1.5910034537907922+r*(.41600074399178694+r*(.24579151426410342+r*(.17948148291490615+r*(.14455605708755515+r*(.12320099331242772+r*(.10893881157429353+r*(.09885340987159291+r*(.09143962920174975+r*(.0858425915954139+.08154111871830322*r)))))))))}(i=.95-a),t=function(r){return 0===r?1.5509733517804722:1.5509733517804722+r*(r*(r*(r*(r*(r*(r*(r*(-.004809187786009338*r-.00580742401295609)-.007246728512402157)-.009442372874146548)-.01305950773199331)-.0197180433173655)-.034318853117591995)-.07849861944294194)-.4003010201031985)}(i),o=Eh(a),u=($e+o*(e-t))/e),n?u*q(1-r):u)}var Th=qs("elilpj:assign"),Nh=[0,0,0,0],jh=[0,0],Vh=[0,0,0,0,0,0,0,0,0];function Oh(r,n,e,t,i){var o,u,a,f,s,c,l,h,p,v,d,m,g,y,w,b,_,E,x,T,N,j,V,O,A,S,I,k;if(n<0)y=-n/(1-n),Oh(r*(f=q(1-n)),y,Nh,1,0),E=Nh[0]/Nh[2]/f,x=Nh[1]/Nh[2],T=1/Nh[2],N=NaN;else if(n>1)Oh(r*(j=q(n)),1/n,Nh,1,0),E=Nh[0]/j,x=Nh[2],T=Nh[1],N=NaN;else if(0===n)po(r,jh,1,0),E=jh[0],x=jh[1],T=1,N=r;else if(1===n)E=Yl(r),T=x=1/Ol(r),N=He(nh(r));else if(n1-lf)d=(g=(a=r/(w=2*Eh(n))+.5)%4)>=1&&g<2,c=nh(m=w*(a%1-.5)),s=1/Ol(m),E=(l=Yl(m))+(I=(S=.25*(1-n))*(c-m*s))*s,x=s-I*l,T=s+S*(c+m*s)*l,N=Y(a)*Ut+He(c)+I,d&&(E=-E,x=-x);else{S=1,I=q(1-n),k=-1,u=!1;do{if((k+=1)>8){u=!0,E=NaN,x=NaN,T=NaN,N=NaN,Th("Warning: Overflow encountered in iteration. Returning NaN for all output values.");break}v=.5*(S+I),O=.5*(S-I),I=q(S*I),S=v,Vh[k]=O/S}while(Vh[k]>=an);if(!u){for(p=r*S*(1<1;)p=.5*(p+In(Vh[k-=1]*ja(p)));po(N=h=.5*(p+In(Vh[0]*ja(p))),jh,1,0),E=jh[0],x=jh[1],T=en(o=Wa(p-h))<.1?q(1-n*E*E):x/o}}return e[i]=E,e[i+t]=x,e[i+2*t]=T,e[i+3*t]=N,e}function Ah(r,n){return Oh(r,n,[0,0,0,0],1,0)}var Sh=[0,0,0,0];var Ih=[0,0,0,0];var kh=[0,0,0,0];var Fh=[0,0,0,0];Ur(Ah,"assign",Oh),Ur(Ah,"sn",(function(r,n){return Oh(r,n,Sh,1,0),Sh[0]})),Ur(Ah,"cn",(function(r,n){return Oh(r,n,Ih,1,0),Ih[1]})),Ur(Ah,"dn",(function(r,n){return Oh(r,n,kh,1,0),kh[2]})),Ur(Ah,"am",(function(r,n){return Oh(r,n,Fh,1,0),Fh[3]}));var Bh=1e-300,Rh=2848094538889218e-321,Lh=3.725290298461914e-9,Mh=.8450629115104675,Ph=.1283791670955126,Uh=1.0270333367641007,Ch=.12837916709551256,qh=1,Yh=-.0023621185607526594,Dh=1,Wh=-.009864944034847148,zh=1,Gh=-.0098649429247001,$h=1;function Jh(r){var n,e,t,i,o,u,a;return Z(r)?NaN:r===$?1:r===K?-1:0===r?r:(r<0?(n=!0,e=-r):(n=!1,e=r),e<.84375?e=6?n?Bh-1:1-Bh:(o=1/(e*e),e<2.857142857142857?(i=Wh+o*function(r){return 0===r?-.6938585727071818:r*(r*(r*(r*(r*(-9.814329344169145*r-81.2874355063066)-184.60509290671104)-162.39666946257347)-62.375332450326006)-10.558626225323291)-.6938585727071818}(o),o=zh+o*function(r){return 0===r?19.651271667439257:19.651271667439257+r*(137.65775414351904+r*(434.56587747522923+r*(645.3872717332679+r*(429.00814002756783+r*(108.63500554177944+r*(6.570249770319282+-.0604244152148581*r))))))}(o)):(i=Gh+o*function(r){return 0===r?-.799283237680523:r*(r*(r*(r*(-483.5191916086514*r-1025.0951316110772)-637.5664433683896)-160.63638485582192)-17.757954917754752)-.799283237680523}(o),o=$h+o*function(r){return 0===r?30.33806074348246:30.33806074348246+r*(325.7925129965739+r*(1536.729586084437+r*(3199.8582195085955+r*(2553.0504064331644+r*(474.52854120695537+-22.44095244658582*r)))))}(o)),i=hu(-(t=mu(e,0))*t-.5625)*hu((t-e)*(t+e)+i/o),n?i/e-1:1-i/e))}var Zh=[function(r){return.0007087803245410644+(.000712340910470263+(35779077297597742e-22+(1.7403143962587938e-8+(8171066004730779e-26+(3688502236043496e-28+15917038551111112e-31*r)*r)*r)*r)*r)*r},function(r){return.0021479143208285143+(.0007268640236737999+(36843175430938994e-22+(1.80718412721492e-8+(8549644929604033e-26+(3885203751853429e-28+16868473576888889e-31*r)*r)*r)*r)*r)*r},function(r){return.0036165255935630175+(.0007418209232355551+(3794831995752824e-21+(1.8771627021793087e-8+(8948471512241509e-26+(4093585851777244e-28+1787206146488889e-30*r)*r)*r)*r)*r)*r},function(r){return.005115498386003198+(.0007572284073479166+(390964257267357e-20+(1.950416870430047e-8+(93687503063179e-24+(43143925959079665e-29+18939926435555556e-31*r)*r)*r)*r)*r)*r},function(r){return.006645751317267305+(.0007731040605444745+(4028951058939944e-21+(2.0271233238288382e-8+(981176313217091e-25+(4548420740601775e-28+2007635221333333e-30*r)*r)*r)*r)*r)*r},function(r){return.008208238997024121+(.0007894662961188171+(4152970155262265e-21+(2.1074693344544657e-8+(1.0278874108587318e-10+(4796520139061334e-28+21285907413333335e-31*r)*r)*r)*r)*r)*r},function(r){return.009803953727535219+(.0008063344010834284+(4281924132973699e-21+(2.1916534346907168e-8+(1.0771535136565471e-10+(5059597262369282e-28+22573462684444446e-31*r)*r)*r)*r)*r)*r},function(r){return.011433927298290302+(.0008237285838319657+(4416049531176544e-21+(2.2798861426211987e-8+(1.129129174587924e-10+(5338618936581688e-28+23944209546666666e-31*r)*r)*r)*r)*r)*r},function(r){return.013099232878814654+(.0008416700246790696+(4555595898845751e-21+(2.3723907357214174e-8+(1.1839789326602696e-10+(5634616306755024e-28+25403679644444446e-31*r)*r)*r)*r)*r)*r},function(r){return.014800987015587536+(.0008601809294634594+(4700826584881687e-21+(2.4694040760197315e-8+(1.2418779768752298e-10+(5948689037032026e-28+2695776456888889e-30*r)*r)*r)*r)*r)*r},function(r){return.01654035173939407+(.0008792845864124146+(4852019579300175e-21+(2.571177490088171e-8+(1.3030128534230821e-10+(6282009758687478e-28+28612737351111112e-31*r)*r)*r)*r)*r)*r},function(r){return.018318536789842393+(.0008990054264789172+(5009468408955337e-21+(2.677977707421807e-8+(1.3675822186304616e-10+(6635828774535271e-28+30375273884444443e-31*r)*r)*r)*r)*r)*r},function(r){return.020136801964214277+(.0009193690873767368+(51734830914104276e-22+(2.7900878609710433e-8+(1.435797640280904e-10+(7011479031104373e-28+32252476e-22*r)*r)*r)*r)*r)*r},function(r){return.021996459598282742+(.0009404024815536678+(5344391150804117e-21+(2.9078085538049375e-8+(1.507884450032973e-10+(741038136474992e-27+3425189232e-24*r)*r)*r)*r)*r)*r},function(r){return.02389887718722632+(.0009621338683590018+(55225386998049015e-22+(3.0314589961047687e-8+(1.5840826497296334e-10+(7834050047241445e-28+36381553564444445e-31*r)*r)*r)*r)*r)*r},function(r){return.025845480155298518+(.0009845929306782012+(5708291592005185e-21+(3.161378216916483e-8+(1.664647874552963e-10+(828409859287854e-27+3864997576888889e-30*r)*r)*r)*r)*r)*r},function(r){return.027837754783474698+(.0010078108563256892+(59020366493792216e-22+(3.297926355324652e-8+(1.7498524159268457e-10+(8762245912484253e-28+4106620648888889e-30*r)*r)*r)*r)*r)*r},function(r){return.029877251304899308+(.001031820424505735+(6104182969716206e-21+(3.441486035954272e-8+(1.839986307293409e-10+(9270322736636504e-28+43639844053333335e-31*r)*r)*r)*r)*r)*r},function(r){return.03196558717859645+(.0010566560976716574+(6315163319241458e-21+(3.592463833952192e-8+(1.9353584758781173e-10+(9810278385988926e-28+46381060817777776e-31*r)*r)*r)*r)*r)*r},function(r){return.03410445055258834+(.0010823541191350532+(6535435615955393e-21+(3.7512918348533524e-8+(2.0362979635817883e-10+(10384187833037281e-28+4930062526222222e-30*r)*r)*r)*r)*r)*r},function(r){return.036295603928292425+(.0011089526167995269+(6765484509551836e-21+(3.918429294991359e-8+(2.1431552202133775e-10+(10994259106646732e-28+5240994910222222e-30*r)*r)*r)*r)*r)*r},function(r){return.03854088803884051+(.001136491713417542+(7005823064124631e-21+(4.0943644083718584e-8+(2.2563034723692883e-10+(11642841011361993e-28+5572109287111111e-30*r)*r)*r)*r)*r)*r},function(r){return.04084222595478596+(.0011650136437945675+(72569945502343e-19+(4.279616186185504e-8+(2.3761401711005023e-10+(12332431172381557e-28+5924680236444444e-30*r)*r)*r)*r)*r)*r},function(r){return.04320162743154022+(.0011945628793917271+(751957435328492e-20+(4.474736455396099e-8+(2.503088521647295e-10+(13065684400300477e-28+6300053285333334e-30*r)*r)*r)*r)*r)*r},function(r){return.04562119351381047+(.001225186260806753+(7794172005555192e-21+(4.680311983095446e-8+(2.6375990983978426e-10+(1384542137097712e-27+66996477404444446e-31*r)*r)*r)*r)*r)*r},function(r){return.048103121413299865+(.0012569331386432195+(8081433349636768e-21+(4.896966733568202e-8+(2.7801515481905746e-10+(14674637611609885e-28+7124958935111111e-30*r)*r)*r)*r)*r)*r},function(r){return.05064970967698334+(.0012898555233099055+(838204284145688e-20+(5.125364265255184e-8+(2.9312563849675507e-10+(15556512782814827e-28+7577560782222223e-30*r)*r)*r)*r)*r)*r},function(r){return.053263363664388864+(.0013240082443256975+(8696726001500767e-21+(5.36621027503968e-8+(3.09145687866348e-10+(16494420240828494e-28+8059107964444444e-30*r)*r)*r)*r)*r)*r},function(r){return.05594660135350001+(.001359449119740819+(9026252023301638e-21+(5.6202552975056696e-8+(3.261331041050314e-10+(17491936862246368e-28+8571338168888888e-30*r)*r)*r)*r)*r)*r},function(r){return.058702059496154084+(.0013962391363223647+(9371436548731279e-21+(5.8882975670265285e-8+(3.4414937110591756e-10+(1855285310975186e-27+911607367111111e-29*r)*r)*r)*r)*r)*r},function(r){return.061532500145144775+(.0014344426411912014+(9733144620101681e-21+(6.171186050734718e-8+(3.63259874182953e-10+(19681183310134517e-28+969522384e-23*r)*r)*r)*r)*r)*r},function(r){return.06444081757665329+(.0014741275456383132+(10112293819576438e-21+(6.469823660593325e-8+(3.8353412915303665e-10+(2088117611438512e-27+1031078448e-23*r)*r)*r)*r)*r)*r},function(r){return.06743004563313039+(.001515365541891654+(10509857606888329e-21+(6.785170652936334e-8+(4.050460219481114e-10+(22157325110542536e-28+10964842115555555e-30*r)*r)*r)*r)*r)*r},function(r){return.07050336551333886+(.001558232333649571+(1092686886686523e-20+(7.118248223961351e-8+(4.2787405890153386e-10+(2351437952227442e-27+11659571751111111e-30*r)*r)*r)*r)*r)*r},function(r){return.0736641140379446+(.001602807881243882+(11364423678778208e-21+(7.470142309742318e-8+(4.521016277747649e-10+(2495735500408857e-27+12397238257777777e-30*r)*r)*r)*r)*r)*r},function(r){return.07691579242081956+(.0016491766623447889+(11823685320041301e-21+(7.842007599378154e-8+(4.778172695691648e-10+(26491544403815725e-28+13180196462222222e-30*r)*r)*r)*r)*r)*r},function(r){return.08026207557809462+(.0016974279491709504+(12305888517309891e-21+(8.235071769897904e-8+(5.051149610985711e-10+(281225284976269e-26+14010889635555555e-30*r)*r)*r)*r)*r)*r},function(r){return.08370682200898036+(.0017476561032212657+(12812343958540764e-21+(8.650639951503644e-8+(5.340944082386946e-10+(29856186620887555e-28+1489185159111111e-29*r)*r)*r)*r)*r)*r},function(r){return.08725408428446171+(.0017999608886001962+(13344443080089493e-21+(9.0900994316429e-8+(5.648613497261646e-10+(3169870708003396e-27+15825697795555556e-30*r)*r)*r)*r)*r)*r},function(r){return.09090812018217274+(.00185444780506577+(1390366314342612e-20+(9.554924606254991e-8+(5.975278712524205e-10+(336565973660991e-26+16815130613333334e-30*r)*r)*r)*r)*r)*r},function(r){return.09467340450807549+(.0019112284419887304+(14491572616545005e-21+(1.0046682186333614e-7+(6.3221272959791e-10+(3573669397558913e-27+1786293159111111e-29*r)*r)*r)*r)*r)*r},function(r){return.09855464164800445+(.0019704208544725622+(15109836875625445e-21+(1.0567036667675984e-7+(6.690416864001935e-10+(3794617185082434e-27+1897195904e-23*r)*r)*r)*r)*r)*r},function(r){return.1025567788947009+(.0020321499629472857+(1576022424296218e-20+(1.1117756071353507e-7+(7.081478511009766e-10+(4029255327663256e-27+20145143075555556e-30*r)*r)*r)*r)*r)*r},function(r){return.10668502059865094+(.002096547977614873+(16444612377624982e-21+(1.1700717962026153e-7+(7.496720325093842e-10+(42783716186085925e-28+2138547936e-23*r)*r)*r)*r)*r)*r},function(r){return.11094484319386444+(.002163754849190817+(17164995035719656e-21+(1.2317915750735938e-7+(7.937630983149963e-10+(4542790176310636e-27+22696025653333333e-30*r)*r)*r)*r)*r)*r},function(r){return.11534201115268805+(.002233918747454642+(17923489217504226e-21+(1.2971465288245997e-7+(8.405783418038907e-10+(48233721206418025e-28+24079890062222222e-30*r)*r)*r)*r)*r)*r},function(r){return.11988259392684095+(.002307196569191869+(18722342718958937e-21+(1.3663611754337958e-7+(8.902838548849328e-10+(5121016156922585e-27+2554022711111111e-29*r)*r)*r)*r)*r)*r},function(r){return.12457298393509812+(.0023837544771809576+(1956394210571161e-20+(1.439673684773947e-7+(9.430549064645925e-10+(5436659058313422e-27+2708022592e-23*r)*r)*r)*r)*r)*r},function(r){return.12941991566142438+(.002463768471950886+(2045082112747588e-20+(1.5173366280523906e-7+(9.990763250638903e-10+(5771276031135163e-27+28703099555555555e-30*r)*r)*r)*r)*r)*r},function(r){return.13443048593088697+(.0025474249981080823+(21385669591362916e-21+(1.5996177579900442e-7+(1.0585428844575133e-9+(6125880953678788e-27+3041208014222222e-29*r)*r)*r)*r)*r)*r},function(r){return.13961217543434562+(.0026349215871051762+(22371342712572568e-21+(1.6868008199296823e-7+(1.1216596910444997e-9+(6501526475309089e-27+3221039450666667e-29*r)*r)*r)*r)*r)*r},function(r){return.144972871576738+(.002726467538398244+(2341087096105095e-20+(1.7791863939526378e-7+(1.1886425714330958e-9+(68993039665054284e-28+34101266222222225e-30*r)*r)*r)*r)*r)*r},function(r){return.15052089272774619+(.0028222846410136237+(24507470422713398e-21+(1.8770927679626137e-7+(1.259718458758337e-9+(7320343304922983e-27+36087889048888887e-30*r)*r)*r)*r)*r)*r},function(r){return.1562650139577461+(.0029226079376196627+(2566455369376845e-20+(1.9808568415654462e-7+(1.3351257759815557e-9+(7765812489104676e-27+3817342003555556e-29*r)*r)*r)*r)*r)*r},function(r){return.16221449434620738+(.0030276865332726477+(26885741326534563e-21+(2.0908350604346383e-7+(1.415114814424073e-9+(8236917066597432e-27+4036095745777778e-29*r)*r)*r)*r)*r)*r},function(r){return.1683791059541213+(.0031377844510793083+(28174873844911173e-21+(2.2074043807045782e-7+(1.499948105599609e-9+(8734899366193081e-27+4265352897777778e-29*r)*r)*r)*r)*r)*r},function(r){return.1747691645565937+(.0032531815370903066+(29536024347344365e-21+(2.3309632627767074e-7+(1.5899007843582445e-9+(9261037523542736e-27+45054073102222224e-30*r)*r)*r)*r)*r)*r},function(r){return.18139556223643702+(.0033741744168097+(309735117147095e-19+(2.461932693759229e-7+(1.6852609412267751e-9+(981664429428549e-26+4756541809777778e-29*r)*r)*r)*r)*r)*r},function(r){return.18826980194443665+(.0035010775057740316+(3249191444001427e-20+(2.600757237588632e-7+(1.7863299617388377e-9+(10403065638343878e-27+5019026583111111e-29*r)*r)*r)*r)*r)*r},function(r){return.19540403413693969+(.0036342240767211326+(34096085096200906e-21+(2.7479061117017636e-7+(1.8934228504790033e-9+(11021679075323599e-27+5293117173333333e-29*r)*r)*r)*r)*r)*r},function(r){return.20281109560651886+(.00377396738593236+(3579116545759241e-20+(2.9038742889416174e-7+(2.0068685374849e-9+(11673891799578381e-27+55790523093333335e-30*r)*r)*r)*r)*r)*r},function(r){return.21050455062669335+(.003920681861392565+(37582602289680105e-21+(3.0691836231886877e-7+(2.1270101645763676e-9+(12361138551062899e-27+5877052016e-23*r)*r)*r)*r)*r)*r},function(r){return.21849873453703333+(.004074764355468959+(3947616382098671e-20+(3.244383997013992e-7+(2.254205349151868e-9+(13084879235290859e-27+6187315326222222e-29*r)*r)*r)*r)*r)*r},function(r){return.2268087999004323+(.004236635464862852+(41477956909656896e-21+(3.430054489450281e-7+(2.3888264229264067e-9+(13846596292818514e-27+6510018375111112e-29*r)*r)*r)*r)*r)*r},function(r){return.23545076536988704+(.004406740920636517+(435944449162247e-19+(3.6268045617760415e-7+(2.53126064308532e-9+(14647791812837902e-27+6845312263111111e-29*r)*r)*r)*r)*r)*r},function(r){return.24444156740777434+(.004585553051160578+(45832466292683086e-21+(3.835275259003303e-7+(2.6819103733055602e-9+(15489984390884758e-27+7193320636444444e-29*r)*r)*r)*r)*r)*r},function(r){return.25379911500634267+(.004773572320865003+(48199253896534185e-21+(4.0561404245564733e-7+(2.8411932320871164e-9+(1637470573645832e-26+7554137982222222e-29*r)*r)*r)*r)*r)*r},function(r){return.26354234756393613+(.0049713289477083785+(5070245503693037e-20+(4.2901079254268185e-7+(3.009542205890048e-9+(1730349702534734e-26+7927827336888888e-29*r)*r)*r)*r)*r)*r},function(r){return.27369129607732345+(.005179384602305264+(533501522583266e-19+(4.537920884886502e-7+(3.187405724581438e-9+(1827790501024511e-26+8314418236444444e-29*r)*r)*r)*r)*r)*r},function(r){return.28426714781640317+(.005398334191669514+(5615088486525581e-20+(4.800358919649474e-7+(3.3752476967570798e-9+(19299477888083468e-27+8713904913777777e-29*r)*r)*r)*r)*r)*r},function(r){return.2952923146534852+(.0056288077305420795+(5911367118991331e-20+(5.078239378174484e-7+(3.5735475025851714e-9+(2036976093701707e-26+9126244261333333e-29*r)*r)*r)*r)*r)*r},function(r){return.3067905052252884+(.00587147230327454+(6224803160219768e-20+(5.372418576620094e-7+(3.782799941896024e-9+(2149029193044454e-26+9551353918222223e-29*r)*r)*r)*r)*r)*r},function(r){return.3187868011117332+(.00612703411923391+(6556401225970764e-20+(5.683793028783774e-7+(4.003515135339238e-9+(22662596341239295e-27+9989110976e-23*r)*r)*r)*r)*r)*r},function(r){return.33130773722152623+(.006396240664679808+(690722095929424e-19+(6.013300666188594e-7+(4.236218376588347e-9+(23888182347073697e-27+10439349811555555e-29*r)*r)*r)*r)*r)*r},function(r){return.34438138658041334+(.0066798829540414+(7278379551860356e-20+(6.36192204432288e-7+(4.481449933651445e-9+(25168535651285476e-27+10901861383111111e-29*r)*r)*r)*r)*r)*r},function(r){return.35803744972380175+(.006978797883488269+(7671054337145482e-20+(6.730681530891739e-7+(4.739764797584523e-9+(2650511414114305e-26+11376390933333332e-29*r)*r)*r)*r)*r)*r},function(r){return.37230734890119727+(.007293870689646138+(8086485454267072e-20+(7.120648471806269e-7+(5.0117323769745884e-9+(27899342394100073e-27+11862637614222222e-29*r)*r)*r)*r)*r)*r},function(r){return.3872243273055545+(.00762603751625498+(8525978581000461e-20+(7.532938330517133e-7+(5.297936136838812e-9+(2935260605416409e-26+12360253370666666e-29*r)*r)*r)*r)*r)*r},function(r){return.4028235535461694+(.007976288091502973+(8990907734243825e-20+(7.968713796195619e-7+(5.5989731807360405e-9+(30866246101464866e-27+12868841946666668e-29*r)*r)*r)*r)*r)*r},function(r){return.4191422315891379+(.008345668518695046+(9482718135925016e-20+(8.429185856178314e-7+(5.915453775108349e-9+(3244155303434747e-26+1338795794311111e-28*r)*r)*r)*r)*r)*r},function(r){return.43621971639463786+(.00873528418282895+(.000100029291420668+(8.915614828021988e-7+(6.24800081507886e-9+(3407976098345888e-26+13917107176888888e-29*r)*r)*r)*r)*r)*r},function(r){return.4540976354853433+(.009146302775554824+(.00010553137232446167+(9.429311346463863e-7+(6.597249231221996e-9+(35782041795476564e-27+14455745872e-23*r)*r)*r)*r)*r)*r},function(r){return.4728200166851233+(.009579957440886046+(.00011135019058000067+(9.971637300550903e-7+(6.963845336995697e-9+(37549499088161346e-27+1500328071288889e-28*r)*r)*r)*r)*r)*r},function(r){return.4924334222717984+(.010037550043909497+(.00011750334542845235+(10544006716188967e-22+(7.348446116824222e-9+(3938316232643575e-26+15559069118222223e-29*r)*r)*r)*r)*r)*r},function(r){return.5129870897920926+(.010520454564612427+(.00012400930037494997+(11147886579371265e-22+(7.75171845505687e-9+(41283980931872625e-27+1612241968e-22*r)*r)*r)*r)*r)*r},function(r){return.5345330797910137+(.011030120618800727+(.0001308874151957227+(11784797595374515e-22+(8.174338306304482e-9+(43252818449517084e-27+1669259264e-22*r)*r)*r)*r)*r)*r},function(r){return.557126430711693+(.011568077107929736+(.00013815797838036652+(12456314879260905e-22+(8.616989807896932e-9+(4529044681153965e-26+17268801084444443e-29*r)*r)*r)*r)*r)*r},function(r){return.5808253212251933+(.012135935999503878+(.0001458422399666584+(1316406857309571e-21+(9.080364335510602e-9+(4739754071312462e-26+1785021160888889e-28*r)*r)*r)*r)*r)*r},function(r){return.6056912402529337+(.01273539623952555+(.00015396244472258864+(13909744385382817e-22+(9.565159503230623e-9+(4957467212766904e-26+18435945564444444e-29*r)*r)*r)*r)*r)*r},function(r){return.6317891649471572+(.013368247798287032+(.00016254186562762076+(14695084048334055e-22+(1.0072078109604152e-8+(5182230499568071e-26+19025081422222223e-29*r)*r)*r)*r)*r)*r},function(r){return.6591877468972532+(.014036375850601992+(.00017160483760259707+(15521885688723188e-22+(1.060182703153528e-8+(5414079010583752e-26+19616655146666667e-29*r)*r)*r)*r)*r)*r},function(r){return.6879595068317443+(.014741765091365868+(.00018117679143520433+(16392004108230584e-22+(1.1155116068018043e-8+(5653036019492569e-26+20209663662222222e-29*r)*r)*r)*r)*r)*r},function(r){return.7181810380872997+(.015486504187117112+(.00019128428784550924+(17307350969359975e-22+(1.1732656736113608e-8+(5899112528756384e-26+20803065333333334e-29*r)*r)*r)*r)*r)*r},function(r){return.7499332191172625+(.016272790364044783+(.00020195505163377912+(18269894883203348e-22+(1.2335161021630225e-8+(6152306831216908e-26+21395783431111112e-29*r)*r)*r)*r)*r)*r},function(r){return.7833014353128349+(.01710293413265243+(.00021321800585063328+(19281661395543912e-22+(1.2963340087354342e-8+(6412604099806635e-26+21986708942222223e-29*r)*r)*r)*r)*r)*r},function(r){return.8183758104102381+(.017979364149044223+(.0002251033059275313+(20344732868018175e-22+(1.361790294183995e-8+(6679976008397248e-26+2257470126222222e-28*r)*r)*r)*r)*r)*r},function(r){return.8552514477568512+(.01890463221254756+(.00023764237370371255+(2146124825130639e-21+(1.4299555071870523e-8+(6954380386469418e-26+23158593688888887e-29*r)*r)*r)*r)*r)*r},function(r){return.8940286817084994+(.0198814183991272+(.00025086793128395994+(22633402747585233e-22+(1.500899704211653e-8+(7235760907504394e-26+23737194737777777e-29*r)*r)*r)*r)*r)*r},function(r){return.9348133394287079+(.02091253632978037+(.0002648140346599848+(23863447359754924e-22+(1.5746923065472183e-8+(7524046814172015e-26+24309291271111114e-29*r)*r)*r)*r)*r)*r},function(r){return.9777170133588503+(.02200093857283048+(.0002795161070268238+(25153688325245316e-22+(1.651401954782282e-8+(7819152682936823e-26+24873652355555557e-29*r)*r)*r)*r)*r)*r},function(){return 1}];function Hh(r){var n=Y(r);return(0,Zh[n])(2*r-(2*n+1))}var Kh=.5641895835477563;var Xh=.08913147449493408,Qh=2.249481201171875,rp=.807220458984375,np=.9399557113647461,ep=.9836282730102539;function tp(r){var n,e,t,i,o;return Z(r)?NaN:1===r?$:-1===r?K:0===r?r:r>1||r<-1?NaN:(r<0?(n=-1,e=-r):(n=1,e=r),t=1-e,e<=.5?(i=e*(e+10),o=function(r){var n,e;return 0===r?-.0005087819496582806:((r<0?-r:r)<=1?(n=r*(r*(.03348066254097446+r*(r*(r*(.02198786811111689+r*(.008226878746769157+r*(r*(0+0*r)-.005387729650712429)))-.03656379714117627)-.012692614766297404))-.008368748197417368)-.0005087819496582806,e=1+r*(r*(r*(1.5622155839842302+r*(.662328840472003+r*(r*(r*(.07952836873415717+r*(.0008862163904564247*r-.0023339375937419))-.05273963823400997)-.7122890234154284)))-1.5657455823417585)-.9700050433032906)):(n=0+(r=1/r)*(0+r*(r*(.008226878746769157+r*(.02198786811111689+r*(r*(r*(.03348066254097446+r*(-.0005087819496582806*r-.008368748197417368))-.012692614766297404)-.03656379714117627)))-.005387729650712429)),e=.0008862163904564247+r*(r*(.07952836873415717+r*(r*(r*(.662328840472003+r*(1.5622155839842302+r*(r*(1*r-.9700050433032906)-1.5657455823417585)))-.7122890234154284)-.05273963823400997))-.0023339375937419)),n/e)}(e),n*(i*Xh+i*o)):t>=.25?(i=q(-2*We(t)),o=function(r){var n,e;return 0===r?-.20243350835593876:((r<0?-r:r)<=1?(n=r*(.10526468069939171+r*(8.3705032834312+r*(17.644729840837403+r*(r*(r*(17.445385985570866+r*(21.12946554483405+-3.6719225470772936*r))-44.6382324441787)-18.851064805871424))))-.20243350835593876,e=1+r*(6.242641248542475+r*(3.971343795334387+r*(r*(r*(48.560921310873994+r*(10.826866735546016+r*(1.7211476576120028*r-22.643693341313973)))-20.14326346804852)-28.66081804998)))):(n=(r=1/r)*(21.12946554483405+r*(17.445385985570866+r*(r*(r*(17.644729840837403+r*(8.3705032834312+r*(.10526468069939171+-.20243350835593876*r)))-18.851064805871424)-44.6382324441787)))-3.6719225470772936,e=1.7211476576120028+r*(r*(10.826866735546016+r*(48.560921310873994+r*(r*(r*(3.971343795334387+r*(6.242641248542475+1*r))-28.66081804998)-20.14326346804852)))-22.643693341313973)),n/e)}(t-=.25),n*(i/(Qh+o))):(t=q(-We(t)))<3?(o=function(r){var n,e;return 0===r?-.1311027816799519:((r<0?-r:r)<=1?(n=r*(r*(.11703015634199525+r*(.38707973897260434+r*(.3377855389120359+r*(.14286953440815717+r*(.029015791000532906+r*(.0021455899538880526+r*(r*(2.8522533178221704e-8+-6.81149956853777e-10*r)-6.794655751811263e-7)))))))-.16379404719331705)-.1311027816799519,e=1+r*(3.4662540724256723+r*(5.381683457070069+r*(4.778465929458438+r*(2.5930192162362027+r*(.848854343457902+r*(.15226433829533179+r*(.011059242293464892+r*(0+r*(0+0*r)))))))))):(n=(r=1/r)*(2.8522533178221704e-8+r*(r*(.0021455899538880526+r*(.029015791000532906+r*(.14286953440815717+r*(.3377855389120359+r*(.38707973897260434+r*(.11703015634199525+r*(-.1311027816799519*r-.16379404719331705)))))))-6.794655751811263e-7))-6.81149956853777e-10,e=0+r*(0+r*(0+r*(.011059242293464892+r*(.15226433829533179+r*(.848854343457902+r*(2.5930192162362027+r*(4.778465929458438+r*(5.381683457070069+r*(3.4662540724256723+1*r)))))))))),n/e)}(t-1.125),n*(rp*t+o*t)):t<6?(o=function(r){var n,e;return 0===r?-.0350353787183178:((r<0?-r:r)<=1?(n=r*(r*(.018557330651423107+r*(.009508047013259196+r*(.0018712349281955923+r*(.00015754461742496055+r*(460469890584318e-20+r*(26633922742578204e-28*r-2.304047769118826e-10))))))-.0022242652921344794)-.0350353787183178,e=1+r*(1.3653349817554064+r*(.7620591645536234+r*(.22009110576413124+r*(.03415891436709477+r*(.00263861676657016+r*(7646752923027944e-20+r*(0+0*r)))))))):(n=26633922742578204e-28+(r=1/r)*(r*(460469890584318e-20+r*(.00015754461742496055+r*(.0018712349281955923+r*(.009508047013259196+r*(.018557330651423107+r*(-.0350353787183178*r-.0022242652921344794))))))-2.304047769118826e-10),e=0+r*(0+r*(7646752923027944e-20+r*(.00263861676657016+r*(.03415891436709477+r*(.22009110576413124+r*(.7620591645536234+r*(1.3653349817554064+1*r)))))))),n/e)}(t-3),n*(np*t+o*t)):(o=function(r){var n,e;return 0===r?-.016743100507663373:((r<0?-r:r)<=1?(n=r*(r*(.001056288621524929+r*(.00020938631748758808+r*(14962478375834237e-21+r*(4.4969678992770644e-7+r*(4.625961635228786e-9+r*(9905570997331033e-32*r-2811287356288318e-29))))))-.0011295143874558028)-.016743100507663373,e=1+r*(.5914293448864175+r*(.1381518657490833+r*(.016074608709367652+r*(.0009640118070051656+r*(27533547476472603e-21+r*(2.82243172016108e-7+r*(0+0*r)))))))):(n=9905570997331033e-32+(r=1/r)*(r*(4.625961635228786e-9+r*(4.4969678992770644e-7+r*(14962478375834237e-21+r*(.00020938631748758808+r*(.001056288621524929+r*(-.016743100507663373*r-.0011295143874558028))))))-2811287356288318e-29),e=0+r*(0+r*(2.82243172016108e-7+r*(27533547476472603e-21+r*(.0009640118070051656+r*(.016074608709367652+r*(.1381518657490833+r*(.5914293448864175+1*r)))))))),n/e)}(t-6),n*(ep*t+o*t)))}var ip=-1022;function op(r){var n,e,t;return Z(r)?r:r>Kt?$:rYc?$:r=lp?$:pa(r)/r}function pp(r){return Or(r)?NaN:cf(r+1)}var vp=170;function dp(r,n){var e,t,i,o,u;return Z(r)||!Ir(n)?NaN:0===r?0:r<0?(1&n?-1:1)*function(r,n){var e,t;return Z(r)||!G(n)?NaN:r<0?(n<0&&(r+=n,n=-n,t=!0),e=(1&n?-1:1)*dp(-r,n),t&&(e=1/e),e):0===n?1:0===r?n<0?-Ca(r+1,-n):0:r<1&&r+n<0?(e=Ca(1-r,-n),1&n?-e:e):1/Ca(r,n)}(-r,n):0===n?1:r<.5?n>vp-2?(o=r*dp(r-1,vp-2),u=dp(r-vp+1,n-vp+1),on/en(o)(n=mp(n))?gp*r+yp*n:gp*n+yp*r}function bp(r,n){return r>n?r+(n>>>1):(r>>>1)+n}function _p(r){var n,e;return((e=0|r)^(n=e>>31|0))-n|0}function Ep(r,n){return(r=_p(r))>(n=_p(n))?r+(n>>>1):(r>>>1)+n}function xp(r,n){return r>n?r+(n>>>2):(r>>>2)+n}function Tp(r,n){return(r=_p(r))>(n=_p(n))?r+(n>>>2):(r>>>2)+n}Ur(wp,"factory",(function(r,n,e,t){if(t){if(1===r&&.5===n)return e?bp:Ep;if(1===r&&.25===n)return e?xp:Tp}return e?function(r,n){return function(e,t){return e>t?r*e+n*t:n*e+r*t}}(r,n):function(r,n){return function(e,t){return(e=mp(e))>(t=mp(t))?r*e+n*t:n*e+r*t}}(r,n)}));var Np={};C(Np,"abs",mp),C(Np,"acosh",(function(r){return r<1?NaN:Z(r)||Nr(r)?r:We(r+q(r+1)*q(r-1))})),C(Np,"ampbm",wp),C(Np,"asinh",(function(r){return 0===r||Z(r)||Nr(r)?r:r>0?We(r+q(r*r+1)):-We(-r+q(r*r+1))})),C(Np,"atanh",(function(r){return 0===r?r:Z(r)||Nr(r)?NaN:.5*We((1+r)/(1-r))})),C(Np,"hypot",(function(r,n){return q(r*r+n*n)})),C(Np,"max",(function(r,n){return r>n?r:n})),C(Np,"min",(function(r,n){return r>=1;return e})),C(Np,"log2Uint32",(function(r){var n=0,e=r>>>0;return 4294901760&e&&(e>>>=16,n|=16),65280&e&&(e>>>=8,n|=8),240&e&&(e>>>=4,n|=4),12&e&&(e>>>=2,n|=2),2&e&&(e>>>=1,n|=1),n})),C(Np,"sqrtUint32",(function(r){var n,e,t,i;for(i=r>>>0,n=0,e=1073741824;e>i;)e>>>=2;for(;0!==e;)t=n+e>>>0,n>>>=1,r>=t&&(r-=t,n+=e),e>>>=2;return n>>>0}));var jp=[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 Vp=We(Tc);var Op=[0,0];function Ap(r){var n,e;return Z(r)||Nr(r)||0===r?r:(r<0?(r=-r,n=-1):n=1,(e=tl(r))===Qt?r:(e=1===n?Y(e):tu(e))>Kt?K:n*na(2,e))}function Sp(r){var n,e;return Z(r)||Nr(r)||0===r?r:(r<0?(r=-r,n=-1):n=1,e=vl(r),(e=1===n?Y(e):tu(e))<=Wc?0*n:e>Yc?K:n*na(10,e))}var Ip=Math.floor;var kp=[0,0];function Fp(r,n,e,t){var i,o,u,a,f,s;return(i=(o=en(r))*o)<2.5625?(f=i*i,n[t]=o*i*function(r){var n,e;return 0===r?.5235987755982989:((r<0?-r:r)<=1?(n=318016297876.5678+r*(r*(2548908805.7337637+r*(r*(708840.0452577386+r*(0*r-2991.8191940101983))-62974148.62058625))-44297951805.96978),e=607366389490.0846+r*(22441179564.534092+r*(419320245.8981112+r*(5173438.887700964+r*(45584.78108065326+r*(281.3762688899943+1*r)))))):(n=0+(r=1/r)*(r*(708840.0452577386+r*(r*(2548908805.7337637+r*(318016297876.5678*r-44297951805.96978))-62974148.62058625))-2991.8191940101983),e=1+r*(281.3762688899943+r*(45584.78108065326+r*(5173438.887700964+r*(419320245.8981112+r*(22441179564.534092+607366389490.0846*r)))))),n/e)}(f),n[t+e]=o*function(r){var n,e;return 0===r?1:((r<0?-r:r)<=1?(n=1+r*(r*(.018884331939670384+r*(r*(9504280628298596e-21+r*(0*r-4.9884311457357354e-8))-.0006451914356839651))-.20552590095501388),e=1+r*(.04121420907221998+r*(.0008680295429417843+r*(12226278902417902e-21+r*(1.2500186247959882e-7+r*(9.154392157746574e-10+399982968972496e-26*r)))))):(n=0+(r=1/r)*(r*(9504280628298596e-21+r*(r*(.018884331939670384+r*(1*r-.20552590095501388))-.0006451914356839651))-4.9884311457357354e-8),e=399982968972496e-26+r*(9.154392157746574e-10+r*(1.2500186247959882e-7+r*(12226278902417902e-21+r*(.0008680295429417843+r*(.04121420907221998+1*r)))))),n/e)}(f)):o>36974?(n[t+e]=.5,n[t]=.5):(s=1/((f=Ut*(i=o*o))*f),f=1/f,u=1-s*function(r){var n,e;return 0===r?2.999999999999634:((r<0?-r:r)<=1?(n=3.763297112699879e-20+r*(13428327623306275e-32+r*(17201074326816183e-29+r*(1.0230451416490724e-10+r*(3.055689837902576e-8+r*(46361374928786735e-22+r*(.000345017939782574+r*(.011522095507358577+r*(.1434079197807589+r*(.4215435550436775+0*r))))))))),e=1.2544323709001127e-20+r*(45200143407412973e-33+r*(5887545336215784e-29+r*(36014002958937136e-27+r*(1.1269922476399903e-8+r*(18462756734893055e-22+r*(.00015593440916415301+r*(.0064405152650885865+r*(.11688892585919138+r*(.7515863983533789+1*r)))))))))):(n=0+(r=1/r)*(.4215435550436775+r*(.1434079197807589+r*(.011522095507358577+r*(.000345017939782574+r*(46361374928786735e-22+r*(3.055689837902576e-8+r*(1.0230451416490724e-10+r*(17201074326816183e-29+r*(13428327623306275e-32+3.763297112699879e-20*r))))))))),e=1+r*(.7515863983533789+r*(.11688892585919138+r*(.0064405152650885865+r*(.00015593440916415301+r*(18462756734893055e-22+r*(1.1269922476399903e-8+r*(36014002958937136e-27+r*(5887545336215784e-29+r*(45200143407412973e-33+1.2544323709001127e-20*r)))))))))),n/e)}(s),a=f*function(r){var n,e;return 0===r?1:((r<0?-r:r)<=1?(n=18695871016278324e-38+r*(8363544356306774e-34+r*(1375554606332618e-30+r*(10826804113902088e-28+r*(4.4534441586175015e-10+r*(9.828524436884223e-8+r*(11513882611188428e-21+r*(.0006840793809153931+r*(.018764858409257526+r*(.1971028335255234+r*(.5044420736433832+0*r)))))))))),e=18695871016278324e-38+r*(8391588162831187e-34+r*(13879653125957886e-31+r*(11027321506624028e-28+r*(4.6068072814652043e-10+r*(1.0431458965757199e-7+r*(12754507566772912e-21+r*(.0008146791071843061+r*(.02536037414203388+r*(.33774898912002+r*(1.4749575992512833+1*r))))))))))):(n=0+(r=1/r)*(.5044420736433832+r*(.1971028335255234+r*(.018764858409257526+r*(.0006840793809153931+r*(11513882611188428e-21+r*(9.828524436884223e-8+r*(4.4534441586175015e-10+r*(10826804113902088e-28+r*(1375554606332618e-30+r*(8363544356306774e-34+18695871016278324e-38*r)))))))))),e=1+r*(1.4749575992512833+r*(.33774898912002+r*(.02536037414203388+r*(.0008146791071843061+r*(12754507566772912e-21+r*(1.0431458965757199e-7+r*(4.6068072814652043e-10+r*(11027321506624028e-28+r*(13879653125957886e-31+r*(8391588162831187e-34+18695871016278324e-38*r))))))))))),n/e)}(s),po(f=$e*i,kp,1,0),f=Ut*o,n[t+e]=.5+(u*kp[0]-a*kp[1])/f,n[t]=.5-(u*kp[1]+a*kp[0])/f),r<0&&(n[t+e]=-n[t+e],n[t]=-n[t]),n}function Bp(r){return Fp(r,[0,0],1,0)}Ur(Bp,"assign",Fp);var Rp=[0,0];function Lp(r){var n,e,t,i,o,u,a;return(n=(e=en(r))*e)<2.5625?t=e*function(r){var n,e;return 0===r?1:((r<0?-r:r)<=1?(n=1+r*(r*(.018884331939670384+r*(r*(9504280628298596e-21+r*(0*r-4.9884311457357354e-8))-.0006451914356839651))-.20552590095501388),e=1+r*(.04121420907221998+r*(.0008680295429417843+r*(12226278902417902e-21+r*(1.2500186247959882e-7+r*(9.154392157746574e-10+399982968972496e-26*r)))))):(n=0+(r=1/r)*(r*(9504280628298596e-21+r*(r*(.018884331939670384+r*(1*r-.20552590095501388))-.0006451914356839651))-4.9884311457357354e-8),e=399982968972496e-26+r*(9.154392157746574e-10+r*(1.2500186247959882e-7+r*(12226278902417902e-21+r*(.0008680295429417843+r*(.04121420907221998+1*r)))))),n/e)}(u=n*n):e>36974?t=.5:(a=1/((u=Ut*(n=e*e))*u),u=1/u,i=1-a*function(r){var n,e;return 0===r?2.999999999999634:((r<0?-r:r)<=1?(n=3.763297112699879e-20+r*(13428327623306275e-32+r*(17201074326816183e-29+r*(1.0230451416490724e-10+r*(3.055689837902576e-8+r*(46361374928786735e-22+r*(.000345017939782574+r*(.011522095507358577+r*(.1434079197807589+r*(.4215435550436775+0*r))))))))),e=1.2544323709001127e-20+r*(45200143407412973e-33+r*(5887545336215784e-29+r*(36014002958937136e-27+r*(1.1269922476399903e-8+r*(18462756734893055e-22+r*(.00015593440916415301+r*(.0064405152650885865+r*(.11688892585919138+r*(.7515863983533789+1*r)))))))))):(n=0+(r=1/r)*(.4215435550436775+r*(.1434079197807589+r*(.011522095507358577+r*(.000345017939782574+r*(46361374928786735e-22+r*(3.055689837902576e-8+r*(1.0230451416490724e-10+r*(17201074326816183e-29+r*(13428327623306275e-32+3.763297112699879e-20*r))))))))),e=1+r*(.7515863983533789+r*(.11688892585919138+r*(.0064405152650885865+r*(.00015593440916415301+r*(18462756734893055e-22+r*(1.1269922476399903e-8+r*(36014002958937136e-27+r*(5887545336215784e-29+r*(45200143407412973e-33+1.2544323709001127e-20*r)))))))))),n/e)}(a),o=u*function(r){var n,e;return 0===r?1:((r<0?-r:r)<=1?(n=18695871016278324e-38+r*(8363544356306774e-34+r*(1375554606332618e-30+r*(10826804113902088e-28+r*(4.4534441586175015e-10+r*(9.828524436884223e-8+r*(11513882611188428e-21+r*(.0006840793809153931+r*(.018764858409257526+r*(.1971028335255234+r*(.5044420736433832+0*r)))))))))),e=18695871016278324e-38+r*(8391588162831187e-34+r*(13879653125957886e-31+r*(11027321506624028e-28+r*(4.6068072814652043e-10+r*(1.0431458965757199e-7+r*(12754507566772912e-21+r*(.0008146791071843061+r*(.02536037414203388+r*(.33774898912002+r*(1.4749575992512833+1*r))))))))))):(n=0+(r=1/r)*(.5044420736433832+r*(.1971028335255234+r*(.018764858409257526+r*(.0006840793809153931+r*(11513882611188428e-21+r*(9.828524436884223e-8+r*(4.4534441586175015e-10+r*(10826804113902088e-28+r*(1375554606332618e-30+r*(8363544356306774e-34+18695871016278324e-38*r)))))))))),e=1+r*(1.4749575992512833+r*(.33774898912002+r*(.02536037414203388+r*(.0008146791071843061+r*(12754507566772912e-21+r*(1.0431458965757199e-7+r*(4.6068072814652043e-10+r*(11027321506624028e-28+r*(13879653125957886e-31+r*(8391588162831187e-34+18695871016278324e-38*r))))))))))),n/e)}(a),po(u=$e*n,Rp,1,0),u=Ut*e,t=.5+(i*Rp[0]-o*Rp[1])/u),r<0&&(t=-t),t}var Mp=[0,0];function Pp(r){var n,e,t,i,o,u,a;return(n=(e=en(r))*e)<2.5625?t=e*n*function(r){var n,e;return 0===r?.5235987755982989:((r<0?-r:r)<=1?(n=318016297876.5678+r*(r*(2548908805.7337637+r*(r*(708840.0452577386+r*(0*r-2991.8191940101983))-62974148.62058625))-44297951805.96978),e=607366389490.0846+r*(22441179564.534092+r*(419320245.8981112+r*(5173438.887700964+r*(45584.78108065326+r*(281.3762688899943+1*r)))))):(n=0+(r=1/r)*(r*(708840.0452577386+r*(r*(2548908805.7337637+r*(318016297876.5678*r-44297951805.96978))-62974148.62058625))-2991.8191940101983),e=1+r*(281.3762688899943+r*(45584.78108065326+r*(5173438.887700964+r*(419320245.8981112+r*(22441179564.534092+607366389490.0846*r)))))),n/e)}(u=n*n):e>36974?t=.5:(a=1/((u=Ut*(n=e*e))*u),u=1/u,i=1-a*function(r){var n,e;return 0===r?2.999999999999634:((r<0?-r:r)<=1?(n=3.763297112699879e-20+r*(13428327623306275e-32+r*(17201074326816183e-29+r*(1.0230451416490724e-10+r*(3.055689837902576e-8+r*(46361374928786735e-22+r*(.000345017939782574+r*(.011522095507358577+r*(.1434079197807589+r*(.4215435550436775+0*r))))))))),e=1.2544323709001127e-20+r*(45200143407412973e-33+r*(5887545336215784e-29+r*(36014002958937136e-27+r*(1.1269922476399903e-8+r*(18462756734893055e-22+r*(.00015593440916415301+r*(.0064405152650885865+r*(.11688892585919138+r*(.7515863983533789+1*r)))))))))):(n=0+(r=1/r)*(.4215435550436775+r*(.1434079197807589+r*(.011522095507358577+r*(.000345017939782574+r*(46361374928786735e-22+r*(3.055689837902576e-8+r*(1.0230451416490724e-10+r*(17201074326816183e-29+r*(13428327623306275e-32+3.763297112699879e-20*r))))))))),e=1+r*(.7515863983533789+r*(.11688892585919138+r*(.0064405152650885865+r*(.00015593440916415301+r*(18462756734893055e-22+r*(1.1269922476399903e-8+r*(36014002958937136e-27+r*(5887545336215784e-29+r*(45200143407412973e-33+1.2544323709001127e-20*r)))))))))),n/e)}(a),o=u*function(r){var n,e;return 0===r?1:((r<0?-r:r)<=1?(n=18695871016278324e-38+r*(8363544356306774e-34+r*(1375554606332618e-30+r*(10826804113902088e-28+r*(4.4534441586175015e-10+r*(9.828524436884223e-8+r*(11513882611188428e-21+r*(.0006840793809153931+r*(.018764858409257526+r*(.1971028335255234+r*(.5044420736433832+0*r)))))))))),e=18695871016278324e-38+r*(8391588162831187e-34+r*(13879653125957886e-31+r*(11027321506624028e-28+r*(4.6068072814652043e-10+r*(1.0431458965757199e-7+r*(12754507566772912e-21+r*(.0008146791071843061+r*(.02536037414203388+r*(.33774898912002+r*(1.4749575992512833+1*r))))))))))):(n=0+(r=1/r)*(.5044420736433832+r*(.1971028335255234+r*(.018764858409257526+r*(.0006840793809153931+r*(11513882611188428e-21+r*(9.828524436884223e-8+r*(4.4534441586175015e-10+r*(10826804113902088e-28+r*(1375554606332618e-30+r*(8363544356306774e-34+18695871016278324e-38*r)))))))))),e=1+r*(1.4749575992512833+r*(.33774898912002+r*(.02536037414203388+r*(.0008146791071843061+r*(12754507566772912e-21+r*(1.0431458965757199e-7+r*(4.6068072814652043e-10+r*(11027321506624028e-28+r*(13879653125957886e-31+r*(8391588162831187e-34+18695871016278324e-38*r))))))))))),n/e)}(a),po(u=$e*n,Mp,1,0),u=Ut*e,t=.5-(i*Mp[1]+o*Mp[0])/u),r<0&&(t=-t),t}var Up=2148532223,Cp=1071644672,qp=[0,0],Yp=[0,0];function Dp(r,n,e,t){var i,o;return 0===r||Z(r)||Nr(r)?(n[t]=r,n[t+e]=0,n):(ii(r,qp,1,0),o=oi(qp[0])+qp[1]+1,St.assign(qp[0],Yp,1,0),i=Yp[0],i&=Up,r=Lt(i|=Cp,Yp[1]),n[t]=r,n[t+e]=o,n)}function Wp(r){return Dp(r,[0,0],1,0)}function zp(r){return(1+ja(r))/2}function Gp(r){return(1-ja(r))/2}function $p(r){return(1+Wa(r))/2}function Jp(r){return(1-Wa(r))/2}function Zp(r){return r}function Hp(r){return 1/r}function Kp(r){return Pr(1/Pr(r))}function Xp(r,n){return We(r)/We(n)}function Qp(r){var n;return Z(r)?NaN:0===r?K:0<(n=en(r))&&n<=Re?We(-pa(-n)):Be(-hu(-n))}function rv(r){return Z(r)?NaN:r<=-37?hu(r):r<=18?Be(hu(r)):r<=33.3?r+hu(-r):r}function nv(r){return Z(r)?r:Br(r)?0===r?K:1===r?$:We(r/(1-r)):NaN}Ur(Wp,"assign",Dp);var ev=[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 tv(r,n){var e,t,i,o;if(2===(e=arguments.length))return Z(r)||Z(n)?NaN:r===$||n===$?$:r===n&&0===r?Fr(r)?r:n:r>n?r:n;for(t=K,o=0;ot||i===t&&0===i&&Fr(i))&&(t=i)}return t}function iv(r,n){var e,t,i,o;if(2===(e=arguments.length))return Z(r)||Z(n)?NaN:r===K||n===K?K:r===n&&0===r?Ar(r)?r:n:ra&&(a=c)}return e[i]=u,e[i+t]=a,e}function cv(){var r,n;for(r=[],n=0;na||0===f&&f===a&&Fr(f))&&(a=f)}return e[i]=u,e[i+t]=a,e}function hv(){var r,n;for(r=[],n=0;n>20|0,(u-=0|Ne)<20?0==(i&(a=$t>>u|0)|o)?(n[t]=r,n[t+e]=0,n):(a=Lt(i&=~a,0),n[t]=a,n[t+e]=r-a,n):u>51||0==(o&(a=pv>>>u-20))?(n[t]=r,n[t+e]=0,n):(a=Lt(i,o&=~a),n[t]=a,n[t+e]=r-a,n))}function mv(r){return dv(r,[0,0],1,0)}Ur(mv,"assign",dv);var gv=[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 yv=[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 wv=2.23606797749979,bv=We(Tc);function _v(r){var n,e;return Z(r)||!1===G(r)||r<1||r===$?NaN:(n=We((r+=1)*wv)/bv,e=We(wv*(r+n)-5+3/r)/bv,Y(r+e-2))}var Ev=9.869604401089358;var xv=3.5584373474121094;function Tv(r){var n,e;return n=0,r<=0?Y(r)===r?NaN:(e=za(r),-Tv(1-r)+Ev/(e*e)):(r<1&&(n=1/(r*r),r+=1),n+=r<=2?(2+function(r){var n,e;return 0===r?-.9999999999999991:((r<0?-r:r)<=1?(n=r*(r*(r*(r*(r*(2.4787778117864288+r*(2.0771415170245513+r*(.8588778991623601+r*(.20499222604410033+r*(.027210314034819473+.001576484902087695*r)))))-.4042133494563989)-5.746577466976647)-7.94125711970499)-4.712373111208652)-.9999999999999991,e=1+r*(4.712373111208634+r*(9.586191186553398+r*(11.094006726982938+r*(8.090754247493278+r*(3.877058901598914+r*(1.2275867870191448+r*(.249092040606385+r*(.02957504139006556+r*(.0015764849020049815+16126405034405948e-31*r)))))))))):(n=.001576484902087695+(r=1/r)*(.027210314034819473+r*(.20499222604410033+r*(.8588778991623601+r*(2.0771415170245513+r*(2.4787778117864288+r*(r*(r*(r*(-.9999999999999991*r-4.712373111208652)-7.94125711970499)-5.746577466976647)-.4042133494563989)))))),e=16126405034405948e-31+r*(.0015764849020049815+r*(.02957504139006556+r*(.249092040606385+r*(1.2275867870191448+r*(3.877058901598914+r*(8.090754247493278+r*(11.094006726982938+r*(9.586191186553398+r*(4.712373111208634+1*r)))))))))),n/e)}(r))/(r*r):r<=4?(xv+function(r){var n,e;return 0===r?-2.5584373473990794:((r<0?-r:r)<=1?(n=r*(r*(r*(r*(r*(r*(r*(.5154120525543513+r*(.1953783487860643+r*(.03347612826241743+r*(.0023736652059422065+0*r))))-.01914390334056497)-4.466544539286106)-14.797912276547878)-24.925643150482347)-23.9195022162768)-12.283020824054201)-2.5584373473990794,e=1+r*(4.800985584544199+r*(9.992207278431701+r*(11.889614616763133+r*(8.966132566838091+r*(4.4725413614962415+r*(1.4860098202819654+r*(.31957073576676426+r*(.040735834578768094+r*(.0023736652059327163+r*(23955488790352614e-32+-29474924474061867e-34*r))))))))))):(n=0+(r=1/r)*(.0023736652059422065+r*(.03347612826241743+r*(.1953783487860643+r*(.5154120525543513+r*(r*(r*(r*(r*(r*(-2.5584373473990794*r-12.283020824054201)-23.9195022162768)-24.925643150482347)-14.797912276547878)-4.466544539286106)-.01914390334056497))))),e=r*(23955488790352614e-32+r*(.0023736652059327163+r*(.040735834578768094+r*(.31957073576676426+r*(1.4860098202819654+r*(4.4725413614962415+r*(8.966132566838091+r*(11.889614616763133+r*(9.992207278431701+r*(4.800985584544199+1*r))))))))))-29474924474061867e-34),n/e)}(r))/(r*r):r<=8?(1+function(r){var n,e;return 0===r?16662611269702147e-33:((r<0?-r:r)<=1?(n=16662611269702147e-33+r*(.4999999999999977+r*(6.402709450190538+r*(41.38333741550006+r*(166.8033418545628+r*(453.39964786925367+r*(851.153712317697+r*(1097.7065756728507+r*(938.4312324784553+r*(487.26800160465194+119.95344524233573*r))))))))),e=1+r*(12.472085567047449+r*(78.60931297532986+r*(307.47024605031834+r*(805.1406861011516+r*(1439.1201976029215+r*(1735.6105285756048+r*(1348.3250071285634+r*(607.2259858605709+r*(119.95231785727705+.00014016591835503607*r)))))))))):(n=119.95344524233573+(r=1/r)*(487.26800160465194+r*(938.4312324784553+r*(1097.7065756728507+r*(851.153712317697+r*(453.39964786925367+r*(166.8033418545628+r*(41.38333741550006+r*(6.402709450190538+r*(.4999999999999977+16662611269702147e-33*r))))))))),e=.00014016591835503607+r*(119.95231785727705+r*(607.2259858605709+r*(1348.3250071285634+r*(1735.6105285756048+r*(1439.1201976029215+r*(805.1406861011516+r*(307.47024605031834+r*(78.60931297532986+r*(12.472085567047449+1*r)))))))))),n/e)}(1/r))/r:r<=16?(1+function(r){var n,e;return 0===r?-1.848283152741466e-20:((r<0?-r:r)<=1?(n=r*(.5+r*(3.0253386524731334+r*(13.599592751745737+r*(35.31322242830879+r*(67.16394245507142+r*(83.5767733658514+r*(71.07349121223571+r*(35.86215156147256+8.721522316399835*r))))))))-1.848283152741466e-20,e=1+r*(5.717343971612935+r*(25.29340417962044+r*(62.26197679674682+r*(113.955048909239+r*(130.80713832893898+r*(102.42314690233765+r*(44.04247728052452+r*(8.89898032477904+-.029662733687204*r))))))))):(n=8.721522316399835+(r=1/r)*(35.86215156147256+r*(71.07349121223571+r*(83.5767733658514+r*(67.16394245507142+r*(35.31322242830879+r*(13.599592751745737+r*(3.0253386524731334+r*(.5+-1.848283152741466e-20*r)))))))),e=r*(8.89898032477904+r*(44.04247728052452+r*(102.42314690233765+r*(130.80713832893898+r*(113.955048909239+r*(62.26197679674682+r*(25.29340417962044+r*(5.717343971612935+1*r))))))))-.029662733687204),n/e)}(1/r))/r:(1+function(r){var n,e;return 0===r?0:((r<0?-r:r)<=1?(n=0+r*(.5+r*(.34562566988545623+r*(9.628954993608422+r*(3.5936085382439025+r*(49.45959911843888+r*(7.775192373218939+r*(74.4536074488178+r*(2.7520934039706906+r*(23.92923597114717+0*r))))))))),e=1+r*(.3579180064375791+r*(19.138603985070986+r*(.8743490814641436+r*(98.65160974348555+r*(r*(154.31686021625373+r*(r*(60.167913667426475+r*(2.537956362006499*r-13.341484462225642))-40.2026880424379))-16.10519728333829)))))):(n=0+(r=1/r)*(23.92923597114717+r*(2.7520934039706906+r*(74.4536074488178+r*(7.775192373218939+r*(49.45959911843888+r*(3.5936085382439025+r*(9.628954993608422+r*(.34562566988545623+r*(.5+0*r))))))))),e=2.537956362006499+r*(r*(60.167913667426475+r*(r*(154.31686021625373+r*(r*(98.65160974348555+r*(.8743490814641436+r*(19.138603985070986+r*(.3579180064375791+1*r))))-16.10519728333829))-40.2026880424379))-13.341484462225642)),n/e)}(1/r))/r,n)}var Nv=qs("polygamma"),jv=1e6,Vv=172;function Ov(r,n){var e,t,i,o,u,a;if(r+n===n)return 1===r?1/n:r*We(n)Vv&&r*r>hf?0:Ra(r-1)*na(n,-r-1))?(o=hu((e=cf(r)-(r+1)*We(n))+We(r+2*n)-Re),e=hu(e+=We(r*(r+1))-Re-We(n))):(o=e*(r+2*n)/2,e*=r*(r+1)/2,e/=n),0===o)return o;for(a=1;!(en((i=e*zt(2*a))/(o+=i))jv)return Nv("Series did not converge, closest value was: %d.",o),NaN;return r-1&1&&(o=-o),o}var Av=qs("polygamma"),Sv=1e6,Iv=19;var kv=1.1447298858494002;var Fv=qs("polygamma"),Bv=1e6,Rv=9.869604401089358,Lv=31.00627668029982,Mv=97.40909103400244,Pv=306.01968478528147,Uv=961.3891935753045,Cv=3020.2932277767923,qv=9488.531016070574,Yv=29809.09933344621,Dv=93648.04747608303,Wv=294204.0179738906,zv=924269.1815233742,Gv=[[-1]];function $v(r,n,e){var t,i,o,u,a,f;switch(f=en(n)Bv?(Fv("The value of `n` is so large that we're unable to compute the result in reasonable time."),NaN):((i=r-1)>=Gv.length&&function(r){var n,e,t,i,o,u,a,f,s;for(a=Gv.length-1;a=0?$:K:(t-=We(en(f))*(r+1),(t+=cf(r)+We(en(u)))>hf?u>=0?$:K:(o=hu(t)*Ls(u),f<0&&r+1&1&&(o*=-1),o))))}var Jv=qs("polygamma"),Zv=1e6;var Hv=qs("polygamma");function Kv(r){return Z(r)?NaN:r>0?r:0}function Xv(r){return Vr(r)?NaN:r>0?r:0}var Qv=na(2,Kt),rd=Qv/2;function nd(r){var n,e,t,i,o,u;return Z(r)||Nr(r)||0===r?r:(r<0?(r=-r,n=-1):n=1,(u=tl(r))===Qt?r:(e=Y(u),t=tu(u),e===Kt?r-Qv>=rd?n*$:n*Qv:(i=na(2,e))+((o=na(2,t))-i)/2>r?n*i:n*o))}var ed=1e308,td=1e-323;function id(r){var n,e,t,i,o,u;return Z(r)||Nr(r)||0===r?r:(r<0?(r=-r,n=-1):n=1,u=vl(r),e=Y(u),t=tu(u),e===Wc?n*td:e===Yc?n*ed:(i=na(10,e))+((o=na(10,t))-i)/2>r?n*i:n*o)}function od(r){return 1/q(r)}function ud(r){return Pr(1/q(Pr(r)))}function ad(r,n,e,t){var i,o,u,a,f,s,c,l;if(Z(r))return n[t]=NaN,n[t+e]=NaN,n;if(r<0?(i=-1,r=-r):i=0,0===r)return n[t]=0,n[t+e]=K,n;if(r>1e9){if(Nr(r))return-1===i?(o=-$e,u=NaN):(o=$e,u=0),n[t]=o,n[t+e]=u,n;o=$e-Wa(r)/r,u=ja(r)/r}return r>4?(c=ja(r),a=Wa(r),l=1/(r*r),r<8?(f=function(r){return 0===r?5.489002234213736e-7:5.489002234213736e-7+r*(.00010893658065032867+r*(.006810201324725182+r*(.16700661183132304+r*(1.6208328770153833+r*(5.4593771716181285+4.236128628922166*r)))))}(l)/(r*function(r){return 0===r?5.489002527562557e-7:5.489002527562557e-7+r*(.00011003435715391573+r*(.007017106683227897+r*(.1787920529631499+r*(1.867922579501842+r*(7.308288225055645+r*(8.16496634205391+1*r))))))}(l)),s=l*function(r){return 0===r?7.825790407440903e-9:7.825790407440903e-9+r*(19796387414096365e-22+r*(.00016199979459893403+r*(.005388686814621773+r*(.07485277376284691+r*(.3971802963923375+r*(.6113791099522193+.08710016989731142*r))))))}(l)/function(r){return 0===r?7.825792189335346e-9:7.825792189335346e-9+r*(20265918208634397e-22+r*(.0001732210814741771+r*(.006223963454417684+r*(.09887717612776888+r*(.666296701268988+r*(1.6440220241335535+1*r))))))}(l)):(f=function(r){return 0===r?970507110881952e-28:970507110881952e-28+r*(941779576128513e-25+r*(3.200927900910049e-8+r*(48621543082645475e-22+r*(.00034955644244785906+r*(.01160642294081244+r*(.16030015822231947+r*(.7137152741001467+.4558808734704653*r)))))))}(l)/(r*function(r){return 0===r?970507110881952e-28:970507110881952e-28+r*(9437205903502767e-26+r*(3.21956939101046e-8+r*(4924350643178815e-21+r*(.00035869648188185157+r*(.012225359477197129+r*(.17868554533207454+r*(.9174636118736841+1*r)))))))}(l)),s=l*function(r){return 0===r?31404009894636335e-31:31404009894636335e-31+r*(3859459254302766e-27+r*(1.7040445278204452e-9+r*(3.471311670841167e-7+r*(34894116550227946e-21+r*(.001717182390523479+r*(.03848787676499743+r*(.33041097930563207+.6973599534432762*r)))))))}(l)/function(r){return 0===r?31404009894636335e-31:31404009894636335e-31+r*(3878301660239547e-27+r*(1.7269374896631615e-9+r*(3.5704322344374083e-7+r*(3684755044425611e-20+r*(.0019028442667439953+r*(.04679131942596258+r*(.48785225869530496+r*(1.6854889881101165+1*r))))))))}(l)),o=$e-f*a-s*c,i&&(o=-o),u=f*c-s*a,n[t]=o,n[t+e]=u,n):(c=r*function(r){return 0===r?1:1+r*(r*(.0009769454381704354+r*(r*(4.625917144270128e-8+-8391678279103039e-26*r)-9757593038436328e-21))-.04134703162294066)}(l=r*r)/function(r){return 0===r?1:1+r*(.01420852393261499+r*(9964121220438756e-20+r*(4.418278428012189e-7+r*(1.279978911799433e-9+20326926619595193e-28*r))))}(l),a=l*function(r){return 0===r?-1:r*(.028915965260755523+r*(r*(3593250514199931e-21+r*(20252400238910228e-27*r-1.3524950491579076e-8))-.0004740072068734079))-1}(l)/function(r){return 0===r?4:4+r*(.051002805623644606+r*(.00031744202477503275+r*(12321035568588342e-22+r*(3.067809975818878e-9+4077460400618806e-27*r))))}(l),i&&(c=-c),o=c,u=Sa+We(r)+a,n[t]=o,n[t+e]=u,n)}function fd(r){return ad(r,[0,0],1,0)}function sd(r){return Z(r)?NaN:Nr(r)?0:0===r?1:za(r)/(Ut*r)}function cd(r,n,e,t){var i,o,u,a;return Z(r)||Nr(r)?(n[t]=NaN,n[t+e]=NaN,n):0===(u=en(a=r%2))||1===u?(o=Y(u),n[t]=Pt(0,a),n[t+e]=o%2==1?-1:1,n):u<.25?po(Ut*a,n,e,t):u<.75?(po(Ut*(u=.5-u),n,e,t),i=n[t],n[t]=Pt(n[t+e],a),n[t+e]=i,n):u<1.25?(a=Pt(1,a)-a,po(Ut*a,n,e,t),n[t+e]*=-1,n):u<1.75?(po(Ut*(u-=1.5),n,e,t),i=n[t],n[t]=-Pt(n[t+e],a),n[t+e]=i,n):(a-=Pt(2,a),po(Ut*a,n,e,t))}function ld(r){return cd(r,[0,0],1,0)}Ur(fd,"assign",ad),Ur(ld,"assign",cd);var hd=Ev/6;function pd(r){var n,e,t,i;return Z(r)||r<0?NaN:1===r?0:0===r?hd:(n=0,r>2&&(r=1/r,n|=2),r>1.5?(e=1/r-1,n|=2):r<.5?(e=-r,n|=1):e=r-1,t=-e*function(r){return 0===r?1:1+r*(3.297713409852251+r*(4.256971560081218+r*(2.7114985119655346+r*(.8796913117545303+r*(.13384763957830903+r*(.007315890452380947+46512858607399003e-21*r))))))}(e)/function(r){return 0===r?1:1+r*(3.547713409852251+r*(5.03278880143317+r*(3.6380053334513707+r*(1.4117259775183106+r*(.2829748606025681+r*(.02540437639325444+.0006909904889125533*r))))))}(e),1&n&&(t=hd-We(r)*We(1-r)-t),2&n&&(t=-.5*(i=We(r))*i-t),t)}function vd(r){return Z(r)?NaN:en(r)>.75?q(1+r)-1:pa(Be(r)/2)}var dd=[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 md(r){var n;return Z(r)||Nr(r)||0===r?r:(r<0?(r=-r,n=-1):n=1,n*na(2,Y(tl(r))))}function gd(r){var n;return Z(r)||Nr(r)||0===r?r:(r<0?(r=-r,n=-1):n=1,n*na(10,Y(vl(r))))}var yd=D+1,wd=1e308;function bd(r,n){var e,t;return Z(r)||Z(n)||Nr(n)?NaN:Nr(r)||0===r||nyd&&n<=0?r:n>Yc?0*r:n=0;)e=Pr(Pr(e*n)+r[t]),t-=1;return e}function jd(r,n,e){var t,i,o,u;if(0===(t=r.length))return NaN;if(t!==n.length)return NaN;if(0===e||1===t)return r[0]/n[0];if(en(e)<=1)for(i=r[t-1],o=n[t-1],u=t-2;u>=0;--u)i*=e,o*=e,i+=r[u],o+=n[u];else for(e=1/e,i=r[0],o=n[0],u=1;u=0;--u)i=Pr(i*e),o=Pr(o*e),i=Pr(i+r[u]),o=Pr(o+n[u]);else for(e=Pr(1/e),i=r[0],o=n[0],u=1;u1?NaN:t?dc(n,e,1-r,r)[0]:dc(n,e,r,1-r)[0]})),C(Td,"betaln",_c),C(Td,"binet",jc),C(Td,"binomcoef",us),C(Td,"binomcoefln",(function r(n,e){return Z(n)||Z(e)?NaN:G(n)&&G(e)?n<0?r(-n+e-1,e):e<0?K:0===e?0:1===e?We(en(n)):n=wl?(e*=.5,t*=.5,i*=.5):n<=bl&&(e*=_l,t*=_l,i*=_l),en(t)<=en(e)?(e=u=1/(e+t*(o=t/e)),t=-o*u):(e=(o=e/t)*(u=1/(t+e*o)),t=-u),new Hr(e*=i,t*=i)})),C(Td,"clamp",(function(r,n,e){return Z(r)||Z(n)||Z(e)?NaN:re?e:0===n&&Ar(r)?n:0===r&&Ar(e)?e:r})),C(Td,"clampf",(function(r,n,e){return Vr(r)||Vr(n)||Vr(e)?NaN:re?e:0===n&&Sr(r)?n:0===r&&Sr(e)?e:r})),C(Td,"copysign",Pt),C(Td,"copysignf",(function(r,n){var e,t;return r=Pr(r),n=Pr(n),e=Un(r),e&=2147483647,t=Un(n),Yn(e|=t&=El)})),C(Td,"cos",Wa),C(Td,"cosd",(function(r){return Vl(r)?NaN:G((r/90-1)/2)?0:Wa(Tl(r))})),C(Td,"cosh",Ol),C(Td,"cosm1",Sl),C(Td,"cospi",xc),C(Td,"cot",Cl),C(Td,"cotd",(function(r){return Vl(r)?NaN:G((r/90-1)/2)?0:Cl(Tl(r))})),C(Td,"coth",(function(r){return 1/Yl(r)})),C(Td,"covercos",Dl),C(Td,"coversin",Wl),C(Td,"cphase",zl),C(Td,"cpolar",$l),C(Td,"cround",(function(r){return new Hr(Ei(Kr(r)),Ei(Xr(r)))})),C(Td,"croundn",(function(r,n){return new Hr(Hl(Kr(r),n),Hl(Xr(r),n))})),C(Td,"csc",(function(r){return 1/ja(r)})),C(Td,"cscd",(function(r){return 1/ja(Tl(r))})),C(Td,"csch",(function(r){return 1/nh(r)})),C(Td,"csignum",(function(r){var n;return 0===(n=Oc(r))?r:new Hr(Kr(r)/n,Xr(r)/n)})),C(Td,"deg2rad",Tl),C(Td,"deg2radf",th),C(Td,"digamma",sh),C(Td,"diracDelta",ch),C(Td,"eta",bh),C(Td,"ellipe",xh),C(Td,"ellipj",Ah),C(Td,"ellipk",Eh),C(Td,"erf",Jh),C(Td,"erfc",Tf),C(Td,"erfcinv",ws),C(Td,"erfcx",(function(r){var n;return r!=r?NaN:r>=0?r>50?r>5e7?Kh/r:Kh*((n=r*r)*(n+4.5)+2)/(r*(n*(n+5)+3.75)):Hh(400/(4+r)):r<-26.7?$:(n=r*r,r<-6.1?2*hu(n):2*hu(n)-Hh(400/(4-r)))})),C(Td,"erfinv",tp),C(Td,"exp",hu),C(Td,"exp2",op),C(Td,"exp10",sp),C(Td,"expit",cp),C(Td,"expm1",pa),C(Td,"expm1rel",hp),C(Td,"factorial",Ra),C(Td,"factorial2",(function(r){var n,e,t,i;if(Z(r))return NaN;if(r>=301)return $;if(r<0||!1===G(r))return NaN;if(0===(t=0|r)|0||1===t|0)return 1;for(n=rr(t)?2:3,e=1,i=0|t;i>=n;i-=2)e*=0|i;return e})),C(Td,"factorialln",pp),C(Td,"fallingFactorial",dp),C(Td,"fast",Np),C(Td,"fibonacci",(function(r){return Z(r)||!1===G(r)||r<0||r>78?NaN:jp[r]})),C(Td,"fibonacciIndex",(function(r){return Z(r)||!1===G(r)||r<=1||r===$?NaN:Ei(We(2.23606797749979*r+.5)/Vp)})),C(Td,"flipsign",(function(r,n){var e,t;return St.assign(r,Op,1,0),e=Op[0],t=be(n),Lt(e^=t&=bt,Op[1])})),C(Td,"flipsignf",(function(r,n){var e,t;return r=Pr(r),n=Pr(n),e=Un(r),t=Un(n),Yn(e^=t&=El)})),C(Td,"floor",Y),C(Td,"floor2",Ap),C(Td,"floor10",Sp),C(Td,"floorb",(function(r,n,e){var t,i;return Z(r)||Z(n)||Z(e)||e<=0||Nr(n)||Nr(e)?NaN:Nr(r)||0===r?r:10===e?yl(r,n):0===n||1===e?Y(r):Nr(i=na(e,-n))||Nr(t=Y(r*i)/i)?r:t})),C(Td,"floorf",Ip),C(Td,"floorn",yl),C(Td,"floorsd",(function(r,n,e){var t,i,o;return Z(r)||Z(n)||n<1||Nr(n)||Z(e)||e<=0||Nr(e)?NaN:Nr(r)||0===r?r:(t=10===e?vl(en(r)):2===e?oi(en(r)):We(en(r))/We(e),Nr(i=na(e,en(t=Y(t-n+1))))||Nr(o=t<0?Y(r*i)/i:Y(r/i)*i)?r:o)})),C(Td,"fresnel",Bp),C(Td,"fresnelc",Lp),C(Td,"fresnels",Pp),C(Td,"frexp",Wp),C(Td,"gamma",ka),C(Td,"gammaDeltaRatio",Ca),C(Td,"gammaLanczosSum",La),C(Td,"gammaLanczosSumExpGScaled",Pf),C(Td,"gamma1pm1",zf),C(Td,"gammainc",Kf),C(Td,"gammaincinv",cc),C(Td,"gammaln",cf),C(Td,"gammasgn",(function(r){var n;return Z(r)?r:r>0?1:r===(n=Y(r))?0:(n/=2)===Y(n)?1:-1})),C(Td,"gcd",Q),C(Td,"hacovercos",zp),C(Td,"hacoversin",Gp),C(Td,"havercos",$p),C(Td,"haversin",Jp),C(Td,"heaviside",(function(r,n){return Z(r)?NaN:r>0?1:0===r?"half-maximum"===n?.5:"left-continuous"===n?0:"right-continuous"===n?1:NaN:0})),C(Td,"hypot",Vc),C(Td,"hypotf",Ac),C(Td,"identity",Zp),C(Td,"identityf",(function(r){return r})),C(Td,"inv",Hp),C(Td,"invf",Kp),C(Td,"kernelBetainc",hs),C(Td,"kernelBetaincinv",dc),C(Td,"kernelCos",da),C(Td,"kernelLog1p",Zc),C(Td,"kernelSin",Ea),C(Td,"kernelTan",Rl),C(Td,"kroneckerDelta",(function(r,n){return Z(r)||Z(n)?NaN:r===n?1:0})),C(Td,"kroneckerDeltaf",(function(r,n){return Vr(r)||Vr(n)?NaN:r===n?1:0})),C(Td,"labs",_p),C(Td,"lcm",(function(r,n){var e;return 0===r||0===n?0:(r<0&&(r=-r),n<0&&(n=-n),Z(e=Q(r,n))?e:r/e*n)})),C(Td,"ldexp",ci),C(Td,"ln",We),C(Td,"log",Xp),C(Td,"log1mexp",Qp),C(Td,"log1p",Be),C(Td,"log1pexp",rv),C(Td,"log1pmx",Bf),C(Td,"log2",tl),C(Td,"log10",vl),C(Td,"logaddexp",(function(r,n){var e;return Z(r)||Z(n)?NaN:r===n?r+Re:(e=r-n)>0?r+Be(hu(-e)):n+Be(hu(e))})),C(Td,"logit",nv),C(Td,"lucas",(function(r){return Z(r)||!1===G(r)||r<0||r>76?NaN:ev[r]})),C(Td,"max",tn),C(Td,"maxabs",ns),C(Td,"maxabsn",(function(r,n){var e,t,i;if(0===(e=arguments.length))return $;if(2===e)return tv(en(r),en(n));for(t=[],i=0;i0||(n=en(r))>78?NaN:gv[n]})),C(Td,"negalucas",(function(r){var n;return Z(r)||!1===G(r)||r>0||(n=en(r))>76?NaN:yv[n]})),C(Td,"nonfibonacci",_v),C(Td,"pdiff",(function(r,n){return Z(r)||Z(n)?NaN:r>n?r-n:0})),C(Td,"pdifff",(function(r,n){return Vr(r)||Vr(n)?NaN:r>n?Pr(Pr(r)-Pr(n)):0})),C(Td,"polygamma",(function r(n,e){var t,i;return Ir(n)?0===n?sh(e):1===n?Tv(e):e<0?Y(e)===e?1&iu(e)?$:(Hv("Evaluation at negative integer: %d.",e),NaN):(t=r(n,i=1-e)+Ut*$v(n,i,e),1&n?-t:t):e2/an)return 1&r?a/tZv)return Jv("Series did not converge, best value is %d.",u),NaN;return on/i.4*19+4*n?Ov(n,e):1===e?(1&n?1:-1)*Ra(n)*wh(n+1):.5===e?en(t=(1&n?1:-1)*Ra(n)*wh(n+1))>=ci(on,-n-1)?1===Ls(t)?$:K:t*=ci(1,n+1)-1:function(r,n){var e,t,i,o,u,a;if(o=r,(t=.4*Iv+4*r-iu(n))>Sv)return Av("Exceeded maximum series evaluations when evaluated at n = %d and x = %d",r,n),NaN;if(e=-o-1,i=0,We((a=n)+t)*e>-hf){for(u=1;u<=t;u++)i+=na(a,e),a+=1;i*=Ra(r)}else for(u=1;u<=t;u++)i+=hu(We(a)*e+cf(r+1)),a+=1;return r-1&1&&(i=-i),i+Ov(r,a)}(n,e):NaN})),C(Td,"pow",na),C(Td,"powm1",Cf),C(Td,"rad2deg",Rn),C(Td,"rad2degf",ft),C(Td,"ramp",Kv),C(Td,"rampf",Xv),C(Td,"rcbrt",(function(r){return 1/Uc(r)})),C(Td,"rcbrtf",(function(r){return Pr(1/Uc(Pr(r)))})),C(Td,"rempio2",Hi),C(Td,"zeta",wh),C(Td,"risingFactorial",(function(r,n){var e,t;return Z(r)||!G(n)?NaN:r<0?(n<0&&(r+=n,n=-n,t=!0),e=(1&n?-1:1)*dp(-r,n),t&&(e=1/e),e):0===n?1:0===r?n<0?-Ca(r+1,-n):0:r<1&&r+n<0?(e=Ca(1-r,-n),1&n?-e:e):1/Ca(r,n)})),C(Td,"round",Ei),C(Td,"round2",nd),C(Td,"round10",id),C(Td,"roundb",(function(r,n,e){var t,i;return Z(r)||Z(n)||Z(e)||e<=0||Nr(n)||Nr(e)?NaN:Nr(r)||0===r?r:10===e?Hl(r,n):0===n||1===e?Ei(r):Nr(i=na(e,-n))||Nr(t=Ei(r*i)/i)?r:t})),C(Td,"roundn",Hl),C(Td,"roundsd",(function(r,n,e){var t,i,o,u;if(Z(r)||Z(n)||n<1||Nr(n))return NaN;if(arguments.length>2){if(Z(e)||e<=0||Nr(e))return NaN;t=e}else t=10;return Nr(r)||0===r?r:(i=10===t?vl(en(r)):2===t?oi(en(r)):We(en(r))/We(t),Nr(o=na(t,en(i=Y(i-n+1))))||Nr(u=i<0?Ei(r*o)/o:Ei(r/o)*o)?r:u)})),C(Td,"rsqrt",od),C(Td,"rsqrtf",ud),C(Td,"secd",(function(r){return 1/Wa(Tl(r))})),C(Td,"sici",fd),C(Td,"signum",Ls),C(Td,"signumf",(function(r){return 0===r||Vr(r)?r:r<0?-1:1})),C(Td,"sin",ja),C(Td,"sinc",sd),C(Td,"sincos",vo),C(Td,"sincospi",ld),C(Td,"sinh",nh),C(Td,"sinpi",za),C(Td,"spence",pd),C(Td,"sqrt",q),C(Td,"sqrt1pm1",vd),C(Td,"sqrtf",Ln),C(Td,"sqrtpi",(function(r){return q(r*Ut)})),C(Td,"tan",Ul),C(Td,"tand",(function(r){return Vl(r)?NaN:G((r/90-1)/2)?1/0:G(r/90/2)?0:Ul(Tl(r))})),C(Td,"tanh",Yl),C(Td,"tribonacci",(function(r){return Z(r)||!1===G(r)||r<0||r>63?NaN:dd[r]})),C(Td,"trigamma",Tv),C(Td,"trunc",iu),C(Td,"trunc2",md),C(Td,"trunc10",gd),C(Td,"truncb",(function(r,n,e){var t,i;return Z(r)||Z(n)||Z(e)||e<=0||Nr(n)||Nr(e)?NaN:Nr(r)||0===r?r:10===e?bd(r,n):0===n||1===e?iu(r):Nr(i=na(e,-n))||Nr(t=iu(r*i)/i)?r:t})),C(Td,"truncf",_d),C(Td,"truncn",bd),C(Td,"truncsd",(function(r,n,e){var t,i,o;return Z(r)||Z(n)||n<1||Nr(n)||Z(e)||e<=0||Nr(e)?NaN:Nr(r)||0===r?r:(t=10===e?vl(en(r)):2===e?oi(en(r)):We(en(r))/We(e),Nr(i=na(e,en(t=Y(t-n+1))))||Nr(o=t<0?iu(r*i)/i:iu(r/i)*i)?r:o)})),C(Td,"vercos",Ed),C(Td,"versin",xd),C(Td,"wrap",(function(r,n,e){var t;return Z(r)||Z(n)||Z(e)||e<=n?NaN:(0===r&&(r=0),0===n&&(n=0),0===e&&(e=0),n<=r&&r500)return function(n){return Nd(r,n)};if(n="return function evalpolyf(x){",0===(e=r.length))n+="return 0.0;";else if(1===e)n+="return "+r[0]+";";else{for(n+="if(x===0.0){return "+r[0]+";}",n+="return f64_to_f32("+r[0],t=e-1,i=1;i500)return function(e){return jd(r,n,e)};if(e="return function evalrational(x){",e+="var ax,s1,s2;",0===(t=r.length))e+="return NaN;";else if(t!==n.length)e+="return NaN;";else if(1===t)e+="return "+r[0]/n[0]+";";else{for(e+="if(x===0.0){return "+r[0]/n[0]+";}",e+="if(x<0.0){ax=-x;}else{ax=x;}",e+="if(ax<=1.0){",e+="s1 = "+r[0],i=t-1,o=1;o=0;o--)e+="+x*",o>0&&(e+="("),e+=r[o];for(o=0;o=0;o--)e+="+x*",o>0&&(e+="("),e+=n[o];for(o=0;o500)return function(e){return Vd(r,n,e)};if(e="return function evalrationalf(x){",e+="var ax,s1,s2;",0===(t=r.length))e+="return NaN;";else if(t!==n.length)e+="return NaN;";else if(1===t)e+="return "+Pr(r[0]/n[0])+";";else{for(e+="if(x===0.0){return "+Pr(r[0]/n[0])+";}",e+="if(x<0.0){ax=-x;}else{ax=x;}",e+="if(ax<=1.0){",e+="s1 = f64_to_f32("+r[0],i=t-1,o=1;o=0;o--)e+="+f64_to_f32(x*",o>0&&(e+="("),e+=r[o];for(o=0;o<2*i;o++)e+=")";for(e+=";",e+="s2 = f64_to_f32("+n[i=t-1],o=i-1;o>=0;o--)e+="+f64_to_f32(x*",o>0&&(e+="("),e+=n[o];for(o=0;o<2*i;o++)e+=")";e+=";",e+="}",e+="return f64_to_f32(s1/s2);"}return e+="}",new Of("f64_to_f32",e+="//# sourceURL=evalrationalf.factory.js")(Pr)}));var Od={};function Ad(r){var n,e;if(void 0===(n=Od[r])){for(n=[],e=0;e=0;e-=2)n[e]=us((r+e-1)/2,e);Od[r]=n}return n}function Sd(r,n){var e,t;return t=Vf(Ad(e=en(r)),n),r>=0?t:na(-1,e-1)*t}function Id(r,n){var e,t,i,o;if(Z(r)||Z(n)||r<0||!G(r))return NaN;if(0===r)return 1;if(1===r)return n;for(t=1,i=0,o=r;o>1;o--)e=n*t-o*i,i=t,t=e;return n*t-i}function kd(r){return function(){return r}}function Fd(r,n){return na(2,.5*r)*Id(r,bs*n)}Ur(Sd,"factory",(function(r){var n,e,t,i;return n=Ad(e=en(r)),t=Af(n),i=na(-1,e-1),r>=0||1===i?t:function(r){return-1*t(r)}})),Ur(Id,"factory",(function(r){return r<0||Z(r)||!G(r)?kd(NaN):0===r?kd(1):function(n){var e,t,i,o;if(Z(n))return NaN;for(t=1,i=0,o=r;o>1;o--)e=n*t-o*i,i=t,t=e;return n*t-i}})),Ur(Fd,"factory",(function(r){var n;return r<0||Z(r)||!G(r)?kd(NaN):0===r?kd(1):(n=na(2,.5*r),function(e){return n*Id(r,bs*e)})}));var Bd={};function Rd(r){var n,e,t,i,o,u,a,f,s;if(void 0===(n=Bd[r])){if(f=r+1,n=new Array(f),0===r)n[0]=2;else{for(s=0;s=0?t:na(-1,e)*t}Ur(Ld,"factory",(function(r){var n,e,t,i;return n=Rd(e=en(r)),t=Af(n),i=na(-1,e),r>=0||1===i?t:function(r){return-1*t(r)}}));var Md={};C(Md,"continuedFraction",Jf),C(Md,"evalpoly",Vf),C(Md,"evalpolyf",Nd),C(Md,"evalrational",jd),C(Md,"evalrationalf",Vd),C(Md,"fibpoly",Sd),C(Md,"hermitepoly",Fd),C(Md,"lucaspoly",Ld),C(Md,"normhermitepoly",Id),C(Md,"sumSeries",Ff);var Pd=/./;function Ud(r){return"boolean"==typeof r}var Cd=Boolean,qd=Boolean.prototype.toString;var Yd=er();function Dd(r){return"object"==typeof r&&(r instanceof Cd||(Yd?function(r){try{return qd.call(r),!0}catch(r){return!1}}(r):"[object Boolean]"===sr(r)))}function Wd(r){return Ud(r)||Dd(r)}Ur(Wd,"isPrimitive",Ud),Ur(Wd,"isObject",Dd);var zd="object"==typeof self?self:null,Gd="object"==typeof window?window:null,$d="object"==typeof global?global:null,Jd="object"==typeof globalThis?globalThis:null;function Zd(r){if(arguments.length){if(!Ud(r))throw new TypeError(I("invalid argument. Must provide a boolean. Value: `%s`.",r));if(r)return new Function("return this;")()}if(Jd)return Jd;if(zd)return zd;if(Gd)return Gd;if($d)return $d;throw new Error("unexpected error. Unable to resolve global object.")}var Hd=Zd(),Kd=Hd.document&&Hd.document.childNodes,Xd=Int8Array;function Qd(){return/^\s*function\s*([^(]*)/i}var rm=/^\s*function\s*([^(]*)/i;Ur(Qd,"REGEXP",rm);var nm=Array.isArray?Array.isArray:function(r){return"[object Array]"===sr(r)};function em(r){if("function"!=typeof r)throw new TypeError(I("invalid argument. Must provide a function. Value: `%s`.",r));return function(n){var e,t;if(!nm(n))return!1;if(e=n.length,0===e)return!1;for(t=0;t(n=en(n))?n:r},min:function(r,n){return r>n?n:r},"mean-abs":function(r,n){return(r=en(r))+((n=en(n))-r)/2},mean:function(r,n){return r+(n-r)/2},x:function(r){return r},y:function(r,n){return n}};function sm(r,n,e){var t,i;if(Z(r)||Z(n))return NaN;if(r===$||r===K||n===$||n===K)return r===n?NaN:$;if(r===n)return 0;if(am(e))t=e;else if(void 0===e&&(e="max-abs"),void 0===(t=fm[e]))throw new Error(I("invalid argument. Unrecognized/unsupported scale function. Value: `%s`.",e));return 0===(i=t(r,n))?NaN:en((r-n)/i)}var cm=on*an;var lm={};C(lm,"absdiff",(function(r,n){return Z(r)||Z(n)?NaN:Nr(r)||Nr(n)?r===n?NaN:$:en(r-n)})),C(lm,"epsdiff",(function(r,n,e){var t=sm(r,n,e||"max-abs");return Z(t)||t===$?t:t>=cm?on:t/an})),C(lm,"reldiff",sm);var hm={};function pm(r){var n=typeof r;return null!==r&&("object"===n||"function"===n)&&am(r.next)}function vm(){return"function"==typeof ar&&"symbol"==typeof ar("foo")&&or(ar,"iterator")&&"symbol"==typeof ar.iterator}C(hm,"assert",Rr),C(hm,"ops",Nn),C(hm,"special",Td),C(hm,"tools",Md),C(hm,"utils",lm);var dm=vm()?Symbol.iterator:null;var mm={};function gm(r){return"object"==typeof r&&null!==r&&!nm(r)}C(mm,"iterAdd",(function r(){var n,e,t,i,o,u;if((t=arguments.length)<2)throw new Error("insufficient arguments. Must provide two or more iterators.");for(n=[],e=[],u=0;uK&&jm(r)}function Om(r){return Cr(r)&&Vm(r)}function Am(r){return Dr(r)&&Vm(r.valueOf())}function Sm(r){return Om(r)||Am(r)}function Im(r){return Om(r)&&r>=0}function km(r){return Am(r)&&r.valueOf()>=0}function Fm(r){return Im(r)||km(r)}Ur(Sm,"isPrimitive",Om),Ur(Sm,"isObject",Am),Ur(Fm,"isPrimitive",Im),Ur(Fm,"isObject",km);function Bm(r){return r==r&&r>K&&r<$}function Rm(r){return Cr(r)&&Bm(r)}function Lm(r){return Dr(r)&&Bm(r.valueOf())}function Mm(r){return Rm(r)||Lm(r)}function Pm(r,n,e){U(r,n,{configurable:!1,enumerable:!1,get:e})}function Um(r){return this.next=null,this.prev=null,this.value=r,this}function Cm(){return this instanceof Cm?(this._length=0,this._first=null,this._last=null,this):new Cm}Ur(Mm,"isPrimitive",Rm),Ur(Mm,"isObject",Lm),Ur(Cm.prototype,"clear",(function(){return this._length=0,this._first=null,this._last=null,this})),Ur(Cm.prototype,"first",(function(){if(this._length)return this._first.value})),Ur(Cm.prototype,"iterator",(function(){var r,n,e,t,i;return e=this,i=-1,r=this.toArray(),Ur(n={},"next",(function(){if(i+=1,t||i>=r.length)return{done:!0};return{value:r[i],done:!1}})),Ur(n,"return",(function(r){if(t=!0,arguments.length)return{value:r,done:!0};return{done:!0}})),dm&&Ur(n,dm,(function(){return e.iterator()})),n})),Ur(Cm.prototype,"last",(function(){if(this._length)return this._last.value})),Pm(Cm.prototype,"length",(function(){return this._length})),Ur(Cm.prototype,"pop",(function(){var r;return this._length&&(r=this._first.value,this._first.next?(this._first=this._first.next,this._first.prev=null):(this._first=null,this._last=null),this._length-=1),r})),Ur(Cm.prototype,"push",(function(r){var n;return n=new Um(r),0===this._length?(this._first=n,this._last=n):(n.prev=this._last,this._last.next=n,this._last=n),this._length+=1,this})),Ur(Cm.prototype,"toArray",(function(){var r,n,e;for(n=[],r=this._first,e=0;e0?-r:r},convergents:function(r,n,e){return e&&r>0?-n:n},"*":function(r,n,e){return e&&r>0?[-r,-n]:[r,n]}};var Dm=2*D;var Wm=(D+1)/2;var zm=(D+1)/2;var Gm=(D+1)/2+1;var $m=D+1;var Jm=(D+1)/2+1;var Zm=D+1;var Hm=(D+1)/2;var Km=(D+1)/2;var Xm={};function Qm(r,n,e){var t,i,o,u;if(!pm(r))throw new TypeError(I("invalid argument. First argument must be an iterator protocol-compliant object. Value: `%s`.",r));if(!am(n))throw new TypeError(I("invalid argument. Second argument must be a function. Value: `%s`.",n));if(t={invalid:NaN},arguments.length>2&&(o=function(r,n){return Tm(n)?(or(n,"invalid")&&(r.invalid=n.invalid),null):new TypeError(I("invalid argument. Options argument must be an object. Value: `%s`.",n))}(t,e),o))throw o;return Ur(i={},"next",(function(){var e;if(u)return{done:!0};if(e=r.next(),e.done)return u=!0,e;return{value:Cr(e.value)?n(e.value):t.invalid,done:!1}})),Ur(i,"return",(function(r){if(u=!0,arguments.length)return{value:r,done:!0};return{done:!0}})),dm&&am(r[dm])&&Ur(i,dm,(function(){return Qm(r[dm](),n,t)})),i}function rg(r,n,e,t){var i,o,u,a,f,s,c,l;for(2,o=[0,0],i=[],u=[],l=0;l<2;l++)if(i.push(arguments[l]),pm(arguments[l]))u.push(1);else{if(!Cr(arguments[l]))throw new TypeError(I("invalid argument. Must provide an iterator protocol-compliant object or a number. Argument: `%u`. Value: `%s`.",l,arguments[l]));u.push(0)}if(!am(e))throw new TypeError(I("invalid argument. Third argument must be a function. Value: `%s`.",e));if(f={invalid:NaN},arguments.length>3&&(c=function(r,n){return Tm(n)?(or(n,"invalid")&&(r.invalid=n.invalid),null):new TypeError(I("invalid argument. Options argument must be an object. Value: `%s`.",n))}(f,t),c))throw c;if(Ur(a={},"next",(function(){var r,n,t;if(s)return{done:!0};for(t=0;t<2;t++)if(u[t]){if((n=i[t].next()).done)return s=!0,n;"number"==typeof n.value?o[t]=n.value:r=!0}else o[t]=i[t];if(r)return{value:f.invalid,done:!1};return{value:e(o[0],o[1]),done:!1}})),Ur(a,"return",(function(r){if(s=!0,arguments.length)return{value:r,done:!0};return{done:!0}})),dm){for(l=0;l<2;l++)if(u[l]&&!am(i[l][dm])){s=!0;break}s||Ur(a,dm,(function(){var r,n;for(r=[],n=0;n<2;n++)u[n]?r.push(i[n][dm]()):r.push(i[n]);return r.push(e,f),rg.apply(null,r)}))}return s=!1,a}C(Xm,"iterCompositesSeq",(function r(n){var e,t,i,o,u,a;if(e={iter:1e308},arguments.length&&(o=function(r,n){return Tm(n)?or(n,"iter")&&(r.iter=n.iter,!Im(n.iter))?new TypeError(I("invalid option. `%s` option must be a nonnegative integer. Option: `%s`.","iter",n.iter)):null:new TypeError(I("invalid argument. Options argument must be an object. Value: `%s`.",n))}(e,n),o))throw o;return a=0,u=3,Ur(t={},"next",(function(){if(a+=1,i||a>e.iter)return{done:!0};u+=1;for(;!1===J(u);)u+=1;return{value:u,done:!1}})),Ur(t,"return",(function(r){if(i=!0,arguments.length)return{value:r,done:!0};return{done:!0}})),dm&&Ur(t,dm,(function(){return r(e)})),t})),C(Xm,"iterContinuedFractionSeq",(function r(n,e){var t,i,o,u,a,f,s,c,l,h,p,v,d,m,g;if(!Rm(n))throw new TypeError(I("invalid argument. First argument must be a finite number. Value: `%s`.",n));if(u={iter:1e308,tol:an,returns:"terms"},arguments.length>1&&(s=function(r,n){return Tm(n)?or(n,"iter")&&(r.iter=n.iter,!Im(n.iter))?new TypeError(I("invalid option. `%s` option must be a nonnegative integer. Option: `%s`.","iter",n.iter)):or(n,"tol")&&(r.tol=n.tol,!Rm(n.tol)||n.tol<=0)?new TypeError(I("invalid option. `%s` option must be a positive finite number. Option: `%s`.","tol",n.tol)):or(n,"returns")&&(r.returns=n.returns,-1===qm.indexOf(n.returns))?new TypeError(I('invalid option. `%s` option must be one of the following: "%s". Option: `%s`.',"returns",qm.join('", "'),n.returns)):null:new TypeError(I("invalid argument. Options argument must be an object. Value: `%s`.",n))}(u,e),s))throw s;return t=Ym[u.returns],f=0,o=n,n<0?(c=!0,n=-n):c=!1,g=0,Ur(a={},"next",(function(){var r,n,e;if(g+=1,f>0)return 1===f&&d.length>0?(n=(r=d.pop())[0],e=r[1],-1===n?{done:!0}:(r=d.first(),2===d.length&&1===r[0]&&(n+=1,e=r[1],d.clear()),{value:t(n,e,c),done:!1})):(f=2,{done:!0});if(g===u.iter)return n=(r=d.pop())[0],e=r[1],1===(r=d.first())[0]&&(n+=1,e=r[1]),d.clear(),f=2,{value:t(n,e,c),done:!1};return r=d.push(y()).pop(),{value:t(r[0],r[1],c),done:!1}})),Ur(a,"return",(function(r){if(f=2,arguments.length)return{value:r,done:!0};return{done:!0}})),dm&&Ur(a,dm,(function(){return r(o,u)})),d=new Cm,l=Y(n),d.push([l,l]),l===n||0===l&&(l=Y(n=1/n),d.push([l,1/l]),l===n)?(f=1,a):(m=1/(n-l),p=h=l,v=0,d.push(y()),d.push(y()),a);function y(){var r=h;return l=Y(m),m=1/(m-l),0===(v+=l)&&(v=1e-50),0===(p=l+1/p)&&(p=1e-50),h*=i=p*(v=1/v),en(i-1)<=u.tol&&(f=1,r===h)?[-1,h]:[l,h]}})),C(Xm,"iterCubesSeq",(function r(n){var e,t,i,o,u;if(e={iter:208063},arguments.length&&(o=function(r,n){return Tm(n)?or(n,"iter")&&(r.iter=n.iter,!Im(n.iter))?new TypeError(I("invalid option. `%s` option must be a nonnegative integer. Option: `%s`.","iter",n.iter)):null:new TypeError(I("invalid argument. Options argument must be an object. Value: `%s`.",n))}(e,n),o))throw o;return u=-1,Ur(t={},"next",(function(){if(u+=1,i||u>=e.iter)return{done:!0};return{value:u*u*u,done:!1}})),Ur(t,"return",(function(r){if(i=!0,arguments.length)return{value:r,done:!0};return{done:!0}})),dm&&Ur(t,dm,(function(){return r(e)})),t})),C(Xm,"iterEvenIntegersSeq",(function r(n){var e,t,i,o,u,a,f;if(e={iter:D},arguments.length&&(o=function(r,n){return Tm(n)?or(n,"iter")&&(r.iter=n.iter,!Im(n.iter))?new TypeError(I("invalid option. `%s` option must be a nonnegative integer. Option: `%s`.","iter",n.iter)):null:new TypeError(I("invalid argument. Options argument must be an object. Value: `%s`.",n))}(e,n),o))throw o;return u=-1,a=0,f=0,Ur(t={},"next",(function(){if(a+=1,i||a>e.iter)return{done:!0};if(1===a)return{value:0,done:!1};u<0&&(f+=2);return{value:(u*=-1)*f,done:!1}})),Ur(t,"return",(function(r){if(i=!0,arguments.length)return{value:r,done:!0};return{done:!0}})),dm&&Ur(t,dm,(function(){return r(e)})),t})),C(Xm,"iterFactorialsSeq",(function r(n){var e,t,i,o,u;if(e={iter:1e308},arguments.length&&(o=function(r,n){return Tm(n)?or(n,"iter")&&(r.iter=n.iter,!Im(n.iter))?new TypeError(I("invalid option. `%s` option must be a nonnegative integer. Option: `%s`.","iter",n.iter)):null:new TypeError(I("invalid argument. Options argument must be an object. Value: `%s`.",n))}(e,n),o))throw o;return u=-1,Ur(t={},"next",(function(){if(u+=1,i||u>=e.iter)return{done:!0};return{value:Ra(u),done:!1}})),Ur(t,"return",(function(r){if(i=!0,arguments.length)return{value:r,done:!0};return{done:!0}})),dm&&Ur(t,dm,(function(){return r(e)})),t})),C(Xm,"iterFibonacciSeq",(function r(n){var e,t,i,o,u,a,f,s;if(e={iter:79},arguments.length&&(o=function(r,n){if(!Tm(n))return new TypeError(I("invalid argument. Options argument must be an object. Value: `%s`.",n));if(or(n,"iter")){if(r.iter=n.iter,!Im(n.iter))return new TypeError(I("invalid option. `%s` option must be a nonnegative integer. Option: `%s`.","iter",n.iter));if(n.iter>79)return new RangeError(I("invalid option. `%s` option must be less than or equal to 79. Option: `%u`.","iter",n.iter))}return null}(e,n),o))throw o;return u=0,a=1,f=0,s=0,Ur(t={},"next",(function(){if(s+=1,i||s>e.iter)return{done:!0};1===s?f=0:2===s?f=1:(f=u+a,u=a,a=f);return{value:f,done:!1}})),Ur(t,"return",(function(r){if(i=!0,arguments.length)return{value:r,done:!0};return{done:!0}})),dm&&Ur(t,dm,(function(){return r(e)})),t})),C(Xm,"iterFifthPowersSeq",(function r(n){var e,t,i,o,u;if(e={iter:1552},arguments.length&&(o=function(r,n){return Tm(n)?or(n,"iter")&&(r.iter=n.iter,!Im(n.iter))?new TypeError(I("invalid option. `%s` option must be a nonnegative integer. Option: `%s`.","iter",n.iter)):null:new TypeError(I("invalid argument. Options argument must be an object. Value: `%s`.",n))}(e,n),o))throw o;return u=-1,Ur(t={},"next",(function(){var r;if(u+=1,i||u>=e.iter)return{done:!0};return r=u*u,{value:r*r*u,done:!1}})),Ur(t,"return",(function(r){if(i=!0,arguments.length)return{value:r,done:!0};return{done:!0}})),dm&&Ur(t,dm,(function(){return r(e)})),t})),C(Xm,"iterFourthPowersSeq",(function r(n){var e,t,i,o,u;if(e={iter:9741},arguments.length&&(o=function(r,n){return Tm(n)?or(n,"iter")&&(r.iter=n.iter,!Im(n.iter))?new TypeError(I("invalid option. `%s` option must be a nonnegative integer. Option: `%s`.","iter",n.iter)):null:new TypeError(I("invalid argument. Options argument must be an object. Value: `%s`.",n))}(e,n),o))throw o;return u=-1,Ur(t={},"next",(function(){if(u+=1,i||u>=e.iter)return{done:!0};return{value:u*u*u*u,done:!1}})),Ur(t,"return",(function(r){if(i=!0,arguments.length)return{value:r,done:!0};return{done:!0}})),dm&&Ur(t,dm,(function(){return r(e)})),t})),C(Xm,"iterIntegersSeq",(function r(n){var e,t,i,o,u,a,f;if(e={iter:Dm},arguments.length&&(o=function(r,n){return Tm(n)?or(n,"iter")&&(r.iter=n.iter,!Im(n.iter))?new TypeError(I("invalid option. `%s` option must be a nonnegative integer. Option: `%s`.","iter",n.iter)):null:new TypeError(I("invalid argument. Options argument must be an object. Value: `%s`.",n))}(e,n),o))throw o;return u=-1,a=0,f=0,Ur(t={},"next",(function(){if(a+=1,i||a>e.iter)return{done:!0};if(1===a)return{value:0,done:!1};u<0&&(f+=1);return{value:(u*=-1)*f,done:!1}})),Ur(t,"return",(function(r){if(i=!0,arguments.length)return{value:r,done:!0};return{done:!0}})),dm&&Ur(t,dm,(function(){return r(e)})),t})),C(Xm,"iterLucasSeq",(function r(n){var e,t,i,o,u,a,f,s;if(e={iter:77},arguments.length&&(o=function(r,n){if(!Tm(n))return new TypeError(I("invalid argument. Options argument must be an object. Value: `%s`.",n));if(or(n,"iter")){if(r.iter=n.iter,!Im(n.iter))return new TypeError(I("invalid option. `%s` option must be a nonnegative integer. Option: `%s`.","iter",n.iter));if(n.iter>77)return new RangeError(I("invalid option. `%s` option must be less than or equal to 77. Option: `%u`.","iter",n.iter))}return null}(e,n),o))throw o;return u=2,a=1,f=0,s=0,Ur(t={},"next",(function(){if(s+=1,i||s>e.iter)return{done:!0};1===s?f=2:2===s?f=1:(f=u+a,u=a,a=f);return{value:f,done:!1}})),Ur(t,"return",(function(r){if(i=!0,arguments.length)return{value:r,done:!0};return{done:!0}})),dm&&Ur(t,dm,(function(){return r(e)})),t})),C(Xm,"iterNegaFibonacciSeq",(function r(n){var e,t,i,o,u,a,f,s;if(e={iter:79},arguments.length&&(o=function(r,n){if(!Tm(n))return new TypeError(I("invalid argument. Options argument must be an object. Value: `%s`.",n));if(or(n,"iter")){if(r.iter=n.iter,!Im(n.iter))return new TypeError(I("invalid option. `%s` option must be a nonnegative integer. Option: `%s`.","iter",n.iter));if(n.iter>79)return new RangeError(I("invalid option. `%s` option must be less than or equal to 79. Option: `%u`.","iter",n.iter))}return null}(e,n),o))throw o;return u=0,a=1,f=0,s=0,Ur(t={},"next",(function(){if(s+=1,i||s>e.iter)return{done:!0};1===s?f=0:2===s?f=1:(f=u-a,u=a,a=f);return{value:f,done:!1}})),Ur(t,"return",(function(r){if(i=!0,arguments.length)return{value:r,done:!0};return{done:!0}})),dm&&Ur(t,dm,(function(){return r(e)})),t})),C(Xm,"iterNegaLucasSeq",(function r(n){var e,t,i,o,u,a,f,s;if(e={iter:77},arguments.length&&(o=function(r,n){if(!Tm(n))return new TypeError(I("invalid argument. Options argument must be an object. Value: `%s`.",n));if(or(n,"iter")){if(r.iter=n.iter,!Im(n.iter))return new TypeError(I("invalid option. `%s` option must be a nonnegative integer. Option: `%s`.","iter",n.iter));if(n.iter>77)return new RangeError(I("invalid option. `%s` option must be less than or equal to 77. Option: `%u`.","iter",n.iter))}return null}(e,n),o))throw o;return u=2,a=-1,f=0,s=0,Ur(t={},"next",(function(){if(s+=1,i||s>e.iter)return{done:!0};1===s?f=2:2===s?f=-1:(f=u-a,u=a,a=f);return{value:f,done:!1}})),Ur(t,"return",(function(r){if(i=!0,arguments.length)return{value:r,done:!0};return{done:!0}})),dm&&Ur(t,dm,(function(){return r(e)})),t})),C(Xm,"iterNegativeEvenIntegersSeq",(function r(n){var e,t,i,o,u,a;if(e={iter:Wm},arguments.length&&(o=function(r,n){return Tm(n)?or(n,"iter")&&(r.iter=n.iter,!Im(n.iter))?new TypeError(I("invalid option. `%s` option must be a nonnegative integer. Option: `%s`.","iter",n.iter)):null:new TypeError(I("invalid argument. Options argument must be an object. Value: `%s`.",n))}(e,n),o))throw o;return u=0,a=0,Ur(t={},"next",(function(){if(u+=1,i||u>e.iter)return{done:!0};return{value:a-=2,done:!1}})),Ur(t,"return",(function(r){if(i=!0,arguments.length)return{value:r,done:!0};return{done:!0}})),dm&&Ur(t,dm,(function(){return r(e)})),t})),C(Xm,"iterNegativeIntegersSeq",(function r(n){var e,t,i,o,u;if(e={iter:D},arguments.length&&(o=function(r,n){return Tm(n)?or(n,"iter")&&(r.iter=n.iter,!Im(n.iter))?new TypeError(I("invalid option. `%s` option must be a nonnegative integer. Option: `%s`.","iter",n.iter)):null:new TypeError(I("invalid argument. Options argument must be an object. Value: `%s`.",n))}(e,n),o))throw o;return u=0,Ur(t={},"next",(function(){if(u+=1,i||u>e.iter)return{done:!0};return{value:-u,done:!1}})),Ur(t,"return",(function(r){if(i=!0,arguments.length)return{value:r,done:!0};return{done:!0}})),dm&&Ur(t,dm,(function(){return r(e)})),t})),C(Xm,"iterNegativeOddIntegersSeq",(function r(n){var e,t,i,o,u,a;if(e={iter:zm},arguments.length&&(o=function(r,n){return Tm(n)?or(n,"iter")&&(r.iter=n.iter,!Im(n.iter))?new TypeError(I("invalid option. `%s` option must be a nonnegative integer. Option: `%s`.","iter",n.iter)):null:new TypeError(I("invalid argument. Options argument must be an object. Value: `%s`.",n))}(e,n),o))throw o;return u=0,a=1,Ur(t={},"next",(function(){if(u+=1,i||u>e.iter)return{done:!0};return{value:a-=2,done:!1}})),Ur(t,"return",(function(r){if(i=!0,arguments.length)return{value:r,done:!0};return{done:!0}})),dm&&Ur(t,dm,(function(){return r(e)})),t})),C(Xm,"iterNonFibonacciSeq",(function r(n){var e,t,i,o,u;if(e={iter:1e308},arguments.length&&(o=function(r,n){return Tm(n)?or(n,"iter")&&(r.iter=n.iter,!Im(n.iter))?new TypeError(I("invalid option. `%s` option must be a nonnegative integer. Option: `%s`.","iter",n.iter)):null:new TypeError(I("invalid argument. Options argument must be an object. Value: `%s`.",n))}(e,n),o))throw o;return u=0,Ur(t={},"next",(function(){if(u+=1,i||u>e.iter)return{done:!0};return{value:_v(u),done:!1}})),Ur(t,"return",(function(r){if(i=!0,arguments.length)return{value:r,done:!0};return{done:!0}})),dm&&Ur(t,dm,(function(){return r(e)})),t})),C(Xm,"iterNonNegativeEvenIntegersSeq",(function r(n){var e,t,i,o,u,a;if(e={iter:Gm},arguments.length&&(o=function(r,n){return Tm(n)?or(n,"iter")&&(r.iter=n.iter,!Im(n.iter))?new TypeError(I("invalid option. `%s` option must be a nonnegative integer. Option: `%s`.","iter",n.iter)):null:new TypeError(I("invalid argument. Options argument must be an object. Value: `%s`.",n))}(e,n),o))throw o;return u=0,a=-2,Ur(t={},"next",(function(){if(u+=1,i||u>e.iter)return{done:!0};return{value:a+=2,done:!1}})),Ur(t,"return",(function(r){if(i=!0,arguments.length)return{value:r,done:!0};return{done:!0}})),dm&&Ur(t,dm,(function(){return r(e)})),t})),C(Xm,"iterNonNegativeIntegersSeq",(function r(n){var e,t,i,o,u;if(e={iter:$m},arguments.length&&(o=function(r,n){return Tm(n)?or(n,"iter")&&(r.iter=n.iter,!Im(n.iter))?new TypeError(I("invalid option. `%s` option must be a nonnegative integer. Option: `%s`.","iter",n.iter)):null:new TypeError(I("invalid argument. Options argument must be an object. Value: `%s`.",n))}(e,n),o))throw o;return u=-1,Ur(t={},"next",(function(){if(u+=1,i||u>=e.iter)return{done:!0};return{value:u,done:!1}})),Ur(t,"return",(function(r){if(i=!0,arguments.length)return{value:r,done:!0};return{done:!0}})),dm&&Ur(t,dm,(function(){return r(e)})),t})),C(Xm,"iterNonPositiveEvenIntegersSeq",(function r(n){var e,t,i,o,u,a;if(e={iter:Jm},arguments.length&&(o=function(r,n){return Tm(n)?or(n,"iter")&&(r.iter=n.iter,!Im(n.iter))?new TypeError(I("invalid option. `%s` option must be a nonnegative integer. Option: `%s`.","iter",n.iter)):null:new TypeError(I("invalid argument. Options argument must be an object. Value: `%s`.",n))}(e,n),o))throw o;return u=0,a=2,Ur(t={},"next",(function(){if(u+=1,i||u>e.iter)return{done:!0};return{value:a-=2,done:!1}})),Ur(t,"return",(function(r){if(i=!0,arguments.length)return{value:r,done:!0};return{done:!0}})),dm&&Ur(t,dm,(function(){return r(e)})),t})),C(Xm,"iterNonPositiveIntegersSeq",(function r(n){var e,t,i,o,u,a;if(e={iter:Zm},arguments.length&&(o=function(r,n){return Tm(n)?or(n,"iter")&&(r.iter=n.iter,!Im(n.iter))?new TypeError(I("invalid option. `%s` option must be a nonnegative integer. Option: `%s`.","iter",n.iter)):null:new TypeError(I("invalid argument. Options argument must be an object. Value: `%s`.",n))}(e,n),o))throw o;return u=0,a=1,Ur(t={},"next",(function(){if(u+=1,i||u>e.iter)return{done:!0};return{value:a-=1,done:!1}})),Ur(t,"return",(function(r){if(i=!0,arguments.length)return{value:r,done:!0};return{done:!0}})),dm&&Ur(t,dm,(function(){return r(e)})),t})),C(Xm,"iterNonSquaresSeq",(function r(n){var e,t,i,o,u;if(e={iter:9007199349647256},arguments.length&&(o=function(r,n){return Tm(n)?or(n,"iter")&&(r.iter=n.iter,!Im(n.iter))?new TypeError(I("invalid option. `%s` option must be a nonnegative integer. Option: `%s`.","iter",n.iter)):null:new TypeError(I("invalid argument. Options argument must be an object. Value: `%s`.",n))}(e,n),o))throw o;return u=0,Ur(t={},"next",(function(){if(u+=1,i||u>e.iter)return{done:!0};return{value:u+Y(.5+q(u)),done:!1}})),Ur(t,"return",(function(r){if(i=!0,arguments.length)return{value:r,done:!0};return{done:!0}})),dm&&Ur(t,dm,(function(){return r(e)})),t})),C(Xm,"iterOddIntegersSeq",(function r(n){var e,t,i,o,u,a,f;if(e={iter:D},arguments.length&&(o=function(r,n){return Tm(n)?or(n,"iter")&&(r.iter=n.iter,!Im(n.iter))?new TypeError(I("invalid option. `%s` option must be a nonnegative integer. Option: `%s`.","iter",n.iter)):null:new TypeError(I("invalid argument. Options argument must be an object. Value: `%s`.",n))}(e,n),o))throw o;return u=-1,a=0,f=-1,Ur(t={},"next",(function(){if(a+=1,i||a>e.iter)return{done:!0};u<0&&(f+=2);return{value:(u*=-1)*f,done:!1}})),Ur(t,"return",(function(r){if(i=!0,arguments.length)return{value:r,done:!0};return{done:!0}})),dm&&Ur(t,dm,(function(){return r(e)})),t})),C(Xm,"iterPositiveEvenIntegersSeq",(function r(n){var e,t,i,o,u,a;if(e={iter:Hm},arguments.length&&(o=function(r,n){return Tm(n)?or(n,"iter")&&(r.iter=n.iter,!Im(n.iter))?new TypeError(I("invalid option. `%s` option must be a nonnegative integer. Option: `%s`.","iter",n.iter)):null:new TypeError(I("invalid argument. Options argument must be an object. Value: `%s`.",n))}(e,n),o))throw o;return u=0,a=0,Ur(t={},"next",(function(){if(u+=1,i||u>e.iter)return{done:!0};return{value:a+=2,done:!1}})),Ur(t,"return",(function(r){if(i=!0,arguments.length)return{value:r,done:!0};return{done:!0}})),dm&&Ur(t,dm,(function(){return r(e)})),t})),C(Xm,"iterPositiveIntegersSeq",(function r(n){var e,t,i,o,u;if(e={iter:D},arguments.length&&(o=function(r,n){return Tm(n)?or(n,"iter")&&(r.iter=n.iter,!Im(n.iter))?new TypeError(I("invalid option. `%s` option must be a nonnegative integer. Option: `%s`.","iter",n.iter)):null:new TypeError(I("invalid argument. Options argument must be an object. Value: `%s`.",n))}(e,n),o))throw o;return u=0,Ur(t={},"next",(function(){if(u+=1,i||u>e.iter)return{done:!0};return{value:u,done:!1}})),Ur(t,"return",(function(r){if(i=!0,arguments.length)return{value:r,done:!0};return{done:!0}})),dm&&Ur(t,dm,(function(){return r(e)})),t})),C(Xm,"iterPositiveOddIntegersSeq",(function r(n){var e,t,i,o,u,a;if(e={iter:Km},arguments.length&&(o=function(r,n){return Tm(n)?or(n,"iter")&&(r.iter=n.iter,!Im(n.iter))?new TypeError(I("invalid option. `%s` option must be a nonnegative integer. Option: `%s`.","iter",n.iter)):null:new TypeError(I("invalid argument. Options argument must be an object. Value: `%s`.",n))}(e,n),o))throw o;return u=0,a=-1,Ur(t={},"next",(function(){if(u+=1,i||u>e.iter)return{done:!0};return{value:a+=2,done:!1}})),Ur(t,"return",(function(r){if(i=!0,arguments.length)return{value:r,done:!0};return{done:!0}})),dm&&Ur(t,dm,(function(){return r(e)})),t})),C(Xm,"iterPrimesSeq",(function r(n){var e,t,i,o,u,a;if(e={iter:0xdefddd2d1d18},arguments.length&&(o=function(r,n){return Tm(n)?or(n,"iter")&&(r.iter=n.iter,!Im(n.iter))?new TypeError(I("invalid option. `%s` option must be a nonnegative integer. Option: `%s`.","iter",n.iter)):null:new TypeError(I("invalid argument. Options argument must be an object. Value: `%s`.",n))}(e,n),o))throw o;return a=0,u=1,Ur(t={},"next",(function(){if(a+=1,i||a>e.iter)return{done:!0};if(a<2)return{value:2,done:!1};u+=2;for(;!1===z(u);)u+=2;return{value:u,done:!1}})),Ur(t,"return",(function(r){if(i=!0,arguments.length)return{value:r,done:!0};return{done:!0}})),dm&&Ur(t,dm,(function(){return r(e)})),t})),C(Xm,"iterSquaredTriangularSeq",(function r(n){var e,t,i,o,u;if(e={iter:11585},arguments.length&&(o=function(r,n){return Tm(n)?or(n,"iter")&&(r.iter=n.iter,!Im(n.iter))?new TypeError(I("invalid option. `%s` option must be a nonnegative integer. Option: `%s`.","iter",n.iter)):null:new TypeError(I("invalid argument. Options argument must be an object. Value: `%s`.",n))}(e,n),o))throw o;return u=-1,Ur(t={},"next",(function(){var r;if(u+=1,i||u>=e.iter)return{done:!0};return{value:(r=u/2*(u+1))*r,done:!1}})),Ur(t,"return",(function(r){if(i=!0,arguments.length)return{value:r,done:!0};return{done:!0}})),dm&&Ur(t,dm,(function(){return r(e)})),t})),C(Xm,"iterSquaresSeq",(function r(n){var e,t,i,o,u;if(e={iter:94906265},arguments.length&&(o=function(r,n){return Tm(n)?or(n,"iter")&&(r.iter=n.iter,!Im(n.iter))?new TypeError(I("invalid option. `%s` option must be a nonnegative integer. Option: `%s`.","iter",n.iter)):null:new TypeError(I("invalid argument. Options argument must be an object. Value: `%s`.",n))}(e,n),o))throw o;return u=-1,Ur(t={},"next",(function(){if(u+=1,i||u>=e.iter)return{done:!0};return{value:u*u,done:!1}})),Ur(t,"return",(function(r){if(i=!0,arguments.length)return{value:r,done:!0};return{done:!0}})),dm&&Ur(t,dm,(function(){return r(e)})),t})),C(Xm,"iterTriangularSeq",(function r(n){var e,t,i,o,u;if(e={iter:134217727},arguments.length&&(o=function(r,n){return Tm(n)?or(n,"iter")&&(r.iter=n.iter,!Im(n.iter))?new TypeError(I("invalid option. `%s` option must be a nonnegative integer. Option: `%s`.","iter",n.iter)):null:new TypeError(I("invalid argument. Options argument must be an object. Value: `%s`.",n))}(e,n),o))throw o;return u=-1,Ur(t={},"next",(function(){if(u+=1,i||u>=e.iter)return{done:!0};return{value:u/2*(u+1),done:!1}})),Ur(t,"return",(function(r){if(i=!0,arguments.length)return{value:r,done:!0};return{done:!0}})),dm&&Ur(t,dm,(function(){return r(e)})),t}));var ng={};C(ng,"iterAbs",(function(r){return Qm(r,en)})),C(ng,"iterAbs2",(function(r){return Qm(r,jn)})),C(ng,"iterAcos",(function(r){return Qm(r,Fn)})),C(ng,"iterAcosh",(function(r){return Qm(r,Ge)})),C(ng,"iterAcot",(function(r){return Qm(r,Ke)})),C(ng,"iterAcoth",(function(r){return Qm(r,tt)})),C(ng,"iterAcovercos",(function(r){return Qm(r,it)})),C(ng,"iterAcoversin",(function(r){return Qm(r,ot)})),C(ng,"iterAhavercos",(function(r){return Qm(r,vt)})),C(ng,"iterAhaversin",(function(r){return Qm(r,dt)})),C(ng,"iterAsin",(function(r){return Qm(r,In)})),C(ng,"iterAsinh",(function(r){return Qm(r,pt)})),C(ng,"iterAtan",(function(r){return Qm(r,He)})),C(ng,"iterAtan2",(function(r,n){return rg(r,n,Ct)})),C(ng,"iterAtanh",(function(r){return Qm(r,et)})),C(ng,"iterAvercos",(function(r){return Qm(r,qt)})),C(ng,"iterAversin",(function(r){return Qm(r,Yt)})),C(ng,"iterBesselj0",(function(r){return Qm(r,To)})),C(ng,"iterBesselj1",(function(r){return Qm(r,Fo)})),C(ng,"iterBessely0",(function(r){return Qm(r,Go)})),C(ng,"iterBessely1",(function(r){return Qm(r,eu)})),C(ng,"iterBeta",(function(r,n){return rg(r,n,oa)})),C(ng,"iterBetaln",(function(r,n){return rg(r,n,_c)})),C(ng,"iterBinet",(function(r){return Qm(r,jc)})),C(ng,"iterCbrt",(function(r){return Qm(r,Uc)})),C(ng,"iterCeil",(function(r){return Qm(r,tu)})),C(ng,"iterCeil2",(function(r){return Qm(r,il)})),C(ng,"iterCeil10",(function(r){return Qm(r,dl)})),C(ng,"iterCos",(function(r){return Qm(r,Wa)})),C(ng,"iterCosh",(function(r){return Qm(r,Ol)})),C(ng,"iterCosm1",(function(r){return Qm(r,Sl)})),C(ng,"iterCospi",(function(r){return Qm(r,xc)})),C(ng,"iterCovercos",(function(r){return Qm(r,Dl)})),C(ng,"iterCoversin",(function(r){return Qm(r,Wl)})),C(ng,"iterDeg2rad",(function(r){return Qm(r,Tl)})),C(ng,"iterDigamma",(function(r){return Qm(r,sh)})),C(ng,"iterDiracDelta",(function(r){return Qm(r,ch)})),C(ng,"iterEta",(function(r){return Qm(r,bh)})),C(ng,"iterEllipe",(function(r){return Qm(r,xh)})),C(ng,"iterEllipk",(function(r){return Qm(r,Eh)})),C(ng,"iterErf",(function(r){return Qm(r,Jh)})),C(ng,"iterErfc",(function(r){return Qm(r,Tf)})),C(ng,"iterErfcinv",(function(r){return Qm(r,ws)})),C(ng,"iterErfinv",(function(r){return Qm(r,tp)})),C(ng,"iterExp",(function(r){return Qm(r,hu)})),C(ng,"iterExp2",(function(r){return Qm(r,op)})),C(ng,"iterExp10",(function(r){return Qm(r,sp)})),C(ng,"iterExpit",(function(r){return Qm(r,cp)})),C(ng,"iterExpm1",(function(r){return Qm(r,pa)})),C(ng,"iterExpm1rel",(function(r){return Qm(r,hp)})),C(ng,"iterFactorial",(function(r){return Qm(r,Ra)})),C(ng,"iterFactorialln",(function(r){return Qm(r,pp)})),C(ng,"iterFloor",(function(r){return Qm(r,Y)})),C(ng,"iterFloor2",(function(r){return Qm(r,Ap)})),C(ng,"iterFloor10",(function(r){return Qm(r,Sp)})),C(ng,"iterFresnelc",(function(r){return Qm(r,Lp)})),C(ng,"iterFresnels",(function(r){return Qm(r,Pp)})),C(ng,"iterGamma",(function(r){return Qm(r,ka)})),C(ng,"iterGamma1pm1",(function(r){return Qm(r,zf)})),C(ng,"iterGammaln",(function(r){return Qm(r,cf)})),C(ng,"iterHacovercos",(function(r){return Qm(r,zp)})),C(ng,"iterHacoversin",(function(r){return Qm(r,Gp)})),C(ng,"iterHavercos",(function(r){return Qm(r,$p)})),C(ng,"iterHaversin",(function(r){return Qm(r,Jp)})),C(ng,"iterInv",(function(r){return Qm(r,Hp)})),C(ng,"iterLn",(function(r){return Qm(r,We)})),C(ng,"iterLog",(function(r,n){return rg(r,n,Xp)})),C(ng,"iterLog1mexp",(function(r){return Qm(r,Qp)})),C(ng,"iterLog1p",(function(r){return Qm(r,Be)})),C(ng,"iterLog1pexp",(function(r){return Qm(r,rv)})),C(ng,"iterLog2",(function(r){return Qm(r,tl)})),C(ng,"iterLog10",(function(r){return Qm(r,vl)})),C(ng,"iterLogit",(function(r){return Qm(r,nv)})),C(ng,"iterPow",(function(r,n){return rg(r,n,na)})),C(ng,"iterRad2deg",(function(r){return Qm(r,Rn)})),C(ng,"iterRamp",(function(r){return Qm(r,Kv)})),C(ng,"iterZeta",(function(r){return Qm(r,wh)})),C(ng,"iterRound",(function(r){return Qm(r,Ei)})),C(ng,"iterRound2",(function(r){return Qm(r,nd)})),C(ng,"iterRound10",(function(r){return Qm(r,id)})),C(ng,"iterRsqrt",(function(r){return Qm(r,od)})),C(ng,"iterSignum",(function(r){return Qm(r,Ls)})),C(ng,"iterSin",(function(r){return Qm(r,ja)})),C(ng,"iterSinc",(function(r){return Qm(r,sd)})),C(ng,"iterSinh",(function(r){return Qm(r,nh)})),C(ng,"iterSinpi",(function(r){return Qm(r,za)})),C(ng,"iterSpence",(function(r){return Qm(r,pd)})),C(ng,"iterSqrt",(function(r){return Qm(r,q)})),C(ng,"iterSqrt1pm1",(function(r){return Qm(r,vd)})),C(ng,"iterTan",(function(r){return Qm(r,Ul)})),C(ng,"iterTanh",(function(r){return Qm(r,Yl)})),C(ng,"iterTrigamma",(function(r){return Qm(r,Tv)})),C(ng,"iterTrunc",(function(r){return Qm(r,iu)})),C(ng,"iterTrunc2",(function(r){return Qm(r,md)})),C(ng,"iterTrunc10",(function(r){return Qm(r,gd)})),C(ng,"iterVercos",(function(r){return Qm(r,Ed)})),C(ng,"iterVersin",(function(r){return Qm(r,xd)}));var eg={};C(eg,"map",Qm),C(eg,"map2",rg),C(eg,"map3",(function r(n,e,t,i,o){var u,a,f,s,c,l,h,p;for(3,a=[0,0,0],u=[],f=[],p=0;p<3;p++)if(u.push(arguments[p]),pm(arguments[p]))f.push(1);else{if(!Cr(arguments[p]))throw new TypeError(I("invalid argument. Must provide an iterator protocol-compliant object or a number. Argument: `%u`. Value: `%s`.",p,arguments[p]));f.push(0)}if(!am(i))throw new TypeError(I("invalid argument. Third argument must be a function. Value: `%s`.",i));if(c={invalid:NaN},arguments.length>4&&(h=function(r,n){return Tm(n)?(or(n,"invalid")&&(r.invalid=n.invalid),null):new TypeError(I("invalid argument. Options argument must be an object. Value: `%s`.",n))}(c,o),h))throw h;if(Ur(s={},"next",(function(){var r,n,e;if(l)return{done:!0};for(e=0;e<3;e++)if(f[e]){if((n=u[e].next()).done)return l=!0,n;"number"==typeof n.value?a[e]=n.value:r=!0}else a[e]=u[e];if(r)return{value:c.invalid,done:!1};return{value:i(a[0],a[1],a[2]),done:!1}})),Ur(s,"return",(function(r){if(l=!0,arguments.length)return{value:r,done:!0};return{done:!0}})),dm){for(p=0;p<3;p++)if(f[p]&&!am(u[p][dm])){l=!0;break}l||Ur(s,dm,(function(){var n,e;for(n=[],e=0;e<3;e++)f[e]?n.push(u[e][dm]()):n.push(u[e]);return n.push(i,c),r.apply(null,n)}))}return l=!1,s}));var tg=1e-50;var ig={};C(ig,"iterContinuedFraction",(function(r){var n,e,t,i,o,u,a,f,s,c;if(!pm(r))throw new TypeError(I("invalid argument. Must provide an iterator. Value: `%s`.",r));if(e={iter:1e308,tol:an},arguments.length>1&&(t=function(r,n){return Tm(n)?or(n,"iter")&&(r.iter=n.iter,!Im(n.iter))?new TypeError("invalid option. `%s` option must be a nonnegative integer. Option: `%s`.","iter",n.iter):or(n,"tol")&&(r.tol=n.tol,!Rm(n.tol)||n.tol<=0)?new TypeError(I("invalid option. `%s` option must be a positive finite number. Option: `%s`.","tol",n.tol)):null:new TypeError(I("invalid argument. Options argument must be an object. Value: `%s`.",n))}(e,arguments[1]),t))throw t;if((o=r.next()).done)return null;if(!Cr(i=o.value)||Z(i))return i;for(0===(f=i)&&(f=tg),u=f,a=0,c=1;c=0&&r.length<=ag}function sg(r){return Object.keys(Object(r))}var cg,lg=void 0!==Object.keys;function hg(r){return"[object Arguments]"===sr(r)}cg=function(){return hg(arguments)}();var pg=cg;function vg(r){return"string"==typeof r}var dg=String.prototype.valueOf;var mg=er();function gg(r){return"object"==typeof r&&(r instanceof String||(mg?function(r){try{return dg.call(r),!0}catch(r){return!1}}(r):"[object String]"===sr(r)))}function yg(r){return vg(r)||gg(r)}function wg(r){return Cr(r)&&ni(r)}function bg(r){return Dr(r)&&ni(r.valueOf())}function _g(r){return wg(r)||bg(r)}Ur(yg,"isPrimitive",vg),Ur(yg,"isObject",gg),Ur(_g,"isPrimitive",wg),Ur(_g,"isObject",bg);var Eg=Object.prototype.propertyIsEnumerable;var xg=!Eg.call("beep","0");function Tg(r,n){var e;return null!=r&&(!(e=Eg.call(r,n))&&xg&&yg(r)?!wg(n=+n)&&Om(n)&&n>=0&&n=0&&r.length<=mr&&or(r,"callee")&&!Tg(r,"callee")},jg=Array.prototype.slice;var Vg=Tg((function(){}),"prototype"),Og=!Tg({toString:null},"toString"),Ag=9007199254740991;function Sg(r){return"object"==typeof r&&null!==r&&"number"==typeof r.length&&jm(r.length)&&r.length>=0&&r.length<=Ag}function Ig(r,n,e){var t,i;if(!Sg(r)&&!vg(r))throw new TypeError(I("invalid argument. First argument must be an array-like object. Value: `%s`.",r));if(0===(t=r.length))return-1;if(3===arguments.length){if(!Om(e))throw new TypeError(I("invalid argument. Third argument must be an integer. Value: `%s`.",e));if(e>=0){if(e>=t)return-1;i=e}else(i=t+e)<0&&(i=0)}else i=0;if(_g(n)){for(;i0&&!or(r,"0"))for(a=0;a1){if(!Tm(n))throw new TypeError(I("invalid argument. Options argument must be an object. Value: `%s`.",n));if(or(n,"duplicates")&&!Ud(s=n.duplicates))throw new TypeError(I("invalid option. `%s` option must be a boolean. Option: `%s`.","duplicates",s))}if(t=(e=Ug(r)).length,u={},s)for(f=0;f0&&n.push("generic"),n)}function zg(){return{bool:0,int8:1,uint8:2,uint8c:3,int16:4,uint16:5,int32:6,uint32:7,int64:8,uint64:9,float32:10,float64:11,complex64:12,complex128:13,binary:14,generic:15,notype:17,userdefined_type:256}}Ur(Wg,"enum",zg),function(r,n){var e,t,i;for(e=Ug(n),i=0;i ("):o.push("("):s===f?s===c?o.push(") => ()"):o.push(")"):s===c?o.push(") => ("):s%2==1?o.push(""):o.push(", ");for(s=0;si&&(t=!1),!t&&!n)return 0;i=o}return t&&n?3:t?1:2}function ay(r,n){return n&&(2===r||3===r)}function fy(r,n){return n&&(1===r||3===r)}function sy(r,n,e){var t,i,o,u,a;for(t=r.length,i=e,o=e,a=0;a0?o+=u*(r[a]-1):u<0&&(i+=u*(r[a]-1))}return[i,o]}Ur(sy,"assign",(function(r,n,e,t){var i,o,u,a,f;for(i=r.length,o=e,u=e,f=0;f0?u+=a*(r[f]-1):a<0&&(o+=a*(r[f]-1))}return t[0]=o,t[1]=u,t}));var cy=/[-\/\\^$*+?.()|[\]{}]/g;var ly=RegExp.prototype.exec;var hy=er();function py(r){return"object"==typeof r&&(r instanceof RegExp||(hy?function(r){try{return ly.call(r),!0}catch(r){return!1}}(r):"[object RegExp]"===sr(r)))}function vy(r,n,e){if(!vg(r))throw new TypeError(I("invalid argument. First argument must be a string. Value: `%s`.",r));if(vg(n))n=new RegExp(function(r){var n,e;if(!vg(r))throw new TypeError(I("invalid argument. Must provide a regular expression string. Value: `%s`.",r));if("/"===r[0])for(e=r.length-1;e>=0&&"/"!==r[e];e--);return void 0===e||e<=0?r.replace(cy,"\\$&"):(n=(n=r.substring(1,e)).replace(cy,"\\$&"),r=r[0]+n+r.substring(e))}(n),"g");else if(!py(n))throw new TypeError(I("invalid argument. Second argument must be a string or regular expression. Value: `%s`.",n));if(!vg(e)&&!am(e))throw new TypeError(I("invalid argument. Third argument must be a string or replacement function. Value: `%s`.",e));return qg(r,n,e)}var dy={int8:"new Int8Array( [ {{data}} ] )",uint8:"new Uint8Array( [ {{data}} ] )",uint8c:"new Uint8ClampedArray( [ {{data}} ] )",int16:"new Int16Array( [ {{data}} ] )",uint16:"new Uint16Array( [ {{data}} ] )",int32:"new Int32Array( [ {{data}} ] )",uint32:"new Uint32Array( [ {{data}} ] )",float32:"new Float32Array( [ {{data}} ] )",float64:"new Float64Array( [ {{data}} ] )",generic:"[ {{data}} ]",binary:"new Buffer( [ {{data}} ] )",complex64:"new Complex64Array( [ {{data}} ] )",complex128:"new Complex128Array( [ {{data}} ] )"};var my="function"==typeof ArrayBuffer;function gy(r){return my&&r instanceof ArrayBuffer||"[object ArrayBuffer]"===sr(r)}var yy="function"==typeof ArrayBuffer?ArrayBuffer:null;var wy,by="function"==typeof ArrayBuffer?ArrayBuffer:void 0;wy=function(){var r,n,e;if("function"!=typeof yy)return!1;try{(r=gy(e=new yy(16))&&"function"==typeof yy.isView)&&((n=new te(e))[0]=-3.14,n[1]=NaN,r=r&&yy.isView(n)&&16===e.byteLength&&-3.14===n[0]&&n[1]!=n[1])}catch(n){r=!1}return r}()?by:function(){throw new Error("not implemented")};var _y=wy,Ey="function"==typeof DataView;var xy="function"==typeof DataView?DataView:null;var Ty,Ny="function"==typeof DataView?DataView:void 0;Ty=function(){var r,n,e,t;if("function"!=typeof xy)return!1;try{e=new _y(24),n=new xy(e,8),t=n,(r=(Ey&&t instanceof DataView||"[object DataView]"===sr(t))&&"function"==typeof n.getFloat64&&"function"==typeof n.setFloat64)&&(n.setFloat64(0,-3.14),n.setFloat64(8,NaN),r=r&&n.buffer===e&&16===n.byteLength&&8===n.byteOffset&&-3.14===n.getFloat64(0)&&n.getFloat64(8)!=n.getFloat64(8))}catch(n){r=!1}return r}()?Ny:function(){throw new Error("not implemented")};var jy=Ty,Vy="function"==typeof BigInt?BigInt:void 0,Oy=["row-major","column-major"];function Ay(){return Oy.slice()}var Sy=["row-major","column-major"];function Iy(){return{"row-major":101,"column-major":102}}Ur((function(){return Sy.slice()}),"enum",Iy);var ky={"row-major":101,"column-major":102};function Fy(){return{"row-major":ky["row-major"],"column-major":ky["column-major"]}}Ur(Ay,"enum",Fy);var By=["throw","normalize","clamp","wrap"];function Ry(){return By.slice()}function Ly(){return{throw:1,clamp:2,wrap:3,normalize:4}}Ur(Ry,"enum",Ly);var My={bool:0,int8:1,uint8:2,uint8c:3,int16:4,uint16:5,int32:6,uint32:7,int64:8,uint64:9,float32:10,float64:11,complex64:12,complex128:13,binary:14,generic:15,notype:17,userdefined_type:256},Py=Fy(),Uy={throw:1,clamp:2,wrap:3,normalize:4};var Cy=4294967295,qy=4294967296,Yy=new fe(8),Dy=new jy(Yy.buffer);function Wy(r,n,e,t){var i,o,u;if(0===r){for(u=0;u>>0,i=Nm(r/qy),me?(Dy.setUint32(0,o,me),Dy.setUint32(4,i,me)):(Dy.setUint32(0,i,me),Dy.setUint32(4,o,me)),u=0;u>>0,t=Nm(r/4294967296),e=new jy(n.buffer),me?(e.setUint32(0,i,me),e.setUint32(4,t,me)):(e.setUint32(0,t,me),e.setUint32(4,i,me))),n}),"assign",Wy);var zy={bool:0,int8:1,uint8:2,uint8c:3,int16:4,uint16:5,int32:6,uint32:7,int64:8,uint64:9,float32:10,float64:11,complex64:12,complex128:13,binary:14,generic:15,notype:17,userdefined_type:256},Gy=Fy(),$y={throw:1,clamp:2,wrap:3,normalize:4};function Jy(r,n,e,t,i,o){var u,a,f,s,c;if(!(this instanceof Jy))return new Jy(r,n,e,t,i,o);for(s=1,c=0;c=0;u--)r-=o=r%e[u],r/=e[u],i+=o*n[u];return this._accessors?this._buffer.get(i):this._buffer[i]})),Ur(Jy.prototype,"set",(function(){var r,n;for(r=this._offset,n=0;n=0;a--)r-=u=r%t[a],r/=t[a],o+=u*e[a];return this._accessors?this._buffer.set(n,o):this._buffer[o]=n,this})),Ur(Jy.prototype,"toString",(function(){var r,n,e,t,i,o;if(n=this._shape.length,e="ndarray( '"+(t=this._dtype)+"', ",r="",this._length<=100)if("complex64"===t||"complex128"===t)for(o=0;o=0;o--)r+=Kr(i=this.iget(this._length-1-o))+", "+Xr(i),o>0&&(r+=", ");else for(o=2;o>=0;o--)r+=this.iget(this._length-1-o),o>0&&(r+=", ")}if(e+=vy(dy[this.dtype],"{{data}}",r),e+=", ",e+=0===n?"[]":"[ "+this._shape.join(", ")+" ]",e+=", ",e+="[ ",0===n)e+="0";else for(o=0;o=2)n.push(t[0],t[1]);else{if(!ny(t))return new TypeError(I("invalid argument. An iterator must return either a two-element array containing real and imaginary components or a complex number. Value: `%s`.",t));n.push(Gr(t),$r(t))}return n}var kw=2*vr.BYTES_PER_ELEMENT,Fw=vm();function Bw(r){return r instanceof Mw||"object"==typeof r&&null!==r&&("Complex64Array"===r.constructor.name||"Complex128Array"===r.constructor.name)&&"number"==typeof r._length&&"object"==typeof r._buffer}function Rw(r){return r===Mw||"Complex128Array"===r.name}function Lw(r,n){return new zr(r[n*=2],r[n+1])}function Mw(){var r,n,e,t;if(n=arguments.length,!(this instanceof Mw))return 0===n?new Mw:1===n?new Mw(arguments[0]):2===n?new Mw(arguments[0],arguments[1]):new Mw(arguments[0],arguments[1],arguments[2]);if(0===n)e=new vr(0);else if(1===n)if(Im(arguments[0]))e=new vr(2*arguments[0]);else if(Sg(arguments[0]))if((t=(e=arguments[0]).length)&&nm(e)&&ny(e[0])){if(e=function(r,n){var e,t,i,o;for(e=n.length,o=0,i=0;ie.byteLength-r)throw new RangeError(I("invalid arguments. ArrayBuffer has insufficient capacity. Either decrease the array length or provide a bigger buffer. Minimum capacity: `%u`.",t*kw));e=new vr(e,r,2*t)}}return Ur(this,"_buffer",e),Ur(this,"_length",e.length/2),this}function Pw(r){var n,e,t;for(n=[];!(e=r.next()).done;)if(fg(t=e.value)&&t.length>=2)n.push(t[0],t[1]);else{if(!ny(t))return new TypeError(I("invalid argument. An iterator must return either a two-element array containing real and imaginary components or a complex number. Value: `%s`.",t));n.push(Kr(t),Xr(t))}return n}Ur(Mw,"BYTES_PER_ELEMENT",kw),Ur(Mw,"name","Complex64Array"),Ur(Mw,"from",(function(r){var n,e,t,i,o,u,a,f,s,c,l,h;if(!am(this))throw new TypeError("invalid invocation. `this` context must be a constructor.");if(!Rw(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");if((e=arguments.length)>1){if(!am(t=arguments[1]))throw new TypeError(I("invalid argument. Second argument must be a function. Value: `%s`.",t));e>2&&(n=arguments[2])}if(Bw(r)){if(f=r.length,t){for(o=(i=new this(f))._buffer,h=0,l=0;l=2))throw new TypeError(I("invalid argument. Callback must return either a two-element array containing real and imaginary components or a complex number. Value: `%s`.",c));o[h]=c[0],o[h+1]=c[1]}h+=2}return i}return new this(r)}if(Sg(r)){if(t){for(f=r.length,a=r.get&&r.set?Sw("default"):Ow("default"),l=0;l=2))throw new TypeError(I("invalid argument. Callback must return either a two-element array containing real and imaginary components or a complex number. Value: `%s`.",c));o[h]=c[0],o[h+1]=c[1]}h+=2}return i}return new this(r)}if(gm(r)&&Fw&&am(r[dm])){if(!am((o=r[dm]()).next))throw new TypeError(I("invalid argument. First argument must be an array-like object or an iterable. Value: `%s`.",r));if(u=t?function(r,n,e){var t,i,o,u;for(t=[],u=-1;!(i=r.next()).done;)if(u+=1,fg(o=n.call(e,i.value,u))&&o.length>=2)t.push(o[0],o[1]);else{if(!ny(o))return new TypeError(I("invalid argument. Callback must return either a two-element array containing real and imaginary components or a complex number. Value: `%s`.",o));t.push(Gr(o),$r(o))}return t}(o,t,n):Iw(o),u instanceof Error)throw u;for(o=(i=new this(f=u.length/2))._buffer,l=0;l=this._length))return Lw(this._buffer,r)})),Pm(Mw.prototype,"buffer",(function(){return this._buffer.buffer})),Pm(Mw.prototype,"byteLength",(function(){return this._buffer.byteLength})),Pm(Mw.prototype,"byteOffset",(function(){return this._buffer.byteOffset})),Ur(Mw.prototype,"BYTES_PER_ELEMENT",Mw.BYTES_PER_ELEMENT),Ur(Mw.prototype,"copyWithin",(function(r,n){if(!Bw(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");return 2===arguments.length?this._buffer.copyWithin(2*r,2*n):this._buffer.copyWithin(2*r,2*n,2*arguments[2]),this})),Ur(Mw.prototype,"entries",(function(){var r,n,e,t,i,o;if(!Bw(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");return r=this,t=this._buffer,e=this._length,o=-1,Ur(n={},"next",(function(){if(o+=1,i||o>=e)return{done:!0};return{value:[o,Lw(t,o)],done:!1}})),Ur(n,"return",(function(r){if(i=!0,arguments.length)return{value:r,done:!0};return{done:!0}})),dm&&Ur(n,dm,(function(){return r.entries()})),n})),Ur(Mw.prototype,"every",(function(r,n){var e,t;if(!Bw(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");if(!am(r))throw new TypeError(I("invalid argument. First argument must be a function. Value: `%s`.",r));for(e=this._buffer,t=0;t1){if(!jm(n))throw new TypeError(I("invalid argument. Second argument must be an integer. Value: `%s`.",n));if(n<0&&(n+=i)<0&&(n=0),arguments.length>2){if(!jm(e))throw new TypeError(I("invalid argument. Third argument must be an integer. Value: `%s`.",e));e<0&&(e+=i)<0&&(e=0),e>i&&(e=i)}else e=i}else n=0,e=i;for(u=Gr(r),a=$r(r),f=n;f=0;t--)if(i=Lw(e,t),r.call(n,i,t,this))return i})),Ur(Mw.prototype,"findLastIndex",(function(r,n){var e,t,i;if(!Bw(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");if(!am(r))throw new TypeError(I("invalid argument. First argument must be a function. Value: `%s`.",r));for(e=this._buffer,t=this._length-1;t>=0;t--)if(i=Lw(e,t),r.call(n,i,t,this))return t;return-1})),Ur(Mw.prototype,"forEach",(function(r,n){var e,t,i;if(!Bw(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");if(!am(r))throw new TypeError(I("invalid argument. First argument must be a function. Value: `%s`.",r));for(e=this._buffer,t=0;t=this._length))return Lw(this._buffer,r)})),Ur(Mw.prototype,"includes",(function(r,n){var e,t,i,o,u;if(!Bw(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");if(!ny(r))throw new TypeError(I("invalid argument. First argument must be a complex number. Value: `%s`.",r));if(arguments.length>1){if(!jm(n))throw new TypeError(I("invalid argument. Second argument must be an integer. Value: `%s`.",n));n<0&&(n+=this._length)<0&&(n=0)}else n=0;for(i=Gr(r),o=$r(r),e=this._buffer,u=n;u1){if(!jm(n))throw new TypeError(I("invalid argument. Second argument must be an integer. Value: `%s`.",n));n<0&&(n+=this._length)<0&&(n=0)}else n=0;for(i=Gr(r),o=$r(r),e=this._buffer,u=n;u=e)return{done:!0};return{value:i,done:!1}})),Ur(n,"return",(function(r){if(t=!0,arguments.length)return{value:r,done:!0};return{done:!0}})),dm&&Ur(n,dm,(function(){return r.keys()})),n})),Ur(Mw.prototype,"lastIndexOf",(function(r,n){var e,t,i,o,u;if(!Bw(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");if(!ny(r))throw new TypeError(I("invalid argument. First argument must be a complex number. Value: `%s`.",r));if(arguments.length>1){if(!jm(n))throw new TypeError(I("invalid argument. Second argument must be an integer. Value: `%s`.",n));n>=this._length?n=this._length-1:n<0&&(n+=this._length)}else n=this._length-1;for(i=Gr(r),o=$r(r),e=this._buffer,u=n;u>=0;u--)if(i===e[t=2*u]&&o===e[t+1])return u;return-1})),Pm(Mw.prototype,"length",(function(){return this._length})),Ur(Mw.prototype,"map",(function(r,n){var e,t,i,o,u;if(!Bw(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");if(!am(r))throw new TypeError(I("invalid argument. First argument must be a function. Value: `%s`.",r));for(t=this._buffer,e=(i=new this.constructor(this._length))._buffer,o=0;o1)t=n,o=0;else{if(0===i)throw new Error("invalid operation. If not provided an initial value, an array must contain at least one element.");t=Lw(e,0),o=1}for(;o1)t=n,o=i-1;else{if(0===i)throw new Error("invalid operation. If not provided an initial value, an array must contain at least one element.");t=Lw(e,i-1),o=i-2}for(;o>=0;o--)t=r(t,Lw(e,o),o,this);return t})),Ur(Mw.prototype,"reverse",(function(){var r,n,e,t,i,o;if(!Bw(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");for(e=this._length,r=this._buffer,t=Nm(e/2),i=0;i1){if(!Im(e=arguments[1]))throw new TypeError(I("invalid argument. Index argument must be a nonnegative integer. Value: `%s`.",e))}else e=0;if(ny(r)){if(e>=this._length)throw new RangeError(I("invalid argument. Index argument is out-of-bounds. Value: `%u`.",e));return t[e*=2]=Gr(r),void(t[e+1]=$r(r))}if(Bw(r)){if(e+(u=r._length)>this._length)throw new RangeError("invalid arguments. Target array lacks sufficient storage to accommodate source values.");if(n=r._buffer,s=t.byteOffset+e*kw,n.buffer===t.buffer&&n.byteOffsets){for(i=new vr(n.length),f=0;fthis._length)throw new RangeError("invalid arguments. Target array lacks sufficient storage to accommodate source values.");if(n=r,s=t.byteOffset+e*kw,n.buffer===t.buffer&&n.byteOffsets){for(i=new vr(u),f=0;fthis._length)throw new RangeError("invalid arguments. Target array lacks sufficient storage to accommodate source values.");for(e*=2,f=0;fa&&(n=a)}}for(e=ri&&(n=i)}}return r>=i?(i=0,e=t.byteLength):r>=n?(i=0,e=t.byteOffset+r*kw):(i=n-r,e=t.byteOffset+r*kw),new this.constructor(t.buffer,e,i<0?0:i)})),Ur(Mw.prototype,"toLocaleString",(function(r,n){var e,t,i,o,u;if(!Bw(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");if(0===arguments.length)t=[];else{if(!vg(r)&&!gw(r))throw new TypeError(I("invalid argument. First argument must be a string or an array of strings. Value: `%s`.",r));t=r}if(arguments.length<2)e={};else{if(!gm(n))throw new TypeError(I("invalid argument. Options argument must be an object. Value: `%s`.",n));e=n}for(o=this._buffer,i=[],u=0;u=e)return{done:!0};return{value:Lw(i,o),done:!1}})),Ur(r,"return",(function(r){if(t=!0,arguments.length)return{value:r,done:!0};return{done:!0}})),dm&&Ur(r,dm,(function(){return n.values()})),r})),Ur(Mw.prototype,"with",(function(r,n){var e,t,i;if(!Bw(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");if(!jm(r))throw new TypeError(I("invalid argument. First argument must be an integer. Value: `%s`.",r));if(i=this._length,r<0&&(r+=i),r<0||r>=i)throw new RangeError(I("invalid argument. Index argument is out-of-bounds. Value: `%s`.",r));if(!ny(n))throw new TypeError(I("invalid argument. Second argument must be a complex number. Value: `%s`.",n));return(e=(t=new this.constructor(this._buffer))._buffer)[2*r]=Gr(n),e[2*r+1]=$r(n),t}));var Uw=2*te.BYTES_PER_ELEMENT,Cw=vm();function qw(r){return r instanceof Ww||"object"==typeof r&&null!==r&&("Complex64Array"===r.constructor.name||"Complex128Array"===r.constructor.name)&&"number"==typeof r._length&&"object"==typeof r._buffer}function Yw(r){return r===Ww||"Complex64Array"===r.name}function Dw(r,n){return new Hr(r[n*=2],r[n+1])}function Ww(){var r,n,e,t;if(n=arguments.length,!(this instanceof Ww))return 0===n?new Ww:1===n?new Ww(arguments[0]):2===n?new Ww(arguments[0],arguments[1]):new Ww(arguments[0],arguments[1],arguments[2]);if(0===n)e=new te(0);else if(1===n)if(Im(arguments[0]))e=new te(2*arguments[0]);else if(Sg(arguments[0]))if((t=(e=arguments[0]).length)&&nm(e)&&ny(e[0])){if(e=function(r,n){var e,t,i,o;for(e=n.length,o=0,i=0;ie.byteLength-r)throw new RangeError(I("invalid arguments. ArrayBuffer has insufficient capacity. Either decrease the array length or provide a bigger buffer. Minimum capacity: `%u`.",t*Uw));e=new te(e,r,2*t)}}return Ur(this,"_buffer",e),Ur(this,"_length",e.length/2),this}function zw(r){var n,e;for(n=[];!(e=r.next()).done;)n.push(Cd(e.value));return n}Ur(Ww,"BYTES_PER_ELEMENT",Uw),Ur(Ww,"name","Complex128Array"),Ur(Ww,"from",(function(r){var n,e,t,i,o,u,a,f,s,c,l,h;if(!am(this))throw new TypeError("invalid invocation. `this` context must be a constructor.");if(!Yw(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");if((e=arguments.length)>1){if(!am(t=arguments[1]))throw new TypeError(I("invalid argument. Second argument must be a function. Value: `%s`.",t));e>2&&(n=arguments[2])}if(qw(r)){if(f=r.length,t){for(o=(i=new this(f))._buffer,h=0,l=0;l=2))throw new TypeError(I("invalid argument. Callback must return either a two-element array containing real and imaginary components or a complex number. Value: `%s`.",c));o[h]=c[0],o[h+1]=c[1]}h+=2}return i}return new this(r)}if(Sg(r)){if(t){for(f=r.length,a=r.get&&r.set?Sw("default"):Ow("default"),l=0;l=2))throw new TypeError(I("invalid argument. Callback must return either a two-element array containing real and imaginary components or a complex number. Value: `%s`.",c));o[h]=c[0],o[h+1]=c[1]}h+=2}return i}return new this(r)}if(gm(r)&&Cw&&am(r[dm])){if(!am((o=r[dm]()).next))throw new TypeError(I("invalid argument. First argument must be an array-like object or an iterable. Value: `%s`.",r));if(u=t?function(r,n,e){var t,i,o,u;for(t=[],u=-1;!(i=r.next()).done;)if(u+=1,fg(o=n.call(e,i.value,u))&&o.length>=2)t.push(o[0],o[1]);else{if(!ny(o))return new TypeError(I("invalid argument. Callback must return either a two-element array containing real and imaginary components or a complex number. Value: `%s`.",o));t.push(Kr(o),Xr(o))}return t}(o,t,n):Pw(o),u instanceof Error)throw u;for(o=(i=new this(f=u.length/2))._buffer,l=0;l=this._length))return Dw(this._buffer,r)})),Pm(Ww.prototype,"buffer",(function(){return this._buffer.buffer})),Pm(Ww.prototype,"byteLength",(function(){return this._buffer.byteLength})),Pm(Ww.prototype,"byteOffset",(function(){return this._buffer.byteOffset})),Ur(Ww.prototype,"BYTES_PER_ELEMENT",Ww.BYTES_PER_ELEMENT),Ur(Ww.prototype,"copyWithin",(function(r,n){if(!qw(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");return 2===arguments.length?this._buffer.copyWithin(2*r,2*n):this._buffer.copyWithin(2*r,2*n,2*arguments[2]),this})),Ur(Ww.prototype,"entries",(function(){var r,n,e,t,i,o,u;if(!qw(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");return n=this,r=this._buffer,t=this._length,o=-1,u=-2,Ur(e={},"next",(function(){var n;if(o+=1,i||o>=t)return{done:!0};return n=new Hr(r[u+=2],r[u+1]),{value:[o,n],done:!1}})),Ur(e,"return",(function(r){if(i=!0,arguments.length)return{value:r,done:!0};return{done:!0}})),dm&&Ur(e,dm,(function(){return n.entries()})),e})),Ur(Ww.prototype,"every",(function(r,n){var e,t;if(!qw(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");if(!am(r))throw new TypeError(I("invalid argument. First argument must be a function. Value: `%s`.",r));for(e=this._buffer,t=0;t1){if(!jm(n))throw new TypeError(I("invalid argument. Second argument must be an integer. Value: `%s`.",n));if(n<0&&(n+=i)<0&&(n=0),arguments.length>2){if(!jm(e))throw new TypeError(I("invalid argument. Third argument must be an integer. Value: `%s`.",e));e<0&&(e+=i)<0&&(e=0),e>i&&(e=i)}else e=i}else n=0,e=i;for(u=Kr(r),a=Xr(r),f=n;f=0;t--)if(i=Dw(e,t),r.call(n,i,t,this))return i})),Ur(Ww.prototype,"findLastIndex",(function(r,n){var e,t,i;if(!qw(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");if(!am(r))throw new TypeError(I("invalid argument. First argument must be a function. Value: `%s`.",r));for(e=this._buffer,t=this._length-1;t>=0;t--)if(i=Dw(e,t),r.call(n,i,t,this))return t;return-1})),Ur(Ww.prototype,"forEach",(function(r,n){var e,t,i;if(!qw(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");if(!am(r))throw new TypeError(I("invalid argument. First argument must be a function. Value: `%s`.",r));for(e=this._buffer,t=0;t=this._length))return Dw(this._buffer,r)})),Pm(Ww.prototype,"length",(function(){return this._length})),Ur(Ww.prototype,"includes",(function(r,n){var e,t,i,o,u;if(!qw(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");if(!ny(r))throw new TypeError(I("invalid argument. First argument must be a complex number. Value: `%s`.",r));if(arguments.length>1){if(!jm(n))throw new TypeError(I("invalid argument. Second argument must be an integer. Value: `%s`.",n));n<0&&(n+=this._length)<0&&(n=0)}else n=0;for(i=Kr(r),o=Xr(r),e=this._buffer,u=n;u1){if(!jm(n))throw new TypeError(I("invalid argument. Second argument must be an integer. Value: `%s`.",n));n<0&&(n+=this._length)<0&&(n=0)}else n=0;for(i=Kr(r),o=Xr(r),e=this._buffer,u=n;u=e)return{done:!0};return{value:i,done:!1}})),Ur(n,"return",(function(r){if(t=!0,arguments.length)return{value:r,done:!0};return{done:!0}})),dm&&Ur(n,dm,(function(){return r.keys()})),n})),Ur(Ww.prototype,"lastIndexOf",(function(r,n){var e,t,i,o,u;if(!qw(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");if(!ny(r))throw new TypeError(I("invalid argument. First argument must be a complex number. Value: `%s`.",r));if(arguments.length>1){if(!jm(n))throw new TypeError(I("invalid argument. Second argument must be an integer. Value: `%s`.",n));n>=this._length?n=this._length-1:n<0&&(n+=this._length)}else n=this._length-1;for(i=Kr(r),o=Xr(r),e=this._buffer,u=n;u>=0;u--)if(i===e[t=2*u]&&o===e[t+1])return u;return-1})),Ur(Ww.prototype,"map",(function(r,n){var e,t,i,o,u;if(!qw(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");if(!am(r))throw new TypeError(I("invalid argument. First argument must be a function. Value: `%s`.",r));for(t=this._buffer,e=(i=new this.constructor(this._length))._buffer,o=0;o1)t=n,o=0;else{if(0===i)throw new Error("invalid operation. If not provided an initial value, an array must contain at least one element.");t=Dw(e,0),o=1}for(;o1)t=n,o=i-1;else{if(0===i)throw new Error("invalid operation. If not provided an initial value, an array must contain at least one element.");t=Dw(e,i-1),o=i-2}for(;o>=0;o--)t=r(t,Dw(e,o),o,this);return t})),Ur(Ww.prototype,"reverse",(function(){var r,n,e,t,i,o;if(!qw(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");for(e=this._length,r=this._buffer,t=Nm(e/2),i=0;i1){if(!Im(e=arguments[1]))throw new TypeError(I("invalid argument. Index argument must be a nonnegative integer. Value: `%s`.",e))}else e=0;if(ny(r)){if(e>=this._length)throw new RangeError(I("invalid argument. Index argument is out-of-bounds. Value: `%u`.",e));return t[e*=2]=Kr(r),void(t[e+1]=Xr(r))}if(qw(r)){if(e+(u=r._length)>this._length)throw new RangeError("invalid arguments. Target array lacks sufficient storage to accommodate source values.");if(n=r._buffer,s=t.byteOffset+e*Uw,n.buffer===t.buffer&&n.byteOffsets){for(i=new te(n.length),f=0;fthis._length)throw new RangeError("invalid arguments. Target array lacks sufficient storage to accommodate source values.");if(n=r,s=t.byteOffset+e*Uw,n.buffer===t.buffer&&n.byteOffsets){for(i=new te(u),f=0;fthis._length)throw new RangeError("invalid arguments. Target array lacks sufficient storage to accommodate source values.");for(e*=2,f=0;fa&&(n=a)}}for(e=ri&&(n=i)}}return r>=i?(i=0,e=t.byteLength):r>=n?(i=0,e=t.byteOffset+r*Uw):(i=n-r,e=t.byteOffset+r*Uw),new this.constructor(t.buffer,e,i<0?0:i)})),Ur(Ww.prototype,"toLocaleString",(function(r,n){var e,t,i,o,u;if(!qw(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");if(0===arguments.length)t=[];else{if(!yg(r)&&!gw(r))throw new TypeError(I("invalid argument. First argument must be a string or an array of strings. Value: `%s`.",r));t=r}if(arguments.length<2)e={};else{if(!gm(n))throw new TypeError(I("invalid argument. Options argument must be an object. Value: `%s`.",n));e=n}for(o=this._buffer,i=[],u=0;u=e)return{done:!0};return{value:Dw(i,o),done:!1}})),Ur(r,"return",(function(r){if(t=!0,arguments.length)return{value:r,done:!0};return{done:!0}})),dm&&Ur(r,dm,(function(){return n.values()})),r})),Ur(Ww.prototype,"with",(function(r,n){var e,t,i;if(!qw(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");if(!jm(r))throw new TypeError(I("invalid argument. First argument must be an integer. Value: `%s`.",r));if(i=this._length,r<0&&(r+=i),r<0||r>=i)throw new RangeError(I("invalid argument. Index argument is out-of-bounds. Value: `%s`.",r));if(!ny(n))throw new TypeError(I("invalid argument. Second argument must be a complex number. Value: `%s`.",n));return(e=(t=new this.constructor(this._buffer))._buffer)[2*r]=Kr(n),e[2*r+1]=Xr(n),t}));var Gw=fe.BYTES_PER_ELEMENT,$w=vm();function Jw(r){return"object"==typeof r&&null!==r&&"BooleanArray"===r.constructor.name&&r.BYTES_PER_ELEMENT===Gw}function Zw(r){return r===Hw}function Hw(){var r,n,e,t,i;if(n=arguments.length,!(this instanceof Hw))return 0===n?new Hw:1===n?new Hw(arguments[0]):2===n?new Hw(arguments[0],arguments[1]):new Hw(arguments[0],arguments[1],arguments[2]);if(0===n)e=new fe(0);else if(1===n)if(Im(i=arguments[0]))e=new fe(i);else if(Sg(i))e=function(r,n){var e,t;for(e=n.length,t=0;te.byteLength-r)throw new RangeError(I("invalid arguments. ArrayBuffer has insufficient capacity. Either decrease the array length or provide a bigger buffer. Minimum capacity: `%u`.",t*Gw));e=new fe(e,r,t)}}return Ur(this,"_buffer",e),Ur(this,"_length",e.length),this}Ur(Hw,"BYTES_PER_ELEMENT",Gw),Ur(Hw,"name","BooleanArray"),Ur(Hw,"from",(function(r){var n,e,t,i,o,u,a,f,s;if(!am(this))throw new TypeError("invalid invocation. `this` context must be a constructor.");if(!Zw(this))throw new TypeError("invalid invocation. `this` is not a boolean array.");if((e=arguments.length)>1){if(!am(t=arguments[1]))throw new TypeError(I("invalid argument. Second argument must be a function. Value: `%s`.",t));e>2&&(n=arguments[2])}if(Sg(r)){if(t){for(f=r.length,a=r.get&&r.set?Sw("default"):Ow("default"),o=(i=new this(f))._buffer,s=0;s=e))return Cd(n[r])})),Pm(Hw.prototype,"buffer",(function(){return this._buffer.buffer})),Pm(Hw.prototype,"byteLength",(function(){return this._buffer.byteLength})),Pm(Hw.prototype,"byteOffset",(function(){return this._buffer.byteOffset})),Ur(Hw.prototype,"BYTES_PER_ELEMENT",Hw.BYTES_PER_ELEMENT),Ur(Hw.prototype,"copyWithin",(function(r,n){if(!Jw(this))throw new TypeError("invalid invocation. `this` is not a boolean array.");return 2===arguments.length?this._buffer.copyWithin(r,n):this._buffer.copyWithin(r,n,arguments[2]),this})),Ur(Hw.prototype,"entries",(function(){var r,n,e,t,i,o;if(!Jw(this))throw new TypeError("invalid invocation. `this` is not a boolean array.");return r=this,t=this._buffer,e=this._length,o=-1,Ur(n={},"next",(function(){if(o+=1,i||o>=e)return{done:!0};return{value:[o,Cd(t[o])],done:!1}})),Ur(n,"return",(function(r){if(i=!0,arguments.length)return{value:r,done:!0};return{done:!0}})),dm&&Ur(n,dm,(function(){return r.entries()})),n})),Ur(Hw.prototype,"every",(function(r,n){var e,t;if(!Jw(this))throw new TypeError("invalid invocation. `this` is not a boolean array.");if(!am(r))throw new TypeError(I("invalid argument. First argument must be a function. Value: `%s`.",r));for(e=this._buffer,t=0;t1){if(!Om(n))throw new TypeError(I("invalid argument. Second argument must be an integer. Value: `%s`.",n));if(n<0&&(n+=i)<0&&(n=0),arguments.length>2){if(!Om(e))throw new TypeError(I("invalid argument. Third argument must be an integer. Value: `%s`.",e));e<0&&(e+=i)<0&&(e=0),e>i&&(e=i)}else e=i}else n=0,e=i;for(o=r?1:0,u=n;u=0;i--)if(t=Cd(e[i]),r.call(n,t,i,this))return t})),Ur(Hw.prototype,"findLastIndex",(function(r,n){var e,t,i;if(!Jw(this))throw new TypeError("invalid invocation. `this` is not a boolean array.");if(!am(r))throw new TypeError(I("invalid argument. First argument must be a function. Value: `%s`.",r));for(e=this._buffer,i=this._length-1;i>=0;i--)if(t=Cd(e[i]),r.call(n,t,i,this))return i;return-1})),Ur(Hw.prototype,"forEach",(function(r,n){var e,t;if(!Jw(this))throw new TypeError("invalid invocation. `this` is not a boolean array.");if(!am(r))throw new TypeError(I("invalid argument. First argument must be a function. Value: `%s`.",r));for(e=this._buffer,t=0;t=this._length))return Cd(this._buffer[r])})),Ur(Hw.prototype,"includes",(function(r,n){var e,t;if(!Jw(this))throw new TypeError("invalid invocation. `this` is not a boolean array.");if(!Ud(r))throw new TypeError(I("invalid argument. First argument must be a boolean. Value: `%s`.",r));if(arguments.length>1){if(!Om(n))throw new TypeError(I("invalid argument. Second argument must be an integer. Value: `%s`.",n));n<0&&(n+=this._length)<0&&(n=0)}else n=0;for(e=this._buffer,t=n;t1){if(!Om(n))throw new TypeError(I("invalid argument. Second argument must be an integer. Value: `%s`.",n));n<0&&(n+=this._length)<0&&(n=0)}else n=0;for(e=this._buffer,t=n;t0){if(!vg(r))throw new TypeError(I("invalid argument. First argument must be a string. Value: `%s`.",r))}else r=",";for(n=this._buffer,e=[],t=0;t=e)return{done:!0};return{value:i,done:!1}})),Ur(n,"return",(function(r){if(t=!0,arguments.length)return{value:r,done:!0};return{done:!0}})),dm&&Ur(n,dm,(function(){return r.keys()})),n})),Ur(Hw.prototype,"lastIndexOf",(function(r,n){var e,t;if(!Jw(this))throw new TypeError("invalid invocation. `this` is not a boolean array.");if(!Ud(r))throw new TypeError(I("invalid argument. First argument must be a boolean. Value: `%s`.",r));if(arguments.length>1){if(!Om(n))throw new TypeError(I("invalid argument. Second argument must be an integer. Value: `%s`.",n));n>=this._length?n=this._length-1:n<0&&(n+=this._length)}else n=this._length-1;for(e=this._buffer,t=n;t>=0;t--)if(r===Cd(e[t]))return t;return-1})),Pm(Hw.prototype,"length",(function(){return this._length})),Ur(Hw.prototype,"map",(function(r,n){var e,t,i,o;if(!Jw(this))throw new TypeError("invalid invocation. `this` is not a boolean array.");if(!am(r))throw new TypeError("invalid argument. First argument must be a function. Value: `%s`.",r);for(i=this._buffer,e=(t=new this.constructor(this._length))._buffer,o=0;o1)i=n,o=0;else{if(0===t)throw new Error("invalid operation. If not provided an initial value, an array must contain at least one element.");i=Cd(e[0]),o=1}for(;o1)i=n,o=t-1;else{if(0===t)throw new Error("invalid operation. If not provided an initial value, an array must contain at least one element.");i=Cd(e[t-1]),o=t-2}for(;o>=0;o--)i=r(i,Cd(e[o]),o,this);return i})),Ur(Hw.prototype,"reverse",(function(){var r,n,e,t,i,o;if(!Jw(this))throw new TypeError("invalid invocation. `this` is not a boolean array.");for(r=this._buffer,e=this._length,t=Nm(e/2),i=0;i1){if(!Im(e=arguments[1]))throw new TypeError(I("invalid argument. Index argument must be a nonnegative integer. Value: `%s`.",e))}else e=0;if(Sg(r)){if(e+(o=r.length)>this._length)throw new RangeError("invalid arguments. Target array lacks sufficient storage to accommodate source values.");if(n=Jw(r)?r._buffer:r,a=t.byteOffset+e*Gw,n.buffer===t.buffer&&n.byteOffseta){for(i=new fe(n.length),u=0;u=this._length)throw new RangeError(I("invalid argument. Index argument is out-of-bounds. Value: `%u`.",e));t[e]=r?1:0}})),Ur(Hw.prototype,"slice",(function(r,n){var e,t,i,o,u,a;if(!Jw(this))throw new TypeError("invalid invocation. `this` is not a boolean array.");if(o=this._buffer,u=this._length,0===arguments.length)r=0,n=u;else{if(!Om(r))throw new TypeError(I("invalid argument. First argument must be an integer. Value: `%s`.",r));if(r<0&&(r+=u)<0&&(r=0),1===arguments.length)n=u;else{if(!Om(n))throw new TypeError(I("invalid argument. Second argument must be an integer. Value: `%s`.",n));n<0?(n+=u)<0&&(n=0):n>u&&(n=u)}}for(e=ri&&(n=i)}}return r>=i?(i=0,e=t.byteLength):r>=n?(i=0,e=t.byteOffset+r*Gw):(i=n-r,e=t.byteOffset+r*Gw),new this.constructor(t.buffer,e,i<0?0:i)})),Ur(Hw.prototype,"toLocaleString",(function(r,n){var e,t,i,o,u;if(!Jw(this))throw new TypeError("invalid invocation. `this` is not a boolean array.");if(0===arguments.length)t=[];else{if(!vg(r)&&!gw(r))throw new TypeError(I("invalid argument. First argument must be a string or an array of strings. Value: `%s`.",r));t=r}if(arguments.length<2)e={};else{if(!gm(n))throw new TypeError(I("invalid argument. Options argument must be an object. Value: `%s`.",n));e=n}for(o=this._buffer,i=[],u=0;u=e)return{done:!0};return{value:Cd(i[o]),done:!1}})),Ur(r,"return",(function(r){if(t=!0,arguments.length)return{value:r,done:!0};return{done:!0}})),dm&&Ur(r,dm,(function(){return n.values()})),r})),Ur(Hw.prototype,"with",(function(r,n){var e,t;if(!Jw(this))throw new TypeError("invalid invocation. `this` is not a boolean array.");if(!Om(r))throw new TypeError(I("invalid argument. First argument must be an integer. Value: `%s`.",r));if(t=this._length,r<0&&(r+=t),r<0||r>=t)throw new RangeError(I("invalid argument. Index argument is out-of-bounds. Value: `%s`.",r));if(!Ud(n))throw new TypeError(I("invalid argument. Second argument must be a boolean. Value: `%s`.",n));return(e=new this.constructor(this._buffer))._buffer[r]=n?1:0,e}));var Kw=[te,vr,nw,br,uw,ve,mw,fe,lw,Mw,Ww,Hw],Xw=["float64","float32","int32","uint32","int16","uint16","int8","uint8","uint8c","complex64","complex128","bool"],Qw=Xw.length;function rb(r){var n;if(nm(r))return"generic";if(im(r))return"binary";for(n=0;n=0;i--)e[i]=t,t*=r[i];return e}(r)}Ur(lb,"assign",(function(r,n,e){return"column-major"===n?function(r,n){var e,t;for(e=1,t=0;t=0;t--)n[t]=e,e*=r[t];return n}(r,e)}));var hb="row-major";function pb(r,n){var e,t,i;return"object"!=typeof(i=r.strides)||null===i?0===(t=r.shape).length?[0]:("string"!=typeof(e=r.order)&&(e=hb),lb(t,e)):n?sb(i):i}function vb(r){var n,e,t;return"number"==typeof(t=r.offset)?t:0===(e=r.shape).length||"object"!=typeof(n=r.strides)||null===n?0:function(r,n){var e,t,i;for(t=r.length,e=0,i=0;i=0;s--)if(!((c=a-u+s)<0)){if(f=i[c],0!==(t=n[s])&&t=0&&r.length<=ag}(n))return!1;if(e=n.length,0===e)return!1;for(t=0;tn?n:r}function Jb(r,n){var e=n+1;return r<0?((r+=e)<0&&0!==(r%=e)&&(r+=e),r):r>n?((r-=e)>n&&(r%=e),r):r}function Zb(r,n){return r<0?(r+=n+1)<0?-1:r:r>n?-1:r}var Hb=Mb(Ry()),Kb={wrap:Jb,clamp:$b,normalize:function(r,n){var e=Zb(r,n);if(e<0||e>n)throw new RangeError(I("invalid argument. Index must resolve to a value on the interval: [0, %d]. Value: `%d`.",n,r));return e},throw:function(r,n){if(r<0||r>n)throw new RangeError(I("invalid argument. Index must resolve to a value on the interval: [0, %d]. Value: `%d`.",n,r));return r}};function Xb(r,n,e){var t;if("clamp"===e)return $b(r,n);if("wrap"===e)return Jb(r,n);if(t=r,"normalize"===e&&(t=Zb(t,n)),t<0||t>n)throw new RangeError(I("invalid argument. Index must resolve to a value on the interval: [0, %d]. Value: `%d`.",n,r));return t}Ur(Xb,"factory",(function(r){if(!Hb(r))throw new TypeError(I("invalid argument. First argument must be a recognized index mode. Value: `%s`.",r));return Kb[r]}));var Qb=Jy.prototype.iget;var r_=Jy.prototype.iset;function n_(r,n){var e,t;for(e=[],t=0;t0))throw new TypeError(I("invalid argument. Third argument must be an array-like object containing nonnegative integers. Value: `%s`.",e));if((a=e.length)>e_)throw new RangeError(I("invalid argument. Number of dimensions must not exceed %u due to stack limits. Value: `%u`.",e_,a));if(!Nb(t))throw new TypeError(I("invalid argument. Fourth argument must be an array-like object containing integers. Value: `%s`.",t));if(a>0){if(t.length!==a)throw new RangeError(I("invalid argument. Fourth argument length must match the number of dimensions. Expected number of dimensions: `%u`. Strides length: `%u`.",a,t.length))}else{if(1!==t.length)throw new RangeError("invalid argument. Fourth argument length must be equal to 1 when creating a zero-dimensional ndarray.");if(0!==t[0])throw new RangeError(I("invalid argument. Fourth argument must contain a single element equal to 0. Value: `%d`.",t[0]))}if(!Im(i))throw new TypeError(I("invalid argument. Fifth argument must be a nonnegative integer. Value: `%s`.",i));if(!function(r){var n;for(n=0;n0&&!function(r,n,e,t){var i=sy(n,e,t);return i[0]>=0&&i[1]0)throw new Error("invalid arguments. Input buffer is incompatible with the specified meta data. Ensure that the offset is valid with regard to the strides array and that the buffer has enough elements to satisfy the desired array shape.");if((f={}).mode=t_,f.readonly=i_,arguments.length>6&&(s=function(r,n){var e;if(!Tm(n))return new TypeError(I("invalid argument. Options argument must be an object. Value: `%s`.",n));if(or(n,"mode")&&(r.mode=n.mode,!Hb(r.mode)))return new TypeError(I("invalid option. `%s` option must be a recognized mode. Option: `%s`.","mode",r.mode));if(or(n,"submode")){if(r.submode=n.submode,!fg(r.submode))return new TypeError(I("invalid option. `%s` option must be an array containing recognized modes. Option: `%s`.","submode",r.submode));if(0===r.submode.length)return new TypeError(I("invalid option. `%s` option must be an array containing recognized modes. Option: `%s`.","submode",r.submode.join(",")));for(e=0;e0){if(!Om(r))throw new TypeError(I("invalid argument. Index must be an integer. Value: `%s`.",r));return r=Xb(r,this._length-1,this._mode),Qb.call(this,r)}return Qb.call(this)})),Ur(o_.prototype,"set",(function(){var r,n,e,t;if(this._flags.READONLY)throw new Error("invalid invocation. Cannot write to a read-only array.");if(arguments.length!==this._ndims+1)throw new RangeError(I("invalid arguments. Number of indices must match the number of dimensions. ndims: `%u`. nargs: `%u`.",this._ndims,arguments.length));for(r=this._offset,e=this._submode.length,t=0;t0){if(!Om(r))throw new TypeError(I("invalid argument. Index must be an integer. Value: `%s`.",r));r=Xb(r,this._length-1,this._mode),r_.call(this,r,n)}else r_.call(this,r);return this}));var a_="floating-point";function f_(r,n,e){var t,i,o;if(!Sg(r)&&!vg(r))throw new TypeError(I("invalid argument. First argument must be array-like. Value: `%s`.",r));if(arguments.length<2)throw new Error("insufficient arguments. Must provide a search value.");if(arguments.length>2){if(!Om(e))throw new TypeError(I("invalid argument. Third argument must be an integer. Value: `%s`.",e));(i=e)<0&&(i=0)}else i=0;if(vg(r)){if(!vg(n))throw new TypeError(I("invalid argument. Second argument must be a string. Value: `%s`.",n));return-1!==r.indexOf(n,i)}if(t=r.length,wg(n)){for(o=i;o1&&(t=function(r,n){return Tm(n)?or(n,"output_dtype_policy")&&(r.policy=n.output_dtype_policy,!f_(s_,r.policy))?new TypeError(I("invalid option. `%s` option must be a recognized/supported output array data type policy. Option: `%s`.","output_dtype_policy",r.policy)):null:new TypeError(I("invalid argument. Options argument must be an object. Value: `%s`.",n))}(e,n),t))throw t;return i=function(r){var n,t,i,u,a;if(Cr(r)){if(o.number)return o.number(r);throw new TypeError("invalid argument. Providing a number is not supported.")}if(ny(r)){if(o.complex)return o.complex(r);throw new TypeError("invalid argument. Providing a complex number is not supported.")}if(i={},arguments.length>1&&(u=function(r,n){return Tm(n)?or(n,"dtype")&&(r.dtype=n.dtype,!f_(l_,r.dtype))?new TypeError(I("invalid option. `%s` option must be a recognized/supported data type. Option: `%s`.","dtype",r.dtype)):or(n,"order")&&(r.order=n.order,!f_(c_,r.order))?new TypeError(I("invalid option. `%s` option must be a recognized/supported data type. Option: `%s`.","order",r.order)):null:new TypeError(I("invalid argument. Options argument must be an object. Value: `%s`.",n))}(i,arguments[1]),u))throw u;if(Zy(r)){if(null===o.ndarray)throw new TypeError("invalid argument. Providing an ndarray is not supported.");return t=i.dtype||u_(r.dtype,e.policy),function(r,n,e,t){var i,o;return r(n,o=0===(i=sb(n.shape)).length?o_(e,fb(e,1),[],[0],0,t):o_(e,fb(e,n.length||Ub(i)),i,lb(i,t),0,t)),o}(o.ndarray,r,t,i.order||r.order)}if(Sg(r)){if(null===o.array)throw new TypeError("invalid argument. Providing an array-like object is not supported.");return n=rb(r)||"generic",a=fb(t=i.dtype||u_(n,e.policy),r.length),o.array(r.length,n,r,1,t,a,1),a}throw new TypeError(I("invalid argument. Must provide an argument having a supported data type. Value: `%s`.",r))},Ur(i,"assign",(function(r,n){var e,t,i;if(Zy(r)){if(Zy(n)){if(e=r.shape,t=n.shape,e.length===t.length){for(i=0;i0}function y_(r){return Am(r)&&r.valueOf()>0}function w_(r){return g_(r)||y_(r)}Ur(w_,"isPrimitive",g_),Ur(w_,"isObject",y_);var b_=_b(am);function __(r,n,e,t,i,o){var u,a,f,s,c,l;if(am(r))l=r;else if(!b_(r))throw new TypeError(I("invalid argument. First argument must be either a function or an array of functions. Value: `%s`.",r));if(!Sg(n))throw new TypeError(I("invalid argument. Second argument must be an array-like object. Value: `%s`.",n));if(!Sg(e)&&null!==e)throw new TypeError(I("invalid argument. Third argument must be an array-like object or null. Value: `%s`.",e));if(!w_(t))throw new TypeError(I("invalid argument. Fourth argument must be a positive integer. Value: `%s`.",t));if(!Im(i))throw new TypeError(I("invalid argument. Fifth argument must be a nonnegative integer. Value: `%s`.",i));if(!Im(o))throw new TypeError(I("invalid argument. Sixth argument must be a nonnegative integer. Value: `%s`.",o));if(0===(f=i+o))throw new Error("invalid arguments. Interface must accept at least one strided input and/or output array. Based on the provided arguments, `nin+nout` equals `0`.");if(l){if(!Om(s=n.length/f))throw new Error("invalid argument. Unexpected number of types. A type must be specified for each strided input and output array for each provided strided array function.")}else if(s=r.length,n.length!==s*f)throw new Error("invalid argument. Unexpected number of types. A type must be specified for each strided input and output array for each provided strided array function.");if(e&&e.length!==s)throw new Error("invalid argument. The third argument must have the same number of elements as the first argument.");if(3*f+1===t)a=!1;else{if(4*f+1!==t)throw new Error("invalid argument. Fourth argument is incompatible with the number of strided input and output arrays.");a=!0}return c=i*(u=a?4:3)+1,function(){var h,p,v,d,m,g,y,w,b,_,E,x;if(g=arguments.length,g!==t){if(g0&&(y<0||y>=b.length))throw E=b.length)throw E0?0:(1-r)*n}function V_(r,n,e,t,i){var o,u,a,f,s,c,l,h;if(!((l=n[0])<=0))for(a=t[0],f=t[1],o=e[0],u=e[1],s=r[0],c=r[1],h=0;h=0&&u=0&&!(((s=r[o])<0?-s:s)<=e);)r[o+1]=s,n[u+1]=n[u],o-=1,u-=1;r[o+1]=a,n[u+1]=f,t+=1,i+=1}}(n=sb(n),t),{sh:r=K_(r,t),sx:n,sy:e=K_(e,t),idx:t}}Ur(Z_,"assign",(function(r,n,e){var t=function(r){var n=Lb(r);return Ib(r)?{data:r,dtype:n,accessorProtocol:!0,accessors:[Sw(n),x_(n)]}:{data:r,dtype:n,accessorProtocol:!1,accessors:[Ow(n),N_(n)]}}(r);return t.accessorProtocol?"complex128"===t.dtype?H_(r,jw(r,0),n,e):"complex64"===t.dtype?H_(r,Nw(r,0),n,e):function(r,n,e){var t,i,o,u;for(t=r.data,i=r.accessors[1],u=e,o=0;u>=0&&u=0&&it?Q_.BLOCK_SIZE_IN_BYTES/e|0:Q_.BLOCK_SIZE_IN_BYTES/t|0}function nE(r,n,e,t,i,o){var u,a,f,s,c;for(u=r.length,a=1,c=0;c=a&&(i=a-1);else if("wrap"===o)i<0?(i+=a)<0&&0!==(i%=a)&&(i+=a):i>=a&&(i-=a)>=a&&(i%=a);else if("normalize"===o&&i<0&&(i+=a),i<0||i>=a)throw new RangeError(I("invalid argument. Linear index must not exceed array dimensions. Number of array elements: `%u`. Value: `%d`.",a,i));if(f=e,"column-major"===t){for(c=0;c=0;c--)i-=s=i%r[c],i/=r[c],f+=s*n[c];return f}var eE="throw";var tE="throw";var iE=[function(r,n,e){n.data[n.offset]=e(r.data[r.offset])},function(r,n,e){var t,i,o,u,a,f,s,c;for(a=r.shape[0],o=r.strides[0],u=n.strides[0],f=r.offset,s=n.offset,t=r.data,i=n.data,c=0;c0;)for(T0;)for(x0;)for(I0;)for(S0;)for(A0;)for(P0;)for(M0;)for(L0;)for(R0;)for(z0;)for(W0;)for(D0;)for(Y0;)for(q0;)for(X0;)for(K0;)for(H0;)for(Z0;)for(J0;)for($0;)for(or0;)for(ir0;)for(tr0;)for(er0;)for(nr0;)for(rr0;)for(Q0;)for(hr0;)for(lr0;)for(cr0;)for(sr0;)for(fr0;)for(ar0;)for(ur0;)for(or0;)for(wr0;)for(yr0;)for(gr0;)for(mr0;)for(dr0;)for(vr0;)for(pr0;)for(hr0;)for(lr0;)for(jr0;)for(Nr0;)for(Tr0;)for(xr0;)for(Er0;)for(_r0;)for(br0;)for(wr0;)for(yr0;)for(gr0;)for(j0;)for(N0;)for(F0;)for(k0;)for(I0;)for(C0;)for(U0;)for(P0;)for(M0;)for($0;)for(G0;)for(z0;)for(W0;)for(D0;)for(rr0;)for(Q0;)for(X0;)for(K0;)for(H0;)for(Z0;)for(ar0;)for(ur0;)for(or0;)for(ir0;)for(tr0;)for(er0;)for(nr0;)for(vr0;)for(pr0;)for(hr0;)for(lr0;)for(cr0;)for(sr0;)for(fr0;)for(ar0;)for(_r0;)for(br0;)for(wr0;)for(yr0;)for(gr0;)for(mr0;)for(dr0;)for(vr0;)for(pr0;)for(Or0;)for(Vr0;)for(jr0;)for(Nr0;)for(Tr0;)for(xr0;)for(Er0;)for(_r0;)for(br0;)for(wr=i);u++)for(o=r[u],a=f;a3?t:{},(s=_E(r))instanceof Error)throw s;if(n===r)c=s;else if((c=_E(n))instanceof Error)throw c;if(e===r)l=s;else if(e===n)l=c;else if((l=_E(e))instanceof Error)throw l;for(l.sort(),i={},m=s.length,g=c.length,f=[],y=0;y 0 ) {\n\t\t\t\tdigits -= 1;\n\t\t\t}\n\t\t\tout = f.toExponential( digits );\n\t\t} else {\n\t\t\tout = f.toPrecision( token.precision );\n\t\t}\n\t\tif ( !token.alternate ) {\n\t\t\tout = replace.call( out, RE_ZERO_BEFORE_EXP, '$1e' );\n\t\t\tout = replace.call( out, RE_PERIOD_ZERO_EXP, 'e' );\n\t\t\tout = replace.call( out, RE_TRAILING_PERIOD_ZERO, '' );\n\t\t}\n\t\tbreak;\n\tdefault:\n\t\tthrow new Error( 'invalid double notation. Value: ' + token.specifier );\n\t}\n\tout = replace.call( out, RE_EXP_POS_DIGITS, 'e+0$1' );\n\tout = replace.call( out, RE_EXP_NEG_DIGITS, 'e-0$1' );\n\tif ( token.alternate ) {\n\t\tout = replace.call( out, RE_ONLY_DIGITS, '$1.' );\n\t\tout = replace.call( out, RE_DIGITS_BEFORE_EXP, '$1.e' );\n\t}\n\tif ( f >= 0 && token.sign ) {\n\t\tout = token.sign + out;\n\t}\n\tout = ( token.specifier === uppercase.call( token.specifier ) ) ?\n\t\tuppercase.call( out ) :\n\t\tlowercase.call( out );\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default formatDouble;\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// FUNCTIONS //\n\n/**\n* Returns `n` spaces.\n*\n* @private\n* @param {number} n - number of spaces\n* @returns {string} string of spaces\n*/\nfunction spaces( n ) {\n\tvar out = '';\n\tvar i;\n\tfor ( i = 0; i < n; i++ ) {\n\t\tout += ' ';\n\t}\n\treturn out;\n}\n\n\n// MAIN //\n\n/**\n* Pads a token with spaces to the specified width.\n*\n* @private\n* @param {string} str - token argument\n* @param {number} width - token width\n* @param {boolean} [right=false] - boolean indicating whether to pad to the right\n* @returns {string} padded token argument\n*/\nfunction spacePad( str, width, right ) {\n\tvar pad = width - str.length;\n\tif ( pad < 0 ) {\n\t\treturn str;\n\t}\n\tstr = ( right ) ?\n\t\tstr + spaces( pad ) :\n\t\tspaces( pad ) + str;\n\treturn str;\n}\n\n\n// EXPORTS //\n\nexport default spacePad;\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 formatInteger from './format_integer.js';\nimport isString from './is_string.js';\nimport formatDouble from './format_double.js';\nimport spacePad from './space_pad.js';\nimport zeroPad from './zero_pad.js';\n\n\n// VARIABLES //\n\nvar fromCharCode = String.fromCharCode;\nvar isArray = Array.isArray; // NOTE: We use the global `Array.isArray` function here instead of `@stdlib/assert/is-array` to avoid circular dependencies.\n\n\n// FUNCTIONS //\n\n/**\n* Returns a boolean indicating whether a value is `NaN`.\n*\n* @private\n* @param {*} value - input value\n* @returns {boolean} boolean indicating whether a value is `NaN`\n*\n* @example\n* var bool = isnan( NaN );\n* // returns true\n*\n* @example\n* var bool = isnan( 4 );\n* // returns false\n*/\nfunction isnan( value ) { // explicitly define a function here instead of `@stdlib/math/base/assert/is-nan` in order to avoid circular dependencies\n\treturn ( value !== value );\n}\n\n/**\n* Initializes token object with properties of supplied format identifier object or default values if not present.\n*\n* @private\n* @param {Object} token - format identifier object\n* @returns {Object} token object\n*/\nfunction initialize( token ) {\n\tvar out = {};\n\tout.specifier = token.specifier;\n\tout.precision = ( token.precision === void 0 ) ? 1 : token.precision;\n\tout.width = token.width;\n\tout.flags = token.flags || '';\n\tout.mapping = token.mapping;\n\treturn out;\n}\n\n\n// MAIN //\n\n/**\n* Generates string from a token array by interpolating values.\n*\n* @param {Array} tokens - string parts and format identifier objects\n* @param {Array} ...args - variable values\n* @throws {TypeError} first argument must be an array\n* @throws {Error} invalid flags\n* @returns {string} formatted string\n*\n* @example\n* var tokens = [ 'beep ', { 'specifier': 's' } ];\n* var out = formatInterpolate( tokens, 'boop' );\n* // returns 'beep boop'\n*/\nfunction formatInterpolate( tokens ) {\n\tvar hasPeriod;\n\tvar flags;\n\tvar token;\n\tvar flag;\n\tvar num;\n\tvar out;\n\tvar pos;\n\tvar i;\n\tvar j;\n\n\tif ( !isArray( tokens ) ) {\n\t\tthrow new TypeError( 'invalid argument. First argument must be an array. Value: `' + tokens + '`.' );\n\t}\n\tout = '';\n\tpos = 1;\n\tfor ( i = 0; i < tokens.length; i++ ) {\n\t\ttoken = tokens[ i ];\n\t\tif ( isString( token ) ) {\n\t\t\tout += token;\n\t\t} else {\n\t\t\thasPeriod = token.precision !== void 0;\n\t\t\ttoken = initialize( token );\n\t\t\tif ( !token.specifier ) {\n\t\t\t\tthrow new TypeError( 'invalid argument. Token is missing `specifier` property. Index: `'+ i +'`. Value: `' + token + '`.' );\n\t\t\t}\n\t\t\tif ( token.mapping ) {\n\t\t\t\tpos = token.mapping;\n\t\t\t}\n\t\t\tflags = token.flags;\n\t\t\tfor ( j = 0; j < flags.length; j++ ) {\n\t\t\t\tflag = flags.charAt( j );\n\t\t\t\tswitch ( flag ) {\n\t\t\t\tcase ' ':\n\t\t\t\t\ttoken.sign = ' ';\n\t\t\t\t\tbreak;\n\t\t\t\tcase '+':\n\t\t\t\t\ttoken.sign = '+';\n\t\t\t\t\tbreak;\n\t\t\t\tcase '-':\n\t\t\t\t\ttoken.padRight = true;\n\t\t\t\t\ttoken.padZeros = false;\n\t\t\t\t\tbreak;\n\t\t\t\tcase '0':\n\t\t\t\t\ttoken.padZeros = flags.indexOf( '-' ) < 0; // NOTE: We use built-in `Array.prototype.indexOf` here instead of `@stdlib/assert/contains` in order to avoid circular dependencies.\n\t\t\t\t\tbreak;\n\t\t\t\tcase '#':\n\t\t\t\t\ttoken.alternate = true;\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tthrow new Error( 'invalid flag: ' + flag );\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( token.width === '*' ) {\n\t\t\t\ttoken.width = parseInt( arguments[ pos ], 10 );\n\t\t\t\tpos += 1;\n\t\t\t\tif ( isnan( token.width ) ) {\n\t\t\t\t\tthrow new TypeError( 'the argument for * width at position ' + pos + ' is not a number. Value: `' + token.width + '`.' );\n\t\t\t\t}\n\t\t\t\tif ( token.width < 0 ) {\n\t\t\t\t\ttoken.padRight = true;\n\t\t\t\t\ttoken.width = -token.width;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( hasPeriod ) {\n\t\t\t\tif ( token.precision === '*' ) {\n\t\t\t\t\ttoken.precision = parseInt( arguments[ pos ], 10 );\n\t\t\t\t\tpos += 1;\n\t\t\t\t\tif ( isnan( token.precision ) ) {\n\t\t\t\t\t\tthrow new TypeError( 'the argument for * precision at position ' + pos + ' is not a number. Value: `' + token.precision + '`.' );\n\t\t\t\t\t}\n\t\t\t\t\tif ( token.precision < 0 ) {\n\t\t\t\t\t\ttoken.precision = 1;\n\t\t\t\t\t\thasPeriod = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\ttoken.arg = arguments[ pos ];\n\t\t\tswitch ( token.specifier ) {\n\t\t\tcase 'b':\n\t\t\tcase 'o':\n\t\t\tcase 'x':\n\t\t\tcase 'X':\n\t\t\tcase 'd':\n\t\t\tcase 'i':\n\t\t\tcase 'u':\n\t\t\t\t// Case: %b (binary), %o (octal), %x, %X (hexadecimal), %d, %i (decimal), %u (unsigned decimal)\n\t\t\t\tif ( hasPeriod ) {\n\t\t\t\t\ttoken.padZeros = false;\n\t\t\t\t}\n\t\t\t\ttoken.arg = formatInteger( token );\n\t\t\t\tbreak;\n\t\t\tcase 's':\n\t\t\t\t// Case: %s (string)\n\t\t\t\ttoken.maxWidth = ( hasPeriod ) ? token.precision : -1;\n\t\t\t\ttoken.arg = String( token.arg );\n\t\t\t\tbreak;\n\t\t\tcase 'c':\n\t\t\t\t// Case: %c (character)\n\t\t\t\tif ( !isnan( token.arg ) ) {\n\t\t\t\t\tnum = parseInt( token.arg, 10 );\n\t\t\t\t\tif ( num < 0 || num > 127 ) {\n\t\t\t\t\t\tthrow new Error( 'invalid character code. Value: ' + token.arg );\n\t\t\t\t\t}\n\t\t\t\t\ttoken.arg = ( isnan( num ) ) ? String( token.arg ) : fromCharCode( num ); // eslint-disable-line max-len\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'e':\n\t\t\tcase 'E':\n\t\t\tcase 'f':\n\t\t\tcase 'F':\n\t\t\tcase 'g':\n\t\t\tcase 'G':\n\t\t\t\t// Case: %e, %E (scientific notation), %f, %F (decimal floating point), %g, %G (uses the shorter of %e/E or %f/F)\n\t\t\t\tif ( !hasPeriod ) {\n\t\t\t\t\ttoken.precision = 6;\n\t\t\t\t}\n\t\t\t\ttoken.arg = formatDouble( token );\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tthrow new Error( 'invalid specifier: ' + token.specifier );\n\t\t\t}\n\t\t\t// Fit argument into field width...\n\t\t\tif ( token.maxWidth >= 0 && token.arg.length > token.maxWidth ) {\n\t\t\t\ttoken.arg = token.arg.substring( 0, token.maxWidth );\n\t\t\t}\n\t\t\tif ( token.padZeros ) {\n\t\t\t\ttoken.arg = zeroPad( token.arg, token.width || token.precision, token.padRight ); // eslint-disable-line max-len\n\t\t\t} else if ( token.width ) {\n\t\t\t\ttoken.arg = spacePad( token.arg, token.width, token.padRight );\n\t\t\t}\n\t\t\tout += token.arg || '';\n\t\t\tpos += 1;\n\t\t}\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default formatInterpolate;\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* Tests if a value is a string primitive.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a string primitive\n*\n* @example\n* var bool = isString( 'beep' );\n* // returns true\n*\n* @example\n* var bool = isString( new String( 'beep' ) );\n* // returns false\n*/\nfunction isString( value ) {\n\treturn ( typeof value === 'string' ); // NOTE: we inline the `isString.isPrimitive` function from `@stdlib/assert/is-string` in order to avoid circular dependencies.\n}\n\n\n// EXPORTS //\n\nexport default isString;\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// VARIABLES //\n\nvar RE = /%(?:([1-9]\\d*)\\$)?([0 +\\-#]*)(\\*|\\d+)?(?:(\\.)(\\*|\\d+)?)?[hlL]?([%A-Za-z])/g;\n\n\n// FUNCTIONS //\n\n/**\n* Parses a delimiter.\n*\n* @private\n* @param {Array} match - regular expression match\n* @returns {Object} delimiter token object\n*/\nfunction parse( match ) {\n\tvar token = {\n\t\t'mapping': ( match[ 1 ] ) ? parseInt( match[ 1 ], 10 ) : void 0,\n\t\t'flags': match[ 2 ],\n\t\t'width': match[ 3 ],\n\t\t'precision': match[ 5 ],\n\t\t'specifier': match[ 6 ]\n\t};\n\tif ( match[ 4 ] === '.' && match[ 5 ] === void 0 ) {\n\t\ttoken.precision = '1';\n\t}\n\treturn token;\n}\n\n\n// MAIN //\n\n/**\n* Tokenizes a string into an array of string parts and format identifier objects.\n*\n* @param {string} str - input string\n* @returns {Array} tokens\n*\n* @example\n* var tokens = formatTokenize( 'Hello %s!' );\n* // returns [ 'Hello ', {...}, '!' ]\n*/\nfunction formatTokenize( str ) {\n\tvar content;\n\tvar tokens;\n\tvar match;\n\tvar prev;\n\n\ttokens = [];\n\tprev = 0;\n\tmatch = RE.exec( str );\n\twhile ( match ) {\n\t\tcontent = str.slice( prev, RE.lastIndex - match[ 0 ].length );\n\t\tif ( content.length ) {\n\t\t\ttokens.push( content );\n\t\t}\n\t\ttokens.push( parse( match ) );\n\t\tprev = RE.lastIndex;\n\t\tmatch = RE.exec( str );\n\t}\n\tcontent = str.slice( prev );\n\tif ( content.length ) {\n\t\ttokens.push( content );\n\t}\n\treturn tokens;\n}\n\n\n// EXPORTS //\n\nexport default formatTokenize;\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 interpolate from './../../base/format-interpolate';\nimport tokenize from './../../base/format-tokenize';\nimport isString from './is_string.js';\n\n\n// MAIN //\n\n/**\n* Inserts supplied variable values into a format string.\n*\n* @param {string} str - input string\n* @param {Array} ...args - variable values\n* @throws {TypeError} first argument must be a string\n* @throws {Error} invalid flags\n* @returns {string} formatted string\n*\n* @example\n* var str = format( 'Hello %s!', 'world' );\n* // returns 'Hello world!'\n*\n* @example\n* var str = format( 'Pi: ~%.2f', 3.141592653589793 );\n* // returns 'Pi: ~3.14'\n*/\nfunction format( str ) {\n\tvar args;\n\tvar i;\n\n\tif ( !isString( str ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a string. Value: `%s`.', str ) );\n\t}\n\targs = [ tokenize( str ) ];\n\tfor ( i = 1; i < arguments.length; i++ ) {\n\t\targs.push( arguments[ i ] );\n\t}\n\treturn interpolate.apply( null, args );\n}\n\n\n// EXPORTS //\n\nexport default format;\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* Tests if a value is a string primitive.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a string primitive\n*\n* @example\n* var bool = isString( 'beep' );\n* // returns true\n*\n* @example\n* var bool = isString( new String( 'beep' ) );\n* // returns false\n*/\nfunction isString( value ) {\n\treturn ( typeof value === 'string' ); // NOTE: we inline the `isString.isPrimitive` function from `@stdlib/assert/is-string` in order to avoid circular dependencies.\n}\n\n\n// EXPORTS //\n\nexport default isString;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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 no-underscore-dangle, no-proto */\n\n'use strict';\n\n// MODULES //\n\nimport format from '@stdlib/string/format';\n\n\n// VARIABLES //\n\nvar objectProtoype = Object.prototype;\nvar toStr = objectProtoype.toString;\nvar defineGetter = objectProtoype.__defineGetter__;\nvar defineSetter = objectProtoype.__defineSetter__;\nvar lookupGetter = objectProtoype.__lookupGetter__;\nvar lookupSetter = objectProtoype.__lookupSetter__;\n\n\n// MAIN //\n\n/**\n* Defines (or modifies) an object property.\n*\n* ## Notes\n*\n* - Property descriptors come in two flavors: **data descriptors** and **accessor descriptors**. A data descriptor is a property that has a value, which may or may not be writable. An accessor descriptor is a property described by a getter-setter function pair. A descriptor must be one of these two flavors and cannot be both.\n*\n* @param {Object} obj - object on which to define the property\n* @param {string} prop - property name\n* @param {Object} descriptor - property descriptor\n* @param {boolean} [descriptor.configurable=false] - boolean indicating if property descriptor can be changed and if the property can be deleted from the provided object\n* @param {boolean} [descriptor.enumerable=false] - boolean indicating if the property shows up when enumerating object properties\n* @param {boolean} [descriptor.writable=false] - boolean indicating if the value associated with the property can be changed with an assignment operator\n* @param {*} [descriptor.value] - property value\n* @param {(Function|void)} [descriptor.get=undefined] - function which serves as a getter for the property, or, if no getter, undefined. When the property is accessed, a getter function is called without arguments and with the `this` context set to the object through which the property is accessed (which may not be the object on which the property is defined due to inheritance). The return value will be used as the property value.\n* @param {(Function|void)} [descriptor.set=undefined] - function which serves as a setter for the property, or, if no setter, undefined. When assigning a property value, a setter function is called with one argument (the value being assigned to the property) and with the `this` context set to the object through which the property is assigned.\n* @throws {TypeError} first argument must be an object\n* @throws {TypeError} third argument must be an object\n* @throws {Error} property descriptor cannot have both a value and a setter and/or getter\n* @returns {Object} object with added property\n*\n* @example\n* var obj = {};\n*\n* defineProperty( obj, 'foo', {\n* 'value': 'bar'\n* });\n*\n* var str = obj.foo;\n* // returns 'bar'\n*/\nfunction defineProperty( obj, prop, descriptor ) {\n\tvar prototype;\n\tvar hasValue;\n\tvar hasGet;\n\tvar hasSet;\n\n\tif ( typeof obj !== 'object' || obj === null || toStr.call( obj ) === '[object Array]' ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an object. Value: `%s`.', obj ) );\n\t}\n\tif ( typeof descriptor !== 'object' || descriptor === null || toStr.call( descriptor ) === '[object Array]' ) {\n\t\tthrow new TypeError( format( 'invalid argument. Property descriptor must be an object. Value: `%s`.', descriptor ) );\n\t}\n\thasValue = ( 'value' in descriptor );\n\tif ( hasValue ) {\n\t\tif (\n\t\t\tlookupGetter.call( obj, prop ) ||\n\t\t\tlookupSetter.call( obj, prop )\n\t\t) {\n\t\t\t// Override `__proto__` to avoid touching inherited accessors:\n\t\t\tprototype = obj.__proto__;\n\t\t\tobj.__proto__ = objectProtoype;\n\n\t\t\t// Delete property as existing getters/setters prevent assigning value to specified property:\n\t\t\tdelete obj[ prop ];\n\t\t\tobj[ prop ] = descriptor.value;\n\n\t\t\t// Restore original prototype:\n\t\t\tobj.__proto__ = prototype;\n\t\t} else {\n\t\t\tobj[ prop ] = descriptor.value;\n\t\t}\n\t}\n\thasGet = ( 'get' in descriptor );\n\thasSet = ( 'set' in descriptor );\n\n\tif ( hasValue && ( hasGet || hasSet ) ) {\n\t\tthrow new Error( 'invalid argument. Cannot specify one or more accessors and a value or writable attribute in the property descriptor.' );\n\t}\n\n\tif ( hasGet && defineGetter ) {\n\t\tdefineGetter.call( obj, prop, descriptor.get );\n\t}\n\tif ( hasSet && defineSetter ) {\n\t\tdefineSetter.call( obj, prop, descriptor.set );\n\t}\n\treturn obj;\n}\n\n\n// EXPORTS //\n\nexport default defineProperty;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Define (or modify) an object property.\n*\n* @module @stdlib/utils/define-property\n*\n* @example\n* import defineProperty from '@stdlib/utils/define-property';\n*\n* var obj = {};\n* defineProperty( obj, 'foo', {\n* 'value': 'bar',\n* 'writable': false,\n* 'configurable': false,\n* 'enumerable': false\n* });\n* obj.foo = 'boop'; // => throws\n*/\n\n// MODULES //\n\nimport hasDefinePropertySupport from './has_define_property_support.js';\nimport builtin from './builtin.js';\nimport polyfill from './polyfill.js';\n\n\n// MAIN //\n\nvar defineProperty;\nif ( hasDefinePropertySupport() ) {\n\tdefineProperty = builtin;\n} else {\n\tdefineProperty = polyfill;\n}\n\n\n// EXPORTS //\n\nexport default defineProperty;\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 defineProperty from './define_property.js';\n\n\n// MAIN //\n\n/**\n* Tests for `Object.defineProperty` support.\n*\n* @private\n* @returns {boolean} boolean indicating if an environment has `Object.defineProperty` support\n*\n* @example\n* var bool = hasDefinePropertySupport();\n* // returns \n*/\nfunction hasDefinePropertySupport() {\n\t// Test basic support...\n\ttry {\n\t\tdefineProperty( {}, 'x', {} );\n\t\treturn true;\n\t} catch ( err ) { // eslint-disable-line no-unused-vars\n\t\treturn false;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default hasDefinePropertySupport;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport defineProperty from './../../define-property';\n\n\n// MAIN //\n\n/**\n* Defines a read-only property.\n*\n* @param {Object} obj - object on which to define the property\n* @param {(string|symbol)} prop - property name\n* @param {*} value - value to set\n*\n* @example\n* var obj = {};\n*\n* setReadOnly( obj, 'foo', 'bar' );\n*\n* try {\n* obj.foo = 'boop';\n* } catch ( err ) {\n* console.error( err.message );\n* }\n*/\nfunction setReadOnly( obj, prop, value ) {\n\tdefineProperty( obj, prop, {\n\t\t'configurable': false,\n\t\t'enumerable': true,\n\t\t'writable': false,\n\t\t'value': value\n\t});\n}\n\n\n// EXPORTS //\n\nexport default setReadOnly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Compute the principal square root of a double-precision floating-point number.\n*\n* @type {Function}\n* @param {number} x - input value\n* @returns {number} principal square root\n*\n* @example\n* var v = sqrt( 4.0 );\n* // returns 2.0\n*\n* v = sqrt( 9.0 );\n* // returns 3.0\n*\n* v = sqrt( 0.0 );\n* // returns 0.0\n*\n* v = sqrt( -4.0 );\n* // returns NaN\n*\n* v = sqrt( NaN );\n* // returns NaN\n*/\nvar sqrt = Math.sqrt; // eslint-disable-line stdlib/no-builtin-math\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// TODO: implementation (?)\n\n/**\n* Rounds a double-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 = floor( -4.2 );\n* // returns -5.0\n*\n* @example\n* var v = floor( 9.99999 );\n* // returns 9.0\n*\n* @example\n* var v = floor( 0.0 );\n* // returns 0.0\n*\n* @example\n* var v = floor( NaN );\n* // returns NaN\n*/\nvar floor = Math.floor; // eslint-disable-line stdlib/no-builtin-math\n\n\n// EXPORTS //\n\nexport default floor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Maximum safe double-precision floating-point integer.\n*\n* @module @stdlib/constants/float64/max-safe-integer\n* @type {number}\n*\n* @example\n* import FLOAT64_MAX_SAFE_INTEGER from '@stdlib/constants/float64/max-safe-integer';\n* // returns 9007199254740991\n*/\n\n\n// MAIN //\n\n/**\n* Maximum safe double-precision floating-point integer.\n*\n* ## Notes\n*\n* The integer has the value\n*\n* ```tex\n* 2^{53} - 1\n* ```\n*\n* @constant\n* @type {number}\n* @default 9007199254740991\n* @see [Safe Integers]{@link http://www.2ality.com/2013/10/safe-integers.html}\n* @see [IEEE 754]{@link https://en.wikipedia.org/wiki/IEEE_754-1985}\n*/\nvar FLOAT64_MAX_SAFE_INTEGER = 9007199254740991;\n\n\n// EXPORTS //\n\nexport default FLOAT64_MAX_SAFE_INTEGER;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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 floor from './../../../../base/special/floor';\nimport FLOAT64_MAX_SAFE_INTEGER from '@stdlib/constants/float64/max-safe-integer';\nimport WHEEL_PRIMES from './wheel_primes.json';\n\n\n// MAIN //\n\n/**\n* Returns a boolean indicating whether a number is a prime.\n*\n* @param {number} x - value to test\n* @returns {boolean} boolean indicating whether a value is a prime number\n*\n* @example\n* var bool = isPrime( 5.0 );\n* // returns true\n*\n* @example\n* var bool = isPrime( 4.0 );\n* // returns false\n*/\nfunction isPrime( x ) {\n\tvar N;\n\tvar i;\n\n\t// Check whether the number is an integer...\n\tif ( floor( x ) !== x ) {\n\t\treturn false;\n\t}\n\t// Check whether the number is positive...\n\tif ( x <= 3 ) {\n\t\treturn (x > 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) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Double-precision floating-point positive infinity.\n*\n* @module @stdlib/constants/float64/pinf\n* @type {number}\n*\n* @example\n* import FLOAT64_PINF from '@stdlib/constants/float64/pinf';\n* // returns Infinity\n*/\n\n\n// MAIN //\n\n/**\n* Double-precision floating-point positive infinity.\n*\n* ## Notes\n*\n* Double-precision floating-point positive infinity has the bit sequence\n*\n* ```binarystring\n* 0 11111111111 00000000000000000000 00000000000000000000000000000000\n* ```\n*\n* @constant\n* @type {number}\n* @default Number.POSITIVE_INFINITY\n* @see [IEEE 754]{@link https://en.wikipedia.org/wiki/IEEE_754-1985}\n*/\nvar FLOAT64_PINF = Number.POSITIVE_INFINITY; // eslint-disable-line stdlib/require-globals\n\n\n// EXPORTS //\n\nexport default FLOAT64_PINF;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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// EXPORTS //\n\nexport default Number; // eslint-disable-line stdlib/require-globals\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Double-precision floating-point negative infinity.\n*\n* @module @stdlib/constants/float64/ninf\n* @type {number}\n*\n* @example\n* import FLOAT64_NINF from '@stdlib/constants/float64/ninf';\n* // returns -Infinity\n*/\n\n// MODULES //\n\nimport Number from '@stdlib/number/ctor';\n\n\n// MAIN //\n\n/**\n* Double-precision floating-point negative infinity.\n*\n* ## Notes\n*\n* Double-precision floating-point negative infinity has the bit sequence\n*\n* ```binarystring\n* 1 11111111111 00000000000000000000 00000000000000000000000000000000\n* ```\n*\n* @constant\n* @type {number}\n* @default Number.NEGATIVE_INFINITY\n* @see [IEEE 754]{@link https://en.wikipedia.org/wiki/IEEE_754-1985}\n*/\nvar FLOAT64_NINF = Number.NEGATIVE_INFINITY;\n\n\n// EXPORTS //\n\nexport default FLOAT64_NINF;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Maximum signed 32-bit integer.\n*\n* @module @stdlib/constants/int32/max\n* @type {integer32}\n*\n* @example\n* import INT32_MAX from '@stdlib/constants/int32/max';\n* // returns 2147483647\n*/\n\n\n// MAIN //\n\n/**\n* Maximum signed 32-bit integer.\n*\n* ## Notes\n*\n* The number has the value\n*\n* ```tex\n* 2^{31} - 1\n* ```\n*\n* which corresponds to the bit sequence\n*\n* ```binarystring\n* 01111111111111111111111111111111\n* ```\n*\n* @constant\n* @type {integer32}\n* @default 2147483647\n*/\nvar INT32_MAX = 2147483647|0; // asm type annotation\n\n\n// EXPORTS //\n\nexport default INT32_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 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 - integer\n* @param {integer} b - integer\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 - integer\n* @param {integer32} b - integer\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 - integer\n* @param {integer} b - integer\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 hasSymbols from './../../has-symbol-support';\n\n\n// VARIABLES //\n\nvar FLG = hasSymbols();\n\n\n// MAIN //\n\n/**\n* Tests for native `toStringTag` support.\n*\n* @returns {boolean} boolean indicating if an environment has `toStringTag` support\n*\n* @example\n* var bool = hasToStringTagSupport();\n* // returns \n*/\nfunction hasToStringTagSupport() {\n\treturn ( FLG && typeof Symbol.toStringTag === 'symbol' );\n}\n\n\n// EXPORTS //\n\nexport default hasToStringTagSupport;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 for native `Symbol` support.\n*\n* @returns {boolean} boolean indicating if an environment has `Symbol` support\n*\n* @example\n* var bool = hasSymbolSupport();\n* // returns \n*/\nfunction hasSymbolSupport() {\n\treturn (\n\t\ttypeof Symbol === 'function' &&\n\t\ttypeof Symbol( 'foo' ) === 'symbol'\n\t);\n}\n\n\n// EXPORTS //\n\nexport default hasSymbolSupport;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 toStr = Object.prototype.toString;\n\n\n// EXPORTS //\n\nexport default toStr;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// FUNCTIONS //\n\nvar has = Object.prototype.hasOwnProperty;\n\n\n// MAIN //\n\n/**\n* Tests if an object has a specified property.\n*\n* @param {*} value - value to test\n* @param {*} property - property to test\n* @returns {boolean} boolean indicating if an object has a specified property\n*\n* @example\n* var beep = {\n* 'boop': true\n* };\n*\n* var bool = hasOwnProp( beep, 'boop' );\n* // returns true\n*\n* @example\n* var beep = {\n* 'boop': true\n* };\n*\n* var bool = hasOwnProp( beep, 'bap' );\n* // returns false\n*/\nfunction hasOwnProp( value, property ) {\n\tif (\n\t\tvalue === void 0 ||\n\t\tvalue === null\n\t) {\n\t\treturn false;\n\t}\n\treturn has.call( value, property );\n}\n\n\n// EXPORTS //\n\nexport default hasOwnProp;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 Sym = ( typeof Symbol === 'function' ) ? Symbol : void 0; // eslint-disable-line stdlib/require-globals\n\n\n// EXPORTS //\n\nexport default Sym;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 a string value indicating a specification defined classification of an object.\n*\n* @module @stdlib/utils/native-class\n*\n* @example\n* import nativeClass from '@stdlib/utils/native-class';\n*\n* var str = nativeClass( 'a' );\n* // returns '[object String]'\n*\n* str = nativeClass( 5 );\n* // returns '[object Number]'\n*\n* function Beep() {\n* return this;\n* }\n* str = nativeClass( new Beep() );\n* // returns '[object Object]'\n*/\n\n// MODULES //\n\nimport hasToStringTag from '@stdlib/assert/has-tostringtag-support';\nimport builtin from './main.js';\nimport polyfill from './polyfill.js';\n\n\n// MAIN //\n\nvar main;\nif ( hasToStringTag() ) {\n\tmain = polyfill;\n} else {\n\tmain = builtin;\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// MODULES //\n\nimport Symbol from '@stdlib/symbol/ctor';\n\n\n// MAIN //\n\nvar toStrTag = ( typeof Symbol === 'function' ) ? Symbol.toStringTag : '';\n\n\n// EXPORTS //\n\nexport default toStrTag;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport hasOwnProp from '@stdlib/assert/has-own-property';\nimport toStringTag from './tostringtag.js';\nimport toStr from './tostring.js';\n\n\n// MAIN //\n\n/**\n* Returns a string value indicating a specification defined classification of an object in environments supporting `Symbol.toStringTag`.\n*\n* @param {*} v - input value\n* @returns {string} string value indicating a specification defined classification of the input value\n*\n* @example\n* var str = nativeClass( 'a' );\n* // returns '[object String]'\n*\n* @example\n* var str = nativeClass( 5 );\n* // returns '[object Number]'\n*\n* @example\n* function Beep() {\n* return this;\n* }\n* var str = nativeClass( new Beep() );\n* // returns '[object Object]'\n*/\nfunction nativeClass( v ) {\n\tvar isOwn;\n\tvar tag;\n\tvar out;\n\n\tif ( v === null || v === void 0 ) {\n\t\treturn toStr.call( v );\n\t}\n\ttag = v[ toStringTag ];\n\tisOwn = hasOwnProp( v, toStringTag );\n\n\t// Attempt to override the `toStringTag` property. For built-ins having a `Symbol.toStringTag` property (e.g., `JSON`, `Math`, etc), the `Symbol.toStringTag` property is read-only (e.g., , so we need to wrap in a `try/catch`.\n\ttry {\n\t\tv[ toStringTag ] = void 0;\n\t} catch ( err ) { // eslint-disable-line no-unused-vars\n\t\treturn toStr.call( v );\n\t}\n\tout = toStr.call( v );\n\n\tif ( isOwn ) {\n\t\tv[ toStringTag ] = tag;\n\t} else {\n\t\tdelete v[ toStringTag ];\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default nativeClass;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport toStr from './tostring.js';\n\n\n// MAIN //\n\n/**\n* Returns a string value indicating a specification defined classification (via the internal property `[[Class]]`) of an object.\n*\n* @param {*} v - input value\n* @returns {string} string value indicating a specification defined classification of the input value\n*\n* @example\n* var str = nativeClass( 'a' );\n* // returns '[object String]'\n*\n* @example\n* var str = nativeClass( 5 );\n* // returns '[object Number]'\n*\n* @example\n* function Beep() {\n* return this;\n* }\n* var str = nativeClass( new Beep() );\n* // returns '[object Object]'\n*/\nfunction nativeClass( v ) {\n\treturn toStr.call( v );\n}\n\n\n// EXPORTS //\n\nexport default nativeClass;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport nativeClass from '@stdlib/utils/native-class';\n\n\n// VARIABLES //\n\nvar hasFloat32Array = ( typeof Float32Array === 'function' ); // eslint-disable-line stdlib/require-globals\n\n\n// MAIN //\n\n/**\n* Tests if a value is a Float32Array.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether value is a Float32Array\n*\n* @example\n* var bool = isFloat32Array( new Float32Array( 10 ) );\n* // returns true\n*\n* @example\n* var bool = isFloat32Array( [] );\n* // returns false\n*/\nfunction isFloat32Array( value ) {\n\treturn (\n\t\t( hasFloat32Array && value instanceof Float32Array ) || // eslint-disable-line stdlib/require-globals\n\t\tnativeClass( value ) === '[object Float32Array]'\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isFloat32Array;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 main = ( typeof Float32Array === 'function' ) ? Float32Array : null; // eslint-disable-line stdlib/require-globals\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// MAIN //\n\nvar ctor = ( typeof Float32Array === 'function' ) ? Float32Array : void 0; // eslint-disable-line stdlib/require-globals\n\n\n// EXPORTS //\n\nexport default ctor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Typed array constructor which returns a typed array representing an array of single-precision floating-point numbers in the platform byte order.\n*\n* @module @stdlib/array/float32\n*\n* @example\n* import ctor from '@stdlib/array/float32';\n*\n* var arr = new ctor( 10 );\n* // returns \n*/\n\n// MODULES //\n\nimport hasFloat32ArraySupport from '@stdlib/assert/has-float32array-support';\nimport builtin from './main.js';\nimport polyfill from './polyfill.js';\n\n\n// MAIN //\n\nvar ctor;\nif ( hasFloat32ArraySupport() ) {\n\tctor = builtin;\n} else {\n\tctor = polyfill;\n}\n\n\n// EXPORTS //\n\nexport default ctor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isFloat32Array from './../../is-float32array';\nimport PINF from '@stdlib/constants/float64/pinf';\nimport GlobalFloat32Array from './float32array.js';\n\n\n// MAIN //\n\n/**\n* Tests for native `Float32Array` support.\n*\n* @returns {boolean} boolean indicating if an environment has `Float32Array` support\n*\n* @example\n* var bool = hasFloat32ArraySupport();\n* // returns \n*/\nfunction hasFloat32ArraySupport() {\n\tvar bool;\n\tvar arr;\n\n\tif ( typeof GlobalFloat32Array !== 'function' ) {\n\t\treturn false;\n\t}\n\t// Test basic support...\n\ttry {\n\t\tarr = new GlobalFloat32Array( [ 1.0, 3.14, -3.14, 5.0e40 ] );\n\t\tbool = (\n\t\t\tisFloat32Array( arr ) &&\n\t\t\tarr[ 0 ] === 1.0 &&\n\t\t\tarr[ 1 ] === 3.140000104904175 &&\n\t\t\tarr[ 2 ] === -3.140000104904175 &&\n\t\t\tarr[ 3 ] === PINF\n\t\t);\n\t} catch ( err ) { // eslint-disable-line no-unused-vars\n\t\tbool = false;\n\t}\n\treturn bool;\n}\n\n\n// EXPORTS //\n\nexport default hasFloat32ArraySupport;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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: write polyfill\n\n// MAIN //\n\n/**\n* Typed array which represents an array of single-precision floating-point numbers in the platform byte order.\n*\n* @throws {Error} not implemented\n*/\nfunction polyfill() {\n\tthrow new Error( 'not implemented' );\n}\n\n\n// EXPORTS //\n\nexport default polyfill;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport nativeClass from '@stdlib/utils/native-class';\n\n\n// VARIABLES //\n\nvar hasUint32Array = ( typeof Uint32Array === 'function' ); // eslint-disable-line stdlib/require-globals\n\n\n// MAIN //\n\n/**\n* Tests if a value is a Uint32Array.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether value is a Uint32Array\n*\n* @example\n* var bool = isUint32Array( new Uint32Array( 10 ) );\n* // returns true\n*\n* @example\n* var bool = isUint32Array( [] );\n* // returns false\n*/\nfunction isUint32Array( value ) {\n\treturn (\n\t\t( hasUint32Array && value instanceof Uint32Array ) || // eslint-disable-line stdlib/require-globals\n\t\tnativeClass( value ) === '[object Uint32Array]'\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isUint32Array;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Maximum unsigned 32-bit integer.\n*\n* @module @stdlib/constants/uint32/max\n* @type {uinteger32}\n*\n* @example\n* import UINT32_MAX from '@stdlib/constants/uint32/max';\n* // returns 4294967295\n*/\n\n\n// MAIN //\n\n/**\n* Maximum unsigned 32-bit integer.\n*\n* ## Notes\n*\n* The number has the value\n*\n* ```tex\n* 2^{32} - 1\n* ```\n*\n* which corresponds to the bit sequence\n*\n* ```binarystring\n* 11111111111111111111111111111111\n* ```\n*\n* @constant\n* @type {uinteger32}\n* @default 4294967295\n*/\nvar UINT32_MAX = 4294967295;\n\n\n// EXPORTS //\n\nexport default UINT32_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\nvar main = ( typeof Uint32Array === 'function' ) ? Uint32Array : null; // eslint-disable-line stdlib/require-globals\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// MAIN //\n\nvar ctor = ( typeof Uint32Array === 'function' ) ? Uint32Array : void 0; // eslint-disable-line stdlib/require-globals\n\n\n// EXPORTS //\n\nexport default ctor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Typed array constructor which returns a typed array representing an array of 32-bit unsigned integers in the platform byte order.\n*\n* @module @stdlib/array/uint32\n*\n* @example\n* import ctor from '@stdlib/array/uint32';\n*\n* var arr = new ctor( 10 );\n* // returns \n*/\n\n// MODULES //\n\nimport hasUint32ArraySupport from '@stdlib/assert/has-uint32array-support';\nimport builtin from './main.js';\nimport polyfill from './polyfill.js';\n\n\n// MAIN //\n\nvar ctor;\nif ( hasUint32ArraySupport() ) {\n\tctor = builtin;\n} else {\n\tctor = polyfill;\n}\n\n\n// EXPORTS //\n\nexport default ctor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isUint32Array from './../../is-uint32array';\nimport UINT32_MAX from '@stdlib/constants/uint32/max';\nimport GlobalUint32Array from './uint32array.js';\n\n\n// MAIN //\n\n/**\n* Tests for native `Uint32Array` support.\n*\n* @returns {boolean} boolean indicating if an environment has `Uint32Array` support\n*\n* @example\n* var bool = hasUint32ArraySupport();\n* // returns \n*/\nfunction hasUint32ArraySupport() {\n\tvar bool;\n\tvar arr;\n\n\tif ( typeof GlobalUint32Array !== 'function' ) {\n\t\treturn false;\n\t}\n\t// Test basic support...\n\ttry {\n\t\tarr = [ 1, 3.14, -3.14, UINT32_MAX+1, UINT32_MAX+2 ];\n\t\tarr = new GlobalUint32Array( arr );\n\t\tbool = (\n\t\t\tisUint32Array( arr ) &&\n\t\t\tarr[ 0 ] === 1 &&\n\t\t\tarr[ 1 ] === 3 && // truncation\n\t\t\tarr[ 2 ] === UINT32_MAX-2 && // truncation and wrap around\n\t\t\tarr[ 3 ] === 0 && // wrap around\n\t\t\tarr[ 4 ] === 1 // wrap around\n\t\t);\n\t} catch ( err ) { // eslint-disable-line no-unused-vars\n\t\tbool = false;\n\t}\n\treturn bool;\n}\n\n\n// EXPORTS //\n\nexport default hasUint32ArraySupport;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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: write polyfill\n\n// MAIN //\n\n/**\n* Typed array which represents an array of 32-bit unsigned integers in the platform byte order.\n*\n* @throws {Error} not implemented\n*/\nfunction polyfill() {\n\tthrow new Error( 'not implemented' );\n}\n\n\n// EXPORTS //\n\nexport default polyfill;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Single-precision floating-point positive infinity.\n*\n* @module @stdlib/constants/float32/pinf\n* @type {number}\n*\n* @example\n* import FLOAT32_PINF from '@stdlib/constants/float32/pinf';\n* // returns +infinity\n*/\n\n// MODULES //\n\nimport Float32Array from '@stdlib/array/float32';\nimport Uint32Array from '@stdlib/array/uint32';\n\n\n// VARIABLES //\n\nvar FLOAT32_VIEW = new Float32Array( 1 );\nvar UINT32_VIEW = new Uint32Array( FLOAT32_VIEW.buffer );\nvar v;\n\n\n// MAIN //\n\n/**\n* Single-precision floating-point positive infinity.\n*\n* ## Notes\n*\n* Single-precision floating-point positive infinity has the bit sequence\n*\n* ```binarystring\n* 0 11111111 00000000000000000000000\n* ```\n*\n* This bit sequence corresponds to the unsigned 32-bit integer `2139095040` and to the HEX value `0x7f800000`.\n*\n* @constant\n* @type {number}\n* @default 0x7f800000\n* @see [IEEE 754]{@link https://en.wikipedia.org/wiki/IEEE_754-1985}\n*/\nvar FLOAT32_PINF = 0x7f800000;\n\n// Set the ArrayBuffer bit sequence:\nUINT32_VIEW[ 0 ] = FLOAT32_PINF;\n\nv = FLOAT32_VIEW[ 0 ];\n\n\n// EXPORTS //\n\nexport default v;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Single-precision floating-point negative infinity.\n*\n* @module @stdlib/constants/float32/ninf\n* @type {number}\n*\n* @example\n* import FLOAT32_NINF from '@stdlib/constants/float32/ninf';\n* // returns -infinity\n*/\n\n// MODULES //\n\nimport Float32Array from '@stdlib/array/float32';\nimport Uint32Array from '@stdlib/array/uint32';\n\n\n// VARIABLES //\n\nvar FLOAT32_VIEW = new Float32Array( 1 );\nvar UINT32_VIEW = new Uint32Array( FLOAT32_VIEW.buffer );\nvar v;\n\n\n// MAIN //\n\n/**\n* Single-precision floating-point negative infinity.\n*\n* ## Notes\n*\n* Single-precision floating-point negative infinity has the bit sequence\n*\n* ```binarystring\n* 1 11111111 00000000000000000000000\n* ```\n*\n* This bit sequence corresponds to the unsigned 32-bit integer `4286578688` and to the HEX value `0xff800000`.\n*\n* @constant\n* @type {number}\n* @default 0xff800000\n* @see [IEEE 754]{@link https://en.wikipedia.org/wiki/IEEE_754-1985}\n*/\nvar FLOAT32_NINF = 0xff800000;\n\n// Set the ArrayBuffer bit sequence:\nUINT32_VIEW[ 0 ] = FLOAT32_NINF;\n\nv = FLOAT32_VIEW[ 0 ];\n\n\n// EXPORTS //\n\nexport default v;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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/**\n* Minimum safe double-precision floating-point integer.\n*\n* @module @stdlib/constants/float64/min-safe-integer\n* @type {number}\n*\n* @example\n* import FLOAT64_MIN_SAFE_INTEGER from '@stdlib/constants/float64/min-safe-integer';\n* // returns -9007199254740991\n*/\n\n\n// MAIN //\n\n/**\n* Minimum safe double-precision floating-point integer.\n*\n* ## Notes\n*\n* The number has the value\n*\n* ```tex\n* -(2^{53} - 1)\n* ```\n*\n* @constant\n* @type {number}\n* @default -9007199254740991\n* @see [Safe Integers]{@link http://www.2ality.com/2013/10/safe-integers.html}\n* @see [IEEE 754]{@link https://en.wikipedia.org/wiki/IEEE_754-1985}\n*/\nvar FLOAT64_MIN_SAFE_INTEGER = -9007199254740991;\n\n\n// EXPORTS //\n\nexport default FLOAT64_MIN_SAFE_INTEGER;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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// MAIN //\n\nvar fround = ( typeof Math.fround === 'function' ) ? Math.fround : null; // eslint-disable-line stdlib/no-builtin-math\n\n\n// EXPORTS //\n\nexport default fround;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport Float32Array from '@stdlib/array/float32';\n\n\n// VARIABLES //\n\nvar FLOAT32_VIEW = new Float32Array( 1 );\n\n\n// MAIN //\n\n/**\n* Converts a double-precision floating-point number to the nearest single-precision floating-point number.\n*\n* @param {number} x - double-precision floating-point number\n* @returns {number} nearest single-precision floating-point number\n*\n* @example\n* var y = float64ToFloat32( 1.337 );\n* // returns 1.3370000123977661\n*/\nfunction float64ToFloat32( x ) {\n\tFLOAT32_VIEW[ 0 ] = x;\n\treturn FLOAT32_VIEW[ 0 ];\n}\n\n\n// EXPORTS //\n\nexport default float64ToFloat32;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Convert a double-precision floating-point number to the nearest single-precision floating-point number.\n*\n* @module @stdlib/number/float64/base/to-float32\n*\n* @example\n* import float64ToFloat32 from '@stdlib/number/float64/base/to-float32';\n*\n* var y = float64ToFloat32( 1.337 );\n* // returns 1.3370000123977661\n*/\n\n// MODULES //\n\nimport builtin from './main.js';\nimport polyfill from './polyfill.js';\n\n\n// MAIN //\n\nvar float64ToFloat32;\nif ( typeof builtin === 'function' ) {\n\tfloat64ToFloat32 = builtin;\n} else {\n\tfloat64ToFloat32 = polyfill;\n}\n\n\n// EXPORTS //\n\nexport default float64ToFloat32;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport defineProperty from './../../define-property';\n\n\n// MAIN //\n\n/**\n* Defines a non-enumerable read-only property.\n*\n* @param {Object} obj - object on which to define the property\n* @param {(string|symbol)} prop - property name\n* @param {*} value - value to set\n*\n* @example\n* var obj = {};\n*\n* setNonEnumerableReadOnly( obj, 'foo', 'bar' );\n*\n* try {\n* obj.foo = 'boop';\n* } catch ( err ) {\n* console.error( err.message );\n* }\n*/\nfunction setNonEnumerableReadOnly( obj, prop, value ) {\n\tdefineProperty( obj, prop, {\n\t\t'configurable': false,\n\t\t'enumerable': false,\n\t\t'writable': false,\n\t\t'value': value\n\t});\n}\n\n\n// EXPORTS //\n\nexport default setNonEnumerableReadOnly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 value is a number primitive.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a number primitive\n*\n* @example\n* var bool = isNumber( 3.14 );\n* // returns true\n*\n* @example\n* var bool = isNumber( NaN );\n* // returns true\n*\n* @example\n* var bool = isNumber( new Number( 3.14 ) );\n* // returns false\n*/\nfunction isNumber( value ) {\n\treturn ( typeof value === 'number' );\n}\n\n\n// EXPORTS //\n\nexport default isNumber;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport Number from '@stdlib/number/ctor';\n\n\n// MAIN //\n\n// eslint-disable-next-line stdlib/no-redeclare\nvar toString = Number.prototype.toString; // non-generic\n\n\n// EXPORTS //\n\nexport default toString;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport hasToStringTag from './../../has-tostringtag-support';\nimport nativeClass from '@stdlib/utils/native-class';\nimport Number from '@stdlib/number/ctor';\nimport test from './try2serialize.js';\n\n\n// VARIABLES //\n\nvar FLG = hasToStringTag();\n\n\n// MAIN //\n\n/**\n* Tests if a value is a number object.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a number object\n*\n* @example\n* var bool = isNumber( 3.14 );\n* // returns false\n*\n* @example\n* var bool = isNumber( new Number( 3.14 ) );\n* // returns true\n*/\nfunction isNumber( value ) {\n\tif ( typeof value === 'object' ) {\n\t\tif ( value instanceof Number ) {\n\t\t\treturn true;\n\t\t}\n\t\tif ( FLG ) {\n\t\t\treturn test( value );\n\t\t}\n\t\treturn ( nativeClass( value ) === '[object Number]' );\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default isNumber;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport toString from './tostring.js'; // eslint-disable-line stdlib/no-redeclare\n\n\n// MAIN //\n\n/**\n* Attempts to serialize a value to a string.\n*\n* @private\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value can be serialized\n*/\nfunction test( value ) {\n\ttry {\n\t\ttoString.call( value );\n\t\treturn true;\n\t} catch ( err ) { // eslint-disable-line no-unused-vars\n\t\treturn false;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default test;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isPrimitive from './primitive.js';\nimport isObject from './object.js';\n\n\n// MAIN //\n\n/**\n* Tests if a value is a number.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether value is a number\n*\n* @example\n* var bool = isNumber( 3.14 );\n* // returns true\n*\n* @example\n* var bool = isNumber( new Number( 3.14 ) );\n* // returns true\n*\n* @example\n* var bool = isNumber( NaN );\n* // returns true\n*\n* @example\n* var bool = isNumber( null );\n* // returns false\n*/\nfunction isNumber( value ) {\n\treturn ( isPrimitive( value ) || isObject( value ) );\n}\n\n\n// EXPORTS //\n\nexport default isNumber;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { isPrimitive as isNumber } from '@stdlib/assert/is-number';\nimport defineProperty from '@stdlib/utils/define-property';\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport float64ToFloat32 from '@stdlib/number/float64/base/to-float32';\nimport format from '@stdlib/string/format';\nimport toStr from './tostring.js';\nimport toJSON from './tojson.js';\n\n\n// MAIN //\n\n/**\n* 64-bit complex number constructor.\n*\n* @constructor\n* @param {number} real - real component\n* @param {number} imag - imaginary component\n* @throws {TypeError} must invoke using the `new` keyword\n* @throws {TypeError} real component must be a number\n* @throws {TypeError} imaginary component must be a number\n* @returns {Complex64} 64-bit complex number\n*\n* @example\n* var z = new Complex64( 5.0, 3.0 );\n* // returns \n*/\nfunction Complex64( real, imag ) {\n\tif ( !( this instanceof Complex64 ) ) {\n\t\tthrow new TypeError( 'invalid invocation. Constructor must be called with the `new` keyword.' );\n\t}\n\tif ( !isNumber( real ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Real component must be a number. Value: `%s`.', real ) );\n\t}\n\tif ( !isNumber( imag ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Imaginary component must be a number. Value: `%s`.', imag ) );\n\t}\n\tdefineProperty( this, 're', {\n\t\t'configurable': false,\n\t\t'enumerable': true,\n\t\t'writable': false,\n\t\t'value': float64ToFloat32( real )\n\t});\n\tdefineProperty( this, 'im', {\n\t\t'configurable': false,\n\t\t'enumerable': true,\n\t\t'writable': false,\n\t\t'value': float64ToFloat32( imag )\n\t});\n\treturn this;\n}\n\n/**\n* Size (in bytes) of each component.\n*\n* @name BYTES_PER_ELEMENT\n* @memberof Complex64\n* @type {integer}\n* @returns {integer} size of each component\n*\n* @example\n* var nbytes = Complex64.BYTES_PER_ELEMENT;\n* // returns 4\n*/\nsetReadOnly( Complex64, 'BYTES_PER_ELEMENT', 4 );\n\n/**\n* Size (in bytes) of each component.\n*\n* @name BYTES_PER_ELEMENT\n* @memberof Complex64.prototype\n* @type {integer}\n* @returns {integer} size of each component\n*\n* @example\n* var z = new Complex64( 5.0, 3.0 );\n*\n* var nbytes = z.BYTES_PER_ELEMENT;\n* // returns 4\n*/\nsetReadOnly( Complex64.prototype, 'BYTES_PER_ELEMENT', 4 );\n\n/**\n* Length (in bytes) of a complex number.\n*\n* @name byteLength\n* @memberof Complex64.prototype\n* @type {integer}\n* @returns {integer} byte length\n*\n* @example\n* var z = new Complex64( 5.0, 3.0 );\n*\n* var nbytes = z.byteLength;\n* // returns 8\n*/\nsetReadOnly( Complex64.prototype, 'byteLength', 8 );\n\n/**\n* Serializes a complex number as a string.\n*\n* @name toString\n* @memberof Complex64.prototype\n* @type {Function}\n* @returns {string} serialized complex number\n*\n* @example\n* var z = new Complex64( 5.0, 3.0 );\n*\n* var str = z.toString();\n* // returns '5 + 3i'\n*/\nsetReadOnly( Complex64.prototype, 'toString', toStr );\n\n/**\n* Serializes a complex number as a JSON object.\n*\n* ## Notes\n*\n* - `JSON.stringify()` implicitly calls this method when stringifying a `Complex64` instance.\n*\n* @name toJSON\n* @memberof Complex64.prototype\n* @type {Function}\n* @returns {Object} serialized complex number\n*\n* @example\n* var z = new Complex64( 5.0, 3.0 );\n*\n* var obj = z.toJSON();\n* // returns { 'type': 'Complex64', 're': 5.0, 'im': 3.0 }\n*/\nsetReadOnly( Complex64.prototype, 'toJSON', toJSON );\n\n\n// EXPORTS //\n\nexport default Complex64;\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* Returns the real component of a single-precision complex floating-point number.\n*\n* @param {Complex} z - complex number\n* @returns {number} real component\n*\n* @example\n* import Complex64 from '@stdlib/complex/float32/ctor';\n*\n* var z = new Complex64( 5.0, 3.0 );\n*\n* var re = real( z );\n* // returns 5.0\n*/\nfunction real( z ) {\n\treturn z.re;\n}\n\n\n// EXPORTS //\n\nexport default real;\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* Returns the imaginary component of a single-precision complex floating-point number.\n*\n* @param {Complex} z - complex number\n* @returns {number} imaginary component\n*\n* @example\n* import Complex64 from '@stdlib/complex/float32/ctor';\n*\n* var z = new Complex64( 5.0, 3.0 );\n*\n* var im = imag( z );\n* // returns 3.0\n*/\nfunction imag( z ) {\n\treturn z.im;\n}\n\n\n// EXPORTS //\n\nexport default imag;\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 './../../../../float32/ctor';\nimport realf from './../../../../float32/real';\nimport imagf from './../../../../float32/imag';\n\n\n// MAIN //\n\n/**\n* Adds 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 z = new Complex64( 5.0, 3.0 );\n* // returns \n*\n* var out = add( z, z );\n* // returns \n*\n* var re = realf( out );\n* // returns 10.0\n*\n* var im = imagf( out );\n* // returns 6.0\n*/\nfunction add( 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 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// MODULES //\n\nimport float64ToFloat32 from '@stdlib/number/float64/base/to-float32';\nimport Complex64 from './../../../../float32/ctor';\nimport realf from './../../../../float32/real';\nimport imagf from './../../../../float32/imag';\n\n\n// MAIN //\n\n/**\n* Multiplies 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 = mul( z1, z2 );\n* // returns \n*\n* var re = realf( out );\n* // returns -13.0\n*\n* var im = imagf( out );\n* // returns -1.0\n*/\nfunction mul( z1, z2 ) {\n\tvar re1 = realf( z1 );\n\tvar re2 = realf( z2 );\n\tvar im1 = imagf( z1 );\n\tvar im2 = imagf( z2 );\n\tvar re = float64ToFloat32(re1*re2) - float64ToFloat32(im1*im2);\n\tvar im = float64ToFloat32(re1*im2) + float64ToFloat32(im1*re2);\n\treturn new Complex64( float64ToFloat32( re ), float64ToFloat32( im ) );\n}\n\n\n// EXPORTS //\n\nexport default mul;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { isPrimitive as isNumber } from '@stdlib/assert/is-number';\nimport defineProperty from '@stdlib/utils/define-property';\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport format from '@stdlib/string/format';\nimport toStr from './tostring.js';\nimport toJSON from './tojson.js';\n\n\n// MAIN //\n\n/**\n* 128-bit complex number constructor.\n*\n* @constructor\n* @param {number} real - real component\n* @param {number} imag - imaginary component\n* @throws {TypeError} must invoke using the `new` keyword\n* @throws {TypeError} real component must be a number\n* @throws {TypeError} imaginary component must be a number\n* @returns {Complex128} 128-bit complex number\n*\n* @example\n* var z = new Complex128( 5.0, 3.0 );\n* // returns \n*/\nfunction Complex128( real, imag ) {\n\tif ( !( this instanceof Complex128 ) ) {\n\t\tthrow new TypeError( 'invalid invocation. Constructor must be called with the `new` keyword.' );\n\t}\n\tif ( !isNumber( real ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Real component must be a number. Value: `%s`.', real ) );\n\t}\n\tif ( !isNumber( imag ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Imaginary component must be a number. Value: `%s`.', imag ) );\n\t}\n\tdefineProperty( this, 're', {\n\t\t'configurable': false,\n\t\t'enumerable': true,\n\t\t'writable': false,\n\t\t'value': real\n\t});\n\tdefineProperty( this, 'im', {\n\t\t'configurable': false,\n\t\t'enumerable': true,\n\t\t'writable': false,\n\t\t'value': imag\n\t});\n\treturn this;\n}\n\n/**\n* Size (in bytes) of each component.\n*\n* @name BYTES_PER_ELEMENT\n* @memberof Complex128\n* @type {integer}\n* @returns {integer} size of each component\n*\n* @example\n* var nbytes = Complex128.BYTES_PER_ELEMENT;\n* // returns 8\n*/\nsetReadOnly( Complex128, 'BYTES_PER_ELEMENT', 8 );\n\n/**\n* Size (in bytes) of each component.\n*\n* @name BYTES_PER_ELEMENT\n* @memberof Complex128.prototype\n* @type {integer}\n* @returns {integer} size of each component\n*\n* @example\n* var z = new Complex128( 5.0, 3.0 );\n*\n* var nbytes = z.BYTES_PER_ELEMENT;\n* // returns 8\n*/\nsetReadOnly( Complex128.prototype, 'BYTES_PER_ELEMENT', 8 );\n\n/**\n* Length (in bytes) of a complex number.\n*\n* @name byteLength\n* @memberof Complex128.prototype\n* @type {integer}\n* @returns {integer} byte length\n*\n* @example\n* var z = new Complex128( 5.0, 3.0 );\n*\n* var nbytes = z.byteLength;\n* // returns 16\n*/\nsetReadOnly( Complex128.prototype, 'byteLength', 16 );\n\n/**\n* Serializes a complex number as a string.\n*\n* @name toString\n* @memberof Complex128.prototype\n* @type {Function}\n* @returns {string} serialized complex number\n*\n* @example\n* var z = new Complex128( 5.0, 3.0 );\n*\n* var str = z.toString();\n* // returns '5 + 3i'\n*/\nsetReadOnly( Complex128.prototype, 'toString', toStr );\n\n/**\n* Serializes a complex number as a JSON object.\n*\n* ## Notes\n*\n* - `JSON.stringify()` implicitly calls this method when stringifying a `Complex128` instance.\n*\n* @name toJSON\n* @memberof Complex128.prototype\n* @type {Function}\n* @returns {Object} serialized complex number\n*\n* @example\n* var z = new Complex128( 5.0, 3.0 );\n*\n* var obj = z.toJSON();\n* // returns { 'type': 'Complex128', 're': 5.0, 'im': 3.0 }\n*/\nsetReadOnly( Complex128.prototype, 'toJSON', toJSON );\n\n\n// EXPORTS //\n\nexport default Complex128;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 real component of a double-precision complex floating-point number.\n*\n* @param {Complex} z - complex number\n* @returns {number} real component\n*\n* @example\n* import Complex128 from '@stdlib/complex/float64/ctor';\n*\n* var z = new Complex128( 5.0, 3.0 );\n*\n* var re = real( z );\n* // returns 5.0\n*/\nfunction real( z ) {\n\treturn z.re;\n}\n\n\n// EXPORTS //\n\nexport default real;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 imaginary component of a double-precision complex floating-point number.\n*\n* @param {Complex} z - complex number\n* @returns {number} imaginary component\n*\n* @example\n* import Complex128 from '@stdlib/complex/float64/ctor';\n*\n* var z = new Complex128( 5.0, 3.0 );\n*\n* var im = imag( z );\n* // returns 3.0\n*/\nfunction imag( z ) {\n\treturn z.im;\n}\n\n\n// EXPORTS //\n\nexport default imag;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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 './../../../../float64/ctor';\nimport real from './../../../../float64/real';\nimport imag from './../../../../float64/imag';\n\n\n// MAIN //\n\n/**\n* Adds 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 z = new Complex128( 5.0, 3.0 );\n* // returns \n*\n* var out = cadd( z, z );\n* // returns \n*\n* var re = real( out );\n* // returns 10.0\n*\n* var im = imag( out );\n* // returns 6.0\n*/\nfunction cadd( 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 cadd;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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 './../../../../float64/ctor';\nimport real from './../../../../float64/real';\nimport imag from './../../../../float64/imag';\n\n\n// MAIN //\n\n/**\n* Multiplies 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 = mul( z1, z2 );\n* // returns \n*\n* var re = real( out );\n* // returns -13.0\n*\n* var im = imag( out );\n* // returns -1.0\n*/\nfunction mul( z1, z2 ) {\n\tvar re1 = real( z1 );\n\tvar re2 = real( z2 );\n\tvar im1 = imag( z1 );\n\tvar im2 = imag( z2 );\n\tvar re = (re1*re2) - (im1*im2);\n\tvar im = (re1*im2) + (im1*re2);\n\treturn new Complex128( re, im );\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* 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/**\n* Test if a value is a number.\n*\n* @module @stdlib/assert/is-number\n*\n* @example\n* import isNumber from '@stdlib/assert/is-number';\n*\n* var bool = isNumber( 3.14 );\n* // returns true\n*\n* bool = isNumber( new Number( 3.14 ) );\n* // returns true\n*\n* bool = isNumber( NaN );\n* // returns true\n*\n* bool = isNumber( null );\n* // returns false\n*\n* @example\n* import { isPrimitive as isNumber } from '@stdlib/assert/is-number';\n*\n* var bool = isNumber( 3.14 );\n* // returns true\n*\n* bool = isNumber( NaN );\n* // returns true\n*\n* bool = isNumber( new Number( 3.14 ) );\n* // returns false\n*\n* @example\n* import { isObject as isNumber } from '@stdlib/assert/is-number';\n*\n* var bool = isNumber( 3.14 );\n* // returns false\n*\n* bool = isNumber( new Number( 3.14 ) );\n* // returns true\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport isPrimitive from './primitive.js';\nimport isObject from './object.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'isPrimitive', isPrimitive );\nsetReadOnly( main, 'isObject', isObject );\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* Serializes a complex number as a string.\n*\n* @private\n* @returns {string} serialized complex number\n*/\nfunction toString() { // eslint-disable-line stdlib/no-redeclare\n\t/* eslint-disable no-invalid-this */\n\tvar str = '' + this.re;\n\tif ( this.im < 0 ) {\n\t\tstr += ' - ' + (-this.im);\n\t} else {\n\t\tstr += ' + ' + this.im;\n\t}\n\tstr += 'i';\n\treturn str;\n}\n\n\n// EXPORTS //\n\nexport default toString;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Serializes a complex number as a JSON object.\n*\n* @private\n* @returns {Object} JSON representation\n*/\nfunction toJSON() {\n\t/* eslint-disable no-invalid-this */\n\tvar out = {};\n\tout.type = 'Complex64';\n\tout.re = this.re;\n\tout.im = this.im;\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default toJSON;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Serializes a complex number as a string.\n*\n* @private\n* @returns {string} serialized complex number\n*/\nfunction toString() { // eslint-disable-line stdlib/no-redeclare\n\t/* eslint-disable no-invalid-this */\n\tvar str = '' + this.re;\n\tif ( this.im < 0 ) {\n\t\tstr += ' - ' + (-this.im);\n\t} else {\n\t\tstr += ' + ' + this.im;\n\t}\n\tstr += 'i';\n\treturn str;\n}\n\n\n// EXPORTS //\n\nexport default toString;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Serializes a complex number as a JSON object.\n*\n* @private\n* @returns {Object} JSON representation\n*/\nfunction toJSON() {\n\t/* eslint-disable no-invalid-this */\n\tvar out = {};\n\tout.type = 'Complex128';\n\tout.re = this.re;\n\tout.im = this.im;\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default toJSON;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Maximum double-precision floating-point number.\n*\n* @module @stdlib/constants/float64/max\n* @type {number}\n*\n* @example\n* import FLOAT64_MAX from '@stdlib/constants/float64/max';\n* // returns 1.7976931348623157e+308\n*/\n\n\n// MAIN //\n\n/**\n* Maximum double-precision floating-point number.\n*\n* ## Notes\n*\n* The maximum is given by\n*\n* ```tex\n* 2^{1023} (2 - 2^{-52})\n* ```\n*\n* @constant\n* @type {number}\n* @default 1.7976931348623157e+308\n* @see [IEEE 754]{@link https://en.wikipedia.org/wiki/IEEE_754-1985}\n*/\nvar FLOAT64_MAX = 1.7976931348623157e+308;\n\n\n// EXPORTS //\n\nexport default FLOAT64_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/**\n* Smallest positive double-precision floating-point normal number.\n*\n* @module @stdlib/constants/float64/smallest-normal\n* @type {number}\n*\n* @example\n* import FLOAT64_SMALLEST_NORMAL from '@stdlib/constants/float64/smallest-normal';\n* // returns 2.2250738585072014e-308\n*/\n\n\n// MAIN //\n\n/**\n* The smallest positive double-precision floating-point normal number.\n*\n* ## Notes\n*\n* The number has the value\n*\n* ```tex\n* \\frac{1}{2^{1023-1}}\n* ```\n*\n* which corresponds to the bit sequence\n*\n* ```binarystring\n* 0 00000000001 00000000000000000000 00000000000000000000000000000000\n* ```\n*\n* @constant\n* @type {number}\n* @default 2.2250738585072014e-308\n* @see [IEEE 754]{@link https://en.wikipedia.org/wiki/IEEE_754-1985}\n*/\nvar FLOAT64_SMALLEST_NORMAL = 2.2250738585072014e-308;\n\n\n// EXPORTS //\n\nexport default FLOAT64_SMALLEST_NORMAL;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Difference between one and the smallest value greater than one that can be represented as a double-precision floating-point number.\n*\n* @module @stdlib/constants/float64/eps\n* @type {number}\n*\n* @example\n* import FLOAT64_EPSILON from '@stdlib/constants/float64/eps';\n* // returns 2.220446049250313e-16\n*/\n\n\n// MAIN //\n\n/**\n* Difference between one and the smallest value greater than one that can be represented as a double-precision floating-point number.\n*\n* ## Notes\n*\n* The difference is\n*\n* ```tex\n* \\frac{1}{2^{52}}\n* ```\n*\n* @constant\n* @type {number}\n* @default 2.220446049250313e-16\n* @see [IEEE 754]{@link https://en.wikipedia.org/wiki/IEEE_754-1985}\n* @see [Machine Epsilon]{@link https://en.wikipedia.org/wiki/Machine_epsilon}\n*/\nvar FLOAT64_EPSILON = 2.2204460492503130808472633361816E-16;\n\n\n// EXPORTS //\n\nexport default FLOAT64_EPSILON;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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// 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'use strict';\n\n/**\n* One fourth times the mathematical constant `π`.\n*\n* @module @stdlib/constants/float64/fourth-pi\n* @type {number}\n*\n* @example\n* import FOURTH_PI from '@stdlib/constants/float64/fourth-pi';\n* // returns 7.85398163397448309616e-1\n*/\n\n\n// MAIN //\n\n/**\n* One fourth times the mathematical constant `π`.\n*\n* @constant\n* @type {number}\n* @default 7.85398163397448309616e-1\n* @see [Wikipedia]{@link https://en.wikipedia.org/wiki/Pi}\n*/\nvar FOURTH_PI = 7.85398163397448309616e-1;\n\n\n// EXPORTS //\n\nexport default FOURTH_PI;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport Float32Array from '@stdlib/array/float32';\nimport Uint32Array from '@stdlib/array/uint32';\n\n\n// VARIABLES //\n\nvar FLOAT32_VIEW = new Float32Array( 1.0 );\nvar UINT32_VIEW = new Uint32Array( FLOAT32_VIEW.buffer );\n\n\n// MAIN //\n\n/**\n* Returns an unsigned 32-bit integer corresponding to the IEEE 754 binary representation of a single-precision floating-point number.\n*\n* @param {number} x - single-precision floating-point number\n* @returns {unsigned32} unsigned 32-bit integer\n*\n* @example\n* import float64ToFloat32 from '@stdlib/number/float64/base/to-float32';\n*\n* var f32 = float64ToFloat32( 1.337 );\n* // returns 1.3370000123977661\n*\n* var w = toWordf( f32 ); // => 0 01111111 01010110010001011010001\n* // returns 1068180177\n*/\nfunction toWordf( x ) {\n\tFLOAT32_VIEW[ 0 ] = x;\n\treturn UINT32_VIEW[ 0 ];\n}\n\n\n// EXPORTS //\n\nexport default toWordf;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport Uint32Array from '@stdlib/array/uint32';\nimport Float32Array from '@stdlib/array/float32';\n\n\n// VARIABLES //\n\nvar UINT32_VIEW = new Uint32Array( 1 );\nvar FLOAT32_VIEW = new Float32Array( UINT32_VIEW.buffer );\n\n\n// MAIN //\n\n/**\n* Creates a single-precision floating-point number from an unsigned integer corresponding to an IEEE 754 binary representation.\n*\n* @param {uinteger32} word - unsigned integer\n* @returns {number} single-precision floating-point number\n*\n* @example\n* var word = 1068180177; // => 0 01111111 01010110010001011010001\n*\n* var f32 = fromWordf( word ); // when printed, implicitly promoted to float64\n* // returns 1.3370000123977661\n*/\nfunction fromWordf( word ) {\n\tUINT32_VIEW[ 0 ] = word;\n\treturn FLOAT32_VIEW[ 0 ];\n}\n\n\n// EXPORTS //\n\nexport default fromWordf;\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* The mathematical constant `π`.\n*\n* @module @stdlib/constants/float32/pi\n* @type {number}\n*\n* @example\n* import FLOAT32_PI from '@stdlib/constants/float32/pi';\n* // returns 3.1415927410125732\n*/\n\n// MODULES //\n\nimport float64ToFloat32 from '@stdlib/number/float64/base/to-float32';\n\n\n// MAIN //\n\n/**\n* The mathematical constant `π`.\n*\n* @constant\n* @type {number}\n* @default 3.1415927410125732\n* @see [Wikipedia]{@link https://en.wikipedia.org/wiki/Pi}\n*/\nvar FLOAT32_PI = float64ToFloat32( 3.141592653589793 );\n\n\n// EXPORTS //\n\nexport default FLOAT32_PI;\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'use strict';\n\n// MODULES //\n\nimport nativeClass from '@stdlib/utils/native-class';\n\n\n// VARIABLES //\n\nvar hasFloat64Array = ( typeof Float64Array === 'function' ); // eslint-disable-line stdlib/require-globals\n\n\n// MAIN //\n\n/**\n* Tests if a value is a Float64Array.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether value is a Float64Array\n*\n* @example\n* var bool = isFloat64Array( new Float64Array( 10 ) );\n* // returns true\n*\n* @example\n* var bool = isFloat64Array( [] );\n* // returns false\n*/\nfunction isFloat64Array( value ) {\n\treturn (\n\t\t( hasFloat64Array && value instanceof Float64Array ) || // eslint-disable-line stdlib/require-globals\n\t\tnativeClass( value ) === '[object Float64Array]'\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isFloat64Array;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 main = ( typeof Float64Array === 'function' ) ? Float64Array : null; // eslint-disable-line stdlib/require-globals\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// MAIN //\n\nvar ctor = ( typeof Float64Array === 'function' ) ? Float64Array : void 0; // eslint-disable-line stdlib/require-globals\n\n\n// EXPORTS //\n\nexport default ctor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Typed array constructor which returns a typed array representing an array of double-precision floating-point numbers in the platform byte order.\n*\n* @module @stdlib/array/float64\n*\n* @example\n* import ctor from '@stdlib/array/float64';\n*\n* var arr = new ctor( 10 );\n* // returns \n*/\n\n// MODULES //\n\nimport hasFloat64ArraySupport from '@stdlib/assert/has-float64array-support';\nimport builtin from './main.js';\nimport polyfill from './polyfill.js';\n\n\n// MAIN //\n\nvar ctor;\nif ( hasFloat64ArraySupport() ) {\n\tctor = builtin;\n} else {\n\tctor = polyfill;\n}\n\n\n// EXPORTS //\n\nexport default ctor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isFloat64Array from './../../is-float64array';\nimport GlobalFloat64Array from './float64array.js';\n\n\n// MAIN //\n\n/**\n* Tests for native `Float64Array` support.\n*\n* @returns {boolean} boolean indicating if an environment has `Float64Array` support\n*\n* @example\n* var bool = hasFloat64ArraySupport();\n* // returns \n*/\nfunction hasFloat64ArraySupport() {\n\tvar bool;\n\tvar arr;\n\n\tif ( typeof GlobalFloat64Array !== 'function' ) {\n\t\treturn false;\n\t}\n\t// Test basic support...\n\ttry {\n\t\tarr = new GlobalFloat64Array( [ 1.0, 3.14, -3.14, NaN ] );\n\t\tbool = (\n\t\t\tisFloat64Array( arr ) &&\n\t\t\tarr[ 0 ] === 1.0 &&\n\t\t\tarr[ 1 ] === 3.14 &&\n\t\t\tarr[ 2 ] === -3.14 &&\n\t\t\tarr[ 3 ] !== arr[ 3 ]\n\t\t);\n\t} catch ( err ) { // eslint-disable-line no-unused-vars\n\t\tbool = false;\n\t}\n\treturn bool;\n}\n\n\n// EXPORTS //\n\nexport default hasFloat64ArraySupport;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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: write polyfill\n\n// MAIN //\n\n/**\n* Typed array which represents an array of double-precision floating-point numbers in the platform byte order.\n*\n* @throws {Error} not implemented\n*/\nfunction polyfill() {\n\tthrow new Error( 'not implemented' );\n}\n\n\n// EXPORTS //\n\nexport default polyfill;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport nativeClass from '@stdlib/utils/native-class';\n\n\n// VARIABLES //\n\nvar hasUint8Array = ( typeof Uint8Array === 'function' ); // eslint-disable-line stdlib/require-globals\n\n\n// MAIN //\n\n/**\n* Tests if a value is a Uint8Array.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether value is a Uint8Array\n*\n* @example\n* var bool = isUint8Array( new Uint8Array( 10 ) );\n* // returns true\n*\n* @example\n* var bool = isUint8Array( [] );\n* // returns false\n*/\nfunction isUint8Array( value ) {\n\treturn (\n\t\t( hasUint8Array && value instanceof Uint8Array ) || // eslint-disable-line stdlib/require-globals\n\t\tnativeClass( value ) === '[object Uint8Array]'\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isUint8Array;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Maximum unsigned 8-bit integer.\n*\n* @module @stdlib/constants/uint8/max\n* @type {integer32}\n*\n* @example\n* import UINT8_MAX from '@stdlib/constants/uint8/max';\n* // returns 255\n*/\n\n\n// MAIN //\n\n/**\n* Maximum unsigned 8-bit integer.\n*\n* ## Notes\n*\n* The number has the value\n*\n* ```tex\n* 2^{8} - 1\n* ```\n*\n* which corresponds to the bit sequence\n*\n* ```binarystring\n* 11111111\n* ```\n*\n* @constant\n* @type {integer32}\n* @default 255\n*/\nvar UINT8_MAX = 255|0; // asm type annotation\n\n\n// EXPORTS //\n\nexport default UINT8_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\nvar main = ( typeof Uint8Array === 'function' ) ? Uint8Array : null; // eslint-disable-line stdlib/require-globals\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// MAIN //\n\nvar ctor = ( typeof Uint8Array === 'function' ) ? Uint8Array : void 0; // eslint-disable-line stdlib/require-globals\n\n\n// EXPORTS //\n\nexport default ctor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Typed array constructor which returns a typed array representing an array of 8-bit unsigned integers in the platform byte order.\n*\n* @module @stdlib/array/uint8\n*\n* @example\n* import ctor from '@stdlib/array/uint8';\n*\n* var arr = new ctor( 10 );\n* // returns \n*/\n\n// MODULES //\n\nimport hasUint8ArraySupport from '@stdlib/assert/has-uint8array-support';\nimport builtin from './main.js';\nimport polyfill from './polyfill.js';\n\n\n// MAIN //\n\nvar ctor;\nif ( hasUint8ArraySupport() ) {\n\tctor = builtin;\n} else {\n\tctor = polyfill;\n}\n\n\n// EXPORTS //\n\nexport default ctor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isUint8Array from './../../is-uint8array';\nimport UINT8_MAX from '@stdlib/constants/uint8/max';\nimport GlobalUint8Array from './uint8array.js';\n\n\n// MAIN //\n\n/**\n* Tests for native `Uint8Array` support.\n*\n* @returns {boolean} boolean indicating if an environment has `Uint8Array` support\n*\n* @example\n* var bool = hasUint8ArraySupport();\n* // returns \n*/\nfunction hasUint8ArraySupport() {\n\tvar bool;\n\tvar arr;\n\n\tif ( typeof GlobalUint8Array !== 'function' ) {\n\t\treturn false;\n\t}\n\t// Test basic support...\n\ttry {\n\t\tarr = [ 1, 3.14, -3.14, UINT8_MAX+1, UINT8_MAX+2 ];\n\t\tarr = new GlobalUint8Array( arr );\n\t\tbool = (\n\t\t\tisUint8Array( arr ) &&\n\t\t\tarr[ 0 ] === 1 &&\n\t\t\tarr[ 1 ] === 3 && // truncation\n\t\t\tarr[ 2 ] === UINT8_MAX-2 && // truncation and wrap around\n\t\t\tarr[ 3 ] === 0 && // wrap around\n\t\t\tarr[ 4 ] === 1 // wrap around\n\t\t);\n\t} catch ( err ) { // eslint-disable-line no-unused-vars\n\t\tbool = false;\n\t}\n\treturn bool;\n}\n\n\n// EXPORTS //\n\nexport default hasUint8ArraySupport;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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: write polyfill\n\n// MAIN //\n\n/**\n* Typed array which represents an array of 8-bit unsigned integers in the platform byte order.\n*\n* @throws {Error} not implemented\n*/\nfunction polyfill() {\n\tthrow new Error( 'not implemented' );\n}\n\n\n// EXPORTS //\n\nexport default polyfill;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport nativeClass from '@stdlib/utils/native-class';\n\n\n// VARIABLES //\n\nvar hasUint16Array = ( typeof Uint16Array === 'function' ); // eslint-disable-line stdlib/require-globals\n\n\n// MAIN //\n\n/**\n* Tests if a value is a Uint16Array.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether value is a Uint16Array\n*\n* @example\n* var bool = isUint16Array( new Uint16Array( 10 ) );\n* // returns true\n*\n* @example\n* var bool = isUint16Array( [] );\n* // returns false\n*/\nfunction isUint16Array( value ) {\n\treturn (\n\t\t( hasUint16Array && value instanceof Uint16Array ) || // eslint-disable-line stdlib/require-globals\n\t\tnativeClass( value ) === '[object Uint16Array]'\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isUint16Array;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Maximum unsigned 16-bit integer.\n*\n* @module @stdlib/constants/uint16/max\n* @type {integer32}\n*\n* @example\n* import UINT16_MAX from '@stdlib/constants/uint16/max';\n* // returns 65535\n*/\n\n\n// MAIN //\n\n/**\n* Maximum unsigned 16-bit integer.\n*\n* ## Notes\n*\n* The number has the value\n*\n* ```tex\n* 2^{16} - 1\n* ```\n*\n* which corresponds to the bit sequence\n*\n* ```binarystring\n* 1111111111111111\n* ```\n*\n* @constant\n* @type {integer32}\n* @default 65535\n*/\nvar UINT16_MAX = 65535|0; // asm type annotation\n\n\n// EXPORTS //\n\nexport default UINT16_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\nvar main = ( typeof Uint16Array === 'function' ) ? Uint16Array : null; // eslint-disable-line stdlib/require-globals\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// MAIN //\n\nvar ctor = ( typeof Uint16Array === 'function' ) ? Uint16Array : void 0; // eslint-disable-line stdlib/require-globals\n\n\n// EXPORTS //\n\nexport default ctor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Typed array constructor which returns a typed array representing an array of 16-bit unsigned integers in the platform byte order.\n*\n* @module @stdlib/array/uint16\n*\n* @example\n* import ctor from '@stdlib/array/uint16';\n*\n* var arr = new ctor( 10 );\n* // returns \n*/\n\n// MODULES //\n\nimport hasUint16ArraySupport from '@stdlib/assert/has-uint16array-support';\nimport builtin from './main.js';\nimport polyfill from './polyfill.js';\n\n\n// MAIN //\n\nvar ctor;\nif ( hasUint16ArraySupport() ) {\n\tctor = builtin;\n} else {\n\tctor = polyfill;\n}\n\n\n// EXPORTS //\n\nexport default ctor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isUint16Array from './../../is-uint16array';\nimport UINT16_MAX from '@stdlib/constants/uint16/max';\nimport GlobalUint16Array from './uint16array.js';\n\n\n// MAIN //\n\n/**\n* Tests for native `Uint16Array` support.\n*\n* @returns {boolean} boolean indicating if an environment has `Uint16Array` support\n*\n* @example\n* var bool = hasUint16ArraySupport();\n* // returns \n*/\nfunction hasUint16ArraySupport() {\n\tvar bool;\n\tvar arr;\n\n\tif ( typeof GlobalUint16Array !== 'function' ) {\n\t\treturn false;\n\t}\n\t// Test basic support...\n\ttry {\n\t\tarr = [ 1, 3.14, -3.14, UINT16_MAX+1, UINT16_MAX+2 ];\n\t\tarr = new GlobalUint16Array( arr );\n\t\tbool = (\n\t\t\tisUint16Array( arr ) &&\n\t\t\tarr[ 0 ] === 1 &&\n\t\t\tarr[ 1 ] === 3 && // truncation\n\t\t\tarr[ 2 ] === UINT16_MAX-2 && // truncation and wrap around\n\t\t\tarr[ 3 ] === 0 && // wrap around\n\t\t\tarr[ 4 ] === 1 // wrap around\n\t\t);\n\t} catch ( err ) { // eslint-disable-line no-unused-vars\n\t\tbool = false;\n\t}\n\treturn bool;\n}\n\n\n// EXPORTS //\n\nexport default hasUint16ArraySupport;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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: write polyfill\n\n// MAIN //\n\n/**\n* Typed array which represents an array of 16-bit unsigned integers in the platform byte order.\n*\n* @throws {Error} not implemented\n*/\nfunction polyfill() {\n\tthrow new Error( 'not implemented' );\n}\n\n\n// EXPORTS //\n\nexport default polyfill;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport ctors from './ctors.js';\n\n\n// VARIABLES //\n\nvar bool;\n\n\n// FUNCTIONS //\n\n/**\n* Returns a boolean indicating if an environment is little endian.\n*\n* @private\n* @returns {boolean} boolean indicating if an environment is little endian\n*\n* @example\n* var bool = isLittleEndian();\n* // returns \n*/\nfunction isLittleEndian() {\n\tvar uint16view;\n\tvar uint8view;\n\n\tuint16view = new ctors[ 'uint16' ]( 1 );\n\n\t/*\n\t* Set the uint16 view to a value having distinguishable lower and higher order words.\n\t*\n\t* 4660 => 0x1234 => 0x12 0x34 => '00010010 00110100' => (0x12,0x34) == (18,52)\n\t*/\n\tuint16view[ 0 ] = 0x1234;\n\n\t// Create a uint8 view on top of the uint16 buffer:\n\tuint8view = new ctors[ 'uint8' ]( uint16view.buffer );\n\n\t// If little endian, the least significant byte will be first...\n\treturn ( uint8view[ 0 ] === 0x34 );\n}\n\n\n// MAIN //\n\nbool = isLittleEndian();\n\n\n// EXPORTS //\n\nexport default bool;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport Uint8Array from '@stdlib/array/uint8';\nimport Uint16Array from '@stdlib/array/uint16';\n\n\n// MAIN //\n\nvar ctors = {\n\t'uint16': Uint16Array,\n\t'uint8': Uint8Array\n};\n\n\n// EXPORTS //\n\nexport default ctors;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isLittleEndian from '@stdlib/assert/is-little-endian';\n\n\n// MAIN //\n\nvar HIGH;\nif ( isLittleEndian === true ) {\n\tHIGH = 1; // second index\n} else {\n\tHIGH = 0; // first index\n}\n\n\n// EXPORTS //\n\nexport default HIGH;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport Uint32Array from '@stdlib/array/uint32';\nimport Float64Array from '@stdlib/array/float64';\nimport HIGH from './high.js';\n\n\n// VARIABLES //\n\nvar FLOAT64_VIEW = new Float64Array( 1 );\nvar UINT32_VIEW = new Uint32Array( FLOAT64_VIEW.buffer );\n\n\n// MAIN //\n\n/**\n* Returns an unsigned 32-bit integer corresponding to the more significant 32 bits of a double-precision floating-point number.\n*\n* ## Notes\n*\n* ```text\n* float64 (64 bits)\n* f := fraction (significand/mantissa) (52 bits)\n* e := exponent (11 bits)\n* s := sign bit (1 bit)\n*\n* |-------- -------- -------- -------- -------- -------- -------- --------|\n* | Float64 |\n* |-------- -------- -------- -------- -------- -------- -------- --------|\n* | Uint32 | Uint32 |\n* |-------- -------- -------- -------- -------- -------- -------- --------|\n* ```\n*\n* If little endian (more significant bits last):\n*\n* ```text\n* <-- lower higher -->\n* | f7 f6 f5 f4 f3 f2 e2 | f1 |s| e1 |\n* ```\n*\n* If big endian (more significant bits first):\n*\n* ```text\n* <-- higher lower -->\n* |s| e1 e2 | f1 f2 f3 f4 f5 f6 f7 |\n* ```\n*\n* In which Uint32 can we find the higher order bits? If little endian, the second; if big endian, the first.\n*\n* ## References\n*\n* - [Open Group][1]\n*\n* [1]: http://pubs.opengroup.org/onlinepubs/9629399/chap14.htm\n*\n* @param {number} x - input value\n* @returns {uinteger32} higher order word\n*\n* @example\n* var w = getHighWord( 3.14e201 ); // => 01101001110001001000001011000011\n* // returns 1774486211\n*/\nfunction getHighWord( x ) {\n\tFLOAT64_VIEW[ 0 ] = x;\n\treturn UINT32_VIEW[ HIGH ];\n}\n\n\n// EXPORTS //\n\nexport default getHighWord;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isLittleEndian from '@stdlib/assert/is-little-endian';\n\n\n// MAIN //\n\nvar HIGH;\nif ( isLittleEndian === true ) {\n\tHIGH = 1; // second index\n} else {\n\tHIGH = 0; // first index\n}\n\n\n// EXPORTS //\n\nexport default HIGH;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport Uint32Array from '@stdlib/array/uint32';\nimport Float64Array from '@stdlib/array/float64';\nimport HIGH from './high.js';\n\n\n// VARIABLES //\n\nvar FLOAT64_VIEW = new Float64Array( 1 );\nvar UINT32_VIEW = new Uint32Array( FLOAT64_VIEW.buffer );\n\n\n// MAIN //\n\n/**\n* Sets the more significant 32 bits of a double-precision floating-point number.\n*\n* ## Notes\n*\n* ```text\n* float64 (64 bits)\n* f := fraction (significand/mantissa) (52 bits)\n* e := exponent (11 bits)\n* s := sign bit (1 bit)\n*\n* |-------- -------- -------- -------- -------- -------- -------- --------|\n* | Float64 |\n* |-------- -------- -------- -------- -------- -------- -------- --------|\n* | Uint32 | Uint32 |\n* |-------- -------- -------- -------- -------- -------- -------- --------|\n* ```\n*\n* If little endian (more significant bits last):\n*\n* ```text\n* <-- lower higher -->\n* | f7 f6 f5 f4 f3 f2 e2 | f1 |s| e1 |\n* ```\n*\n* If big endian (more significant bits first):\n*\n* ```text\n* <-- higher lower -->\n* |s| e1 e2 | f1 f2 f3 f4 f5 f6 f7 |\n* ```\n*\n* In which Uint32 can we find the higher order bits? If little endian, the second; if big endian, the first.\n*\n* ## References\n*\n* - [Open Group][1]\n*\n* [1]: http://pubs.opengroup.org/onlinepubs/9629399/chap14.htm\n*\n* @param {number} x - double\n* @param {uinteger32} high - unsigned 32-bit integer to replace the higher order word of `x`\n* @returns {number} double having the same lower order word as `x`\n*\n* @example\n* var high = 5 >>> 0; // => 0 00000000000 00000000000000000101\n*\n* var y = setHighWord( 3.14e201, high ); // => 0 00000000000 0000000000000000010110010011110010110101100010000010\n* // returns 1.18350528745e-313\n*\n* @example\n* import PINF from '@stdlib/constants/float64/pinf'; // => 0 11111111111 00000000000000000000 00000000000000000000000000000000\n*\n* var high = 1072693248 >>> 0; // => 0 01111111111 00000000000000000000\n*\n* // Set the higher order bits of `+infinity` to return `1`:\n* var y = setHighWord( PINF, high ); // => 0 01111111111 0000000000000000000000000000000000000000000000000000\n* // returns 1.0\n*/\nfunction setHighWord( x, high ) {\n\tFLOAT64_VIEW[ 0 ] = x;\n\tUINT32_VIEW[ HIGH ] = ( high >>> 0 ); // identity bit shift to ensure integer\n\treturn FLOAT64_VIEW[ 0 ];\n}\n\n\n// EXPORTS //\n\nexport default setHighWord;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* The bias of a double-precision floating-point number's exponent.\n*\n* @module @stdlib/constants/float64/exponent-bias\n* @type {integer32}\n*\n* @example\n* import FLOAT64_EXPONENT_BIAS from '@stdlib/constants/float64/exponent-bias';\n* // returns 1023\n*/\n\n\n// MAIN //\n\n/**\n* Bias of a double-precision floating-point number's exponent.\n*\n* ## Notes\n*\n* The bias can be computed via\n*\n* ```tex\n* \\mathrm{bias} = 2^{k-1} - 1\n* ```\n*\n* where \\\\(k\\\\) is the number of bits in the exponent; here, \\\\(k = 11\\\\).\n*\n* @constant\n* @type {integer32}\n* @default 1023\n* @see [IEEE 754]{@link https://en.wikipedia.org/wiki/IEEE_754-1985}\n*/\nvar FLOAT64_EXPONENT_BIAS = 1023|0; // asm type annotation\n\n\n// EXPORTS //\n\nexport default FLOAT64_EXPONENT_BIAS;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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'use strict';\n\n/**\n* Natural logarithm of `2`.\n*\n* @module @stdlib/constants/float64/ln-two\n* @type {number}\n*\n* @example\n* import LN2 from '@stdlib/constants/float64/ln-two';\n* // returns 0.6931471805599453\n*/\n\n\n// MAIN //\n\n/**\n* Natural logarithm of `2`.\n*\n* ```tex\n* \\ln 2\n* ```\n*\n* @constant\n* @type {number}\n* @default 0.6931471805599453\n*/\nvar LN2 = 6.93147180559945309417232121458176568075500134360255254120680009493393621969694715605863326996418687542001481021e-01; // eslint-disable-line max-len\n\n\n// EXPORTS //\n\nexport default LN2;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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'use strict';\n\n/**\n* One half times the mathematical constant `π`.\n*\n* @module @stdlib/constants/float64/half-pi\n* @type {number}\n*\n* @example\n* import HALF_PI from '@stdlib/constants/float64/half-pi';\n* // returns 1.5707963267948966\n*/\n\n\n// MAIN //\n\n/**\n* One half times the mathematical constant `π`.\n*\n* @constant\n* @type {number}\n* @default 1.5707963267948966\n* @see [Wikipedia]{@link https://en.wikipedia.org/wiki/Pi}\n*/\nvar HALF_PI = 1.5707963267948966;\n\n\n// EXPORTS //\n\nexport default HALF_PI;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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'use strict';\n\n/**\n* One half times the mathematical constant `π`.\n*\n* @module @stdlib/constants/float32/half-pi\n* @type {number}\n*\n* @example\n* import FLOAT32_HALF_PI from '@stdlib/constants/float32/half-pi';\n* // returns 1.5707963705062866\n*/\n\n// MODULES //\n\nimport float64ToFloat32 from '@stdlib/number/float64/base/to-float32';\n\n\n// MAIN //\n\n/**\n* One half times the mathematical constant `π`.\n*\n* @constant\n* @type {number}\n* @default 1.5707963705062866\n* @see [Wikipedia]{@link https://en.wikipedia.org/wiki/Pi}\n*/\nvar FLOAT32_HALF_PI = float64ToFloat32( 1.5707963267948966 );\n\n\n// EXPORTS //\n\nexport default FLOAT32_HALF_PI;\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* One fourth times the mathematical constant `π`.\n*\n* @module @stdlib/constants/float32/fourth-pi\n* @type {number}\n*\n* @example\n* import FLOAT32_FOURTH_PI from '@stdlib/constants/float32/fourth-pi';\n* // returns 7.853981852531433e-1\n*/\n\n// MODULES //\n\nimport float64ToFloat32 from '@stdlib/number/float64/base/to-float32';\n\n\n// MAIN //\n\n/**\n* One fourth times the mathematical constant `π`.\n*\n* @constant\n* @type {number}\n* @default 7.853981852531433e-1\n* @see [Wikipedia]{@link https://en.wikipedia.org/wiki/Pi}\n*/\nvar FLOAT32_FOURTH_PI = float64ToFloat32( 7.85398163397448309616e-1 );\n\n\n// EXPORTS //\n\nexport default FLOAT32_FOURTH_PI;\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) 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* High word mask for the sign bit of a double-precision floating-point number.\n*\n* @module @stdlib/constants/float64/high-word-sign-mask\n* @type {uinteger32}\n*\n* @example\n* import FLOAT64_HIGH_WORD_SIGN_MASK from '@stdlib/constants/float64/high-word-sign-mask';\n* // returns 2147483648\n*/\n\n\n// MAIN //\n\n/**\n* High word mask for the sign bit of a double-precision floating-point number.\n*\n* ## Notes\n*\n* The high word mask for the sign bit of a double-precision floating-point number is an unsigned 32-bit integer with the value \\\\( 2147483648 \\\\), which corresponds to the bit sequence\n*\n* ```binarystring\n* 1 00000000000 00000000000000000000\n* ```\n*\n* @constant\n* @type {uinteger32}\n* @default 0x80000000\n* @see [IEEE 754]{@link https://en.wikipedia.org/wiki/IEEE_754-1985}\n*/\nvar FLOAT64_HIGH_WORD_SIGN_MASK = 0x80000000>>>0; // eslint-disable-line id-length\n\n\n// EXPORTS //\n\nexport default FLOAT64_HIGH_WORD_SIGN_MASK;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isLittleEndian from '@stdlib/assert/is-little-endian';\n\n\n// MAIN //\n\nvar indices;\nvar HIGH;\nvar LOW;\n\nif ( isLittleEndian === true ) {\n\tHIGH = 1; // second index\n\tLOW = 0; // first index\n} else {\n\tHIGH = 0; // first index\n\tLOW = 1; // second index\n}\nindices = {\n\t'HIGH': HIGH,\n\t'LOW': LOW\n};\n\n\n// EXPORTS //\n\nexport default indices;\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* High word mask for excluding the sign bit of a double-precision floating-point number.\n*\n* @module @stdlib/constants/float64/high-word-abs-mask\n* @type {uinteger32}\n*\n* @example\n* import FLOAT64_HIGH_WORD_ABS_MASK from '@stdlib/constants/float64/high-word-abs-mask';\n* // returns 2147483647\n*/\n\n\n// MAIN //\n\n/**\n* High word mask for excluding the sign bit of a double-precision floating-point number.\n*\n* ## Notes\n*\n* The high word mask for excluding the sign bit of a double-precision floating-point number is an unsigned 32-bit integer with the value \\\\( 2147483647 \\\\), which corresponds to the bit sequence\n*\n* ```binarystring\n* 0 11111111111 11111111111111111111\n* ```\n*\n* @constant\n* @type {uinteger32}\n* @default 0x7fffffff\n* @see [IEEE 754]{@link https://en.wikipedia.org/wiki/IEEE_754-1985}\n*/\nvar FLOAT64_HIGH_WORD_ABS_MASK = 0x7fffffff>>>0; // eslint-disable-line id-length\n\n\n// EXPORTS //\n\nexport default FLOAT64_HIGH_WORD_ABS_MASK;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isLittleEndian from '@stdlib/assert/is-little-endian';\n\n\n// MAIN //\n\nvar indices;\nvar HIGH;\nvar LOW;\n\nif ( isLittleEndian === true ) {\n\tHIGH = 1; // second index\n\tLOW = 0; // first index\n} else {\n\tHIGH = 0; // first index\n\tLOW = 1; // second index\n}\nindices = {\n\t'HIGH': HIGH,\n\t'LOW': LOW\n};\n\n\n// EXPORTS //\n\nexport default indices;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport Uint32Array from '@stdlib/array/uint32';\nimport Float64Array from '@stdlib/array/float64';\nimport indices from './indices.js';\n\n\n// VARIABLES //\n\nvar FLOAT64_VIEW = new Float64Array( 1 );\nvar UINT32_VIEW = new Uint32Array( FLOAT64_VIEW.buffer );\n\nvar HIGH = indices.HIGH;\nvar LOW = indices.LOW;\n\n\n// MAIN //\n\n/**\n* Splits a double-precision floating-point number into a higher order word (unsigned 32-bit integer) and a lower order word (unsigned 32-bit integer).\n*\n* ## Notes\n*\n* ```text\n* float64 (64 bits)\n* f := fraction (significand/mantissa) (52 bits)\n* e := exponent (11 bits)\n* s := sign bit (1 bit)\n*\n* |-------- -------- -------- -------- -------- -------- -------- --------|\n* | Float64 |\n* |-------- -------- -------- -------- -------- -------- -------- --------|\n* | Uint32 | Uint32 |\n* |-------- -------- -------- -------- -------- -------- -------- --------|\n* ```\n*\n* If little endian (more significant bits last):\n*\n* ```text\n* <-- lower higher -->\n* | f7 f6 f5 f4 f3 f2 e2 | f1 |s| e1 |\n* ```\n*\n* If big endian (more significant bits first):\n*\n* ```text\n* <-- higher lower -->\n* |s| e1 e2 | f1 f2 f3 f4 f5 f6 f7 |\n* ```\n*\n* In which Uint32 can we find the higher order bits? If little endian, the second; if big endian, the first.\n*\n* ## References\n*\n* - [Open Group][1]\n*\n* [1]: http://pubs.opengroup.org/onlinepubs/9629399/chap14.htm\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* import Uint32Array from '@stdlib/array/uint32';\n*\n* var out = new Uint32Array( 2 );\n*\n* var w = toWords( 3.14e201, out, 1, 0 );\n* // returns [ 1774486211, 2479577218 ]\n*\n* var bool = ( w === out );\n* // returns true\n*/\nfunction toWords( x, out, stride, offset ) {\n\tFLOAT64_VIEW[ 0 ] = x;\n\tout[ offset ] = UINT32_VIEW[ HIGH ];\n\tout[ offset + stride ] = UINT32_VIEW[ LOW ];\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default toWords;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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 higher order word (unsigned 32-bit integer) and a lower order word (unsigned 32-bit integer).\n*\n* @param {number} x - input value\n* @returns {Array} output array\n*\n* @example\n* var w = toWords( 3.14e201 );\n* // returns [ 1774486211, 2479577218 ]\n*/\nfunction toWords( x ) {\n\treturn fcn( x, [ 0>>>0, 0>>>0 ], 1, 0 );\n}\n\n\n// EXPORTS //\n\nexport default toWords;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 higher order word (unsigned 32-bit integer) and a lower order word (unsigned 32-bit integer).\n*\n* @module @stdlib/number/float64/base/to-words\n*\n* @example\n* import toWords from '@stdlib/number/float64/base/to-words';\n*\n* var w = toWords( 3.14e201 );\n* // returns [ 1774486211, 2479577218 ]\n*\n* @example\n* import Uint32Array from '@stdlib/array/uint32';\n* import toWords from '@stdlib/number/float64/base/to-words';\n*\n* var out = new Uint32Array( 2 );\n*\n* var w = toWords.assign( 3.14e201, out, 1, 0 );\n* // returns [ 1774486211, 2479577218 ]\n*\n* var bool = ( w === 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 Uint32Array from '@stdlib/array/uint32';\nimport Float64Array from '@stdlib/array/float64';\nimport indices from './indices.js';\n\n\n// VARIABLES //\n\nvar FLOAT64_VIEW = new Float64Array( 1 );\nvar UINT32_VIEW = new Uint32Array( FLOAT64_VIEW.buffer );\n\nvar HIGH = indices.HIGH;\nvar LOW = indices.LOW;\n\n\n// MAIN //\n\n/**\n* Creates a double-precision floating-point number from a higher order word (unsigned 32-bit integer) and a lower order word (unsigned 32-bit integer).\n*\n* ## Notes\n*\n* ```text\n* float64 (64 bits)\n* f := fraction (significand/mantissa) (52 bits)\n* e := exponent (11 bits)\n* s := sign bit (1 bit)\n*\n* |-------- -------- -------- -------- -------- -------- -------- --------|\n* | Float64 |\n* |-------- -------- -------- -------- -------- -------- -------- --------|\n* | Uint32 | Uint32 |\n* |-------- -------- -------- -------- -------- -------- -------- --------|\n* ```\n*\n* If little endian (more significant bits last):\n*\n* ```text\n* <-- lower higher -->\n* | f7 f6 f5 f4 f3 f2 e2 | f1 |s| e1 |\n* ```\n*\n* If big endian (more significant bits first):\n*\n* ```text\n* <-- higher lower -->\n* |s| e1 e2 | f1 f2 f3 f4 f5 f6 f7 |\n* ```\n*\n* In which Uint32 should we place the higher order bits? If little endian, the second; if big endian, the first.\n*\n* ## References\n*\n* - [Open Group][1]\n*\n* [1]: http://pubs.opengroup.org/onlinepubs/9629399/chap14.htm\n*\n* @param {uinteger32} high - higher order word (unsigned 32-bit integer)\n* @param {uinteger32} low - lower order word (unsigned 32-bit integer)\n* @returns {number} floating-point number\n*\n* @example\n* var v = fromWords( 1774486211, 2479577218 );\n* // returns 3.14e201\n*\n* @example\n* var v = fromWords( 3221823995, 1413754136 );\n* // returns -3.141592653589793\n*\n* @example\n* var v = fromWords( 0, 0 );\n* // returns 0.0\n*\n* @example\n* var v = fromWords( 2147483648, 0 );\n* // returns -0.0\n*\n* @example\n* var v = fromWords( 2146959360, 0 );\n* // returns NaN\n*\n* @example\n* var v = fromWords( 2146435072, 0 );\n* // returns Infinity\n*\n* @example\n* var v = fromWords( 4293918720, 0 );\n* // returns -Infinity\n*/\nfunction fromWords( high, low ) {\n\tUINT32_VIEW[ HIGH ] = high;\n\tUINT32_VIEW[ LOW ] = low;\n\treturn FLOAT64_VIEW[ 0 ];\n}\n\n\n// EXPORTS //\n\nexport default fromWords;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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'use strict';\n\n/**\n* The mathematical constant `π`.\n*\n* @module @stdlib/constants/float64/pi\n* @type {number}\n*\n* @example\n* import PI from '@stdlib/constants/float64/pi';\n* // returns 3.141592653589793\n*/\n\n\n// MAIN //\n\n/**\n* The mathematical constant `π`.\n*\n* @constant\n* @type {number}\n* @default 3.141592653589793\n* @see [Wikipedia]{@link https://en.wikipedia.org/wiki/Pi}\n*/\nvar PI = 3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679; // eslint-disable-line max-len\n\n\n// EXPORTS //\n\nexport default PI;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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 getHighWord from './../../../../float64/base/get-high-word';\n\n\n// MAIN //\n\n/**\n* Returns a boolean indicating if the sign bit is on (true) or off (false).\n*\n* @param {number} x - input value\n* @returns {boolean} boolean indicating if sign bit is on or off\n*\n* @example\n* var bool = signbit( 4.0 );\n* // returns false\n*\n* @example\n* var bool = signbit( -9.14e-307 );\n* // returns true\n*\n* @example\n* var bool = signbit( 0.0 );\n* // returns false\n*\n* @example\n* var bool = signbit( -0.0 );\n* // returns true\n*/\nfunction signbit( x ) {\n\t// Extract from the input value a higher order word (unsigned 32-bit integer) containing the exponent and sign:\n\tvar high = getHighWord( x );\n\n\t// Shift off all bits which are not the sign bit and check if the sign bit is on:\n\treturn ( high >>> 31 ) ? true : false; // eslint-disable-line no-unneeded-ternary\n}\n\n\n// EXPORTS //\n\nexport default signbit;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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/**\n* High word mask for the exponent of a double-precision floating-point number.\n*\n* @module @stdlib/constants/float64/high-word-exponent-mask\n* @type {uinteger32}\n*\n* @example\n* import FLOAT64_HIGH_WORD_EXPONENT_MASK from '@stdlib/constants/float64/high-word-exponent-mask';\n* // returns 2146435072\n*/\n\n\n// MAIN //\n\n/**\n* High word mask for the exponent of a double-precision floating-point number.\n*\n* ## Notes\n*\n* The high word mask for the exponent of a double-precision floating-point number is an unsigned 32-bit integer with the value \\\\( 2146435072 \\\\), which corresponds to the bit sequence\n*\n* ```binarystring\n* 0 11111111111 00000000000000000000\n* ```\n*\n* @constant\n* @type {uinteger32}\n* @default 0x7ff00000\n* @see [IEEE 754]{@link https://en.wikipedia.org/wiki/IEEE_754-1985}\n*/\nvar FLOAT64_HIGH_WORD_EXPONENT_MASK = 0x7ff00000;\n\n\n// EXPORTS //\n\nexport default FLOAT64_HIGH_WORD_EXPONENT_MASK;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* High word mask for the significand of a double-precision floating-point number.\n*\n* @module @stdlib/constants/float64/high-word-significand-mask\n* @type {uinteger32}\n*\n* @example\n* import FLOAT64_HIGH_WORD_SIGNIFICAND_MASK from '@stdlib/constants/float64/high-word-significand-mask';\n* // returns 1048575\n*/\n\n\n// MAIN //\n\n/**\n* High word mask for the significand of a double-precision floating-point number.\n*\n* ## Notes\n*\n* The high word mask for the significand of a double-precision floating-point number is an unsigned 32-bit integer with the value \\\\( 1048575 \\\\), which corresponds to the bit sequence\n*\n* ```binarystring\n* 0 00000000000 11111111111111111111\n* ```\n*\n* @constant\n* @type {uinteger32}\n* @default 0x000fffff\n* @see [IEEE 754]{@link https://en.wikipedia.org/wiki/IEEE_754-1985}\n*/\nvar FLOAT64_HIGH_WORD_SIGNIFICAND_MASK = 0x000fffff;\n\n\n// EXPORTS //\n\nexport default FLOAT64_HIGH_WORD_SIGNIFICAND_MASK;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isLittleEndian from '@stdlib/assert/is-little-endian';\n\n\n// MAIN //\n\nvar LOW;\nif ( isLittleEndian === true ) {\n\tLOW = 0; // first index\n} else {\n\tLOW = 1; // second index\n}\n\n\n// EXPORTS //\n\nexport default LOW;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport Uint32Array from '@stdlib/array/uint32';\nimport Float64Array from '@stdlib/array/float64';\nimport LOW from './low.js';\n\n\n// VARIABLES //\n\nvar FLOAT64_VIEW = new Float64Array( 1 );\nvar UINT32_VIEW = new Uint32Array( FLOAT64_VIEW.buffer );\n\n\n// MAIN //\n\n/**\n* Returns a 32-bit unsigned integer corresponding to the less significant 32 bits of a double-precision floating-point number.\n*\n* ## Notes\n*\n* ```text\n* float64 (64 bits)\n* f := fraction (significand/mantissa) (52 bits)\n* e := exponent (11 bits)\n* s := sign bit (1 bit)\n*\n* |-------- -------- -------- -------- -------- -------- -------- --------|\n* | Float64 |\n* |-------- -------- -------- -------- -------- -------- -------- --------|\n* | Uint32 | Uint32 |\n* |-------- -------- -------- -------- -------- -------- -------- --------|\n* ```\n*\n* If little endian (more significant bits last):\n*\n* ```text\n* <-- lower higher -->\n* | f7 f6 f5 f4 f3 f2 e2 | f1 |s| e1 |\n* ```\n*\n* If big endian (more significant bits first):\n*\n* ```text\n* <-- higher lower -->\n* |s| e1 e2 | f1 f2 f3 f4 f5 f6 f7 |\n* ```\n*\n* In which Uint32 can we find the lower order bits? If little endian, the first; if big endian, the second.\n*\n* ## References\n*\n* - [Open Group][1]\n*\n* [1]: http://pubs.opengroup.org/onlinepubs/9629399/chap14.htm\n*\n* @param {number} x - input value\n* @returns {uinteger32} lower order word\n*\n* @example\n* var w = getLowWord( 3.14e201 ); // => 10010011110010110101100010000010\n* // returns 2479577218\n*/\nfunction getLowWord( x ) {\n\tFLOAT64_VIEW[ 0 ] = x;\n\treturn UINT32_VIEW[ LOW ];\n}\n\n\n// EXPORTS //\n\nexport default getLowWord;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* The maximum biased base 2 exponent for a double-precision floating-point number.\n*\n* @module @stdlib/constants/float64/max-base2-exponent\n* @type {integer32}\n*\n* @example\n* import FLOAT64_MAX_BASE2_EXPONENT from '@stdlib/constants/float64/max-base2-exponent';\n* // returns 1023\n*/\n\n\n// MAIN //\n\n/**\n* The maximum biased base 2 exponent for a double-precision floating-point number.\n*\n* ```text\n* 11111111110 => 2046 - BIAS = 1023\n* ```\n*\n* where `BIAS = 1023`.\n*\n* @constant\n* @type {integer32}\n* @default 1023\n* @see [IEEE 754]{@link https://en.wikipedia.org/wiki/IEEE_754-1985}\n*/\nvar FLOAT64_MAX_BASE2_EXPONENT = 1023|0; // asm type annotation\n\n\n// EXPORTS //\n\nexport default FLOAT64_MAX_BASE2_EXPONENT;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* The maximum biased base 2 exponent for a subnormal double-precision floating-point number.\n*\n* @module @stdlib/constants/float64/max-base2-exponent-subnormal\n* @type {integer32}\n*\n* @example\n* import FLOAT64_MAX_BASE2_EXPONENT_SUBNORMAL from '@stdlib/constants/float64/max-base2-exponent-subnormal';\n* // returns -1023\n*/\n\n\n// MAIN //\n\n/**\n* The maximum biased base 2 exponent for a subnormal double-precision floating-point number.\n*\n* ```text\n* 00000000000 => 0 - BIAS = -1023\n* ```\n*\n* where `BIAS = 1023`.\n*\n* @constant\n* @type {integer32}\n* @default -1023\n* @see [IEEE 754]{@link https://en.wikipedia.org/wiki/IEEE_754-1985}\n*/\nvar FLOAT64_MAX_BASE2_EXPONENT_SUBNORMAL = -1023|0; // asm type annotation\n\n\n// EXPORTS //\n\nexport default FLOAT64_MAX_BASE2_EXPONENT_SUBNORMAL;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* The minimum biased base 2 exponent for a subnormal double-precision floating-point number.\n*\n* @module @stdlib/constants/float64/min-base2-exponent-subnormal\n* @type {integer32}\n*\n* @example\n* import FLOAT64_MIN_BASE2_EXPONENT_SUBNORMAL from '@stdlib/constants/float64/min-base2-exponent-subnormal';\n* // returns -1074\n*/\n\n\n// MAIN //\n\n/**\n* The minimum biased base 2 exponent for a subnormal double-precision floating-point number.\n*\n* ```text\n* -(BIAS+(52-1)) = -(1023+51) = -1074\n* ```\n*\n* where `BIAS = 1023` and `52` is the number of digits in the significand.\n*\n* @constant\n* @type {integer32}\n* @default -1074\n* @see [IEEE 754]{@link https://en.wikipedia.org/wiki/IEEE_754-1985}\n*/\nvar FLOAT64_MIN_BASE2_EXPONENT_SUBNORMAL = -1074|0; // asm type annotation\n\n\n// EXPORTS //\n\nexport default FLOAT64_MIN_BASE2_EXPONENT_SUBNORMAL;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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) 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 FLOAT64_SMALLEST_NORMAL from '@stdlib/constants/float64/smallest-normal';\nimport isInfinite from '@stdlib/math/base/assert/is-infinite';\nimport isnan from '@stdlib/math/base/assert/is-nan';\nimport abs from '@stdlib/math/base/special/abs';\n\n\n// VARIABLES //\n\n// (1<<52)\nvar SCALAR = 4503599627370496;\n\n\n// MAIN //\n\n/**\n* Returns a normal number `y` and exponent `exp` satisfying \\\\(x = y \\cdot 2^\\mathrm{exp}\\\\) and assigns results to a provided output array.\n*\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* import pow from '@stdlib/math/base/special/pow';\n*\n* var out = normalize( 3.14e-319, [ 0.0, 0 ], 1, 0 );\n* // returns [ 1.4141234400356668e-303, -52 ]\n*\n* var y = out[ 0 ];\n* var exp = out[ 1 ];\n*\n* var bool = ( y*pow(2.0,exp) === 3.14e-319 );\n* // returns true\n*\n* @example\n* var out = normalize( 0.0, [ 0.0, 0 ], 1, 0 );\n* // returns [ 0.0, 0 ];\n*\n* @example\n* import PINF from '@stdlib/constants/float64/pinf';\n*\n* var out = normalize( PINF, [ 0.0, 0 ], 1, 0 );\n* // returns [ Infinity, 0 ]\n*\n* @example\n* import NINF from '@stdlib/constants/float64/ninf';\n*\n* var out = normalize( NINF, [ 0.0, 0 ], 1, 0 );\n* // returns [ -Infinity, 0 ]\n*\n* @example\n* var out = normalize( NaN, [ 0.0, 0 ], 1, 0 );\n* // returns [ NaN, 0 ]\n*/\nfunction normalize( x, out, stride, offset ) {\n\tif ( isnan( x ) || isInfinite( x ) ) {\n\t\tout[ offset ] = x;\n\t\tout[ offset + stride ] = 0;\n\t\treturn out;\n\t}\n\tif ( x !== 0.0 && abs( x ) < FLOAT64_SMALLEST_NORMAL ) {\n\t\tout[ offset ] = x * SCALAR;\n\t\tout[ offset + stride ] = -52;\n\t\treturn out;\n\t}\n\tout[ offset ] = x;\n\tout[ offset + stride ] = 0;\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default normalize;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport getHighWord from './../../../../float64/base/get-high-word';\nimport EXP_MASK from '@stdlib/constants/float64/high-word-exponent-mask';\nimport BIAS from '@stdlib/constants/float64/exponent-bias';\n\n\n// MAIN //\n\n/**\n* Returns an integer corresponding to the unbiased exponent of a double-precision floating-point number.\n*\n* @param {number} x - input value\n* @returns {integer32} unbiased exponent\n*\n* @example\n* var exp = exponent( 3.14e-307 ); // => 2**-1019 ~ 1e-307\n* // returns -1019\n*\n* @example\n* var exp = exponent( -3.14 );\n* // returns 1\n*\n* @example\n* var exp = exponent( 0.0 );\n* // returns -1023\n*\n* @example\n* var exp = exponent( NaN );\n* // returns 1024\n*/\nfunction exponent( x ) {\n\t// Extract from the input value a higher order word (unsigned 32-bit integer) which contains the exponent:\n\tvar high = getHighWord( x );\n\n\t// Apply a mask to isolate only the exponent bits and then shift off all bits which are part of the fraction:\n\thigh = ( high & EXP_MASK ) >>> 20;\n\n\t// Remove the bias and return:\n\treturn (high - BIAS)|0; // asm type annotation\n}\n\n\n// EXPORTS //\n\nexport default exponent;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 a normal number `y` and exponent `exp` satisfying \\\\(x = y \\cdot 2^\\mathrm{exp}\\\\).\n*\n* @module @stdlib/number/float64/base/normalize\n*\n* @example\n* import normalize from '@stdlib/number/float64/base/normalize';\n* import pow from '@stdlib/math/base/special/pow';\n*\n* var out = normalize( 3.14e-319 );\n* // returns [ 1.4141234400356668e-303, -52 ]\n*\n* var y = out[ 0 ];\n* var exp = out[ 1 ];\n*\n* var bool = ( y*pow(2.0, exp) === 3.14e-319 );\n* // returns true\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import normalize from '@stdlib/number/float64/base/normalize';\n*\n* var out = new Float64Array( 2 );\n*\n* var v = normalize.assign( 3.14e-319, out, 1, 0 );\n* // returns [ 1.4141234400356668e-303, -52 ]\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// MODULES //\n\nimport fcn from './assign.js';\n\n\n// MAIN //\n\n/**\n* Returns a normal number `y` and exponent `exp` satisfying \\\\(x = y \\cdot 2^\\mathrm{exp}\\\\).\n*\n* @param {number} x - input value\n* @returns {NumberArray} output array\n*\n* @example\n* import pow from '@stdlib/math/base/special/pow';\n*\n* var out = normalize( 3.14e-319 );\n* // returns [ 1.4141234400356668e-303, -52 ]\n*\n* var y = out[ 0 ];\n* var exp = out[ 1 ];\n*\n* var bool = ( y*pow(2.0,exp) === 3.14e-319 );\n* // returns true\n*\n* @example\n* var out = normalize( 0.0 );\n* // returns [ 0.0, 0 ]\n*\n* @example\n* import PINF from '@stdlib/constants/float64/pinf';\n*\n* var out = normalize( PINF );\n* // returns [ Infinity, 0 ]\n*\n* @example\n* import NINF from '@stdlib/constants/float64/ninf';\n*\n* var out = normalize( NINF );\n* // returns [ -Infinity, 0 ]\n*\n* @example\n* var out = normalize( NaN );\n* // returns [ NaN, 0 ]\n*/\nfunction normalize( x ) {\n\treturn fcn( x, [ 0.0, 0 ], 1, 0 );\n}\n\n\n// EXPORTS //\n\nexport default normalize;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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) 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 filled from './../../../base/filled';\n\n\n// MAIN //\n\n/**\n* Returns a zero-filled \"generic\" array.\n*\n* @param {NonNegativeInteger} len - array length\n* @returns {Array} output array\n*\n* @example\n* var out = zeros( 3 );\n* // returns [ 0.0, 0.0, 0.0 ]\n*/\nfunction zeros( len ) {\n\treturn filled( 0.0, len );\n}\n\n\n// EXPORTS //\n\nexport default zeros;\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* Returns a filled \"generic\" array.\n*\n* @param {*} value - fill value\n* @param {NonNegativeInteger} len - array length\n* @returns {Array} filled array\n*\n* @example\n* var out = filled( 0.0, 3 );\n* // returns [ 0.0, 0.0, 0.0 ]\n*\n* @example\n* var out = filled( 'beep', 3 );\n* // returns [ 'beep', 'beep', 'beep' ]\n*/\nfunction filled( value, len ) {\n\tvar arr;\n\tvar i;\n\n\t// Manually push elements in order to ensure \"fast\" elements...\n\tarr = [];\n\tfor ( i = 0; i < len; i++ ) {\n\t\tarr.push( value );\n\t}\n\treturn arr;\n}\n\n\n// EXPORTS //\n\nexport default filled;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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'use strict';\n\n/**\n* Square root of the mathematical constant `π`.\n*\n* @module @stdlib/constants/float64/sqrt-pi\n* @type {number}\n*\n* @example\n* import SQRT_PI from '@stdlib/constants/float64/sqrt-pi';\n* // returns 1.7724538509055160\n*/\n\n\n// MAIN //\n\n/**\n* Square root of the mathematical constant `π`.\n*\n* @constant\n* @type {number}\n* @default 1.7724538509055160\n* @see [OEIS]{@link https://oeis.org/A002161}\n* @see [Wikipedia]{@link https://en.wikipedia.org/wiki/Pi}\n*/\nvar SQRT_PI = 1.772453850905516027298167483341145182797549456122387128213;\n\n\n// EXPORTS //\n\nexport default SQRT_PI;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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'use strict';\n\n// MODULES //\n\nimport isLittleEndian from '@stdlib/assert/is-little-endian';\n\n\n// MAIN //\n\nvar LOW;\nif ( isLittleEndian === true ) {\n\tLOW = 0; // first index\n} else {\n\tLOW = 1; // second index\n}\n\n\n// EXPORTS //\n\nexport default LOW;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport Uint32Array from '@stdlib/array/uint32';\nimport Float64Array from '@stdlib/array/float64';\nimport LOW from './low.js';\n\n\n// VARIABLES //\n\nvar FLOAT64_VIEW = new Float64Array( 1 );\nvar UINT32_VIEW = new Uint32Array( FLOAT64_VIEW.buffer );\n\n\n// MAIN //\n\n/**\n* Sets the less significant 32 bits of a double-precision floating-point number.\n*\n* ## Notes\n*\n* ```text\n* float64 (64 bits)\n* f := fraction (significand/mantissa) (52 bits)\n* e := exponent (11 bits)\n* s := sign bit (1 bit)\n*\n* |-------- -------- -------- -------- -------- -------- -------- --------|\n* | Float64 |\n* |-------- -------- -------- -------- -------- -------- -------- --------|\n* | Uint32 | Uint32 |\n* |-------- -------- -------- -------- -------- -------- -------- --------|\n* ```\n*\n* If little endian (more significant bits last):\n*\n* ```text\n* <-- lower higher -->\n* | f7 f6 f5 f4 f3 f2 e2 | f1 |s| e1 |\n* ```\n*\n* If big endian (more significant bits first):\n*\n* ```text\n* <-- higher lower -->\n* |s| e1 e2 | f1 f2 f3 f4 f5 f6 f7 |\n* ```\n*\n* In which Uint32 can we find the lower order bits? If little endian, the first; if big endian, the second.\n*\n* ## References\n*\n* - [Open Group][1]\n*\n* [1]: http://pubs.opengroup.org/onlinepubs/9629399/chap14.htm\n*\n* @param {number} x - double\n* @param {uinteger32} low - unsigned 32-bit integer to replace the lower order word of `x`\n* @returns {number} double having the same higher order word as `x`\n*\n* @example\n* var low = 5 >>> 0; // => 00000000000000000000000000000101\n*\n* var x = 3.14e201; // => 0 11010011100 01001000001011000011 10010011110010110101100010000010\n*\n* var y = setLowWord( x, low ); // => 0 11010011100 01001000001011000011 00000000000000000000000000000101\n* // returns 3.139998651394392e+201\n*\n* @example\n* import PINF from '@stdlib/constants/float64/pinf';\n* import NINF from '@stdlib/constants/float64/ninf';\n*\n* var low = 12345678;\n*\n* var y = setLowWord( PINF, low );\n* // returns NaN\n*\n* y = setLowWord( NINF, low );\n* // returns NaN\n*\n* y = setLowWord( NaN, low );\n* // returns NaN\n*/\nfunction setLowWord( x, low ) {\n\tFLOAT64_VIEW[ 0 ] = x;\n\tUINT32_VIEW[ LOW ] = ( low >>> 0 ); // identity bit shift to ensure integer\n\treturn FLOAT64_VIEW[ 0 ];\n}\n\n\n// EXPORTS //\n\nexport default setLowWord;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Converts an unsigned 32-bit integer to a signed 32-bit integer.\n*\n* @param {uinteger32} x - unsigned 32-bit integer\n* @returns {integer32} signed 32-bit integer\n*\n* @example\n* import float64ToUint32 from '@stdlib/number/float64/base/to-uint32';\n* var y = uint32ToInt32( float64ToUint32( 4294967295 ) );\n* // returns -1\n*\n* @example\n* import float64ToUint32 from '@stdlib/number/float64/base/to-uint32';\n* var y = uint32ToInt32( float64ToUint32( 3 ) );\n* // returns 3\n*/\nfunction uint32ToInt32( x ) {\n\t// NOTE: we could also use typed-arrays to achieve the same end.\n\treturn x|0; // asm type annotation\n}\n\n\n// EXPORTS //\n\nexport default uint32ToInt32;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Euler's number.\n*\n* @module @stdlib/constants/float64/e\n* @type {number}\n*\n* @example\n* import E from '@stdlib/constants/float64/e';\n* // returns 2.718281828459045\n*/\n\n\n// MAIN //\n\n/**\n* Euler's number.\n*\n* @constant\n* @type {number}\n* @default 2.718281828459045\n* @see [OEIS]{@link https://oeis.org/A001113}\n* @see [Wikipedia]{@link https://en.wikipedia.org/wiki/E_(mathematical_constant)}\n*/\nvar E = 2.718281828459045235360287471352662497757247093699959574966;\n\n\n// EXPORTS //\n\nexport default E;\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'use strict';\n\n/**\n* One half times the natural logarithm of 2.\n*\n* @module @stdlib/constants/float64/half-ln-two\n* @type {number}\n*\n* @example\n* import HALF_LN2 from '@stdlib/constants/float64/half-ln-two';\n* // returns 3.46573590279972654709e-01\n*/\n\n// MAIN //\n\n/**\n* One half times the natural logarithm of 2.\n*\n* ```tex\n* \\frac{\\ln 2}{2}\n* ```\n*\n* @constant\n* @type {number}\n* @default 3.46573590279972654709e-01\n*/\nvar HALF_LN2 = 3.46573590279972654709e-01; // 0x3FD62E42 0xFEFA39EF\n\n\n// EXPORTS //\n\nexport default HALF_LN2;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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'use strict';\n\n/**\n* Square root of the mathematical constant `π` times `2`.\n*\n* @module @stdlib/constants/float64/sqrt-two-pi\n* @type {number}\n*\n* @example\n* import SQRT_TWO_PI from '@stdlib/constants/float64/sqrt-two-pi';\n* // returns 2.5066282746310007\n*/\n\n\n// MAIN //\n\n/**\n* Square root of the mathematical constant `π` times `2`.\n*\n* @constant\n* @type {number}\n* @default 2.5066282746310007\n* @see [Wikipedia]{@link https://en.wikipedia.org/wiki/Pi}\n*/\nvar SQRT_TWO_PI = 2.506628274631000502415765284811045253e+00;\n\n\n// EXPORTS //\n\nexport default SQRT_TWO_PI;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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'use strict';\n\n/**\n* The Euler-Mascheroni constant.\n*\n* @module @stdlib/constants/float64/eulergamma\n* @type {number}\n*\n* @example\n* import GAMMA from '@stdlib/constants/float64/eulergamma';\n* // returns 0.5772156649015329\n*/\n\n\n// MAIN //\n\n/**\n* The Euler-Mascheroni constant.\n*\n* @constant\n* @type {number}\n* @default 0.5772156649015329\n* @see [OEIS]{@link http://oeis.org/A001620}\n* @see [Mathworld]{@link http://mathworld.wolfram.com/Euler-MascheroniConstant.html}\n*/\nvar GAMMA = 0.577215664901532860606512090082402431042;\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, 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) 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* Maximum safe nth factorial when stored in double-precision floating-point format.\n*\n* @module @stdlib/constants/float64/max-safe-nth-factorial\n* @type {integer}\n*\n* @example\n* import FLOAT64_MAX_SAFE_NTH_FACTORIAL from '@stdlib/constants/float64/max-safe-nth-factorial';\n* // returns 170\n*/\n\n\n// MAIN //\n\n/**\n* The maximum safe nth factorial when stored in double-precision floating-point format.\n*\n* @constant\n* @type {integer}\n* @default 170\n* @see [factorial]{@link https://en.wikipedia.org/wiki/Factorial}\n* @see [IEEE 754]{@link https://en.wikipedia.org/wiki/IEEE_754-1985}\n*/\nvar FLOAT64_MAX_SAFE_NTH_FACTORIAL = 170|0; // asm type annotation\n\n\n// EXPORTS //\n\nexport default FLOAT64_MAX_SAFE_NTH_FACTORIAL;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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'use strict';\n\n/**\n* Arbitrary constant `g` to be used in Lanczos approximation functions.\n*\n* @module @stdlib/constants/float64/gamma-lanczos-g\n* @type {number}\n*\n* @example\n* import FLOAT64_GAMMA_LANCZOS_G from '@stdlib/constants/float64/gamma-lanczos-g';\n* // returns 10.900511\n*/\n\n\n// MAIN //\n\n/**\n* Arbitrary constant `g` to be used in Lanczos approximation functions.\n*\n* @constant\n* @type {number}\n* @default 10.900511\n* @see [Lanczos Approximation]{@link https://en.wikipedia.org/wiki/Lanczos_approximation}\n*/\nvar FLOAT64_GAMMA_LANCZOS_G = 10.90051099999999983936049829935654997826;\n\n\n// EXPORTS //\n\nexport default FLOAT64_GAMMA_LANCZOS_G;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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'use strict';\n\n/**\n* Square root of double-precision floating-point epsilon.\n*\n* @module @stdlib/constants/float64/sqrt-eps\n* @type {number}\n*\n* @example\n* import FLOAT64_SQRT_EPSILON from '@stdlib/constants/float64/sqrt-eps';\n* // returns 0.14901161193847656e-7\n*/\n\n\n// MAIN //\n\n/**\n* Square root of double-precision floating-point epsilon.\n*\n* ```tex\n* \\sqrt{\\frac{1}{2^{52}}}\n* ```\n*\n* @constant\n* @type {number}\n* @default 0.14901161193847656e-7\n* @see [IEEE 754]{@link https://en.wikipedia.org/wiki/IEEE_754-1985}\n* @see [Machine Epsilon]{@link https://en.wikipedia.org/wiki/Machine_epsilon}\n*/\nvar FLOAT64_SQRT_EPSILON = 0.1490116119384765625e-7;\n\n\n// EXPORTS //\n\nexport default FLOAT64_SQRT_EPSILON;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Natural logarithm of the maximum double-precision floating-point number.\n*\n* @module @stdlib/constants/float64/max-ln\n* @type {number}\n*\n* @example\n* import FLOAT64_MAX_LN from '@stdlib/constants/float64/max-ln';\n* // returns 709.782712893384\n*/\n\n\n// MAIN //\n\n/**\n* Natural logarithm of the maximum double-precision floating-point number.\n*\n* ## Notes\n*\n* The natural logarithm of the maximum is given by\n*\n* ```tex\n* \\ln \\left( 2^{1023} (2 - 2^{-52}) \\right)\n* ```\n*\n* @constant\n* @type {number}\n* @default 709.782712893384\n* @see [IEEE 754]{@link https://en.wikipedia.org/wiki/IEEE_754-1985}\n*/\nvar FLOAT64_MAX_LN = 709.782712893384;\n\n\n// EXPORTS //\n\nexport default FLOAT64_MAX_LN;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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'use strict';\n\n/**\n* Natural logarithm of the smallest normalized double-precision floating-point number.\n*\n* @module @stdlib/constants/float64/min-ln\n* @type {number}\n*\n* @example\n* import FLOAT64_MIN_LN from '@stdlib/constants/float64/min-ln';\n* // returns -708.3964185322641\n*/\n\n\n// MAIN //\n\n/**\n* Natural logarithm of the smallest normalized double-precision floating-point number.\n*\n* ## Notes\n*\n* The number has the value\n*\n* ```tex\n* -\\ln \\left( 2^{1023-1} \\right)\n* ```\n*\n* @constant\n* @type {number}\n* @default -708.3964185322641\n* @see [IEEE 754]{@link https://en.wikipedia.org/wiki/IEEE_754-1985}\n*/\nvar FLOAT64_MIN_LN = -708.3964185322641;\n\n\n// EXPORTS //\n\nexport default FLOAT64_MIN_LN;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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) 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// MAIN //\n\n/**\n* Returns a Function object.\n*\n* @name Function\n* @constructor\n* @type {Function}\n* @param {...*} [argNames] - parameters names\n* @param {string} body - function body\n* @returns {Function} function\n*\n* @example\n* var add = new Fcn( 'x', 'y', 'return x + y' );\n*\n* var v = add( 1, 2 );\n* // returns 3\n*/\nvar Fcn = Function; // eslint-disable-line stdlib/require-globals\n\n\n// EXPORTS //\n\nexport default Fcn;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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/**\n* Alias for `eval` global.\n*\n* @module @stdlib/utils/eval\n*\n* @example\n* import evil from '@stdlib/utils/eval';\n*\n* var v = evil( '5*4*3*2*1' );\n* // returns 120\n*/\n\n// MODULES //\n\nvar evil = eval; // eslint-disable-line no-eval\n\n\n// EXPORTS //\n\nexport default evil;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport evil from '@stdlib/utils/eval';\n\n\n// MAIN //\n\n/**\n* Tests for native `function*()` support.\n*\n* @returns {boolean} boolean indicating if an environment has native `function*()` support\n*\n* @example\n* var bool = hasGeneratorSupport();\n* // returns \n*/\nfunction hasGeneratorSupport() {\n\tvar bool;\n\ttry {\n\t\tevil( '\"use strict\"; (function* () {})' );\n\t\tbool = true;\n\t} catch ( err ) { // eslint-disable-line no-unused-vars\n\t\tbool = false;\n\t}\n\treturn bool;\n}\n\n\n// EXPORTS //\n\nexport default hasGeneratorSupport;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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'use strict';\n\n/**\n* The mathematical constant `π` times `2`.\n*\n* @module @stdlib/constants/float64/two-pi\n* @type {number}\n*\n* @example\n* import TWO_PI from '@stdlib/constants/float64/two-pi';\n* // returns 6.283185307179586\n*/\n\n\n// MAIN //\n\n/**\n* The mathematical constant `π` times `2`.\n*\n* @constant\n* @type {number}\n* @default 6.283185307179586\n* @see [Wikipedia]{@link https://en.wikipedia.org/wiki/Pi}\n*/\nvar TWO_PI = 6.28318530717958647692528676655900576839433879875021164194988918461563281257241799725606965068423413596429617303; // eslint-disable-line max-len\n\n\n// EXPORTS //\n\nexport default TWO_PI;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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/**\n* Smallest positive single-precision floating-point normal number.\n*\n* @module @stdlib/constants/float32/smallest-normal\n* @type {number}\n*\n* @example\n* import FLOAT32_SMALLEST_NORMAL from '@stdlib/constants/float32/smallest-normal';\n* // returns 1.1754943508222875e-38\n*/\n\n\n// MAIN //\n\n/**\n* The smallest positive single-precision floating-point normal number.\n*\n* ## Notes\n*\n* The number has the value\n*\n* ```tex\n* \\frac{1}{2^{127-1}}\n* ```\n*\n* which corresponds to the bit sequence\n*\n* ```binarystring\n* 0 00000001 00000000000000000000000\n* ```\n*\n* @constant\n* @type {number}\n* @default 1.1754943508222875e-38\n* @see [IEEE 754]{@link https://en.wikipedia.org/wiki/IEEE_754-1985}\n*/\nvar FLOAT32_SMALLEST_NORMAL = 1.1754943508222875e-38;\n\n\n// EXPORTS //\n\nexport default FLOAT32_SMALLEST_NORMAL;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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'use strict';\n\n/**\n* Square root of `2`.\n*\n* @module @stdlib/constants/float64/sqrt-two\n* @type {number}\n*\n* @example\n* import SQRT2 from '@stdlib/constants/float64/sqrt-two';\n* // returns 1.4142135623730951\n*/\n\n\n// MAIN //\n\n/**\n* Square root of `2`.\n*\n* ```tex\n* \\sqrt{2}\n* ```\n*\n* @constant\n* @type {number}\n* @default 1.4142135623730951\n*/\nvar SQRT2 = 1.41421356237309504880168872420969807856967187537694807317667973799073247846210703885038753432764157273501384623e+00; // eslint-disable-line max-len\n\n\n// EXPORTS //\n\nexport default SQRT2;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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/**\n* Maximum single-precision floating-point number.\n*\n* @module @stdlib/constants/float32/max\n* @type {number}\n*\n* @example\n* import FLOAT32_MAX from '@stdlib/constants/float32/max';\n* // returns 3.4028234663852886e+38\n*/\n\n\n// MAIN //\n\n/**\n* Maximum single-precision floating-point number.\n*\n* ## Notes\n*\n* The maximum is given by\n*\n* ```tex\n* 2^{127} (2 - 2^{-23})\n* ```\n*\n* @constant\n* @type {number}\n* @default 3.4028234663852886e+38\n* @see [IEEE 754]{@link https://en.wikipedia.org/wiki/IEEE_754-1985}\n*/\nvar FLOAT32_MAX = 3.4028234663852886e+38;\n\n\n// EXPORTS //\n\nexport default FLOAT32_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\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/**\n* Natural logarithm of the square root of `2π`.\n*\n* @module @stdlib/constants/float64/ln-sqrt-two-pi\n* @type {number}\n*\n* @example\n* import LN_SQRT_TWO_PI from '@stdlib/constants/float64/ln-sqrt-two-pi';\n* // returns 0.9189385332046728\n*/\n\n\n// MAIN //\n\n/**\n* Natural logarithm of the square root of `2π`.\n*\n* ```tex\n* \\ln \\sqrt{2\\pi}\n* ```\n*\n* @constant\n* @type {number}\n* @default 0.9189385332046728\n*/\nvar LN_SQRT_TWO_PI = 9.18938533204672741780329736405617639861397473637783412817151540482765695927260397694743298635954197622005646625e-01; // eslint-disable-line max-len\n\n\n// EXPORTS //\n\nexport default LN_SQRT_TWO_PI;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Smallest positive double-precision floating-point subnormal number.\n*\n* @module @stdlib/constants/float64/smallest-subnormal\n* @type {number}\n*\n* @example\n* import FLOAT64_SMALLEST_SUBNORMAL from '@stdlib/constants/float64/smallest-subnormal';\n* // returns 4.940656458412465e-324\n*/\n\n\n// MAIN //\n\n/**\n* The smallest positive double-precision floating-point subnormal number.\n*\n* ## Notes\n*\n* The number has the value\n*\n* ```tex\n* \\frac{1}{2^{1023-1} 2^{52}}\n* ```\n*\n* which corresponds to the bit sequence\n*\n* ```binarystring\n* 0 00000000000 00000000000000000000 00000000000000000000000000000001\n* ```\n*\n* @constant\n* @type {number}\n* @default 4.940656458412465e-324\n* @see [IEEE 754]{@link https://en.wikipedia.org/wiki/IEEE_754-1985}\n*/\nvar FLOAT64_SMALLEST_SUBNORMAL = 4.940656458412465e-324;\n\n\n// EXPORTS //\n\nexport default FLOAT64_SMALLEST_SUBNORMAL;\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/**\n* Golden ratio.\n*\n* @module @stdlib/constants/float64/phi\n* @type {number}\n*\n* @example\n* import PHI from '@stdlib/constants/float64/phi';\n* // returns 1.618033988749895\n*/\n\n\n// MAIN //\n\n/**\n* Golden ratio.\n*\n* @constant\n* @type {number}\n* @default 1.618033988749895\n* @see [OEIS]{@link http://oeis.org/A001622}\n* @see [Wikipedia]{@link https://en.wikipedia.org/wiki/Golden_ratio}\n*/\nvar PHI = 1.61803398874989484820458683436563811772030917980576286213544862;\n\n\n// EXPORTS //\n\nexport default PHI;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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/**\n* The maximum base 10 exponent for a double-precision floating-point number.\n*\n* @module @stdlib/constants/float64/max-base10-exponent\n* @type {integer32}\n*\n* @example\n* import FLOAT64_MAX_BASE10_EXPONENT from '@stdlib/constants/float64/max-base10-exponent';\n* // returns 308\n*/\n\n\n// MAIN //\n\n/**\n* The maximum base 10 exponent for a double-precision floating-point number.\n*\n* @constant\n* @type {integer32}\n* @default 308\n* @see [IEEE 754]{@link https://en.wikipedia.org/wiki/IEEE_754-1985}\n*/\nvar FLOAT64_MAX_BASE10_EXPONENT = 308|0; // asm type annotation\n\n\n// EXPORTS //\n\nexport default FLOAT64_MAX_BASE10_EXPONENT;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* The minimum base 10 exponent for a normal double-precision floating-point number.\n*\n* @module @stdlib/constants/float64/min-base10-exponent\n* @type {integer32}\n*\n* @example\n* import FLOAT64_MIN_BASE10_EXPONENT from '@stdlib/constants/float64/min-base10-exponent';\n* // returns -308\n*/\n\n\n// MAIN //\n\n/**\n* The minimum base 10 exponent for a normal double-precision floating-point number.\n*\n* ```text\n* 2^-1022 = 2.2250738585072014e-308 => -308\n* ```\n*\n* @constant\n* @type {integer32}\n* @default -308\n* @see [IEEE 754]{@link https://en.wikipedia.org/wiki/IEEE_754-1985}\n*/\nvar FLOAT64_MIN_BASE10_EXPONENT = -308|0; // asm type annotation\n\n\n// EXPORTS //\n\nexport default FLOAT64_MIN_BASE10_EXPONENT;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* The minimum base 10 exponent for a subnormal double-precision floating-point number.\n*\n* @module @stdlib/constants/float64/min-base10-exponent-subnormal\n* @type {integer32}\n*\n* @example\n* import FLOAT64_MIN_BASE10_EXPONENT_SUBNORMAL from '@stdlib/constants/float64/min-base10-exponent-subnormal';\n* // returns -324\n*/\n\n\n// MAIN //\n\n/**\n* The minimum base 10 exponent for a subnormal double-precision floating-point number.\n*\n* @constant\n* @type {integer32}\n* @default -324\n* @see [IEEE 754]{@link https://en.wikipedia.org/wiki/IEEE_754-1985}\n*/\nvar FLOAT64_MIN_BASE10_EXPONENT_SUBNORMAL = -324|0; // asm type annotation\n\n\n// EXPORTS //\n\nexport default FLOAT64_MIN_BASE10_EXPONENT_SUBNORMAL;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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) 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* Mask for the sign bit of a single-precision floating-point number.\n*\n* @module @stdlib/constants/float32/sign-mask\n* @type {uinteger32}\n*\n* @example\n* import FLOAT32_SIGN_MASK from '@stdlib/constants/float32/sign-mask';\n* // returns 2147483648\n*/\n\n\n// MAIN //\n\n/**\n* Mask for the sign bit of a single-precision floating-point number.\n*\n* ## Notes\n*\n* The mask for the sign bit of a single-precision floating-point number is an unsigned 32-bit integer with the value \\\\( 2147483648 \\\\), which corresponds to the bit sequence\n*\n* ```binarystring\n* 1 00000000 00000000000000000000000\n* ```\n*\n* @constant\n* @type {uinteger32}\n* @default 0x80000000\n* @see [IEEE 754]{@link https://en.wikipedia.org/wiki/IEEE_754-1985}\n*/\nvar FLOAT32_SIGN_MASK = 0x80000000>>>0;\n\n\n// EXPORTS //\n\nexport default FLOAT32_SIGN_MASK;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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'use strict';\n\n// MODULES //\n\nimport { isPrimitive as isNumber } from './../../is-number';\nimport isinf from '@stdlib/math/base/assert/is-infinite';\n\n\n// MAIN //\n\n/**\n* Tests if a value is a number primitive having an infinite value.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a number primitive having an infinite value\n*\n* @example\n* var bool = isInfinite( -1.0/0.0 );\n* // returns true\n*\n* @example\n* var bool = isInfinite( new Number( -1.0/0.0 ) );\n* // returns false\n*/\nfunction isInfinite( value ) {\n\treturn (\n\t\tisNumber( value ) &&\n\t\tisinf( value )\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isInfinite;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { isObject as isNumber } from './../../is-number';\nimport isinf from '@stdlib/math/base/assert/is-infinite';\n\n\n// MAIN //\n\n/**\n* Tests if a value is a number object having an infinite value.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a number object having an infinite value\n*\n* @example\n* var bool = isInfinite( 1.0/0.0 );\n* // returns false\n*\n* @example\n* var bool = isInfinite( new Number( 1.0/0.0 ) );\n* // returns true\n*/\nfunction isInfinite( value ) {\n\treturn (\n\t\tisNumber( value ) &&\n\t\tisinf( value.valueOf() )\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isInfinite;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isPrimitive from './primitive.js';\nimport isObject from './object.js';\n\n\n// MAIN //\n\n/**\n* Tests if a value is an infinite number.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether a value is an infinite number\n*\n* @example\n* var bool = isInfinite( 1.0/0.0 );\n* // returns true\n*\n* @example\n* var bool = isInfinite( new Number( 1.0/0.0 ) );\n* // returns true\n*\n* @example\n* var bool = isInfinite( 5.0 );\n* // returns false\n*\n* @example\n* var bool = isInfinite( null );\n* // returns false\n*/\nfunction isInfinite( value ) {\n\treturn ( isPrimitive( value ) || isObject( value ) );\n}\n\n\n// EXPORTS //\n\nexport default isInfinite;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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'use strict';\n\n/**\n* Test if a value is an infinite number.\n*\n* @module @stdlib/assert/is-infinite\n*\n* @example\n* import isInfinite from '@stdlib/assert/is-infinite';\n*\n* var bool = isInfinite( 1.0/0.0 );\n* // returns true\n*\n* bool = isInfinite( new Number( 1.0/0.0 ) );\n* // returns true\n*\n* bool = isInfinite( 5.0 );\n* // returns false\n*\n* bool = isInfinite( null );\n* // returns false\n*\n* @example\n* import { isPrimitive as isInfinite } from '@stdlib/assert/is-infinite';\n*\n* var bool = isInfinite( -1.0/0.0 );\n* // returns true\n*\n* bool = isInfinite( new Number( -1.0/0.0 ) );\n* // returns false\n*\n* @example\n* import { isObject as isInfinite } from '@stdlib/assert/is-infinite';\n*\n* var bool = isInfinite( 1.0/0.0 );\n* // returns false\n*\n* bool = isInfinite( new Number( 1.0/0.0 ) );\n* // returns true\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport isPrimitive from './primitive.js';\nimport isObject from './object.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'isPrimitive', isPrimitive );\nsetReadOnly( main, 'isObject', isObject );\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 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 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\tif ( x !== x ) {\n\t\treturn NaN;\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'use strict';\n\n/**\n* The minimum biased base 2 exponent for a normal double-precision floating-point number.\n*\n* @module @stdlib/constants/float64/min-base2-exponent\n* @type {integer32}\n*\n* @example\n* import FLOAT64_MIN_BASE2_EXPONENT from '@stdlib/constants/float64/min-base2-exponent';\n* // returns -1022\n*/\n\n\n// MAIN //\n\n/**\n* The minimum biased base 2 exponent for a normal double-precision floating-point number.\n*\n* ```text\n* 1 - BIAS = -1022\n* ```\n*\n* where `BIAS = 1023`.\n*\n* @constant\n* @type {integer32}\n* @default -1022\n* @see [IEEE 754]{@link https://en.wikipedia.org/wiki/IEEE_754-1985}\n*/\nvar FLOAT64_MIN_BASE2_EXPONENT = -1022|0; // asm type annotation\n\n\n// EXPORTS //\n\nexport default FLOAT64_MIN_BASE2_EXPONENT;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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';\n\n\n// VARIABLES //\n\nvar MAX_FACTORIAL = 170; // TODO: consider packaging as constant\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 > MAX_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, MAX_FACTORIAL-2 );\n\t\t\tt2 = fallingFactorial( x-MAX_FACTORIAL+1.0, n-MAX_FACTORIAL+1 );\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/**\n* Maximum safe nth Fibonacci number when stored in double-precision floating-point format.\n*\n* @module @stdlib/constants/float64/max-safe-nth-fibonacci\n* @type {integer}\n*\n* @example\n* import FLOAT64_MAX_SAFE_NTH_FIBONACCI from '@stdlib/constants/float64/max-safe-nth-fibonacci';\n* // returns 78\n*/\n\n\n// MAIN //\n\n/**\n* The maximum safe nth Fibonacci number when stored in double-precision floating-point format.\n*\n* @constant\n* @type {integer}\n* @default 78\n* @see [Fibonacci number]{@link https://en.wikipedia.org/wiki/Fibonacci_number}\n* @see [IEEE 754]{@link https://en.wikipedia.org/wiki/IEEE_754-1985}\n*/\nvar FLOAT64_MAX_SAFE_NTH_FIBONACCI = 78|0; // asm type annotation\n\n\n// EXPORTS //\n\nexport default FLOAT64_MAX_SAFE_NTH_FIBONACCI;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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/* eslint-disable id-length */\n\n'use strict';\n\n/**\n* Maximum safe nth Lucas number when stored in double-precision floating-point format.\n*\n* @module @stdlib/constants/float64/max-safe-nth-lucas\n* @type {integer}\n*\n* @example\n* import FLOAT64_MAX_SAFE_NTH_LUCAS from '@stdlib/constants/float64/max-safe-nth-lucas';\n* // returns 76\n*/\n\n\n// MAIN //\n\n/**\n* The maximum safe nth Lucas number when stored in double-precision floating-point format.\n*\n* @constant\n* @type {integer}\n* @default 76\n* @see [Lucas number]{@link https://en.wikipedia.org/wiki/Lucas_number}\n* @see [IEEE 754]{@link https://en.wikipedia.org/wiki/IEEE_754-1985}\n*/\nvar FLOAT64_MAX_SAFE_NTH_LUCAS = 76|0; // asm type annotation\n\n\n// EXPORTS //\n\nexport default FLOAT64_MAX_SAFE_NTH_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 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'use strict';\n\n/**\n* Square of the mathematical constant `π`.\n*\n* @module @stdlib/constants/float64/pi-squared\n* @type {number}\n*\n* @example\n* import PI_SQUARED from '@stdlib/constants/float64/pi-squared';\n* // returns 9.869604401089358\n*/\n\n\n// MAIN //\n\n/**\n* Square of the mathematical constant `π`.\n*\n* @constant\n* @type {number}\n* @default 9.869604401089358\n* @see [Wikipedia]{@link https://en.wikipedia.org/wiki/Pi}\n*/\nvar PI_SQUARED = 9.86960440108935861883449099987615113531369940724079062641334937622004482241920524300177340371855223182402591377; // eslint-disable-line max-len\n\n\n// EXPORTS //\n\nexport default PI_SQUARED;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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'use strict';\n\n/**\n* Natural logarithm of the mathematical constant `π`.\n*\n* @module @stdlib/constants/float64/ln-pi\n* @type {number}\n*\n* @example\n* import LN_PI from '@stdlib/constants/float64/ln-pi';\n* // returns 1.1447298858494002\n*/\n\n\n// MAIN //\n\n/**\n* Natural logarithm of the mathematical constant `π`.\n*\n* @constant\n* @type {number}\n* @default 1.1447298858494002\n* @see [Wikipedia]{@link https://en.wikipedia.org/wiki/Pi}\n*/\nvar LN_PI = 1.1447298858494002;\n\n\n// EXPORTS //\n\nexport default LN_PI;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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) 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* Mask for excluding the sign bit of a single-precision floating-point number.\n*\n* @module @stdlib/constants/float32/abs-mask\n* @type {uinteger32}\n*\n* @example\n* import FLOAT32_ABS_MASK from '@stdlib/constants/float32/abs-mask';\n* // returns 2147483647\n*/\n\n\n// MAIN //\n\n/**\n* Mask for excluding the sign bit of a single-precision floating-point number.\n*\n* ## Notes\n*\n* The high word mask for excluding the sign bit of a single-precision floating-point number is an unsigned 32-bit integer with the value \\\\( 2147483647 \\\\), which corresponds to the bit sequence\n*\n* ```binarystring\n* 0 11111111 11111111111111111111111\n* ```\n*\n* @constant\n* @type {uinteger32}\n* @default 0x7fffffff\n* @see [IEEE 754]{@link https://en.wikipedia.org/wiki/IEEE_754-1985}\n*/\nvar FLOAT32_ABS_MASK = 0x7fffffff>>>0;\n\n\n// EXPORTS //\n\nexport default FLOAT32_ABS_MASK;\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/**\n* Creates a function which always returns the same value.\n*\n* @param {*} [value] - value to always return\n* @returns {Function} constant function\n*\n* @example\n* var fcn = wrap( 3.14 );\n*\n* var v = fcn();\n* // returns 3.14\n*\n* v = fcn();\n* // returns 3.14\n*\n* v = fcn();\n* // returns 3.14\n*/\nfunction wrap( value ) {\n\treturn constantFunction;\n\n\t/**\n\t* Constant function.\n\t*\n\t* @private\n\t* @returns {*} constant value\n\t*/\n\tfunction constantFunction() {\n\t\treturn value;\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 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\nvar RE = /./;\n\n\n// EXPORTS //\n\nexport default RE;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 value is a boolean primitive.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a boolean primitive\n*\n* @example\n* var bool = isBoolean( true );\n* // returns true\n*\n* @example\n* var bool = isBoolean( false );\n* // returns true\n*\n* @example\n* import Boolean from '@stdlib/boolean/ctor';\n*\n* var bool = isBoolean( new Boolean( true ) );\n* // returns false\n*/\nfunction isBoolean( value ) {\n\treturn ( typeof value === 'boolean' );\n}\n\n\n// EXPORTS //\n\nexport default isBoolean;\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// MAIN //\n\n/**\n* Returns a boolean.\n*\n* @name Boolean\n* @constructor\n* @type {Function}\n* @param {*} value - input value\n* @returns {(boolean|Boolean)} boolean\n*\n* @example\n* var b = Boolean( null );\n* // returns false\n*\n* b = Boolean( [] );\n* // returns true\n*\n* b = Boolean( {} );\n* // returns true\n*\n* @example\n* var b = new Boolean( false );\n* // returns \n*/\nvar Bool = Boolean; // eslint-disable-line stdlib/require-globals\n\n\n// EXPORTS //\n\nexport default Bool;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// eslint-disable-next-line stdlib/no-redeclare\nvar toString = Boolean.prototype.toString; // non-generic\n\n\n// EXPORTS //\n\nexport default toString;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport hasToStringTag from './../../has-tostringtag-support';\nimport nativeClass from '@stdlib/utils/native-class';\nimport Boolean from '@stdlib/boolean/ctor';\nimport test from './try2serialize.js';\n\n\n// VARIABLES //\n\nvar FLG = hasToStringTag();\n\n\n// MAIN //\n\n/**\n* Tests if a value is a boolean object.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a boolean object\n*\n* @example\n* var bool = isBoolean( true );\n* // returns false\n*\n* @example\n* import Boolean from '@stdlib/boolean/ctor';\n*\n* var bool = isBoolean( new Boolean( false ) );\n* // returns true\n*/\nfunction isBoolean( value ) {\n\tif ( typeof value === 'object' ) {\n\t\tif ( value instanceof Boolean ) {\n\t\t\treturn true;\n\t\t}\n\t\tif ( FLG ) {\n\t\t\treturn test( value );\n\t\t}\n\t\treturn ( nativeClass( value ) === '[object Boolean]' );\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default isBoolean;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport toString from './tostring.js'; // eslint-disable-line stdlib/no-redeclare\n\n\n// MAIN //\n\n/**\n* Attempts to serialize a value to a string.\n*\n* @private\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value can be serialized\n*/\nfunction test( value ) {\n\ttry {\n\t\ttoString.call( value );\n\t\treturn true;\n\t} catch ( err ) { // eslint-disable-line no-unused-vars\n\t\treturn false;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default test;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isPrimitive from './primitive.js';\nimport isObject from './object.js';\n\n\n// MAIN //\n\n/**\n* Tests if a value is a boolean.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether value is a boolean\n*\n* @example\n* var bool = isBoolean( false );\n* // returns true\n*\n* @example\n* var bool = isBoolean( true );\n* // returns true\n*\n* @example\n* import Boolean from '@stdlib/boolean/ctor';\n*\n* var bool = isBoolean( new Boolean( false ) );\n* // returns true\n*\n* @example\n* import Boolean from '@stdlib/boolean/ctor';\n*\n* var bool = isBoolean( new Boolean( true ) );\n* // returns true\n*/\nfunction isBoolean( value ) {\n\treturn ( isPrimitive( value ) || isObject( value ) );\n}\n\n\n// EXPORTS //\n\nexport default isBoolean;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Test if a value is a boolean.\n*\n* @module @stdlib/assert/is-boolean\n*\n* @example\n* import Boolean from '@stdlib/boolean/ctor';\n* import isBoolean from '@stdlib/assert/is-boolean';\n*\n* var bool = isBoolean( false );\n* // returns true\n*\n* bool = isBoolean( new Boolean( false ) );\n* // returns true\n*\n* @example\n* import Boolean from '@stdlib/boolean/ctor';\n* import { isPrimitive as isBoolean } from '@stdlib/assert/is-boolean';\n*\n* var bool = isBoolean( false );\n* // returns true\n*\n* bool = isBoolean( new Boolean( true ) );\n* // returns false\n*\n* @example\n* import Boolean from '@stdlib/boolean/ctor';\n* import { isObject as isBoolean } from '@stdlib/assert/is-boolean';\n*\n* var bool = isBoolean( true );\n* // returns false\n*\n* bool = isBoolean( new Boolean( false ) );\n* // returns true\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport isPrimitive from './primitive.js';\nimport isObject from './object.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'isPrimitive', isPrimitive );\nsetReadOnly( main, 'isObject', isObject );\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// MAIN //\n\nvar obj = ( typeof self === 'object' ) ? self : null;\n\n\n// EXPORTS //\n\nexport default obj;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 obj = ( typeof window === 'object' ) ? window : null;\n\n\n// EXPORTS //\n\nexport default obj;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 obj = ( typeof global === 'object' ) ? global : null;\n\n\n// EXPORTS //\n\nexport default obj;\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// MAIN //\n\nvar obj = ( typeof globalThis === 'object' ) ? globalThis : null; // eslint-disable-line no-undef\n\n\n// EXPORTS //\n\nexport default obj;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { isPrimitive as isBoolean } from '@stdlib/assert/is-boolean';\nimport format from '@stdlib/string/format';\nimport getThis from './codegen.js';\nimport Self from './self.js';\nimport Win from './window.js';\nimport Global from './global.js';\nimport GlobalThis from './global_this.js';\n\n\n// MAIN //\n\n/**\n* Returns the global object.\n*\n* ## Notes\n*\n* - Using code generation is the **most** reliable way to resolve the global object; however, doing so is likely to violate content security policies (CSPs) in, e.g., Chrome Apps and elsewhere.\n*\n* @param {boolean} [codegen=false] - boolean indicating whether to use code generation to resolve the global object\n* @throws {TypeError} must provide a boolean\n* @throws {Error} unable to resolve global object\n* @returns {Object} global object\n*\n* @example\n* var g = getGlobal();\n* // returns {...}\n*/\nfunction getGlobal( codegen ) {\n\tif ( arguments.length ) {\n\t\tif ( !isBoolean( codegen ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Must provide a boolean. Value: `%s`.', codegen ) );\n\t\t}\n\t\tif ( codegen ) {\n\t\t\treturn getThis();\n\t\t}\n\t\t// Fall through...\n\t}\n\t// Case: 2020 revision of ECMAScript standard\n\tif ( GlobalThis ) {\n\t\treturn GlobalThis;\n\t}\n\t// Case: browsers and web workers\n\tif ( Self ) {\n\t\treturn Self;\n\t}\n\t// Case: browsers\n\tif ( Win ) {\n\t\treturn Win;\n\t}\n\t// Case: Node.js\n\tif ( Global ) {\n\t\treturn Global;\n\t}\n\t// Case: unknown\n\tthrow new Error( 'unexpected error. Unable to resolve global object.' );\n}\n\n\n// EXPORTS //\n\nexport default getGlobal;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 global object using code generation.\n*\n* @private\n* @returns {Object} global object\n*/\nfunction getGlobal() {\n\treturn new Function( 'return this;' )(); // eslint-disable-line no-new-func, stdlib/require-globals\n}\n\n\n// EXPORTS //\n\nexport default getGlobal;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport getGlobal from './../../../global';\n\n\n// MAIN //\n\nvar root = getGlobal();\nvar nodeList = root.document && root.document.childNodes;\n\n\n// EXPORTS //\n\nexport default nodeList;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\nvar typedarray = Int8Array; // eslint-disable-line stdlib/require-globals\n\n\n// EXPORTS //\n\nexport default typedarray;\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* Returns a regular expression to capture everything that is not a space immediately after the `function` keyword and before the first left parenthesis.\n*\n* @returns {RegExp} regular expression\n*\n* @example\n* var RE_FUNCTION_NAME = reFunctionName();\n*\n* function fname( fcn ) {\n* return RE_FUNCTION_NAME.exec( fcn.toString() )[ 1 ];\n* }\n*\n* var fn = fname( Math.sqrt );\n* // returns 'sqrt'\n*\n* fn = fname( Int8Array );\n* // returns 'Int8Array'\n*\n* fn = fname( Object.prototype.toString );\n* // returns 'toString'\n*\n* fn = fname( function(){} );\n* // returns ''\n*/\nfunction reFunctionName() {\n\treturn /^\\s*function\\s*([^(]*)/i;\n}\n\n\n// EXPORTS //\n\nexport default reFunctionName;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport reFunctionName from './main.js';\n\n\n// MAIN //\n\n/**\n* Captures everything that is not a space immediately after the `function` keyword and before the first left parenthesis.\n*\n* Regular expression: `/^\\s*function\\s*([^(]*)/i`\n*\n* - `/^\\s*`\n* - Match zero or more spaces at beginning\n*\n* - `function`\n* - Match the word `function`\n*\n* - `\\s*`\n* - Match zero or more spaces after the word `function`\n*\n* - `()`\n* - Capture\n*\n* - `[^(]*`\n* - Match anything except a left parenthesis `(` zero or more times\n*\n* - `/i`\n* - ignore case\n*\n* @constant\n* @type {RegExp}\n* @default /^\\s*function\\s*([^(]*)/i\n*/\nvar RE_FUNCTION_NAME = reFunctionName();\n\n\n// EXPORTS //\n\nexport default RE_FUNCTION_NAME;\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* Regular expression to capture everything that is not a space immediately after the `function` keyword and before the first left parenthesis.\n*\n* @module @stdlib/regexp/function-name\n*\n* @example\n* import reFunctionName from '@stdlib/regexp/function-name';\n* var RE_FUNCTION_NAME = reFunctionName();\n*\n* function fname( fcn ) {\n* return RE_FUNCTION_NAME.exec( fcn.toString() )[ 1 ];\n* }\n*\n* var fn = fname( Math.sqrt );\n* // returns 'sqrt'\n*\n* fn = fname( Int8Array );\n* // returns 'Int8Array'\n*\n* fn = fname( Object.prototype.toString );\n* // returns 'toString'\n*\n* fn = fname( function(){} );\n* // returns ''\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport REGEXP from './regexp.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'REGEXP', REGEXP );\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 nativeClass from '@stdlib/utils/native-class';\n\n\n// VARIABLES //\n\nvar f;\n\n\n// FUNCTIONS //\n\n/**\n* Tests if a value is an array.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether value is an array\n*\n* @example\n* var bool = isArray( [] );\n* // returns true\n*\n* @example\n* var bool = isArray( {} );\n* // returns false\n*/\nfunction isArray( value ) {\n\treturn ( nativeClass( value ) === '[object Array]' );\n}\n\n\n// MAIN //\n\nif ( Array.isArray ) {\n\tf = Array.isArray;\n} else {\n\tf = isArray;\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 isArray from './../../../is-array';\nimport format from '@stdlib/string/format';\n\n\n// MAIN //\n\n/**\n* Returns a function which tests if every element in an array passes a test condition.\n*\n* @param {Function} predicate - function to apply\n* @throws {TypeError} must provide a function\n* @returns {Function} an array function\n*\n* @example\n* import isOdd from '@stdlib/assert/is-odd';\n*\n* var arr1 = [ 1, 3, 5, 7 ];\n* var arr2 = [ 3, 5, 8 ];\n*\n* var validate = arrayfcn( isOdd );\n*\n* var bool = validate( arr1 );\n* // returns true\n*\n* bool = validate( arr2 );\n* // returns false\n*/\nfunction arrayfcn( predicate ) {\n\tif ( typeof predicate !== 'function' ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide a function. Value: `%s`.', predicate ) );\n\t}\n\treturn every;\n\n\t/**\n\t* Tests if every element in an array passes a test condition.\n\t*\n\t* @private\n\t* @param {*} value - value to test\n\t* @returns {boolean} boolean indicating whether a value is an array for which all elements pass a test condition\n\t*/\n\tfunction every( value ) {\n\t\tvar len;\n\t\tvar i;\n\t\tif ( !isArray( value ) ) {\n\t\t\treturn false;\n\t\t}\n\t\tlen = value.length;\n\t\tif ( len === 0 ) {\n\t\t\treturn false;\n\t\t}\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tif ( predicate( value[ i ] ) === false ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t\treturn true;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default arrayfcn;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 value is object-like.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether a value is object-like\n*\n* @example\n* var bool = isObjectLike( {} );\n* // returns true\n*\n* @example\n* var bool = isObjectLike( [] );\n* // returns true\n*\n* @example\n* var bool = isObjectLike( null );\n* // returns false\n*/\nfunction isObjectLike( value ) {\n\treturn (\n\t\tvalue !== null &&\n\t\ttypeof value === 'object'\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isObjectLike;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isObjectLike from './../../is-object-like';\n\n\n// MAIN //\n\n/**\n* Tests if a value is a Buffer instance.\n*\n* @param {*} value - value to validate\n* @returns {boolean} boolean indicating if a value is a Buffer instance\n*\n* @example\n* var v = isBuffer( new Buffer( 'beep' ) );\n* // returns true\n*\n* @example\n* var v = isBuffer( new Buffer( [1,2,3,4] ) );\n* // returns true\n*\n* @example\n* var v = isBuffer( {} );\n* // returns false\n*\n* @example\n* var v = isBuffer( [] );\n* // returns false\n*/\nfunction isBuffer( value ) {\n\treturn (\n\t\tisObjectLike( value ) &&\n\t\t(\n\t\t\t// eslint-disable-next-line no-underscore-dangle\n\t\t\tvalue._isBuffer || // for envs missing Object.prototype.constructor (e.g., Safari 5-7)\n\t\t\t(\n\t\t\t\tvalue.constructor &&\n\n\t\t\t\t// WARNING: `typeof` is not a foolproof check, as certain envs consider RegExp and NodeList instances to be functions\n\t\t\t\ttypeof value.constructor.isBuffer === 'function' &&\n\t\t\t\tvalue.constructor.isBuffer( value )\n\t\t\t)\n\t\t)\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isBuffer;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport nativeClass from './../../native-class';\nimport { REGEXP as RE } from '@stdlib/regexp/function-name';\nimport isBuffer from '@stdlib/assert/is-buffer';\n\n\n// MAIN //\n\n/**\n* Determines the name of a value's constructor.\n*\n* @param {*} v - input value\n* @returns {string} name of a value's constructor\n*\n* @example\n* var v = constructorName( 'a' );\n* // returns 'String'\n*\n* @example\n* var v = constructorName( 5 );\n* // returns 'Number'\n*\n* @example\n* var v = constructorName( null );\n* // returns 'Null'\n*\n* @example\n* var v = constructorName( undefined );\n* // returns 'Undefined'\n*\n* @example\n* var v = constructorName( function noop() {} );\n* // returns 'Function'\n*/\nfunction constructorName( v ) {\n\tvar match;\n\tvar name;\n\tvar ctor;\n\tname = nativeClass( v ).slice( 8, -1 );\n\tif ( (name === 'Object' || name === 'Error') && v.constructor ) {\n\t\tctor = v.constructor;\n\t\tif ( typeof ctor.name === 'string' ) {\n\t\t\treturn ctor.name;\n\t\t}\n\t\tmatch = RE.exec( ctor.toString() );\n\t\tif ( match ) {\n\t\t\treturn match[ 1 ];\n\t\t}\n\t}\n\tif ( isBuffer( v ) ) {\n\t\treturn 'Buffer';\n\t}\n\treturn name;\n}\n\n\n// EXPORTS //\n\nexport default constructorName;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Test if a value is object-like.\n*\n* @module @stdlib/assert/is-object-like\n*\n* @example\n* import isObjectLike from '@stdlib/assert/is-object-like';\n*\n* var bool = isObjectLike( {} );\n* // returns true\n*\n* bool = isObjectLike( [] );\n* // returns true\n*\n* bool = isObjectLike( null );\n* // returns false\n*\n* @example\n* import { isObjectLikeArray as isObjectLike } from '@stdlib/assert/is-object-like';\n*\n* var bool = isObjectLike( [ {}, [] ] );\n* // returns true\n*\n* bool = isObjectLike( [ {}, '3.0' ] );\n* // returns false\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport arrayfun from './../../tools/array-function';\nimport main from './main.js';\n\n\n// VARIABLES //\n\nvar isObjectLikeArray = arrayfun( main );\n\n\n// MAIN //\n\nsetReadOnly( main, 'isObjectLikeArray', isObjectLikeArray );\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* Determine a value's type.\n*\n* @module @stdlib/utils/type-of\n*\n* @example\n* import typeOf from '@stdlib/utils/type-of';\n*\n* var str = typeOf( 'a' );\n* // returns 'string'\n*\n* str = typeOf( 5 );\n* // returns 'number'\n*/\n\n// MODULES //\n\nimport usePolyfill from './check.js';\nimport builtin from './main.js';\nimport polyfill from './polyfill.js';\n\n\n// MAIN //\n\nvar main = ( usePolyfill() ) ? polyfill : builtin;\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 RE from './fixtures/re.js';\nimport nodeList from './fixtures/nodelist.js';\nimport typedarray from './fixtures/typedarray.js';\n\n\n// MAIN //\n\n/**\n* Checks whether a polyfill is needed when using the `typeof` operator.\n*\n* @private\n* @returns {boolean} boolean indicating whether a polyfill is needed\n*/\nfunction check() {\n\tif (\n\t\t// Chrome 1-12 returns 'function' for regular expression instances (see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/typeof):\n\t\ttypeof RE === 'function' ||\n\n\t\t// Safari 8 returns 'object' for typed array and weak map constructors (underscore #1929):\n\t\ttypeof typedarray === 'object' ||\n\n\t\t// PhantomJS 1.9 returns 'function' for `NodeList` instances (underscore #2236):\n\t\ttypeof nodeList === 'function'\n\t) {\n\t\treturn true;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default check;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport ctorName from './../../constructor-name';\n\n\n// MAIN //\n\n/**\n* Determines a value's type.\n*\n* @param {*} v - input value\n* @returns {string} string indicating the value's type\n*/\nfunction typeOf( v ) {\n\treturn ctorName( v ).toLowerCase();\n}\n\n\n// EXPORTS //\n\nexport default typeOf;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport ctorName from './../../constructor-name';\n\n\n// NOTES //\n\n/*\n* Built-in `typeof` operator behavior:\n*\n* ```text\n* typeof null => 'object'\n* typeof undefined => 'undefined'\n* typeof 'a' => 'string'\n* typeof 5 => 'number'\n* typeof NaN => 'number'\n* typeof true => 'boolean'\n* typeof false => 'boolean'\n* typeof {} => 'object'\n* typeof [] => 'object'\n* typeof function foo(){} => 'function'\n* typeof function* foo(){} => 'object'\n* typeof Symbol() => 'symbol'\n* ```\n*\n*/\n\n\n// MAIN //\n\n/**\n* Determines a value's type.\n*\n* @param {*} v - input value\n* @returns {string} string indicating the value's type\n*/\nfunction typeOf( v ) {\n\tvar type;\n\n\t// Address `typeof null` => `object` (see http://wiki.ecmascript.org/doku.php?id=harmony:typeof_null):\n\tif ( v === null ) {\n\t\treturn 'null';\n\t}\n\ttype = typeof v;\n\n\t// If the `typeof` operator returned something other than `object`, we are done. Otherwise, we need to check for an internal class name or search for a constructor.\n\tif ( type === 'object' ) {\n\t\treturn ctorName( v ).toLowerCase();\n\t}\n\treturn type;\n}\n\n\n// EXPORTS //\n\nexport default typeOf;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport typeOf from '@stdlib/utils/type-of';\n\n\n// MAIN //\n\n/**\n* Tests if a value is a function.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether value is a function\n*\n* @example\n* function beep() {\n* return 'beep';\n* }\n*\n* var bool = isFunction( beep );\n* // returns true\n*/\nfunction isFunction( value ) {\n\t// Note: cannot use `typeof` directly, as various browser engines incorrectly return `'function'` when operating on non-function objects, such as regular expressions and NodeLists.\n\treturn ( typeOf( value ) === 'function' );\n}\n\n\n// EXPORTS //\n\nexport default isFunction;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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 './../../is-function';\n\n\n// MAIN //\n\n/**\n* Tests if a value is iterator-like.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether value is iterator-like\n*\n* @example\n* var it = {\n* 'next': function noop() {}\n* };\n* var bool = isIteratorLike( it );\n* // returns true\n*\n* @example\n* var bool = isIteratorLike( {} );\n* // returns false\n*\n* @example\n* var bool = isIteratorLike( null );\n* // returns false\n*/\nfunction isIteratorLike( value ) {\n\tvar t = typeof value;\n\treturn (\n\t\tvalue !== null &&\n\t\t( t === 'object' || t === 'function' ) &&\n\t\tisFunction( value.next )\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isIteratorLike;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport hasOwnProp from './../../has-own-property';\nimport Symbol from '@stdlib/symbol/ctor';\n\n\n// MAIN //\n\n/**\n* Tests for native `Symbol.iterator` support.\n*\n* @returns {boolean} boolean indicating if an environment has `Symbol.iterator` support\n*\n* @example\n* var bool = hasIteratorSymbolSupport();\n* // returns \n*/\nfunction hasIteratorSymbolSupport() {\n\treturn (\n\t\ttypeof Symbol === 'function' &&\n\t\ttypeof Symbol( 'foo' ) === 'symbol' &&\n\t\thasOwnProp( Symbol, 'iterator' ) &&\n\t\ttypeof Symbol.iterator === 'symbol'\n\t);\n}\n\n\n// EXPORTS //\n\nexport default hasIteratorSymbolSupport;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport hasIteratorSymbolSupport from '@stdlib/assert/has-iterator-symbol-support';\n\n\n// MAIN //\n\n/**\n* Iterator symbol.\n*\n* @name IteratorSymbol\n* @constant\n* @type {(symbol|null)}\n*\n* @example\n* function iterator() {\n* var it;\n* var i;\n*\n* i = -1;\n*\n* it = {};\n* it.next = next;\n* it.return = done;\n*\n* if ( IteratorSymbol ) {\n* it[ IteratorSymbol ] = iterator;\n* }\n* return it;\n*\n* function next() {\n* i += 1;\n* return {\n* 'value': i,\n* 'done': false\n* };\n* }\n*\n* function done( value ) {\n* if ( arguments.length === 0 ) {\n* return {\n* 'done': true\n* };\n* }\n* return {\n* 'value': value,\n* 'done': true\n* };\n* }\n* }\n*\n* var obj = iterator();\n*/\nvar IteratorSymbol = ( hasIteratorSymbolSupport() ) ? Symbol.iterator : null;\n\n\n// EXPORTS //\n\nexport default IteratorSymbol;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isArray from './../../is-array';\n\n\n// MAIN //\n\n/**\n* Tests if a value is an object; e.g., `{}`.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether value is an object\n*\n* @example\n* var bool = isObject( {} );\n* // returns true\n*\n* @example\n* var bool = isObject( null );\n* // returns false\n*/\nfunction isObject( value ) {\n\treturn (\n\t\ttypeof value === 'object' &&\n\t\tvalue !== null &&\n\t\t!isArray( value )\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isObject;\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// MAIN //\n\n/**\n* Returns an object.\n*\n* @name Object\n* @constructor\n* @type {Function}\n* @param {*} value - input value\n* @returns {Object} object\n*\n* @example\n* var o = new Object( null );\n* // returns {}\n*\n* @example\n* var o = new Object( 5.0 );\n* // returns \n*\n* @example\n* var o = new Object( 'beep' );\n* // returns \n*\n* @example\n* var o1 = {};\n*\n* var o2 = new Object( o1 );\n* // returns {}\n*\n* var bool = ( o1 === o2 );\n* // returns true\n*/\nvar Obj = Object; // eslint-disable-line stdlib/require-globals\n\n\n// EXPORTS //\n\nexport default Obj;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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 builtin from './native.js';\nimport polyfill from './polyfill.js';\n\n\n// MAIN //\n\nvar getProto;\nif ( isFunction( Object.getPrototypeOf ) ) {\n\tgetProto = builtin;\n} else {\n\tgetProto = polyfill;\n}\n\n\n// EXPORTS //\n\nexport default getProto;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 getProto = Object.getPrototypeOf;\n\n\n// EXPORTS //\n\nexport default getProto;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport nativeClass from './../../native-class';\nimport getProto from './proto.js';\n\n\n// MAIN //\n\n/**\n* Returns the prototype of a provided object.\n*\n* @private\n* @param {Object} obj - input object\n* @returns {(Object|null)} prototype\n*/\nfunction getPrototypeOf( obj ) {\n\tvar proto = getProto( obj );\n\tif ( proto || proto === null ) {\n\t\treturn proto;\n\t}\n\tif ( nativeClass( obj.constructor ) === '[object Function]' ) {\n\t\t// May break if the constructor has been tampered with...\n\t\treturn obj.constructor.prototype;\n\t}\n\tif ( obj instanceof Object ) {\n\t\treturn Object.prototype;\n\t}\n\t// Return `null` for objects created via `Object.create( null )`. Also return `null` for cross-realm objects on browsers that lack `__proto__` support, such as IE < 11.\n\treturn null;\n}\n\n\n// EXPORTS //\n\nexport default getPrototypeOf;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 value of the `__proto__` property.\n*\n* @private\n* @param {Object} obj - input object\n* @returns {*} value of `__proto__` property\n*/\nfunction getProto( obj ) {\n\t// eslint-disable-next-line no-proto\n\treturn obj.__proto__;\n}\n\n\n// EXPORTS //\n\nexport default getProto;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport Object from '@stdlib/object/ctor';\nimport getProto from './detect.js';\n\n\n// MAIN //\n\n/**\n* Returns the prototype of a provided object.\n*\n* @param {*} value - input value\n* @returns {(Object|null)} prototype\n*\n* @example\n* var proto = getPrototypeOf( {} );\n* // returns {}\n*/\nfunction getPrototypeOf( value ) {\n\tif (\n\t\tvalue === null ||\n\t\tvalue === void 0\n\t) {\n\t\treturn null;\n\t}\n\t// In order to ensure consistent ES5/ES6 behavior, cast input value to an object (strings, numbers, booleans); ES5 `Object.getPrototypeOf` throws when provided primitives and ES6 `Object.getPrototypeOf` casts:\n\tvalue = Object( value );\n\n\treturn getProto( value );\n}\n\n\n// EXPORTS //\n\nexport default getPrototypeOf;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isObject from './../../is-object';\nimport isFunction from './../../is-function';\nimport getPrototypeOf from '@stdlib/utils/get-prototype-of';\nimport hasOwnProp from './../../has-own-property';\nimport nativeClass from '@stdlib/utils/native-class';\n\n\n// VARIABLES //\n\nvar objectPrototype = Object.prototype;\n\n\n// FUNCTIONS //\n\n/**\n* Tests that an object only has own properties.\n*\n* @private\n* @param {Object} obj - value to test\n* @returns {boolean} boolean indicating if an object only has own properties\n*/\nfunction ownProps( obj ) {\n\tvar key;\n\n\t// NOTE: possibility of perf boost if key enumeration order is known (see http://stackoverflow.com/questions/18531624/isplainobject-thing).\n\tfor ( key in obj ) {\n\t\tif ( !hasOwnProp( obj, key ) ) {\n\t\t\treturn false;\n\t\t}\n\t}\n\treturn true;\n}\n\n\n// MAIN //\n\n/**\n* Tests if a value is a plain object.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether value is a plain object\n*\n* @example\n* var bool = isPlainObject( {} );\n* // returns true\n*\n* @example\n* var bool = isPlainObject( null );\n* // returns false\n*/\nfunction isPlainObject( value ) {\n\tvar proto;\n\n\t// Screen for obvious non-objects...\n\tif ( !isObject( value ) ) {\n\t\treturn false;\n\t}\n\t// Objects with no prototype (e.g., `Object.create( null )`) are plain...\n\tproto = getPrototypeOf( value );\n\tif ( !proto ) {\n\t\treturn true;\n\t}\n\t// Objects having a prototype are plain if and only if they are constructed with a global `Object` function and the prototype points to the prototype of a plain object...\n\treturn (\n\t\t// Cannot have own `constructor` property:\n\t\t!hasOwnProp( value, 'constructor' ) &&\n\n\t\t// Prototype `constructor` property must be a function (see also https://bugs.jquery.com/ticket/9897 and http://stackoverflow.com/questions/18531624/isplainobject-thing):\n\t\thasOwnProp( proto, 'constructor' ) &&\n\t\tisFunction( proto.constructor ) &&\n\t\tnativeClass( proto.constructor ) === '[object Function]' &&\n\n\t\t// Test for object-specific method:\n\t\thasOwnProp( proto, 'isPrototypeOf' ) &&\n\t\tisFunction( proto.isPrototypeOf ) &&\n\n\t\t(\n\t\t\t// Test if the prototype matches the global `Object` prototype (same realm):\n\t\t\tproto === objectPrototype ||\n\n\t\t\t// Test that all properties are own properties (cross-realm; *most* likely a plain object):\n\t\t\townProps( value )\n\t\t)\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isPlainObject;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 negative infinity.\n*\n* @param {number} x - input value\n* @returns {number} rounded value\n*\n* @example\n* var v = floor( -4.2 );\n* // returns -5.0\n*\n* @example\n* var v = floor( 9.99999 );\n* // returns 9.0\n*\n* @example\n* var v = floor( 0.0 );\n* // returns 0.0\n*\n* @example\n* var v = floor( NaN );\n* // returns NaN\n*/\nvar floor = Math.floor; // eslint-disable-line stdlib/no-builtin-math\n\n\n// EXPORTS //\n\nexport default floor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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';\nimport isInt from '@stdlib/math/base/assert/is-integer';\n\n\n// MAIN //\n\n/**\n* Tests if a number primitive is an integer value.\n*\n* @private\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a number primitive is an integer value\n*/\nfunction isInteger( value ) {\n\treturn (\n\t\tvalue < PINF &&\n\t\tvalue > NINF &&\n\t\tisInt( value )\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isInteger;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { isPrimitive as isNumber } from './../../is-number';\nimport isInt from './integer.js';\n\n\n// MAIN //\n\n/**\n* Tests if a value is a number primitive having an integer value.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a number primitive having an integer value\n*\n* @example\n* var bool = isInteger( -3.0 );\n* // returns true\n*\n* @example\n* var bool = isInteger( new Number( -3.0 ) );\n* // returns false\n*/\nfunction isInteger( value ) {\n\treturn (\n\t\tisNumber( value ) &&\n\t\tisInt( value )\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isInteger;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { isObject as isNumber } from './../../is-number';\nimport isInt from './integer.js';\n\n\n// MAIN //\n\n/**\n* Tests if a value is a number object having an integer value.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a number object having an integer value\n*\n* @example\n* var bool = isInteger( 3.0 );\n* // returns false\n*\n* @example\n* var bool = isInteger( new Number( 3.0 ) );\n* // returns true\n*/\nfunction isInteger( value ) {\n\treturn (\n\t\tisNumber( value ) &&\n\t\tisInt( value.valueOf() )\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isInteger;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isPrimitive from './primitive.js';\nimport isObject from './object.js';\n\n\n// MAIN //\n\n/**\n* Tests if a value is an integer.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether value is an integer\n*\n* @example\n* var bool = isInteger( 5.0 );\n* // returns true\n*\n* @example\n* var bool = isInteger( new Number( 5.0 ) );\n* // returns true\n*\n* @example\n* var bool = isInteger( -3.14 );\n* // returns false\n*\n* @example\n* var bool = isInteger( null );\n* // returns false\n*/\nfunction isInteger( value ) {\n\treturn ( isPrimitive( value ) || isObject( value ) );\n}\n\n\n// EXPORTS //\n\nexport default isInteger;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { isPrimitive as isInteger } from './../../is-integer';\n\n\n// MAIN //\n\n/**\n* Tests if a value is a number primitive having a nonnegative integer value.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a number primitive having a nonnegative integer value\n*\n* @example\n* var bool = isNonNegativeInteger( 3.0 );\n* // returns true\n*\n* @example\n* var bool = isNonNegativeInteger( new Number( 3.0 ) );\n* // returns false\n*/\nfunction isNonNegativeInteger( value ) {\n\treturn (\n\t\tisInteger( value ) &&\n\t\tvalue >= 0\n\t);\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 { isObject as isInteger } from './../../is-integer';\n\n\n// MAIN //\n\n/**\n* Tests if a value is a number object having a nonnegative integer value.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a number object having a nonnegative integer value\n*\n* @example\n* var bool = isNonNegativeInteger( 3.0 );\n* // returns false\n*\n* @example\n* var bool = isNonNegativeInteger( new Number( 3.0 ) );\n* // returns true\n*/\nfunction isNonNegativeInteger( value ) {\n\treturn (\n\t\tisInteger( value ) &&\n\t\tvalue.valueOf() >= 0\n\t);\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 isPrimitive from './primitive.js';\nimport isObject from './object.js';\n\n\n// MAIN //\n\n/**\n* Tests if a value is a nonnegative integer.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether value is a nonnegative integer\n*\n* @example\n* var bool = isNonNegativeInteger( 5.0 );\n* // returns true\n*\n* @example\n* var bool = isNonNegativeInteger( new Number( 5.0 ) );\n* // returns true\n*\n* @example\n* var bool = isNonNegativeInteger( -5.0 );\n* // returns false\n*\n* @example\n* var bool = isNonNegativeInteger( 3.14 );\n* // returns false\n*\n* @example\n* var bool = isNonNegativeInteger( null );\n* // returns false\n*/\nfunction isNonNegativeInteger( value ) {\n\treturn ( isPrimitive( value ) || isObject( value ) );\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/**\n* Test if a value is an integer.\n*\n* @module @stdlib/assert/is-integer\n*\n* @example\n* import isInteger from '@stdlib/assert/is-integer';\n*\n* var bool = isInteger( 5.0 );\n* // returns true\n*\n* bool = isInteger( new Number( 5.0 ) );\n* // returns true\n*\n* bool = isInteger( -3.14 );\n* // returns false\n*\n* bool = isInteger( null );\n* // returns false\n*\n* @example\n* // Use interface to check for integer primitives...\n* import { isPrimitive as isInteger } from '@stdlib/assert/is-integer';\n*\n* var bool = isInteger( -3.0 );\n* // returns true\n*\n* bool = isInteger( new Number( -3.0 ) );\n* // returns false\n*\n* @example\n* // Use interface to check for integer objects...\n* import { isObject as isInteger } from '@stdlib/assert/is-integer';\n*\n* var bool = isInteger( 3.0 );\n* // returns false\n*\n* bool = isInteger( new Number( 3.0 ) );\n* // returns true\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport isPrimitive from './primitive.js';\nimport isObject from './object.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'isPrimitive', isPrimitive );\nsetReadOnly( main, 'isObject', isObject );\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* Test if a value is a nonnegative integer.\n*\n* @module @stdlib/assert/is-nonnegative-integer\n*\n* @example\n* import isNonNegativeInteger from '@stdlib/assert/is-nonnegative-integer';\n*\n* var bool = isNonNegativeInteger( 5.0 );\n* // returns true\n*\n* bool = isNonNegativeInteger( new Number( 5.0 ) );\n* // returns true\n*\n* bool = isNonNegativeInteger( -5.0 );\n* // returns false\n*\n* bool = isNonNegativeInteger( 3.14 );\n* // returns false\n*\n* bool = isNonNegativeInteger( null );\n* // returns false\n*\n* @example\n* import { isPrimitive as isNonNegativeInteger } from '@stdlib/assert/is-nonnegative-integer';\n*\n* var bool = isNonNegativeInteger( 3.0 );\n* // returns true\n*\n* bool = isNonNegativeInteger( new Number( 3.0 ) );\n* // returns false\n*\n* @example\n* import { isObject as isNonNegativeInteger } from '@stdlib/assert/is-nonnegative-integer';\n*\n* var bool = isNonNegativeInteger( 3.0 );\n* // returns false\n*\n* bool = isNonNegativeInteger( new Number( 3.0 ) );\n* // returns true\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport isPrimitive from './primitive.js';\nimport isObject from './object.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'isPrimitive', isPrimitive );\nsetReadOnly( main, 'isObject', isObject );\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 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) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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/no-redeclare */\n\n'use strict';\n\n// MODULES //\n\nimport { isPrimitive as isNumber } from './../../is-number';\nimport isfinite from '@stdlib/math/base/assert/is-finite';\n\n\n// MAIN //\n\n/**\n* Tests if a value is a number primitive having a finite value.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a number primitive having a finite value\n*\n* @example\n* var bool = isFinite( -3.0 );\n* // returns true\n*\n* @example\n* var bool = isFinite( new Number( -3.0 ) );\n* // returns false\n*/\nfunction isFinite( value ) {\n\treturn (\n\t\tisNumber( value ) &&\n\t\tisfinite( value )\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isFinite;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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/no-redeclare */\n\n'use strict';\n\n// MODULES //\n\nimport { isObject as isNumber } from './../../is-number';\nimport isfinite from '@stdlib/math/base/assert/is-finite';\n\n\n// MAIN //\n\n/**\n* Tests if a value is a number object having a finite value.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a number object having a finite value\n*\n* @example\n* var bool = isFinite( 3.0 );\n* // returns false\n*\n* @example\n* var bool = isFinite( new Number( 3.0 ) );\n* // returns true\n*/\nfunction isFinite( value ) {\n\treturn (\n\t\tisNumber( value ) &&\n\t\tisfinite( value.valueOf() )\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isFinite;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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/no-redeclare */\n\n'use strict';\n\n// MODULES //\n\nimport isPrimitive from './primitive.js';\nimport isObject from './object.js';\n\n\n// MAIN //\n\n/**\n* Tests if a value is a finite number.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether a value is a finite number\n*\n* @example\n* var bool = isFinite( 5.0 );\n* // returns true\n*\n* @example\n* var bool = isFinite( new Number( 5.0 ) );\n* // returns true\n*\n* @example\n* var bool = isFinite( 1.0/0.0 );\n* // returns false\n*\n* @example\n* var bool = isFinite( null );\n* // returns false\n*/\nfunction isFinite( value ) {\n\treturn ( isPrimitive( value ) || isObject( value ) );\n}\n\n\n// EXPORTS //\n\nexport default isFinite;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport defineProperty from './../../define-property';\n\n\n// MAIN //\n\n/**\n* Defines a non-enumerable read-only accessor.\n*\n* @param {Object} obj - object on which to define the property\n* @param {(string|symbol)} prop - property name\n* @param {Function} getter - accessor\n*\n* @example\n* function getter() {\n* return 'bar';\n* }\n*\n* var obj = {};\n*\n* setNonEnumerableReadOnlyAccessor( obj, 'foo', getter );\n*\n* try {\n* obj.foo = 'boop';\n* } catch ( err ) {\n* console.error( err.message );\n* }\n*/\nfunction setNonEnumerableReadOnlyAccessor( obj, prop, getter ) { // eslint-disable-line id-length\n\tdefineProperty( obj, prop, {\n\t\t'configurable': false,\n\t\t'enumerable': false,\n\t\t'get': getter\n\t});\n}\n\n\n// EXPORTS //\n\nexport default setNonEnumerableReadOnlyAccessor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Queue node constructor.\n*\n* @private\n* @constructor\n* @param {*} value - node value\n* @returns {Node} Node instance\n*\n* @example\n* var node = new Node( 'foo' );\n* // returns \n*/\nfunction Node( value ) { // eslint-disable-line stdlib/no-redeclare\n\tthis.next = null;\n\tthis.prev = null;\n\tthis.value = value;\n\treturn this;\n}\n\n\n// EXPORTS //\n\nexport default Node;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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 no-restricted-syntax, no-invalid-this */\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from './../../define-nonenumerable-read-only-property';\nimport setReadOnlyAccessor from './../../define-nonenumerable-read-only-accessor';\nimport iteratorSymbol from '@stdlib/symbol/iterator';\nimport Node from './node.js'; // eslint-disable-line stdlib/no-redeclare\n\n\n// MAIN //\n\n/**\n* First-in-first-out queue constructor.\n*\n* @constructor\n* @returns {FIFO} FIFO queue instance\n*\n* @example\n* var queue = new FIFO();\n*\n* // Add values to the queue:\n* queue.push( 'foo' ).push( 'bar' );\n*\n* // Remove the first value:\n* var v = queue.pop();\n* // returns 'foo'\n*\n* // Add a new value to the queue:\n* queue.push( 'beep' );\n*\n* // Remove the \"oldest\" queue value:\n* v = queue.pop();\n* // returns 'bar'\n*/\nfunction FIFO() {\n\tif ( !(this instanceof FIFO) ) {\n\t\treturn new FIFO();\n\t}\n\tthis._length = 0;\n\tthis._first = null;\n\tthis._last = null;\n\treturn this;\n}\n\n/**\n* Clears the queue.\n*\n* @name clear\n* @memberof FIFO.prototype\n* @type {Function}\n* @returns {FIFO} queue instance\n*\n* @example\n* var queue = new FIFO();\n*\n* // Add values to the queue:\n* queue.push( 'foo' ).push( 'bar' );\n*\n* // Peek at the first value:\n* var v = queue.first();\n* // returns 'foo'\n*\n* // Examine the queue length:\n* var len = queue.length;\n* // returns 2\n*\n* // Clear all queue items:\n* queue.clear();\n*\n* // Peek at the first value:\n* v = queue.first();\n* // returns undefined\n*\n* // Examine the queue length:\n* len = queue.length;\n* // returns 0\n*/\nsetReadOnly( FIFO.prototype, 'clear', function clear() {\n\tthis._length = 0;\n\tthis._first = null;\n\tthis._last = null;\n\treturn this;\n});\n\n/**\n* Returns the \"oldest\" queue value (i.e., the value which is \"first-out\").\n*\n* @name first\n* @memberof FIFO.prototype\n* @type {Function}\n* @returns {(*|void)} \"oldest\" queue value\n*\n* @example\n* var queue = new FIFO();\n*\n* // Add values to the queue:\n* queue.push( 'foo' ).push( 'bar' );\n*\n* // Peek at the first value:\n* var v = queue.first();\n* // returns 'foo'\n*/\nsetReadOnly( FIFO.prototype, 'first', function first() {\n\tif ( this._length ) {\n\t\treturn this._first.value;\n\t}\n});\n\n/**\n* Returns an iterator for iterating over a queue.\n*\n* ## Notes\n*\n* - In order to prevent confusion arising from queue mutation during iteration, a returned iterator **always** iterates over a queue \"snapshot\", which is defined as the list of queue elements at the time of this method's invocation.\n*\n* @name iterator\n* @memberof FIFO.prototype\n* @type {Function}\n* @returns {Iterator} iterator\n*\n* @example\n* var queue = new FIFO();\n*\n* // Add values to the queue:\n* queue.push( 'foo' ).push( 'bar' );\n*\n* // Create an iterator:\n* var it = queue.iterator();\n*\n* // Iterate over the queue...\n* var v = it.next().value;\n* // returns 'foo'\n*\n* v = it.next().value;\n* // returns 'bar'\n*\n* var bool = it.next().done;\n* // returns true\n*/\nsetReadOnly( FIFO.prototype, 'iterator', function iterator() {\n\tvar values;\n\tvar iter;\n\tvar self;\n\tvar FLG;\n\tvar i;\n\n\tself = this;\n\n\t// Initialize the iteration index:\n\ti = -1;\n\n\t// Create a copy of queue values (necessary in order to \"snapshot\" the queue; otherwise, values could come and go between calls to `next`):\n\tvalues = this.toArray();\n\n\t// Create an iterator protocol-compliant object:\n\titer = {};\n\tsetReadOnly( iter, 'next', next );\n\tsetReadOnly( iter, 'return', end );\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 >= values.length ) {\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': values[ 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 self.iterator();\n\t}\n});\n\n/**\n* Returns the \"newest\" queue value (i.e., the value which is currently \"last-out\").\n*\n* @name last\n* @memberof FIFO.prototype\n* @type {Function}\n* @returns {(*|void)} \"newest\" queue value\n*\n* @example\n* var queue = new FIFO();\n*\n* // Add values to the queue:\n* queue.push( 'foo' ).push( 'bar' );\n*\n* // Peek at the last value:\n* var v = queue.last();\n* // returns 'bar'\n*/\nsetReadOnly( FIFO.prototype, 'last', function last() {\n\tif ( this._length ) {\n\t\treturn this._last.value;\n\t}\n});\n\n/**\n* Queue length.\n*\n* @name length\n* @memberof FIFO.prototype\n* @type {NonNegativeInteger}\n*\n* @example\n* var queue = new FIFO();\n*\n* // Examine the initial queue length:\n* var len = queue.length;\n* // returns 0\n*\n* // Add values to the queue:\n* queue.push( 'foo' ).push( 'bar' );\n*\n* // Retrieve the current queue length:\n* len = queue.length;\n* // returns 2\n*/\nsetReadOnlyAccessor( FIFO.prototype, 'length', function get() {\n\treturn this._length;\n});\n\n/**\n* Removes a value from the queue.\n*\n* @name pop\n* @memberof FIFO.prototype\n* @type {Function}\n* @returns {(*|void)} removed value\n*\n* @example\n* var queue = new FIFO();\n*\n* // Add values to the queue:\n* queue.push( 'foo' ).push( 'bar' );\n*\n* // Remove the first value:\n* var v = queue.pop();\n* // returns 'foo'\n*\n* // Add a new value to the queue:\n* queue.push( 'beep' );\n*\n* // Remove the \"oldest\" queue value:\n* v = queue.pop();\n* // returns 'bar'\n*/\nsetReadOnly( FIFO.prototype, 'pop', function pop() {\n\tvar value;\n\tif ( this._length ) {\n\t\t// Retrieve the \"first-out\" value:\n\t\tvalue = this._first.value;\n\n\t\t// Check whether we have a new \"first-out\" or whether we have drained the queue...\n\t\tif ( this._first.next ) {\n\t\t\tthis._first = this._first.next;\n\t\t\tthis._first.prev = null;\n\t\t} else {\n\t\t\t// Queue is empty:\n\t\t\tthis._first = null;\n\t\t\tthis._last = null;\n\t\t}\n\t\t// Decrement the queue length:\n\t\tthis._length -= 1;\n\t}\n\treturn value;\n});\n\n/**\n* Adds a value to the queue.\n*\n* @name push\n* @memberof FIFO.prototype\n* @type {Function}\n* @returns {FIFO} queue instance\n*\n* @example\n* var queue = new FIFO();\n*\n* // Add values to the queue:\n* queue.push( 'foo' ).push( 'bar' );\n*\n* // Remove the first value:\n* var v = queue.pop();\n* // returns 'foo'\n*\n* // Add a new value to the queue:\n* queue.push( 'beep' );\n*\n* // Remove the \"oldest\" queue value:\n* v = queue.pop();\n* // returns 'bar'\n*/\nsetReadOnly( FIFO.prototype, 'push', function push( value ) {\n\tvar node;\n\n\t// Create a new queue node:\n\tnode = new Node( value );\n\n\t// Check whether the queue is currently empty...\n\tif ( this._length === 0 ) {\n\t\t// This is the only queued node, making it both the first and last node:\n\t\tthis._first = node;\n\t\tthis._last = node;\n\t} else {\n\t\t// Link the node to the previous most \"recent\" node:\n\t\tnode.prev = this._last;\n\n\t\t// Link the previous most \"recent\" node to the new node:\n\t\tthis._last.next = node;\n\n\t\t// Update the queue pointer for the \"last\" node to the new node:\n\t\tthis._last = node;\n\t}\n\t// Increment the queue length:\n\tthis._length += 1;\n\n\treturn this;\n});\n\n/**\n* Returns an array of queue values.\n*\n* @name toArray\n* @memberof FIFO.prototype\n* @type {Function}\n* @returns {Array} queue values\n*\n* @example\n* var queue = new FIFO();\n*\n* // Add values to the queue:\n* queue.push( 'foo' ).push( 'bar' );\n*\n* // Get an array of queue values:\n* var vals = queue.toArray();\n* // returns [ 'foo', 'bar' ]\n*/\nsetReadOnly( FIFO.prototype, 'toArray', function toArray() {\n\tvar node;\n\tvar out;\n\tvar i;\n\n\tout = [];\n\tnode = this._first;\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tout.push( node.value );\n\t\tnode = node.next;\n\t}\n\treturn out;\n});\n\n/**\n* Serializes a queue as JSON.\n*\n* ## Notes\n*\n* - `JSON.stringify()` implicitly calls this method when stringifying a `FIFO` instance.\n*\n* @name toJSON\n* @memberof FIFO.prototype\n* @type {Function}\n* @returns {Object} serialized queue\n*\n* @example\n* var queue = new FIFO();\n*\n* // Add values to the queue:\n* queue.push( 'foo' ).push( 'bar' );\n*\n* // Serialize to JSON:\n* var o = queue.toJSON();\n* // returns { 'type': 'fifo', 'data': [ 'foo', 'bar' ] }\n*/\nsetReadOnly( FIFO.prototype, 'toJSON', function toJSON() {\n\tvar out = {};\n\tout.type = 'fifo';\n\tout.data = this.toArray();\n\treturn out;\n});\n\n\n// EXPORTS //\n\nexport default FIFO;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Test if a value is a finite number.\n*\n* @module @stdlib/assert/is-finite\n*\n* @example\n* import isFinite from '@stdlib/assert/is-finite';\n*\n* var bool = isFinite( 5.0 );\n* // returns true\n*\n* bool = isFinite( new Number( 5.0 ) );\n* // returns true\n*\n* bool = isFinite( 1.0/0.0 );\n* // returns false\n*\n* bool = isFinite( null );\n* // returns false\n*\n* @example\n* import { isPrimitive as isFinite } from '@stdlib/assert/is-finite';\n*\n* var bool = isFinite( -3.0 );\n* // returns true\n*\n* bool = isFinite( new Number( -3.0 ) );\n* // returns false\n*\n* @example\n* import { isObject as isFinite } from '@stdlib/assert/is-finite';\n*\n* var bool = isFinite( 3.0 );\n* // returns false\n*\n* bool = isFinite( new Number( 3.0 ) );\n* // returns true\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport isPrimitive from './primitive.js';\nimport isObject from './object.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'isPrimitive', isPrimitive );\nsetReadOnly( main, 'isObject', isObject );\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'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) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isError from '@stdlib/assert/is-error';\n\n\n// MAIN //\n\n/**\n* Wraps `require` in a try/catch block.\n*\n* @param {string} id - module id\n* @returns {*|Error} `module.exports` of the resolved module or an error\n*\n* @example\n* var out = tryRequire( 'beepboop' );\n*\n* if ( out instanceof Error ) {\n* console.error( out.message );\n* }\n*/\nfunction tryRequire( id ) {\n\ttry {\n\t\treturn require( id ); // eslint-disable-line stdlib/no-dynamic-require\n\t} catch ( error ) {\n\t\tif ( isError( error ) ) {\n\t\t\treturn error;\n\t\t}\n\t\t// Handle case where a literal is thrown...\n\t\tif ( typeof error === 'object' ) {\n\t\t\treturn new Error( JSON.stringify( error ) );\n\t\t}\n\t\treturn new Error( error.toString() );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default tryRequire;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport getPrototypeOf from '@stdlib/utils/get-prototype-of';\nimport nativeClass from '@stdlib/utils/native-class';\n\n\n// MAIN //\n\n/**\n* Tests if a value is an `Error` object.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether a value is an `Error` object\n*\n* @example\n* var bool = isError( new Error( 'beep' ) );\n* // returns true\n*\n* @example\n* var bool = isError( {} );\n* // returns false\n*/\nfunction isError( value ) {\n\tif ( typeof value !== 'object' || value === null ) {\n\t\treturn false;\n\t}\n\t// Check for `Error` objects from the same realm (same Node.js `vm` or same `Window` object)...\n\tif ( value instanceof Error ) {\n\t\treturn true;\n\t}\n\t// Walk the prototype tree until we find an object having the desired native class...\n\twhile ( value ) {\n\t\tif ( nativeClass( value ) === '[object Error]' ) {\n\t\t\treturn true;\n\t\t}\n\t\tvalue = getPrototypeOf( value );\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default isError;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Maximum length of a generic array.\n*\n* @module @stdlib/constants/array/max-array-length\n*\n* @example\n* import MAX_ARRAY_LENGTH from '@stdlib/constants/array/max-array-length';\n* // returns 4294967295\n*/\n\n// MAIN //\n\n/**\n* Maximum length of a generic array.\n*\n* ```tex\n* 2^{32} - 1\n* ```\n*\n* @constant\n* @type {uinteger32}\n* @default 4294967295\n*/\nvar MAX_ARRAY_LENGTH = 4294967295>>>0; // asm type annotation\n\n\n// EXPORTS //\n\nexport default MAX_ARRAY_LENGTH;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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 '@stdlib/math/base/assert/is-integer';\nimport MAX_LENGTH from '@stdlib/constants/array/max-array-length';\n\n\n// MAIN //\n\n/**\n* Tests if a value is an array-like object.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is an array-like object\n*\n* @example\n* var bool = isArrayLikeObject( [] );\n* // returns true\n*\n* @example\n* var bool = isArrayLikeObject( { 'length':10 } );\n* // returns true\n*\n* @example\n* var bool = isArrayLikeObject( 'beep' );\n* // returns false\n*/\nfunction isArrayLikeObject( value ) {\n\treturn (\n\t\ttypeof value === 'object' &&\n\t\tvalue !== null &&\n\t\ttypeof value.length === 'number' &&\n\t\tisInteger( value.length ) &&\n\t\tvalue.length >= 0 &&\n\t\tvalue.length <= MAX_LENGTH\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isArrayLikeObject;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 an array of an object's own enumerable property names.\n*\n* ## Notes\n*\n* - In contrast to the built-in `Object.keys()`, this function returns an empty array if provided `undefined` or `null`, rather than throwing an error.\n*\n* @private\n* @param {*} value - input object\n* @returns {Array} a list of own enumerable property names\n*\n* @example\n* var obj = {\n* 'beep': 'boop',\n* 'foo': 3.14\n* };\n*\n* var k = keys( obj );\n* // e.g., returns [ 'beep', 'foo' ]\n*/\nfunction keys( value ) {\n\treturn Object.keys( Object( value ) );\n}\n\n\n// EXPORTS //\n\nexport default keys;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 bool = ( typeof Object.keys !== 'undefined' );\n\n\n// EXPORTS //\n\nexport default bool;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isArguments from './main.js';\n\n\n// VARIABLES //\n\nvar bool;\n\n\n// FUNCTIONS //\n\n/**\n* Detects whether an environment returns the expected internal class of the `arguments` object.\n*\n* @private\n* @returns {boolean} boolean indicating whether an environment behaves as expected\n*\n* @example\n* var bool = detect();\n* // returns \n*/\nfunction detect() {\n\treturn isArguments( arguments );\n}\n\n\n// MAIN //\n\nbool = detect();\n\n\n// EXPORTS //\n\nexport default bool;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport nativeClass from '@stdlib/utils/native-class';\n\n\n// MAIN //\n\n/**\n* Tests whether a value is an `arguments` object.\n*\n* @private\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether a value is an `arguments` object\n*\n* @example\n* function foo() {\n* return arguments;\n* }\n*\n* var bool = isArguments( foo() );\n* // returns true\n*\n* @example\n* var bool = isArguments( [] );\n* // returns false\n*/\nfunction isArguments( value ) {\n\treturn ( nativeClass( value ) === '[object Arguments]' );\n}\n\n\n// EXPORTS //\n\nexport default isArguments;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 value is a string primitive.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a string primitive\n*\n* @example\n* var bool = isString( 'beep' );\n* // returns true\n*\n* @example\n* var bool = isString( new String( 'beep' ) );\n* // returns false\n*/\nfunction isString( value ) {\n\treturn ( typeof value === 'string' );\n}\n\n\n// EXPORTS //\n\nexport default isString;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// eslint-disable-next-line stdlib/no-redeclare\nvar valueOf = String.prototype.valueOf; // non-generic\n\n\n// EXPORTS //\n\nexport default valueOf;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport hasToStringTag from './../../has-tostringtag-support';\nimport nativeClass from '@stdlib/utils/native-class';\nimport test from './try2valueof.js';\n\n\n// VARIABLES //\n\nvar FLG = hasToStringTag();\n\n\n// MAIN //\n\n/**\n* Tests if a value is a string object.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a string object\n*\n* @example\n* var bool = isString( new String( 'beep' ) );\n* // returns true\n*\n* @example\n* var bool = isString( 'beep' );\n* // returns false\n*/\nfunction isString( value ) {\n\tif ( typeof value === 'object' ) {\n\t\tif ( value instanceof String ) {\n\t\t\treturn true;\n\t\t}\n\t\tif ( FLG ) {\n\t\t\treturn test( value );\n\t\t}\n\t\treturn ( nativeClass( value ) === '[object String]' );\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default isString;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport valueOf from './valueof.js'; // eslint-disable-line stdlib/no-redeclare\n\n\n// MAIN //\n\n/**\n* Attempts to extract a string value.\n*\n* @private\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a string can be extracted\n*/\nfunction test( value ) {\n\ttry {\n\t\tvalueOf.call( value );\n\t\treturn true;\n\t} catch ( err ) { // eslint-disable-line no-unused-vars\n\t\treturn false;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default test;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isPrimitive from './primitive.js';\nimport isObject from './object.js';\n\n\n// MAIN //\n\n/**\n* Tests if a value is a string.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether value is a string\n*\n* @example\n* var bool = isString( new String( 'beep' ) );\n* // returns true\n*\n* @example\n* var bool = isString( 'beep' );\n* // returns true\n*/\nfunction isString( value ) {\n\treturn ( isPrimitive( value ) || isObject( value ) );\n}\n\n\n// EXPORTS //\n\nexport default isString;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { isPrimitive as isNumber } from './../../is-number';\nimport isNan from '@stdlib/math/base/assert/is-nan';\n\n\n// MAIN //\n\n/**\n* Tests if a value is a `NaN` number primitive.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a `NaN` number primitive\n*\n* @example\n* var bool = isnan( NaN );\n* // returns true\n*\n* @example\n* var bool = isnan( 3.14 );\n* // returns false\n*\n* @example\n* var bool = isnan( new Number( NaN ) );\n* // returns false\n*/\nfunction isnan( value ) {\n\treturn (\n\t\tisNumber( value ) &&\n\t\tisNan( value )\n\t);\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 { isObject as isNumber } from './../../is-number';\nimport isNan from '@stdlib/math/base/assert/is-nan';\n\n\n// MAIN //\n\n/**\n* Tests if a value is a number object having a value of `NaN`.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a number object having a value of `NaN`\n*\n* @example\n* var bool = isnan( NaN );\n* // returns false\n*\n* @example\n* var bool = isnan( new Number( NaN ) );\n* // returns true\n*/\nfunction isnan( value ) {\n\treturn (\n\t\tisNumber( value ) &&\n\t\tisNan( value.valueOf() )\n\t);\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 isPrimitive from './primitive.js';\nimport isObject from './object.js';\n\n\n// MAIN //\n\n/**\n* Tests if a value is `NaN`.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether value is `NaN`\n*\n* @example\n* var bool = isnan( NaN );\n* // returns true\n*\n* @example\n* var bool = isnan( new Number( NaN ) );\n* // returns true\n*\n* @example\n* var bool = isnan( 3.14 );\n* // returns false\n*\n* @example\n* var bool = isnan( null );\n* // returns false\n*/\nfunction isnan( value ) {\n\treturn ( isPrimitive( value ) || isObject( value ) );\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/**\n* Test if a value is a string.\n*\n* @module @stdlib/assert/is-string\n*\n* @example\n* import isString from '@stdlib/assert/is-string';\n*\n* var bool = isString( 'beep' );\n* // returns true\n*\n* bool = isString( new String( 'beep' ) );\n* // returns true\n*\n* bool = isString( 5 );\n* // returns false\n*\n* @example\n* import { isObject as isString } from '@stdlib/assert/is-string';\n*\n* var bool = isString( new String( 'beep' ) );\n* // returns true\n*\n* bool = isString( 'beep' );\n* // returns false\n*\n* @example\n* import { isPrimitive as isString } from '@stdlib/assert/is-string';\n*\n* var bool = isString( 'beep' );\n* // returns true\n*\n* bool = isString( new String( 'beep' ) );\n* // returns false\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport isPrimitive from './primitive.js';\nimport isObject from './object.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'isPrimitive', isPrimitive );\nsetReadOnly( main, 'isObject', isObject );\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* Test if a value is `NaN`.\n*\n* @module @stdlib/assert/is-nan\n*\n* @example\n* import isnan from '@stdlib/assert/is-nan';\n*\n* var bool = isnan( NaN );\n* // returns true\n*\n* bool = isnan( new Number( NaN ) );\n* // returns true\n*\n* bool = isnan( 3.14 );\n* // returns false\n*\n* bool = isnan( null );\n* // returns false\n*\n* @example\n* import { isPrimitive as isnan } from '@stdlib/assert/is-nan';\n*\n* var bool = isnan( NaN );\n* // returns true\n*\n* bool = isnan( 3.14 );\n* // returns false\n*\n* bool = isnan( new Number( NaN ) );\n* // returns false\n*\n* @example\n* import { isObject as isnan } from '@stdlib/assert/is-nan';\n*\n* var bool = isnan( NaN );\n* // returns false\n*\n* bool = isnan( new Number( NaN ) );\n* // returns true\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport isPrimitive from './primitive.js';\nimport isObject from './object.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'isPrimitive', isPrimitive );\nsetReadOnly( main, 'isObject', isObject );\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// MAIN //\n\n/**\n* Tests if an object's own property is enumerable.\n*\n* @private\n* @name isEnumerableProperty\n* @type {Function}\n* @param {*} value - value to test\n* @param {*} property - property to test\n* @returns {boolean} boolean indicating if an object property is enumerable\n*\n* @example\n* var beep = {\n* 'boop': true\n* };\n*\n* var bool = isEnumerableProperty( beep, 'boop' );\n* // returns true\n*\n* @example\n* var beep = {\n* 'boop': true\n* };\n*\n* var bool = isEnumerableProperty( beep, 'hasOwnProperty' );\n* // returns false\n*/\nvar isEnumerableProperty = Object.prototype.propertyIsEnumerable;\n\n\n// EXPORTS //\n\nexport default isEnumerableProperty;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isEnum from './native.js';\n\n\n// VARIABLES //\n\nvar bool;\n\n\n// FUNCTIONS //\n\n/**\n* Detects whether an environment has a bug where String indices are not detected as \"enumerable\" properties. Observed in Node v0.10.\n*\n* @private\n* @returns {boolean} boolean indicating whether an environment has the bug\n*/\nfunction detect() {\n\treturn !isEnum.call( 'beep', '0' );\n}\n\n\n// MAIN //\n\nbool = detect();\n\n\n// EXPORTS //\n\nexport default bool;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isString from './../../is-string';\nimport { isPrimitive as isnan } from './../../is-nan';\nimport { isPrimitive as isInteger } from './../../is-integer';\nimport isEnum from './native.js';\nimport hasStringEnumBug from './has_string_enumerability_bug.js';\n\n\n// MAIN //\n\n/**\n* Tests if an object's own property is enumerable.\n*\n* @param {*} value - value to test\n* @param {*} property - property to test\n* @returns {boolean} boolean indicating if an object property is enumerable\n*\n* @example\n* var beep = {\n* 'boop': true\n* };\n*\n* var bool = isEnumerableProperty( beep, 'boop' );\n* // returns true\n*\n* @example\n* var beep = {\n* 'boop': true\n* };\n*\n* var bool = isEnumerableProperty( beep, 'hasOwnProperty' );\n* // returns false\n*/\nfunction isEnumerableProperty( value, property ) {\n\tvar bool;\n\tif (\n\t\tvalue === void 0 ||\n\t\tvalue === null\n\t) {\n\t\treturn false;\n\t}\n\tbool = isEnum.call( value, property );\n\tif ( !bool && hasStringEnumBug && isString( value ) ) {\n\t\t// Note: we only check for indices, as properties attached to a `String` object are properly detected as enumerable above.\n\t\tproperty = +property;\n\t\treturn (\n\t\t\t!isnan( property ) &&\n\t\t\tisInteger( property ) &&\n\t\t\tproperty >= 0 &&\n\t\t\tproperty < value.length\n\t\t);\n\t}\n\treturn bool;\n}\n\n\n// EXPORTS //\n\nexport default isEnumerableProperty;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Test if a value is an `arguments` object.\n*\n* @module @stdlib/assert/is-arguments\n*\n* @example\n* import isArguments from '@stdlib/assert/is-arguments';\n*\n* function foo() {\n* return arguments;\n* }\n*\n* var bool = isArguments( foo() );\n* // returns true\n*\n* bool = isArguments( [] );\n* // returns false\n*/\n\n// MODULES //\n\nimport hasArgumentsClass from './detect.js';\nimport main from './main.js';\nimport polyfill from './polyfill.js';\n\n\n// MAIN //\n\nvar isArguments;\nif ( hasArgumentsClass ) {\n\tisArguments = main;\n} else {\n\tisArguments = polyfill;\n}\n\n\n// EXPORTS //\n\nexport default isArguments;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport hasOwnProp from './../../has-own-property';\nimport isEnumerableProperty from './../../is-enumerable-property';\nimport isArray from './../../is-array';\nimport isInteger from '@stdlib/math/base/assert/is-integer';\nimport MAX_LENGTH from '@stdlib/constants/uint32/max';\n\n\n// MAIN //\n\n/**\n* Tests whether a value is an `arguments` object.\n*\n* @private\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether a value is an `arguments` object\n*\n* @example\n* function foo() {\n* return arguments;\n* }\n*\n* var bool = isArguments( foo() );\n* // returns true\n*\n* @example\n* var bool = isArguments( [] );\n* // returns false\n*/\nfunction isArguments( value ) {\n\treturn (\n\t\tvalue !== null &&\n\t\ttypeof value === 'object' &&\n\t\t!isArray( value ) &&\n\t\ttypeof value.length === 'number' &&\n\t\tisInteger( value.length ) &&\n\t\tvalue.length >= 0 &&\n\t\tvalue.length <= MAX_LENGTH &&\n\t\thasOwnProp( value, 'callee' ) &&\n\t\t!isEnumerableProperty( value, 'callee' )\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isArguments;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isArguments from '@stdlib/assert/is-arguments';\nimport builtin from './builtin.js';\n\n\n// VARIABLES //\n\nvar slice = Array.prototype.slice;\n\n\n// MAIN //\n\n/**\n* Returns an array of an object's own enumerable property names.\n*\n* @private\n* @param {*} value - input object\n* @returns {Array} a list of own enumerable property names\n*\n* @example\n* var obj = {\n* 'beep': 'boop',\n* 'foo': 3.14\n* };\n*\n* var k = keys( obj );\n* // e.g., returns [ 'beep', 'foo' ]\n*/\nfunction keys( value ) {\n\tif ( isArguments( value ) ) {\n\t\treturn builtin( slice.call( value ) );\n\t}\n\treturn builtin( value );\n}\n\n\n// EXPORTS //\n\nexport default keys;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isEnumerableProperty from '@stdlib/assert/is-enumerable-property';\nimport noop from './../../noop';\n\n\n// MAIN //\n\n// Note: certain environments treat an object's prototype as enumerable, which, as a matter of convention, it shouldn't be...\nvar bool = isEnumerableProperty( noop, 'prototype' );\n\n\n// EXPORTS //\n\nexport default bool;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* No operation.\n*\n* @example\n* noop();\n* // ...does nothing.\n*/\nfunction noop() {\n\t// Empty function...\n}\n\n\n// EXPORTS //\n\nexport default noop;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isEnumerableProperty from '@stdlib/assert/is-enumerable-property';\n\n\n// VARIABLES //\n\nvar obj = {\n\t'toString': null\n};\n\n\n// MAIN //\n\n// Note: certain environments don't allow enumeration of overwritten properties which are considered non-enumerable...\nvar bool = !isEnumerableProperty( obj, 'toString' );\n\n\n// EXPORTS //\n\nexport default bool;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Maximum length of a typed array.\n*\n* @module @stdlib/constants/array/max-typed-array-length\n*\n* @example\n* import MAX_TYPED_ARRAY_LENGTH from '@stdlib/constants/array/max-typed-array-length';\n* // returns 9007199254740991\n*/\n\n// MAIN //\n\n/**\n* Maximum length of a typed array.\n*\n* ```tex\n* 2^{53} - 1\n* ```\n*\n* @constant\n* @type {number}\n* @default 9007199254740991\n*/\nvar MAX_TYPED_ARRAY_LENGTH = 9007199254740991;\n\n\n// EXPORTS //\n\nexport default MAX_TYPED_ARRAY_LENGTH;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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 '@stdlib/math/base/assert/is-integer';\nimport MAX_LENGTH from '@stdlib/constants/array/max-typed-array-length';\n\n\n// MAIN //\n\n/**\n* Tests if a value is a collection.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether a value is a collection\n*\n* @example\n* var bool = isCollection( [] );\n* // returns true\n*\n* @example\n* var bool = isCollection( {} );\n* // returns false\n*/\nfunction isCollection( value ) {\n\treturn (\n\t\ttypeof value === 'object' &&\n\t\tvalue !== null &&\n\t\ttypeof value.length === 'number' &&\n\t\tisInteger( value.length ) &&\n\t\tvalue.length >= 0 &&\n\t\tvalue.length <= MAX_LENGTH\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isCollection;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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 '@stdlib/assert/is-nan';\nimport isCollection from '@stdlib/assert/is-collection';\nimport { isPrimitive as isString } from '@stdlib/assert/is-string';\nimport { isPrimitive as isInteger } from '@stdlib/assert/is-integer';\nimport format from '@stdlib/string/format';\n\n\n// MAIN //\n\n/**\n* Returns the first index at which a given element can be found.\n*\n* @param {ArrayLike} arr - array-like object\n* @param {*} searchElement - element to find\n* @param {integer} [fromIndex] - starting index (if negative, the start index is determined relative to last element)\n* @throws {TypeError} must provide an array-like object\n* @throws {TypeError} third argument must be an integer\n* @returns {integer} index or -1\n*\n* @example\n* var arr = [ 4, 3, 2, 1 ];\n* var idx = indexOf( arr, 3 );\n* // returns 1\n*\n* @example\n* var arr = [ 4, 3, 2, 1 ];\n* var idx = indexOf( arr, 5 );\n* // returns -1\n*\n* @example\n* // Using a `fromIndex`:\n* var arr = [ 1, 2, 3, 4, 5, 2, 6 ];\n* var idx = indexOf( arr, 2, 3 );\n* // returns 5\n*\n* @example\n* // `fromIndex` which exceeds `array` length:\n* var arr = [ 1, 2, 3, 4, 2, 5 ];\n* var idx = indexOf( arr, 2, 10 );\n* // returns -1\n*\n* @example\n* // Negative `fromIndex`:\n* var arr = [ 1, 2, 3, 4, 5, 2, 6, 2 ];\n* var idx = indexOf( arr, 2, -4 );\n* // returns 5\n*\n* idx = indexOf( arr, 2, -1 );\n* // returns 7\n*\n* @example\n* // Negative `fromIndex` exceeding input `array` length:\n* var arr = [ 1, 2, 3, 4, 5, 2, 6 ];\n* var idx = indexOf( arr, 2, -10 );\n* // returns 1\n*\n* @example\n* // Array-like objects:\n* var str = 'bebop';\n* var idx = indexOf( str, 'o' );\n* // returns 3\n*/\nfunction indexOf( arr, searchElement, fromIndex ) {\n\tvar len;\n\tvar i;\n\tif ( !isCollection( arr ) && !isString( arr ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an array-like object. Value: `%s`.', arr ) );\n\t}\n\tlen = arr.length;\n\tif ( len === 0 ) {\n\t\treturn -1;\n\t}\n\tif ( arguments.length === 3 ) {\n\t\tif ( !isInteger( fromIndex ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Third argument must be an integer. Value: `%s`.', fromIndex ) );\n\t\t}\n\t\tif ( fromIndex >= 0 ) {\n\t\t\tif ( fromIndex >= len ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t\ti = fromIndex;\n\t\t} else {\n\t\t\ti = len + fromIndex;\n\t\t\tif ( i < 0 ) {\n\t\t\t\ti = 0;\n\t\t\t}\n\t\t}\n\t} else {\n\t\ti = 0;\n\t}\n\t// Check for `NaN`...\n\tif ( isnan( searchElement ) ) {\n\t\tfor ( ; i < len; i++ ) {\n\t\t\tif ( isnan( arr[i] ) ) {\n\t\t\t\treturn i;\n\t\t\t}\n\t\t}\n\t} else {\n\t\tfor ( ; i < len; i++ ) {\n\t\t\tif ( arr[ i ] === searchElement ) {\n\t\t\t\treturn i;\n\t\t\t}\n\t\t}\n\t}\n\treturn -1;\n}\n\n\n// EXPORTS //\n\nexport default indexOf;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 a value equals the prototype of its constructor.\n*\n* @private\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether a value equals the prototype of its constructor\n*/\nfunction isConstructorPrototype( value ) {\n\treturn ( value.constructor && value.constructor.prototype === value );\n}\n\n\n// EXPORTS //\n\nexport default isConstructorPrototype;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 w = ( typeof window === 'undefined' ) ? void 0 : window;\n\n\n// EXPORTS //\n\nexport default w;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport hasOwnProp from '@stdlib/assert/has-own-property';\nimport indexOf from './../../index-of';\nimport typeOf from './../../type-of';\nimport isConstructorPrototype from './is_constructor_prototype.js';\nimport EXCLUDED_KEYS from './excluded_keys.json';\nimport win from './window.js';\n\n\n// VARIABLES //\n\nvar bool;\n\n\n// FUNCTIONS //\n\n/**\n* Determines whether an environment throws when comparing to the prototype of a value's constructor (e.g., [IE9][1]).\n*\n* [1]: https://stackoverflow.com/questions/7688070/why-is-comparing-the-constructor-property-of-two-windows-unreliable\n*\n* @private\n* @returns {boolean} boolean indicating whether an environment is buggy\n*/\nfunction check() {\n\tvar k;\n\tif ( typeOf( win ) === 'undefined' ) {\n\t\treturn false;\n\t}\n\tfor ( k in win ) { // eslint-disable-line guard-for-in\n\t\ttry {\n\t\t\tif (\n\t\t\t\tindexOf( EXCLUDED_KEYS, k ) === -1 &&\n\t\t\t\thasOwnProp( win, k ) &&\n\t\t\t\twin[ k ] !== null &&\n\t\t\t\ttypeOf( win[ k ] ) === 'object'\n\t\t\t) {\n\t\t\t\tisConstructorPrototype( win[ k ] );\n\t\t\t}\n\t\t} catch ( err ) { // eslint-disable-line no-unused-vars\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// MAIN //\n\nbool = check();\n\n\n// EXPORTS //\n\nexport default bool;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 bool = ( typeof window !== 'undefined' );\n\n\n// EXPORTS //\n\nexport default bool;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport hasArgumentsBug from './has_arguments_bug.js';\nimport HAS_BUILTIN from './has_builtin.js';\nimport builtin from './builtin.js';\nimport wrapper from './builtin_wrapper.js';\nimport polyfill from './polyfill.js';\n\n\n// MAIN //\n\n/**\n* Returns an array of an object's own enumerable property names.\n*\n* @name keys\n* @type {Function}\n* @param {*} value - input object\n* @returns {Array} a list of own enumerable property names\n*\n* @example\n* var obj = {\n* 'beep': 'boop',\n* 'foo': 3.14\n* };\n*\n* var k = keys( obj );\n* // e.g., returns [ 'beep', 'foo' ]\n*/\nvar keys;\nif ( HAS_BUILTIN ) {\n\tif ( hasArgumentsBug() ) {\n\t\tkeys = wrapper;\n\t} else {\n\t\tkeys = builtin;\n\t}\n} else {\n\tkeys = polyfill;\n}\n\n\n// EXPORTS //\n\nexport default keys;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport keys from './builtin.js';\n\n\n// FUNCTIONS //\n\n/**\n* Tests the built-in `Object.keys()` implementation when provided `arguments`.\n*\n* @private\n* @returns {boolean} boolean indicating whether the built-in implementation returns the expected number of keys\n*/\nfunction test() {\n\treturn ( keys( arguments ) || '' ).length !== 2;\n}\n\n\n// MAIN //\n\n/**\n* Tests whether the built-in `Object.keys()` implementation supports providing `arguments` as an input value.\n*\n* ## Notes\n*\n* - Safari 5.0 does **not** support `arguments` as an input value.\n*\n* @private\n* @returns {boolean} boolean indicating whether a built-in implementation supports `arguments`\n*/\nfunction check() {\n\treturn test( 1, 2 );\n}\n\n\n// EXPORTS //\n\nexport default check;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isObjectLike from '@stdlib/assert/is-object-like';\nimport hasOwnProp from '@stdlib/assert/has-own-property';\nimport isArguments from '@stdlib/assert/is-arguments';\nimport HAS_ENUM_PROTO_BUG from './has_enumerable_prototype_bug.js';\nimport HAS_NON_ENUM_PROPS_BUG from './has_non_enumerable_properties_bug.js';\nimport isConstructorPrototype from './is_constructor_prototype_wrapper.js';\nimport NON_ENUMERABLE from './non_enumerable.json';\n\n\n// MAIN //\n\n/**\n* Returns an array of an object's own enumerable property names.\n*\n* @private\n* @param {*} value - input object\n* @returns {Array} a list of own enumerable property names\n*\n* @example\n* var obj = {\n* 'beep': 'boop',\n* 'foo': 3.14\n* };\n*\n* var k = keys( obj );\n* // e.g., returns [ 'beep', 'foo' ]\n*/\nfunction keys( value ) {\n\tvar skipConstructor;\n\tvar skipPrototype;\n\tvar isFcn;\n\tvar out;\n\tvar k;\n\tvar p;\n\tvar i;\n\n\tout = [];\n\tif ( isArguments( value ) ) {\n\t\t// Account for environments which treat `arguments` differently...\n\t\tfor ( i = 0; i < value.length; i++ ) {\n\t\t\tout.push( i.toString() );\n\t\t}\n\t\t// Note: yes, we are precluding the `arguments` array-like object from having other enumerable properties; however, this should (1) be very rare and (2) not be encouraged (e.g., doing something like `arguments.a = 'b'`; in certain engines directly manipulating the `arguments` value results in automatic de-optimization).\n\t\treturn out;\n\t}\n\tif ( typeof value === 'string' ) {\n\t\t// Account for environments which do not treat string character indices as \"own\" properties...\n\t\tif ( value.length > 0 && !hasOwnProp( value, '0' ) ) {\n\t\t\tfor ( i = 0; i < value.length; i++ ) {\n\t\t\t\tout.push( i.toString() );\n\t\t\t}\n\t\t}\n\t} else {\n\t\tisFcn = ( typeof value === 'function' );\n\t\tif ( isFcn === false && !isObjectLike( value ) ) {\n\t\t\treturn out;\n\t\t}\n\t\tskipPrototype = ( HAS_ENUM_PROTO_BUG && isFcn );\n\t}\n\tfor ( k in value ) {\n\t\tif ( !( skipPrototype && k === 'prototype' ) && hasOwnProp( value, k ) ) {\n\t\t\tout.push( String( k ) );\n\t\t}\n\t}\n\tif ( HAS_NON_ENUM_PROPS_BUG ) {\n\t\tskipConstructor = isConstructorPrototype( value );\n\t\tfor ( i = 0; i < NON_ENUMERABLE.length; i++ ) {\n\t\t\tp = NON_ENUMERABLE[ i ];\n\t\t\tif ( !( skipConstructor && p === 'constructor' ) && hasOwnProp( value, p ) ) {\n\t\t\t\tout.push( String( p ) );\n\t\t\t}\n\t\t}\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default keys;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport hasAutomationEqualityBug from './has_automation_equality_bug.js';\nimport isConstructorPrototype from './is_constructor_prototype.js';\nimport HAS_WINDOW from './has_window.js';\n\n\n// MAIN //\n\n/**\n* Wraps the test for constructor prototype equality to accommodate buggy environments (e.g., environments which throw when testing equality).\n*\n* @private\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether a value equals the prototype of its constructor\n*/\nfunction wrapper( value ) {\n\tif ( HAS_WINDOW === false && !hasAutomationEqualityBug ) {\n\t\treturn isConstructorPrototype( value );\n\t}\n\ttry {\n\t\treturn isConstructorPrototype( value );\n\t} catch ( error ) { // eslint-disable-line no-unused-vars\n\t\treturn false;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default wrapper;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport objectKeys from './../../keys';\nimport isArray from '@stdlib/assert/is-array';\nimport isObject from '@stdlib/assert/is-plain-object';\nimport isObjectLike from '@stdlib/assert/is-object-like';\nimport { isPrimitive as isBoolean } from '@stdlib/assert/is-boolean';\nimport hasOwnProp from '@stdlib/assert/has-own-property';\nimport format from '@stdlib/string/format';\n\n\n// MAIN //\n\n/**\n* Inverts an object, such that keys become values and values become keys.\n*\n* @param {ObjectLike} obj - input object\n* @param {Options} [opts] - function options\n* @param {boolean} [opts.duplicates=true] - boolean indicating whether to store duplicate keys\n* @throws {TypeError} first argument must be object-like\n* @throws {TypeError} second argument must an an object\n* @throws {TypeError} must provide valid options\n* @returns {Object} inverted object\n*\n* @example\n* var out = invert({\n* 'a': 'beep',\n* 'b': 'boop'\n* });\n* // returns { 'beep': 'a', 'boop': 'b' }\n*\n* @example\n* var out = invert({\n* 'a': 'beep',\n* 'b': 'beep'\n* });\n* // returns { 'beep': [ 'a', 'b' ] }\n*\n* @example\n* var obj = {};\n* obj.a = 'beep';\n* obj.b = 'boop';\n* obj.c = 'beep'; // inserted after `a`\n*\n* var out = invert( obj, {\n* 'duplicates': false\n* });\n* // returns { 'beep': 'c', 'boop': 'b' }\n*/\nfunction invert( obj, opts ) {\n\tvar allowDupes = true;\n\tvar keys;\n\tvar len;\n\tvar key;\n\tvar val;\n\tvar out;\n\tvar v;\n\tvar i;\n\tif ( !isObjectLike( obj ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an object (except null). Value: `%s`.', obj ) );\n\t}\n\tif ( arguments.length > 1 ) {\n\t\tif ( !isObject( opts ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Options argument must be an object. Value: `%s`.', opts ) );\n\t\t}\n\t\tif ( hasOwnProp( opts, 'duplicates' ) ) {\n\t\t\tallowDupes = opts.duplicates;\n\t\t\tif ( !isBoolean( allowDupes ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid option. `%s` option must be a boolean. Option: `%s`.', 'duplicates', allowDupes ) );\n\t\t\t}\n\t\t}\n\t}\n\tkeys = objectKeys( obj );\n\tlen = keys.length;\n\tout = {};\n\tif ( allowDupes ) {\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tkey = keys[ i ];\n\t\t\tval = obj[ key ];\n\t\t\tif ( !hasOwnProp( out, val ) ) {\n\t\t\t\tout[ val ] = key;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tv = out[ val ];\n\t\t\tif ( isArray( v ) ) {\n\t\t\t\tout[ val ].push( key );\n\t\t\t} else {\n\t\t\t\tout[ val ] = [ v, key ];\n\t\t\t}\n\t\t}\n\t} else {\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tkey = keys[ i ];\n\t\t\tout[ obj[ key ] ] = key;\n\t\t}\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default invert;\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// MAIN //\n\n/**\n* Replaces search occurrences with a replacement string.\n*\n* @param {string} str - input string\n* @param {RegExp} search - search expression\n* @param {(string|Function)} newval - replacement value or function\n* @returns {string} new string containing replacement(s)\n*\n* @example\n* var str = 'Hello World';\n* var out = replace( str, /world/i, 'Mr. President' );\n* // returns 'Hello Mr. President'\n*\n* @example\n* import capitalize from '@stdlib/string/base/capitalize';\n*\n* var str = 'Oranges and lemons say the bells of St. Clement\\'s';\n*\n* function replacer( match, p1 ) {\n* return capitalize( p1 );\n* }\n*\n* var out = replace( str, /([^\\s]*)/gi, replacer );\n* // returns 'Oranges And Lemons Say The Bells Of St. Clement\\'s'\n*/\nfunction replace( str, search, newval ) {\n\treturn str.replace( search, newval );\n}\n\n\n// EXPORTS //\n\nexport default replace;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport replace from '@stdlib/string/base/replace';\nimport DTYPES from './dtypes.json';\n\n\n// VARIABLES //\n\nvar RE_SUFFIX = /_and_generic$/;\n\n\n// MAIN //\n\n/**\n* Returns a list of ndarray data types.\n*\n* @param {string} [kind] - data type kind\n* @returns {StringArray} list of ndarray data types\n*\n* @example\n* var list = dtypes();\n* // returns [...]\n*\n* @example\n* var list = dtypes( 'floating_point' );\n* // returns [...]\n*/\nfunction dtypes() {\n\tvar kind;\n\tvar out;\n\tvar FLG;\n\tif ( arguments.length === 0 ) {\n\t\treturn DTYPES.all.slice();\n\t}\n\tFLG = false;\n\tkind = arguments[ 0 ];\n\tif ( RE_SUFFIX.test( kind ) ) {\n\t\tkind = replace( kind, RE_SUFFIX, '' );\n\t\tif ( kind !== 'all' ) {\n\t\t\tFLG = true;\n\t\t}\n\t}\n\tout = DTYPES[ kind ];\n\tout = ( out ) ? out.slice() : [];\n\tif ( FLG && out.length > 0 ) {\n\t\tout.push( 'generic' );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default dtypes;\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/empty-line-before-comment */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Returns an object mapping supported data type strings to enumeration constants.\n*\n* ## Notes\n*\n* - Downstream consumers of this mapping should **not** rely on specific integer values (e.g., `INT8 == 0`). Instead, the object should be used in an opaque manner.\n* - The main purpose of this function is JavaScript and C inter-operation of ndarray objects. While certain dtypes, such as \"generic\" and \"binary\", have special behavior in JavaScript, they do not have a direct complement in C.\n*\n* @private\n* @returns {Object} object mapping supported dtypes to enumeration constants\n*\n* @example\n* var table = enumeration();\n* // returns \n*/\nfunction enumeration() {\n\t// NOTE: the following should match the C `dtypes.h` enumeration!!!!\n\treturn {\n\t\t// Boolean data types:\n\t\t'bool': 0,\n\n\t\t// Integer data types:\n\t\t'int8': 1,\n\t\t'uint8': 2,\n\t\t'uint8c': 3,\n\t\t'int16': 4,\n\t\t'uint16': 5,\n\t\t'int32': 6,\n\t\t'uint32': 7,\n\t\t'int64': 8,\n\t\t'uint64': 9,\n\t\t// 'int128': 10, // uncomment once supported\n\t\t// 'uint128': 11,\n\t\t// 'int256': 12,\n\t\t// 'uint256': 13,\n\n\t\t// Floating-point data types:\n\t\t// 'float16': 14,\n\t\t// 'bfloat16': 15,\n\t\t'float32': 10,\n\t\t'float64': 11,\n\t\t// 'float128': 18, // uncomment once supported\n\n\t\t// Complex floating-point number data types:\n\t\t'complex64': 12,\n\t\t'complex128': 13,\n\n\t\t// Data type for \"binary\" data (i.e., data stored in a Node.js `Buffer` object):\n\t\t'binary': 14,\n\n\t\t// Data type for \"generic\" JavaScript values (objects):\n\t\t'generic': 15,\n\n\t\t// Define a signaling value which is guaranteed not to be a valid type enumeration value:\n\t\t'notype': 17,\n\n\t\t// Indicate the start of user defined type numbers (leaving room for type growth above):\n\t\t'userdefined_type': 256\n\t};\n}\n\n\n// EXPORTS //\n\nexport default enumeration;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 a list of ndarray data types.\n*\n* @module @stdlib/ndarray/dtypes\n*\n* @example\n* import dtypes from '@stdlib/ndarray/dtypes';\n*\n* var list = dtypes();\n* // returns [...]\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport enumeration from './enum.js';\nimport assign from './assign.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'enum', enumeration );\nassign( main, enumeration() );\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 setReadOnly from '@stdlib/utils/define-read-only-property';\nimport objectKeys from '@stdlib/utils/keys';\n\n\n// MAIN //\n\n/**\n* Copies all enumerable own properties from a source object to a target object as enumerable read-only properties.\n*\n* @private\n* @param {Object} target - target object\n* @param {Object} source - source object\n* @returns {Object} modified target object\n*\n* @example\n* var source = {\n* 'beep': 'boop'\n* };\n* var target = {};\n*\n* var out = assign( target, source );\n* // returns \n*\n* var bool = ( out === target );\n* // returns true\n*\n* var v = target.beep;\n* // returns 'boop'\n*/\nfunction assign( target, source ) {\n\tvar keys;\n\tvar k;\n\tvar i;\n\n\tkeys = objectKeys( source );\n\tfor ( i = 0; i < keys.length; i++ ) {\n\t\tk = keys[ i ];\n\t\tsetReadOnly( target, k, source[ k ] );\n\t}\n\treturn target;\n}\n\n\n// EXPORTS //\n\nexport default assign;\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 objectInverse from '@stdlib/utils/object-inverse';\nimport { enum as enumeration } from './../../../dtypes';\n\n\n// VARIABLES //\n\nvar hash = objectInverse( enumeration(), {\n\t'duplicates': false\n});\n\n\n// MAIN //\n\n/**\n* Returns the data type string associated with an ndarray data type enumeration constant.\n*\n* @param {integer} dtype - data type enumeration constant\n* @returns {(string|null)} data type string or null\n*\n* @example\n* import str2enum from '@stdlib/ndarray/base/dtype-str2enum';\n*\n* var v = str2enum( 'float64' );\n* // returns \n*\n* var dt = enum2str( v );\n* // returns 'float64'\n*/\nfunction enum2str( dtype ) {\n\tvar v = hash[ dtype ];\n\treturn ( typeof v === 'string' ) ? v : null; // note: we include this guard to prevent walking the prototype chain\n}\n\n\n// EXPORTS //\n\nexport default enum2str;\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 { enum as enumeration } from './../../../dtypes';\n\n\n// VARIABLES //\n\nvar ENUM = enumeration();\n\n\n// MAIN //\n\n/**\n* Returns the enumeration constant associated with an ndarray data type string.\n*\n* ## Notes\n*\n* - Downstream consumers of this function should **not** rely on specific integer values (e.g., `INT8 == 0`). Instead, the function should be used in an opaque manner.\n*\n* @param {string} dtype - data type string\n* @returns {(integer|null)} integer value or null\n*\n* @example\n* var v = str2enum( 'int8' );\n* // returns \n*/\nfunction str2enum( dtype ) {\n\tvar v = ENUM[ dtype ];\n\treturn ( typeof v === 'number' ) ? v : null; // note: we include this guard to prevent walking the prototype chain\n}\n\n\n// EXPORTS //\n\nexport default str2enum;\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 enum2str from './../../../base/dtype-enum2str';\nimport str2enum from './../../../base/dtype-str2enum';\n\n\n// MAIN //\n\n/**\n* Returns the data type string associated with a supported ndarray data type value.\n*\n* @param {*} dtype - data type value\n* @returns {(string|null)} data type string or null\n*\n* @example\n* import str2enum from '@stdlib/ndarray/base/dtype-str2enum';\n*\n* var v = resolve( str2enum( 'float64' ) );\n* // returns 'float64'\n*/\nfunction resolve( dtype ) {\n\tvar t = ( typeof dtype );\n\tif ( t === 'string' ) {\n\t\treturn ( str2enum( dtype ) === null ) ? null : dtype;\n\t}\n\tif ( t === 'number' ) {\n\t\treturn enum2str( dtype );\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nexport default resolve;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isArrayLikeObject from '@stdlib/assert/is-array-like-object';\nimport { isPrimitive as isNonNegativeInteger } from '@stdlib/assert/is-nonnegative-integer';\nimport resolve from './../../../base/dtype-resolve-str';\nimport format from '@stdlib/string/format';\n\n\n// MAIN //\n\n/**\n* Transforms a list of array argument data types into a list of signatures.\n*\n* @param {ArrayLikeObject} dtypes - list of array argument data types\n* @param {NonNegativeInteger} nin - number of input array arguments\n* @param {NonNegativeInteger} nout - number of output array arguments\n* @throws {TypeError} first argument must be an array-like object\n* @throws {TypeError} second argument must be a nonnegative integer\n* @throws {TypeError} third argument must be a nonnegative integer\n* @throws {RangeError} first argument must contain at least one element\n* @throws {RangeError} length of the first argument is incompatible with the second and third arguments\n* @returns {StringArray} list of signatures\n*\n* @example\n* var dtypes = [\n* 'float64', 'float64',\n* 'float32', 'float32'\n* ];\n*\n* var sigs = dtypes2signatures( dtypes, 1, 1 );\n* // returns [ '(float64) => (float64)', '(float32) => (float32)' ]\n*/\nfunction dtypes2signatures( dtypes, nin, nout ) {\n\tvar len;\n\tvar out;\n\tvar tmp;\n\tvar dt;\n\tvar N;\n\tvar M;\n\tvar i;\n\tvar m;\n\n\tif ( !isArrayLikeObject( dtypes ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an array-like object. Value: `%s`.', dtypes ) );\n\t}\n\tif ( !isNonNegativeInteger( nin ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be a nonnegative integer. Value: `%s`.', nin ) );\n\t}\n\tif ( !isNonNegativeInteger( nout ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Third argument must be a nonnegative integer. Value: `%s`.', nout ) );\n\t}\n\tlen = dtypes.length;\n\tif ( len === 0 ) {\n\t\tthrow new RangeError( 'invalid argument. First argument must contain at least one element.' );\n\t}\n\tN = nin + nout;\n\tif ( len%N !== 0 ) {\n\t\tthrow new RangeError( 'invalid arguments. Length of the first argument is incompatible with the second and third arguments.' );\n\t}\n\tout = [];\n\n\t// Create a temporary array for storing signatures...\n\ttmp = [];\n\n\t// [ '(', , ', ', ..., ') => (', , ', ', ..., ')' ] => 1+nin+nin-1+1+nout+nout-1+1 => 1 + (2*nin) + (2*nout) => 1 + (2*(nin+nout))\n\tM = 2 * N;\n\tm = 2 * nin;\n\tfor ( i = 0; i <= M; i++ ) {\n\t\tif ( i === 0 ) {\n\t\t\tif ( i === m ) {\n\t\t\t\ttmp.push( '() => (' );\n\t\t\t} else {\n\t\t\t\ttmp.push( '(' );\n\t\t\t}\n\t\t} else if ( i === M ) {\n\t\t\tif ( i === m ) {\n\t\t\t\ttmp.push( ') => ()' );\n\t\t\t} else {\n\t\t\t\ttmp.push( ')' );\n\t\t\t}\n\t\t} else if ( i === m ) {\n\t\t\ttmp.push( ') => (' );\n\t\t} else if ( i%2 === 1 ) {\n\t\t\ttmp.push( '' );\n\t\t} else {\n\t\t\ttmp.push( ', ' );\n\t\t}\n\t}\n\tfor ( i = 0; i < len; i++ ) {\n\t\tdt = resolve( dtypes[ i ] );\n\t\tif ( dt === null ) {\n\t\t\tdt = dtypes[ i ];\n\t\t}\n\t\tm = i % N;\n\t\ttmp[ (2*m)+1 ] = dt;\n\t\tif ( m === N-1 ) {\n\t\t\tout.push( tmp.join( '' ) );\n\t\t}\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default dtypes2signatures;\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 setReadOnlyAccessor from '@stdlib/utils/define-nonenumerable-read-only-accessor';\nimport dtypes2signatures from './../../../base/dtypes2signatures';\n\n\n// MAIN //\n\n/**\n* Defines non-enumerable read-only properties which expose ndarray function meta data.\n*\n* @param {Object} meta - function meta data\n* @param {NonNegativeInteger} meta.nargs - total number of arguments\n* @param {NonNegativeInteger} meta.nin - total number of input arrays\n* @param {NonNegativeInteger} meta.nout - total number of output arrays\n* @param {ArrayLikeObject} dtypes - list of ndarray data types\n* @param {(Function|Object)} obj - object on which to define properties\n* @returns {(Function|Object)} object on which properties were defined\n*\n* @example\n* // Define ndarray function meta data:\n* var meta = {\n* 'nargs': 2,\n* 'nin': 1,\n* 'nout': 1\n* };\n*\n* // Define the list of ndarray data types:\n* var dtypes = [\n* 'float64', 'float64',\n* 'float32', 'float32',\n* 'generic', 'generic'\n* ];\n*\n* // Define an object on which to set the properties:\n* var obj = {};\n*\n* // Set the properties:\n* setProps( meta, dtypes, obj );\n*\n* @example\n* // Define ndarray function meta data:\n* var meta = {\n* 'nargs': 2,\n* 'nin': 1,\n* 'nout': 1\n* };\n*\n* // Define the list of ndarray data types:\n* var dtypes = [\n* 'float64', 'float64',\n* 'float32', 'float32',\n* 'generic', 'generic'\n* ];\n*\n* // Define a function on which to set the properties:\n* function abs( x, y ) {\n* // Implementation...\n* }\n*\n* // Set the properties:\n* setProps( meta, dtypes, abs );\n*/\nfunction setProps( meta, dtypes, obj ) {\n\t// Define the number of arguments:\n\tsetReadOnly( obj, 'nargs', meta.nargs );\n\n\t// Define the number of input arrays:\n\tsetReadOnly( obj, 'nin', meta.nin );\n\n\t// Define the number of output arrays:\n\tsetReadOnly( obj, 'nout', meta.nout );\n\n\t// Define a read-only accessor for listing a function's supported array data types:\n\tsetReadOnlyAccessor( obj, 'types', types );\n\n\treturn obj;\n\n\t/**\n\t* Returns a list of array type signatures.\n\t*\n\t* @private\n\t* @returns {StringArray} list of signatures\n\t*/\n\tfunction types() {\n\t\treturn dtypes2signatures( dtypes, meta.nin, meta.nout );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default setProps;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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 Complex64 from '@stdlib/complex/float32/ctor';\n\n\n// MAIN //\n\n/**\n* Tests if a value is a complex number-like object.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a complex number-like object.\n*\n* @example\n* import Complex128 from '@stdlib/complex/float64/ctor';\n* import Complex64 from '@stdlib/complex/float32/ctor';\n*\n* var x = new Complex128( 4.0, 2.0 );\n* var bool = isComplexLike( x );\n* // returns true\n*\n* x = new Complex64( 4.0, 2.0 );\n* bool = isComplexLike( x );\n* // returns true\n*/\nfunction isComplexLike( value ) {\n\tif ( value instanceof Complex128 || value instanceof Complex64 ) {\n\t\treturn true;\n\t}\n\treturn (\n\t\ttypeof value === 'object' &&\n\t\tvalue !== null &&\n\t\ttypeof value.re === 'number' &&\n\t\ttypeof value.im === 'number'\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isComplexLike;\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 getGlobal from '@stdlib/utils/global';\n\n\n// VARIABLES //\n\nvar Global = getGlobal();\n\n\n// MAIN //\n\n/**\n* Tests for native `BigInt` support.\n*\n* @returns {boolean} boolean indicating if an environment has `BigInt` support\n*\n* @example\n* var bool = hasBigIntSupport();\n* // returns \n*/\nfunction hasBigIntSupport() {\n\treturn (\n\t\ttypeof Global.BigInt === 'function' &&\n\t\ttypeof BigInt === 'function' && // eslint-disable-line stdlib/require-globals\n\t\ttypeof Global.BigInt( '1' ) === 'bigint' &&\n\t\ttypeof BigInt( '1' ) === 'bigint' // eslint-disable-line stdlib/require-globals, no-undef\n\t);\n}\n\n\n// EXPORTS //\n\nexport default hasBigIntSupport;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport BYTES_PER_ELEMENT from './bytes_per_element.json';\n\n\n// MAIN //\n\n/**\n* Returns the number of bytes per element provided an underlying array data type.\n*\n* @param {string} dtype - data type\n* @returns {(NonNegativeInteger|null)} number of bytes per element\n*\n* @example\n* var nbytes = bytesPerElement( 'float64' );\n* // returns 8\n*\n* nbytes = bytesPerElement( 'generic' );\n* // returns null\n*/\nfunction bytesPerElement( dtype ) {\n\treturn BYTES_PER_ELEMENT[ dtype ] || null;\n}\n\n\n// EXPORTS //\n\nexport default bytesPerElement;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 array iteration order.\n*\n* ## Notes\n*\n* - Return value key:\n*\n* - `0`: unordered (i.e., strides of mixed sign; e.g., `[ 9, -3, 1 ]`)\n* - `1`: ordered left-to-right (i.e., all nonnegative strides)\n* - `-1`: ordered right-to-left (i.e., all negative strides)\n*\n* @param {IntegerArray} strides - stride array\n* @returns {integer} iteration order\n*\n* @example\n* var o = iterationOrder( [ 2, 1 ] );\n* // returns 1\n*\n* o = iterationOrder( [ -2, 1 ] );\n* // returns 0\n*\n* o = iterationOrder( [ -2, -1 ] );\n* // returns -1\n*/\nfunction iterationOrder( strides ) {\n\tvar cnt;\n\tvar i;\n\n\tcnt = 0;\n\tfor ( i = 0; i < strides.length; i++ ) {\n\t\tif ( strides[ i ] < 0 ) {\n\t\t\tcnt += 1;\n\t\t}\n\t}\n\tif ( cnt === 0 ) {\n\t\t// All nonnegative strides:\n\t\treturn 1|0; // asm-type annotation\n\t}\n\tif ( cnt === strides.length ) {\n\t\t// All negative strides:\n\t\treturn -1|0; // asm-type annotation\n\t}\n\t// Strides of mixed signs:\n\treturn 0|0; // asm-type annotation\n}\n\n\n// EXPORTS //\n\nexport default iterationOrder;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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 '@stdlib/math/base/special/abs';\n\n\n// MAIN //\n\n/**\n* Determines the order of a multidimensional array based on a provided stride array.\n*\n* @param {IntegerArray} strides - stride array\n* @returns {integer} order\n*\n* @example\n* import strides2order from '@stdlib/ndarray/base/strides2order';\n*\n* var order = strides2order( [ 2, 1 ] );\n* // returns 1\n*\n* order = strides2order( [ 1, 2 ] );\n* // returns 2\n*\n* order = strides2order( [ 1, 1, 1 ] );\n* // returns 3\n*\n* order = strides2order( [ 2, 3, 1 ] );\n* // returns 0\n*/\nfunction strides2order( strides ) {\n\tvar column;\n\tvar ndims;\n\tvar row;\n\tvar s1;\n\tvar s2;\n\tvar i;\n\n\tndims = strides.length;\n\tif ( ndims === 0 ) {\n\t\treturn 0|0; // 'none'\n\t}\n\tcolumn = true;\n\trow = true;\n\n\ts1 = abs( strides[ 0 ] );\n\tfor ( i = 1; i < ndims; i++ ) {\n\t\ts2 = abs( strides[ i ] );\n\t\tif ( column && s2 < s1 ) {\n\t\t\tcolumn = false;\n\t\t} else if ( row && s2 > s1 ) {\n\t\t\trow = false;\n\t\t}\n\t\tif ( row || column ) {\n\t\t\ts1 = s2;\n\t\t} else {\n\t\t\treturn 0|0; // 'none'\n\t\t}\n\t}\n\tif ( row && column ) {\n\t\treturn 3|0; // 'both'\n\t}\n\tif ( row ) {\n\t\treturn 1|0; // 'row-major'\n\t}\n\treturn 2|0; // 'column-major'\n}\n\n\n// EXPORTS //\n\nexport default strides2order;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Determines if an array is column-major contiguous.\n*\n* @private\n* @param {integer} order - **inferred** array order\n* @param {boolean} contiguous - boolean indicating is an array is contiguous\n* @returns {boolean} boolean indicating if an array is column-major contiguous\n*/\nfunction isColumnMajorContiguous( order, contiguous ) {\n\treturn contiguous && ( order === 2 || order === 3 );\n}\n\n\n// EXPORTS //\n\nexport default isColumnMajorContiguous;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Determines if an array is row-major contiguous.\n*\n* @private\n* @param {integer} order - **inferred** array order\n* @param {boolean} contiguous - boolean indicating is an array is contiguous\n* @returns {boolean} boolean indicating if an array is row-major contiguous\n*/\nfunction isRowMajorContiguous( order, contiguous ) {\n\treturn contiguous && ( order === 1 || order === 3 );\n}\n\n\n// EXPORTS //\n\nexport default isRowMajorContiguous;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 minimum and maximum linear indices in an underlying data buffer which are accessible to an array view.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {IntegerArray} strides - stride array\n* @param {NonNegativeInteger} offset - index offset\n* @returns {Array} linear indices\n*\n* @example\n* var shape = [ 10, 10 ];\n* var strides = [ 10, 1 ];\n* var offset = 10;\n*\n* var idx = minmaxViewBufferIndex( shape, strides, offset );\n* // returns [ 10, 109 ]\n*\n* @example\n* var shape = [ 10, 10 ];\n* var strides = [ -10, -1 ];\n* var offset = 99;\n*\n* var idx = minmaxViewBufferIndex( shape, strides, offset );\n* // returns [ 0, 99 ]\n*\n* @example\n* var shape = [ 10, 10 ];\n* var strides = [ 1, 10 ];\n* var offset = 10;\n*\n* var idx = minmaxViewBufferIndex( shape, strides, offset );\n* // returns [ 10, 109 ]\n*\n* @example\n* var shape = [ 10, 10 ];\n* var strides = [ -1, -10 ];\n* var offset = 99;\n*\n* var idx = minmaxViewBufferIndex( shape, strides, offset );\n* // returns [ 0, 99 ]\n*/\nfunction minmaxViewBufferIndex( shape, strides, offset ) {\n\tvar ndims;\n\tvar min;\n\tvar max;\n\tvar s;\n\tvar i;\n\n\tndims = shape.length;\n\tmin = offset;\n\tmax = offset;\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\tif ( shape[ i ] === 0 ) {\n\t\t\treturn [ offset, offset ];\n\t\t}\n\t\ts = strides[ i ];\n\t\tif ( s > 0 ) {\n\t\t\tmax += s * ( shape[i]-1 );\n\t\t} else if ( s < 0 ) {\n\t\t\tmin += s * ( shape[i]-1 ); // decrements min\n\t\t}\n\t}\n\treturn [ min, max ];\n}\n\n\n// EXPORTS //\n\nexport default minmaxViewBufferIndex;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 minimum and maximum linear indices in an underlying data buffer which are accessible to an array view.\n*\n* @module @stdlib/ndarray/base/minmax-view-buffer-index\n*\n* @example\n* import minmaxViewBufferIndex from '@stdlib/ndarray/base/minmax-view-buffer-index';\n*\n* var shape = [ 10, 10 ];\n* var strides = [ 10, 1 ];\n* var offset = 10;\n*\n* var idx = minmaxViewBufferIndex( shape, strides, offset );\n* // returns [ 10, 109 ]\n*\n* @example\n* import minmaxViewBufferIndex from '@stdlib/ndarray/base/minmax-view-buffer-index';\n*\n* var shape = [ 10, 10 ];\n* var strides = [ -10, -1 ];\n* var offset = 99;\n*\n* var idx = minmaxViewBufferIndex( shape, strides, offset );\n* // returns [ 0, 99 ]\n*\n* @example\n* import minmaxViewBufferIndex from '@stdlib/ndarray/base/minmax-view-buffer-index';\n*\n* var shape = [ 10, 10 ];\n* var strides = [ 1, 10 ];\n* var offset = 10;\n*\n* var idx = minmaxViewBufferIndex( shape, strides, offset );\n* // returns [ 10, 109 ]\n*\n* @example\n* import minmaxViewBufferIndex from '@stdlib/ndarray/base/minmax-view-buffer-index';\n*\n* var shape = [ 10, 10 ];\n* var strides = [ -1, -10 ];\n* var offset = 99;\n*\n* var idx = minmaxViewBufferIndex( shape, strides, offset );\n* // returns [ 0, 99 ]\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// MAIN //\n\n/**\n* Computes the minimum and maximum linear indices in an underlying data buffer which are accessible to an array view and assigns results to a provided output array.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {IntegerArray} strides - stride array\n* @param {NonNegativeInteger} offset - index offset\n* @param {(Array|TypedArray|Object)} out - output object\n* @returns {(Array|TypedArray|Object)} linear indices\n*\n* @example\n* var shape = [ 10, 10 ];\n* var strides = [ 10, 1 ];\n* var offset = 10;\n*\n* var out = [ 0, 0 ];\n* var idx = minmaxViewBufferIndex( shape, strides, offset, out );\n* // returns [ 10, 109 ]\n*\n* var bool = ( idx === out );\n* // returns true\n*\n* @example\n* var shape = [ 10, 10 ];\n* var strides = [ -10, -1 ];\n* var offset = 99;\n*\n* var out = [ 0, 0 ];\n* var idx = minmaxViewBufferIndex( shape, strides, offset, out );\n* // returns [ 0, 99 ]\n*\n* var bool = ( idx === out );\n* // returns true\n*\n* @example\n* var shape = [ 10, 10 ];\n* var strides = [ 1, 10 ];\n* var offset = 10;\n*\n* var out = [ 0, 0 ];\n* var idx = minmaxViewBufferIndex( shape, strides, offset, out );\n* // returns [ 10, 109 ]\n*\n* var bool = ( idx === out );\n* // returns true\n*\n* @example\n* var shape = [ 10, 10 ];\n* var strides = [ -1, -10 ];\n* var offset = 99;\n*\n* var out = [ 0, 0 ];\n* var idx = minmaxViewBufferIndex( shape, strides, offset, out );\n* // returns [ 0, 99 ]\n*\n* var bool = ( idx === out );\n* // returns true\n*/\nfunction minmaxViewBufferIndex( shape, strides, offset, out ) {\n\tvar ndims;\n\tvar min;\n\tvar max;\n\tvar s;\n\tvar i;\n\n\tndims = shape.length;\n\tmin = offset;\n\tmax = offset;\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\tif ( shape[ i ] === 0 ) {\n\t\t\tout[ 0 ] = offset;\n\t\t\tout[ 1 ] = offset;\n\t\t\treturn out;\n\t\t}\n\t\ts = strides[ i ];\n\t\tif ( s > 0 ) {\n\t\t\tmax += s * ( shape[i]-1 );\n\t\t} else if ( s < 0 ) {\n\t\t\tmin += s * ( shape[i]-1 ); // decrements min\n\t\t}\n\t}\n\tout[ 0 ] = min;\n\tout[ 1 ] = max;\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default minmaxViewBufferIndex;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { isPrimitive as isString } from '@stdlib/assert/is-string';\nimport format from '@stdlib/string/format';\n\n\n// VARIABLES //\n\nvar RE_CHARS = /[-\\/\\\\^$*+?.()|[\\]{}]/g; // eslint-disable-line no-useless-escape\n\n\n// MAIN //\n\n/**\n* Escapes a regular expression string.\n*\n* @param {string} str - regular expression string\n* @throws {TypeError} first argument must be a string\n* @returns {string} escaped string\n*\n* @example\n* var str = rescape( '[A-Z]*' );\n* // returns '\\\\[A\\\\-Z\\\\]\\\\*'\n*/\nfunction rescape( str ) {\n\tvar len;\n\tvar s;\n\tvar i;\n\n\tif ( !isString( str ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide a regular expression string. Value: `%s`.', str ) );\n\t}\n\t// Check if the string starts with a forward slash...\n\tif ( str[ 0 ] === '/' ) {\n\t\t// Find the last forward slash...\n\t\tlen = str.length;\n\t\tfor ( i = len-1; i >= 0; i-- ) {\n\t\t\tif ( str[ i ] === '/' ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\t// If we searched the string to no avail or if the first letter is not `/`, assume that the string is not of the form `/[...]/[guimy]`:\n\tif ( i === void 0 || i <= 0 ) {\n\t\treturn str.replace( RE_CHARS, '\\\\$&' );\n\t}\n\t// We need to de-construct the string...\n\ts = str.substring( 1, i );\n\n\t// Only escape the characters between the `/`:\n\ts = s.replace( RE_CHARS, '\\\\$&' );\n\n\t// Reassemble:\n\tstr = str[ 0 ] + s + str.substring( i );\n\n\treturn str;\n}\n\n\n// EXPORTS //\n\nexport default rescape;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\nvar exec = RegExp.prototype.exec; // non-generic\n\n\n// EXPORTS //\n\nexport default exec;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport hasToStringTag from './../../has-tostringtag-support';\nimport nativeClass from '@stdlib/utils/native-class';\nimport test from './try2exec.js';\n\n\n// VARIABLES //\n\nvar FLG = hasToStringTag();\n\n\n// MAIN //\n\n/**\n* Tests if a value is a regular expression.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether value is a regular expression\n*\n* @example\n* var bool = isRegExp( /\\.+/ );\n* // returns true\n*\n* @example\n* var bool = isRegExp( {} );\n* // returns false\n*/\nfunction isRegExp( value ) {\n\tif ( typeof value === 'object' ) {\n\t\tif ( value instanceof RegExp ) {\n\t\t\treturn true;\n\t\t}\n\t\tif ( FLG ) {\n\t\t\treturn test( value );\n\t\t}\n\t\treturn ( nativeClass( value ) === '[object RegExp]' );\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default isRegExp;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport exec from './exec.js';\n\n\n// MAIN //\n\n/**\n* Attempts to call a `RegExp` method.\n*\n* @private\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if able to call a `RegExp` method\n*/\nfunction test( value ) {\n\ttry {\n\t\texec.call( value );\n\t\treturn true;\n\t} catch ( err ) { // eslint-disable-line no-unused-vars\n\t\treturn false;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default test;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport rescape from '@stdlib/utils/escape-regexp-string';\nimport isFunction from '@stdlib/assert/is-function';\nimport { isPrimitive as isString } from '@stdlib/assert/is-string';\nimport isRegExp from '@stdlib/assert/is-regexp';\nimport format from './../../format';\nimport base from './../../base/replace';\n\n\n// MAIN //\n\n/**\n* Replaces search occurrences with a replacement string.\n*\n* @param {string} str - input string\n* @param {(string|RegExp)} search - search expression\n* @param {(string|Function)} newval - replacement value or function\n* @throws {TypeError} first argument must be a string\n* @throws {TypeError} second argument argument must be a string or regular expression\n* @throws {TypeError} third argument must be a string or function\n* @returns {string} new string containing replacement(s)\n*\n* @example\n* var str = 'beep';\n* var out = replace( str, 'e', 'o' );\n* // returns 'boop'\n*\n* @example\n* var str = 'Hello World';\n* var out = replace( str, /world/i, 'Mr. President' );\n* // returns 'Hello Mr. President'\n*\n* @example\n* import capitalize from '@stdlib/string/capitalize';\n*\n* var str = 'Oranges and lemons say the bells of St. Clement\\'s';\n*\n* function replacer( match, p1 ) {\n* return capitalize( p1 );\n* }\n*\n* var out = replace( str, /([^\\s]*)/gi, replacer );\n* // returns 'Oranges And Lemons Say The Bells Of St. Clement\\'s'\n*/\nfunction replace( str, search, newval ) {\n\tif ( !isString( str ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a string. Value: `%s`.', str ) );\n\t}\n\tif ( isString( search ) ) {\n\t\tsearch = new RegExp( rescape( search ), 'g' );\n\t} else if ( !isRegExp( search ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be a string or regular expression. Value: `%s`.', search ) );\n\t}\n\tif ( !isString( newval ) && !isFunction( newval ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Third argument must be a string or replacement function. Value: `%s`.', newval ) );\n\t}\n\treturn base( str, search, newval );\n}\n\n\n// EXPORTS //\n\nexport default replace;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport replace from '@stdlib/string/replace';\nimport real from '@stdlib/complex/float64/real';\nimport imag from '@stdlib/complex/float64/imag';\n\n\n// VARIABLES //\n\nvar CTORS = {\n\t'int8': 'new Int8Array( [ {{data}} ] )',\n\t'uint8': 'new Uint8Array( [ {{data}} ] )',\n\t'uint8c': 'new Uint8ClampedArray( [ {{data}} ] )',\n\t'int16': 'new Int16Array( [ {{data}} ] )',\n\t'uint16': 'new Uint16Array( [ {{data}} ] )',\n\t'int32': 'new Int32Array( [ {{data}} ] )',\n\t'uint32': 'new Uint32Array( [ {{data}} ] )',\n\t'float32': 'new Float32Array( [ {{data}} ] )',\n\t'float64': 'new Float64Array( [ {{data}} ] )',\n\t'generic': '[ {{data}} ]',\n\t'binary': 'new Buffer( [ {{data}} ] )',\n\t'complex64': 'new Complex64Array( [ {{data}} ] )',\n\t'complex128': 'new Complex128Array( [ {{data}} ] )'\n};\n\n\n// MAIN //\n\n/**\n* Serializes an ndarray as a string.\n*\n* ## Notes\n*\n* - The method does **not** serialize data outside of the buffer region defined by the array configuration.\n*\n* @private\n* @returns {string} string representation\n*/\nfunction toString() { // eslint-disable-line stdlib/no-redeclare\n\t/* eslint-disable no-invalid-this */\n\tvar buffer;\n\tvar ndims;\n\tvar ctor;\n\tvar str;\n\tvar dt;\n\tvar v;\n\tvar i;\n\n\tndims = this._shape.length;\n\tdt = this._dtype;\n\n\t// Function to invoke to create an ndarray:\n\tstr = 'ndarray( \\''+dt+'\\', ';\n\n\t// Data buffer parameter...\n\tbuffer = '';\n\tif ( this._length <= 100 ) {\n\t\tif ( dt === 'complex64' || dt === 'complex128' ) {\n\t\t\tfor ( i = 0; i < this._length; i++ ) {\n\t\t\t\tv = this.iget( i );\n\t\t\t\tbuffer += real( v ) + ', ' + imag( v );\n\t\t\t\tif ( i < this._length-1 ) {\n\t\t\t\t\tbuffer += ', ';\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor ( i = 0; i < this._length; i++ ) {\n\t\t\t\tbuffer += this.iget( i );\n\t\t\t\tif ( i < this._length-1 ) {\n\t\t\t\t\tbuffer += ', ';\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t} else {\n\t\t// First three values...\n\t\tif ( dt === 'complex64' || dt === 'complex128' ) {\n\t\t\tfor ( i = 0; i < 3; i++ ) {\n\t\t\t\tv = this.iget( i );\n\t\t\t\tbuffer += real( v ) + ', ' + imag( v );\n\t\t\t\tif ( i < 2 ) {\n\t\t\t\t\tbuffer += ', ';\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor ( i = 0; i < 3; i++ ) {\n\t\t\t\tbuffer += this.iget( i );\n\t\t\t\tif ( i < 2 ) {\n\t\t\t\t\tbuffer += ', ';\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tbuffer += ', ..., ';\n\n\t\t// Last three values...\n\t\tif ( dt === 'complex64' || dt === 'complex128' ) {\n\t\t\tfor ( i = 2; i >= 0; i-- ) {\n\t\t\t\tv = this.iget( this._length-1-i );\n\t\t\t\tbuffer += real( v ) + ', ' + imag( v );\n\t\t\t\tif ( i > 0 ) {\n\t\t\t\t\tbuffer += ', ';\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor ( i = 2; i >= 0; i-- ) {\n\t\t\t\tbuffer += this.iget( this._length-1-i );\n\t\t\t\tif ( i > 0 ) {\n\t\t\t\t\tbuffer += ', ';\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tctor = CTORS[ this.dtype ];\n\tstr += replace( ctor, '{{data}}', buffer );\n\tstr += ', ';\n\n\t// Array shape...\n\tif ( ndims === 0 ) {\n\t\tstr += '[]';\n\t} else {\n\t\tstr += '[ ' + this._shape.join( ', ' ) + ' ]';\n\t}\n\tstr += ', ';\n\n\t// Stride array...\n\tstr += '[ ';\n\tif ( ndims === 0 ) {\n\t\tstr += '0';\n\t} else {\n\t\tfor ( i = 0; i < ndims; i++ ) {\n\t\t\tif ( this._strides[ i ] < 0 ) {\n\t\t\t\tstr += -this._strides[ i ];\n\t\t\t} else {\n\t\t\t\tstr += this._strides[ i ];\n\t\t\t}\n\t\t\tif ( i < ndims-1 ) {\n\t\t\t\tstr += ', ';\n\t\t\t}\n\t\t}\n\t}\n\tstr += ' ]';\n\tstr += ', ';\n\n\t// Buffer offset:\n\tstr += '0';\n\tstr += ', ';\n\n\t// Order:\n\tstr += '\\'' + this._order + '\\'';\n\n\t// Close the function call:\n\tstr += ' )';\n\treturn str;\n\n\t/* eslint-enable no-invalid-this */\n}\n\n\n// EXPORTS //\n\nexport default toString;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport nativeClass from '@stdlib/utils/native-class';\n\n\n// VARIABLES //\n\nvar hasArrayBuffer = ( typeof ArrayBuffer === 'function' ); // eslint-disable-line stdlib/require-globals\n\n\n// MAIN //\n\n/**\n* Tests if a value is an ArrayBuffer.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether value is an ArrayBuffer\n*\n* @example\n* import ArrayBuffer from '@stdlib/array/buffer';\n*\n* var bool = isArrayBuffer( new ArrayBuffer( 10 ) );\n* // returns true\n*\n* @example\n* var bool = isArrayBuffer( [] );\n* // returns false\n*/\nfunction isArrayBuffer( value ) {\n\treturn (\n\t\t( hasArrayBuffer && value instanceof ArrayBuffer ) || // eslint-disable-line stdlib/require-globals\n\t\tnativeClass( value ) === '[object ArrayBuffer]'\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isArrayBuffer;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 main = ( typeof ArrayBuffer === 'function' ) ? ArrayBuffer : null; // eslint-disable-line stdlib/require-globals\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// MAIN //\n\nvar ctor = ( typeof ArrayBuffer === 'function' ) ? ArrayBuffer : void 0; // eslint-disable-line stdlib/require-globals\n\n\n// EXPORTS //\n\nexport default ctor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Constructor which returns an object used to represent a generic, fixed-length raw binary data buffer.\n*\n* @module @stdlib/array/buffer\n*\n* @example\n* import ctor from '@stdlib/array/buffer';\n*\n* var buf = new ctor( 10 );\n* // returns \n*/\n\n// MODULES //\n\nimport hasArrayBufferSupport from '@stdlib/assert/has-arraybuffer-support';\nimport builtin from './main.js';\nimport polyfill from './polyfill.js';\n\n\n// MAIN //\n\nvar ctor;\nif ( hasArrayBufferSupport() ) {\n\tctor = builtin;\n} else {\n\tctor = polyfill;\n}\n\n\n// EXPORTS //\n\nexport default ctor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isArrayBuffer from './../../is-arraybuffer';\nimport Float64Array from '@stdlib/array/float64';\nimport GlobalArrayBuffer from './arraybuffer.js';\n\n\n// MAIN //\n\n/**\n* Tests for native `ArrayBuffer` support.\n*\n* @returns {boolean} boolean indicating if an environment has `ArrayBuffer` support\n*\n* @example\n* var bool = hasArrayBufferSupport();\n* // returns \n*/\nfunction hasArrayBufferSupport() {\n\tvar bool;\n\tvar view;\n\tvar buf;\n\n\tif ( typeof GlobalArrayBuffer !== 'function' ) {\n\t\treturn false;\n\t}\n\t// Test basic support...\n\ttry {\n\t\tbuf = new GlobalArrayBuffer( 16 );\n\t\tbool = ( isArrayBuffer( buf ) && typeof GlobalArrayBuffer.isView === 'function' );\n\t\tif ( bool ) {\n\t\t\tview = new Float64Array( buf );\n\t\t\tview[ 0 ] = -3.14;\n\t\t\tview[ 1 ] = NaN;\n\t\t\tbool = (\n\t\t\t\tbool &&\n\t\t\t\tGlobalArrayBuffer.isView( view ) &&\n\t\t\t\tbuf.byteLength === 16 &&\n\t\t\t\tview[ 0 ] === -3.14 &&\n\t\t\t\tview[ 1 ] !== view[ 1 ]\n\t\t\t);\n\t\t}\n\t} catch ( err ) { // eslint-disable-line no-unused-vars\n\t\tbool = false;\n\t}\n\treturn bool;\n}\n\n\n// EXPORTS //\n\nexport default hasArrayBufferSupport;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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: write polyfill\n\n// MAIN //\n\n/**\n* Constructor which returns an object used to represent a generic, fixed-length raw binary data buffer.\n*\n* @throws {Error} not implemented\n*/\nfunction polyfill() {\n\tthrow new Error( 'not implemented' );\n}\n\n\n// EXPORTS //\n\nexport default polyfill;\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 nativeClass from '@stdlib/utils/native-class';\n\n\n// VARIABLES //\n\nvar hasDataView = ( typeof DataView === 'function' ); // eslint-disable-line stdlib/require-globals\n\n\n// MAIN //\n\n/**\n* Tests if a value is a `DataView`.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether value is a DataView\n*\n* @example\n* import ArrayBuffer from '@stdlib/array/buffer';\n* import DataView from '@stdlib/array/dataview';\n*\n* var bool = isDataView( new DataView( new ArrayBuffer( 10 ) ) );\n* // returns true\n*\n* @example\n* var bool = isDataView( [] );\n* // returns false\n*/\nfunction isDataView( value ) {\n\treturn (\n\t\t( hasDataView && value instanceof DataView ) || // eslint-disable-line stdlib/require-globals\n\t\tnativeClass( value ) === '[object DataView]'\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isDataView;\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\nvar main = ( typeof DataView === 'function' ) ? DataView : null; // eslint-disable-line stdlib/require-globals\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// MAIN //\n\nvar ctor = ( typeof DataView === 'function' ) ? DataView : void 0; // eslint-disable-line stdlib/require-globals\n\n\n// EXPORTS //\n\nexport default ctor;\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* Constructor which returns a data view representing a provided array buffer.\n*\n* @module @stdlib/array/dataview\n*\n* @example\n* import ArrayBuffer from '@stdlib/array/buffer';\n* import DataView from '@stdlib/array/dataview';\n*\n* var buf = new ArrayBuffer( 10 );\n* // returns \n*\n* var dv = new DataView( buf );\n* // returns \n*/\n\n// MODULES //\n\nimport hasDataViewSupport from '@stdlib/assert/has-dataview-support';\nimport builtin from './main.js';\nimport polyfill from './polyfill.js';\n\n\n// MAIN //\n\nvar ctor;\nif ( hasDataViewSupport() ) {\n\tctor = builtin;\n} else {\n\tctor = polyfill;\n}\n\n\n// EXPORTS //\n\nexport default ctor;\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 isDataView from './../../is-dataview';\nimport ArrayBuffer from '@stdlib/array/buffer';\nimport GlobalDataView from './dataview.js';\n\n\n// MAIN //\n\n/**\n* Tests for native `DataView` support.\n*\n* @returns {boolean} boolean indicating if an environment has `DataView` support\n*\n* @example\n* var bool = hasDataViewSupport();\n* // returns \n*/\nfunction hasDataViewSupport() {\n\tvar bool;\n\tvar view;\n\tvar buf;\n\n\tif ( typeof GlobalDataView !== 'function' ) {\n\t\treturn false;\n\t}\n\t// Test basic support...\n\ttry {\n\t\tbuf = new ArrayBuffer( 24 );\n\t\tview = new GlobalDataView( buf, 8 );\n\t\tbool = ( isDataView( view ) && typeof view.getFloat64 === 'function' && typeof view.setFloat64 === 'function' );\n\t\tif ( bool ) {\n\t\t\tview.setFloat64( 0, -3.14 );\n\t\t\tview.setFloat64( 8, NaN );\n\t\t\tbool = (\n\t\t\t\tbool &&\n\t\t\t\tview.buffer === buf &&\n\t\t\t\tview.byteLength === 16 &&\n\t\t\t\tview.byteOffset === 8 &&\n\t\t\t\tview.getFloat64( 0 ) === -3.14 &&\n\t\t\t\tview.getFloat64( 8 ) !== view.getFloat64( 8 )\n\t\t\t);\n\t\t}\n\t} catch ( err ) { // eslint-disable-line no-unused-vars\n\t\tbool = false;\n\t}\n\treturn bool;\n}\n\n\n// EXPORTS //\n\nexport default hasDataViewSupport;\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// TODO: write polyfill\n\n// MAIN //\n\n/**\n* Constructor which returns a data view representing a provided array buffer.\n*\n* @throws {Error} not implemented\n*/\nfunction polyfill() {\n\tthrow new Error( 'not implemented' );\n}\n\n\n// EXPORTS //\n\nexport default polyfill;\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/* global BigInt */\n\n'use strict';\n\n// MAIN //\n\nvar BigInteger = ( typeof BigInt === 'function' ) ? BigInt : void 0; // eslint-disable-line stdlib/require-globals, node/no-unsupported-features/es-builtins\n\n\n// EXPORTS //\n\nexport default BigInteger;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport ORDERS from './orders.json';\n\n\n// MAIN //\n\n/**\n* Returns a list of ndarray orders.\n*\n* @returns {StringArray} list of ndarray orders\n*\n* @example\n* var list = orders();\n* // e.g., returns [ 'row-major', 'column-major' ]\n*/\nfunction orders() {\n\treturn ORDERS.slice();\n}\n\n\n// EXPORTS //\n\nexport default orders;\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// MAIN //\n\n/**\n* Returns an object mapping supported layouts to integer values for purposes of C inter-operation.\n*\n* ## Notes\n*\n* - Downstream consumers of this mapping should **not** rely on specific integer values (e.g., `row-major == 101`). Instead, the object should be used in an opaque manner.\n* - The main purpose of this function is JavaScript and C inter-operation of array objects.\n*\n* @returns {Object} object mapping supported layouts to integer values\n*\n* @example\n* var table = enumerated();\n* // returns \n*/\nfunction enumerated() {\n\t// NOTE: the following should match the C `layouts.h` enumeration!!!!\n\treturn {\n\t\t// Row-major (C-style):\n\t\t'row-major': 101,\n\n\t\t// Column-major (Fortran-style):\n\t\t'column-major': 102\n\t};\n}\n\n\n// EXPORTS //\n\nexport default enumerated;\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* Return a list of BLAS memory layouts.\n*\n* @module @stdlib/blas/base/layouts\n*\n* @example\n* import layouts from '@stdlib/blas/base/layouts';\n*\n* var list = layouts();\n* // e.g., returns [ 'row-major', 'column-major' ]\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport enumeration from './enum.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'enum', enumeration );\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 DATA from './data.json';\n\n\n// MAIN //\n\n/**\n* Returns a list of BLAS memory layouts.\n*\n* @returns {StringArray} list of memory layouts\n*\n* @example\n* var list = layouts();\n* // e.g., returns [ 'row-major', 'column-major' ]\n*/\nfunction layouts() {\n\treturn DATA.slice();\n}\n\n\n// EXPORTS //\n\nexport default layouts;\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 { enum as layouts } from '@stdlib/blas/base/layouts';\n\n\n// VARIABLES //\n\nvar LAYOUTS = layouts();\n\n\n// MAIN //\n\n/**\n* Returns an object mapping supported orders to integer values for purposes of C inter-operation.\n*\n* ## Notes\n*\n* - Downstream consumers of this mapping should **not** rely on specific integer values (e.g., `row-major == 1`). Instead, the object should be used in an opaque manner.\n* - The main purpose of this function is JavaScript and C inter-operation of ndarray objects.\n*\n* @returns {Object} object mapping supported orders to integer values\n*\n* @example\n* var table = enumerated();\n* // returns \n*/\nfunction enumerated() {\n\t// NOTE: the following should match the C `orders.h` enumeration!!!!\n\treturn {\n\t\t// Row-major (C-style):\n\t\t'row-major': LAYOUTS[ 'row-major' ],\n\n\t\t// Column-major (Fortran-style):\n\t\t'column-major': LAYOUTS[ 'column-major' ]\n\t};\n}\n\n\n// EXPORTS //\n\nexport default enumerated;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 a list of ndarray orders.\n*\n* @module @stdlib/ndarray/orders\n*\n* @example\n* import orders from '@stdlib/ndarray/orders';\n*\n* var list = orders();\n* // e.g., returns [ 'row-major', 'column-major' ]\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport enumeration from './enum.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'enum', enumeration );\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 MODES from './modes.json';\n\n\n// MAIN //\n\n/**\n* Returns a list of ndarray index modes.\n*\n* @returns {StringArray} list of ndarray index modes\n*\n* @example\n* var list = modes();\n* // returns [ 'throw', 'normalize', 'clamp', 'wrap' ]\n*/\nfunction modes() {\n\treturn MODES.slice();\n}\n\n\n// EXPORTS //\n\nexport default modes;\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* Returns an object mapping supported index modes to integer values for purposes of C inter-operation.\n*\n* ## Notes\n*\n* - Downstream consumers of this mapping should **not** rely on specific integer values (e.g., `throw == 1`). Instead, the object should be used in an opaque manner.\n* - The main purpose of this function is JavaScript and C inter-operation of ndarray objects.\n*\n* @returns {Object} object mapping supported index modes to integer values\n*\n* @example\n* var table = enumerated();\n* // returns \n*/\nfunction enumerated() {\n\t// NOTE: the following should match the C `index_modes.h` enumeration!!!!\n\treturn {\n\t\t'throw': 1,\n\t\t'clamp': 2,\n\t\t'wrap': 3,\n\t\t'normalize': 4\n\t};\n}\n\n\n// EXPORTS //\n\nexport default enumerated;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 a list of ndarray index modes.\n*\n* @module @stdlib/ndarray/index-modes\n*\n* @example\n* import modes from '@stdlib/ndarray/index-modes';\n*\n* var list = modes();\n* // returns [ 'throw', 'normalize', 'clamp', 'wrap' ]\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport modes from './main.js';\nimport enumeration from './enum.js';\n\n\n// MAIN //\n\nsetReadOnly( modes, 'enum', enumeration );\n\n\n// EXPORTS //\n\nexport default modes;\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 IS_LITTLE_ENDIAN from '@stdlib/assert/is-little-endian';\nimport ArrayBuffer from '@stdlib/array/buffer';\nimport DataView from '@stdlib/array/dataview';\nimport BigInt from '@stdlib/bigint/ctor';\nimport { enum as dtypes } from './../../../dtypes';\nimport { enum as orders } from './../../../orders';\nimport { enum as modes } from './../../../index-modes';\n\n\n// VARIABLES //\n\nvar DTYPES = dtypes();\nvar ORDERS = orders();\nvar MODES = modes();\n\n\n// FUNCTIONS //\n\n/**\n* Serializes ndarray meta data to a `DataView`.\n*\n* ## Notes\n*\n* - This function takes into account ndarray-like objects which may support index modes.\n*\n* - This function defaults to returning cached serialized meta data. To force serialization, set the private `__meta_dataview__` property to `null`.\n*\n* - Serialization is performed according to host byte order (endianness).\n*\n* - Meta data format:\n*\n* ```text\n* | endianness (1 byte) | (2 bytes) | (8 bytes) | (ndims*8 bytes) | (ndims*8 bytes) | (8 bytes) | (1 byte) | (1 byte) | (8 bytes) | (nsubmodes*1 bytes) | (4 bytes) |\n* ```\n*\n* which translates to the following `ArrayBuffer` layout:\n*\n* ```text\n* ArrayBuffer[\n* [int8],\n* [int16],\n* [int64],\n* [ndims*int64],\n* [ndims*int64],\n* [int64],\n* [int8],\n* [int8],\n* [int64],\n* [nsubmodes*int8],\n* [int32]\n* ]\n* ```\n*\n* where `strides` and `offset` are in units of bytes.\n*\n* - If the endianness is `1`, the byte order is little endian. If the endianness is `0`, the byte order is big endian.\n*\n* - Buffer length:\n*\n* ```text\n* 1 + 2 + 8 + (ndims*8) + (ndims*8) + 8 + 1 + 1 + 8 + (nsubmodes*1) + 4 = 33 + (ndims*16) + nsubmodes\n* ```\n*\n* For example, consider a three-dimensional ndarray with one subscript index mode (submode):\n*\n* ```text\n* 33 + (3*16) + 1 = 82 bytes\n* ```\n*\n* - Views:\n*\n* - endianness: `Int8Array( buf, 0, 1 )`\n* - dtype: `Int16Array( buf, 1, 1 )`\n* - ndims: `Int64Array( buf, 3, 1 )`\n* - shape: `Int64Array( buf, 11, ndims )`\n* - strides: `Int64Array( buf, 11+(ndims*8), ndims )`\n* - offset: `Int64Array( buf, 11+(ndims*16), 1 )`\n* - order: `Int8Array( buf, 19+(ndims*16), 1 )`\n* - mode: `Int8Array( buf, 20+(ndims*16), 1 )`\n* - nsubmodes: `Int64Array( buf, 21+(ndims*16), 1 )`\n* - submodes: `Int8Array( buf, 29+(ndims*16), nsubmodes )`\n* - flags: `Int32Array( buf, 29+(ndims*16)+nsubmodes, 1 )`\n*\n* @private\n* @returns {DataView} serialized meta data\n*/\nfunction meta2dataview() {\n\t/* eslint-disable no-invalid-this */\n\tvar nbytes;\n\tvar flgs;\n\tvar len;\n\tvar dt;\n\tvar sh;\n\tvar st;\n\tvar sm;\n\tvar v;\n\tvar m;\n\tvar o;\n\tvar s;\n\tvar N;\n\tvar M;\n\tvar i;\n\n\tm = this._mode || 'throw';\n\tsm = this._submode || [ m ];\n\tN = this._ndims;\n\tM = sm.length;\n\n\t// Compute the amount of memory we need to allocate for storing meta data:\n\tlen = 33 + (N*16) + M;\n\n\t// Check if we've already serialized ndarray meta data and can reuse an already allocated array buffer...\n\tv = this.__meta_dataview__;\n\tif ( v && v.byteLength === len ) { // Note: the byte length check is only a bare minimum sanity check, as cached contents may still be \"stale\" (e.g., shape and/or strides may have changed)\n\t\treturn v;\n\t}\n\t// Allocate raw memory and create a view for interfacing with the allocated memory:\n\tv = new DataView( new ArrayBuffer( len ) );\n\n\t// Retrieve ndarray meta data:\n\tsh = this._shape;\n\tst = this._strides;\n\tdt = this._dtype;\n\tnbytes = this._bytesPerElement;\n\n\t// Endianness: (byteoffset: 0; bytelength: 1)\n\to = 0;\n\tv.setInt8( o, ( IS_LITTLE_ENDIAN ) ? 1 : 0 );\n\n\t// Data type: (byteoffset: 1; bytelength: 2)\n\to += 1;\n\tv.setInt16( o, DTYPES[ dt ], IS_LITTLE_ENDIAN );\n\n\t// Number of dimensions: (byteoffset: 3; bytelength: 8)\n\to += 2;\n\tv.setBigInt64( o, BigInt( N ), IS_LITTLE_ENDIAN );\n\n\t// Shape and strides: (byteoffset: 11 and 11+(ndims*8), respectively; bytelength: ndims*8 for both shape and strides, and, thus, ndims*16 total)\n\ts = N * 8; // stride length between a dimension (shape[i]) and its associated stride\n\to += 8;\n\tfor ( i = 0; i < N; i++ ) {\n\t\tv.setBigInt64( o, BigInt( sh[i] ), IS_LITTLE_ENDIAN );\n\t\tv.setBigInt64( o+s, BigInt( st[i]*nbytes ), IS_LITTLE_ENDIAN );\n\t\to += 8;\n\t}\n\t// Offset: (byteoffset: 11+(ndims*16); bytelength: 8)\n\to += s;\n\tv.setBigInt64( o, BigInt( this._offset*nbytes ), IS_LITTLE_ENDIAN );\n\n\t// Order: (byteoffset: 19+(ndims*16); bytelength: 1)\n\to += 8;\n\tv.setInt8( o, ORDERS[ this._order ] );\n\n\t// Mode: (byteoffset: 20+(ndims*16); bytelength: 1)\n\to += 1;\n\tv.setInt8( o, MODES[ m ] );\n\n\t// Number of submodes: (byteoffset: 21+(ndims*16); bytelength: 8)\n\to += 1;\n\tv.setBigInt64( o, BigInt( M ), IS_LITTLE_ENDIAN );\n\n\t// Submodes: (byteoffset: 29+(ndims*16); bytelength: nsubmodes*1)\n\to += 8;\n\tfor ( i = 0; i < M; i++ ) {\n\t\tv.setInt8( o, MODES[ sm[i] ] );\n\t\to += 1;\n\t}\n\t// Flags: (byteoffset: 29+(ndims*16)+nsubmodes; bytelength: 4)\n\tflgs = 0|0;\n\tflgs |= ( this._flags.READONLY ) ? 4 : 0; // 00000000 00000000 00000000 00000100\n\tv.setInt32( o, flgs, IS_LITTLE_ENDIAN );\n\n\t// Cache the serialized meta data:\n\tthis.__meta_dataview__ = v;\n\n\treturn v;\n\n\t/* eslint-enable no-invalid-this */\n}\n\n\n// EXPORTS //\n\nexport default meta2dataview;\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 IS_LITTLE_ENDIAN from '@stdlib/assert/is-little-endian';\nimport Uint8Array from '@stdlib/array/uint8';\nimport DataView from '@stdlib/array/dataview';\nimport floor from '@stdlib/math/base/special/floor';\n\n\n// VARIABLES //\n\n// 0xFFFFFFFF = 2**32 - 1 => 11111111 11111111 11111111 11111111\nvar LOW_MASK = 0xFFFFFFFF >>> 0;\n\n// 2**32\nvar TWO_32 = 4294967296;\n\n// Byte array workspace:\nvar BYTES = new Uint8Array( 8 );\nvar VIEW = new DataView( BYTES.buffer );\n\n\n// MAIN //\n\n/**\n* Converts an integer-valued double-precision floating-point number to a signed 64-bit integer byte array according to host byte order (endianness).\n*\n* ## Notes\n*\n* - This function assumes that the input value is less than the maximum safe double-precision floating-point integer plus one (i.e., `2**53`).\n*\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* import Uint8Array from '@stdlib/array/uint8';\n*\n* var out = new Uint8Array( 8 );\n* var bytes = float64ToInt64Bytes( 1.0, out, 1, 0 );\n* // returns \n*/\nfunction float64ToInt64Bytes( x, out, stride, offset ) {\n\tvar hi;\n\tvar lo;\n\tvar i;\n\n\tif ( x === 0 ) {\n\t\tfor ( i = 0; i < BYTES.length; i++ ) {\n\t\t\tout[ offset ] = 0;\n\t\t\toffset += stride;\n\t\t}\n\t\treturn out;\n\t}\n\t// Get the low 32-bit word:\n\tlo = (x&LOW_MASK)>>>0;\n\n\t// Get the high 32-bit word:\n\thi = floor( x/TWO_32 );\n\n\t// Insert the high and low words according to host byte order (endianness):\n\tif ( IS_LITTLE_ENDIAN ) {\n\t\tVIEW.setUint32( 0, lo, IS_LITTLE_ENDIAN );\n\t\tVIEW.setUint32( 4, hi, IS_LITTLE_ENDIAN );\n\t} else {\n\t\tVIEW.setUint32( 0, hi, IS_LITTLE_ENDIAN );\n\t\tVIEW.setUint32( 4, lo, IS_LITTLE_ENDIAN );\n\t}\n\tfor ( i = 0; i < BYTES.length; i++ ) {\n\t\tout[ offset ] = BYTES[ i ];\n\t\toffset += stride;\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default float64ToInt64Bytes;\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* Convert an integer-valued double-precision floating-point number to a signed 64-bit integer byte array according to host byte order (endianness).\n*\n* @module @stdlib/number/float64/base/to-int64-bytes\n*\n* @example\n* import float64ToInt64Bytes from '@stdlib/number/float64/base/to-int64-bytes';\n*\n* var bytes = float64ToInt64Bytes( 1.0 );\n* // returns \n*\n* @example\n* import Uint8Array from '@stdlib/array/uint8';\n* import float64ToInt64Bytes from '@stdlib/number/float64/base/to-int64-bytes';\n*\n* var out = new Uint8Array( 8 );\n* var bytes = float64ToInt64Bytes( 1.0, out, 1, 0 );\n* // returns \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// MODULES //\n\nimport IS_LITTLE_ENDIAN from '@stdlib/assert/is-little-endian';\nimport Uint8Array from '@stdlib/array/uint8';\nimport DataView from '@stdlib/array/dataview';\nimport floor from '@stdlib/math/base/special/floor';\n\n\n// VARIABLES //\n\n// 0xFFFFFFFF = 2**32 - 1 => 11111111 11111111 11111111 11111111\nvar LOW_MASK = 0xFFFFFFFF >>> 0;\n\n// 2**32\nvar TWO_32 = 4294967296;\n\n\n// MAIN //\n\n/**\n* Converts an integer-valued double-precision floating-point number to a signed 64-bit integer byte array according to host byte order (endianness).\n*\n* ## Notes\n*\n* - This function assumes that the input value is less than the maximum safe double-precision floating-point integer plus one (i.e., `2**53`).\n*\n* @param {number} x - input value\n* @returns {Uint8Array} byte array\n*\n* @example\n* var bytes = float64ToInt64Bytes( 1.0 );\n* // returns \n*/\nfunction float64ToInt64Bytes( x ) {\n\tvar bytes;\n\tvar view;\n\tvar hi;\n\tvar lo;\n\n\tbytes = new Uint8Array( 8 );\n\tif ( x === 0 ) {\n\t\treturn bytes;\n\t}\n\t// Get the low 32-bit word:\n\tlo = (x&LOW_MASK)>>>0;\n\n\t// Get the high 32-bit word:\n\thi = floor( x/TWO_32 );\n\n\t// Insert the high and low words according to host byte order (endianness):\n\tview = new DataView( bytes.buffer );\n\tif ( IS_LITTLE_ENDIAN ) {\n\t\tview.setUint32( 0, lo, IS_LITTLE_ENDIAN );\n\t\tview.setUint32( 4, hi, IS_LITTLE_ENDIAN );\n\t} else {\n\t\tview.setUint32( 0, hi, IS_LITTLE_ENDIAN );\n\t\tview.setUint32( 4, lo, IS_LITTLE_ENDIAN );\n\t}\n\treturn bytes;\n}\n\n\n// EXPORTS //\n\nexport default float64ToInt64Bytes;\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 IS_LITTLE_ENDIAN from '@stdlib/assert/is-little-endian';\nimport ArrayBuffer from '@stdlib/array/buffer';\nimport DataView from '@stdlib/array/dataview';\nimport Uint8Array from '@stdlib/array/uint8';\nimport { enum as dtypes } from './../../../dtypes';\nimport { enum as orders } from './../../../orders';\nimport { enum as modes } from './../../../index-modes';\nimport { assign as float64ToInt64Bytes } from '@stdlib/number/float64/base/to-int64-bytes';\n\n\n// VARIABLES //\n\nvar DTYPES = dtypes();\nvar ORDERS = orders();\nvar MODES = modes();\n\n\n// FUNCTIONS //\n\n/**\n* Serializes ndarray meta data to a `DataView`.\n*\n* ## Notes\n*\n* - This function takes into account ndarray-like objects which may support index modes.\n*\n* - This function defaults to returning cached serialized meta data. To force serialization, set the private `__meta_dataview__` property to `null`.\n*\n* - Serialization is performed according to host byte order (endianness).\n*\n* - Meta data format:\n*\n* ```text\n* | endianness (1 byte) | (2 bytes) | (8 bytes) | (ndims*8 bytes) | (ndims*8 bytes) | (8 bytes) | (1 byte) | (1 byte) | (8 bytes) | (nsubmodes*1 bytes) | (4 bytes) |\n* ```\n*\n* which translates to the following `ArrayBuffer` layout:\n*\n* ```text\n* ArrayBuffer[\n* [int8],\n* [int16],\n* [int64],\n* [ndims*int64],\n* [ndims*int64],\n* [int64],\n* [int8],\n* [int8],\n* [int64],\n* [nsubmodes*int8],\n* [int32]\n* ]\n* ```\n*\n* where `strides` and `offset` are in units of bytes.\n*\n* - If the endianness is `1`, the byte order is little endian. If the endianness is `0`, the byte order is big endian.\n*\n* - Buffer length:\n*\n* ```text\n* 1 + 2 + 8 + (ndims*8) + (ndims*8) + 8 + 1 + 1 + 8 + (nsubmodes*1) + 4 = 33 + (ndims*16) + nsubmodes\n* ```\n*\n* For example, consider a three-dimensional ndarray with one subscript index mode (submode):\n*\n* ```text\n* 33 + (3*16) + 1 = 82 bytes\n* ```\n*\n* - Views:\n*\n* - endianness: `Int8Array( buf, 0, 1 )`\n* - dtype: `Int16Array( buf, 1, 1 )`\n* - ndims: `Int64Array( buf, 3, 1 )`\n* - shape: `Int64Array( buf, 11, ndims )`\n* - strides: `Int64Array( buf, 11+(ndims*8), ndims )`\n* - offset: `Int64Array( buf, 11+(ndims*16), 1 )`\n* - order: `Int8Array( buf, 19+(ndims*16), 1 )`\n* - mode: `Int8Array( buf, 20+(ndims*16), 1 )`\n* - nsubmodes: `Int64Array( buf, 21+(ndims*16), 1 )`\n* - submodes: `Int8Array( buf, 29+(ndims*16), nsubmodes )`\n* - flags: `Int32Array( buf, 29+(ndims*16)+nsubmodes, 1 )`\n*\n* @private\n* @returns {DataView} serialized meta data\n*/\nfunction meta2dataview() {\n\t/* eslint-disable no-invalid-this */\n\tvar nbytes;\n\tvar bytes;\n\tvar flgs;\n\tvar len;\n\tvar dt;\n\tvar sh;\n\tvar st;\n\tvar sm;\n\tvar v;\n\tvar m;\n\tvar o;\n\tvar s;\n\tvar N;\n\tvar M;\n\tvar i;\n\n\tm = this._mode || 'throw';\n\tsm = this._submode || [ m ];\n\tN = this._ndims;\n\tM = sm.length;\n\n\t// Compute the amount of memory we need to allocate for storing meta data:\n\tlen = 33 + (N*16) + M;\n\n\t// Check if we've already serialized ndarray meta data and can reuse an already allocated array buffer...\n\tv = this.__meta_dataview__;\n\tif ( v && v.byteLength === len ) { // Note: the byte length check is only a bare minimum sanity check, as cached contents may still be \"stale\" (e.g., shape and/or strides may have changed)\n\t\treturn v;\n\t}\n\t// Allocate raw memory and create views for interfacing with the allocated memory:\n\tv = new DataView( new ArrayBuffer( len ) );\n\tbytes = new Uint8Array( v.buffer );\n\n\t// Retrieve ndarray meta data:\n\tsh = this._shape;\n\tst = this._strides;\n\tdt = this._dtype;\n\tnbytes = this._bytesPerElement;\n\n\t// Endianness: (byteoffset: 0; bytelength: 1)\n\to = 0;\n\tv.setInt8( o, ( IS_LITTLE_ENDIAN ) ? 1 : 0 );\n\n\t// Data type: (byteoffset: 1; bytelength: 2)\n\to += 1;\n\tv.setInt16( o, DTYPES[ dt ], IS_LITTLE_ENDIAN );\n\n\t// Number of dimensions: (byteoffset: 3; bytelength: 8)\n\to += 2;\n\tfloat64ToInt64Bytes( N, bytes, 1, o );\n\n\t// Shape and strides: (byteoffset: 11 and 11+(ndims*8), respectively; bytelength: ndims*8 for both shape and strides, and, thus, ndims*16 total)\n\ts = N * 8; // stride length between a dimension (shape[i]) and its associated stride\n\to += 8;\n\tfor ( i = 0; i < N; i++ ) {\n\t\tfloat64ToInt64Bytes( sh[i], bytes, 1, o );\n\t\tfloat64ToInt64Bytes( st[i]*nbytes, bytes, 1, o+s );\n\t\to += 8;\n\t}\n\t// Offset: (byteoffset: 11+(ndims*16); bytelength: 8)\n\to += s;\n\tfloat64ToInt64Bytes( this._offset*nbytes, bytes, 1, o );\n\n\t// Order: (byteoffset: 19+(ndims*16); bytelength: 1)\n\to += 8;\n\tv.setInt8( o, ORDERS[ this._order ] );\n\n\t// Mode: (byteoffset: 20+(ndims*16); bytelength: 1)\n\to += 1;\n\tv.setInt8( o, MODES[ m ] );\n\n\t// Number of submodes: (byteoffset: 21+(ndims*16); bytelength: 8)\n\to += 1;\n\tfloat64ToInt64Bytes( M, bytes, 1, o );\n\n\t// Submodes: (byteoffset: 29+(ndims*16); bytelength: nsubmodes*1)\n\to += 8;\n\tfor ( i = 0; i < M; i++ ) {\n\t\tv.setInt8( o, MODES[ sm[i] ] );\n\t\to += 1;\n\t}\n\t// Flags: (byteoffset: 29+(ndims*16)+nsubmodes; bytelength: 4)\n\tflgs = 0|0;\n\tflgs |= ( this._flags.READONLY ) ? 4 : 0; // 00000000 00000000 00000000 00000100\n\tv.setInt32( o, flgs, IS_LITTLE_ENDIAN );\n\n\t// Cache the serialized meta data:\n\tthis.__meta_dataview__ = v;\n\n\treturn v;\n\n\t/* eslint-enable no-invalid-this */\n}\n\n\n// EXPORTS //\n\nexport default meta2dataview;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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 no-restricted-syntax, no-invalid-this */\n\n'use strict';\n\n// MODULES //\n\nimport hasBigIntSupport from '@stdlib/assert/has-bigint-support';\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport setReadOnlyAccessor from '@stdlib/utils/define-nonenumerable-read-only-accessor';\nimport bytesPerElement from './../../../base/bytes-per-element';\nimport iterationOrder from './../../../base/iteration-order';\nimport strides2order from './../../../base/strides2order';\nimport Boolean from '@stdlib/boolean/ctor';\nimport isColumnMajorContiguous from './is_column_major_contiguous.js';\nimport isRowMajorContiguous from './is_row_major_contiguous.js';\nimport isContiguous from './is_contiguous.js';\nimport copyFlags from './copy_flags.js';\nimport igetValue from './iget.js';\nimport isetValue from './iset.js';\nimport setValue from './set.js';\nimport getValue from './get.js';\nimport toJSON from './tojson.js';\nimport toString from './tostring.js'; // eslint-disable-line stdlib/no-redeclare\nimport meta2dataview from './meta2dataview.js';\nimport meta2dataviewPolyfill from './meta2dataview.polyfill.js';\n\n\n// MAIN //\n\n/**\n* ndarray constructor.\n*\n* ## Notes\n*\n* - To create a zero-dimensional array,\n*\n* ```javascript\n* var buffer = [ 1 ];\n* var shape = [];\n* var strides = [ 0 ];\n* var offset = 0;\n*\n* var out = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n* ```\n*\n* @constructor\n* @param {string} dtype - data type\n* @param {(ArrayLikeObject|TypedArray|Buffer)} buffer - data buffer\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {IntegerArray} strides - array strides\n* @param {NonNegativeInteger} offset - index offset\n* @param {string} order - specifies whether an array is row-major (C-style) or column-major (Fortran-style)\n* @returns {ndarray} ndarray instance\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var out = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*/\nfunction ndarray( dtype, buffer, shape, strides, offset, order ) {\n\tvar contiguous;\n\tvar nbytes;\n\tvar ord;\n\tvar len;\n\tvar i;\n\tif ( !(this instanceof ndarray) ) {\n\t\treturn new ndarray( dtype, buffer, shape, strides, offset, order );\n\t}\n\t// Compute the number of elements...\n\tlen = 1;\n\tfor ( i = 0; i < shape.length; i++ ) {\n\t\tlen *= shape[ i ];\n\t}\n\t// Compute the number of bytes...\n\tif ( buffer.BYTES_PER_ELEMENT ) {\n\t\tnbytes = buffer.BYTES_PER_ELEMENT * len;\n\t} else {\n\t\tnbytes = null;\n\t}\n\t// Set private properties...\n\tthis._byteLength = nbytes;\n\tthis._bytesPerElement = bytesPerElement( dtype );\n\tthis._buffer = buffer;\n\tthis._dtype = dtype;\n\tthis._length = len;\n\tthis._ndims = shape.length;\n\tthis._offset = offset;\n\tthis._order = order;\n\tthis._shape = shape;\n\tthis._strides = strides;\n\tthis._accessors = Boolean( buffer.get && buffer.set );\n\n\tthis._iterationOrder = iterationOrder( strides );\n\n\t// Determine if the array can be stored contiguously:\n\tcontiguous = isContiguous( len, shape, strides, offset, this._iterationOrder ); // eslint-disable-line max-len\n\n\t// Infer the array \"order\" from the stride array (this is supplementary to the `order` parameter):\n\tord = strides2order( strides );\n\n\tthis._flags = {\n\t\t'ROW_MAJOR_CONTIGUOUS': isRowMajorContiguous( ord, contiguous ),\n\t\t'COLUMN_MAJOR_CONTIGUOUS': isColumnMajorContiguous( ord, contiguous ),\n\t\t'READONLY': false\n\t};\n\n\t// Initialize a property for caching serialized meta data:\n\tthis.__meta_dataview__ = null;\n\n\treturn this;\n}\n\n/**\n* Constructor name.\n*\n* @name name\n* @memberof ndarray\n* @type {string}\n* @default 'ndarray'\n*\n* @example\n* var str = ndarray.name;\n* // returns 'ndarray'\n*/\nsetReadOnly( ndarray, 'name', 'ndarray' );\n\n/**\n* Size (in bytes) of the array (if known).\n*\n* @name byteLength\n* @memberof ndarray.prototype\n* @type {(NonNegativeInteger|null)}\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* var buffer = new Float64Array( [ 1, 2, 3, 4, 5, 6 ] );\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'float64', buffer, shape, strides, offset, 'row-major' );\n*\n* var byteLength = x.byteLength;\n* // returns 48\n*/\nsetReadOnlyAccessor( ndarray.prototype, 'byteLength', function get() {\n\treturn this._byteLength;\n});\n\n/**\n* Size (in bytes) of each array element (if known).\n*\n* @name BYTES_PER_ELEMENT\n* @memberof ndarray.prototype\n* @type {(PositiveInteger|null)}\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* var buffer = new Float64Array( [ 1, 2, 3, 4, 5, 6 ] );\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'float64', buffer, shape, strides, offset, 'row-major' );\n*\n* var nbytes = x.BYTES_PER_ELEMENT;\n* // returns 8\n*/\nsetReadOnlyAccessor( ndarray.prototype, 'BYTES_PER_ELEMENT', function get() {\n\treturn this._bytesPerElement;\n});\n\n/**\n* Pointer to the underlying data buffer.\n*\n* @name data\n* @memberof ndarray.prototype\n* @type {(Array|TypedArray|Buffer)}\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var data = x.data;\n* // returns [ 1, 2, 3, 4, 5, 6 ]\n*/\nsetReadOnlyAccessor( ndarray.prototype, 'data', function get() {\n\treturn this._buffer;\n});\n\n/**\n* Underlying data type.\n*\n* @name dtype\n* @memberof ndarray.prototype\n* @type {string}\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var dtype = x.dtype;\n* // returns 'generic'\n*/\nsetReadOnlyAccessor( ndarray.prototype, 'dtype', function get() {\n\treturn this._dtype;\n});\n\n/**\n* Meta information, such as information concerning the memory layout of the array.\n*\n* @name flags\n* @memberof ndarray.prototype\n* @type {Object}\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var flgs = x.flags;\n* // returns \n*/\nsetReadOnlyAccessor( ndarray.prototype, 'flags', function get() {\n\treturn copyFlags( this._flags );\n});\n\n/**\n* Length of the array.\n*\n* @name length\n* @memberof ndarray.prototype\n* @type {NonNegativeInteger}\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var len = x.length;\n* // returns 6\n*/\nsetReadOnlyAccessor( ndarray.prototype, 'length', function get() {\n\treturn this._length;\n});\n\n/**\n* Number of dimensions.\n*\n* @name ndims\n* @memberof ndarray.prototype\n* @type {PositiveInteger}\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var ndims = x.ndims;\n* // returns 2\n*/\nsetReadOnlyAccessor( ndarray.prototype, 'ndims', function get() {\n\treturn this._ndims;\n});\n\n/**\n* Index offset which specifies the buffer index at which to start iterating over array elements.\n*\n* @name offset\n* @memberof ndarray.prototype\n* @type {NonNegativeInteger}\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var o = x.offset;\n* // returns 0\n*/\nsetReadOnlyAccessor( ndarray.prototype, 'offset', function get() {\n\treturn this._offset;\n});\n\n/**\n* Array order.\n*\n* ## Notes\n*\n* - The array order is either row-major (C-style) or column-major (Fortran-style).\n*\n* @name order\n* @memberof ndarray.prototype\n* @type {string}\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var order = x.order;\n* // returns 'row-major'\n*/\nsetReadOnlyAccessor( ndarray.prototype, 'order', function get() {\n\treturn this._order;\n});\n\n/**\n* Shape of the array.\n*\n* @name shape\n* @memberof ndarray.prototype\n* @type {NonNegativeIntegerArray}\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var s = x.shape;\n* // returns [ 3, 2 ]\n*/\nsetReadOnlyAccessor( ndarray.prototype, 'shape', function get() {\n\treturn this._shape.slice();\n});\n\n/**\n* Index strides which specify how to access data along corresponding array dimensions.\n*\n* @name strides\n* @memberof ndarray.prototype\n* @type {IntegerArray}\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var s = x.strides;\n* // returns [ 2, 1 ]\n*/\nsetReadOnlyAccessor( ndarray.prototype, 'strides', function get() {\n\treturn this._strides.slice();\n});\n\n/**\n* Returns an array element.\n*\n* ## Notes\n*\n* - The number of indices should **equal** the number of dimensions. Accordingly, for zero-dimensional arrays, no indices should be provided.\n*\n* @name get\n* @memberof ndarray.prototype\n* @type {Function}\n* @param {...integer} [idx] - indices\n* @returns {*} array element\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var v = x.get( 1, 1 );\n* // returns 4\n*/\nsetReadOnly( ndarray.prototype, 'get', getValue );\n\n/**\n* Returns an array element located at a specified linear index.\n*\n* ## Notes\n*\n* - For zero-dimensional arrays, the input argument is ignored and, for clarity, should not be provided.\n*\n* @name iget\n* @memberof ndarray.prototype\n* @type {Function}\n* @param {integer} [idx] - linear index\n* @returns {*} array element\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var v = x.iget( 3 );\n* // returns 4\n*/\nsetReadOnly( ndarray.prototype, 'iget', igetValue );\n\n/**\n* Sets an array element.\n*\n* ## Notes\n*\n* - The number of indices should **equal** the number of dimensions. Accordingly, for zero-dimensional arrays, no indices should be provided.\n*\n* @name set\n* @memberof ndarray.prototype\n* @type {Function}\n* @param {...integer} [idx] - indices\n* @param {*} v - value to set\n* @returns {ndarray} ndarray instance\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var v = x.get( 1, 1 );\n* // returns 4\n*\n* x.set( 1, 1, 10 );\n*\n* var b = x.data;\n* // returns [ 1, 2, 3, 10, 5, 6 ]\n*\n* v = x.get( 1, 1 );\n* // returns 10\n*/\nsetReadOnly( ndarray.prototype, 'set', setValue );\n\n/**\n* Sets an array element located at a specified linear index.\n*\n* ## Notes\n*\n* - For zero-dimensional arrays, the first, and only, argument should be the value to set.\n*\n* @name iset\n* @memberof ndarray.prototype\n* @type {Function}\n* @param {integer} [idx] - linear index\n* @param {*} v - value to set\n* @returns {ndarray} ndarray instance\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var v = x.iget( 3 );\n* // returns 4\n*\n* x.iset( 3, 10 );\n*\n* var b = x.data;\n* // returns [ 1, 2, 3, 10, 5, 6 ]\n*\n* v = x.iget( 3 );\n* // returns 10\n*/\nsetReadOnly( ndarray.prototype, 'iset', isetValue );\n\n/**\n* Serializes an ndarray as a string.\n*\n* ## Notes\n*\n* - The method does **not** serialize data outside of the buffer region defined by the array configuration.\n*\n* @name toString\n* @memberof ndarray.prototype\n* @type {Function}\n* @returns {string} serialized ndarray\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6, 7, 8 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 2;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var str = x.toString();\n* // returns \"ndarray( 'generic', [ 3, 4, 5, 6, 7, 8 ], [ 3, 2 ], [ 2, 1 ], 0, 'row-major' )\"\n*/\nsetReadOnly( ndarray.prototype, 'toString', toString );\n\n/**\n* Serializes an ndarray as a JSON object.\n*\n* ## Notes\n*\n* - `JSON.stringify()` implicitly calls this method when stringifying an `ndarray` instance.\n* - The method does **not** serialize data outside of the buffer region defined by the array configuration.\n*\n* @name toJSON\n* @memberof ndarray.prototype\n* @type {Function}\n* @returns {Object} serialized ndarray\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6, 7, 8 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 2;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var o = x.toJSON();\n* // e.g., returns { 'type': 'ndarray', 'dtype': 'generic', 'flags': {...}, 'offset': 0, 'order': 'row-major', 'shape': [ 3, 2 ], 'strides': [ 2, 1 ], 'data': [ 3, 4, 5, 6, 7, 8 ] }\n*/\nsetReadOnly( ndarray.prototype, 'toJSON', toJSON );\n\n/**\n* Serializes ndarray meta data to a `DataView`.\n*\n* ## Notes\n*\n* - Meta data format:\n*\n* ```text\n* | (1 byte) | (2 bytes) | (8 bytes) | (ndims*8 bytes) | (ndims*8 bytes) | (8 bytes) | (1 byte) | (1 byte) | (8 bytes) | (nsubmodes*1 bytes) | (4 bytes) |\n* ```\n*\n* where `strides` and `offset` are in units of bytes.\n*\n* - If the endianness is `1`, the byte order is little endian. If the endianness is `0`, the byte order is big endian.\n*\n* - Serialization is performed according to host byte order (endianness).\n*\n* - Consumers of this method should treat the returned `DataView` as **immutable**. Otherwise, mutation can invalidate meta data and potentially affect other consumers.\n*\n* @private\n* @name __array_meta_dataview__\n* @memberof ndarray.prototype\n* @type {Function}\n* @returns {DataView} serialized meta data\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6, 7, 8 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 2;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var dv = x.__array_meta_dataview__();\n* // returns \n*/\nsetReadOnly( ndarray.prototype, '__array_meta_dataview__', ( hasBigIntSupport() ) ? meta2dataview : meta2dataviewPolyfill );\n\n\n// EXPORTS //\n\nexport default ndarray;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport minmaxViewBufferIndex from './../../../base/minmax-view-buffer-index';\n\n\n// MAIN //\n\n/**\n* Determines if an array is contiguous.\n*\n* @private\n* @param {NonNegativeInteger} len - array length\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {IntegerArray} strides - stride array\n* @param {NonNegativeInteger} offset - index offset\n* @param {integer} iterationOrder - iteration order\n* @returns {boolean} boolean indicating if an array is contiguous\n*/\nfunction isContiguous( len, shape, strides, offset, iterationOrder ) {\n\tvar buf;\n\n\t// If an array does not contain any elements, then no data to store, and, if the array is unordered, adjacent array elements are not guaranteed to be stored next to each other.\n\tif ( len === 0 || iterationOrder === 0 ) {\n\t\treturn false;\n\t}\n\t// Ensure that the array is compatible with a single memory segment:\n\tbuf = minmaxViewBufferIndex( shape, strides, offset );\n\treturn ( len === ( buf[1]-buf[0]+1 ) );\n}\n\n\n// EXPORTS //\n\nexport default isContiguous;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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/base/ctor';\n\n\n// MAIN //\n\n/**\n* Tests if a value is ndarray-like.\n*\n* @param {*} v - value to test\n* @returns {boolean} boolean indicating if a value is ndarray-like\n*\n* @example\n* import ndarray from '@stdlib/ndarray/ctor';\n*\n* var arr = ndarray( 'generic', [ 0, 0, 0, 0 ], [ 2, 2 ], [ 2, 1 ], 0, 'row-major' );\n*\n* var bool = isndarrayLike( arr );\n* // returns true\n*\n* bool = isndarrayLike( [] );\n* // returns false\n*/\nfunction isndarrayLike( v ) {\n\treturn (\n\t\tv instanceof ndarray ||\n\t\t(\n\t\t\tv !== null &&\n\t\t\ttypeof v === 'object' &&\n\t\t\ttypeof v.data === 'object' &&\n\t\t\ttypeof v.shape === 'object' &&\n\t\t\ttypeof v.strides === 'object' &&\n\t\t\ttypeof v.offset === 'number' &&\n\t\t\ttypeof v.order === 'string' &&\n\t\t\ttypeof v.ndims === 'number' &&\n\t\t\ttypeof v.dtype === 'string' &&\n\t\t\ttypeof v.length === 'number' &&\n\t\t\ttypeof v.flags === 'object' &&\n\t\t\ttypeof v.get === 'function' &&\n\t\t\ttypeof v.set === 'function'\n\t\t)\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isndarrayLike;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Copies ndarray flags.\n*\n* @private\n* @param {Object} flags - flags\n* @returns {Object} copy of input object\n*/\nfunction copyFlags( flags ) {\n\treturn {\n\t\t'ROW_MAJOR_CONTIGUOUS': flags.ROW_MAJOR_CONTIGUOUS,\n\t\t'COLUMN_MAJOR_CONTIGUOUS': flags.COLUMN_MAJOR_CONTIGUOUS,\n\t\t'READONLY': flags.READONLY\n\t};\n}\n\n\n// EXPORTS //\n\nexport default copyFlags;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 an array element.\n*\n* ## Notes\n*\n* - The number of indices should **equal** the number of dimensions. Accordingly, for zero-dimensional arrays, no indices should be provided.\n*\n* @private\n* @param {...integer} idx - indices\n* @returns {*} array element\n*/\nfunction get() {\n\t/* eslint-disable no-invalid-this */\n\tvar idx;\n\tvar i;\n\n\tidx = this._offset;\n\tfor ( i = 0; i < arguments.length; i++ ) {\n\t\tidx += this._strides[ i ] * arguments[ i ];\n\t}\n\tif ( this._accessors ) {\n\t\treturn this._buffer.get( idx );\n\t}\n\treturn this._buffer[ idx ];\n}\n\n\n// EXPORTS //\n\nexport default get;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 an array element located a specified linear view index.\n*\n* ## Notes\n*\n* - For zero-dimensional arrays, the input argument is ignored and, for clarity, should not be provided.\n*\n* @private\n* @param {integer} [idx] - linear view index\n* @returns {*} array element\n*/\nfunction iget( idx ) {\n\t/* eslint-disable no-invalid-this */\n\tvar strides;\n\tvar shape;\n\tvar ndims;\n\tvar ind;\n\tvar s;\n\tvar i;\n\n\tndims = this._ndims;\n\tif ( ndims === 0 ) {\n\t\tif ( this._accessors ) {\n\t\t\treturn this._buffer.get( this._offset );\n\t\t}\n\t\treturn this._buffer[ this._offset ];\n\t}\n\tif ( this._flags.ROW_MAJOR_CONTIGUOUS || this._flags.COLUMN_MAJOR_CONTIGUOUS ) { // eslint-disable-line max-len\n\t\t// Trivial case where we have all positive strides...\n\t\tif ( this._iterationOrder === 1 ) {\n\t\t\tif ( this._accessors ) {\n\t\t\t\treturn this._buffer.get( this._offset+idx );\n\t\t\t}\n\t\t\treturn this._buffer[ this._offset+idx ];\n\t\t}\n\t\t// Trivial case where we have all negative strides...\n\t\tif ( this._iterationOrder === -1 ) {\n\t\t\tif ( this._accessors ) {\n\t\t\t\treturn this._buffer.get( this.offset-idx );\n\t\t\t}\n\t\t\treturn this._buffer[ this._offset-idx ];\n\t\t}\n\t}\n\t// The approach which follows is to resolve a view index to its subscripts and then plug the subscripts into the standard formula for computing the linear index in the underlying data buffer...\n\tshape = this._shape;\n\tstrides = this._strides;\n\tind = this._offset;\n\tif ( this._order === 'column-major' ) {\n\t\tfor ( i = 0; i < ndims; i++ ) {\n\t\t\ts = idx % shape[ i ];\n\t\t\tidx -= s;\n\t\t\tidx /= shape[ i ];\n\t\t\tind += s * strides[ i ];\n\t\t}\n\t\tif ( this._accessors ) {\n\t\t\treturn this._buffer.get( ind );\n\t\t}\n\t\treturn this._buffer[ ind ];\n\t}\n\t// Case: row-major\n\tfor ( i = ndims-1; i >= 0; i-- ) {\n\t\ts = idx % shape[ i ];\n\t\tidx -= s;\n\t\tidx /= shape[ i ];\n\t\tind += s * strides[ i ];\n\t}\n\tif ( this._accessors ) {\n\t\treturn this._buffer.get( ind );\n\t}\n\treturn this._buffer[ ind ];\n}\n\n\n// EXPORTS //\n\nexport default iget;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Sets an array element.\n*\n* ## Notes\n*\n* - The number of indices should **equal** the number of dimensions. Accordingly, for zero-dimensional arrays, no indices should be provided.\n*\n* @private\n* @param {...integer} [idx] - indices\n* @param {*} v - value to set\n* @returns {ndarray} ndarray instance\n*/\nfunction set() {\n\t/* eslint-disable no-invalid-this */\n\tvar idx;\n\tvar i;\n\n\tidx = this._offset;\n\tfor ( i = 0; i < arguments.length-1; i++ ) {\n\t\tidx += this._strides[ i ] * arguments[ i ];\n\t}\n\tif ( this._accessors ) {\n\t\tthis._buffer.set( arguments[ i ], idx );\n\t} else {\n\t\tthis._buffer[ idx ] = arguments[ i ];\n\t}\n\treturn this;\n}\n\n\n// EXPORTS //\n\nexport default set;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Sets an array element located a specified linear view index.\n*\n* ## Notes\n*\n* - For zero-dimensional arrays, the first, and only, argument should be the value to set.\n*\n* @private\n* @param {integer} [idx] - linear view index\n* @param {*} v - value to set\n* @returns {ndarray} ndarray instance\n*/\nfunction iset( idx, v ) {\n\t/* eslint-disable no-invalid-this */\n\tvar strides;\n\tvar shape;\n\tvar ndims;\n\tvar ind;\n\tvar s;\n\tvar i;\n\n\tndims = this._ndims;\n\tif ( ndims === 0 ) {\n\t\tif ( this._accessors ) {\n\t\t\tthis._buffer.set( idx, this._offset );\n\t\t} else {\n\t\t\tthis._buffer[ this._offset ] = idx;\n\t\t}\n\t\treturn this;\n\t}\n\tif ( this._flags.ROW_MAJOR_CONTIGUOUS || this._flags.COLUMN_MAJOR_CONTIGUOUS ) { // eslint-disable-line max-len\n\t\t// Trivial case where we have all positive strides...\n\t\tif ( this._iterationOrder === 1 ) {\n\t\t\tif ( this._accessors ) {\n\t\t\t\tthis._buffer.set( v, this._offset+idx );\n\t\t\t} else {\n\t\t\t\tthis._buffer[ this._offset+idx ] = v;\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\t// Trivial case where we have all negative strides...\n\t\tif ( this._iterationOrder === -1 ) {\n\t\t\tif ( this._accessors ) {\n\t\t\t\tthis._buffer.set( v, this._offset-idx );\n\t\t\t} else {\n\t\t\t\tthis._buffer[ this._offset-idx ] = v;\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t}\n\t// The approach which follows is to resolve a view index to its subscripts and then plug the subscripts into the standard formula for computing the linear index in the underlying data buffer...\n\tshape = this._shape;\n\tstrides = this._strides;\n\tind = this._offset;\n\tif ( this._order === 'column-major' ) {\n\t\tfor ( i = 0; i < ndims; i++ ) {\n\t\t\ts = idx % shape[ i ];\n\t\t\tidx -= s;\n\t\t\tidx /= shape[ i ];\n\t\t\tind += s * strides[ i ];\n\t\t}\n\t\tif ( this._accessors ) {\n\t\t\tthis._buffer.set( v, ind );\n\t\t} else {\n\t\t\tthis._buffer[ ind ] = v;\n\t\t}\n\t\treturn this;\n\t}\n\t// Case: row-major\n\tfor ( i = ndims-1; i >= 0; i-- ) {\n\t\ts = idx % shape[ i ];\n\t\tidx -= s;\n\t\tidx /= shape[ i ];\n\t\tind += s * strides[ i ];\n\t}\n\tif ( this._accessors ) {\n\t\tthis._buffer.set( v, ind );\n\t} else {\n\t\tthis._buffer[ ind ] = v;\n\t}\n\treturn this;\n}\n\n\n// EXPORTS //\n\nexport default iset;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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* Serializes an ndarray as a JSON object.\n*\n* ## Notes\n*\n* - The method does **not** serialize data outside of the buffer region defined by the array configuration.\n*\n* @private\n* @returns {Object} JSON representation\n*/\nfunction toJSON() {\n\t/* eslint-disable no-invalid-this */\n\tvar out;\n\tvar len;\n\tvar v;\n\tvar i;\n\n\tlen = this._length;\n\n\t// Build an object containing all ndarray properties needed to revive a serialized ndarray...\n\tout = {};\n\tout.type = 'ndarray';\n\tout.dtype = this.dtype;\n\tout.flags = {\n\t\t'READONLY': this._flags.READONLY\n\t};\n\tout.order = this._order;\n\tout.shape = this._shape.slice();\n\tout.strides = this._strides.slice();\n\n\t// Flip the signs of negative strides:\n\tfor ( i = 0; i < len; i++ ) {\n\t\tif ( out.strides[ i ] < 0 ) {\n\t\t\tout.strides[ i ] *= -1;\n\t\t}\n\t}\n\t// Cast data to generic array...\n\tout.data = [];\n\tif ( out.dtype === 'complex64' || out.dtype === 'complex128' ) {\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tv = this.iget( i );\n\t\t\tout.data.push( real( v ), imag( v ) );\n\t\t}\n\t} else {\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tout.data.push( this.iget( i ) );\n\t\t}\n\t}\n\treturn out;\n\n\t/* eslint-enable no-invalid-this */\n}\n\n\n// EXPORTS //\n\nexport default toJSON;\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// MAIN //\n\n// Mapping from ndarray data buffer constructors to data types...\nvar dtypes = {\n\t'Buffer': 'binary',\n\t'Float32Array': 'float32',\n\t'Float64Array': 'float64',\n\t'Array': 'generic',\n\t'Int16Array': 'int16',\n\t'Int32Array': 'int32',\n\t'Int8Array': 'int8',\n\t'Object': 'generic',\n\t'Uint16Array': 'uint16',\n\t'Uint32Array': 'uint32',\n\t'Uint8Array': 'uint8',\n\t'Uint8ClampedArray': 'uint8c',\n\t'Complex64Array': 'complex64',\n\t'Complex128Array': 'complex128',\n\t'BooleanArray': 'bool'\n};\n\n\n// EXPORTS //\n\nexport default dtypes;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport nativeClass from '@stdlib/utils/native-class';\n\n\n// VARIABLES //\n\nvar hasInt32Array = ( typeof Int32Array === 'function' ); // eslint-disable-line stdlib/require-globals\n\n\n// MAIN //\n\n/**\n* Tests if a value is an Int32Array.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether value is an Int32Array\n*\n* @example\n* var bool = isInt32Array( new Int32Array( 10 ) );\n* // returns true\n*\n* @example\n* var bool = isInt32Array( [] );\n* // returns false\n*/\nfunction isInt32Array( value ) {\n\treturn (\n\t\t( hasInt32Array && value instanceof Int32Array ) || // eslint-disable-line stdlib/require-globals\n\t\tnativeClass( value ) === '[object Int32Array]'\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isInt32Array;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Minimum signed 32-bit integer.\n*\n* @module @stdlib/constants/int32/min\n* @type {integer32}\n*\n* @example\n* import INT32_MIN from '@stdlib/constants/int32/min';\n* // returns -2147483648\n*/\n\n\n// MAIN //\n\n/**\n* Minimum signed 32-bit integer.\n*\n* ## Notes\n*\n* The number has the value\n*\n* ```tex\n* -(2^{31})\n* ```\n*\n* which corresponds to the two's complement bit sequence\n*\n* ```binarystring\n* 10000000000000000000000000000000\n* ```\n*\n* @constant\n* @type {integer32}\n* @default -2147483648\n*/\nvar INT32_MIN = -2147483648|0; // asm type annotation\n\n\n// EXPORTS //\n\nexport default INT32_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// MAIN //\n\nvar main = ( typeof Int32Array === 'function' ) ? Int32Array : null; // eslint-disable-line stdlib/require-globals\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// MAIN //\n\nvar ctor = ( typeof Int32Array === 'function' ) ? Int32Array : void 0; // eslint-disable-line stdlib/require-globals\n\n\n// EXPORTS //\n\nexport default ctor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Typed array constructor which returns a typed array representing an array of twos-complement 32-bit signed integers in the platform byte order.\n*\n* @module @stdlib/array/int32\n*\n* @example\n* import ctor from '@stdlib/array/int32';\n*\n* var arr = new ctor( 10 );\n* // returns \n*/\n\n// MODULES //\n\nimport hasInt32ArraySupport from '@stdlib/assert/has-int32array-support';\nimport builtin from './main.js';\nimport polyfill from './polyfill.js';\n\n\n// MAIN //\n\nvar ctor;\nif ( hasInt32ArraySupport() ) {\n\tctor = builtin;\n} else {\n\tctor = polyfill;\n}\n\n\n// EXPORTS //\n\nexport default ctor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isInt32Array from './../../is-int32array';\nimport INT32_MAX from '@stdlib/constants/int32/max';\nimport INT32_MIN from '@stdlib/constants/int32/min';\nimport GlobalInt32Array from './int32array.js';\n\n\n// MAIN //\n\n/**\n* Tests for native `Int32Array` support.\n*\n* @returns {boolean} boolean indicating if an environment has `Int32Array` support\n*\n* @example\n* var bool = hasInt32ArraySupport();\n* // returns \n*/\nfunction hasInt32ArraySupport() {\n\tvar bool;\n\tvar arr;\n\n\tif ( typeof GlobalInt32Array !== 'function' ) {\n\t\treturn false;\n\t}\n\t// Test basic support...\n\ttry {\n\t\tarr = new GlobalInt32Array( [ 1, 3.14, -3.14, INT32_MAX+1 ] );\n\t\tbool = (\n\t\t\tisInt32Array( arr ) &&\n\t\t\tarr[ 0 ] === 1 &&\n\t\t\tarr[ 1 ] === 3 && // truncation\n\t\t\tarr[ 2 ] === -3 && // truncation\n\t\t\tarr[ 3 ] === INT32_MIN // wrap around\n\t\t);\n\t} catch ( err ) { // eslint-disable-line no-unused-vars\n\t\tbool = false;\n\t}\n\treturn bool;\n}\n\n\n// EXPORTS //\n\nexport default hasInt32ArraySupport;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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: write polyfill\n\n// MAIN //\n\n/**\n* Typed array which represents an array of twos-complement 32-bit signed integers in the platform byte order.\n*\n* @throws {Error} not implemented\n*/\nfunction polyfill() {\n\tthrow new Error( 'not implemented' );\n}\n\n\n// EXPORTS //\n\nexport default polyfill;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport nativeClass from '@stdlib/utils/native-class';\n\n\n// VARIABLES //\n\nvar hasInt16Array = ( typeof Int16Array === 'function' ); // eslint-disable-line stdlib/require-globals\n\n\n// MAIN //\n\n/**\n* Tests if a value is an Int16Array.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether value is an Int16Array\n*\n* @example\n* var bool = isInt16Array( new Int16Array( 10 ) );\n* // returns true\n*\n* @example\n* var bool = isInt16Array( [] );\n* // returns false\n*/\nfunction isInt16Array( value ) {\n\treturn (\n\t\t( hasInt16Array && value instanceof Int16Array ) || // eslint-disable-line stdlib/require-globals\n\t\tnativeClass( value ) === '[object Int16Array]'\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isInt16Array;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Maximum signed 16-bit integer.\n*\n* @module @stdlib/constants/int16/max\n* @type {integer32}\n*\n* @example\n* import INT16_MAX from '@stdlib/constants/int16/max';\n* // returns 32767\n*/\n\n\n// MAIN //\n\n/**\n* Maximum signed 16-bit integer.\n*\n* ## Notes\n*\n* The number has the value\n*\n* ```tex\n* 2^{15} - 1\n* ```\n*\n* which corresponds to the bit sequence\n*\n* ```binarystring\n* 0111111111111111\n* ```\n*\n* @constant\n* @type {integer32}\n* @default 32767\n*/\nvar INT16_MAX = 32767|0; // asm type annotation\n\n\n// EXPORTS //\n\nexport default INT16_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\nvar main = ( typeof Int16Array === 'function' ) ? Int16Array : null; // eslint-disable-line stdlib/require-globals\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// MAIN //\n\nvar ctor = ( typeof Int16Array === 'function' ) ? Int16Array : void 0; // eslint-disable-line stdlib/require-globals\n\n\n// EXPORTS //\n\nexport default ctor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Typed array constructor which returns a typed array representing an array of twos-complement 16-bit signed integers in the platform byte order.\n*\n* @module @stdlib/array/int16\n*\n* @example\n* import ctor from '@stdlib/array/int16';\n*\n* var arr = new ctor( 10 );\n* // returns \n*/\n\n// MODULES //\n\nimport hasInt16ArraySupport from '@stdlib/assert/has-int16array-support';\nimport builtin from './main.js';\nimport polyfill from './polyfill.js';\n\n\n// MAIN //\n\nvar ctor;\nif ( hasInt16ArraySupport() ) {\n\tctor = builtin;\n} else {\n\tctor = polyfill;\n}\n\n\n// EXPORTS //\n\nexport default ctor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isInt16Array from './../../is-int16array';\nimport INT16_MAX from '@stdlib/constants/int16/max';\nimport INT16_MIN from '@stdlib/constants/int16/min';\nimport GlobalInt16Array from './int16array.js';\n\n\n// MAIN //\n\n/**\n* Tests for native `Int16Array` support.\n*\n* @returns {boolean} boolean indicating if an environment has `Int16Array` support\n*\n* @example\n* var bool = hasInt16ArraySupport();\n* // returns \n*/\nfunction hasInt16ArraySupport() {\n\tvar bool;\n\tvar arr;\n\n\tif ( typeof GlobalInt16Array !== 'function' ) {\n\t\treturn false;\n\t}\n\t// Test basic support...\n\ttry {\n\t\tarr = new GlobalInt16Array( [ 1, 3.14, -3.14, INT16_MAX+1 ] );\n\t\tbool = (\n\t\t\tisInt16Array( arr ) &&\n\t\t\tarr[ 0 ] === 1 &&\n\t\t\tarr[ 1 ] === 3 && // truncation\n\t\t\tarr[ 2 ] === -3 && // truncation\n\t\t\tarr[ 3 ] === INT16_MIN // wrap around\n\t\t);\n\t} catch ( err ) { // eslint-disable-line no-unused-vars\n\t\tbool = false;\n\t}\n\treturn bool;\n}\n\n\n// EXPORTS //\n\nexport default hasInt16ArraySupport;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Minimum signed 16-bit integer.\n*\n* @module @stdlib/constants/int16/min\n* @type {integer32}\n*\n* @example\n* import INT16_MIN from '@stdlib/constants/int16/min';\n* // returns -32768\n*/\n\n\n// MAIN //\n\n/**\n* Minimum signed 16-bit integer.\n*\n* ## Notes\n*\n* The number has the value\n*\n* ```tex\n* -(2^{15})\n* ```\n*\n* which corresponds to the two's complement bit sequence\n*\n* ```binarystring\n* 1000000000000000\n* ```\n*\n* @constant\n* @type {integer32}\n* @default -32768\n*/\nvar INT16_MIN = -32768|0; // asm type annotation\n\n\n// EXPORTS //\n\nexport default INT16_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// TODO: write polyfill\n\n// MAIN //\n\n/**\n* Typed array which represents an array of twos-complement 16-bit signed integers in the platform byte order.\n*\n* @throws {Error} not implemented\n*/\nfunction polyfill() {\n\tthrow new Error( 'not implemented' );\n}\n\n\n// EXPORTS //\n\nexport default polyfill;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport nativeClass from '@stdlib/utils/native-class';\n\n\n// VARIABLES //\n\nvar hasUint8ClampedArray = ( typeof Uint8ClampedArray === 'function' ); // eslint-disable-line stdlib/require-globals\n\n\n// MAIN //\n\n/**\n* Tests if a value is a Uint8ClampedArray.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether value is a Uint8ClampedArray\n*\n* @example\n* var bool = isUint8ClampedArray( new Uint8ClampedArray( 10 ) );\n* // returns true\n*\n* @example\n* var bool = isUint8ClampedArray( [] );\n* // returns false\n*/\nfunction isUint8ClampedArray( value ) {\n\treturn (\n\t\t( hasUint8ClampedArray && value instanceof Uint8ClampedArray ) || // eslint-disable-line stdlib/require-globals\n\t\tnativeClass( value ) === '[object Uint8ClampedArray]'\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isUint8ClampedArray;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 main = ( typeof Uint8ClampedArray === 'function' ) ? Uint8ClampedArray : null; // eslint-disable-line stdlib/require-globals\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// MAIN //\n\nvar ctor = ( typeof Uint8ClampedArray === 'function' ) ? Uint8ClampedArray : void 0; // eslint-disable-line stdlib/require-globals\n\n\n// EXPORTS //\n\nexport default ctor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Typed array constructor which returns a typed array representing an array of 8-bit unsigned integers in the platform byte order clamped to 0-255.\n*\n* @module @stdlib/array/uint8c\n*\n* @example\n* import ctor from '@stdlib/array/uint8c';\n*\n* var arr = new ctor( 10 );\n* // returns \n*/\n\n// MODULES //\n\nimport hasUint8ClampedArraySupport from '@stdlib/assert/has-uint8clampedarray-support'; // eslint-disable-line id-length\nimport builtin from './main.js';\nimport polyfill from './polyfill.js';\n\n\n// MAIN //\n\nvar ctor;\nif ( hasUint8ClampedArraySupport() ) {\n\tctor = builtin;\n} else {\n\tctor = polyfill;\n}\n\n\n// EXPORTS //\n\nexport default ctor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isUint8ClampedArray from './../../is-uint8clampedarray';\nimport GlobalUint8ClampedArray from './uint8clampedarray.js';\n\n\n// MAIN //\n\n/**\n* Tests for native `Uint8ClampedArray` support.\n*\n* @returns {boolean} boolean indicating if an environment has `Uint8ClampedArray` support\n*\n* @example\n* var bool = hasUint8ClampedArraySupport();\n* // returns \n*/\nfunction hasUint8ClampedArraySupport() { // eslint-disable-line id-length\n\tvar bool;\n\tvar arr;\n\n\tif ( typeof GlobalUint8ClampedArray !== 'function' ) {\n\t\treturn false;\n\t}\n\t// Test basic support...\n\ttry {\n\t\tarr = new GlobalUint8ClampedArray( [ -1, 0, 1, 3.14, 4.99, 255, 256 ] );\n\t\tbool = (\n\t\t\tisUint8ClampedArray( arr ) &&\n\t\t\tarr[ 0 ] === 0 && // clamped\n\t\t\tarr[ 1 ] === 0 &&\n\t\t\tarr[ 2 ] === 1 &&\n\t\t\tarr[ 3 ] === 3 && // round to nearest\n\t\t\tarr[ 4 ] === 5 && // round to nearest\n\t\t\tarr[ 5 ] === 255 &&\n\t\t\tarr[ 6 ] === 255 // clamped\n\t\t);\n\t} catch ( err ) { // eslint-disable-line no-unused-vars\n\t\tbool = false;\n\t}\n\treturn bool;\n}\n\n\n// EXPORTS //\n\nexport default hasUint8ClampedArraySupport;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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: write polyfill\n\n// MAIN //\n\n/**\n* Typed array which represents an array of 8-bit unsigned integers in the platform byte order clamped to 0-255.\n*\n* @throws {Error} not implemented\n*/\nfunction polyfill() {\n\tthrow new Error( 'not implemented' );\n}\n\n\n// EXPORTS //\n\nexport default polyfill;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport nativeClass from '@stdlib/utils/native-class';\n\n\n// VARIABLES //\n\nvar hasInt8Array = ( typeof Int8Array === 'function' ); // eslint-disable-line stdlib/require-globals\n\n\n// MAIN //\n\n/**\n* Tests if a value is an Int8Array.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether value is an Int8Array\n*\n* @example\n* var bool = isInt8Array( new Int8Array( 10 ) );\n* // returns true\n*\n* @example\n* var bool = isInt8Array( [] );\n* // returns false\n*/\nfunction isInt8Array( value ) {\n\treturn (\n\t\t( hasInt8Array && value instanceof Int8Array ) || // eslint-disable-line stdlib/require-globals\n\t\tnativeClass( value ) === '[object Int8Array]'\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isInt8Array;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Maximum signed 8-bit integer.\n*\n* @module @stdlib/constants/int8/max\n* @type {integer32}\n*\n* @example\n* import INT8_MAX from '@stdlib/constants/int8/max';\n* // returns 127\n*/\n\n\n// MAIN //\n\n/**\n* Maximum signed 8-bit integer.\n*\n* ## Notes\n*\n* The number is given by\n*\n* ```tex\n* 2^{7} - 1\n* ```\n*\n* which corresponds to the bit sequence\n*\n* ```binarystring\n* 01111111\n* ```\n*\n* @constant\n* @type {integer32}\n* @default 127\n*/\nvar INT8_MAX = 127|0; // asm type annotation\n\n\n// EXPORTS //\n\nexport default INT8_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\nvar main = ( typeof Int8Array === 'function' ) ? Int8Array : null; // eslint-disable-line stdlib/require-globals\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// MAIN //\n\nvar ctor = ( typeof Int8Array === 'function' ) ? Int8Array : void 0; // eslint-disable-line stdlib/require-globals\n\n\n// EXPORTS //\n\nexport default ctor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Typed array constructor which returns a typed array representing an array of twos-complement 8-bit signed integers in the platform byte order.\n*\n* @module @stdlib/array/int8\n*\n* @example\n* import ctor from '@stdlib/array/int8';\n*\n* var arr = new ctor( 10 );\n* // returns \n*/\n\n// MODULES //\n\nimport hasInt8ArraySupport from '@stdlib/assert/has-int8array-support';\nimport builtin from './main.js';\nimport polyfill from './polyfill.js';\n\n\n// MAIN //\n\nvar ctor;\nif ( hasInt8ArraySupport() ) {\n\tctor = builtin;\n} else {\n\tctor = polyfill;\n}\n\n\n// EXPORTS //\n\nexport default ctor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isInt8Array from './../../is-int8array';\nimport INT8_MAX from '@stdlib/constants/int8/max';\nimport INT8_MIN from '@stdlib/constants/int8/min';\nimport GlobalInt8Array from './int8array.js';\n\n\n// MAIN //\n\n/**\n* Tests for native `Int8Array` support.\n*\n* @returns {boolean} boolean indicating if an environment has `Int8Array` support\n*\n* @example\n* var bool = hasInt8ArraySupport();\n* // returns \n*/\nfunction hasInt8ArraySupport() {\n\tvar bool;\n\tvar arr;\n\n\tif ( typeof GlobalInt8Array !== 'function' ) {\n\t\treturn false;\n\t}\n\t// Test basic support...\n\ttry {\n\t\tarr = new GlobalInt8Array( [ 1, 3.14, -3.14, INT8_MAX+1 ] );\n\t\tbool = (\n\t\t\tisInt8Array( arr ) &&\n\t\t\tarr[ 0 ] === 1 &&\n\t\t\tarr[ 1 ] === 3 && // truncation\n\t\t\tarr[ 2 ] === -3 && // truncation\n\t\t\tarr[ 3 ] === INT8_MIN // wrap around\n\t\t);\n\t} catch ( err ) { // eslint-disable-line no-unused-vars\n\t\tbool = false;\n\t}\n\treturn bool;\n}\n\n\n// EXPORTS //\n\nexport default hasInt8ArraySupport;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Minimum signed 8-bit integer.\n*\n* @module @stdlib/constants/int8/min\n* @type {integer32}\n*\n* @example\n* import INT8_MIN from '@stdlib/constants/int8/min';\n* // returns -128\n*/\n\n\n// MAIN //\n\n/**\n* Minimum signed 8-bit integer.\n*\n* ## Notes\n*\n* The number is given by\n*\n* ```tex\n* -(2^{7})\n* ```\n*\n* which corresponds to the two's complement bit sequence\n*\n* ```binarystring\n* 10000000\n* ```\n*\n* @constant\n* @type {integer32}\n* @default -128\n*/\nvar INT8_MIN = -128|0; // asm type annotation\n\n\n// EXPORTS //\n\nexport default INT8_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// TODO: write polyfill\n\n// MAIN //\n\n/**\n* Typed array which represents an array of twos-complement 8-bit signed integers in the platform byte order.\n*\n* @throws {Error} not implemented\n*/\nfunction polyfill() {\n\tthrow new Error( 'not implemented' );\n}\n\n\n// EXPORTS //\n\nexport default polyfill;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Test if a value is an array of strings.\n*\n* @module @stdlib/assert/is-string-array\n*\n* @example\n* import isStringArray from '@stdlib/assert/is-string-array';\n*\n* var bool = isStringArray( [ 'abc', 'def' ] );\n* // returns true\n*\n* bool = isStringArray( [ 'abc', 123 ] );\n* // returns false\n*\n* @example\n* import { primitives as isStringArray } from '@stdlib/assert/is-string-array';\n*\n* var bool = isStringArray( [ 'abc', 'def' ] );\n* // returns true\n*\n* bool = isStringArray( [ 'abc', new String( 'def' ) ] );\n* // returns false\n*\n* @example\n* import { objects as isStringArray } from '@stdlib/assert/is-string-array';\n*\n* var bool = isStringArray( [ new String( 'abc' ), new String( 'def' ) ] );\n* // returns true\n*\n* bool = isStringArray( [ new String( 'abc' ), 'def' ] );\n* // returns false\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport arrayfun from './../../tools/array-function';\nimport isString from './../../is-string';\n\n\n// VARIABLES //\n\nvar isPrimitiveArray = arrayfun( isString.isPrimitive );\nvar isObjectArray = arrayfun( isString.isObject );\n\n\n// MAIN //\n\nvar isStringArray = arrayfun( isString );\nsetReadOnly( isStringArray, 'primitives', isPrimitiveArray );\nsetReadOnly( isStringArray, 'objects', isObjectArray );\n\n\n// EXPORTS //\n\nexport default isStringArray;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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) 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// VARIABLES //\n\nvar BYTES_PER_ELEMENT = 8; // 4 bytes per float32 x (1 real + 1 imag component)\n\n\n// MAIN //\n\n/**\n* Returns a boolean indicating if a value is a `Complex64Array`.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a `Complex64Array`\n*\n* @example\n* import Complex64Array from '@stdlib/array/complex64';\n*\n* var bool = isComplex64Array( new Complex64Array( 10 ) );\n* // returns true\n*\n* bool = isComplex64Array( [] );\n* // returns false\n*/\nfunction isComplex64Array( value ) {\n\t// Note: the following is not robust and that is intentional. In this case, we are seeking a lower cost way to reasonably determine whether an input value is a `Complex64Array` in order to avoid walking the prototype chain and resolving constructors, which is necessary for robust identification of cross-realm instances. For more robust validation, see `@stdlib/assert/is-complex64array`.\n\treturn (\n\t\ttypeof value === 'object' &&\n\t\tvalue !== null &&\n\t\tvalue.constructor.name === 'Complex64Array' &&\n\t\tvalue.BYTES_PER_ELEMENT === BYTES_PER_ELEMENT\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isComplex64Array;\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// VARIABLES //\n\nvar BYTES_PER_ELEMENT = 16; // 8 bytes per float64 x (1 real + 1 imag component)\n\n\n// MAIN //\n\n/**\n* Returns a boolean indicating if a value is a `Complex128Array`.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a `Complex128Array`\n*\n* @example\n* import Complex128Array from '@stdlib/array/complex128';\n*\n* var bool = isComplex128Array( new Complex128Array( 10 ) );\n* // returns true\n*\n* bool = isComplex128Array( [] );\n* // returns false\n*/\nfunction isComplex128Array( value ) {\n\t// Note: the following is not robust and that is intentional. In this case, we are seeking a lower cost way to reasonably determine whether an input value is a `Complex128Array` in order to avoid walking the prototype chain and resolving constructors, which is necessary for robust identification of cross-realm instances. For more robust validation, see `@stdlib/assert/is-complex128array`.\n\treturn (\n\t\ttypeof value === 'object' &&\n\t\tvalue !== null &&\n\t\tvalue.constructor.name === 'Complex128Array' &&\n\t\tvalue.BYTES_PER_ELEMENT === BYTES_PER_ELEMENT\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isComplex128Array;\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 Float32Array from '@stdlib/array/float32';\n\n\n// MAIN //\n\n/**\n* Reinterprets a `Complex64Array` as a `Float32Array`.\n*\n* @param {Complex64Array} x - input array\n* @param {NonNegativeInteger} offset - starting index\n* @returns {Float32Array} `Float32Array` view\n*\n* @example\n* import Complex64Array from '@stdlib/array/complex64';\n*\n* var x = new Complex64Array( 10 );\n*\n* var out = reinterpret( x, 0 );\n* // returns \n*\n* var bool = ( out.buffer === x.buffer );\n* // returns true\n*/\nfunction reinterpret( x, offset ) {\n\treturn new Float32Array( x.buffer, x.byteOffset+(x.BYTES_PER_ELEMENT*offset), 2*(x.length-offset) ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default reinterpret;\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 Float64Array from '@stdlib/array/float64';\n\n\n// MAIN //\n\n/**\n* Reinterprets a `Complex128Array` as a `Float64Array`.\n*\n* @param {Complex128Array} x - input array\n* @param {NonNegativeInteger} offset - starting index\n* @returns {Float64Array} `Float64Array` view\n*\n* @example\n* import Complex128Array from '@stdlib/array/complex128';\n*\n* var x = new Complex128Array( 10 );\n*\n* var out = reinterpret( x, 0 );\n* // returns \n*\n* var bool = ( out.buffer === x.buffer );\n* // returns true\n*/\nfunction reinterpret( x, offset ) {\n\treturn new Float64Array( x.buffer, x.byteOffset+(x.BYTES_PER_ELEMENT*offset), 2*(x.length-offset) ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default reinterpret;\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// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array/int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array/int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array/int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array/uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array/uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array/uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array/uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array/dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\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// VARIABLES //\n\nvar GETTERS = {\n\t'complex128': getComplex128,\n\t'complex64': getComplex64,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Complex128Array`.\n*\n* @private\n* @param {Complex128Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Complex128Array from '@stdlib/array/complex128';\n* import real from '@stdlib/complex/float64/real';\n* import imag from '@stdlib/complex/float64/imag';\n*\n* var arr = new Complex128Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getComplex128( arr, 1 );\n* // returns \n*\n* var re = real( v );\n* // returns 3.0\n*\n* var im = imag( v );\n* // returns 4.0\n*/\nfunction getComplex128( arr, idx ) {\n\treturn arr.get( idx );\n}\n\n/**\n* Returns an element from a `Complex64Array`.\n*\n* @private\n* @param {Complex64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Complex64Array from '@stdlib/array/complex64';\n* import realf from '@stdlib/complex/float32/real';\n* import imagf from '@stdlib/complex/float32/imag';\n*\n* var arr = new Complex64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getComplex64( arr, 1 );\n* // returns \n*\n* var re = realf( v );\n* // returns 3.0\n*\n* var im = imagf( v );\n* // returns 4.0\n*/\nfunction getComplex64( arr, idx ) {\n\treturn arr.get( idx );\n}\n\n/**\n* Returns an element from an array-like object supporting the get/set protocol.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* function get( idx ) {\n* return arr[ idx ];\n* }\n*\n* function set( value, idx ) {\n* arr[ idx ] = value;\n* }\n*\n* arr.get = get;\n* arr.set = set;\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr.get( idx );\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an array-like object supporting the get/set protocol.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import Complex64Array from '@stdlib/array/complex64';\n* import realf from '@stdlib/complex/float32/real';\n* import imagf from '@stdlib/complex/float32/imag';\n* import dtype from '@stdlib/array/dtype';\n*\n* var arr = new Complex64Array( [ 1, 2, 3, 4 ] );\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 1 );\n* // returns \n*\n* var re = realf( v );\n* // returns 3.0\n*\n* var im = imagf( v );\n* // returns 4.0\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isArrayLikeObject from '@stdlib/assert/is-array-like-object';\nimport isComplexLike from '@stdlib/assert/is-complex-like';\nimport realf from '@stdlib/complex/float32/real';\nimport imagf from '@stdlib/complex/float32/imag';\nimport format from '@stdlib/string/format';\n\n\n// MAIN //\n\n/**\n* Returns an array of iterated values.\n*\n* @private\n* @param {Object} it - iterator\n* @returns {(Array|TypeError)} array or an error\n*/\nfunction fromIterator( it ) {\n\tvar out;\n\tvar v;\n\tvar z;\n\n\tout = [];\n\twhile ( true ) {\n\t\tv = it.next();\n\t\tif ( v.done ) {\n\t\t\tbreak;\n\t\t}\n\t\tz = v.value;\n\t\tif ( isArrayLikeObject( z ) && z.length >= 2 ) {\n\t\t\tout.push( z[ 0 ], z[ 1 ] );\n\t\t} else if ( isComplexLike( z ) ) {\n\t\t\tout.push( realf( z ), imagf( z ) );\n\t\t} else {\n\t\t\treturn new TypeError( format( 'invalid argument. An iterator must return either a two-element array containing real and imaginary components or a complex number. Value: `%s`.', z ) );\n\t\t}\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default fromIterator;\n","/* eslint-disable no-restricted-syntax, max-lines, no-invalid-this */\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'use strict';\n\n// MODULES //\n\nimport { isPrimitive as isNonNegativeInteger } from '@stdlib/assert/is-nonnegative-integer';\nimport isArrayLikeObject from '@stdlib/assert/is-array-like-object';\nimport isCollection from '@stdlib/assert/is-collection';\nimport isArrayBuffer from '@stdlib/assert/is-arraybuffer';\nimport isObject from '@stdlib/assert/is-object';\nimport isArray from '@stdlib/assert/is-array';\nimport { primitives as isStringArray } from '@stdlib/assert/is-string-array';\nimport { isPrimitive as isString } from '@stdlib/assert/is-string';\nimport isFunction from '@stdlib/assert/is-function';\nimport isComplexLike from '@stdlib/assert/is-complex-like';\nimport isEven from '@stdlib/math/base/assert/is-even';\nimport isInteger from '@stdlib/math/base/assert/is-integer';\nimport isComplex64Array from './../../base/assert/is-complex64array';\nimport isComplex128Array from './../../base/assert/is-complex128array';\nimport hasIteratorSymbolSupport from '@stdlib/assert/has-iterator-symbol-support';\nimport ITERATOR_SYMBOL from '@stdlib/symbol/iterator';\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport setReadOnlyAccessor from '@stdlib/utils/define-nonenumerable-read-only-accessor';\nimport Float32Array from './../../float32';\nimport Complex64 from '@stdlib/complex/float32/ctor';\nimport format from '@stdlib/string/format';\nimport realf from '@stdlib/complex/float32/real';\nimport imagf from '@stdlib/complex/float32/imag';\nimport floor from '@stdlib/math/base/special/floor';\nimport reinterpret64 from '@stdlib/strided/base/reinterpret-complex64';\nimport reinterpret128 from '@stdlib/strided/base/reinterpret-complex128';\nimport getter from './../../base/getter';\nimport accessorGetter from './../../base/accessor-getter';\nimport fromIterator from './from_iterator.js';\nimport fromIteratorMap from './from_iterator_map.js';\nimport fromArray from './from_array.js';\n\n\n// VARIABLES //\n\nvar BYTES_PER_ELEMENT = Float32Array.BYTES_PER_ELEMENT * 2;\nvar HAS_ITERATOR_SYMBOL = hasIteratorSymbolSupport();\n\n\n// FUNCTIONS //\n\n/**\n* Returns a boolean indicating if a value is a complex typed array.\n*\n* @private\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a complex typed array\n*/\nfunction isComplexArray( value ) {\n\treturn (\n\t\tvalue instanceof Complex64Array ||\n\t\t(\n\t\t\ttypeof value === 'object' &&\n\t\t\tvalue !== null &&\n\t\t\t(\n\t\t\t\tvalue.constructor.name === 'Complex64Array' ||\n\t\t\t\tvalue.constructor.name === 'Complex128Array'\n\t\t\t) &&\n\t\t\ttypeof value._length === 'number' && // eslint-disable-line no-underscore-dangle\n\n\t\t\t// NOTE: we don't perform a more rigorous test here for a typed array for performance reasons, as robustly checking for a typed array instance could require walking the prototype tree and performing relatively expensive constructor checks...\n\t\t\ttypeof value._buffer === 'object' // eslint-disable-line no-underscore-dangle\n\t\t)\n\t);\n}\n\n/**\n* Returns a boolean indicating if a value is a complex typed array constructor.\n*\n* @private\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a complex typed array constructor\n*/\nfunction isComplexArrayConstructor( value ) {\n\treturn (\n\t\tvalue === Complex64Array ||\n\n\t\t// NOTE: weaker test in order to avoid a circular dependency with Complex128Array...\n\t\tvalue.name === 'Complex128Array'\n\t);\n}\n\n/**\n* Retrieves a complex number from a complex number array buffer.\n*\n* @private\n* @param {Float32Array} buf - array buffer\n* @param {NonNegativeInteger} idx - element index\n* @returns {Complex64} complex number\n*/\nfunction getComplex64( buf, idx ) {\n\tidx *= 2;\n\treturn new Complex64( buf[ idx ], buf[ idx+1 ] );\n}\n\n\n// MAIN //\n\n/**\n* 64-bit complex number array constructor.\n*\n* @constructor\n* @param {(NonNegativeInteger|Collection|ArrayBuffer|Iterable)} [arg] - length, typed array, array-like object, buffer, or an iterable\n* @param {NonNegativeInteger} [byteOffset=0] - byte offset\n* @param {NonNegativeInteger} [length] - view length\n* @throws {RangeError} ArrayBuffer byte length must be a multiple of `8`\n* @throws {RangeError} array-like object and typed array input arguments must have a length which is a multiple of two\n* @throws {TypeError} if provided only a single argument, must provide a valid argument\n* @throws {TypeError} byte offset must be a nonnegative integer\n* @throws {RangeError} byte offset must be a multiple of `8`\n* @throws {TypeError} view length must be a positive multiple of `8`\n* @throws {RangeError} must provide sufficient memory to accommodate byte offset and view length requirements\n* @throws {TypeError} an iterator must return either a two element array containing real and imaginary components or a complex number\n* @returns {Complex64Array} complex number array\n*\n* @example\n* var arr = new Complex64Array();\n* // returns \n*\n* var len = arr.length;\n* // returns 0\n*\n* @example\n* var arr = new Complex64Array( 2 );\n* // returns \n*\n* var len = arr.length;\n* // returns 2\n*\n* @example\n* var arr = new Complex64Array( [ 1.0, -1.0 ] );\n* // returns \n*\n* var len = arr.length;\n* // returns 1\n*\n* @example\n* import ArrayBuffer from '@stdlib/array/buffer';\n*\n* var buf = new ArrayBuffer( 16 );\n* var arr = new Complex64Array( buf );\n* // returns \n*\n* var len = arr.length;\n* // returns 2\n*\n* @example\n* import ArrayBuffer from '@stdlib/array/buffer';\n*\n* var buf = new ArrayBuffer( 16 );\n* var arr = new Complex64Array( buf, 8 );\n* // returns \n*\n* var len = arr.length;\n* // returns 1\n*\n* @example\n* import ArrayBuffer from '@stdlib/array/buffer';\n*\n* var buf = new ArrayBuffer( 32 );\n* var arr = new Complex64Array( buf, 8, 2 );\n* // returns \n*\n* var len = arr.length;\n* // returns 2\n*/\nfunction Complex64Array() {\n\tvar byteOffset;\n\tvar nargs;\n\tvar buf;\n\tvar len;\n\n\tnargs = arguments.length;\n\tif ( !(this instanceof Complex64Array) ) {\n\t\tif ( nargs === 0 ) {\n\t\t\treturn new Complex64Array();\n\t\t}\n\t\tif ( nargs === 1 ) {\n\t\t\treturn new Complex64Array( arguments[0] );\n\t\t}\n\t\tif ( nargs === 2 ) {\n\t\t\treturn new Complex64Array( arguments[0], arguments[1] );\n\t\t}\n\t\treturn new Complex64Array( arguments[0], arguments[1], arguments[2] );\n\t}\n\t// Create the underlying data buffer...\n\tif ( nargs === 0 ) {\n\t\tbuf = new Float32Array( 0 ); // backward-compatibility\n\t} else if ( nargs === 1 ) {\n\t\tif ( isNonNegativeInteger( arguments[0] ) ) {\n\t\t\tbuf = new Float32Array( arguments[0]*2 );\n\t\t} else if ( isCollection( arguments[0] ) ) {\n\t\t\tbuf = arguments[ 0 ];\n\t\t\tlen = buf.length;\n\n\t\t\t// If provided a \"generic\" array, peak at the first value, and, if the value is a complex number, try to process as an array of complex numbers, falling back to \"normal\" typed array initialization if we fail and ensuring consistency if the first value had not been a complex number...\n\t\t\tif ( len && isArray( buf ) && isComplexLike( buf[0] ) ) {\n\t\t\t\tbuf = fromArray( new Float32Array( len*2 ), buf );\n\t\t\t\tif ( buf === null ) {\n\t\t\t\t\t// We failed and we are now forced to allocate a new array :-(\n\t\t\t\t\tif ( !isEven( len ) ) {\n\t\t\t\t\t\tthrow new RangeError( format( 'invalid argument. Array-like object arguments must have a length which is a multiple of two. Length: `%u`.', len ) );\n\t\t\t\t\t}\n\t\t\t\t\t// We failed, so fall back to directly setting values...\n\t\t\t\t\tbuf = new Float32Array( arguments[0] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif ( isComplex64Array( buf ) ) {\n\t\t\t\t\tbuf = reinterpret64( buf, 0 );\n\t\t\t\t} else if ( isComplex128Array( buf ) ) {\n\t\t\t\t\tbuf = reinterpret128( buf, 0 );\n\t\t\t\t} else if ( !isEven( len ) ) {\n\t\t\t\t\tthrow new RangeError( format( 'invalid argument. Array-like object and typed array arguments must have a length which is a multiple of two. Length: `%u`.', len ) );\n\t\t\t\t}\n\t\t\t\tbuf = new Float32Array( buf );\n\t\t\t}\n\t\t} else if ( isArrayBuffer( arguments[0] ) ) {\n\t\t\tbuf = arguments[ 0 ];\n\t\t\tif ( !isInteger( buf.byteLength/BYTES_PER_ELEMENT ) ) {\n\t\t\t\tthrow new RangeError( format( 'invalid argument. ArrayBuffer byte length must be a multiple of %u. Byte length: `%u`.', BYTES_PER_ELEMENT, buf.byteLength ) );\n\t\t\t}\n\t\t\tbuf = new Float32Array( buf );\n\t\t} else if ( isObject( arguments[0] ) ) {\n\t\t\tbuf = arguments[ 0 ];\n\t\t\tif ( HAS_ITERATOR_SYMBOL === false ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Environment lacks Symbol.iterator support. Must provide a length, ArrayBuffer, typed array, or array-like object. Value: `%s`.', buf ) );\n\t\t\t}\n\t\t\tif ( !isFunction( buf[ ITERATOR_SYMBOL ] ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Must provide a length, ArrayBuffer, typed array, array-like object, or an iterable. Value: `%s`.', buf ) );\n\t\t\t}\n\t\t\tbuf = buf[ ITERATOR_SYMBOL ]();\n\t\t\tif ( !isFunction( buf.next ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Must provide a length, ArrayBuffer, typed array, array-like object, or an iterable. Value: `%s`.', buf ) ); // FIXME: `buf` is what is returned from above, NOT the original value\n\t\t\t}\n\t\t\tbuf = fromIterator( buf );\n\t\t\tif ( buf instanceof Error ) {\n\t\t\t\tthrow buf;\n\t\t\t}\n\t\t\tbuf = new Float32Array( buf );\n\t\t} else {\n\t\t\tthrow new TypeError( format( 'invalid argument. Must provide a length, ArrayBuffer, typed array, array-like object, or an iterable. Value: `%s`.', arguments[0] ) );\n\t\t}\n\t} else {\n\t\tbuf = arguments[ 0 ];\n\t\tif ( !isArrayBuffer( buf ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. First argument must be an ArrayBuffer. Value: `%s`.', buf ) );\n\t\t}\n\t\tbyteOffset = arguments[ 1 ];\n\t\tif ( !isNonNegativeInteger( byteOffset ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Byte offset must be a nonnegative integer. Value: `%s`.', byteOffset ) );\n\t\t}\n\t\tif ( !isInteger( byteOffset/BYTES_PER_ELEMENT ) ) {\n\t\t\tthrow new RangeError( format( 'invalid argument. Byte offset must be a multiple of %u. Value: `%u`.', BYTES_PER_ELEMENT, byteOffset ) );\n\t\t}\n\t\tif ( nargs === 2 ) {\n\t\t\tlen = buf.byteLength - byteOffset;\n\t\t\tif ( !isInteger( len/BYTES_PER_ELEMENT ) ) {\n\t\t\t\tthrow new RangeError( format( 'invalid arguments. ArrayBuffer view byte length must be a multiple of %u. View byte length: `%u`.', BYTES_PER_ELEMENT, len ) );\n\t\t\t}\n\t\t\tbuf = new Float32Array( buf, byteOffset );\n\t\t} else {\n\t\t\tlen = arguments[ 2 ];\n\t\t\tif ( !isNonNegativeInteger( len ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Length must be a nonnegative integer. Value: `%s`.', len ) );\n\t\t\t}\n\t\t\tif ( (len*BYTES_PER_ELEMENT) > (buf.byteLength-byteOffset) ) {\n\t\t\t\tthrow new RangeError( format( 'invalid arguments. ArrayBuffer has insufficient capacity. Either decrease the array length or provide a bigger buffer. Minimum capacity: `%u`.', len*BYTES_PER_ELEMENT ) );\n\t\t\t}\n\t\t\tbuf = new Float32Array( buf, byteOffset, len*2 );\n\t\t}\n\t}\n\tsetReadOnly( this, '_buffer', buf );\n\tsetReadOnly( this, '_length', buf.length/2 );\n\n\treturn this;\n}\n\n/**\n* Size (in bytes) of each array element.\n*\n* @name BYTES_PER_ELEMENT\n* @memberof Complex64Array\n* @readonly\n* @type {PositiveInteger}\n* @default 8\n*\n* @example\n* var nbytes = Complex64Array.BYTES_PER_ELEMENT;\n* // returns 8\n*/\nsetReadOnly( Complex64Array, 'BYTES_PER_ELEMENT', BYTES_PER_ELEMENT );\n\n/**\n* Constructor name.\n*\n* @name name\n* @memberof Complex64Array\n* @readonly\n* @type {string}\n* @default 'Complex64Array'\n*\n* @example\n* var str = Complex64Array.name;\n* // returns 'Complex64Array'\n*/\nsetReadOnly( Complex64Array, 'name', 'Complex64Array' );\n\n/**\n* Creates a new 64-bit complex number array from an array-like object or an iterable.\n*\n* @name from\n* @memberof Complex64Array\n* @type {Function}\n* @param {(Collection|Iterable)} src - array-like object or iterable\n* @param {Function} [clbk] - callback to invoke for each source element\n* @param {*} [thisArg] - context\n* @throws {TypeError} `this` context must be a constructor\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be an array-like object or an iterable\n* @throws {TypeError} second argument must be a function\n* @throws {RangeError} array-like objects must have a length which is a multiple of two\n* @throws {TypeError} an iterator must return either a two element array containing real and imaginary components or a complex number\n* @throws {TypeError} when provided an iterator, a callback must return either a two element array containing real and imaginary components or a complex number\n* @returns {Complex64Array} 64-bit complex number array\n*\n* @example\n* var arr = Complex64Array.from( [ 1.0, -1.0 ] );\n* // returns \n*\n* var len = arr.length;\n* // returns 1\n*\n* @example\n* import Complex64 from '@stdlib/complex/float32/ctor';\n*\n* var arr = Complex64Array.from( [ new Complex64( 1.0, 1.0 ) ] );\n* // returns \n*\n* var len = arr.length;\n* // returns 1\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* function clbk( v ) {\n* return new Complex64( realf(v)*2.0, imagf(v)*2.0 );\n* }\n*\n* var arr = Complex64Array.from( [ new Complex64( 1.0, 1.0 ) ], clbk );\n* // returns \n*\n* var len = arr.length;\n* // returns 1\n*/\nsetReadOnly( Complex64Array, 'from', function from( src ) {\n\tvar thisArg;\n\tvar nargs;\n\tvar clbk;\n\tvar out;\n\tvar buf;\n\tvar tmp;\n\tvar get;\n\tvar len;\n\tvar flg;\n\tvar v;\n\tvar i;\n\tvar j;\n\tif ( !isFunction( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` context must be a constructor.' );\n\t}\n\tif ( !isComplexArrayConstructor( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tnargs = arguments.length;\n\tif ( nargs > 1 ) {\n\t\tclbk = arguments[ 1 ];\n\t\tif ( !isFunction( clbk ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be a function. Value: `%s`.', clbk ) );\n\t\t}\n\t\tif ( nargs > 2 ) {\n\t\t\tthisArg = arguments[ 2 ];\n\t\t}\n\t}\n\tif ( isComplexArray( src ) ) {\n\t\tlen = src.length;\n\t\tif ( clbk ) {\n\t\t\tout = new this( len );\n\t\t\tbuf = out._buffer; // eslint-disable-line no-underscore-dangle\n\t\t\tj = 0;\n\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\tv = clbk.call( thisArg, src.get( i ), i );\n\t\t\t\tif ( isComplexLike( v ) ) {\n\t\t\t\t\tbuf[ j ] = realf( v );\n\t\t\t\t\tbuf[ j+1 ] = imagf( v );\n\t\t\t\t} else if ( isArrayLikeObject( v ) && v.length >= 2 ) {\n\t\t\t\t\tbuf[ j ] = v[ 0 ];\n\t\t\t\t\tbuf[ j+1 ] = v[ 1 ];\n\t\t\t\t} else {\n\t\t\t\t\tthrow new TypeError( format( 'invalid argument. Callback must return either a two-element array containing real and imaginary components or a complex number. Value: `%s`.', v ) );\n\t\t\t\t}\n\t\t\t\tj += 2; // stride\n\t\t\t}\n\t\t\treturn out;\n\t\t}\n\t\treturn new this( src );\n\t}\n\tif ( isCollection( src ) ) {\n\t\tif ( clbk ) {\n\t\t\t// Note: array contents affect how we iterate over a provided data source. If only complex number objects, we can extract real and imaginary components. Otherwise, for non-complex number arrays (e.g., `Float64Array`, etc), we assume a strided array where real and imaginary components are interleaved. In the former case, we expect a callback to return real and imaginary components (possibly as a complex number). In the latter case, we expect a callback to return *either* a real or imaginary component.\n\n\t\t\tlen = src.length;\n\t\t\tif ( src.get && src.set ) {\n\t\t\t\tget = accessorGetter( 'default' );\n\t\t\t} else {\n\t\t\t\tget = getter( 'default' );\n\t\t\t}\n\t\t\t// Detect whether we've been provided an array which returns complex number objects...\n\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\tif ( !isComplexLike( get( src, i ) ) ) {\n\t\t\t\t\tflg = true;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// If an array does not contain only complex number objects, then we assume interleaved real and imaginary components...\n\t\t\tif ( flg ) {\n\t\t\t\tif ( !isEven( len ) ) {\n\t\t\t\t\tthrow new RangeError( format( 'invalid argument. First argument must have a length which is a multiple of %u. Length: `%u`.', 2, len ) );\n\t\t\t\t}\n\t\t\t\tout = new this( len/2 );\n\t\t\t\tbuf = out._buffer; // eslint-disable-line no-underscore-dangle\n\t\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\t\tbuf[ i ] = clbk.call( thisArg, get( src, i ), i );\n\t\t\t\t}\n\t\t\t\treturn out;\n\t\t\t}\n\t\t\t// If an array contains only complex number objects, then we need to extract real and imaginary components...\n\t\t\tout = new this( len );\n\t\t\tbuf = out._buffer; // eslint-disable-line no-underscore-dangle\n\t\t\tj = 0;\n\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\tv = clbk.call( thisArg, get( src, i ), i );\n\t\t\t\tif ( isComplexLike( v ) ) {\n\t\t\t\t\tbuf[ j ] = realf( v );\n\t\t\t\t\tbuf[ j+1 ] = imagf( v );\n\t\t\t\t} else if ( isArrayLikeObject( v ) && v.length >= 2 ) {\n\t\t\t\t\tbuf[ j ] = v[ 0 ];\n\t\t\t\t\tbuf[ j+1 ] = v[ 1 ];\n\t\t\t\t} else {\n\t\t\t\t\tthrow new TypeError( format( 'invalid argument. Callback must return either a two-element array containing real and imaginary components or a complex number. Value: `%s`.', v ) );\n\t\t\t\t}\n\t\t\t\tj += 2; // stride\n\t\t\t}\n\t\t\treturn out;\n\t\t}\n\t\treturn new this( src );\n\t}\n\tif ( isObject( src ) && HAS_ITERATOR_SYMBOL && isFunction( src[ ITERATOR_SYMBOL ] ) ) { // eslint-disable-line max-len\n\t\tbuf = src[ ITERATOR_SYMBOL ]();\n\t\tif ( !isFunction( buf.next ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. First argument must be an array-like object or an iterable. Value: `%s`.', src ) );\n\t\t}\n\t\tif ( clbk ) {\n\t\t\ttmp = fromIteratorMap( buf, clbk, thisArg );\n\t\t} else {\n\t\t\ttmp = fromIterator( buf );\n\t\t}\n\t\tif ( tmp instanceof Error ) {\n\t\t\tthrow tmp;\n\t\t}\n\t\tlen = tmp.length / 2;\n\t\tout = new this( len );\n\t\tbuf = out._buffer; // eslint-disable-line no-underscore-dangle\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tbuf[ i ] = tmp[ i ];\n\t\t}\n\t\treturn out;\n\t}\n\tthrow new TypeError( format( 'invalid argument. First argument must be an array-like object or an iterable. Value: `%s`.', src ) );\n});\n\n/**\n* Creates a new 64-bit complex number array from a variable number of arguments.\n*\n* @name of\n* @memberof Complex64Array\n* @type {Function}\n* @param {...*} element - array elements\n* @throws {TypeError} `this` context must be a constructor\n* @throws {TypeError} `this` must be a complex number array\n* @returns {Complex64Array} 64-bit complex number array\n*\n* @example\n* var arr = Complex64Array.of( 1.0, 1.0, 1.0, 1.0 );\n* // returns \n*\n* var len = arr.length;\n* // returns 2\n*/\nsetReadOnly( Complex64Array, 'of', function of() {\n\tvar args;\n\tvar i;\n\tif ( !isFunction( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` context must be a constructor.' );\n\t}\n\tif ( !isComplexArrayConstructor( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\targs = [];\n\tfor ( i = 0; i < arguments.length; i++ ) {\n\t\targs.push( arguments[ i ] );\n\t}\n\treturn new this( args );\n});\n\n/**\n* Returns an array element with support for both nonnegative and negative integer indices.\n*\n* @name at\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @param {integer} idx - element index\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} must provide an integer\n* @returns {(Complex64|void)} array element\n*\n* @example\n* var arr = new Complex64Array( 10 );\n* import realf from '@stdlib/complex/float32/real';\n* import imagf from '@stdlib/complex/float32/imag';\n*\n* var z = arr.at( 0 );\n* // returns \n*\n* var re = realf( z );\n* // returns 0.0\n*\n* var im = imagf( z );\n* // returns 0.0\n*\n* arr.set( [ 1.0, -1.0 ], 0 );\n* arr.set( [ 2.0, -2.0 ], 1 );\n* arr.set( [ 9.0, -9.0 ], 9 );\n*\n* z = arr.at( 0 );\n* // returns \n*\n* re = realf( z );\n* // returns 1.0\n*\n* im = imagf( z );\n* // returns -1.0\n*\n* z = arr.at( -1 );\n* // returns \n*\n* re = realf( z );\n* // returns 9.0\n*\n* im = imagf( z );\n* // returns -9.0\n*\n* z = arr.at( 100 );\n* // returns undefined\n*\n* z = arr.at( -100 );\n* // returns undefined\n*/\nsetReadOnly( Complex64Array.prototype, 'at', function at( idx ) {\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isInteger( idx ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide an integer. Value: `%s`.', idx ) );\n\t}\n\tif ( idx < 0 ) {\n\t\tidx += this._length;\n\t}\n\tif ( idx < 0 || idx >= this._length ) {\n\t\treturn;\n\t}\n\treturn getComplex64( this._buffer, idx );\n});\n\n/**\n* Pointer to the underlying data buffer.\n*\n* @name buffer\n* @memberof Complex64Array.prototype\n* @readonly\n* @type {ArrayBuffer}\n*\n* @example\n* var arr = new Complex64Array( 10 );\n*\n* var buf = arr.buffer;\n* // returns \n*/\nsetReadOnlyAccessor( Complex64Array.prototype, 'buffer', function get() {\n\treturn this._buffer.buffer;\n});\n\n/**\n* Size (in bytes) of the array.\n*\n* @name byteLength\n* @memberof Complex64Array.prototype\n* @readonly\n* @type {NonNegativeInteger}\n*\n* @example\n* var arr = new Complex64Array( 10 );\n*\n* var byteLength = arr.byteLength;\n* // returns 80\n*/\nsetReadOnlyAccessor( Complex64Array.prototype, 'byteLength', function get() {\n\treturn this._buffer.byteLength;\n});\n\n/**\n* Offset (in bytes) of the array from the start of its underlying `ArrayBuffer`.\n*\n* @name byteOffset\n* @memberof Complex64Array.prototype\n* @readonly\n* @type {NonNegativeInteger}\n*\n* @example\n* var arr = new Complex64Array( 10 );\n*\n* var byteOffset = arr.byteOffset;\n* // returns 0\n*/\nsetReadOnlyAccessor( Complex64Array.prototype, 'byteOffset', function get() {\n\treturn this._buffer.byteOffset;\n});\n\n/**\n* Size (in bytes) of each array element.\n*\n* @name BYTES_PER_ELEMENT\n* @memberof Complex64Array.prototype\n* @readonly\n* @type {PositiveInteger}\n* @default 8\n*\n* @example\n* var arr = new Complex64Array( 10 );\n*\n* var nbytes = arr.BYTES_PER_ELEMENT;\n* // returns 8\n*/\nsetReadOnly( Complex64Array.prototype, 'BYTES_PER_ELEMENT', Complex64Array.BYTES_PER_ELEMENT );\n\n/**\n* Copies a sequence of elements within the array to the position starting at `target`.\n*\n* @name copyWithin\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @param {integer} target - index at which to start copying elements\n* @param {integer} start - source index at which to copy elements from\n* @param {integer} [end] - source index at which to stop copying elements from\n* @throws {TypeError} `this` must be a complex number array\n* @returns {Complex64Array} modified array\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 arr = new Complex64Array( 4 );\n*\n* // Set the array elements:\n* arr.set( new Complex64( 1.0, 1.0 ), 0 );\n* arr.set( new Complex64( 2.0, 2.0 ), 1 );\n* arr.set( new Complex64( 3.0, 3.0 ), 2 );\n* arr.set( new Complex64( 4.0, 4.0 ), 3 );\n*\n* // Copy the first two elements to the last two elements:\n* arr.copyWithin( 2, 0, 2 );\n*\n* // Get the last array element:\n* var z = arr.get( 3 );\n*\n* var re = realf( z );\n* // returns 2.0\n*\n* var im = imagf( z );\n* // returns 2.0\n*/\nsetReadOnly( Complex64Array.prototype, 'copyWithin', function copyWithin( target, start ) {\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\t// FIXME: prefer a functional `copyWithin` implementation which addresses lack of universal browser support (e.g., IE11 and Safari) or ensure that typed arrays are polyfilled\n\tif ( arguments.length === 2 ) {\n\t\tthis._buffer.copyWithin( target*2, start*2 );\n\t} else {\n\t\tthis._buffer.copyWithin( target*2, start*2, arguments[2]*2 );\n\t}\n\treturn this;\n});\n\n/**\n* Returns an iterator for iterating over array key-value pairs.\n*\n* @name entries\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @throws {TypeError} `this` must be a complex number array\n* @returns {Iterator} iterator\n*\n* @example\n* import Complex64 from '@stdlib/complex/float32/ctor';\n*\n* var arr = [\n* new Complex64( 1.0, 1.0 ),\n* new Complex64( 2.0, 2.0 ),\n* new Complex64( 3.0, 3.0 )\n* ];\n* arr = new Complex64Array( arr );\n*\n* // Create an iterator:\n* var it = arr.entries();\n*\n* // Iterate over the key-value pairs...\n* var v = it.next().value;\n* // returns [ 0, ]\n*\n* v = it.next().value;\n* // returns [ 1, ]\n*\n* v = it.next().value;\n* // returns [ 2, ]\n*\n* var bool = it.next().done;\n* // returns true\n*/\nsetReadOnly( Complex64Array.prototype, 'entries', function entries() {\n\tvar self;\n\tvar iter;\n\tvar len;\n\tvar buf;\n\tvar FLG;\n\tvar i;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tself = this;\n\tbuf = this._buffer;\n\tlen = this._length;\n\n\t// Initialize an iteration index:\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\tif ( ITERATOR_SYMBOL ) {\n\t\tsetReadOnly( iter, ITERATOR_SYMBOL, 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 >= len ) {\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, getComplex64( buf, 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 self.entries();\n\t}\n});\n\n/**\n* Tests whether all elements in an array pass a test implemented by a predicate function.\n*\n* @name every\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @param {Function} predicate - test function\n* @param {*} [thisArg] - predicate function execution context\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a function\n* @returns {boolean} boolean indicating whether all elements pass a test\n*\n* @example\n* import realf from '@stdlib/complex/float32/real';\n* import imagf from '@stdlib/complex/float32/imag';\n*\n* function predicate( v ) {\n* return ( realf( v ) === imagf( v ) );\n* }\n*\n* var arr = new Complex64Array( 3 );\n*\n* arr.set( [ 1.0, 1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n* arr.set( [ 3.0, 3.0 ], 2 );\n*\n* var bool = arr.every( predicate );\n* // returns true\n*/\nsetReadOnly( Complex64Array.prototype, 'every', function every( predicate, thisArg ) {\n\tvar buf;\n\tvar i;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isFunction( predicate ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', predicate ) );\n\t}\n\tbuf = this._buffer;\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tif ( !predicate.call( thisArg, getComplex64( buf, i ), i, this ) ) {\n\t\t\treturn false;\n\t\t}\n\t}\n\treturn true;\n});\n\n/**\n* Returns a modified typed array filled with a fill value.\n*\n* @name fill\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @param {ComplexLike} value - fill value\n* @param {integer} [start=0] - starting index (inclusive)\n* @param {integer} [end] - ending index (exclusive)\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a complex number\n* @throws {TypeError} second argument must be an integer\n* @throws {TypeError} third argument must be an integer\n* @returns {Complex64Array} modified array\n*\n* @example\n* import realf from '@stdlib/complex/float32/real';\n* import imagf from '@stdlib/complex/float32/imag';\n*\n* var arr = new Complex64Array( 3 );\n*\n* arr.fill( new Complex64( 1.0, 1.0 ), 1 );\n*\n* var z = arr.get( 1 );\n* // returns \n*\n* var re = realf( z );\n* // returns 1.0\n*\n* var im = imagf( z );\n* // returns 1.0\n*\n* z = arr.get( 2 );\n* // returns \n*\n* re = realf( z );\n* // returns 1.0\n*\n* im = imagf( z );\n* // returns 1.0\n*/\nsetReadOnly( Complex64Array.prototype, 'fill', function fill( value, start, end ) {\n\tvar buf;\n\tvar len;\n\tvar idx;\n\tvar re;\n\tvar im;\n\tvar i;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isComplexLike( value ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a complex number. Value: `%s`.', value ) );\n\t}\n\tbuf = this._buffer;\n\tlen = this._length;\n\tif ( arguments.length > 1 ) {\n\t\tif ( !isInteger( start ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an integer. Value: `%s`.', start ) );\n\t\t}\n\t\tif ( start < 0 ) {\n\t\t\tstart += len;\n\t\t\tif ( start < 0 ) {\n\t\t\t\tstart = 0;\n\t\t\t}\n\t\t}\n\t\tif ( arguments.length > 2 ) {\n\t\t\tif ( !isInteger( end ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Third argument must be an integer. Value: `%s`.', end ) );\n\t\t\t}\n\t\t\tif ( end < 0 ) {\n\t\t\t\tend += len;\n\t\t\t\tif ( end < 0 ) {\n\t\t\t\t\tend = 0;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( end > len ) {\n\t\t\t\tend = len;\n\t\t\t}\n\t\t} else {\n\t\t\tend = len;\n\t\t}\n\t} else {\n\t\tstart = 0;\n\t\tend = len;\n\t}\n\tre = realf( value );\n\tim = imagf( value );\n\tfor ( i = start; i < end; i++ ) {\n\t\tidx = 2*i;\n\t\tbuf[ idx ] = re;\n\t\tbuf[ idx+1 ] = im;\n\t}\n\treturn this;\n});\n\n/**\n* Returns a new array containing the elements of an array which pass a test implemented by a predicate function.\n*\n* @name filter\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @param {Function} predicate - test function\n* @param {*} [thisArg] - predicate function execution context\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a function\n* @returns {Complex64Array} complex number array\n*\n* @example\n* import realf from '@stdlib/complex/float32/real';\n* import imagf from '@stdlib/complex/float32/imag';\n*\n* function predicate( v ) {\n* return ( realf( v ) === imagf( v ) );\n* }\n*\n* var arr = new Complex64Array( 3 );\n*\n* arr.set( [ 1.0, -1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n* arr.set( [ 3.0, -3.0 ], 2 );\n*\n* var out = arr.filter( predicate );\n* // returns \n*\n* var len = out.length;\n* // returns 1\n*\n* var z = out.get( 0 );\n* // returns \n*\n* var re = realf( z );\n* // returns 2.0\n*\n* var im = imagf( z );\n* // returns 2.0\n*/\nsetReadOnly( Complex64Array.prototype, 'filter', function filter( predicate, thisArg ) {\n\tvar buf;\n\tvar out;\n\tvar i;\n\tvar z;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isFunction( predicate ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', predicate ) );\n\t}\n\tbuf = this._buffer;\n\tout = [];\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tz = getComplex64( buf, i );\n\t\tif ( predicate.call( thisArg, z, i, this ) ) {\n\t\t\tout.push( z );\n\t\t}\n\t}\n\treturn new this.constructor( out );\n});\n\n/**\n* Returns the first element in an array for which a predicate function returns a truthy value.\n*\n* @name find\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @param {Function} predicate - test function\n* @param {*} [thisArg] - predicate function execution context\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a function\n* @returns {(Complex64|void)} array element or undefined\n*\n* @example\n* import realf from '@stdlib/complex/float32/real';\n* import imagf from '@stdlib/complex/float32/imag';\n* import Complex64 from '@stdlib/complex/float32/ctor';\n*\n* function predicate( v ) {\n* return ( realf( v ) === imagf( v ) );\n* }\n*\n* var arr = new Complex64Array( 3 );\n*\n* arr.set( [ 1.0, 1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n* arr.set( [ 3.0, 3.0 ], 2 );\n*\n* var z = arr.find( predicate );\n* // returns \n*\n* var re = realf( z );\n* // returns 1.0\n*\n* var im = imagf( z );\n* // returns 1.0\n*/\nsetReadOnly( Complex64Array.prototype, 'find', function find( predicate, thisArg ) {\n\tvar buf;\n\tvar i;\n\tvar z;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isFunction( predicate ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', predicate ) );\n\t}\n\tbuf = this._buffer;\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tz = getComplex64( buf, i );\n\t\tif ( predicate.call( thisArg, z, i, this ) ) {\n\t\t\treturn z;\n\t\t}\n\t}\n});\n\n/**\n* Returns the index of the first element in an array for which a predicate function returns a truthy value.\n*\n* @name findIndex\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @param {Function} predicate - test function\n* @param {*} [thisArg] - predicate function execution context\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a function\n* @returns {integer} index or -1\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* function predicate( v ) {\n* return ( realf( v ) === imagf( v ) );\n* }\n*\n* var arr = new Complex64Array( 3 );\n*\n* arr.set( [ 1.0, -1.0 ], 0 );\n* arr.set( [ 2.0, -2.0 ], 1 );\n* arr.set( [ 3.0, 3.0 ], 2 );\n*\n* var idx = arr.findIndex( predicate );\n* // returns 2\n*/\nsetReadOnly( Complex64Array.prototype, 'findIndex', function findIndex( predicate, thisArg ) {\n\tvar buf;\n\tvar i;\n\tvar z;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isFunction( predicate ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', predicate ) );\n\t}\n\tbuf = this._buffer;\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tz = getComplex64( buf, i );\n\t\tif ( predicate.call( thisArg, z, i, this ) ) {\n\t\t\treturn i;\n\t\t}\n\t}\n\treturn -1;\n});\n\n/**\n* Returns the last element in an array for which a predicate function returns a truthy value.\n*\n* @name findLast\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @param {Function} predicate - test function\n* @param {*} [thisArg] - predicate function execution context\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a function\n* @returns {(Complex64|void)} array element or undefined\n*\n* @example\n* import realf from '@stdlib/complex/float32/real';\n* import imagf from '@stdlib/complex/float32/imag';\n* import Complex64 from '@stdlib/complex/float32/ctor';\n*\n* function predicate( v ) {\n* return ( realf( v ) === imagf( v ) );\n* }\n*\n* var arr = new Complex64Array( 3 );\n*\n* arr.set( [ 1.0, 1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n* arr.set( [ 3.0, 3.0 ], 2 );\n*\n* var z = arr.findLast( predicate );\n* // returns \n*\n* var re = realf( z );\n* // returns 3.0\n*\n* var im = imagf( z );\n* // returns 3.0\n*/\nsetReadOnly( Complex64Array.prototype, 'findLast', function findLast( predicate, thisArg ) {\n\tvar buf;\n\tvar i;\n\tvar z;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isFunction( predicate ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', predicate ) );\n\t}\n\tbuf = this._buffer;\n\tfor ( i = this._length-1; i >= 0; i-- ) {\n\t\tz = getComplex64( buf, i );\n\t\tif ( predicate.call( thisArg, z, i, this ) ) {\n\t\t\treturn z;\n\t\t}\n\t}\n});\n\n/**\n* Returns the index of the last element in an array for which a predicate function returns a truthy value.\n*\n* @name findLastIndex\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @param {Function} predicate - test function\n* @param {*} [thisArg] - predicate function execution context\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a function\n* @returns {integer} index or -1\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* function predicate( v ) {\n* return ( realf( v ) === imagf( v ) );\n* }\n*\n* var arr = new Complex64Array( 3 );\n*\n* arr.set( [ 1.0, 1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n* arr.set( [ 3.0, -3.0 ], 2 );\n*\n* var idx = arr.findLastIndex( predicate );\n* // returns 1\n*/\nsetReadOnly( Complex64Array.prototype, 'findLastIndex', function findLastIndex( predicate, thisArg ) {\n\tvar buf;\n\tvar i;\n\tvar z;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isFunction( predicate ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', predicate ) );\n\t}\n\tbuf = this._buffer;\n\tfor ( i = this._length-1; i >= 0; i-- ) {\n\t\tz = getComplex64( buf, i );\n\t\tif ( predicate.call( thisArg, z, i, this ) ) {\n\t\t\treturn i;\n\t\t}\n\t}\n\treturn -1;\n});\n\n/**\n* Invokes a function once for each array element.\n*\n* @name forEach\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @param {Function} fcn - function to invoke\n* @param {*} [thisArg] - function invocation context\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a function\n*\n* @example\n* import Complex64 from '@stdlib/complex/float32/ctor';\n*\n* function log( v, i ) {\n* console.log( '%s: %s', i, v.toString() );\n* }\n*\n* var arr = new Complex64Array( 3 );\n*\n* arr.set( [ 1.0, 1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n* arr.set( [ 3.0, 3.0 ], 2 );\n*\n* arr.forEach( log );\n*/\nsetReadOnly( Complex64Array.prototype, 'forEach', function forEach( fcn, thisArg ) {\n\tvar buf;\n\tvar i;\n\tvar z;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isFunction( fcn ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', fcn ) );\n\t}\n\tbuf = this._buffer;\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tz = getComplex64( buf, i );\n\t\tfcn.call( thisArg, z, i, this );\n\t}\n});\n\n/**\n* Returns an array element.\n*\n* @name get\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @param {NonNegativeInteger} idx - element index\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} must provide a nonnegative integer\n* @returns {(Complex64|void)} array element\n*\n* @example\n* var arr = new Complex64Array( 10 );\n* import realf from '@stdlib/complex/float32/real';\n* import imagf from '@stdlib/complex/float32/imag';\n*\n* var z = arr.get( 0 );\n* // returns \n*\n* var re = realf( z );\n* // returns 0.0\n*\n* var im = imagf( z );\n* // returns 0.0\n*\n* arr.set( [ 1.0, -1.0 ], 0 );\n*\n* z = arr.get( 0 );\n* // returns \n*\n* re = realf( z );\n* // returns 1.0\n*\n* im = imagf( z );\n* // returns -1.0\n*\n* z = arr.get( 100 );\n* // returns undefined\n*/\nsetReadOnly( Complex64Array.prototype, 'get', function get( idx ) {\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isNonNegativeInteger( idx ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide a nonnegative integer. Value: `%s`.', idx ) );\n\t}\n\tif ( idx >= this._length ) {\n\t\treturn;\n\t}\n\treturn getComplex64( this._buffer, idx );\n});\n\n/**\n* Returns a boolean indicating whether an array includes a provided value.\n*\n* @name includes\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @param {ComplexLike} searchElement - search element\n* @param {integer} [fromIndex=0] - starting index (inclusive)\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a complex number\n* @throws {TypeError} second argument must be an integer\n* @returns {boolean} boolean indicating whether an array includes a provided value\n*\n* @example\n* import Complex64 from '@stdlib/complex/float32/ctor';\n*\n* var arr = new Complex64Array( 5 );\n*\n* arr.set( [ 1.0, -1.0 ], 0 );\n* arr.set( [ 2.0, -2.0 ], 1 );\n* arr.set( [ 3.0, -3.0 ], 2 );\n* arr.set( [ 4.0, -4.0 ], 3 );\n* arr.set( [ 5.0, -5.0 ], 4 );\n*\n* var bool = arr.includes( new Complex64( 3.0, -3.0 ) );\n* // returns true\n*\n* bool = arr.includes( new Complex64( 3.0, -3.0 ), 3 );\n* // returns false\n*\n* bool = arr.includes( new Complex64( 4.0, -4.0 ), -3 );\n* // returns true\n*/\nsetReadOnly( Complex64Array.prototype, 'includes', function includes( searchElement, fromIndex ) {\n\tvar buf;\n\tvar idx;\n\tvar re;\n\tvar im;\n\tvar i;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isComplexLike( searchElement ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a complex number. Value: `%s`.', searchElement ) );\n\t}\n\tif ( arguments.length > 1 ) {\n\t\tif ( !isInteger( fromIndex ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an integer. Value: `%s`.', fromIndex ) );\n\t\t}\n\t\tif ( fromIndex < 0 ) {\n\t\t\tfromIndex += this._length;\n\t\t\tif ( fromIndex < 0 ) {\n\t\t\t\tfromIndex = 0;\n\t\t\t}\n\t\t}\n\t} else {\n\t\tfromIndex = 0;\n\t}\n\tre = realf( searchElement );\n\tim = imagf( searchElement );\n\tbuf = this._buffer;\n\tfor ( i = fromIndex; i < this._length; i++ ) {\n\t\tidx = 2 * i;\n\t\tif ( re === buf[ idx ] && im === buf[ idx+1 ] ) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n});\n\n/**\n* Returns the first index at which a given element can be found.\n*\n* @name indexOf\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @param {ComplexLike} searchElement - element to find\n* @param {integer} [fromIndex=0] - starting index (inclusive)\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a complex number\n* @throws {TypeError} second argument must be an integer\n* @returns {integer} index or -1\n*\n* @example\n* import Complex64 from '@stdlib/complex/float32/ctor';\n*\n* var arr = new Complex64Array( 10 );\n*\n* arr.set( [ 1.0, -1.0 ], 0 );\n* arr.set( [ 2.0, -2.0 ], 1 );\n* arr.set( [ 3.0, -3.0 ], 2 );\n* arr.set( [ 4.0, -4.0 ], 3 );\n* arr.set( [ 5.0, -5.0 ], 4 );\n*\n* var idx = arr.indexOf( new Complex64( 3.0, -3.0 ) );\n* // returns 2\n*\n* idx = arr.indexOf( new Complex64( 3.0, -3.0 ), 3 );\n* // returns -1\n*\n* idx = arr.indexOf( new Complex64( 4.0, -4.0 ), -3 );\n* // returns -1\n*/\nsetReadOnly( Complex64Array.prototype, 'indexOf', function indexOf( searchElement, fromIndex ) {\n\tvar buf;\n\tvar idx;\n\tvar re;\n\tvar im;\n\tvar i;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isComplexLike( searchElement ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a complex number. Value: `%s`.', searchElement ) );\n\t}\n\tif ( arguments.length > 1 ) {\n\t\tif ( !isInteger( fromIndex ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an integer. Value: `%s`.', fromIndex ) );\n\t\t}\n\t\tif ( fromIndex < 0 ) {\n\t\t\tfromIndex += this._length;\n\t\t\tif ( fromIndex < 0 ) {\n\t\t\t\tfromIndex = 0;\n\t\t\t}\n\t\t}\n\t} else {\n\t\tfromIndex = 0;\n\t}\n\tre = realf( searchElement );\n\tim = imagf( searchElement );\n\tbuf = this._buffer;\n\tfor ( i = fromIndex; i < this._length; i++ ) {\n\t\tidx = 2 * i;\n\t\tif ( re === buf[ idx ] && im === buf[ idx+1 ] ) {\n\t\t\treturn i;\n\t\t}\n\t}\n\treturn -1;\n});\n\n/**\n* Returns a new string by concatenating all array elements.\n*\n* @name join\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @param {string} [separator=','] - element separator\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a string\n* @returns {string} string representation\n*\n* @example\n* var arr = new Complex64Array( 2 );\n*\n* arr.set( [ 1.0, 1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n*\n* var str = arr.join();\n* // returns '1 + 1i,2 + 2i'\n*\n* str = arr.join( '/' );\n* // returns '1 + 1i/2 + 2i'\n*/\nsetReadOnly( Complex64Array.prototype, 'join', function join( separator ) {\n\tvar out;\n\tvar buf;\n\tvar sep;\n\tvar i;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( arguments.length === 0 ) {\n\t\tsep = ',';\n\t} else if ( isString( separator ) ) {\n\t\tsep = separator;\n\t} else {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a string. Value: `%s`.', separator ) );\n\t}\n\tout = [];\n\tbuf = this._buffer;\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tout.push( getComplex64( buf, i ).toString() );\n\t}\n\treturn out.join( sep );\n});\n\n/**\n* Returns an iterator for iterating over each index key in a typed array.\n*\n* @name keys\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @throws {TypeError} `this` must be a complex number array\n* @returns {Iterator} iterator\n*\n* @example\n* var arr = new Complex64Array( 2 );\n*\n* arr.set( [ 1.0, 1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n*\n* var iter = arr.keys();\n*\n* var v = iter.next().value;\n* // returns 0\n*\n* v = iter.next().value;\n* // returns 1\n*\n* var bool = iter.next().done;\n* // returns true\n*/\nsetReadOnly( Complex64Array.prototype, 'keys', function keys() {\n\tvar self;\n\tvar iter;\n\tvar len;\n\tvar FLG;\n\tvar i;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tself = this;\n\tlen = this._length;\n\n\t// Initialize an iteration index:\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\tif ( ITERATOR_SYMBOL ) {\n\t\tsetReadOnly( iter, ITERATOR_SYMBOL, 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 >= len ) {\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 self.keys();\n\t}\n});\n\n/**\n* Returns the last index at which a given element can be found.\n*\n* @name lastIndexOf\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @param {ComplexLike} searchElement - element to find\n* @param {integer} [fromIndex] - index at which to start searching backward (inclusive)\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a complex number\n* @throws {TypeError} second argument must be an integer\n* @returns {integer} index or -1\n*\n* @example\n* import Complex64 from '@stdlib/complex/float32/ctor';\n*\n* var arr = new Complex64Array( 5 );\n*\n* arr.set( [ 1.0, -1.0 ], 0 );\n* arr.set( [ 2.0, -2.0 ], 1 );\n* arr.set( [ 3.0, -3.0 ], 2 );\n* arr.set( [ 4.0, -4.0 ], 3 );\n* arr.set( [ 3.0, -3.0 ], 4 );\n*\n* var idx = arr.lastIndexOf( new Complex64( 3.0, -3.0 ) );\n* // returns 4\n*\n* idx = arr.lastIndexOf( new Complex64( 3.0, -3.0 ), 3 );\n* // returns 2\n*\n* idx = arr.lastIndexOf( new Complex64( 5.0, -5.0 ), 3 );\n* // returns -1\n*\n* idx = arr.lastIndexOf( new Complex64( 2.0, -2.0 ), -3 );\n* // returns 1\n*/\nsetReadOnly( Complex64Array.prototype, 'lastIndexOf', function lastIndexOf( searchElement, fromIndex ) {\n\tvar buf;\n\tvar idx;\n\tvar re;\n\tvar im;\n\tvar i;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isComplexLike( searchElement ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a complex number. Value: `%s`.', searchElement ) );\n\t}\n\tif ( arguments.length > 1 ) {\n\t\tif ( !isInteger( fromIndex ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an integer. Value: `%s`.', fromIndex ) );\n\t\t}\n\t\tif ( fromIndex >= this._length ) {\n\t\t\tfromIndex = this._length - 1;\n\t\t} else if ( fromIndex < 0 ) {\n\t\t\tfromIndex += this._length;\n\t\t}\n\t} else {\n\t\tfromIndex = this._length - 1;\n\t}\n\tre = realf( searchElement );\n\tim = imagf( searchElement );\n\tbuf = this._buffer;\n\tfor ( i = fromIndex; i >= 0; i-- ) {\n\t\tidx = 2 * i;\n\t\tif ( re === buf[ idx ] && im === buf[ idx+1 ] ) {\n\t\t\treturn i;\n\t\t}\n\t}\n\treturn -1;\n});\n\n/**\n* Number of array elements.\n*\n* @name length\n* @memberof Complex64Array.prototype\n* @readonly\n* @type {NonNegativeInteger}\n*\n* @example\n* var arr = new Complex64Array( 10 );\n*\n* var len = arr.length;\n* // returns 10\n*/\nsetReadOnlyAccessor( Complex64Array.prototype, 'length', function get() {\n\treturn this._length;\n});\n\n/**\n* Returns a new array with each element being the result of a provided callback function.\n*\n* @name map\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @param {Function} fcn - callback function\n* @param {*} [thisArg] - callback function execution context\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a function\n* @returns {Complex64Array} complex number array\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* function scale( v, i ) {\n* return new Complex64( 2.0*realf( v ), 2.0*imagf( v ) );\n* }\n*\n* var arr = new Complex64Array( 3 );\n*\n* arr.set( [ 1.0, -1.0 ], 0 );\n* arr.set( [ 2.0, -2.0 ], 1 );\n* arr.set( [ 3.0, -3.0 ], 2 );\n*\n* var out = arr.map( scale );\n* // returns \n*\n* var z = out.get( 0 );\n* // returns \n*\n* var re = realf( z );\n* // returns 2\n*\n* var im = imagf( z );\n* // returns -2\n*/\nsetReadOnly( Complex64Array.prototype, 'map', function map( fcn, thisArg ) {\n\tvar outbuf;\n\tvar buf;\n\tvar out;\n\tvar i;\n\tvar v;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isFunction( fcn ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', fcn ) );\n\t}\n\tbuf = this._buffer;\n\tout = new this.constructor( this._length );\n\toutbuf = out._buffer; // eslint-disable-line no-underscore-dangle\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tv = fcn.call( thisArg, getComplex64( buf, i ), i, this );\n\t\tif ( isComplexLike( v ) ) {\n\t\t\toutbuf[ 2*i ] = realf( v );\n\t\t\toutbuf[ (2*i)+1 ] = imagf( v );\n\t\t} else if ( isArrayLikeObject( v ) && v.length === 2 ) {\n\t\t\toutbuf[ 2*i ] = v[ 0 ];\n\t\t\toutbuf[ (2*i)+1 ] = v[ 1 ];\n\t\t} else {\n\t\t\tthrow new TypeError( format( 'invalid argument. Callback must return either a two-element array containing real and imaginary components or a complex number. Value: `%s`.', v ) );\n\t\t}\n\t}\n\treturn out;\n});\n\n/**\n* Applies a provided callback function to each element of the array, in order, passing in the return value from the calculation on the preceding element and returning the accumulated result upon completion.\n*\n* @name reduce\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @param {Function} reducer - callback function\n* @param {*} [initialValue] - initial value\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a function\n* @throws {Error} if not provided an initial value, the array must have at least one element\n* @returns {*} accumulated result\n*\n* @example\n* import realf from '@stdlib/complex/float32/real';\n* import imagf from '@stdlib/complex/float32/imag';\n* import caddf from '@stdlib/complex/float32/base/add';\n*\n* var arr = new Complex64Array( 3 );\n*\n* arr.set( [ 1.0, 1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n* arr.set( [ 3.0, 3.0 ], 2 );\n*\n* var z = arr.reduce( caddf );\n* // returns \n*\n* var re = realf( z );\n* // returns 6.0\n*\n* var im = imagf( z );\n* // returns 6.0\n*/\nsetReadOnly( Complex64Array.prototype, 'reduce', function reduce( reducer, initialValue ) {\n\tvar buf;\n\tvar acc;\n\tvar len;\n\tvar v;\n\tvar i;\n\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isFunction( reducer ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', reducer ) );\n\t}\n\tbuf = this._buffer;\n\tlen = this._length;\n\tif ( arguments.length > 1 ) {\n\t\tacc = initialValue;\n\t\ti = 0;\n\t} else {\n\t\tif ( len === 0 ) {\n\t\t\tthrow new Error( 'invalid operation. If not provided an initial value, an array must contain at least one element.' );\n\t\t}\n\t\tacc = getComplex64( buf, 0 );\n\t\ti = 1;\n\t}\n\tfor ( ; i < len; i++ ) {\n\t\tv = getComplex64( buf, i );\n\t\tacc = reducer( acc, v, i, this );\n\t}\n\treturn acc;\n});\n\n/**\n* Applies a provided callback function to each element of the array, in reverse order, passing in the return value from the calculation on the preceding element and returning the accumulated result upon completion.\n*\n* @name reduceRight\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @param {Function} reducer - callback function\n* @param {*} [initialValue] - initial value\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a function\n* @throws {Error} if not provided an initial value, the array must have at least one element\n* @returns {*} accumulated result\n*\n* @example\n* import realf from '@stdlib/complex/float32/real';\n* import imagf from '@stdlib/complex/float32/imag';\n* import caddf from '@stdlib/complex/float32/base/add';\n*\n* var arr = new Complex64Array( 3 );\n*\n* arr.set( [ 1.0, 1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n* arr.set( [ 3.0, 3.0 ], 2 );\n*\n* var z = arr.reduceRight( caddf );\n* // returns \n*\n* var re = realf( z );\n* // returns 6.0\n*\n* var im = imagf( z );\n* // returns 6.0\n*/\nsetReadOnly( Complex64Array.prototype, 'reduceRight', function reduceRight( reducer, initialValue ) {\n\tvar buf;\n\tvar acc;\n\tvar len;\n\tvar v;\n\tvar i;\n\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isFunction( reducer ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', reducer ) );\n\t}\n\tbuf = this._buffer;\n\tlen = this._length;\n\tif ( arguments.length > 1 ) {\n\t\tacc = initialValue;\n\t\ti = len-1;\n\t} else {\n\t\tif ( len === 0 ) {\n\t\t\tthrow new Error( 'invalid operation. If not provided an initial value, an array must contain at least one element.' );\n\t\t}\n\t\tacc = getComplex64( buf, len-1 );\n\t\ti = len-2;\n\t}\n\tfor ( ; i >= 0; i-- ) {\n\t\tv = getComplex64( buf, i );\n\t\tacc = reducer( acc, v, i, this );\n\t}\n\treturn acc;\n});\n\n/**\n* Reverses an array in-place.\n*\n* @name reverse\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @throws {TypeError} `this` must be a complex number array\n* @returns {Complex64Array} reversed array\n*\n* @example\n* import realf from '@stdlib/complex/float32/real';\n* import imagf from '@stdlib/complex/float32/imag';\n*\n* var arr = new Complex64Array( 3 );\n*\n* arr.set( [ 1.0, 1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n* arr.set( [ 3.0, 3.0 ], 2 );\n*\n* var out = arr.reverse();\n* // returns \n*\n* var z = out.get( 0 );\n* // returns \n*\n* var re = realf( z );\n* // returns 3.0\n*\n* var im = imagf( z );\n* // returns 3.0\n*\n* z = out.get( 1 );\n* // returns \n*\n* re = realf( z );\n* // returns 2.0\n*\n* im = imagf( z );\n* // returns 2.0\n*\n* z = out.get( 2 );\n* // returns \n*\n* re = realf( z );\n* // returns 1.0\n*\n* im = imagf( z );\n* // returns 1.0\n*/\nsetReadOnly( Complex64Array.prototype, 'reverse', function reverse() {\n\tvar buf;\n\tvar tmp;\n\tvar len;\n\tvar N;\n\tvar i;\n\tvar j;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tlen = this._length;\n\tbuf = this._buffer;\n\tN = floor( len / 2 );\n\tfor ( i = 0; i < N; i++ ) {\n\t\tj = len - i - 1;\n\t\ttmp = buf[ (2*i) ];\n\t\tbuf[ (2*i) ] = buf[ (2*j) ];\n\t\tbuf[ (2*j) ] = tmp;\n\t\ttmp = buf[ (2*i)+1 ];\n\t\tbuf[ (2*i)+1 ] = buf[ (2*j)+1 ];\n\t\tbuf[ (2*j)+1 ] = tmp;\n\t}\n\treturn this;\n});\n\n/**\n* Sets an array element.\n*\n* ## Notes\n*\n* - When provided a typed array, real or complex, we must check whether the source array shares the same buffer as the target array and whether the underlying memory overlaps. In particular, we are concerned with the following scenario:\n*\n* ```text\n* buf: ---------------------\n* src: ---------------------\n* ```\n*\n* In the above, as we copy values from `src`, we will overwrite values in the `src` view, resulting in duplicated values copied into the end of `buf`, which is not intended. Hence, to avoid overwriting source values, we must **copy** source values to a temporary array.\n*\n* In the other overlapping scenario,\n*\n* ```text\n* buf: ---------------------\n* src: ---------------------\n* ```\n*\n* by the time we begin copying into the overlapping region, we are copying from the end of `src`, a non-overlapping region, which means we don't run the risk of copying copied values, rather than the original `src` values, as intended.\n*\n* @name set\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @param {(Collection|Complex|ComplexArray)} value - value(s)\n* @param {NonNegativeInteger} [i=0] - element index at which to start writing values\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be either a complex number, an array-like object, or a complex number array\n* @throws {TypeError} index argument must be a nonnegative integer\n* @throws {RangeError} array-like objects must have a length which is a multiple of two\n* @throws {RangeError} index argument is out-of-bounds\n* @throws {RangeError} target array lacks sufficient storage to accommodate source values\n* @returns {void}\n*\n* @example\n* import realf from '@stdlib/complex/float32/real';\n* import imagf from '@stdlib/complex/float32/imag';\n*\n* var arr = new Complex64Array( 10 );\n*\n* var z = arr.get( 0 );\n* // returns \n*\n* var re = realf( z );\n* // returns 0.0\n*\n* var im = imagf( z );\n* // returns 0.0\n*\n* arr.set( [ 1.0, -1.0 ], 0 );\n*\n* z = arr.get( 0 );\n* // returns \n*\n* re = realf( z );\n* // returns 1.0\n*\n* im = imagf( z );\n* // returns -1.0\n*/\nsetReadOnly( Complex64Array.prototype, 'set', function set( value ) {\n\t/* eslint-disable no-underscore-dangle */\n\tvar sbuf;\n\tvar idx;\n\tvar buf;\n\tvar tmp;\n\tvar flg;\n\tvar N;\n\tvar v;\n\tvar i;\n\tvar j;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tbuf = this._buffer;\n\tif ( arguments.length > 1 ) {\n\t\tidx = arguments[ 1 ];\n\t\tif ( !isNonNegativeInteger( idx ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Index argument must be a nonnegative integer. Value: `%s`.', idx ) );\n\t\t}\n\t} else {\n\t\tidx = 0;\n\t}\n\tif ( isComplexLike( value ) ) {\n\t\tif ( idx >= this._length ) {\n\t\t\tthrow new RangeError( format( 'invalid argument. Index argument is out-of-bounds. Value: `%u`.', idx ) );\n\t\t}\n\t\tidx *= 2;\n\t\tbuf[ idx ] = realf( value );\n\t\tbuf[ idx+1 ] = imagf( value );\n\t\treturn;\n\t}\n\tif ( isComplexArray( value ) ) {\n\t\tN = value._length;\n\t\tif ( idx+N > this._length ) {\n\t\t\tthrow new RangeError( 'invalid arguments. Target array lacks sufficient storage to accommodate source values.' );\n\t\t}\n\t\tsbuf = value._buffer;\n\n\t\t// Check for overlapping memory...\n\t\tj = buf.byteOffset + (idx*BYTES_PER_ELEMENT);\n\t\tif (\n\t\t\tsbuf.buffer === buf.buffer &&\n\t\t\t(\n\t\t\t\tsbuf.byteOffset < j &&\n\t\t\t\tsbuf.byteOffset+sbuf.byteLength > j\n\t\t\t)\n\t\t) {\n\t\t\t// We need to copy source values...\n\t\t\ttmp = new Float32Array( sbuf.length );\n\t\t\tfor ( i = 0; i < sbuf.length; i++ ) {\n\t\t\t\ttmp[ i ] = sbuf[ i ];\n\t\t\t}\n\t\t\tsbuf = tmp;\n\t\t}\n\t\tidx *= 2;\n\t\tj = 0;\n\t\tfor ( i = 0; i < N; i++ ) {\n\t\t\tbuf[ idx ] = sbuf[ j ];\n\t\t\tbuf[ idx+1 ] = sbuf[ j+1 ];\n\t\t\tidx += 2; // stride\n\t\t\tj += 2; // stride\n\t\t}\n\t\treturn;\n\t}\n\tif ( isCollection( value ) ) {\n\t\t// Detect whether we've been provided an array of complex numbers...\n\t\tN = value.length;\n\t\tfor ( i = 0; i < N; i++ ) {\n\t\t\tif ( !isComplexLike( value[ i ] ) ) {\n\t\t\t\tflg = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\t// If an array does not contain only complex numbers, then we assume interleaved real and imaginary components...\n\t\tif ( flg ) {\n\t\t\tif ( !isEven( N ) ) {\n\t\t\t\tthrow new RangeError( format( 'invalid argument. Array-like object arguments must have a length which is a multiple of two. Length: `%u`.', N ) );\n\t\t\t}\n\t\t\tif ( idx+(N/2) > this._length ) {\n\t\t\t\tthrow new RangeError( 'invalid arguments. Target array lacks sufficient storage to accommodate source values.' );\n\t\t\t}\n\t\t\tsbuf = value;\n\n\t\t\t// Check for overlapping memory...\n\t\t\tj = buf.byteOffset + (idx*BYTES_PER_ELEMENT);\n\t\t\tif (\n\t\t\t\tsbuf.buffer === buf.buffer &&\n\t\t\t\t(\n\t\t\t\t\tsbuf.byteOffset < j &&\n\t\t\t\t\tsbuf.byteOffset+sbuf.byteLength > j\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\t// We need to copy source values...\n\t\t\t\ttmp = new Float32Array( N );\n\t\t\t\tfor ( i = 0; i < N; i++ ) {\n\t\t\t\t\ttmp[ i ] = sbuf[ i ]; // TODO: handle accessor arrays\n\t\t\t\t}\n\t\t\t\tsbuf = tmp;\n\t\t\t}\n\t\t\tidx *= 2;\n\t\t\tN /= 2;\n\t\t\tj = 0;\n\t\t\tfor ( i = 0; i < N; i++ ) {\n\t\t\t\tbuf[ idx ] = sbuf[ j ];\n\t\t\t\tbuf[ idx+1 ] = sbuf[ j+1 ];\n\t\t\t\tidx += 2; // stride\n\t\t\t\tj += 2; // stride\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\t// If an array contains only complex numbers, then we need to extract real and imaginary components...\n\t\tif ( idx+N > this._length ) {\n\t\t\tthrow new RangeError( 'invalid arguments. Target array lacks sufficient storage to accommodate source values.' );\n\t\t}\n\t\tidx *= 2;\n\t\tfor ( i = 0; i < N; i++ ) {\n\t\t\tv = value[ i ];\n\t\t\tbuf[ idx ] = realf( v );\n\t\t\tbuf[ idx+1 ] = imagf( v );\n\t\t\tidx += 2; // stride\n\t\t}\n\t\treturn;\n\t}\n\tthrow new TypeError( format( 'invalid argument. First argument must be either a complex number, an array-like object, or a complex number array. Value: `%s`.', value ) );\n\n\t/* eslint-enable no-underscore-dangle */\n});\n\n/**\n* Copies a portion of a typed array to a new typed array.\n*\n* @name slice\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @param {integer} [start=0] - starting index (inclusive)\n* @param {integer} [end] - ending index (exclusive)\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be an integer\n* @throws {TypeError} second argument must be an integer\n* @returns {Complex64Array} complex number array\n*\n* @example\n* import realf from '@stdlib/complex/float32/real';\n* import imagf from '@stdlib/complex/float32/imag';\n*\n* var arr = new Complex64Array( 5 );\n*\n* arr.set( [ 1.0, -1.0 ], 0 );\n* arr.set( [ 2.0, -2.0 ], 1 );\n* arr.set( [ 3.0, -3.0 ], 2 );\n* arr.set( [ 4.0, -4.0 ], 3 );\n* arr.set( [ 5.0, -5.0 ], 4 );\n*\n* var out = arr.slice();\n* // returns \n*\n* var len = out.length;\n* // returns 5\n*\n* var z = out.get( 0 );\n* // returns \n*\n* var re = realf( z );\n* // returns 1.0\n*\n* var im = imagf( z );\n* // returns -1.0\n*\n* z = out.get( len-1 );\n* // returns \n*\n* re = realf( z );\n* // returns 5.0\n*\n* im = imagf( z );\n* // returns -5.0\n*\n* out = arr.slice( 1, -2 );\n* // returns \n*\n* len = out.length;\n* // returns 2\n*\n* z = out.get( 0 );\n* // returns \n*\n* re = realf( z );\n* // returns 2.0\n*\n* im = imagf( z );\n* // returns -2.0\n*\n* z = out.get( len-1 );\n* // returns \n*\n* re = realf( z );\n* // returns 3.0\n*\n* im = imagf( z );\n* // returns -3.0\n*/\nsetReadOnly( Complex64Array.prototype, 'slice', function slice( start, end ) {\n\tvar outlen;\n\tvar outbuf;\n\tvar out;\n\tvar idx;\n\tvar buf;\n\tvar len;\n\tvar i;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tbuf = this._buffer;\n\tlen = this._length;\n\tif ( arguments.length === 0 ) {\n\t\tstart = 0;\n\t\tend = len;\n\t} else {\n\t\tif ( !isInteger( start ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. First argument must be an integer. Value: `%s`.', start ) );\n\t\t}\n\t\tif ( start < 0 ) {\n\t\t\tstart += len;\n\t\t\tif ( start < 0 ) {\n\t\t\t\tstart = 0;\n\t\t\t}\n\t\t}\n\t\tif ( arguments.length === 1 ) {\n\t\t\tend = len;\n\t\t} else {\n\t\t\tif ( !isInteger( end ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an integer. Value: `%s`.', end ) );\n\t\t\t}\n\t\t\tif ( end < 0 ) {\n\t\t\t\tend += len;\n\t\t\t\tif ( end < 0 ) {\n\t\t\t\t\tend = 0;\n\t\t\t\t}\n\t\t\t} else if ( end > len ) {\n\t\t\t\tend = len;\n\t\t\t}\n\t\t}\n\t}\n\tif ( start < end ) {\n\t\toutlen = end - start;\n\t} else {\n\t\toutlen = 0;\n\t}\n\tout = new this.constructor( outlen );\n\toutbuf = out._buffer; // eslint-disable-line no-underscore-dangle\n\tfor ( i = 0; i < outlen; i++ ) {\n\t\tidx = 2*(i+start);\n\t\toutbuf[ 2*i ] = buf[ idx ];\n\t\toutbuf[ (2*i)+1 ] = buf[ idx+1 ];\n\t}\n\treturn out;\n});\n\n/**\n* Tests whether at least one element in an array passes a test implemented by a predicate function.\n*\n* @name some\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @param {Function} predicate - test function\n* @param {*} [thisArg] - predicate function execution context\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a function\n* @returns {boolean} boolean indicating whether at least one element passes a test\n*\n* @example\n* import realf from '@stdlib/complex/float32/real';\n* import imagf from '@stdlib/complex/float32/imag';\n*\n* function predicate( v ) {\n* return ( realf( v ) === imagf( v ) );\n* }\n*\n* var arr = new Complex64Array( 3 );\n*\n* arr.set( [ 1.0, -1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n* arr.set( [ 3.0, -3.0 ], 2 );\n*\n* var bool = arr.some( predicate );\n* // returns true\n*/\nsetReadOnly( Complex64Array.prototype, 'some', function some( predicate, thisArg ) {\n\tvar buf;\n\tvar i;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isFunction( predicate ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', predicate ) );\n\t}\n\tbuf = this._buffer;\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tif ( predicate.call( thisArg, getComplex64( buf, i ), i, this ) ) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n});\n\n/**\n* Sorts an array in-place.\n*\n* @name sort\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @param {Function} compareFcn - comparison function\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a function\n* @returns {Complex64Array} sorted array\n*\n* @example\n* import realf from '@stdlib/complex/float32/real';\n* import imagf from '@stdlib/complex/float32/imag';\n*\n* function compare( a, b ) {\n* var re1;\n* var re2;\n* var im1;\n* var im2;\n* re1 = realf( a );\n* re2 = realf( b );\n* if ( re1 < re2 ) {\n* return -1;\n* }\n* if ( re1 > re2 ) {\n* return 1;\n* }\n* im1 = imagf( a );\n* im2 = imagf( b );\n* if ( im1 < im2 ) {\n* return -1;\n* }\n* if ( im1 > im2 ) {\n* return 1;\n* }\n* return 0;\n* }\n*\n* var arr = new Complex64Array( 3 );\n*\n* arr.set( [ 3.0, -3.0 ], 0 );\n* arr.set( [ 1.0, -1.0 ], 1 );\n* arr.set( [ 2.0, -2.0 ], 2 );\n*\n* var out = arr.sort( compare );\n* // returns \n*\n* var z = out.get( 0 );\n* // returns \n*\n* var re = realf( z );\n* // returns 1.0\n*\n* var im = imagf( z );\n* // returns -1.0\n*\n* z = out.get( 1 );\n* // returns \n*\n* re = realf( z );\n* // returns 2.0\n*\n* im = imagf( z );\n* // returns -2.0\n*\n* z = out.get( 2 );\n* // returns \n*\n* re = realf( z );\n* // returns 3.0\n*\n* im = imagf( z );\n* // returns -3.0\n*/\nsetReadOnly( Complex64Array.prototype, 'sort', function sort( compareFcn ) {\n\tvar tmp;\n\tvar buf;\n\tvar len;\n\tvar i;\n\tvar j;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isFunction( compareFcn ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', compareFcn ) );\n\t}\n\tbuf = this._buffer;\n\tlen = this._length;\n\ttmp = [];\n\tfor ( i = 0; i < len; i++ ) {\n\t\ttmp.push( getComplex64( buf, i ) );\n\t}\n\ttmp.sort( compareFcn );\n\tfor ( i = 0; i < len; i++ ) {\n\t\tj = 2 * i;\n\t\tbuf[ j ] = realf( tmp[i] );\n\t\tbuf[ j+1 ] = imagf( tmp[i] );\n\t}\n\treturn this;\n});\n\n/**\n* Creates a new typed array view over the same underlying `ArrayBuffer` and with the same underlying data type as the host array.\n*\n* @name subarray\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @param {integer} [begin=0] - starting index (inclusive)\n* @param {integer} [end] - ending index (exclusive)\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be an integer\n* @throws {TypeError} second argument must be an integer\n* @returns {Complex64Array} subarray\n*\n* @example\n* import realf from '@stdlib/complex/float32/real';\n* import imagf from '@stdlib/complex/float32/imag';\n*\n* var arr = new Complex64Array( 5 );\n*\n* arr.set( [ 1.0, -1.0 ], 0 );\n* arr.set( [ 2.0, -2.0 ], 1 );\n* arr.set( [ 3.0, -3.0 ], 2 );\n* arr.set( [ 4.0, -4.0 ], 3 );\n* arr.set( [ 5.0, -5.0 ], 4 );\n*\n* var subarr = arr.subarray();\n* // returns \n*\n* var len = subarr.length;\n* // returns 5\n*\n* var z = subarr.get( 0 );\n* // returns \n*\n* var re = realf( z );\n* // returns 1.0\n*\n* var im = imagf( z );\n* // returns -1.0\n*\n* z = subarr.get( len-1 );\n* // returns \n*\n* re = realf( z );\n* // returns 5.0\n*\n* im = imagf( z );\n* // returns -5.0\n*\n* subarr = arr.subarray( 1, -2 );\n* // returns \n*\n* len = subarr.length;\n* // returns 2\n*\n* z = subarr.get( 0 );\n* // returns \n*\n* re = realf( z );\n* // returns 2.0\n*\n* im = imagf( z );\n* // returns -2.0\n*\n* z = subarr.get( len-1 );\n* // returns \n*\n* re = realf( z );\n* // returns 3.0\n*\n* im = imagf( z );\n* // returns -3.0\n*/\nsetReadOnly( Complex64Array.prototype, 'subarray', function subarray( begin, end ) {\n\tvar offset;\n\tvar buf;\n\tvar len;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tbuf = this._buffer;\n\tlen = this._length;\n\tif ( arguments.length === 0 ) {\n\t\tbegin = 0;\n\t\tend = len;\n\t} else {\n\t\tif ( !isInteger( begin ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. First argument must be an integer. Value: `%s`.', begin ) );\n\t\t}\n\t\tif ( begin < 0 ) {\n\t\t\tbegin += len;\n\t\t\tif ( begin < 0 ) {\n\t\t\t\tbegin = 0;\n\t\t\t}\n\t\t}\n\t\tif ( arguments.length === 1 ) {\n\t\t\tend = len;\n\t\t} else {\n\t\t\tif ( !isInteger( end ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an integer. Value: `%s`.', end ) );\n\t\t\t}\n\t\t\tif ( end < 0 ) {\n\t\t\t\tend += len;\n\t\t\t\tif ( end < 0 ) {\n\t\t\t\t\tend = 0;\n\t\t\t\t}\n\t\t\t} else if ( end > len ) {\n\t\t\t\tend = len;\n\t\t\t}\n\t\t}\n\t}\n\tif ( begin >= len ) {\n\t\tlen = 0;\n\t\toffset = buf.byteLength;\n\t} else if ( begin >= end ) {\n\t\tlen = 0;\n\t\toffset = buf.byteOffset + (begin*BYTES_PER_ELEMENT);\n\t} else {\n\t\tlen = end - begin;\n\t\toffset = buf.byteOffset + ( begin*BYTES_PER_ELEMENT );\n\t}\n\treturn new this.constructor( buf.buffer, offset, ( len < 0 ) ? 0 : len );\n});\n\n/**\n* Serializes an array as a locale-specific string.\n*\n* @name toLocaleString\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @param {(string|Array)} [locales] - locale identifier(s)\n* @param {Object} [options] - configuration options\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a string or an array of strings\n* @throws {TypeError} options argument must be an object\n* @returns {string} string representation\n*\n* @example\n* var arr = new Complex64Array( 2 );\n*\n* arr.set( [ 1.0, 1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n*\n* var str = arr.toLocaleString();\n* // returns '1 + 1i,2 + 2i'\n*/\nsetReadOnly( Complex64Array.prototype, 'toLocaleString', function toLocaleString( locales, options ) {\n\tvar opts;\n\tvar loc;\n\tvar out;\n\tvar buf;\n\tvar i;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( arguments.length === 0 ) {\n\t\tloc = [];\n\t} else if ( isString( locales ) || isStringArray( locales ) ) {\n\t\tloc = locales;\n\t} else {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a string or an array of strings. Value: `%s`.', locales ) );\n\t}\n\tif ( arguments.length < 2 ) {\n\t\topts = {};\n\t} else if ( isObject( options ) ) {\n\t\topts = options;\n\t} else {\n\t\tthrow new TypeError( format( 'invalid argument. Options argument must be an object. Value: `%s`.', options ) );\n\t}\n\tbuf = this._buffer;\n\tout = [];\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tout.push( getComplex64( buf, i ).toLocaleString( loc, opts ) );\n\t}\n\treturn out.join( ',' );\n});\n\n/**\n* Returns a new typed array containing the elements in reversed order.\n*\n* @name toReversed\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @throws {TypeError} `this` must be a complex number array\n* @returns {Complex64Array} reversed array\n*\n* @example\n* import realf from '@stdlib/complex/float32/real';\n* import imagf from '@stdlib/complex/float32/imag';\n*\n* var arr = new Complex64Array( 3 );\n*\n* arr.set( [ 1.0, 1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n* arr.set( [ 3.0, 3.0 ], 2 );\n*\n* var out = arr.toReversed();\n* // returns \n*\n* var z = out.get( 0 );\n* // returns \n*\n* var re = realf( z );\n* // returns 3.0\n*\n* var im = imagf( z );\n* // returns 3.0\n*\n* z = out.get( 1 );\n* // returns \n*\n* re = realf( z );\n* // returns 2.0\n*\n* im = imagf( z );\n* // returns 2.0\n*\n* z = out.get( 2 );\n* // returns \n*\n* re = realf( z );\n* // returns 1.0\n*\n* im = imagf( z );\n* // returns 1.0\n*/\nsetReadOnly( Complex64Array.prototype, 'toReversed', function toReversed() {\n\tvar outbuf;\n\tvar out;\n\tvar len;\n\tvar buf;\n\tvar i;\n\tvar j;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tlen = this._length;\n\tout = new this.constructor( len );\n\tbuf = this._buffer;\n\toutbuf = out._buffer; // eslint-disable-line no-underscore-dangle\n\tfor ( i = 0; i < len; i++ ) {\n\t\tj = len - i - 1;\n\t\toutbuf[ (2*i) ] = buf[ (2*j) ];\n\t\toutbuf[ (2*i)+1 ] = buf[ (2*j)+1 ];\n\t}\n\treturn out;\n});\n\n/**\n* Returns a new typed array containing the elements in sorted order.\n*\n* @name toSorted\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @param {Function} compareFcn - comparison function\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a function\n* @returns {Complex64Array} sorted array\n*\n* @example\n* import realf from '@stdlib/complex/float32/real';\n* import imagf from '@stdlib/complex/float32/imag';\n*\n* function compare( a, b ) {\n* var re1;\n* var re2;\n* var im1;\n* var im2;\n* re1 = realf( a );\n* re2 = realf( b );\n* if ( re1 < re2 ) {\n* return -1;\n* }\n* if ( re1 > re2 ) {\n* return 1;\n* }\n* im1 = imagf( a );\n* im2 = imagf( b );\n* if ( im1 < im2 ) {\n* return -1;\n* }\n* if ( im1 > im2 ) {\n* return 1;\n* }\n* return 0;\n* }\n*\n* var arr = new Complex64Array( 3 );\n*\n* arr.set( [ 3.0, -3.0 ], 0 );\n* arr.set( [ 1.0, -1.0 ], 1 );\n* arr.set( [ 2.0, -2.0 ], 2 );\n*\n* var out = arr.sort( compare );\n* // returns \n*\n* var z = out.get( 0 );\n* // returns \n*\n* var re = realf( z );\n* // returns 1.0\n*\n* var im = imagf( z );\n* // returns -1.0\n*\n* z = out.get( 1 );\n* // returns \n*\n* re = realf( z );\n* // returns 2.0\n*\n* im = imagf( z );\n* // returns -2.0\n*\n* z = out.get( 2 );\n* // returns \n*\n* re = realf( z );\n* // returns 3.0\n*\n* im = imagf( z );\n* // returns -3.0\n*/\nsetReadOnly( Complex64Array.prototype, 'toSorted', function toSorted( compareFcn ) {\n\tvar tmp;\n\tvar buf;\n\tvar len;\n\tvar i;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isFunction( compareFcn ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', compareFcn ) );\n\t}\n\tbuf = this._buffer;\n\tlen = this._length;\n\ttmp = [];\n\tfor ( i = 0; i < len; i++ ) {\n\t\ttmp.push( getComplex64( buf, i ) );\n\t}\n\ttmp.sort( compareFcn );\n\treturn new Complex64Array( tmp );\n});\n\n/**\n* Serializes an array as a string.\n*\n* @name toString\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @throws {TypeError} `this` must be a complex number array\n* @returns {string} string representation\n*\n* @example\n* var arr = new Complex64Array( 2 );\n*\n* arr.set( [ 1.0, 1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n*\n* var str = arr.toString();\n* // returns '1 + 1i,2 + 2i'\n*/\nsetReadOnly( Complex64Array.prototype, 'toString', function toString() {\n\tvar out;\n\tvar buf;\n\tvar i;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tout = [];\n\tbuf = this._buffer;\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tout.push( getComplex64( buf, i ).toString() );\n\t}\n\treturn out.join( ',' );\n});\n\n/**\n* Returns an iterator for iterating over each value in a typed array.\n*\n* @name values\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @throws {TypeError} `this` must be a complex number array\n* @returns {Iterator} iterator\n*\n* @example\n* import realf from '@stdlib/complex/float32/real';\n* import imagf from '@stdlib/complex/float32/imag';\n* var arr = new Complex64Array( 2 );\n*\n* arr.set( [ 1.0, -1.0 ], 0 );\n* arr.set( [ 2.0, -2.0 ], 1 );\n*\n* var iter = arr.values();\n*\n* var v = iter.next().value;\n* // returns \n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns -1.0\n*\n* v = iter.next().value;\n* // returns \n*\n* re = realf( v );\n* // returns 2.0\n*\n* im = imagf( v );\n* // returns -2.0\n*\n* var bool = iter.next().done;\n* // returns true\n*/\nsetReadOnly( Complex64Array.prototype, 'values', function values() {\n\tvar iter;\n\tvar self;\n\tvar len;\n\tvar FLG;\n\tvar buf;\n\tvar i;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tself = this;\n\tbuf = this._buffer;\n\tlen = this._length;\n\n\t// Initialize an iteration index:\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\tif ( ITERATOR_SYMBOL ) {\n\t\tsetReadOnly( iter, ITERATOR_SYMBOL, 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 >= len ) {\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': getComplex64( buf, 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 self.values();\n\t}\n});\n\n/**\n* Returns a new typed array with the element at a provided index replaced with a provided value.\n*\n* @name with\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @param {integer} index - element index\n* @param {ComplexLike} value - new value\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be an integer\n* @throws {RangeError} index argument is out-of-bounds\n* @throws {TypeError} second argument must be a complex number\n* @returns {Complex64Array} new typed array\n*\n* @example\n* import realf from '@stdlib/complex/float32/real';\n* import imagf from '@stdlib/complex/float32/imag';\n* import Complex64 from '@stdlib/complex/float32/ctor';\n*\n* var arr = new Complex64Array( 3 );\n*\n* arr.set( [ 1.0, 1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n* arr.set( [ 3.0, 3.0 ], 2 );\n*\n* var out = arr.with( 0, new Complex64( 4.0, 4.0 ) );\n* // returns \n*\n* var z = out.get( 0 );\n* // returns \n*\n* var re = realf( z );\n* // returns 4.0\n*\n* var im = imagf( z );\n* // returns 4.0\n*/\nsetReadOnly( Complex64Array.prototype, 'with', function copyWith( index, value ) {\n\tvar buf;\n\tvar out;\n\tvar len;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isInteger( index ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an integer. Value: `%s`.', index ) );\n\t}\n\tlen = this._length;\n\tif ( index < 0 ) {\n\t\tindex += len;\n\t}\n\tif ( index < 0 || index >= len ) {\n\t\tthrow new RangeError( format( 'invalid argument. Index argument is out-of-bounds. Value: `%s`.', index ) );\n\t}\n\tif ( !isComplexLike( value ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be a complex number. Value: `%s`.', value ) );\n\t}\n\tout = new this.constructor( this._buffer );\n\tbuf = out._buffer; // eslint-disable-line no-underscore-dangle\n\tbuf[ 2*index ] = realf( value );\n\tbuf[ (2*index)+1 ] = imagf( value );\n\treturn out;\n});\n\n\n// EXPORTS //\n\nexport default Complex64Array;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isComplexLike from '@stdlib/assert/is-complex-like';\nimport realf from '@stdlib/complex/float32/real';\nimport imagf from '@stdlib/complex/float32/imag';\n\n\n// MAIN //\n\n/**\n* Returns a strided array of real and imaginary components.\n*\n* @private\n* @param {Float32Array} buf - output array\n* @param {Array} arr - array containing complex numbers\n* @returns {(Float32Array|null)} output array or null\n*/\nfunction fromArray( buf, arr ) {\n\tvar len;\n\tvar v;\n\tvar i;\n\tvar j;\n\n\tlen = arr.length;\n\tj = 0;\n\tfor ( i = 0; i < len; i++ ) {\n\t\tv = arr[ i ];\n\t\tif ( !isComplexLike( v ) ) {\n\t\t\treturn null;\n\t\t}\n\t\tbuf[ j ] = realf( v );\n\t\tbuf[ j+1 ] = imagf( v );\n\t\tj += 2; // stride\n\t}\n\treturn buf;\n}\n\n\n// EXPORTS //\n\nexport default fromArray;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isArrayLikeObject from '@stdlib/assert/is-array-like-object';\nimport isComplexLike from '@stdlib/assert/is-complex-like';\nimport format from '@stdlib/string/format';\nimport real from '@stdlib/complex/float64/real';\nimport imag from '@stdlib/complex/float64/imag';\n\n\n// MAIN //\n\n/**\n* Returns an array of iterated values.\n*\n* @private\n* @param {Object} it - iterator\n* @returns {(Array|TypeError)} array or an error\n*/\nfunction fromIterator( it ) {\n\tvar out;\n\tvar v;\n\tvar z;\n\n\tout = [];\n\twhile ( true ) {\n\t\tv = it.next();\n\t\tif ( v.done ) {\n\t\t\tbreak;\n\t\t}\n\t\tz = v.value;\n\t\tif ( isArrayLikeObject( z ) && z.length >= 2 ) {\n\t\t\tout.push( z[ 0 ], z[ 1 ] );\n\t\t} else if ( isComplexLike( z ) ) {\n\t\t\tout.push( real( z ), imag( z ) );\n\t\t} else {\n\t\t\treturn new TypeError( format( 'invalid argument. An iterator must return either a two-element array containing real and imaginary components or a complex number. Value: `%s`.', z ) );\n\t\t}\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default fromIterator;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isArrayLikeObject from '@stdlib/assert/is-array-like-object';\nimport isComplexLike from '@stdlib/assert/is-complex-like';\nimport realf from '@stdlib/complex/float32/real';\nimport imagf from '@stdlib/complex/float32/imag';\nimport format from '@stdlib/string/format';\n\n\n// MAIN //\n\n/**\n* Returns an array of iterated values.\n*\n* @private\n* @param {Object} it - iterator\n* @param {Function} clbk - callback to invoke for each iterated value\n* @param {*} thisArg - invocation context\n* @returns {(Array|TypeError)} array or an error\n*/\nfunction fromIteratorMap( it, clbk, thisArg ) {\n\tvar out;\n\tvar v;\n\tvar z;\n\tvar i;\n\n\tout = [];\n\ti = -1;\n\twhile ( true ) {\n\t\tv = it.next();\n\t\tif ( v.done ) {\n\t\t\tbreak;\n\t\t}\n\t\ti += 1;\n\t\tz = clbk.call( thisArg, v.value, i );\n\t\tif ( isArrayLikeObject( z ) && z.length >= 2 ) {\n\t\t\tout.push( z[ 0 ], z[ 1 ] );\n\t\t} else if ( isComplexLike( z ) ) {\n\t\t\tout.push( realf( z ), imagf( z ) );\n\t\t} else {\n\t\t\treturn new TypeError( format( 'invalid argument. Callback must return either a two-element array containing real and imaginary components or a complex number. Value: `%s`.', z ) );\n\t\t}\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default fromIteratorMap;\n","/* eslint-disable no-restricted-syntax, max-lines, no-invalid-this */\n\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 { isPrimitive as isNonNegativeInteger } from '@stdlib/assert/is-nonnegative-integer';\nimport isArrayLikeObject from '@stdlib/assert/is-array-like-object';\nimport isCollection from '@stdlib/assert/is-collection';\nimport isArrayBuffer from '@stdlib/assert/is-arraybuffer';\nimport isObject from '@stdlib/assert/is-object';\nimport isArray from '@stdlib/assert/is-array';\nimport { primitives as isStringArray } from '@stdlib/assert/is-string-array';\nimport isString from '@stdlib/assert/is-string';\nimport isFunction from '@stdlib/assert/is-function';\nimport isComplexLike from '@stdlib/assert/is-complex-like';\nimport isEven from '@stdlib/math/base/assert/is-even';\nimport isInteger from '@stdlib/math/base/assert/is-integer';\nimport isComplex64Array from './../../base/assert/is-complex64array';\nimport isComplex128Array from './../../base/assert/is-complex128array';\nimport hasIteratorSymbolSupport from '@stdlib/assert/has-iterator-symbol-support';\nimport ITERATOR_SYMBOL from '@stdlib/symbol/iterator';\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport setReadOnlyAccessor from '@stdlib/utils/define-nonenumerable-read-only-accessor';\nimport Float64Array from './../../float64';\nimport Complex128 from '@stdlib/complex/float64/ctor';\nimport real from '@stdlib/complex/float64/real';\nimport imag from '@stdlib/complex/float64/imag';\nimport floor from '@stdlib/math/base/special/floor';\nimport reinterpret64 from '@stdlib/strided/base/reinterpret-complex64';\nimport reinterpret128 from '@stdlib/strided/base/reinterpret-complex128';\nimport getter from './../../base/getter';\nimport accessorGetter from './../../base/accessor-getter';\nimport format from '@stdlib/string/format';\nimport fromIterator from './from_iterator.js';\nimport fromIteratorMap from './from_iterator_map.js';\nimport fromArray from './from_array.js';\n\n\n// VARIABLES //\n\nvar BYTES_PER_ELEMENT = Float64Array.BYTES_PER_ELEMENT * 2;\nvar HAS_ITERATOR_SYMBOL = hasIteratorSymbolSupport();\n\n\n// FUNCTIONS //\n\n/**\n* Returns a boolean indicating if a value is a complex typed array.\n*\n* @private\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a complex typed array\n*/\nfunction isComplexArray( value ) {\n\treturn (\n\t\tvalue instanceof Complex128Array ||\n\t\t(\n\t\t\ttypeof value === 'object' &&\n\t\t\tvalue !== null &&\n\t\t\t(\n\t\t\t\tvalue.constructor.name === 'Complex64Array' ||\n\t\t\t\tvalue.constructor.name === 'Complex128Array'\n\t\t\t) &&\n\t\t\ttypeof value._length === 'number' && // eslint-disable-line no-underscore-dangle\n\n\t\t\t// NOTE: we don't perform a more rigorous test here for a typed array for performance reasons, as robustly checking for a typed array instance could require walking the prototype tree and performing relatively expensive constructor checks...\n\t\t\ttypeof value._buffer === 'object' // eslint-disable-line no-underscore-dangle\n\t\t)\n\t);\n}\n\n/**\n* Returns a boolean indicating if a value is a complex typed array constructor.\n*\n* @private\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a complex typed array constructor\n*/\nfunction isComplexArrayConstructor( value ) {\n\treturn (\n\t\tvalue === Complex128Array ||\n\n\t\t// NOTE: weaker test in order to avoid a circular dependency with Complex64Array...\n\t\tvalue.name === 'Complex64Array'\n\t);\n}\n\n/**\n* Retrieves a complex number from a complex number array buffer.\n*\n* @private\n* @param {Float64Array} buf - array buffer\n* @param {NonNegativeInteger} idx - element index\n* @returns {Complex128} complex number\n*/\nfunction getComplex128( buf, idx ) {\n\tidx *= 2;\n\treturn new Complex128( buf[ idx ], buf[ idx+1 ] );\n}\n\n\n// MAIN //\n\n/**\n* 128-bit complex number array constructor.\n*\n* @constructor\n* @param {(NonNegativeInteger|Collection|ArrayBuffer|Iterable)} [arg] - length, typed array, array-like object, buffer, or iterable\n* @param {NonNegativeInteger} [byteOffset=0] - byte offset\n* @param {NonNegativeInteger} [length] - view length\n* @throws {RangeError} ArrayBuffer byte length must be a multiple of `16`\n* @throws {RangeError} array-like object and typed array input arguments must have a length which is a multiple of two\n* @throws {TypeError} if provided only a single argument, must provide a valid argument\n* @throws {TypeError} byte offset must be a nonnegative integer\n* @throws {RangeError} byte offset must be a multiple of `16`\n* @throws {TypeError} view length must be a positive multiple of `16`\n* @throws {RangeError} must provide sufficient memory to accommodate byte offset and view length requirements\n* @throws {TypeError} an iterator must return either a two element array containing real and imaginary components or a complex number\n* @returns {Complex128Array} complex number array\n*\n* @example\n* var arr = new Complex128Array();\n* // returns \n*\n* var len = arr.length;\n* // returns 0\n*\n* @example\n* var arr = new Complex128Array( 2 );\n* // returns \n*\n* var len = arr.length;\n* // returns 2\n*\n* @example\n* var arr = new Complex128Array( [ 1.0, -1.0 ] );\n* // returns \n*\n* var len = arr.length;\n* // returns 1\n*\n* @example\n* import ArrayBuffer from '@stdlib/array/buffer';\n*\n* var buf = new ArrayBuffer( 32 );\n* var arr = new Complex128Array( buf );\n* // returns \n*\n* var len = arr.length;\n* // returns 2\n*\n* @example\n* import ArrayBuffer from '@stdlib/array/buffer';\n*\n* var buf = new ArrayBuffer( 32 );\n* var arr = new Complex128Array( buf, 16 );\n* // returns \n*\n* var len = arr.length;\n* // returns 1\n*\n* @example\n* import ArrayBuffer from '@stdlib/array/buffer';\n*\n* var buf = new ArrayBuffer( 64 );\n* var arr = new Complex128Array( buf, 16, 2 );\n* // returns \n*\n* var len = arr.length;\n* // returns 2\n*/\nfunction Complex128Array() {\n\tvar byteOffset;\n\tvar nargs;\n\tvar buf;\n\tvar len;\n\n\tnargs = arguments.length;\n\tif ( !(this instanceof Complex128Array) ) {\n\t\tif ( nargs === 0 ) {\n\t\t\treturn new Complex128Array();\n\t\t}\n\t\tif ( nargs === 1 ) {\n\t\t\treturn new Complex128Array( arguments[0] );\n\t\t}\n\t\tif ( nargs === 2 ) {\n\t\t\treturn new Complex128Array( arguments[0], arguments[1] );\n\t\t}\n\t\treturn new Complex128Array( arguments[0], arguments[1], arguments[2] );\n\t}\n\t// Create the underlying data buffer...\n\tif ( nargs === 0 ) {\n\t\tbuf = new Float64Array( 0 ); // backward-compatibility\n\t} else if ( nargs === 1 ) {\n\t\tif ( isNonNegativeInteger( arguments[0] ) ) {\n\t\t\tbuf = new Float64Array( arguments[0]*2 );\n\t\t} else if ( isCollection( arguments[0] ) ) {\n\t\t\tbuf = arguments[ 0 ];\n\t\t\tlen = buf.length;\n\n\t\t\t// If provided a \"generic\" array, peak at the first value, and, if the value is a complex number, try to process as an array of complex numbers, falling back to \"normal\" typed array initialization if we fail and ensuring consistency if the first value had not been a complex number...\n\t\t\tif ( len && isArray( buf ) && isComplexLike( buf[0] ) ) {\n\t\t\t\tbuf = fromArray( new Float64Array( len*2 ), buf );\n\t\t\t\tif ( buf === null ) {\n\t\t\t\t\t// We failed and we are now forced to allocate a new array :-(\n\t\t\t\t\tif ( !isEven( len ) ) {\n\t\t\t\t\t\tthrow new RangeError( format( 'invalid argument. Array-like object arguments must have a length which is a multiple of two. Length: `%u`.', len ) );\n\t\t\t\t\t}\n\t\t\t\t\t// We failed, so fall back to directly setting values...\n\t\t\t\t\tbuf = new Float64Array( arguments[0] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif ( isComplex64Array( buf ) ) {\n\t\t\t\t\tbuf = reinterpret64( buf, 0 );\n\t\t\t\t} else if ( isComplex128Array( buf ) ) {\n\t\t\t\t\tbuf = reinterpret128( buf, 0 );\n\t\t\t\t} else if ( !isEven( len ) ) {\n\t\t\t\t\tthrow new RangeError( format( 'invalid argument. Array-like object and typed array arguments must have a length which is a multiple of two. Length: `%u`.', len ) );\n\t\t\t\t}\n\t\t\t\tbuf = new Float64Array( buf );\n\t\t\t}\n\t\t} else if ( isArrayBuffer( arguments[0] ) ) {\n\t\t\tbuf = arguments[ 0 ];\n\t\t\tif ( !isInteger( buf.byteLength/BYTES_PER_ELEMENT ) ) {\n\t\t\t\tthrow new RangeError( format( 'invalid argument. ArrayBuffer byte length must be a multiple of %u. Byte length: `%u`.', BYTES_PER_ELEMENT, buf.byteLength ) );\n\t\t\t}\n\t\t\tbuf = new Float64Array( buf );\n\t\t} else if ( isObject( arguments[0] ) ) {\n\t\t\tbuf = arguments[ 0 ];\n\t\t\tif ( HAS_ITERATOR_SYMBOL === false ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Environment lacks Symbol.iterator support. Must provide a length, ArrayBuffer, typed array, or array-like object. Value: `%s`.', buf ) );\n\t\t\t}\n\t\t\tif ( !isFunction( buf[ ITERATOR_SYMBOL ] ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Must provide a length, ArrayBuffer, typed array, array-like object, or an iterable. Value: `%s`.', buf ) );\n\t\t\t}\n\t\t\tbuf = buf[ ITERATOR_SYMBOL ]();\n\t\t\tif ( !isFunction( buf.next ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Must provide a length, ArrayBuffer, typed array, array-like object, or an iterable. Value: `%s`.', buf ) );\n\t\t\t}\n\t\t\tbuf = fromIterator( buf );\n\t\t\tif ( buf instanceof Error ) {\n\t\t\t\tthrow buf;\n\t\t\t}\n\t\t\tbuf = new Float64Array( buf );\n\t\t} else {\n\t\t\tthrow new TypeError( format( 'invalid argument. Must provide a length, ArrayBuffer, typed array, array-like object, or an iterable. Value: `%s`.', arguments[0] ) );\n\t\t}\n\t} else {\n\t\tbuf = arguments[ 0 ];\n\t\tif ( !isArrayBuffer( buf ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. First argument must be an ArrayBuffer. Value: `%s`.', buf ) );\n\t\t}\n\t\tbyteOffset = arguments[ 1 ];\n\t\tif ( !isNonNegativeInteger( byteOffset ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Byte offset must be a nonnegative integer. Value: `%s`.', byteOffset ) );\n\t\t}\n\t\tif ( !isInteger( byteOffset/BYTES_PER_ELEMENT ) ) {\n\t\t\tthrow new RangeError( format( 'invalid argument. Byte offset must be a multiple of %u. Value: `%u`.', BYTES_PER_ELEMENT, byteOffset ) );\n\t\t}\n\t\tif ( nargs === 2 ) {\n\t\t\tlen = buf.byteLength - byteOffset;\n\t\t\tif ( !isInteger( len/BYTES_PER_ELEMENT ) ) {\n\t\t\t\tthrow new RangeError( format( 'invalid arguments. ArrayBuffer view byte length must be a multiple of %u. View byte length: `%u`.', BYTES_PER_ELEMENT, len ) );\n\t\t\t}\n\t\t\tbuf = new Float64Array( buf, byteOffset );\n\t\t} else {\n\t\t\tlen = arguments[ 2 ];\n\t\t\tif ( !isNonNegativeInteger( len ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Length must be a nonnegative integer. Value: `%s`.', len ) );\n\t\t\t}\n\t\t\tif ( (len*BYTES_PER_ELEMENT) > (buf.byteLength-byteOffset) ) {\n\t\t\t\tthrow new RangeError( format( 'invalid arguments. ArrayBuffer has insufficient capacity. Either decrease the array length or provide a bigger buffer. Minimum capacity: `%u`.', len*BYTES_PER_ELEMENT ) );\n\t\t\t}\n\t\t\tbuf = new Float64Array( buf, byteOffset, len*2 );\n\t\t}\n\t}\n\tsetReadOnly( this, '_buffer', buf );\n\tsetReadOnly( this, '_length', buf.length/2 );\n\n\treturn this;\n}\n\n/**\n* Size (in bytes) of each array element.\n*\n* @name BYTES_PER_ELEMENT\n* @memberof Complex128Array\n* @readonly\n* @type {PositiveInteger}\n* @default 16\n*\n* @example\n* var nbytes = Complex128Array.BYTES_PER_ELEMENT;\n* // returns 16\n*/\nsetReadOnly( Complex128Array, 'BYTES_PER_ELEMENT', BYTES_PER_ELEMENT );\n\n/**\n* Constructor name.\n*\n* @name name\n* @memberof Complex128Array\n* @readonly\n* @type {string}\n* @default 'Complex128Array'\n*\n* @example\n* var name = Complex128Array.name;\n* // returns 'Complex128Array'\n*/\nsetReadOnly( Complex128Array, 'name', 'Complex128Array' );\n\n/**\n* Creates a new 128-bit complex number array from an array-like object or an iterable.\n*\n* @name from\n* @memberof Complex128Array\n* @type {Function}\n* @param {(Collection|Object)} src - array-like object or iterable\n* @param {Function} [clbk] - callback to invoke for each source element\n* @param {*} [thisArg] - context\n* @throws {TypeError} `this` context must be a constructor\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be an array-like object or an iterable\n* @throws {TypeError} second argument must be a function\n* @throws {RangeError} array-like objects must have a length which is a multiple of two\n* @throws {TypeError} an iterator must return either a two element array containing real and imaginary components or a complex number\n* @throws {TypeError} when provided an iterator, a callback must return either a two element array containing real and imaginary components or a complex number\n* @returns {Complex128Array} 128-bit complex number array\n*\n* @example\n* var arr = Complex128Array.from( [ 1.0, -1.0 ] );\n* // returns \n*\n* var len = arr.length;\n* // returns 1\n*\n* @example\n* import Complex128 from '@stdlib/complex/float64/ctor';\n*\n* var arr = Complex128Array.from( [ new Complex128( 1.0, 1.0 ) ] );\n* // returns \n*\n* var len = arr.length;\n* // returns 1\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* function clbk( v ) {\n* return new Complex128( real(v)*2.0, imag(v)*2.0 );\n* }\n*\n* var arr = Complex128Array.from( [ new Complex128( 1.0, 1.0 ) ], clbk );\n* // returns \n*\n* var len = arr.length;\n* // returns 1\n*/\nsetReadOnly( Complex128Array, 'from', function from( src ) {\n\tvar thisArg;\n\tvar nargs;\n\tvar clbk;\n\tvar out;\n\tvar buf;\n\tvar tmp;\n\tvar get;\n\tvar len;\n\tvar flg;\n\tvar v;\n\tvar i;\n\tvar j;\n\tif ( !isFunction( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` context must be a constructor.' );\n\t}\n\tif ( !isComplexArrayConstructor( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tnargs = arguments.length;\n\tif ( nargs > 1 ) {\n\t\tclbk = arguments[ 1 ];\n\t\tif ( !isFunction( clbk ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be a function. Value: `%s`.', clbk ) );\n\t\t}\n\t\tif ( nargs > 2 ) {\n\t\t\tthisArg = arguments[ 2 ];\n\t\t}\n\t}\n\tif ( isComplexArray( src ) ) {\n\t\tlen = src.length;\n\t\tif ( clbk ) {\n\t\t\tout = new this( len );\n\t\t\tbuf = out._buffer; // eslint-disable-line no-underscore-dangle\n\t\t\tj = 0;\n\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\tv = clbk.call( thisArg, src.get( i ), i );\n\t\t\t\tif ( isComplexLike( v ) ) {\n\t\t\t\t\tbuf[ j ] = real( v );\n\t\t\t\t\tbuf[ j+1 ] = imag( v );\n\t\t\t\t} else if ( isArrayLikeObject( v ) && v.length >= 2 ) {\n\t\t\t\t\tbuf[ j ] = v[ 0 ];\n\t\t\t\t\tbuf[ j+1 ] = v[ 1 ];\n\t\t\t\t} else {\n\t\t\t\t\tthrow new TypeError( format( 'invalid argument. Callback must return either a two-element array containing real and imaginary components or a complex number. Value: `%s`.', v ) );\n\t\t\t\t}\n\t\t\t\tj += 2; // stride\n\t\t\t}\n\t\t\treturn out;\n\t\t}\n\t\treturn new this( src );\n\t}\n\tif ( isCollection( src ) ) {\n\t\tif ( clbk ) {\n\t\t\t// Note: array contents affect how we iterate over a provided data source. If only complex number objects, we can extract real and imaginary components. Otherwise, for non-complex number arrays (e.g., `Float64Array`, etc), we assume a strided array where real and imaginary components are interleaved. In the former case, we expect a callback to return real and imaginary components (possibly as a complex number). In the latter case, we expect a callback to return *either* a real or imaginary component.\n\n\t\t\tlen = src.length;\n\t\t\tif ( src.get && src.set ) {\n\t\t\t\tget = accessorGetter( 'default' );\n\t\t\t} else {\n\t\t\t\tget = getter( 'default' );\n\t\t\t}\n\t\t\t// Detect whether we've been provided an array which returns complex number objects...\n\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\tif ( !isComplexLike( get( src, i ) ) ) {\n\t\t\t\t\tflg = true;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// If an array does not contain only complex number objects, then we assume interleaved real and imaginary components...\n\t\t\tif ( flg ) {\n\t\t\t\tif ( !isEven( len ) ) {\n\t\t\t\t\tthrow new RangeError( format( 'invalid argument. First argument must have a length which is a multiple of two. Length: `%u`.', len ) );\n\t\t\t\t}\n\t\t\t\tout = new this( len/2 );\n\t\t\t\tbuf = out._buffer; // eslint-disable-line no-underscore-dangle\n\t\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\t\tbuf[ i ] = clbk.call( thisArg, get( src, i ), i );\n\t\t\t\t}\n\t\t\t\treturn out;\n\t\t\t}\n\t\t\t// If an array contains only complex number objects, then we need to extract real and imaginary components...\n\t\t\tout = new this( len );\n\t\t\tbuf = out._buffer; // eslint-disable-line no-underscore-dangle\n\t\t\tj = 0;\n\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\tv = clbk.call( thisArg, get( src, i ), i );\n\t\t\t\tif ( isComplexLike( v ) ) {\n\t\t\t\t\tbuf[ j ] = real( v );\n\t\t\t\t\tbuf[ j+1 ] = imag( v );\n\t\t\t\t} else if ( isArrayLikeObject( v ) && v.length >= 2 ) {\n\t\t\t\t\tbuf[ j ] = v[ 0 ];\n\t\t\t\t\tbuf[ j+1 ] = v[ 1 ];\n\t\t\t\t} else {\n\t\t\t\t\tthrow new TypeError( format( 'invalid argument. Callback must return either a two-element array containing real and imaginary components or a complex number. Value: `%s`.', v ) );\n\t\t\t\t}\n\t\t\t\tj += 2; // stride\n\t\t\t}\n\t\t\treturn out;\n\t\t}\n\t\treturn new this( src );\n\t}\n\tif ( isObject( src ) && HAS_ITERATOR_SYMBOL && isFunction( src[ ITERATOR_SYMBOL ] ) ) { // eslint-disable-line max-len\n\t\tbuf = src[ ITERATOR_SYMBOL ]();\n\t\tif ( !isFunction( buf.next ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. First argument must be an array-like object or an iterable. Value: `%s`.', src ) );\n\t\t}\n\t\tif ( clbk ) {\n\t\t\ttmp = fromIteratorMap( buf, clbk, thisArg );\n\t\t} else {\n\t\t\ttmp = fromIterator( buf );\n\t\t}\n\t\tif ( tmp instanceof Error ) {\n\t\t\tthrow tmp;\n\t\t}\n\t\tlen = tmp.length / 2;\n\t\tout = new this( len );\n\t\tbuf = out._buffer; // eslint-disable-line no-underscore-dangle\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tbuf[ i ] = tmp[ i ];\n\t\t}\n\t\treturn out;\n\t}\n\tthrow new TypeError( format( 'invalid argument. First argument must be an array-like object or an iterable. Value: `%s`.', src ) );\n});\n\n/**\n* Creates a new 128-bit complex number array from a variable number of arguments.\n*\n* @name of\n* @memberof Complex128Array\n* @type {Function}\n* @param {...*} element - array elements\n* @throws {TypeError} `this` context must be a constructor\n* @throws {TypeError} `this` must be a complex number array\n* @returns {Complex128Array} 128-bit complex number array\n*\n* @example\n* var arr = Complex128Array.of( 1.0, 1.0, 1.0, 1.0 );\n* // returns \n*\n* var len = arr.length;\n* // returns 2\n*/\nsetReadOnly( Complex128Array, 'of', function of() {\n\tvar args;\n\tvar i;\n\tif ( !isFunction( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` context must be a constructor.' );\n\t}\n\tif ( !isComplexArrayConstructor( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\targs = [];\n\tfor ( i = 0; i < arguments.length; i++ ) {\n\t\targs.push( arguments[ i ] );\n\t}\n\treturn new this( args );\n});\n\n/**\n* Returns an array element with support for both nonnegative and negative integer indices.\n*\n* @name at\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @param {integer} idx - element index\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} must provide an integer\n* @returns {(Complex128|void)} array element\n*\n* @example\n* import real from '@stdlib/complex/float64/real';\n* import imag from '@stdlib/complex/float64/imag';\n*\n* var arr = new Complex128Array( 10 );\n*\n* var z = arr.at( 0 );\n* // returns \n*\n* var re = real( z );\n* // returns 0.0\n*\n* var im = imag( z );\n* // returns 0.0\n*\n* arr.set( [ 1.0, -1.0 ], 0 );\n* arr.set( [ 2.0, -2.0 ], 1 );\n* arr.set( [ 9.0, -9.0 ], 9 );\n*\n* z = arr.at( 0 );\n* // returns \n*\n* re = real( z );\n* // returns 1.0\n*\n* im = imag( z );\n* // returns -1.0\n*\n* z = arr.at( -1 );\n* // returns \n*\n* re = real( z );\n* // returns 9.0\n*\n* im = imag( z );\n* // returns -9.0\n*\n* z = arr.at( 100 );\n* // returns undefined\n*\n* z = arr.at( -100 );\n* // returns undefined\n*/\nsetReadOnly( Complex128Array.prototype, 'at', function at( idx ) {\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isInteger( idx ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide an integer. Value: `%s`.', idx ) );\n\t}\n\tif ( idx < 0 ) {\n\t\tidx += this._length;\n\t}\n\tif ( idx < 0 || idx >= this._length ) {\n\t\treturn;\n\t}\n\treturn getComplex128( this._buffer, idx );\n});\n\n/**\n* Pointer to the underlying data buffer.\n*\n* @name buffer\n* @memberof Complex128Array.prototype\n* @readonly\n* @type {ArrayBuffer}\n*\n* @example\n* var arr = new Complex128Array( 10 );\n*\n* var buf = arr.buffer;\n* // returns \n*/\nsetReadOnlyAccessor( Complex128Array.prototype, 'buffer', function get() {\n\treturn this._buffer.buffer;\n});\n\n/**\n* Size (in bytes) of the array.\n*\n* @name byteLength\n* @memberof Complex128Array.prototype\n* @readonly\n* @type {NonNegativeInteger}\n*\n* @example\n* var arr = new Complex128Array( 10 );\n*\n* var byteLength = arr.byteLength;\n* // returns 160\n*/\nsetReadOnlyAccessor( Complex128Array.prototype, 'byteLength', function get() {\n\treturn this._buffer.byteLength;\n});\n\n/**\n* Offset (in bytes) of the array from the start of its underlying `ArrayBuffer`.\n*\n* @name byteOffset\n* @memberof Complex128Array.prototype\n* @readonly\n* @type {NonNegativeInteger}\n*\n* @example\n* var arr = new Complex128Array( 10 );\n*\n* var byteOffset = arr.byteOffset;\n* // returns 0\n*/\nsetReadOnlyAccessor( Complex128Array.prototype, 'byteOffset', function get() {\n\treturn this._buffer.byteOffset;\n});\n\n/**\n* Size (in bytes) of each array element.\n*\n* @name BYTES_PER_ELEMENT\n* @memberof Complex128Array.prototype\n* @readonly\n* @type {PositiveInteger}\n* @default 16\n*\n* @example\n* var arr = new Complex128Array( 10 );\n*\n* var nbytes = arr.BYTES_PER_ELEMENT;\n* // returns 16\n*/\nsetReadOnly( Complex128Array.prototype, 'BYTES_PER_ELEMENT', Complex128Array.BYTES_PER_ELEMENT );\n\n/**\n* Copies a sequence of elements within the array to the position starting at `target`.\n*\n* @name copyWithin\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @param {integer} target - index at which to start copying elements\n* @param {integer} start - source index at which to copy elements from\n* @param {integer} [end] - source index at which to stop copying elements from\n* @throws {TypeError} `this` must be a complex number array\n* @returns {Complex128Array} modified array\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 arr = new Complex128Array( 4 );\n*\n* // Set the array elements:\n* arr.set( new Complex128( 1.0, 1.0 ), 0 );\n* arr.set( new Complex128( 2.0, 2.0 ), 1 );\n* arr.set( new Complex128( 3.0, 3.0 ), 2 );\n* arr.set( new Complex128( 4.0, 4.0 ), 3 );\n*\n* // Copy the first two elements to the last two elements:\n* arr.copyWithin( 2, 0, 2 );\n*\n* // Get the last array element:\n* var z = arr.get( 3 );\n*\n* var re = real( z );\n* // returns 2.0\n*\n* var im = imag( z );\n* // returns 2.0\n*/\nsetReadOnly( Complex128Array.prototype, 'copyWithin', function copyWithin( target, start ) {\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\t// FIXME: prefer a functional `copyWithin` implementation which addresses lack of universal browser support (e.g., IE11 and Safari) or ensure that typed arrays are polyfilled\n\tif ( arguments.length === 2 ) {\n\t\tthis._buffer.copyWithin( target*2, start*2 );\n\t} else {\n\t\tthis._buffer.copyWithin( target*2, start*2, arguments[2]*2 );\n\t}\n\treturn this;\n});\n\n/**\n* Returns an iterator for iterating over array key-value pairs.\n*\n* @name entries\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @throws {TypeError} `this` must be a complex number array\n* @returns {Iterator} iterator\n*\n* @example\n* import Complex128 from '@stdlib/complex/float64/ctor';\n*\n* var arr = [\n* new Complex128( 1.0, 1.0 ),\n* new Complex128( 2.0, 2.0 ),\n* new Complex128( 3.0, 3.0 )\n* ];\n* arr = new Complex128Array( arr );\n*\n* // Create an iterator:\n* var it = arr.entries();\n*\n* // Iterate over the key-value pairs...\n* var v = it.next().value;\n* // returns [ 0, ]\n*\n* v = it.next().value;\n* // returns [ 1, ]\n*\n* v = it.next().value;\n* // returns [ 2, ]\n*\n* var bool = it.next().done;\n* // returns true\n*/\nsetReadOnly( Complex128Array.prototype, 'entries', function entries() {\n\tvar buffer;\n\tvar self;\n\tvar iter;\n\tvar len;\n\tvar FLG;\n\tvar i;\n\tvar j;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tself = this;\n\tbuffer = this._buffer;\n\tlen = this._length;\n\n\t// Initialize the iteration indices:\n\ti = -1;\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\tif ( ITERATOR_SYMBOL ) {\n\t\tsetReadOnly( iter, ITERATOR_SYMBOL, 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 z;\n\t\ti += 1;\n\t\tif ( FLG || i >= len ) {\n\t\t\treturn {\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\tj += 2;\n\t\tz = new Complex128( buffer[ j ], buffer[ j+1 ] );\n\t\treturn {\n\t\t\t'value': [ i, z ],\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 self.entries();\n\t}\n});\n\n/**\n* Tests whether all elements in an array pass a test implemented by a predicate function.\n*\n* @name every\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @param {Function} predicate - test function\n* @param {*} [thisArg] - predicate function execution context\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a function\n* @returns {boolean} boolean indicating whether all elements pass a test\n*\n* @example\n* import real from '@stdlib/complex/float64/real';\n* import imag from '@stdlib/complex/float64/imag';\n*\n* function predicate( v ) {\n* return ( real( v ) === imag( v ) );\n* }\n*\n* var arr = new Complex128Array( 3 );\n*\n* arr.set( [ 1.0, 1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n* arr.set( [ 3.0, 3.0 ], 2 );\n*\n* var bool = arr.every( predicate );\n* // returns true\n*/\nsetReadOnly( Complex128Array.prototype, 'every', function every( predicate, thisArg ) {\n\tvar buf;\n\tvar i;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isFunction( predicate ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', predicate ) );\n\t}\n\tbuf = this._buffer;\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tif ( !predicate.call( thisArg, getComplex128( buf, i ), i, this ) ) {\n\t\t\treturn false;\n\t\t}\n\t}\n\treturn true;\n});\n\n/**\n* Returns a modified typed array filled with a fill value.\n*\n* @name fill\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @param {ComplexLike} value - fill value\n* @param {integer} [start=0] - starting index (inclusive)\n* @param {integer} [end] - ending index (exclusive)\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a complex number\n* @throws {TypeError} second argument must be an integer\n* @throws {TypeError} third argument must be an integer\n* @returns {Complex128Array} modified array\n*\n* @example\n* import real from '@stdlib/complex/float64/real';\n* import imag from '@stdlib/complex/float64/imag';\n*\n* var arr = new Complex128Array( 3 );\n*\n* arr.fill( new Complex128( 1.0, 1.0 ), 1 );\n*\n* var z = arr.get( 1 );\n* // returns \n*\n* var re = real( z );\n* // returns 1.0\n*\n* var im = imag( z );\n* // returns 1.0\n*\n* z = arr.get( 2 );\n* // returns \n*\n* re = real( z );\n* // returns 1.0\n*\n* im = imag( z );\n* // returns 1.0\n*/\nsetReadOnly( Complex128Array.prototype, 'fill', function fill( value, start, end ) {\n\tvar buf;\n\tvar len;\n\tvar idx;\n\tvar re;\n\tvar im;\n\tvar i;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isComplexLike( value ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a complex number. Value: `%s`.', value ) );\n\t}\n\tbuf = this._buffer;\n\tlen = this._length;\n\tif ( arguments.length > 1 ) {\n\t\tif ( !isInteger( start ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an integer. Value: `%s`.', start ) );\n\t\t}\n\t\tif ( start < 0 ) {\n\t\t\tstart += len;\n\t\t\tif ( start < 0 ) {\n\t\t\t\tstart = 0;\n\t\t\t}\n\t\t}\n\t\tif ( arguments.length > 2 ) {\n\t\t\tif ( !isInteger( end ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Third argument must be an integer. Value: `%s`.', end ) );\n\t\t\t}\n\t\t\tif ( end < 0 ) {\n\t\t\t\tend += len;\n\t\t\t\tif ( end < 0 ) {\n\t\t\t\t\tend = 0;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( end > len ) {\n\t\t\t\tend = len;\n\t\t\t}\n\t\t} else {\n\t\t\tend = len;\n\t\t}\n\t} else {\n\t\tstart = 0;\n\t\tend = len;\n\t}\n\tre = real( value );\n\tim = imag( value );\n\tfor ( i = start; i < end; i++ ) {\n\t\tidx = 2*i;\n\t\tbuf[ idx ] = re;\n\t\tbuf[ idx+1 ] = im;\n\t}\n\treturn this;\n});\n\n/**\n* Returns a new array containing the elements of an array which pass a test implemented by a predicate function.\n*\n* @name filter\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @param {Function} predicate - test function\n* @param {*} [thisArg] - predicate function execution context\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a function\n* @returns {Complex128Array} complex number array\n*\n* @example\n* import real from '@stdlib/complex/float64/real';\n* import imag from '@stdlib/complex/float64/imag';\n*\n* function predicate( v ) {\n* return ( real( v ) === imag( v ) );\n* }\n*\n* var arr = new Complex128Array( 3 );\n*\n* arr.set( [ 1.0, -1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n* arr.set( [ 3.0, -3.0 ], 2 );\n*\n* var out = arr.filter( predicate );\n* // returns \n*\n* var len = out.length;\n* // returns 1\n*\n* var z = out.get( 0 );\n* // returns \n*\n* var re = real( z );\n* // returns 2.0\n*\n* var im = imag( z );\n* // returns 2.0\n*/\nsetReadOnly( Complex128Array.prototype, 'filter', function filter( predicate, thisArg ) {\n\tvar buf;\n\tvar out;\n\tvar i;\n\tvar z;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isFunction( predicate ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', predicate ) );\n\t}\n\tbuf = this._buffer;\n\tout = [];\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tz = getComplex128( buf, i );\n\t\tif ( predicate.call( thisArg, z, i, this ) ) {\n\t\t\tout.push( z );\n\t\t}\n\t}\n\treturn new this.constructor( out );\n});\n\n/**\n* Returns the first element in an array for which a predicate function returns a truthy value.\n*\n* @name find\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @param {Function} predicate - test function\n* @param {*} [thisArg] - predicate function execution context\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a function\n* @returns {(Complex128|void)} array element or undefined\n*\n* @example\n* import real from '@stdlib/complex/float64/real';\n* import imag from '@stdlib/complex/float64/imag';\n*\n* function predicate( v ) {\n* return ( real( v ) === imag( v ) );\n* }\n*\n* var arr = new Complex128Array( 3 );\n*\n* arr.set( [ 1.0, 1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n* arr.set( [ 3.0, 3.0 ], 2 );\n*\n* var z = arr.find( predicate );\n* // returns \n*\n* var re = real( z );\n* // returns 1.0\n*\n* var im = imag( z );\n* // returns 1.0\n*/\nsetReadOnly( Complex128Array.prototype, 'find', function find( predicate, thisArg ) {\n\tvar buf;\n\tvar i;\n\tvar z;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isFunction( predicate ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', predicate ) );\n\t}\n\tbuf = this._buffer;\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tz = getComplex128( buf, i );\n\t\tif ( predicate.call( thisArg, z, i, this ) ) {\n\t\t\treturn z;\n\t\t}\n\t}\n});\n\n/**\n* Returns the index of the first element in an array for which a predicate function returns a truthy value.\n*\n* @name findIndex\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @param {Function} predicate - test function\n* @param {*} [thisArg] - predicate function execution context\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a function\n* @returns {integer} index or -1\n*\n* @example\n* import real from '@stdlib/complex/float64/real';\n* import imag from '@stdlib/complex/float64/imag';\n*\n* function predicate( v ) {\n* return ( real( v ) === imag( v ) );\n* }\n*\n* var arr = new Complex128Array( 3 );\n*\n* arr.set( [ 1.0, -1.0 ], 0 );\n* arr.set( [ 2.0, -2.0 ], 1 );\n* arr.set( [ 3.0, 3.0 ], 2 );\n*\n* var idx = arr.findIndex( predicate );\n* // returns 2\n*/\nsetReadOnly( Complex128Array.prototype, 'findIndex', function findIndex( predicate, thisArg ) {\n\tvar buf;\n\tvar i;\n\tvar z;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isFunction( predicate ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', predicate ) );\n\t}\n\tbuf = this._buffer;\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tz = getComplex128( buf, i );\n\t\tif ( predicate.call( thisArg, z, i, this ) ) {\n\t\t\treturn i;\n\t\t}\n\t}\n\treturn -1;\n});\n\n/**\n* Returns the last element in an array for which a predicate function returns a truthy value.\n*\n* @name findLast\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @param {Function} predicate - test function\n* @param {*} [thisArg] - predicate function execution context\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a function\n* @returns {(Complex128|void)} array element or undefined\n*\n* @example\n* import real from '@stdlib/complex/float64/real';\n* import imag from '@stdlib/complex/float64/imag';\n*\n* function predicate( v ) {\n* return ( real( v ) === imag( v ) );\n* }\n*\n* var arr = new Complex128Array( 3 );\n*\n* arr.set( [ 1.0, 1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n* arr.set( [ 3.0, 3.0 ], 2 );\n*\n* var z = arr.findLast( predicate );\n* // returns \n*\n* var re = real( z );\n* // returns 3.0\n*\n* var im = imag( z );\n* // returns 3.0\n*/\nsetReadOnly( Complex128Array.prototype, 'findLast', function findLast( predicate, thisArg ) {\n\tvar buf;\n\tvar i;\n\tvar z;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isFunction( predicate ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', predicate ) );\n\t}\n\tbuf = this._buffer;\n\tfor ( i = this._length-1; i >= 0; i-- ) {\n\t\tz = getComplex128( buf, i );\n\t\tif ( predicate.call( thisArg, z, i, this ) ) {\n\t\t\treturn z;\n\t\t}\n\t}\n});\n\n/**\n* Returns the index of the last element in an array for which a predicate function returns a truthy value.\n*\n* @name findLastIndex\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @param {Function} predicate - test function\n* @param {*} [thisArg] - predicate function execution context\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a function\n* @returns {integer} index or -1\n*\n* @example\n* import real from '@stdlib/complex/float64/real';\n* import imag from '@stdlib/complex/float64/imag';\n*\n* function predicate( v ) {\n* return ( real( v ) === imag( v ) );\n* }\n*\n* var arr = new Complex128Array( 3 );\n*\n* arr.set( [ 1.0, 1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n* arr.set( [ 3.0, -3.0 ], 2 );\n*\n* var idx = arr.findLastIndex( predicate );\n* // returns 1\n*/\nsetReadOnly( Complex128Array.prototype, 'findLastIndex', function findLastIndex( predicate, thisArg ) {\n\tvar buf;\n\tvar i;\n\tvar z;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isFunction( predicate ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', predicate ) );\n\t}\n\tbuf = this._buffer;\n\tfor ( i = this._length-1; i >= 0; i-- ) {\n\t\tz = getComplex128( buf, i );\n\t\tif ( predicate.call( thisArg, z, i, this ) ) {\n\t\t\treturn i;\n\t\t}\n\t}\n\treturn -1;\n});\n\n/**\n* Invokes a function once for each array element.\n*\n* @name forEach\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @param {Function} fcn - function to invoke\n* @param {*} [thisArg] - function invocation context\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a function\n*\n* @example\n* import Complex128 from '@stdlib/complex/float64/ctor';\n*\n* function log( v, i ) {\n* console.log( '%s: %s', i, v.toString() );\n* }\n*\n* var arr = new Complex128Array( 3 );\n*\n* arr.set( [ 1.0, 1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n* arr.set( [ 3.0, 3.0 ], 2 );\n*\n* arr.forEach( log );\n*/\nsetReadOnly( Complex128Array.prototype, 'forEach', function forEach( fcn, thisArg ) {\n\tvar buf;\n\tvar i;\n\tvar z;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isFunction( fcn ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', fcn ) );\n\t}\n\tbuf = this._buffer;\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tz = getComplex128( buf, i );\n\t\tfcn.call( thisArg, z, i, this );\n\t}\n});\n\n/**\n* Returns an array element.\n*\n* @name get\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @param {NonNegativeInteger} idx - element index\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} must provide a nonnegative integer\n* @returns {(Complex128|void)} array element\n*\n* @example\n* var arr = new Complex128Array( 10 );\n* import real from '@stdlib/complex/float64/real';\n* import imag from '@stdlib/complex/float64/imag';\n*\n* var z = arr.get( 0 );\n* // returns \n*\n* var re = real( z );\n* // returns 0.0\n*\n* var im = imag( z );\n* // returns 0.0\n*\n* arr.set( [ 1.0, -1.0 ], 0 );\n*\n* z = arr.get( 0 );\n* // returns \n*\n* re = real( z );\n* // returns 1.0\n*\n* im = imag( z );\n* // returns -1.0\n*\n* z = arr.get( 100 );\n* // returns undefined\n*/\nsetReadOnly( Complex128Array.prototype, 'get', function get( idx ) {\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isNonNegativeInteger( idx ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide a nonnegative integer. Value: `%s`.', idx ) );\n\t}\n\tif ( idx >= this._length ) {\n\t\treturn;\n\t}\n\treturn getComplex128( this._buffer, idx );\n});\n\n/**\n* Number of array elements.\n*\n* @name length\n* @memberof Complex128Array.prototype\n* @readonly\n* @type {NonNegativeInteger}\n*\n* @example\n* var arr = new Complex128Array( 10 );\n*\n* var len = arr.length;\n* // returns 10\n*/\nsetReadOnlyAccessor( Complex128Array.prototype, 'length', function get() {\n\treturn this._length;\n});\n\n/**\n* Returns a boolean indicating whether an array includes a provided value.\n*\n* @name includes\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @param {ComplexLike} searchElement - search element\n* @param {integer} [fromIndex=0] - starting index (inclusive)\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a complex number\n* @throws {TypeError} second argument must be an integer\n* @returns {boolean} boolean indicating whether an array includes a provided value\n*\n* @example\n* import Complex128 from '@stdlib/complex/float64/ctor';\n*\n* var arr = new Complex128Array( 5 );\n*\n* arr.set( [ 1.0, -1.0 ], 0 );\n* arr.set( [ 2.0, -2.0 ], 1 );\n* arr.set( [ 3.0, -3.0 ], 2 );\n* arr.set( [ 4.0, -4.0 ], 3 );\n* arr.set( [ 5.0, -5.0 ], 4 );\n*\n* var bool = arr.includes( new Complex128( 3.0, -3.0 ) );\n* // returns true\n*\n* bool = arr.includes( new Complex128( 3.0, -3.0 ), 3 );\n* // returns false\n*\n* bool = arr.includes( new Complex128( 4.0, -4.0 ), -3 );\n* // returns true\n*/\nsetReadOnly( Complex128Array.prototype, 'includes', function includes( searchElement, fromIndex ) {\n\tvar buf;\n\tvar idx;\n\tvar re;\n\tvar im;\n\tvar i;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isComplexLike( searchElement ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a complex number. Value: `%s`.', searchElement ) );\n\t}\n\tif ( arguments.length > 1 ) {\n\t\tif ( !isInteger( fromIndex ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an integer. Value: `%s`.', fromIndex ) );\n\t\t}\n\t\tif ( fromIndex < 0 ) {\n\t\t\tfromIndex += this._length;\n\t\t\tif ( fromIndex < 0 ) {\n\t\t\t\tfromIndex = 0;\n\t\t\t}\n\t\t}\n\t} else {\n\t\tfromIndex = 0;\n\t}\n\tre = real( searchElement );\n\tim = imag( searchElement );\n\tbuf = this._buffer;\n\tfor ( i = fromIndex; i < this._length; i++ ) {\n\t\tidx = 2 * i;\n\t\tif ( re === buf[ idx ] && im === buf[ idx+1 ] ) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n});\n\n/**\n* Returns the first index at which a given element can be found.\n*\n* @name indexOf\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @param {ComplexLike} searchElement - element to find\n* @param {integer} [fromIndex=0] - starting index (inclusive)\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a complex number\n* @throws {TypeError} second argument must be an integer\n* @returns {integer} index or -1\n*\n* @example\n* import Complex128 from '@stdlib/complex/float64/ctor';\n*\n* var arr = new Complex128Array( 5 );\n*\n* arr.set( [ 1.0, -1.0 ], 0 );\n* arr.set( [ 2.0, -2.0 ], 1 );\n* arr.set( [ 3.0, -3.0 ], 2 );\n* arr.set( [ 4.0, -4.0 ], 3 );\n* arr.set( [ 5.0, -5.0 ], 4 );\n*\n* var idx = arr.indexOf( new Complex128( 3.0, -3.0 ) );\n* // returns 2\n*\n* idx = arr.indexOf( new Complex128( 3.0, -3.0 ), 3 );\n* // returns -1\n*\n* idx = arr.indexOf( new Complex128( 4.0, -4.0 ), -3 );\n* // returns 3\n*/\nsetReadOnly( Complex128Array.prototype, 'indexOf', function indexOf( searchElement, fromIndex ) {\n\tvar buf;\n\tvar idx;\n\tvar re;\n\tvar im;\n\tvar i;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isComplexLike( searchElement ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a complex number. Value: `%s`.', searchElement ) );\n\t}\n\tif ( arguments.length > 1 ) {\n\t\tif ( !isInteger( fromIndex ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an integer. Value: `%s`.', fromIndex ) );\n\t\t}\n\t\tif ( fromIndex < 0 ) {\n\t\t\tfromIndex += this._length;\n\t\t\tif ( fromIndex < 0 ) {\n\t\t\t\tfromIndex = 0;\n\t\t\t}\n\t\t}\n\t} else {\n\t\tfromIndex = 0;\n\t}\n\tre = real( searchElement );\n\tim = imag( searchElement );\n\tbuf = this._buffer;\n\tfor ( i = fromIndex; i < this._length; i++ ) {\n\t\tidx = 2 * i;\n\t\tif ( re === buf[ idx ] && im === buf[ idx+1 ] ) {\n\t\t\treturn i;\n\t\t}\n\t}\n\treturn -1;\n});\n\n/**\n* Returns a new string by concatenating all array elements.\n*\n* @name join\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @param {string} [separator=','] - element separator\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a string\n* @returns {string} string representation\n*\n* @example\n* var arr = new Complex128Array( 2 );\n*\n* arr.set( [ 1.0, 1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n*\n* var str = arr.join();\n* // returns '1 + 1i,2 + 2i'\n*\n* str = arr.join( '/' );\n* // returns '1 + 1i/2 + 2i'\n*/\nsetReadOnly( Complex128Array.prototype, 'join', function join( separator ) {\n\tvar out;\n\tvar buf;\n\tvar sep;\n\tvar i;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( arguments.length === 0 ) {\n\t\tsep = ',';\n\t} else if ( isString( separator ) ) {\n\t\tsep = separator;\n\t} else {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a string. Value: `%s`.', separator ) );\n\t}\n\tout = [];\n\tbuf = this._buffer;\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tout.push( getComplex128( buf, i ).toString() );\n\t}\n\treturn out.join( sep );\n});\n\n/**\n* Returns an iterator for iterating over each index key in a typed array.\n*\n* @name keys\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @throws {TypeError} `this` must be a complex number array\n* @returns {Iterator} iterator\n*\n* @example\n* var arr = new Complex128Array( 2 );\n*\n* arr.set( [ 1.0, 1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n*\n* var iter = arr.keys();\n*\n* var v = iter.next().value;\n* // returns 0\n*\n* v = iter.next().value;\n* // returns 1\n*\n* var bool = iter.next().done;\n* // returns true\n*/\nsetReadOnly( Complex128Array.prototype, 'keys', function keys() {\n\tvar self;\n\tvar iter;\n\tvar len;\n\tvar FLG;\n\tvar i;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tself = this;\n\tlen = this._length;\n\n\t// Initialize an iteration index:\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\tif ( ITERATOR_SYMBOL ) {\n\t\tsetReadOnly( iter, ITERATOR_SYMBOL, 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 >= len ) {\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 self.keys();\n\t}\n});\n\n/**\n* Returns the last index at which a given element can be found.\n*\n* @name lastIndexOf\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @param {ComplexLike} searchElement - element to find\n* @param {integer} [fromIndex] - index at which to start searching backward (inclusive)\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a complex number\n* @throws {TypeError} second argument must be an integer\n* @returns {integer} index or -1\n*\n* @example\n* import Complex128 from '@stdlib/complex/float64/ctor';\n*\n* var arr = new Complex128Array( 5 );\n*\n* arr.set( [ 1.0, -1.0 ], 0 );\n* arr.set( [ 2.0, -2.0 ], 1 );\n* arr.set( [ 3.0, -3.0 ], 2 );\n* arr.set( [ 4.0, -4.0 ], 3 );\n* arr.set( [ 3.0, -3.0 ], 4 );\n*\n* var idx = arr.lastIndexOf( new Complex128( 3.0, -3.0 ) );\n* // returns 4\n*\n* idx = arr.lastIndexOf( new Complex128( 3.0, -3.0 ), 3 );\n* // returns 2\n*\n* idx = arr.lastIndexOf( new Complex128( 5.0, -5.0 ), 3 );\n* // returns -1\n*\n* idx = arr.lastIndexOf( new Complex128( 2.0, -2.0 ), -3 );\n* // returns 1\n*/\nsetReadOnly( Complex128Array.prototype, 'lastIndexOf', function lastIndexOf( searchElement, fromIndex ) {\n\tvar buf;\n\tvar idx;\n\tvar re;\n\tvar im;\n\tvar i;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isComplexLike( searchElement ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a complex number. Value: `%s`.', searchElement ) );\n\t}\n\tif ( arguments.length > 1 ) {\n\t\tif ( !isInteger( fromIndex ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an integer. Value: `%s`.', fromIndex ) );\n\t\t}\n\t\tif ( fromIndex >= this._length ) {\n\t\t\tfromIndex = this._length - 1;\n\t\t} else if ( fromIndex < 0 ) {\n\t\t\tfromIndex += this._length;\n\t\t}\n\t} else {\n\t\tfromIndex = this._length - 1;\n\t}\n\tre = real( searchElement );\n\tim = imag( searchElement );\n\tbuf = this._buffer;\n\tfor ( i = fromIndex; i >= 0; i-- ) {\n\t\tidx = 2 * i;\n\t\tif ( re === buf[ idx ] && im === buf[ idx+1 ] ) {\n\t\t\treturn i;\n\t\t}\n\t}\n\treturn -1;\n});\n\n/**\n* Returns a new array with each element being the result of a provided callback function.\n*\n* @name map\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @param {Function} fcn - callback function\n* @param {*} [thisArg] - callback function execution context\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a function\n* @returns {Complex128Array} complex number array\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* function scale( v, i ) {\n* return new Complex128( 2.0*real( v ), 2.0*imag( v ) );\n* }\n*\n* var arr = new Complex128Array( 3 );\n*\n* arr.set( [ 1.0, -1.0 ], 0 );\n* arr.set( [ 2.0, -2.0 ], 1 );\n* arr.set( [ 3.0, -3.0 ], 2 );\n*\n* var out = arr.map( scale );\n* // returns \n*\n* var z = out.get( 0 );\n* // returns \n*\n* var re = real( z );\n* // returns 2.0\n*\n* var im = imag( z );\n* // returns -2.0\n*/\nsetReadOnly( Complex128Array.prototype, 'map', function map( fcn, thisArg ) {\n\tvar outbuf;\n\tvar buf;\n\tvar out;\n\tvar i;\n\tvar v;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isFunction( fcn ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', fcn ) );\n\t}\n\tbuf = this._buffer;\n\tout = new this.constructor( this._length );\n\toutbuf = out._buffer; // eslint-disable-line no-underscore-dangle\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tv = fcn.call( thisArg, getComplex128( buf, i ), i, this );\n\t\tif ( isComplexLike( v ) ) {\n\t\t\toutbuf[ 2*i ] = real( v );\n\t\t\toutbuf[ (2*i)+1 ] = imag( v );\n\t\t} else if ( isArrayLikeObject( v ) && v.length === 2 ) {\n\t\t\toutbuf[ 2*i ] = v[ 0 ];\n\t\t\toutbuf[ (2*i)+1 ] = v[ 1 ];\n\t\t} else {\n\t\t\tthrow new TypeError( format( 'invalid argument. Callback must return either a two-element array containing real and imaginary components or a complex number. Value: `%s`.', v ) );\n\t\t}\n\t}\n\treturn out;\n});\n\n/**\n* Applies a provided callback function to each element of the array, in order, passing in the return value from the calculation on the preceding element and returning the accumulated result upon completion.\n*\n* @name reduce\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @param {Function} reducer - callback function\n* @param {*} [initialValue] - initial value\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a function\n* @throws {Error} if not provided an initial value, the array must have at least one element\n* @returns {*} accumulated result\n*\n* @example\n* import real from '@stdlib/complex/float64/real';\n* import imag from '@stdlib/complex/float64/imag';\n* import cadd from '@stdlib/complex/float64/base/add';\n*\n* var arr = new Complex128Array( 3 );\n*\n* arr.set( [ 1.0, 1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n* arr.set( [ 3.0, 3.0 ], 2 );\n*\n* var z = arr.reduce( cadd );\n* // returns \n*\n* var re = real( z );\n* // returns 6.0\n*\n* var im = imag( z );\n* // returns 6.0\n*/\nsetReadOnly( Complex128Array.prototype, 'reduce', function reduce( reducer, initialValue ) {\n\tvar buf;\n\tvar acc;\n\tvar len;\n\tvar v;\n\tvar i;\n\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isFunction( reducer ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', reducer ) );\n\t}\n\tbuf = this._buffer;\n\tlen = this._length;\n\tif ( arguments.length > 1 ) {\n\t\tacc = initialValue;\n\t\ti = 0;\n\t} else {\n\t\tif ( len === 0 ) {\n\t\t\tthrow new Error( 'invalid operation. If not provided an initial value, an array must contain at least one element.' );\n\t\t}\n\t\tacc = getComplex128( buf, 0 );\n\t\ti = 1;\n\t}\n\tfor ( ; i < len; i++ ) {\n\t\tv = getComplex128( buf, i );\n\t\tacc = reducer( acc, v, i, this );\n\t}\n\treturn acc;\n});\n\n/**\n* Applies a provided callback function to each element of the array, in reverse order, passing in the return value from the calculation on the preceding element and returning the accumulated result upon completion.\n*\n* @name reduceRight\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @param {Function} reducer - callback function\n* @param {*} [initialValue] - initial value\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a function\n* @throws {Error} if not provided an initial value, the array must have at least one element\n* @returns {*} accumulated result\n*\n* @example\n* import real from '@stdlib/complex/float64/real';\n* import imag from '@stdlib/complex/float64/imag';\n* import cadd from '@stdlib/complex/float64/base/add';\n*\n* var arr = new Complex128Array( 3 );\n*\n* arr.set( [ 1.0, 1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n* arr.set( [ 3.0, 3.0 ], 2 );\n*\n* var z = arr.reduceRight( cadd );\n* // returns \n*\n* var re = real( z );\n* // returns 6.0\n*\n* var im = imag( z );\n* // returns 6.0\n*/\nsetReadOnly( Complex128Array.prototype, 'reduceRight', function reduceRight( reducer, initialValue ) {\n\tvar buf;\n\tvar acc;\n\tvar len;\n\tvar v;\n\tvar i;\n\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isFunction( reducer ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', reducer ) );\n\t}\n\tbuf = this._buffer;\n\tlen = this._length;\n\tif ( arguments.length > 1 ) {\n\t\tacc = initialValue;\n\t\ti = len-1;\n\t} else {\n\t\tif ( len === 0 ) {\n\t\t\tthrow new Error( 'invalid operation. If not provided an initial value, an array must contain at least one element.' );\n\t\t}\n\t\tacc = getComplex128( buf, len-1 );\n\t\ti = len-2;\n\t}\n\tfor ( ; i >= 0; i-- ) {\n\t\tv = getComplex128( buf, i );\n\t\tacc = reducer( acc, v, i, this );\n\t}\n\treturn acc;\n});\n\n/**\n* Reverses an array in-place.\n*\n* @name reverse\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @throws {TypeError} `this` must be a complex number array\n* @returns {Complex128Array} reversed array\n*\n* @example\n* import real from '@stdlib/complex/float64/real';\n* import imag from '@stdlib/complex/float64/imag';\n*\n* var arr = new Complex128Array( 3 );\n*\n* arr.set( [ 1.0, 1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n* arr.set( [ 3.0, 3.0 ], 2 );\n*\n* var out = arr.reverse();\n* // returns \n*\n* var z = out.get( 0 );\n* // returns \n*\n* var re = real( z );\n* // returns 3.0\n*\n* var im = imag( z );\n* // returns 3.0\n*\n* z = out.get( 1 );\n* // returns \n*\n* re = real( z );\n* // returns 2.0\n*\n* im = imag( z );\n* // returns 2.0\n*\n* z = out.get( 2 );\n* // returns \n*\n* re = real( z );\n* // returns 1.0\n*\n* im = imag( z );\n* // returns 1.0\n*/\nsetReadOnly( Complex128Array.prototype, 'reverse', function reverse() {\n\tvar buf;\n\tvar tmp;\n\tvar len;\n\tvar N;\n\tvar i;\n\tvar j;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tlen = this._length;\n\tbuf = this._buffer;\n\tN = floor( len / 2 );\n\tfor ( i = 0; i < N; i++ ) {\n\t\tj = len - i - 1;\n\t\ttmp = buf[ (2*i) ];\n\t\tbuf[ (2*i) ] = buf[ (2*j) ];\n\t\tbuf[ (2*j) ] = tmp;\n\t\ttmp = buf[ (2*i)+1 ];\n\t\tbuf[ (2*i)+1 ] = buf[ (2*j)+1 ];\n\t\tbuf[ (2*j)+1 ] = tmp;\n\t}\n\treturn this;\n});\n\n/**\n* Sets an array element.\n*\n* ## Notes\n*\n* - When provided a typed array, real or complex, we must check whether the source array shares the same buffer as the target array and whether the underlying memory overlaps. In particular, we are concerned with the following scenario:\n*\n* ```text\n* buf: ---------------------\n* src: ---------------------\n* ```\n*\n* In the above, as we copy values from `src`, we will overwrite values in the `src` view, resulting in duplicated values copied into the end of `buf`, which is not intended. Hence, to avoid overwriting source values, we must **copy** source values to a temporary array.\n*\n* In the other overlapping scenario,\n*\n* ```text\n* buf: ---------------------\n* src: ---------------------\n* ```\n*\n* by the time we begin copying into the overlapping region, we are copying from the end of `src`, a non-overlapping region, which means we don't run the risk of copying copied values, rather than the original `src` values as intended.\n*\n* @name set\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @param {(Collection|Complex|ComplexArray)} value - value(s)\n* @param {NonNegativeInteger} [i=0] - element index at which to start writing values\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be either a complex number, an array-like object, or a complex number array\n* @throws {TypeError} index argument must be a nonnegative integer\n* @throws {RangeError} array-like objects must have a length which is a multiple of two\n* @throws {RangeError} index argument is out-of-bounds\n* @throws {RangeError} target array lacks sufficient storage to accommodate source values\n* @returns {void}\n*\n* @example\n* import real from '@stdlib/complex/float64/real';\n* import imag from '@stdlib/complex/float64/imag';\n*\n* var arr = new Complex128Array( 10 );\n*\n* var z = arr.get( 0 );\n* // returns \n*\n* var re = real( z );\n* // returns 0.0\n*\n* var im = imag( z );\n* // returns 0.0\n*\n* arr.set( [ 1.0, -1.0 ], 0 );\n*\n* z = arr.get( 0 );\n* // returns \n*\n* re = real( z );\n* // returns 1.0\n*\n* im = imag( z );\n* // returns -1.0\n*/\nsetReadOnly( Complex128Array.prototype, 'set', function set( value ) {\n\t/* eslint-disable no-underscore-dangle */\n\tvar sbuf;\n\tvar idx;\n\tvar buf;\n\tvar tmp;\n\tvar flg;\n\tvar N;\n\tvar v;\n\tvar i;\n\tvar j;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tbuf = this._buffer;\n\tif ( arguments.length > 1 ) {\n\t\tidx = arguments[ 1 ];\n\t\tif ( !isNonNegativeInteger( idx ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Index argument must be a nonnegative integer. Value: `%s`.', idx ) );\n\t\t}\n\t} else {\n\t\tidx = 0;\n\t}\n\tif ( isComplexLike( value ) ) {\n\t\tif ( idx >= this._length ) {\n\t\t\tthrow new RangeError( format( 'invalid argument. Index argument is out-of-bounds. Value: `%u`.', idx ) );\n\t\t}\n\t\tidx *= 2;\n\t\tbuf[ idx ] = real( value );\n\t\tbuf[ idx+1 ] = imag( value );\n\t\treturn;\n\t}\n\tif ( isComplexArray( value ) ) {\n\t\tN = value._length;\n\t\tif ( idx+N > this._length ) {\n\t\t\tthrow new RangeError( 'invalid arguments. Target array lacks sufficient storage to accommodate source values.' );\n\t\t}\n\t\tsbuf = value._buffer;\n\n\t\t// Check for overlapping memory...\n\t\tj = buf.byteOffset + (idx*BYTES_PER_ELEMENT);\n\t\tif (\n\t\t\tsbuf.buffer === buf.buffer &&\n\t\t\t(\n\t\t\t\tsbuf.byteOffset < j &&\n\t\t\t\tsbuf.byteOffset+sbuf.byteLength > j\n\t\t\t)\n\t\t) {\n\t\t\t// We need to copy source values...\n\t\t\ttmp = new Float64Array( sbuf.length );\n\t\t\tfor ( i = 0; i < sbuf.length; i++ ) {\n\t\t\t\ttmp[ i ] = sbuf[ i ];\n\t\t\t}\n\t\t\tsbuf = tmp;\n\t\t}\n\t\tidx *= 2;\n\t\tj = 0;\n\t\tfor ( i = 0; i < N; i++ ) {\n\t\t\tbuf[ idx ] = sbuf[ j ];\n\t\t\tbuf[ idx+1 ] = sbuf[ j+1 ];\n\t\t\tidx += 2; // stride\n\t\t\tj += 2; // stride\n\t\t}\n\t\treturn;\n\t}\n\tif ( isCollection( value ) ) {\n\t\t// Detect whether we've been provided an array of complex numbers...\n\t\tN = value.length;\n\t\tfor ( i = 0; i < N; i++ ) {\n\t\t\tif ( !isComplexLike( value[ i ] ) ) {\n\t\t\t\tflg = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\t// If an array does not contain only complex numbers, then we assume interleaved real and imaginary components...\n\t\tif ( flg ) {\n\t\t\tif ( !isEven( N ) ) {\n\t\t\t\tthrow new RangeError( format( 'invalid argument. Array-like object arguments must have a length which is a multiple of two. Length: `%u`.', N ) );\n\t\t\t}\n\t\t\tif ( idx+(N/2) > this._length ) {\n\t\t\t\tthrow new RangeError( 'invalid arguments. Target array lacks sufficient storage to accommodate source values.' );\n\t\t\t}\n\t\t\tsbuf = value;\n\n\t\t\t// Check for overlapping memory...\n\t\t\tj = buf.byteOffset + (idx*BYTES_PER_ELEMENT);\n\t\t\tif (\n\t\t\t\tsbuf.buffer === buf.buffer &&\n\t\t\t\t(\n\t\t\t\t\tsbuf.byteOffset < j &&\n\t\t\t\t\tsbuf.byteOffset+sbuf.byteLength > j\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\t// We need to copy source values...\n\t\t\t\ttmp = new Float64Array( N );\n\t\t\t\tfor ( i = 0; i < N; i++ ) {\n\t\t\t\t\ttmp[ i ] = sbuf[ i ];\n\t\t\t\t}\n\t\t\t\tsbuf = tmp;\n\t\t\t}\n\t\t\tidx *= 2;\n\t\t\tN /= 2;\n\t\t\tj = 0;\n\t\t\tfor ( i = 0; i < N; i++ ) {\n\t\t\t\tbuf[ idx ] = sbuf[ j ];\n\t\t\t\tbuf[ idx+1 ] = sbuf[ j+1 ];\n\t\t\t\tidx += 2; // stride\n\t\t\t\tj += 2; // stride\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\t// If an array contains only complex numbers, then we need to extract real and imaginary components...\n\t\tif ( idx+N > this._length ) {\n\t\t\tthrow new RangeError( 'invalid arguments. Target array lacks sufficient storage to accommodate source values.' );\n\t\t}\n\t\tidx *= 2;\n\t\tfor ( i = 0; i < N; i++ ) {\n\t\t\tv = value[ i ];\n\t\t\tbuf[ idx ] = real( v );\n\t\t\tbuf[ idx+1 ] = imag( v );\n\t\t\tidx += 2; // stride\n\t\t}\n\t\treturn;\n\t}\n\tthrow new TypeError( format( 'invalid argument. First argument must be either a complex number, an array-like object, or a complex number array. Value: `%s`.', value ) );\n\n\t/* eslint-enable no-underscore-dangle */\n});\n\n/**\n* Copies a portion of a typed array to a new typed array.\n*\n* @name slice\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @param {integer} [start=0] - starting index (inclusive)\n* @param {integer} [end] - ending index (exclusive)\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be an integer\n* @throws {TypeError} second argument must be an integer\n* @returns {Complex128Array} complex number array\n*\n* @example\n* import real from '@stdlib/complex/float64/real';\n* import imag from '@stdlib/complex/float64/imag';\n*\n* var arr = new Complex128Array( 5 );\n*\n* arr.set( [ 1.0, -1.0 ], 0 );\n* arr.set( [ 2.0, -2.0 ], 1 );\n* arr.set( [ 3.0, -3.0 ], 2 );\n* arr.set( [ 4.0, -4.0 ], 3 );\n* arr.set( [ 5.0, -5.0 ], 4 );\n*\n* var out = arr.slice();\n* // returns \n*\n* var len = out.length;\n* // returns 5\n*\n* var z = out.get( 0 );\n* // returns \n*\n* var re = real( z );\n* // returns 1.0\n*\n* var im = imag( z );\n* // returns -1.0\n*\n* z = out.get( len-1 );\n* // returns \n*\n* re = real( z );\n* // returns 5.0\n*\n* im = imag( z );\n* // returns -5.0\n*\n* out = arr.slice( 1, -2 );\n* // returns \n*\n* len = out.length;\n* // returns 2\n*\n* z = out.get( 0 );\n* // returns \n*\n* re = real( z );\n* // returns 2.0\n*\n* im = imag( z );\n* // returns -2.0\n*\n* z = out.get( len-1 );\n* // returns \n*\n* re = real( z );\n* // returns 3.0\n*\n* im = imag( z );\n* // returns -3.0\n*/\nsetReadOnly( Complex128Array.prototype, 'slice', function slice( start, end ) {\n\tvar outlen;\n\tvar outbuf;\n\tvar out;\n\tvar idx;\n\tvar buf;\n\tvar len;\n\tvar i;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tbuf = this._buffer;\n\tlen = this._length;\n\tif ( arguments.length === 0 ) {\n\t\tstart = 0;\n\t\tend = len;\n\t} else {\n\t\tif ( !isInteger( start ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. First argument must be an integer. Value: `%s`.', start ) );\n\t\t}\n\t\tif ( start < 0 ) {\n\t\t\tstart += len;\n\t\t\tif ( start < 0 ) {\n\t\t\t\tstart = 0;\n\t\t\t}\n\t\t}\n\t\tif ( arguments.length === 1 ) {\n\t\t\tend = len;\n\t\t} else {\n\t\t\tif ( !isInteger( end ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an integer. Value: `%s`.', end ) );\n\t\t\t}\n\t\t\tif ( end < 0 ) {\n\t\t\t\tend += len;\n\t\t\t\tif ( end < 0 ) {\n\t\t\t\t\tend = 0;\n\t\t\t\t}\n\t\t\t} else if ( end > len ) {\n\t\t\t\tend = len;\n\t\t\t}\n\t\t}\n\t}\n\tif ( start < end ) {\n\t\toutlen = end - start;\n\t} else {\n\t\toutlen = 0;\n\t}\n\tout = new this.constructor( outlen );\n\toutbuf = out._buffer; // eslint-disable-line no-underscore-dangle\n\tfor ( i = 0; i < outlen; i++ ) {\n\t\tidx = 2*(i+start);\n\t\toutbuf[ 2*i ] = buf[ idx ];\n\t\toutbuf[ (2*i)+1 ] = buf[ idx+1 ];\n\t}\n\treturn out;\n});\n\n/**\n* Tests whether at least one element in an array passes a test implemented by a predicate function.\n*\n* @name some\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @param {Function} predicate - test function\n* @param {*} [thisArg] - predicate function execution context\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a function\n* @returns {boolean} boolean indicating whether at least one element passes a test\n*\n* @example\n* import real from '@stdlib/complex/float64/real';\n* import imag from '@stdlib/complex/float64/imag';\n*\n* function predicate( v ) {\n* return ( real( v ) === imag( v ) );\n* }\n*\n* var arr = new Complex128Array( 3 );\n*\n* arr.set( [ 1.0, -1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n* arr.set( [ 3.0, -3.0 ], 2 );\n*\n* var bool = arr.some( predicate );\n* // returns true\n*/\nsetReadOnly( Complex128Array.prototype, 'some', function some( predicate, thisArg ) {\n\tvar buf;\n\tvar i;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isFunction( predicate ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', predicate ) );\n\t}\n\tbuf = this._buffer;\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tif ( predicate.call( thisArg, getComplex128( buf, i ), i, this ) ) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n});\n\n/**\n* Sorts an array in-place.\n*\n* @name sort\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @param {Function} compareFcn - comparison function\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a function\n* @returns {Complex128Array} sorted array\n*\n* @example\n* import real from '@stdlib/complex/float64/real';\n* import imag from '@stdlib/complex/float64/imag';\n*\n* function compare( a, b ) {\n* var re1;\n* var re2;\n* var im1;\n* var im2;\n* re1 = real( a );\n* re2 = real( b );\n* if ( re1 < re2 ) {\n* return -1;\n* }\n* if ( re1 > re2 ) {\n* return 1;\n* }\n* im1 = imag( a );\n* im2 = imag( b );\n* if ( im1 < im2 ) {\n* return -1;\n* }\n* if ( im1 > im2 ) {\n* return 1;\n* }\n* return 0;\n* }\n*\n* var arr = new Complex128Array( 3 );\n*\n* arr.set( [ 3.0, -3.0 ], 0 );\n* arr.set( [ 1.0, -1.0 ], 1 );\n* arr.set( [ 2.0, -2.0 ], 2 );\n*\n* var out = arr.sort( compare );\n* // returns \n*\n* var z = out.get( 0 );\n* // returns \n*\n* var re = real( z );\n* // returns 1.0\n*\n* var im = imag( z );\n* // returns -1.0\n*\n* z = out.get( 1 );\n* // returns \n*\n* re = real( z );\n* // returns 2.0\n*\n* im = imag( z );\n* // returns -2.0\n*\n* z = out.get( 2 );\n* // returns \n*\n* re = real( z );\n* // returns 3.0\n*\n* im = imag( z );\n* // returns -3.0\n*/\nsetReadOnly( Complex128Array.prototype, 'sort', function sort( compareFcn ) {\n\tvar tmp;\n\tvar buf;\n\tvar len;\n\tvar i;\n\tvar j;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isFunction( compareFcn ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', compareFcn ) );\n\t}\n\tbuf = this._buffer;\n\tlen = this._length;\n\ttmp = [];\n\tfor ( i = 0; i < len; i++ ) {\n\t\ttmp.push( getComplex128( buf, i ) );\n\t}\n\ttmp.sort( compareFcn );\n\tfor ( i = 0; i < len; i++ ) {\n\t\tj = 2 * i;\n\t\tbuf[ j ] = real( tmp[i] );\n\t\tbuf[ j+1 ] = imag( tmp[i] );\n\t}\n\treturn this;\n});\n\n/**\n* Creates a new typed array view over the same underlying `ArrayBuffer` and with the same underlying data type as the host array.\n*\n* @name subarray\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @param {integer} [begin=0] - starting index (inclusive)\n* @param {integer} [end] - ending index (exclusive)\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be an integer\n* @throws {TypeError} second argument must be an integer\n* @returns {Complex64Array} subarray\n*\n* @example\n* import real from '@stdlib/complex/float64/real';\n* import imag from '@stdlib/complex/float64/imag';\n*\n* var arr = new Complex128Array( 5 );\n*\n* arr.set( [ 1.0, -1.0 ], 0 );\n* arr.set( [ 2.0, -2.0 ], 1 );\n* arr.set( [ 3.0, -3.0 ], 2 );\n* arr.set( [ 4.0, -4.0 ], 3 );\n* arr.set( [ 5.0, -5.0 ], 4 );\n*\n* var subarr = arr.subarray();\n* // returns \n*\n* var len = subarr.length;\n* // returns 5\n*\n* var z = subarr.get( 0 );\n* // returns \n*\n* var re = real( z );\n* // returns 1.0\n*\n* var im = imag( z );\n* // returns -1.0\n*\n* z = subarr.get( len-1 );\n* // returns \n*\n* re = real( z );\n* // returns 5.0\n*\n* im = imag( z );\n* // returns -5.0\n*\n* subarr = arr.subarray( 1, -2 );\n* // returns \n*\n* len = subarr.length;\n* // returns 2\n*\n* z = subarr.get( 0 );\n* // returns \n*\n* re = real( z );\n* // returns 2.0\n*\n* im = imag( z );\n* // returns -2.0\n*\n* z = subarr.get( len-1 );\n* // returns \n*\n* re = real( z );\n* // returns 3.0\n*\n* im = imag( z );\n* // returns -3.0\n*/\nsetReadOnly( Complex128Array.prototype, 'subarray', function subarray( begin, end ) {\n\tvar offset;\n\tvar buf;\n\tvar len;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tbuf = this._buffer;\n\tlen = this._length;\n\tif ( arguments.length === 0 ) {\n\t\tbegin = 0;\n\t\tend = len;\n\t} else {\n\t\tif ( !isInteger( begin ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. First argument must be an integer. Value: `%s`.', begin ) );\n\t\t}\n\t\tif ( begin < 0 ) {\n\t\t\tbegin += len;\n\t\t\tif ( begin < 0 ) {\n\t\t\t\tbegin = 0;\n\t\t\t}\n\t\t}\n\t\tif ( arguments.length === 1 ) {\n\t\t\tend = len;\n\t\t} else {\n\t\t\tif ( !isInteger( end ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an integer. Value: `%s`.', end ) );\n\t\t\t}\n\t\t\tif ( end < 0 ) {\n\t\t\t\tend += len;\n\t\t\t\tif ( end < 0 ) {\n\t\t\t\t\tend = 0;\n\t\t\t\t}\n\t\t\t} else if ( end > len ) {\n\t\t\t\tend = len;\n\t\t\t}\n\t\t}\n\t}\n\tif ( begin >= len ) {\n\t\tlen = 0;\n\t\toffset = buf.byteLength;\n\t} else if ( begin >= end ) {\n\t\tlen = 0;\n\t\toffset = buf.byteOffset + ( begin*BYTES_PER_ELEMENT );\n\t} else {\n\t\tlen = end - begin;\n\t\toffset = buf.byteOffset + ( begin*BYTES_PER_ELEMENT );\n\t}\n\treturn new this.constructor( buf.buffer, offset, ( len < 0 ) ? 0 : len );\n});\n\n/**\n* Serializes an array as a locale-specific string.\n*\n* @name toLocaleString\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @param {(string|Array)} [locales] - locale identifier(s)\n* @param {Object} [options] - configuration options\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a string or an array of strings\n* @throws {TypeError} options argument must be an object\n* @returns {string} string representation\n*\n* @example\n* var arr = new Complex128Array( 2 );\n*\n* arr.set( [ 1.0, 1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n*\n* var str = arr.toLocaleString();\n* // returns '1 + 1i,2 + 2i'\n*/\nsetReadOnly( Complex128Array.prototype, 'toLocaleString', function toLocaleString( locales, options ) {\n\tvar opts;\n\tvar loc;\n\tvar out;\n\tvar buf;\n\tvar i;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( arguments.length === 0 ) {\n\t\tloc = [];\n\t} else if ( isString( locales ) || isStringArray( locales ) ) {\n\t\tloc = locales;\n\t} else {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a string or an array of strings. Value: `%s`.', locales ) );\n\t}\n\tif ( arguments.length < 2 ) {\n\t\topts = {};\n\t} else if ( isObject( options ) ) {\n\t\topts = options;\n\t} else {\n\t\tthrow new TypeError( format( 'invalid argument. Options argument must be an object. Value: `%s`.', options ) );\n\t}\n\tbuf = this._buffer;\n\tout = [];\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tout.push( getComplex128( buf, i ).toLocaleString( loc, opts ) );\n\t}\n\treturn out.join( ',' );\n});\n\n/**\n* Returns a new typed array containing the elements in reversed order.\n*\n* @name toReversed\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @throws {TypeError} `this` must be a complex number array\n* @returns {Complex128Array} reversed array\n*\n* @example\n* import real from '@stdlib/complex/float64/real';\n* import imag from '@stdlib/complex/float64/imag';\n*\n* var arr = new Complex128Array( 3 );\n*\n* arr.set( [ 1.0, 1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n* arr.set( [ 3.0, 3.0 ], 2 );\n*\n* var out = arr.toReversed();\n* // returns \n*\n* var z = out.get( 0 );\n* // returns \n*\n* var re = real( z );\n* // returns 3.0\n*\n* var im = imag( z );\n* // returns 3.0\n*\n* z = out.get( 1 );\n* // returns \n*\n* re = real( z );\n* // returns 2.0\n*\n* im = imag( z );\n* // returns 2.0\n*\n* z = out.get( 2 );\n* // returns \n*\n* re = real( z );\n* // returns 1.0\n*\n* im = imag( z );\n* // returns 1.0\n*/\nsetReadOnly( Complex128Array.prototype, 'toReversed', function toReversed() {\n\tvar outbuf;\n\tvar out;\n\tvar len;\n\tvar buf;\n\tvar i;\n\tvar j;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tlen = this._length;\n\tout = new this.constructor( len );\n\tbuf = this._buffer;\n\toutbuf = out._buffer; // eslint-disable-line no-underscore-dangle\n\tfor ( i = 0; i < len; i++ ) {\n\t\tj = len - i - 1;\n\t\toutbuf[ (2*i) ] = buf[ (2*j) ];\n\t\toutbuf[ (2*i)+1 ] = buf[ (2*j)+1 ];\n\t}\n\treturn out;\n});\n\n/**\n* Returns a new typed array containing the elements in sorted order.\n*\n* @name toSorted\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @param {Function} compareFcn - comparison function\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a function\n* @returns {Complex128Array} sorted array\n*\n* @example\n* import real from '@stdlib/complex/float64/real';\n* import imag from '@stdlib/complex/float64/imag';\n*\n* function compare( a, b ) {\n* var re1;\n* var re2;\n* var im1;\n* var im2;\n* re1 = real( a );\n* re2 = real( b );\n* if ( re1 < re2 ) {\n* return -1;\n* }\n* if ( re1 > re2 ) {\n* return 1;\n* }\n* im1 = imag( a );\n* im2 = imag( b );\n* if ( im1 < im2 ) {\n* return -1;\n* }\n* if ( im1 > im2 ) {\n* return 1;\n* }\n* return 0;\n* }\n*\n* var arr = new Complex128Array( 3 );\n*\n* arr.set( [ 3.0, -3.0 ], 0 );\n* arr.set( [ 1.0, -1.0 ], 1 );\n* arr.set( [ 2.0, -2.0 ], 2 );\n*\n* var out = arr.sort( compare );\n* // returns \n*\n* var z = out.get( 0 );\n* // returns \n*\n* var re = real( z );\n* // returns 1.0\n*\n* var im = imag( z );\n* // returns -1.0\n*\n* z = out.get( 1 );\n* // returns \n*\n* re = real( z );\n* // returns 2.0\n*\n* im = imag( z );\n* // returns -2.0\n*\n* z = out.get( 2 );\n* // returns \n*\n* re = real( z );\n* // returns 3.0\n*\n* im = imag( z );\n* // returns -3.0\n*/\nsetReadOnly( Complex128Array.prototype, 'toSorted', function toSorted( compareFcn ) {\n\tvar tmp;\n\tvar buf;\n\tvar len;\n\tvar i;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isFunction( compareFcn ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', compareFcn ) );\n\t}\n\tbuf = this._buffer;\n\tlen = this._length;\n\ttmp = [];\n\tfor ( i = 0; i < len; i++ ) {\n\t\ttmp.push( getComplex128( buf, i ) );\n\t}\n\ttmp.sort( compareFcn );\n\treturn new Complex128Array( tmp );\n});\n\n/**\n* Serializes an array as a string.\n*\n* @name toString\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @throws {TypeError} `this` must be a complex number array\n* @returns {string} string representation\n*\n* @example\n* var arr = new Complex128Array( 2 );\n*\n* arr.set( [ 1.0, 1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n*\n* var str = arr.toString();\n* // returns '1 + 1i,2 + 2i'\n*/\nsetReadOnly( Complex128Array.prototype, 'toString', function toString() {\n\tvar out;\n\tvar buf;\n\tvar i;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tout = [];\n\tbuf = this._buffer;\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tout.push( getComplex128( buf, i ).toString() );\n\t}\n\treturn out.join( ',' );\n});\n\n/**\n* Returns an iterator for iterating over each value in a typed array.\n*\n* @name values\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @throws {TypeError} `this` must be a complex number array\n* @returns {Iterator} iterator\n*\n* @example\n* import real from '@stdlib/complex/float64/real';\n* import imag from '@stdlib/complex/float64/imag';\n* var arr = new Complex128Array( 2 );\n*\n* arr.set( [ 1.0, -1.0 ], 0 );\n* arr.set( [ 2.0, -2.0 ], 1 );\n*\n* var iter = arr.values();\n*\n* var v = iter.next().value;\n* // returns \n*\n* var re = real( v );\n* // returns 1.0\n*\n* var im = imag( v );\n* // returns -1.0\n*\n* v = iter.next().value;\n* // returns \n*\n* re = real( v );\n* // returns 2.0\n*\n* im = imag( v );\n* // returns -2.0\n*\n* var bool = iter.next().done;\n* // returns true\n*/\nsetReadOnly( Complex128Array.prototype, 'values', function values() {\n\tvar iter;\n\tvar self;\n\tvar len;\n\tvar FLG;\n\tvar buf;\n\tvar i;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tself = this;\n\tbuf = this._buffer;\n\tlen = this._length;\n\n\t// Initialize an iteration index:\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\tif ( ITERATOR_SYMBOL ) {\n\t\tsetReadOnly( iter, ITERATOR_SYMBOL, 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 >= len ) {\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': getComplex128( buf, 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 self.values();\n\t}\n});\n\n/**\n* Returns a new typed array with the element at a provided index replaced with a provided value.\n*\n* @name with\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @param {integer} index - element index\n* @param {ComplexLike} value - new value\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be an integer\n* @throws {RangeError} index argument is out-of-bounds\n* @throws {TypeError} second argument must be a complex number\n* @returns {Complex128Array} new typed array\n*\n* @example\n* import real from '@stdlib/complex/float64/real';\n* import imag from '@stdlib/complex/float64/imag';\n* import Complex128 from '@stdlib/complex/float64/ctor';\n*\n* var arr = new Complex128Array( 3 );\n*\n* arr.set( [ 1.0, 1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n* arr.set( [ 3.0, 3.0 ], 2 );\n*\n* var out = arr.with( 0, new Complex128( 4.0, 4.0 ) );\n* // returns \n*\n* var z = out.get( 0 );\n* // returns \n*\n* var re = real( z );\n* // returns 4.0\n*\n* var im = imag( z );\n* // returns 4.0\n*/\nsetReadOnly( Complex128Array.prototype, 'with', function copyWith( index, value ) {\n\tvar buf;\n\tvar out;\n\tvar len;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isInteger( index ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an integer. Value: `%s`.', index ) );\n\t}\n\tlen = this._length;\n\tif ( index < 0 ) {\n\t\tindex += len;\n\t}\n\tif ( index < 0 || index >= len ) {\n\t\tthrow new RangeError( format( 'invalid argument. Index argument is out-of-bounds. Value: `%s`.', index ) );\n\t}\n\tif ( !isComplexLike( value ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be a complex number. Value: `%s`.', value ) );\n\t}\n\tout = new this.constructor( this._buffer );\n\tbuf = out._buffer; // eslint-disable-line no-underscore-dangle\n\tbuf[ 2*index ] = real( value );\n\tbuf[ (2*index)+1 ] = imag( value );\n\treturn out;\n});\n\n\n// EXPORTS //\n\nexport default Complex128Array;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isComplexLike from '@stdlib/assert/is-complex-like';\nimport real from '@stdlib/complex/float64/real';\nimport imag from '@stdlib/complex/float64/imag';\n\n\n// MAIN //\n\n/**\n* Returns a strided array of real and imaginary components.\n*\n* @private\n* @param {Float64Array} buf - output array\n* @param {Array} arr - array containing complex numbers\n* @returns {(Float64Array|null)} output array or null\n*/\nfunction fromArray( buf, arr ) {\n\tvar len;\n\tvar v;\n\tvar i;\n\tvar j;\n\n\tlen = arr.length;\n\tj = 0;\n\tfor ( i = 0; i < len; i++ ) {\n\t\tv = arr[ i ];\n\t\tif ( !isComplexLike( v ) ) {\n\t\t\treturn null;\n\t\t}\n\t\tbuf[ j ] = real( v );\n\t\tbuf[ j+1 ] = imag( v );\n\t\tj += 2; // stride\n\t}\n\treturn buf;\n}\n\n\n// EXPORTS //\n\nexport default fromArray;\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 Boolean from '@stdlib/boolean/ctor';\n\n\n// MAIN //\n\n/**\n* Returns an array of iterated values.\n*\n* @private\n* @param {Object} it - iterator\n* @returns {Array} output array\n*/\nfunction fromIterator( it ) {\n\tvar out;\n\tvar v;\n\n\tout = [];\n\twhile ( true ) {\n\t\tv = it.next();\n\t\tif ( v.done ) {\n\t\t\tbreak;\n\t\t}\n\t\tout.push( Boolean( v.value ) );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default fromIterator;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isArrayLikeObject from '@stdlib/assert/is-array-like-object';\nimport isComplexLike from '@stdlib/assert/is-complex-like';\nimport format from '@stdlib/string/format';\nimport real from '@stdlib/complex/float64/real';\nimport imag from '@stdlib/complex/float64/imag';\n\n\n// MAIN //\n\n/**\n* Returns an array of iterated values.\n*\n* @private\n* @param {Object} it - iterator\n* @param {Function} clbk - callback to invoke for each iterated value\n* @param {*} thisArg - invocation context\n* @returns {(Array|TypeError)} array or an error\n*/\nfunction fromIteratorMap( it, clbk, thisArg ) {\n\tvar out;\n\tvar v;\n\tvar z;\n\tvar i;\n\n\tout = [];\n\ti = -1;\n\twhile ( true ) {\n\t\tv = it.next();\n\t\tif ( v.done ) {\n\t\t\tbreak;\n\t\t}\n\t\ti += 1;\n\t\tz = clbk.call( thisArg, v.value, i );\n\t\tif ( isArrayLikeObject( z ) && z.length >= 2 ) {\n\t\t\tout.push( z[ 0 ], z[ 1 ] );\n\t\t} else if ( isComplexLike( z ) ) {\n\t\t\tout.push( real( z ), imag( z ) );\n\t\t} else {\n\t\t\treturn new TypeError( format( 'invalid argument. Callback must return either a two-element array containing real and imaginary components or a complex number. Value: `%s`.', z ) );\n\t\t}\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default fromIteratorMap;\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/* eslint-disable no-restricted-syntax, no-invalid-this */\n\n'use strict';\n\n// MODULES //\n\nimport { isPrimitive as isNonNegativeInteger } from '@stdlib/assert/is-nonnegative-integer';\nimport isCollection from '@stdlib/assert/is-collection';\nimport isArrayBuffer from '@stdlib/assert/is-arraybuffer';\nimport isObject from '@stdlib/assert/is-object';\nimport isFunction from '@stdlib/assert/is-function';\nimport { isPrimitive as isBoolean } from '@stdlib/assert/is-boolean';\nimport { isPrimitive as isInteger } from '@stdlib/assert/is-integer';\nimport { isPrimitive as isString } from '@stdlib/assert/is-string';\nimport { primitives as isStringArray } from '@stdlib/assert/is-string-array';\nimport hasIteratorSymbolSupport from '@stdlib/assert/has-iterator-symbol-support';\nimport ITERATOR_SYMBOL from '@stdlib/symbol/iterator';\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport setReadOnlyAccessor from '@stdlib/utils/define-nonenumerable-read-only-accessor';\nimport Uint8Array from './../../uint8';\nimport Boolean from '@stdlib/boolean/ctor';\nimport getter from './../../base/getter';\nimport floor from '@stdlib/math/base/special/floor';\nimport accessorGetter from './../../base/accessor-getter';\nimport format from '@stdlib/string/format';\nimport fromIterator from './from_iterator.js';\nimport fromIteratorMap from './from_iterator_map.js';\nimport fromArray from './from_array.js';\n\n\n// VARIABLES //\n\nvar BYTES_PER_ELEMENT = Uint8Array.BYTES_PER_ELEMENT;\nvar HAS_ITERATOR_SYMBOL = hasIteratorSymbolSupport();\n\n\n// FUNCTIONS //\n\n/**\n* Returns a boolean indicating if a value is a `BooleanArray`.\n*\n* @private\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a `BooleanArray`\n*/\nfunction isBooleanArray( value ) {\n\treturn (\n\t\ttypeof value === 'object' &&\n\t\tvalue !== null &&\n\t\tvalue.constructor.name === 'BooleanArray' &&\n\t\tvalue.BYTES_PER_ELEMENT === BYTES_PER_ELEMENT\n\t);\n}\n\n/**\n* Returns a boolean indicating if a value is a boolean typed array constructor.\n*\n* @private\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a boolean typed array constructor\n*/\nfunction isBooleanArrayConstructor( value ) {\n\treturn ( value === BooleanArray);\n}\n\n\n// MAIN //\n\n/**\n* Boolean array constructor.\n*\n* @constructor\n* @param {(NonNegativeInteger|Collection|ArrayBuffer|Iterable)} [arg] - length, typed array, array-like object, buffer, or an iterable\n* @param {NonNegativeInteger} [byteOffset=0] - byte offset\n* @param {NonNegativeInteger} [length] - view length\n* @throws {TypeError} if provided only a single argument, must provide a valid argument\n* @throws {TypeError} byte offset must be a nonnegative integer\n* @throws {RangeError} must provide sufficient memory to accommodate byte offset and view length requirements\n* @returns {BooleanArray} boolean array\n*\n* @example\n* var arr = new BooleanArray();\n* // returns \n*\n* var len = arr.length;\n* // returns 0\n*\n* @example\n* var arr = new BooleanArray( 2 );\n* // returns \n*\n* var len = arr.length;\n* // returns 2\n*\n* @example\n* var arr = new BooleanArray( [ true, false ] );\n* // returns \n*\n* var len = arr.length;\n* // returns 2\n*\n* @example\n* import ArrayBuffer from '@stdlib/array/buffer';\n*\n* var buf = new ArrayBuffer( 16 );\n* var arr = new BooleanArray( buf );\n* // returns \n*\n* var len = arr.length;\n* // returns 16\n*\n* @example\n* import ArrayBuffer from '@stdlib/array/buffer';\n*\n* var buf = new ArrayBuffer( 16 );\n* var arr = new BooleanArray( buf, 8 );\n* // returns \n*\n* var len = arr.length;\n* // returns 8\n*\n* @example\n* import ArrayBuffer from '@stdlib/array/buffer';\n*\n* var buf = new ArrayBuffer( 32 );\n* var arr = new BooleanArray( buf, 8, 2 );\n* // returns \n*\n* var len = arr.length;\n* // returns 2\n*/\nfunction BooleanArray() {\n\tvar byteOffset;\n\tvar nargs;\n\tvar buf;\n\tvar len;\n\tvar arg;\n\n\tnargs = arguments.length;\n\tif ( !(this instanceof BooleanArray) ) {\n\t\tif ( nargs === 0 ) {\n\t\t\treturn new BooleanArray();\n\t\t}\n\t\tif ( nargs === 1 ) {\n\t\t\treturn new BooleanArray( arguments[0] );\n\t\t}\n\t\tif ( nargs === 2 ) {\n\t\t\treturn new BooleanArray( arguments[0], arguments[1] );\n\t\t}\n\t\treturn new BooleanArray( arguments[0], arguments[1], arguments[2] );\n\t}\n\t// Create the underlying data buffer...\n\tif ( nargs === 0 ) {\n\t\tbuf = new Uint8Array( 0 ); // backward-compatibility\n\t} else if ( nargs === 1 ) {\n\t\targ = arguments[ 0 ];\n\t\tif ( isNonNegativeInteger( arg ) ) {\n\t\t\tbuf = new Uint8Array( arg );\n\t\t} else if ( isCollection( arg ) ) {\n\t\t\tbuf = fromArray( new Uint8Array( arg.length ), arg );\n\t\t} else if ( isArrayBuffer( arg ) ) {\n\t\t\tbuf = new Uint8Array( arg );\n\t\t} else if ( isObject( arg ) ) {\n\t\t\tif ( HAS_ITERATOR_SYMBOL === false ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Environment lacks Symbol.iterator support. Must provide a length, ArrayBuffer, typed array, or array-like object. Value: `%s`.', arg ) );\n\t\t\t}\n\t\t\tif ( !isFunction( arg[ ITERATOR_SYMBOL ] ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Must provide a length, ArrayBuffer, typed array, array-like object, or an iterable. Value: `%s`.', arg ) );\n\t\t\t}\n\t\t\tbuf = arg[ ITERATOR_SYMBOL ]();\n\t\t\tif ( !isFunction( buf.next ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Must provide a length, ArrayBuffer, typed array, array-like object, or an iterable. Value: `%s`.', arg ) );\n\t\t\t}\n\t\t\tbuf = new Uint8Array( fromIterator( buf ) );\n\t\t} else {\n\t\t\tthrow new TypeError( format( 'invalid argument. Must provide a length, ArrayBuffer, typed array, array-like object, or an iterable. Value: `%s`.', arg ) );\n\t\t}\n\t} else {\n\t\tbuf = arguments[ 0 ];\n\t\tif ( !isArrayBuffer( buf ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. First argument must be an ArrayBuffer. Value: `%s`.', buf ) );\n\t\t}\n\t\tbyteOffset = arguments[ 1 ];\n\t\tif ( !isNonNegativeInteger( byteOffset ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Byte offset must be a nonnegative integer. Value: `%s`.', byteOffset ) );\n\t\t}\n\t\tif ( nargs === 2 ) {\n\t\t\tbuf = new Uint8Array( buf, byteOffset );\n\t\t} else {\n\t\t\tlen = arguments[ 2 ];\n\t\t\tif ( !isNonNegativeInteger( len ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Length must be a nonnegative integer. Value: `%s`.', len ) );\n\t\t\t}\n\t\t\tif ( (len*BYTES_PER_ELEMENT) > (buf.byteLength-byteOffset) ) {\n\t\t\t\tthrow new RangeError( format( 'invalid arguments. ArrayBuffer has insufficient capacity. Either decrease the array length or provide a bigger buffer. Minimum capacity: `%u`.', len*BYTES_PER_ELEMENT ) );\n\t\t\t}\n\t\t\tbuf = new Uint8Array( buf, byteOffset, len );\n\t\t}\n\t}\n\tsetReadOnly( this, '_buffer', buf );\n\tsetReadOnly( this, '_length', buf.length );\n\n\treturn this;\n}\n\n/**\n* Size (in bytes) of each array element.\n*\n* @name BYTES_PER_ELEMENT\n* @memberof BooleanArray\n* @readonly\n* @type {PositiveInteger}\n* @default 1\n*\n* @example\n* var nbytes = BooleanArray.BYTES_PER_ELEMENT;\n* // returns 1\n*/\nsetReadOnly( BooleanArray, 'BYTES_PER_ELEMENT', BYTES_PER_ELEMENT );\n\n/**\n* Constructor name.\n*\n* @name name\n* @memberof BooleanArray\n* @readonly\n* @type {string}\n* @default 'BooleanArray'\n*\n* @example\n* var str = BooleanArray.name;\n* // returns 'BooleanArray'\n*/\nsetReadOnly( BooleanArray, 'name', 'BooleanArray' );\n\n/**\n* Creates a new boolean array from an array-like object or an iterable.\n*\n* @name from\n* @memberof BooleanArray\n* @type {Function}\n* @param {(Collection|Iterable)} src - array-like object or iterable\n* @param {Function} [clbk] - callback to invoke for each source element\n* @param {*} [thisArg] - context\n* @throws {TypeError} `this` context must be a constructor\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} first argument must be an array-like object or an iterable\n* @throws {TypeError} second argument must be a function\n* @returns {BooleanArray} boolean array\n*\n* @example\n* var arr = BooleanArray.from( [ true, false ] );\n* // returns \n*\n* var len = arr.length;\n* // returns 2\n*\n* @example\n* function clbk( v ) {\n* return !v;\n* }\n*\n* var arr = BooleanArray.from( [ true, false ], clbk );\n* // returns \n*\n* var len = arr.length;\n* // returns 2\n*/\nsetReadOnly( BooleanArray, 'from', function from( src ) {\n\tvar thisArg;\n\tvar nargs;\n\tvar clbk;\n\tvar out;\n\tvar buf;\n\tvar tmp;\n\tvar get;\n\tvar len;\n\tvar i;\n\tif ( !isFunction( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` context must be a constructor.' );\n\t}\n\tif ( !isBooleanArrayConstructor( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tnargs = arguments.length;\n\tif ( nargs > 1 ) {\n\t\tclbk = arguments[ 1 ];\n\t\tif ( !isFunction( clbk ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be a function. Value: `%s`.', clbk ) );\n\t\t}\n\t\tif ( nargs > 2 ) {\n\t\t\tthisArg = arguments[ 2 ];\n\t\t}\n\t}\n\tif ( isCollection( src ) ) {\n\t\tif ( clbk ) {\n\t\t\tlen = src.length;\n\t\t\tif ( src.get && src.set ) {\n\t\t\t\tget = accessorGetter( 'default' );\n\t\t\t} else {\n\t\t\t\tget = getter( 'default' );\n\t\t\t}\n\t\t\tout = new this( len );\n\t\t\tbuf = out._buffer; // eslint-disable-line no-underscore-dangle\n\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\tbuf[ i ] = Boolean( clbk.call( thisArg, get( src, i ), i ) );\n\t\t\t}\n\t\t\treturn out;\n\t\t}\n\t\treturn new this( src );\n\t}\n\tif ( isObject( src ) && HAS_ITERATOR_SYMBOL && isFunction( src[ ITERATOR_SYMBOL ] ) ) { // eslint-disable-line max-len\n\t\tbuf = src[ ITERATOR_SYMBOL ]();\n\t\tif ( !isFunction( buf.next ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. First argument must be an array-like object or an iterable. Value: `%s`.', src ) );\n\t\t}\n\t\tif ( clbk ) {\n\t\t\ttmp = fromIteratorMap( buf, clbk, thisArg );\n\t\t} else {\n\t\t\ttmp = fromIterator( buf );\n\t\t}\n\t\tlen = tmp.length;\n\t\tout = new this( len );\n\t\tbuf = out._buffer; // eslint-disable-line no-underscore-dangle\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tbuf[ i ] = tmp[ i ];\n\t\t}\n\t\treturn out;\n\t}\n\tthrow new TypeError( format( 'invalid argument. First argument must be an array-like object or an iterable. Value: `%s`.', src ) );\n});\n\n/**\n* Creates a new boolean array from a variable number of arguments.\n*\n* @name of\n* @memberof BooleanArray\n* @type {Function}\n* @param {...*} element - array elements\n* @throws {TypeError} `this` context must be a constructor\n* @throws {TypeError} `this` must be a boolean array\n* @returns {BooleanArray} boolean array\n*\n* @example\n* var arr = BooleanArray.of( true, true, true, true );\n* // returns \n*\n* var len = arr.length;\n* // returns 4\n*/\nsetReadOnly( BooleanArray, 'of', function of() {\n\tvar args;\n\tvar i;\n\tif ( !isFunction( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` context must be a constructor.' );\n\t}\n\tif ( !isBooleanArrayConstructor( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\targs = [];\n\tfor ( i = 0; i < arguments.length; i++ ) {\n\t\targs.push( arguments[ i ] );\n\t}\n\treturn new this( args );\n});\n\n/**\n* Returns an array element located at integer position (index) `i`, with support for both nonnegative and negative integer indices.\n*\n* @name at\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {integer} idx - element index\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} must provide an integer\n* @returns {(boolean|void)} array element\n*\n* @example\n* var arr = new BooleanArray( 3 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( true, 2 );\n*\n* var v = arr.at( 0 );\n* // returns true\n*\n* v = arr.at( -1 );\n* // returns true\n*\n* v = arr.at( 100 );\n* // returns undefined\n*/\nsetReadOnly( BooleanArray.prototype, 'at', function at( idx ) {\n\tvar buf;\n\tvar len;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tif ( !isInteger( idx ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide an integer. Value: `%s`.', idx ) );\n\t}\n\tlen = this._length;\n\tbuf = this._buffer;\n\tif ( idx < 0 ) {\n\t\tidx += len;\n\t}\n\tif ( idx < 0 || idx >= len ) {\n\t\treturn;\n\t}\n\treturn Boolean( buf[ idx ] );\n});\n\n/**\n* Pointer to the underlying data buffer.\n*\n* @name buffer\n* @memberof BooleanArray.prototype\n* @readonly\n* @type {ArrayBuffer}\n*\n* @example\n* var arr = new BooleanArray( 10 );\n*\n* var buf = arr.buffer;\n* // returns \n*/\nsetReadOnlyAccessor( BooleanArray.prototype, 'buffer', function get() {\n\treturn this._buffer.buffer;\n});\n\n/**\n* Size (in bytes) of the array.\n*\n* @name byteLength\n* @memberof BooleanArray.prototype\n* @readonly\n* @type {NonNegativeInteger}\n*\n* @example\n* var arr = new BooleanArray( 10 );\n*\n* var byteLength = arr.byteLength;\n* // returns 10\n*/\nsetReadOnlyAccessor( BooleanArray.prototype, 'byteLength', function get() {\n\treturn this._buffer.byteLength;\n});\n\n/**\n* Offset (in bytes) of the array from the start of its underlying `ArrayBuffer`.\n*\n* @name byteOffset\n* @memberof BooleanArray.prototype\n* @readonly\n* @type {NonNegativeInteger}\n*\n* @example\n* var arr = new BooleanArray( 10 );\n*\n* var byteOffset = arr.byteOffset;\n* // returns 0\n*/\nsetReadOnlyAccessor( BooleanArray.prototype, 'byteOffset', function get() {\n\treturn this._buffer.byteOffset;\n});\n\n/**\n* Size (in bytes) of each array element.\n*\n* @name BYTES_PER_ELEMENT\n* @memberof BooleanArray.prototype\n* @readonly\n* @type {PositiveInteger}\n* @default 1\n*\n* @example\n* var arr = new BooleanArray( 10 );\n*\n* var nbytes = arr.BYTES_PER_ELEMENT;\n* // returns 1\n*/\nsetReadOnly( BooleanArray.prototype, 'BYTES_PER_ELEMENT', BooleanArray.BYTES_PER_ELEMENT );\n\n/**\n* Copies a sequence of elements within the array to the position starting at `target`.\n*\n* @name copyWithin\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {integer} target - index at which to start copying elements\n* @param {integer} start - source index at which to copy elements from\n* @param {integer} [end] - source index at which to stop copying elements from\n* @throws {TypeError} `this` must be a boolean array\n* @returns {BooleanArray} modified array\n*\n* @example\n* var arr = new BooleanArray( 4 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( false, 2 );\n* arr.set( true, 3 );\n*\n* // Copy the first two elements to the last two elements:\n* arr.copyWithin( 2, 0, 2 );\n*\n* var v = arr.get( 2 );\n* // returns true\n*\n* v = arr.get( 3 );\n* // returns false\n*/\nsetReadOnly( BooleanArray.prototype, 'copyWithin', function copyWithin( target, start ) {\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\t// FIXME: prefer a functional `copyWithin` implementation which addresses lack of universal browser support (e.g., IE11 and Safari) or ensure that typed arrays are polyfilled\n\tif ( arguments.length === 2 ) {\n\t\tthis._buffer.copyWithin( target, start );\n\t} else {\n\t\tthis._buffer.copyWithin( target, start, arguments[2] );\n\t}\n\treturn this;\n});\n\n/**\n* Returns an iterator for iterating over array key-value pairs.\n*\n* @name entries\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @throws {TypeError} `this` must be a boolean array\n* @returns {Iterator} iterator\n*\n* @example\n* var arr = new BooleanArray( 3 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( true, 2 );\n*\n* var it = arr.entries();\n*\n* var v = it.next().value;\n* // returns [ 0, true ]\n*\n* v = it.next().value;\n* // returns [ 1, false ]\n*\n* v = it.next().value;\n* // returns [ 2, true ]\n*\n* var bool = it.next().done;\n* // returns true\n*/\nsetReadOnly( BooleanArray.prototype, 'entries', function entries() {\n\tvar self;\n\tvar iter;\n\tvar len;\n\tvar buf;\n\tvar FLG;\n\tvar i;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tself = this;\n\tbuf = this._buffer;\n\tlen = this._length;\n\n\t// Initialize an iteration index:\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\tif ( ITERATOR_SYMBOL ) {\n\t\tsetReadOnly( iter, ITERATOR_SYMBOL, 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 >= len ) {\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, Boolean( buf[ 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 self.entries();\n\t}\n});\n\n/**\n* Tests whether all elements in an array pass a test implemented by a predicate function.\n*\n* @name every\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {Function} predicate - predicate function\n* @param {*} [thisArg] - predicate function execution context\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} first argument must be a function\n* @returns {boolean} boolean indicating whether all elements pass a test\n*\n* @example\n* function predicate( v ) {\n* return v === true;\n* }\n*\n* var arr = new BooleanArray( 3 );\n*\n* arr.set( true, 0 );\n* arr.set( true, 1 );\n* arr.set( true, 2 );\n*\n* var bool = arr.every( predicate );\n* // returns true\n*/\nsetReadOnly( BooleanArray.prototype, 'every', function every( predicate, thisArg ) {\n\tvar buf;\n\tvar i;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tif ( !isFunction( predicate ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', predicate ) );\n\t}\n\tbuf = this._buffer;\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tif ( !predicate.call( thisArg, Boolean( buf[ i ] ), i, this ) ) {\n\t\t\treturn false;\n\t\t}\n\t}\n\treturn true;\n});\n\n/**\n* Returns a modified typed array filled with a fill value.\n*\n* @name fill\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {boolean} value - fill value\n* @param {integer} [start=0] - starting index (inclusive)\n* @param {integer} [end] - ending index (exclusive)\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} first argument must be a boolean\n* @throws {TypeError} second argument must be an integer\n* @throws {TypeError} third argument must be an integer\n* @returns {BooleanArray} modified array\n*\n* @example\n* var arr = new BooleanArray( 3 );\n*\n* arr.fill( true, 1 );\n*\n* var v = arr.get( 0 );\n* // returns false\n*\n* v = arr.get( 1 );\n* // returns true\n*\n* v = arr.get( 2 );\n* // returns true\n*/\nsetReadOnly( BooleanArray.prototype, 'fill', function fill( value, start, end ) {\n\tvar buf;\n\tvar len;\n\tvar val;\n\tvar i;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tif ( !isBoolean( value ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a boolean. Value: `%s`.', value ) );\n\t}\n\tbuf = this._buffer;\n\tlen = this._length;\n\tif ( arguments.length > 1 ) {\n\t\tif ( !isInteger( start ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an integer. Value: `%s`.', start ) );\n\t\t}\n\t\tif ( start < 0 ) {\n\t\t\tstart += len;\n\t\t\tif ( start < 0 ) {\n\t\t\t\tstart = 0;\n\t\t\t}\n\t\t}\n\t\tif ( arguments.length > 2 ) {\n\t\t\tif ( !isInteger( end ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Third argument must be an integer. Value: `%s`.', end ) );\n\t\t\t}\n\t\t\tif ( end < 0 ) {\n\t\t\t\tend += len;\n\t\t\t\tif ( end < 0 ) {\n\t\t\t\t\tend = 0;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( end > len ) {\n\t\t\t\tend = len;\n\t\t\t}\n\t\t} else {\n\t\t\tend = len;\n\t\t}\n\t} else {\n\t\tstart = 0;\n\t\tend = len;\n\t}\n\tif ( value ) {\n\t\tval = 1;\n\t} else {\n\t\tval = 0;\n\t}\n\tfor ( i = start; i < end; i++ ) {\n\t\tbuf[ i ] = val;\n\t}\n\treturn this;\n});\n\n/**\n* Returns a new array containing the elements of an array which pass a test implemented by a predicate function.\n*\n* @name filter\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {Function} predicate - test function\n* @param {*} [thisArg] - predicate function execution context\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} first argument must be a function\n* @returns {BooleanArray} boolean array\n*\n* @example\n* function predicate( v ) {\n* return ( v === true );\n* }\n*\n* var arr = new BooleanArray( 3 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( true, 2 );\n*\n* var out = arr.filter( predicate );\n* // returns \n*\n* var len = out.length;\n* // returns 2\n*\n* var v = out.get( 0 );\n* // returns true\n*\n* v = out.get( 1 );\n* // returns true\n*/\nsetReadOnly( BooleanArray.prototype, 'filter', function filter( predicate, thisArg ) {\n\tvar buf;\n\tvar out;\n\tvar i;\n\tvar v;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tif ( !isFunction( predicate ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', predicate ) );\n\t}\n\tbuf = this._buffer;\n\tout = [];\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tv = Boolean( buf[ i ] );\n\t\tif ( predicate.call( thisArg, v, i, this ) ) {\n\t\t\tout.push( v );\n\t\t}\n\t}\n\treturn new this.constructor( out );\n});\n\n/**\n* Returns the first element in an array for which a predicate function returns a truthy value.\n*\n* @name find\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {Function} predicate - predicate function\n* @param {*} [thisArg] - predicate function execution context\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} first argument must be a function\n* @returns {(boolean|void)} array element or undefined\n*\n* @example\n* function predicate( v ) {\n* return v === true;\n* }\n*\n* var arr = new BooleanArray( 3 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( true, 2 );\n*\n* var v = arr.find( predicate );\n* // returns true\n*/\nsetReadOnly( BooleanArray.prototype, 'find', function find( predicate, thisArg ) {\n\tvar buf;\n\tvar v;\n\tvar i;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tif ( !isFunction( predicate ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', predicate ) );\n\t}\n\tbuf = this._buffer;\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tv = Boolean( buf[ i ] );\n\t\tif ( predicate.call( thisArg, v, i, this ) ) {\n\t\t\treturn v;\n\t\t}\n\t}\n});\n\n/**\n* Returns the index of the first element in an array for which a predicate function returns a truthy value.\n*\n* @name findIndex\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {Function} predicate - predicate function\n* @param {*} [thisArg] - predicate function execution context\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} first argument must be a function\n* @returns {integer} index or -1\n*\n* @example\n* function predicate( v ) {\n* return v === true;\n* }\n*\n* var arr = new BooleanArray( 3 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( true, 2 );\n*\n* var v = arr.findIndex( predicate );\n* // returns 0\n*/\nsetReadOnly( BooleanArray.prototype, 'findIndex', function findIndex( predicate, thisArg ) {\n\tvar buf;\n\tvar v;\n\tvar i;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tif ( !isFunction( predicate ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', predicate ) );\n\t}\n\tbuf = this._buffer;\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tv = Boolean( buf[ i ] );\n\t\tif ( predicate.call( thisArg, v, i, this ) ) {\n\t\t\treturn i;\n\t\t}\n\t}\n\treturn -1;\n});\n\n/**\n* Returns the last element in an array for which a predicate function returns a truthy value.\n*\n* @name findLast\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {Function} predicate - predicate function\n* @param {*} [thisArg] - predicate function execution context\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} first argument must be a function\n* @returns {(boolean|void)} array element or undefined\n*\n* @example\n* function predicate( v ) {\n* return v === true;\n* }\n*\n* var arr = new BooleanArray( 3 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( true, 2 );\n*\n* var v = arr.findLast( predicate );\n* // returns true\n*/\nsetReadOnly( BooleanArray.prototype, 'findLast', function findLast( predicate, thisArg ) {\n\tvar buf;\n\tvar v;\n\tvar i;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tif ( !isFunction( predicate ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', predicate ) );\n\t}\n\tbuf = this._buffer;\n\tfor ( i = this._length-1; i >= 0; i-- ) {\n\t\tv = Boolean( buf[ i ] );\n\t\tif ( predicate.call( thisArg, v, i, this ) ) {\n\t\t\treturn v;\n\t\t}\n\t}\n});\n\n/**\n* Returns the index of the last element in an array for which a predicate function returns a truthy value.\n*\n* @name findLastIndex\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {Function} predicate - predicate function\n* @param {*} [thisArg] - predicate function execution context\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} first argument must be a function\n* @returns {integer} index or -1\n*\n* @example\n* function predicate( v ) {\n* return v === true;\n* }\n*\n* var arr = new BooleanArray( 3 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( true, 2 );\n*\n* var v = arr.findLastIndex( predicate );\n* // returns 2\n*/\nsetReadOnly( BooleanArray.prototype, 'findLastIndex', function findLastIndex( predicate, thisArg ) {\n\tvar buf;\n\tvar v;\n\tvar i;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tif ( !isFunction( predicate ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', predicate ) );\n\t}\n\tbuf = this._buffer;\n\tfor ( i = this._length-1; i >= 0; i-- ) {\n\t\tv = Boolean( buf[ i ] );\n\t\tif ( predicate.call( thisArg, v, i, this ) ) {\n\t\t\treturn i;\n\t\t}\n\t}\n\treturn -1;\n});\n\n/**\n* Invokes a function once for each array element.\n*\n* @name forEach\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {Function} fcn - function to invoke\n* @param {*} [thisArg] - function invocation context\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} first argument must be a function\n*\n* @example\n* function log( v, i ) {\n* console.log( '%s: %s', i, v.toString() );\n* }\n*\n* var arr = new BooleanArray( 3 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( true, 2 );\n*\n* arr.forEach( log );\n*/\nsetReadOnly( BooleanArray.prototype, 'forEach', function forEach( fcn, thisArg ) {\n\tvar buf;\n\tvar i;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tif ( !isFunction( fcn ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', fcn ) );\n\t}\n\tbuf = this._buffer;\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tfcn.call( thisArg, Boolean( buf[ i ] ), i, this );\n\t}\n});\n\n/**\n* Returns an array element.\n*\n* @name get\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {NonNegativeInteger} idx - element index\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} must provide a nonnegative integer\n* @returns {(boolean|void)} array element\n*\n* @example\n* var arr = new BooleanArray( 10 );\n*\n* var v = arr.get( 0 );\n* // returns false\n*\n* arr.set( [ true, false ], 0 );\n*\n* v = arr.get( 0 );\n* // returns true\n*\n* v = arr.get( 100 );\n* // returns undefined\n*/\nsetReadOnly( BooleanArray.prototype, 'get', function get( idx ) {\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tif ( !isNonNegativeInteger( idx ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide a nonnegative integer. Value: `%s`.', idx ) );\n\t}\n\tif ( idx >= this._length ) {\n\t\treturn;\n\t}\n\treturn Boolean( this._buffer[ idx ] );\n});\n\n/**\n* Returns a boolean indicating whether an array includes a provided value.\n*\n* @name includes\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {boolean} searchElement - search element\n* @param {integer} [fromIndex=0] - starting index (inclusive)\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} first argument must be a boolean value\n* @throws {TypeError} second argument must be an integer\n* @returns {boolean} boolean indicating whether an array includes a value\n*\n* @example\n* var arr = new BooleanArray( 5 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( true, 2 );\n* arr.set( true, 3 );\n* arr.set( true, 4 );\n*\n* var bool = arr.includes( true );\n* // returns true\n*\n* bool = arr.includes( false, 2 );\n* // returns false\n*/\nsetReadOnly( BooleanArray.prototype, 'includes', function includes( searchElement, fromIndex ) {\n\tvar buf;\n\tvar i;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tif ( !isBoolean( searchElement ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a boolean. Value: `%s`.', searchElement ) );\n\t}\n\tif ( arguments.length > 1 ) {\n\t\tif ( !isInteger( fromIndex ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an integer. Value: `%s`.', fromIndex ) );\n\t\t}\n\t\tif ( fromIndex < 0 ) {\n\t\t\tfromIndex += this._length;\n\t\t\tif ( fromIndex < 0 ) {\n\t\t\t\tfromIndex = 0;\n\t\t\t}\n\t\t}\n\t} else {\n\t\tfromIndex = 0;\n\t}\n\tbuf = this._buffer;\n\tfor ( i = fromIndex; i < this._length; i++ ) {\n\t\tif ( searchElement === Boolean( buf[ i ] ) ) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n});\n\n/**\n* Returns the first index at which a given element can be found.\n*\n* @name indexOf\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {boolean} searchElement - element to find\n* @param {integer} [fromIndex=0] - starting index (inclusive)\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} first argument must be a boolean value\n* @throws {TypeError} second argument must be an integer\n* @returns {integer} index or -1\n*\n* @example\n* var arr = new BooleanArray( 5 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( true, 2 );\n* arr.set( true, 3 );\n* arr.set( true, 4 );\n*\n* var idx = arr.indexOf( true );\n* // returns 0\n*\n* idx = arr.indexOf( false, 2 );\n* // returns -1\n*\n* idx = arr.indexOf( false, -3 );\n* // returns -1\n*/\nsetReadOnly( BooleanArray.prototype, 'indexOf', function indexOf( searchElement, fromIndex ) {\n\tvar buf;\n\tvar i;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tif ( !isBoolean( searchElement ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a boolean. Value: `%s`.', searchElement ) );\n\t}\n\tif ( arguments.length > 1 ) {\n\t\tif ( !isInteger( fromIndex ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an integer. Value: `%s`.', fromIndex ) );\n\t\t}\n\t\tif ( fromIndex < 0 ) {\n\t\t\tfromIndex += this._length;\n\t\t\tif ( fromIndex < 0 ) {\n\t\t\t\tfromIndex = 0;\n\t\t\t}\n\t\t}\n\t} else {\n\t\tfromIndex = 0;\n\t}\n\tbuf = this._buffer;\n\tfor ( i = fromIndex; i < this._length; i++ ) {\n\t\tif ( searchElement === Boolean( buf[ i ] ) ) {\n\t\t\treturn i;\n\t\t}\n\t}\n\treturn -1;\n});\n\n/**\n* Returns a new string by concatenating all array elements.\n*\n* @name join\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {string} [separator=','] - element separator\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} first argument must be a string\n* @returns {string} string representation\n*\n* @example\n* var arr = new BooleanArray( 3 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( true, 2 );\n*\n* var str = arr.join();\n* // returns 'true,false,true'\n*\n* str = arr.join( '|' );\n* // returns 'true|false|true'\n*/\nsetReadOnly( BooleanArray.prototype, 'join', function join( separator ) {\n\tvar buf;\n\tvar out;\n\tvar i;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tif ( arguments.length > 0 ) {\n\t\tif ( !isString( separator ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. First argument must be a string. Value: `%s`.', separator ) );\n\t\t}\n\t} else {\n\t\tseparator = ',';\n\t}\n\tbuf = this._buffer;\n\tout = [];\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tif ( buf[i] ) {\n\t\t\tout.push( 'true' );\n\t\t} else {\n\t\t\tout.push( 'false' );\n\t\t}\n\t}\n\treturn out.join( separator );\n});\n\n/**\n* Returns an iterator for iterating over each index key in a typed array.\n*\n* @name keys\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @throws {TypeError} `this` must be a boolean array\n* @returns {Iterator} iterator\n*\n* @example\n* var arr = new BooleanArray( 2 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n*\n* var iter = arr.keys();\n*\n* var v = iter.next().value;\n* // returns 0\n*\n* v = iter.next().value;\n* // returns 1\n*\n* var bool = iter.next().done;\n* // returns true\n*/\nsetReadOnly( BooleanArray.prototype, 'keys', function keys() {\n\tvar self;\n\tvar iter;\n\tvar len;\n\tvar FLG;\n\tvar i;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tself = this;\n\tlen = this._length;\n\n\t// Initialize an iteration index:\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\tif ( ITERATOR_SYMBOL ) {\n\t\tsetReadOnly( iter, ITERATOR_SYMBOL, 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 >= len ) {\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 self.keys();\n\t}\n});\n\n/**\n* Returns the last index at which a given element can be found.\n*\n* @name lastIndexOf\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {boolean} searchElement - element to find\n* @param {integer} [fromIndex] - starting index (inclusive)\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} first argument must be a boolean value\n* @throws {TypeError} second argument must be an integer\n* @returns {integer} index or -1\n*\n* @example\n* var arr = new BooleanArray( 5 );\n*\n* arr.set( true, 0 );\n* arr.set( true, 1 );\n* arr.set( true, 2 );\n* arr.set( false, 3 );\n* arr.set( true, 4 );\n*\n* var idx = arr.lastIndexOf( true );\n* // returns 4\n*\n* idx = arr.lastIndexOf( false, 2 );\n* // returns -1\n*\n* idx = arr.lastIndexOf( false, -3 );\n* // returns -1\n*/\nsetReadOnly( BooleanArray.prototype, 'lastIndexOf', function lastIndexOf( searchElement, fromIndex ) {\n\tvar buf;\n\tvar i;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tif ( !isBoolean( searchElement ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a boolean. Value: `%s`.', searchElement ) );\n\t}\n\tif ( arguments.length > 1 ) {\n\t\tif ( !isInteger( fromIndex ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an integer. Value: `%s`.', fromIndex ) );\n\t\t}\n\t\tif ( fromIndex >= this._length ) {\n\t\t\tfromIndex = this._length - 1;\n\t\t} else if ( fromIndex < 0 ) {\n\t\t\tfromIndex += this._length;\n\t\t}\n\t} else {\n\t\tfromIndex = this._length - 1;\n\t}\n\tbuf = this._buffer;\n\tfor ( i = fromIndex; i >= 0; i-- ) {\n\t\tif ( searchElement === Boolean( buf[ i ] ) ) {\n\t\t\treturn i;\n\t\t}\n\t}\n\treturn -1;\n});\n\n/**\n* Number of array elements.\n*\n* @name length\n* @memberof BooleanArray.prototype\n* @readonly\n* @type {NonNegativeInteger}\n*\n* @example\n* var arr = new BooleanArray( 10 );\n*\n* var len = arr.length;\n* // returns 10\n*/\nsetReadOnlyAccessor( BooleanArray.prototype, 'length', function get() {\n\treturn this._length;\n});\n\n/**\n* Returns a new array with each element being the result of a provided callback function.\n*\n* @name map\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {Function} fcn - callback function\n* @param {*} [thisArg] - callback function execution context\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} first argument must be a function\n* @returns {BooleanArray} new boolean array\n*\n* @example\n* function invert( v ) {\n* return !v;\n* }\n*\n* var arr = new BooleanArray( 3 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( true, 2 );\n*\n* var out = arr.map( invert );\n* // returns \n*\n* var z = out.get( 0 );\n* // returns false\n*\n* z = out.get( 1 );\n* // returns true\n*\n* z = out.get( 2 );\n* // returns false\n*/\nsetReadOnly( BooleanArray.prototype, 'map', function map( fcn, thisArg ) {\n\tvar outbuf;\n\tvar out;\n\tvar buf;\n\tvar i;\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tif ( !isFunction( fcn ) ) {\n\t\tthrow new TypeError( 'invalid argument. First argument must be a function. Value: `%s`.', fcn );\n\t}\n\tbuf = this._buffer;\n\tout = new this.constructor( this._length );\n\toutbuf = out._buffer; // eslint-disable-line no-underscore-dangle\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\toutbuf[ i ] = Boolean( fcn.call( thisArg, Boolean( buf[ i ] ), i, this ) );\n\t}\n\treturn out;\n});\n\n/**\n* Applies a provided callback function to each element of the array, in order, passing in the return value from the calculation on the preceding element and returning the accumulated result upon completion.\n*\n* @name reduce\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {Function} reducer - callback function\n* @param {*} [initialValue] - initial value\n* @throws {TypeError} `this` must be a boolean array\n* @throws {Error} if not provided an initial value, the array must have at least one element\n* @returns {*} accumulated result\n*\n* @example\n* function reducer( acc, v ) {\n* if ( v ) {\n* return acc + 1;\n* }\n* return acc;\n* }\n*\n* var arr = new BooleanArray( 3 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( true, 2 );\n*\n* var out = arr.reduce( reducer, 0 );\n* // returns 2\n*/\nsetReadOnly( BooleanArray.prototype, 'reduce', function reduce( reducer, initialValue ) {\n\tvar buf;\n\tvar len;\n\tvar acc;\n\tvar i;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tif ( !isFunction( reducer ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', reducer ) );\n\t}\n\tbuf = this._buffer;\n\tlen = this._length;\n\tif ( arguments.length > 1 ) {\n\t\tacc = initialValue;\n\t\ti = 0;\n\t} else {\n\t\tif ( len === 0 ) {\n\t\t\tthrow new Error( 'invalid operation. If not provided an initial value, an array must contain at least one element.' );\n\t\t}\n\t\tacc = Boolean( buf[ 0 ] );\n\t\ti = 1;\n\t}\n\tfor ( ; i < len; i++ ) {\n\t\tacc = reducer( acc, Boolean( buf[ i ] ), i, this );\n\t}\n\treturn acc;\n});\n\n/**\n* Applies a provided callback function to each element of the array, in reverse order, passing in the return value from the calculation on the preceding element and returning the accumulated result upon completion.\n*\n* @name reduceRight\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {Function} reducer - callback function\n* @param {*} [initialValue] - initial value\n* @throws {TypeError} `this` must be a boolean array\n* @throws {Error} if not provided an initial value, the array must have at least one element\n* @returns {*} accumulated result\n*\n* @example\n* function reducer( acc, v ) {\n* if ( v ) {\n* return acc + 1;\n* }\n* return acc;\n* }\n*\n* var arr = new BooleanArray( 3 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( true, 2 );\n*\n* var out = arr.reduceRight( reducer, 0 );\n* // returns 2\n*/\nsetReadOnly( BooleanArray.prototype, 'reduceRight', function reduceRight( reducer, initialValue ) {\n\tvar buf;\n\tvar len;\n\tvar acc;\n\tvar i;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tif ( !isFunction( reducer ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', reducer ) );\n\t}\n\tbuf = this._buffer;\n\tlen = this._length;\n\tif ( arguments.length > 1 ) {\n\t\tacc = initialValue;\n\t\ti = len - 1;\n\t} else {\n\t\tif ( len === 0 ) {\n\t\t\tthrow new Error( 'invalid operation. If not provided an initial value, an array must contain at least one element.' );\n\t\t}\n\t\tacc = Boolean( buf[ len-1 ] );\n\t\ti = len - 2;\n\t}\n\tfor ( ; i >= 0; i-- ) {\n\t\tacc = reducer( acc, Boolean( buf[ i ] ), i, this );\n\t}\n\treturn acc;\n});\n\n/**\n* Reverses an array in-place.\n*\n* @name reverse\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @throws {TypeError} `this` must be a boolean array\n* @returns {BooleanArray} reversed array\n*\n* @example\n* var arr = new BooleanArray( 3 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( false, 2 );\n*\n* var out = arr.reverse();\n* // returns \n*\n* var v = out.get( 0 );\n* // returns false\n*\n* v = out.get( 1 );\n* // returns false\n*\n* v = out.get( 2 );\n* // returns true\n*/\nsetReadOnly( BooleanArray.prototype, 'reverse', function reverse() {\n\tvar buf;\n\tvar tmp;\n\tvar len;\n\tvar N;\n\tvar i;\n\tvar j;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tbuf = this._buffer;\n\tlen = this._length;\n\tN = floor( len / 2 );\n\tfor ( i = 0; i < N; i++ ) {\n\t\tj = len - i - 1;\n\t\ttmp = buf[ i ];\n\t\tbuf[ i ] = buf[ j ];\n\t\tbuf[ j ] = tmp;\n\t}\n\treturn this;\n});\n\n/**\n* Sets an array element.\n*\n* ## Notes\n*\n* - When provided a typed array, we must check whether the source array shares the same buffer as the target array and whether the underlying memory overlaps. In particular, we are concerned with the following scenario:\n*\n* ```text\n* buf: ---------------------\n* src: ---------------------\n* ```\n*\n* In the above, as we copy values from `src`, we will overwrite values in the `src` view, resulting in duplicated values copied into the end of `buf`, which is not intended. Hence, to avoid overwriting source values, we must **copy** source values to a temporary array.\n*\n* In the other overlapping scenario,\n*\n* ```text\n* buf: ---------------------\n* src: ---------------------\n* ```\n*\n* by the time we begin copying into the overlapping region, we are copying from the end of `src`, a non-overlapping region, which means we don't run the risk of copying copied values, rather than the original `src` values, as intended.\n*\n* @name set\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {(Collection|BooleanArray|*)} value - value(s)\n* @param {NonNegativeInteger} [i=0] - element index at which to start writing values\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} index argument must be a nonnegative integer\n* @throws {RangeError} index argument is out-of-bounds\n* @throws {RangeError} target array lacks sufficient storage to accommodate source values\n* @returns {void}\n*\n* @example\n* var arr = new BooleanArray( 10 );\n*\n* var v = arr.get( 0 );\n* // returns false\n*\n* arr.set( [ true, false ], 0 );\n*\n* v = arr.get( 0 );\n* // returns true\n*/\nsetReadOnly( BooleanArray.prototype, 'set', function set( value ) {\n\tvar sbuf;\n\tvar idx;\n\tvar buf;\n\tvar tmp;\n\tvar N;\n\tvar i;\n\tvar j;\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tbuf = this._buffer;\n\tif ( arguments.length > 1 ) {\n\t\tidx = arguments[ 1 ];\n\t\tif ( !isNonNegativeInteger( idx ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Index argument must be a nonnegative integer. Value: `%s`.', idx ) );\n\t\t}\n\t} else {\n\t\tidx = 0;\n\t}\n\tif ( isCollection( value ) ) {\n\t\tN = value.length;\n\t\tif ( idx+N > this._length ) {\n\t\t\tthrow new RangeError( 'invalid arguments. Target array lacks sufficient storage to accommodate source values.' );\n\t\t}\n\t\tif ( isBooleanArray( value ) ) {\n\t\t\tsbuf = value._buffer; // eslint-disable-line no-underscore-dangle\n\t\t} else {\n\t\t\tsbuf = value;\n\t\t}\n\t\t// Check for overlapping memory...\n\t\tj = buf.byteOffset + (idx*BYTES_PER_ELEMENT);\n\t\tif (\n\t\t\tsbuf.buffer === buf.buffer &&\n\t\t\t(\n\t\t\t\tsbuf.byteOffset < j &&\n\t\t\t\tsbuf.byteOffset+sbuf.byteLength > j\n\t\t\t)\n\t\t) {\n\t\t\t// We need to copy source values...\n\t\t\ttmp = new Uint8Array( sbuf.length );\n\t\t\tfor ( i = 0; i < sbuf.length; i++ ) {\n\t\t\t\ttmp[ i ] = sbuf[ i ]; // TODO: handle accessor arrays\n\t\t\t}\n\t\t\tsbuf = tmp;\n\t\t}\n\t\tfor ( i = 0; i < N; idx++, i++ ) {\n\t\t\tbuf[ idx ] = ( sbuf[ i ] ) ? 1 : 0;\n\t\t}\n\t\treturn;\n\t}\n\tif ( idx >= this._length ) {\n\t\tthrow new RangeError( format( 'invalid argument. Index argument is out-of-bounds. Value: `%u`.', idx ) );\n\t}\n\tbuf[ idx ] = ( value ) ? 1 : 0;\n});\n\n/**\n* Copies a portion of a typed array to a new typed array.\n*\n* @name slice\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {integer} [begin] - start index (inclusive)\n* @param {integer} [end] - end index (exclusive)\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} first argument must be integer\n* @throws {TypeError} second argument must be integer\n* @returns {BooleanArray} boolean array\n*\n* @example\n* var arr = new BooleanArray( 5 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( true, 2 );\n* arr.set( false, 3 );\n* arr.set( true, 4 );\n*\n* var out = arr.slice();\n* // returns \n*\n* var len = out.length;\n* // returns 5\n*\n* var bool = out.get( 0 );\n* // returns true\n*\n* bool = out.get( len-1 );\n* // returns true\n*\n* out = arr.slice( 1, -2 );\n* // returns \n*\n* len = out.length;\n* // returns 2\n*\n* bool = out.get( 0 );\n* // returns false\n*\n* bool = out.get( len-1 );\n* // returns true\n*/\nsetReadOnly( BooleanArray.prototype, 'slice', function slice( begin, end ) {\n\tvar outlen;\n\tvar outbuf;\n\tvar out;\n\tvar buf;\n\tvar len;\n\tvar i;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tbuf = this._buffer;\n\tlen = this._length;\n\tif ( arguments.length === 0 ) {\n\t\tbegin = 0;\n\t\tend = len;\n\t} else {\n\t\tif ( !isInteger( begin ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. First argument must be an integer. Value: `%s`.', begin ) );\n\t\t}\n\t\tif ( begin < 0 ) {\n\t\t\tbegin += len;\n\t\t\tif ( begin < 0 ) {\n\t\t\t\tbegin = 0;\n\t\t\t}\n\t\t}\n\t\tif ( arguments.length === 1 ) {\n\t\t\tend = len;\n\t\t} else {\n\t\t\tif ( !isInteger( end ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an integer. Value: `%s`.', end ) );\n\t\t\t}\n\t\t\tif ( end < 0 ) {\n\t\t\t\tend += len;\n\t\t\t\tif ( end < 0 ) {\n\t\t\t\t\tend = 0;\n\t\t\t\t}\n\t\t\t} else if ( end > len ) {\n\t\t\t\tend = len;\n\t\t\t}\n\t\t}\n\t}\n\tif ( begin < end ) {\n\t\toutlen = end - begin;\n\t} else {\n\t\toutlen = 0;\n\t}\n\tout = new this.constructor( outlen );\n\toutbuf = out._buffer; // eslint-disable-line no-underscore-dangle\n\tfor ( i = 0; i < outlen; i++ ) {\n\t\toutbuf[ i ] = buf[ i+begin ];\n\t}\n\treturn out;\n});\n\n/**\n* Tests whether at least one element in an array passes a test implemented by a predicate function.\n*\n* @name some\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {Function} predicate - predicate function\n* @param {*} [thisArg] - predicate function execution context\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} first argument must be a function\n* @returns {boolean} boolean indicating whether at least one element passes a test\n*\n* @example\n* function predicate( v ) {\n* return v === true;\n* }\n*\n* var arr = new BooleanArray( 3 );\n*\n* arr.set( false, 0 );\n* arr.set( true, 1 );\n* arr.set( false, 2 );\n*\n* var bool = arr.some( predicate );\n* // returns true\n*/\nsetReadOnly( BooleanArray.prototype, 'some', function some( predicate, thisArg ) {\n\tvar buf;\n\tvar i;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tif ( !isFunction( predicate ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', predicate ) );\n\t}\n\tbuf = this._buffer;\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tif ( predicate.call( thisArg, Boolean( buf[ i ] ), i, this ) ) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n});\n\n/**\n* Sorts an array in-place.\n*\n* @name sort\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {Function} [compareFcn] - comparison function\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} first argument must be a function\n* @returns {BooleanArray} sorted array\n*\n* @example\n* function compare( a, b ) {\n* if ( a === false ) {\n* if ( b === false ) {\n* return 0;\n* }\n* return 1;\n* }\n* if ( b === true ) {\n* return 0;\n* }\n* return -1;\n* }\n*\n* var arr = new BooleanArray( 3 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( true, 2 );\n*\n* arr.sort( compare );\n*\n* var v = arr.get( 0 );\n* // returns true\n*\n* v = arr.get( 1 );\n* // returns true\n*\n* v = arr.get( 2 );\n* // returns false\n*/\nsetReadOnly( BooleanArray.prototype, 'sort', function sort( compareFcn ) {\n\tvar buf;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tbuf = this._buffer;\n\tif ( arguments.length === 0 ) {\n\t\tbuf.sort();\n\t\treturn this;\n\t}\n\tif ( !isFunction( compareFcn ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', compareFcn ) );\n\t}\n\tbuf.sort( compare );\n\treturn this;\n\n\t/**\n\t* Comparison function for sorting.\n\t*\n\t* @private\n\t* @param {boolean} a - first boolean value for comparison\n\t* @param {boolean} b - second boolean value for comparison\n\t* @returns {number} comparison result\n\t*/\n\tfunction compare( a, b ) {\n\t\treturn compareFcn( Boolean( a ), Boolean( b ) );\n\t}\n});\n\n/**\n* Creates a new typed array view over the same underlying `ArrayBuffer` and with the same underlying data type as the host array.\n*\n* @name subarray\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {integer} [begin] - start index (inclusive)\n* @param {integer} [end] - end index (exclusive)\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} first argument must be an integer\n* @throws {TypeError} second argument must be an integer\n* @returns {BooleanArray} subarray\n*\n* @example\n* var arr = new BooleanArray( 5 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( true, 2 );\n* arr.set( false, 3 );\n* arr.set( true, 4 );\n*\n* var subarr = arr.subarray();\n* // returns \n*\n* var len = subarr.length;\n* // returns 5\n*\n* var bool = subarr.get( 0 );\n* // returns true\n*\n* bool = subarr.get( len-1 );\n* // returns true\n*\n* subarr = arr.subarray( 1, -2 );\n* // returns \n*\n* len = subarr.length;\n* // returns 2\n*\n* bool = subarr.get( 0 );\n* // returns false\n*\n* bool = subarr.get( len-1 );\n* // returns true\n*/\nsetReadOnly( BooleanArray.prototype, 'subarray', function subarray( begin, end ) {\n\tvar offset;\n\tvar buf;\n\tvar len;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tbuf = this._buffer;\n\tlen = this._length;\n\tif ( arguments.length === 0 ) {\n\t\tbegin = 0;\n\t\tend = len;\n\t} else {\n\t\tif ( !isInteger( begin ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. First argument must be an integer. Value: `%s`.', begin ) );\n\t\t}\n\t\tif ( begin < 0 ) {\n\t\t\tbegin += len;\n\t\t\tif ( begin < 0 ) {\n\t\t\t\tbegin = 0;\n\t\t\t}\n\t\t}\n\t\tif ( arguments.length === 1 ) {\n\t\t\tend = len;\n\t\t} else {\n\t\t\tif ( !isInteger( end ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an integer. Value: `%s`.', end ) );\n\t\t\t}\n\t\t\tif ( end < 0 ) {\n\t\t\t\tend += len;\n\t\t\t\tif ( end < 0 ) {\n\t\t\t\t\tend = 0;\n\t\t\t\t}\n\t\t\t} else if ( end > len ) {\n\t\t\t\tend = len;\n\t\t\t}\n\t\t}\n\t}\n\tif ( begin >= len ) {\n\t\tlen = 0;\n\t\toffset = buf.byteLength;\n\t} else if ( begin >= end ) {\n\t\tlen = 0;\n\t\toffset = buf.byteOffset + ( begin*BYTES_PER_ELEMENT );\n\t} else {\n\t\tlen = end - begin;\n\t\toffset = buf.byteOffset + ( begin*BYTES_PER_ELEMENT );\n\t}\n\treturn new this.constructor( buf.buffer, offset, ( len < 0 ) ? 0 : len );\n});\n\n/**\n* Serializes an array as a locale-specific string.\n*\n* @name toLocaleString\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {(string|Array)} [locales] - locale identifier(s)\n* @param {Object} [options] - configuration options\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} first argument must be a string or an array of strings\n* @throws {TypeError} options argument must be an object\n* @returns {string} string representation\n*\n* @example\n* var arr = new BooleanArray( 3 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( true, 2 );\n*\n* var str = arr.toLocaleString();\n* // returns 'true,false,true'\n*/\nsetReadOnly( BooleanArray.prototype, 'toLocaleString', function toLocaleString( locales, options ) {\n\tvar opts;\n\tvar loc;\n\tvar out;\n\tvar buf;\n\tvar i;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tif ( arguments.length === 0 ) {\n\t\tloc = [];\n\t} else if ( isString( locales ) || isStringArray( locales ) ) {\n\t\tloc = locales;\n\t} else {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a string or an array of strings. Value: `%s`.', locales ) );\n\t}\n\tif ( arguments.length < 2 ) {\n\t\topts = {};\n\t} else if ( isObject( options ) ) {\n\t\topts = options;\n\t} else {\n\t\tthrow new TypeError( format( 'invalid argument. Options argument must be an object. Value: `%s`.', options ) );\n\t}\n\tbuf = this._buffer;\n\tout = [];\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tout.push( Boolean( buf[ i ] ).toLocaleString( loc, opts ) );\n\t}\n\treturn out.join( ',' );\n});\n\n/**\n* Returns a new typed array containing the elements in reversed order.\n*\n* @name toReversed\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @throws {TypeError} `this` must be a boolean array\n* @returns {BooleanArray} reversed array\n*\n* @example\n* var arr = new BooleanArray( 3 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( false, 2 );\n*\n* var out = arr.toReversed();\n* // returns \n*\n* var v = out.get( 0 );\n* // returns false\n*\n* v = out.get( 1 );\n* // returns false\n*\n* v = out.get( 2 );\n* // returns true\n*/\nsetReadOnly( BooleanArray.prototype, 'toReversed', function toReversed() {\n\tvar outbuf;\n\tvar out;\n\tvar len;\n\tvar buf;\n\tvar i;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tlen = this._length;\n\tout = new this.constructor( len );\n\tbuf = this._buffer;\n\toutbuf = out._buffer; // eslint-disable-line no-underscore-dangle\n\tfor ( i = 0; i < len; i++ ) {\n\t\toutbuf[ i ] = buf[ len - i - 1 ];\n\t}\n\treturn out;\n});\n\n/**\n* Returns a new typed array containing the elements in sorted order.\n*\n* @name toSorted\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {Function} [compareFcn] - comparison function\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} first argument must be a function\n* @returns {BooleanArray} sorted array\n*\n* @example\n* function compare( a, b ) {\n* if ( a === false ) {\n* if ( b === false ) {\n* return 0;\n* }\n* return 1;\n* }\n* if ( b === true ) {\n* return 0;\n* }\n* return -1;\n* }\n*\n* var arr = new BooleanArray( 3 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( true, 2 );\n*\n* var out = arr.sort( compare );\n* // returns \n*\n* var v = out.get( 0 );\n* // returns true\n*\n* v = out.get( 1 );\n* // returns true\n*\n* v = out.get( 2 );\n* // returns false\n*/\nsetReadOnly( BooleanArray.prototype, 'toSorted', function toSorted( compareFcn ) {\n\tvar outbuf;\n\tvar out;\n\tvar len;\n\tvar buf;\n\tvar i;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tlen = this._length;\n\tout = new this.constructor( len );\n\tbuf = this._buffer;\n\toutbuf = out._buffer; // eslint-disable-line no-underscore-dangle\n\tfor ( i = 0; i < len; i++ ) {\n\t\toutbuf[ i ] = buf[ i ];\n\t}\n\tif ( arguments.length === 0 ) {\n\t\toutbuf.sort();\n\t\treturn out;\n\t}\n\tif ( !isFunction( compareFcn ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', compareFcn ) );\n\t}\n\toutbuf.sort( compare );\n\treturn out;\n\n\t/**\n\t* Comparison function for sorting.\n\t*\n\t* @private\n\t* @param {boolean} a - first boolean value for comparison\n\t* @param {boolean} b - second boolean value for comparison\n\t* @returns {number} comparison result\n\t*/\n\tfunction compare( a, b ) {\n\t\treturn compareFcn( Boolean( a ), Boolean( b ) );\n\t}\n});\n\n/**\n* Serializes an array as a string.\n*\n* @name toString\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @throws {TypeError} `this` must be a boolean array\n* @returns {string} string representation\n*\n* @example\n* var arr = new BooleanArray( 3 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( true, 2 );\n*\n* var str = arr.toString();\n* // returns 'true,false,true'\n*/\nsetReadOnly( BooleanArray.prototype, 'toString', function toString() {\n\tvar out;\n\tvar buf;\n\tvar i;\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tout = [];\n\tbuf = this._buffer;\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tif ( buf[i] ) {\n\t\t\tout.push( 'true' );\n\t\t} else {\n\t\t\tout.push( 'false' );\n\t\t}\n\t}\n\treturn out.join( ',' );\n});\n\n/**\n* Returns an iterator for iterating over each value in a typed array.\n*\n* @name values\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @throws {TypeError} `this` must be a boolean array\n* @returns {Iterator} iterator\n*\n* @example\n* var arr = new BooleanArray( 2 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n*\n* var iter = arr.values();\n*\n* var v = iter.next().value;\n* // returns true\n*\n* v = iter.next().value;\n* // returns false\n*\n* var bool = iter.next().done;\n* // returns true\n*/\nsetReadOnly( BooleanArray.prototype, 'values', function values() {\n\tvar iter;\n\tvar self;\n\tvar len;\n\tvar FLG;\n\tvar buf;\n\tvar i;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tself = this;\n\tbuf = this._buffer;\n\tlen = this._length;\n\n\t// Initialize an iteration index:\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\tif ( ITERATOR_SYMBOL ) {\n\t\tsetReadOnly( iter, ITERATOR_SYMBOL, 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 >= len ) {\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': Boolean( buf[ 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 self.values();\n\t}\n});\n\n/**\n* Returns a new typed array with the element at a provided index replaced with a provided value.\n*\n* @name with\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {integer} index - element index\n* @param {boolean} value - new value\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} first argument must be an integer\n* @throws {RangeError} index argument is out-of-bounds\n* @throws {TypeError} second argument must be a boolean\n* @returns {BooleanArray} new typed array\n*\n* @example\n* var arr = new BooleanArray( 3 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( true, 2 );\n*\n* var out = arr.with( 0, false );\n* // returns \n*\n* var v = out.get( 0 );\n* // returns false\n*/\nsetReadOnly( BooleanArray.prototype, 'with', function copyWith( index, value ) {\n\tvar buf;\n\tvar out;\n\tvar len;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tif ( !isInteger( index ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an integer. Value: `%s`.', index ) );\n\t}\n\tlen = this._length;\n\tif ( index < 0 ) {\n\t\tindex += len;\n\t}\n\tif ( index < 0 || index >= len ) {\n\t\tthrow new RangeError( format( 'invalid argument. Index argument is out-of-bounds. Value: `%s`.', index ) );\n\t}\n\tif ( !isBoolean( value ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be a boolean. Value: `%s`.', value ) );\n\t}\n\tout = new this.constructor( this._buffer );\n\tbuf = out._buffer; // eslint-disable-line no-underscore-dangle\n\tif ( value ) {\n\t\tbuf[ index ] = 1;\n\t} else {\n\t\tbuf[ index ] = 0;\n\t}\n\treturn out;\n});\n\n\n// EXPORTS //\n\nexport default BooleanArray;\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 Boolean from '@stdlib/boolean/ctor';\n\n\n// MAIN //\n\n/**\n* Fills an output array with \"boolean\" values.\n*\n* @private\n* @param {Uint8Array} buf - output array\n* @param {Array} arr - input array\n* @returns {Uint8Array} output array\n*/\nfunction fromArray( buf, arr ) {\n\tvar len;\n\tvar i;\n\n\tlen = arr.length;\n\tfor ( i = 0; i < len; i++ ) {\n\t\tbuf[ i ] = Boolean( arr[ i ] );\n\t}\n\treturn buf;\n}\n\n\n// EXPORTS //\n\nexport default fromArray;\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 Boolean from '@stdlib/boolean/ctor';\n\n\n// MAIN //\n\n/**\n* Returns an array of iterated values.\n*\n* @private\n* @param {Object} it - iterator\n* @param {Function} clbk - callback to invoke for each iterated value\n* @param {*} thisArg - invocation context\n* @returns {Array} output array\n*/\nfunction fromIteratorMap( it, clbk, thisArg ) {\n\tvar out;\n\tvar v;\n\tvar i;\n\n\tout = [];\n\ti = -1;\n\twhile ( true ) {\n\t\tv = it.next();\n\t\tif ( v.done ) {\n\t\t\tbreak;\n\t\t}\n\t\ti += 1;\n\t\tout.push( Boolean( clbk.call( thisArg, v.value, i ) ) );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default fromIteratorMap;\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 Float64Array from '@stdlib/array/float64';\nimport Float32Array from '@stdlib/array/float32';\nimport Uint32Array from '@stdlib/array/uint32';\nimport Int32Array from '@stdlib/array/int32';\nimport Uint16Array from '@stdlib/array/uint16';\nimport Int16Array from '@stdlib/array/int16';\nimport Uint8Array from '@stdlib/array/uint8';\nimport Uint8ClampedArray from '@stdlib/array/uint8c';\nimport Int8Array from '@stdlib/array/int8';\nimport Complex64Array from '@stdlib/array/complex64';\nimport Complex128Array from '@stdlib/array/complex128';\nimport BooleanArray from '@stdlib/array/bool';\n\n\n// MAIN //\n\n// Note: order should match `dtypes` order\nvar CTORS = [\n\tFloat64Array,\n\tFloat32Array,\n\tInt32Array,\n\tUint32Array,\n\tInt16Array,\n\tUint16Array,\n\tInt8Array,\n\tUint8Array,\n\tUint8ClampedArray,\n\tComplex64Array,\n\tComplex128Array,\n\tBooleanArray\n];\n\n\n// EXPORTS //\n\nexport default CTORS;\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// MAIN //\n\n// Note: order should match `ctors` order\nvar DTYPES = [\n\t'float64',\n\t'float32',\n\t'int32',\n\t'uint32',\n\t'int16',\n\t'uint16',\n\t'int8',\n\t'uint8',\n\t'uint8c',\n\t'complex64',\n\t'complex128',\n\t'bool'\n];\n\n\n// EXPORTS //\n\nexport default DTYPES;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isBuffer from '@stdlib/assert/is-buffer';\nimport isArray from '@stdlib/assert/is-array';\nimport constructorName from '@stdlib/utils/constructor-name';\nimport ctor2dtype from './ctor2dtype.js';\nimport CTORS from './ctors.js';\nimport DTYPES from './dtypes.js';\n\n\n// VARIABLES //\n\nvar NTYPES = DTYPES.length;\n\n\n// MAIN //\n\n/**\n* Returns the data type of an ndarray data buffer.\n*\n* @param {*} value - input value\n* @returns {(string|null)} data type\n*\n* @example\n* var dt = dtype( [ 1, 2, 3 ] );\n* // returns 'generic'\n*\n* var dt = dtype( 'beep' );\n* // returns null\n*/\nfunction dtype( value ) {\n\tvar i;\n\tif ( isArray( value ) ) {\n\t\treturn 'generic';\n\t}\n\tif ( isBuffer( value ) ) {\n\t\treturn 'binary';\n\t}\n\tfor ( i = 0; i < NTYPES; i++ ) {\n\t\tif ( value instanceof CTORS[ i ] ) {\n\t\t\treturn DTYPES[ i ];\n\t\t}\n\t}\n\t// If the above failed, fall back to a more robust (and significantly slower) means for resolving underlying data types:\n\treturn ctor2dtype[ constructorName( value ) ] || null;\n}\n\n\n// EXPORTS //\n\nexport default dtype;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 main = ( typeof Buffer === 'function' ) ? Buffer : null; // eslint-disable-line stdlib/require-globals\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// MAIN //\n\nvar ctor = require( 'buffer' ).Buffer; // eslint-disable-line stdlib/require-globals\n\n\n// EXPORTS //\n\nexport default ctor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Buffer constructor.\n*\n* @module @stdlib/buffer/ctor\n*\n* @example\n* import ctor from '@stdlib/buffer/ctor';\n*\n* var b = new ctor( [ 1, 2, 3, 4 ] );\n* // returns \n*/\n\n// MODULES //\n\nimport hasNodeBufferSupport from '@stdlib/assert/has-node-buffer-support';\nimport main from './main.js';\nimport polyfill from './polyfill.js';\n\n\n// MAIN //\n\nvar ctor;\nif ( hasNodeBufferSupport() ) {\n\tctor = main;\n} else {\n\tctor = polyfill;\n}\n\n\n// EXPORTS //\n\nexport default ctor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isBuffer from './../../is-buffer';\nimport GlobalBuffer from './buffer.js';\n\n\n// MAIN //\n\n/**\n* Tests for native `Buffer` support.\n*\n* @returns {boolean} boolean indicating if an environment has `Buffer` support\n*\n* @example\n* var bool = hasNodeBufferSupport();\n* // returns \n*/\nfunction hasNodeBufferSupport() {\n\tvar bool;\n\tvar b;\n\n\tif ( typeof GlobalBuffer !== 'function' ) {\n\t\treturn false;\n\t}\n\t// Test basic support...\n\ttry {\n\t\tif ( typeof GlobalBuffer.from === 'function' ) {\n\t\t\tb = GlobalBuffer.from( [ 1, 2, 3, 4 ] );\n\t\t} else {\n\t\t\tb = new GlobalBuffer( [ 1, 2, 3, 4 ] ); // Note: this is deprecated behavior starting in Node v6 (see https://nodejs.org/api/buffer.html#buffer_new_buffer_array)\n\t\t}\n\t\tbool = (\n\t\t\tisBuffer( b ) &&\n\t\t\tb[ 0 ] === 1 &&\n\t\t\tb[ 1 ] === 2 &&\n\t\t\tb[ 2 ] === 3 &&\n\t\t\tb[ 3 ] === 4\n\t\t);\n\t} catch ( err ) { // eslint-disable-line no-unused-vars\n\t\tbool = false;\n\t}\n\treturn bool;\n}\n\n\n// EXPORTS //\n\nexport default hasNodeBufferSupport;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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: write (browser) polyfill\n\n// MAIN //\n\n/**\n* Buffer constructor.\n*\n* @throws {Error} not implemented\n*/\nfunction polyfill() {\n\tthrow new Error( 'not implemented' );\n}\n\n\n// EXPORTS //\n\nexport default polyfill;\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 Buffer from '@stdlib/buffer/ctor';\nimport Float64Array from '@stdlib/array/float64';\nimport Float32Array from '@stdlib/array/float32';\nimport Int16Array from '@stdlib/array/int16';\nimport Int32Array from '@stdlib/array/int32';\nimport Int8Array from '@stdlib/array/int8';\nimport Uint16Array from '@stdlib/array/uint16';\nimport Uint32Array from '@stdlib/array/uint32';\nimport Uint8Array from '@stdlib/array/uint8';\nimport Uint8ClampedArray from '@stdlib/array/uint8c';\nimport Complex64Array from '@stdlib/array/complex64';\nimport Complex128Array from '@stdlib/array/complex128';\nimport BooleanArray from '@stdlib/array/bool';\n\n\n// MAIN //\n\n// Mapping from data types to underlying buffer constructors...\nvar ctors = {\n\t'binary': Buffer,\n\t'float64': Float64Array,\n\t'float32': Float32Array,\n\t'generic': Array, // TODO: replace with `stdlib` pkg\n\t'int16': Int16Array,\n\t'int32': Int32Array,\n\t'int8': Int8Array,\n\t'uint16': Uint16Array,\n\t'uint32': Uint32Array,\n\t'uint8': Uint8Array,\n\t'uint8c': Uint8ClampedArray,\n\t'complex64': Complex64Array,\n\t'complex128': Complex128Array,\n\t'bool': BooleanArray\n};\n\n\n// EXPORTS //\n\nexport default ctors;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Allocate a buffer having a specified number of bytes.\n*\n* @module @stdlib/buffer/alloc-unsafe\n*\n* @example\n* import allocUnsafe from '@stdlib/buffer/alloc-unsafe';\n*\n* var buf = allocUnsafe( 10 );\n* // returns \n*/\n\n// MODULES //\n\nimport hasAllocUnsafe from './has_alloc_unsafe.js';\nimport main from './main.js';\nimport polyfill from './polyfill.js';\n\n\n// MAIN //\n\nvar allocUnsafe;\nif ( hasAllocUnsafe ) {\n\tallocUnsafe = main;\n} else {\n\tallocUnsafe = polyfill;\n}\n\n\n// EXPORTS //\n\nexport default allocUnsafe;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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 Buffer from './../../ctor';\n\n\n// MAIN //\n\nvar bool = isFunction( Buffer.allocUnsafe );\n\n\n// EXPORTS //\n\nexport default bool;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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 '@stdlib/assert/is-nonnegative-integer';\nimport format from '@stdlib/string/format';\nimport Buffer from './../../ctor';\n\n\n// MAIN //\n\n/**\n* Allocates a buffer having a specified number of bytes.\n*\n* ## Notes\n*\n* - The underlying memory of returned `Buffer` instances is not initialized. Memory contents are unknown and may contain sensitive data.\n* - When the size is less than half the pool size (specified on the `Buffer` constructor), memory is allocated from the `Buffer` pool for faster allocation of new `Buffer` instances.\n*\n* @param {NonNegativeInteger} size - number of bytes to allocate\n* @throws {TypeError} must provide a nonnegative integer\n* @returns {Buffer} new `Buffer` instance\n*\n* @example\n* var buf = allocUnsafe( 10 );\n* // returns \n*/\nfunction allocUnsafe( size ) {\n\tif ( !isNonNegativeInteger( size ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide a nonnegative integer. Value: `%s`.', size ) );\n\t}\n\treturn Buffer.allocUnsafe( size );\n}\n\n\n// EXPORTS //\n\nexport default allocUnsafe;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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 '@stdlib/assert/is-nonnegative-integer';\nimport format from '@stdlib/string/format';\nimport Buffer from './../../ctor';\n\n\n// MAIN //\n\n/**\n* Allocates a buffer having a specified number of bytes.\n*\n* ## Notes\n*\n* - The underlying memory of returned `Buffer` instances is not initialized. Memory contents are unknown and may contain sensitive data.\n* - When the size is less than half the pool size (specified on the `Buffer` constructor), memory is allocated from the `Buffer` pool for faster allocation of new `Buffer` instances.\n*\n* @param {NonNegativeInteger} size - number of bytes to allocate\n* @throws {TypeError} must provide a nonnegative integer\n* @returns {Buffer} new `Buffer` instance\n*\n* @example\n* var buf = allocUnsafe( 10 );\n* // returns \n*/\nfunction allocUnsafe( size ) {\n\tif ( !isNonNegativeInteger( size ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide a nonnegative integer. Value: `%s`.', size ) );\n\t}\n\treturn new Buffer( size );\n}\n\n\n// EXPORTS //\n\nexport default allocUnsafe;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport bufferCtors from './../../../base/buffer-ctors';\nimport allocUnsafe from '@stdlib/buffer/alloc-unsafe';\nimport zeros from './zeros.js';\n\n\n// FUNCTIONS //\n\n/**\n* Returns a zero-filled generic array.\n*\n* @private\n* @param {NonNegativeInteger} size - buffer size\n* @returns {Array} zero-filled generic array\n*/\nfunction generic( size ) {\n\tvar buf;\n\tvar i;\n\n\tbuf = [];\n\tfor ( i = 0; i < size; i++ ) {\n\t\tbuf.push( 0 );\n\t}\n\treturn buf;\n}\n\n/**\n* Returns a zero-filled binary buffer.\n*\n* @private\n* @param {NonNegativeInteger} size - buffer size\n* @returns {Buffer} zero-filled binary buffer\n*/\nfunction binary( size ) {\n\treturn zeros( allocUnsafe( size ) );\n}\n\n/**\n* Returns a typed array.\n*\n* @private\n* @param {string} dtype - data type\n* @param {NonNegativeInteger} size - buffer size\n* @returns {(TypedArray|null)} typed array\n*/\nfunction typedarray( dtype, size ) {\n\tvar ctor = bufferCtors( dtype );\n\tif ( ctor ) {\n\t\treturn new ctor( size );\n\t}\n\treturn null;\n}\n\n\n// MAIN //\n\n/**\n* Returns a contiguous linear ndarray data buffer.\n*\n* @param {string} dtype - data type\n* @param {NonNegativeInteger} size - buffer size\n* @returns {(Array|TypedArray|Buffer|null)} data buffer\n*\n* @example\n* var buf = buffer( 'float64', 3 );\n* // returns [ 0.0, 0.0, 0.0 ]\n*/\nfunction buffer( dtype, size ) {\n\tif ( dtype === 'generic' ) {\n\t\treturn generic( size );\n\t}\n\tif ( dtype === 'binary' ) {\n\t\treturn binary( size );\n\t}\n\treturn typedarray( dtype, size );\n}\n\n\n// EXPORTS //\n\nexport default buffer;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport table from './ctors.js';\n\n\n// MAIN //\n\n/**\n* Returns an ndarray data buffer constructor.\n*\n* @param {string} dtype - data type\n* @returns {(Function|null)} data buffer constructor or null\n*\n* @example\n* var ctor = ctors( 'float64' );\n* // returns \n*\n* @example\n* var ctor = ctors( 'float' );\n* // returns null\n*/\nfunction ctors( dtype ) {\n\treturn table[ dtype ] || null;\n}\n\n\n// EXPORTS //\n\nexport default ctors;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Fills an array-like object with zeros.\n*\n* @private\n* @param {(Array|TypedArray|Buffer)} v - array-like object to fill\n* @returns {(Array|TypedArray|Buffer)} input value\n*\n* @example\n* var arr = zeros( new Array( 2 ) );\n* // returns [ 0, 0 ]\n*/\nfunction zeros( v ) {\n\tvar i;\n\tfor ( i = 0; i < v.length; i++ ) {\n\t\tv[ i ] = 0;\n\t}\n\treturn v;\n}\n\n\n// EXPORTS //\n\nexport default zeros;\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// MAIN //\n\n/**\n* Copies the elements of an indexed array-like object to a new \"generic\" array.\n*\n* @param {Collection} x - input array\n* @returns {Array} output array\n*\n* @example\n* var out = copy( [ 1, 2, 3 ] );\n* // returns [ 1, 2, 3 ]\n*/\nfunction copy( x ) {\n\tvar out;\n\tvar len;\n\tvar i;\n\n\tlen = x.length;\n\tout = [];\n\tfor ( i = 0; i < len; i++ ) {\n\t\tout.push( x[ i ] ); // use `Array#push` to ensure \"fast\" elements\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default copy;\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 copyIndexed from '@stdlib/array/base/copy-indexed';\n\n\n// MAIN //\n\n/**\n* Returns the shape of a provided ndarray.\n*\n* @param {ndarrayLike} x - input ndarray\n* @param {boolean} copy - boolean indicating whether to explicitly copy the value assigned to the input ndarray's `shape` property\n* @returns {NonNegativeIntegerArray} shape\n*\n* @example\n* import zeros from '@stdlib/ndarray/zeros';\n*\n* var out = shape( zeros( [ 3, 3, 3 ] ), false );\n* // returns [ 3, 3, 3 ]\n*/\nfunction shape( x, copy ) {\n\tvar sh = x.shape;\n\tif ( copy ) {\n\t\treturn copyIndexed( sh );\n\t}\n\treturn sh;\n}\n\n\n// EXPORTS //\n\nexport default shape;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// FUNCTIONS //\n\n/**\n* Generates a stride array from an array shape (row-major).\n*\n* @private\n* @param {NonNegativeIntegerArray} shape - array shape\n* @returns {Array} array strides\n*/\nfunction rowmajor( shape ) {\n\tvar ndims;\n\tvar out;\n\tvar s;\n\tvar i;\n\n\tndims = shape.length;\n\tout = [];\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\tout.push( 0 );\n\t}\n\ts = 1;\n\tfor ( i = ndims-1; i >= 0; i-- ) {\n\t\tout[ i ] = s;\n\t\ts *= shape[ i ];\n\t}\n\treturn out;\n}\n\n/**\n* Generates a stride array from an array shape (column-major).\n*\n* @private\n* @param {NonNegativeIntegerArray} shape - array shape\n* @returns {Array} array strides\n*/\nfunction columnmajor( shape ) {\n\tvar out;\n\tvar s;\n\tvar i;\n\n\tout = [];\n\ts = 1;\n\tfor ( i = 0; i < shape.length; i++ ) {\n\t\tout.push( s );\n\t\ts *= shape[ i ];\n\t}\n\treturn out;\n}\n\n\n// MAIN //\n\n/**\n* Generates a stride array from an array shape.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {string} order - specifies whether an array is row-major (C-style) or column-major (Fortran-style)\n* @returns {Array} array strides\n*\n* @example\n* var s = shape2strides( [ 3, 2 ], 'row-major' );\n* // returns [ 2, 1 ]\n*\n* s = shape2strides( [ 3, 2 ], 'column-major' );\n* // returns [ 1, 3 ]\n*/\nfunction shape2strides( shape, order ) {\n\tif ( order === 'column-major' ) {\n\t\treturn columnmajor( shape );\n\t}\n\treturn rowmajor( shape );\n}\n\n\n// EXPORTS //\n\nexport default shape2strides;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Generate a stride array from an array shape.\n*\n* @module @stdlib/ndarray/base/shape2strides\n*\n* @example\n* import shape2strides from '@stdlib/ndarray/base/shape2strides';\n*\n* var strides = shape2strides( [ 3, 2 ], 'row-major' );\n* // returns [ 2, 1 ]\n*\n* strides = shape2strides( [ 3, 2 ], 'column-major' );\n* // returns [ 1, 3 ]\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// FUNCTIONS //\n\n/**\n* Generates a stride array from an array shape (row-major).\n*\n* @private\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {(Array|TypedArray|Object)} out - output object\n* @returns {(Array|TypedArray|Object)} array strides\n*/\nfunction rowmajor( shape, out ) {\n\tvar ndims;\n\tvar s;\n\tvar i;\n\n\tndims = shape.length;\n\ts = 1;\n\tfor ( i = ndims-1; i >= 0; i-- ) {\n\t\tout[ i ] = s;\n\t\ts *= shape[ i ];\n\t}\n\treturn out;\n}\n\n/**\n* Generates a stride array from an array shape (column-major).\n*\n* @private\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {(Array|TypedArray|Object)} out - output object\n* @returns {(Array|TypedArray|Object)} array strides\n*/\nfunction columnmajor( shape, out ) {\n\tvar s;\n\tvar i;\n\n\ts = 1;\n\tfor ( i = 0; i < shape.length; i++ ) {\n\t\tout[ i ] = s;\n\t\ts *= shape[ i ];\n\t}\n\treturn out;\n}\n\n\n// MAIN //\n\n/**\n* Generates a stride array from an array shape.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {string} order - specifies whether an array is row-major (C-style) or column-major (Fortran-style)\n* @param {(Array|TypedArray|Object)} out - output object\n* @returns {(Array|TypedArray|Object)} array strides\n*\n* @example\n* var strides = [ 0, 0 ];\n*\n* var out = shape2strides( [ 3, 2 ], 'row-major', strides );\n* // returns [ 2, 1 ]\n*\n* var bool = ( out === strides );\n* // returns true\n*\n* out = shape2strides( [ 3, 2 ], 'column-major', strides );\n* // returns [ 1, 3 ]\n*/\nfunction shape2strides( shape, order, out ) {\n\tif ( order === 'column-major' ) {\n\t\treturn columnmajor( shape, out );\n\t}\n\treturn rowmajor( shape, out );\n}\n\n\n// EXPORTS //\n\nexport default shape2strides;\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 shape2strides from './../../../base/shape2strides';\nimport copyIndexed from '@stdlib/array/base/copy-indexed';\n\n\n// VARIABLES //\n\nvar ROW_MAJOR = 'row-major';\n\n\n// MAIN //\n\n/**\n* Returns the strides of a provided ndarray.\n*\n* @param {ndarrayLike} x - input ndarray\n* @param {boolean} copy - boolean indicating whether to explicitly copy the value assigned to the input ndarray's `strides` property\n* @returns {IntegerArray} strides\n*\n* @example\n* import zeros from '@stdlib/ndarray/zeros';\n*\n* var out = strides( zeros( [ 3, 3, 3 ] ), false );\n* // returns [ 9, 3, 1 ]\n*/\nfunction strides( x, copy ) {\n\tvar ord;\n\tvar sh;\n\tvar st;\n\n\tst = x.strides;\n\tif ( typeof st !== 'object' || st === null ) {\n\t\tsh = x.shape;\n\t\tif ( sh.length === 0 ) {\n\t\t\treturn [ 0 ];\n\t\t}\n\t\tord = x.order;\n\t\tif ( typeof ord !== 'string' ) {\n\t\t\tord = ROW_MAJOR;\n\t\t}\n\t\treturn shape2strides( sh, ord );\n\t}\n\tif ( copy ) {\n\t\treturn copyIndexed( st );\n\t}\n\treturn st;\n}\n\n\n// EXPORTS //\n\nexport default strides;\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 strides2offset from './../../../base/strides2offset';\n\n\n// MAIN //\n\n/**\n* Returns the index offset specifying the underlying buffer index of the first iterated ndarray element.\n*\n* @param {ndarrayLike} x - input ndarray\n* @returns {NonNegativeInteger} index offset\n*\n* @example\n* import zeros from '@stdlib/ndarray/zeros';\n*\n* var n = offset( zeros( [ 3, 3, 3 ] ) );\n* // returns 0\n*/\nfunction offset( x ) {\n\tvar st;\n\tvar sh;\n\tvar o;\n\n\to = x.offset;\n\tif ( typeof o === 'number' ) {\n\t\treturn o;\n\t}\n\tsh = x.shape;\n\tif ( sh.length === 0 ) {\n\t\treturn 0;\n\t}\n\tst = x.strides;\n\tif ( typeof st !== 'object' || st === null ) {\n\t\treturn 0;\n\t}\n\treturn strides2offset( sh, st );\n}\n\n\n// EXPORTS //\n\nexport default offset;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 index offset which specifies the location of the first indexed value in a multidimensional array based on a stride array.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {IntegerArray} strides - stride array\n* @returns {NonNegativeInteger} offset - offset\n*\n* @example\n* var shape = [ 2, 3, 10 ];\n* var strides = [ 30, -10, 1 ];\n*\n* var offset = strides2offset( shape, strides );\n* // returns 20\n*/\nfunction strides2offset( shape, strides ) {\n\tvar offset;\n\tvar ndims;\n\tvar i;\n\n\tndims = shape.length;\n\toffset = 0;\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\tif ( strides[ i ] < 0 ) {\n\t\t\t// Note that, since the stride is negative, this operation increments, not decrements, the offset...\n\t\t\toffset -= strides[ i ] * ( shape[ i ]-1 );\n\t\t}\n\t}\n\treturn offset;\n}\n\n\n// EXPORTS //\n\nexport default strides2offset;\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 strides2order from './../../../base/strides2order';\n\n\n// VARIABLES //\n\nvar ROW_MAJOR = 'row-major';\nvar COLUMN_MAJOR = 'column-major';\n\n\n// MAIN //\n\n/**\n* Returns the layout order of a provided ndarray.\n*\n* @param {ndarrayLike} x - input ndarray\n* @returns {(string|null)} layout order\n*\n* @example\n* import zeros from '@stdlib/ndarray/zeros';\n*\n* var x = zeros( [ 3, 3, 3 ], {\n* 'order': 'row-major'\n* });\n*\n* var out = order( x );\n* // returns 'row-major'\n*/\nfunction order( x ) {\n\tvar st;\n\tvar o;\n\n\to = x.order;\n\tif ( typeof o === 'string' ) {\n\t\treturn o;\n\t}\n\t// Try to infer the layout order from the strides array...\n\tst = x.strides;\n\tif ( typeof st !== 'object' || st === null ) {\n\t\treturn ROW_MAJOR; // WARNING: default to row-major for ndarray-like objects lacking strides. This may or may not be accurate, and we're defaulting to row-major here based on the belief that row-major is more likely given that, e.g., JavaScript arrays are similar to C arrays (i.e., stored in row-major order).\n\t}\n\to = strides2order( st );\n\tif ( o === 1 || o === 3 ) {\n\t\treturn ROW_MAJOR; // for o == 3 (both row- and column-major; e.g., one-dimensional ndarrays), default to row-major\n\t}\n\tif ( o === 2 ) {\n\t\treturn COLUMN_MAJOR;\n\t}\n\t// o === 0\n\tif ( x.shape.length === 0 ) {\n\t\treturn ROW_MAJOR; // default to row-major for zero-dimensional ndarrays\n\t}\n\t// Case: mixed strides (e.g., [ 2, 3, 1 ] )\n\treturn null;\n}\n\n\n// EXPORTS //\n\nexport default order;\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* Returns the data type of a provided ndarray.\n*\n* @param {ndarrayLike} x - input ndarray\n* @returns {string} data type\n*\n* @example\n* import zeros from '@stdlib/ndarray/zeros';\n*\n* var x = zeros( [ 3, 3, 3 ], {\n* 'dtype': 'float64'\n* });\n*\n* var dt = dtype( x );\n* // returns 'float64'\n*/\nfunction dtype( x ) {\n\treturn x.dtype;\n}\n\n\n// EXPORTS //\n\nexport default dtype;\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* Returns the underlying data buffer of a provided ndarray.\n*\n* @param {ndarrayLike} x - input ndarray\n* @returns {Collection} underlying data buffer\n*\n* @example\n* import zeros from '@stdlib/ndarray/zeros';\n*\n* var x = zeros( [ 3, 3, 3 ], {\n* 'dtype': 'float64'\n* });\n*\n* var out = data( x );\n* // returns \n*/\nfunction data( x ) {\n\treturn x.data;\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 copy from '@stdlib/array/base/copy-indexed';\nimport ndarray from './../../../base/ctor';\nimport getShape from './../../../base/shape';\nimport getStrides from './../../../base/strides';\nimport getOffset from './../../../base/offset';\nimport getOrder from './../../../base/order';\nimport getDType from './../../../base/dtype';\nimport getData from './../../../base/data-buffer';\nimport format from '@stdlib/string/format';\n\n\n// MAIN //\n\n/**\n* Broadcasts an ndarray to a specified shape.\n*\n* ## Notes\n*\n* - The returned array is a view on the input array data buffer. The view is typically **not** contiguous. As more than one element of a returned view may refer to the same memory location, writing to the view may affect multiple elements. If you need to write to the returned array, copy the array before performing operations which may mutate elements.\n*\n* @param {ndarray} arr - input array\n* @param {NonNegativeIntegerArray} shape - desired shape\n* @throws {Error} input array cannot have more dimensions than the desired shape\n* @throws {Error} input array dimension sizes must be `1` or equal to the corresponding dimension in the provided shape\n* @throws {Error} input array and desired shape must be broadcast compatible\n* @returns {ndarray} broadcasted array\n*\n* @example\n* import array from '@stdlib/ndarray/array';\n*\n* var x = array( [ [ 1, 2 ], [ 3, 4 ] ] );\n* // returns \n*\n* var shx = x.shape;\n* // returns [ 2, 2 ]\n*\n* var y = broadcastArray( x, [ 3, 2, 2 ] );\n* // returns \n*\n* var shy = y.shape;\n* // returns [ 3, 2, 2 ]\n*\n* var v = y.get( 0, 0, 0 );\n* // returns 1\n*\n* v = y.get( 0, 0, 1 );\n* // returns 2\n*\n* v = y.get( 1, 0, 0 );\n* // returns 1\n*\n* v = y.get( 1, 1, 0 );\n* // returns 3\n*\n* v = y.get( 2, 0, 0 );\n* // returns 1\n*\n* v = y.get( 2, 1, 1 );\n* // returns 4\n*\n* @example\n* import array from '@stdlib/ndarray/array';\n*\n* var x = array( [ [ 1, 2 ], [ 3, 4 ] ] );\n* // returns \n*\n* var y = broadcastArray( x, [ 3, 2 ] );\n* // throws \n*/\nfunction broadcastArray( arr, shape ) {\n\tvar strides;\n\tvar dim;\n\tvar sh;\n\tvar st;\n\tvar N;\n\tvar M;\n\tvar d;\n\tvar i;\n\tvar j;\n\n\tN = shape.length;\n\tsh = getShape( arr, false );\n\tM = sh.length;\n\tif ( N < M ) {\n\t\tthrow new Error( 'invalid argument. Cannot broadcast an array to a shape having fewer dimensions. Arrays can only be broadcasted to shapes having the same or more dimensions.' );\n\t}\n\t// Initialize a strides array...\n\tstrides = [];\n\tfor ( i = 0; i < N; i++ ) {\n\t\tstrides.push( 0 );\n\t}\n\t// Determine the output array strides...\n\tst = getStrides( arr, false );\n\tfor ( i = N-1; i >= 0; i-- ) {\n\t\tj = M - N + i;\n\t\tif ( j < 0 ) {\n\t\t\t// Prepended singleton dimension; stride is zero...\n\t\t\tcontinue;\n\t\t}\n\t\td = sh[ j ];\n\t\tdim = shape[ i ];\n\t\tif ( dim !== 0 && dim < d ) {\n\t\t\tthrow new Error( format( 'invalid argument. Input array cannot be broadcast to the specified shape, as the specified shape has a dimension whose size is less than the size of the corresponding dimension in the input array. Array shape: (%s). Desired shape: (%s). Dimension: %u.', copy( sh ).join( ', ' ), copy( shape ).join( ', ' ), i ) );\n\t\t}\n\t\tif ( d === dim ) {\n\t\t\tstrides[ i ] = st[ j ];\n\t\t} else if ( d === 1 ) {\n\t\t\t// In order to broadcast dimensions, we set the stride for that dimension to zero...\n\t\t\tstrides[ i ] = 0;\n\t\t} else {\n\t\t\t// At this point, we know that `dim > d` and that `d` does not equal `1` (e.g., `dim=3` and `d=2`); in which case, the shapes are considered incompatible (even for desired shapes which are multiples of array dimensions, as might be desired when \"tiling\" an array; e.g., `dim=4` and `d=2`)...\n\t\t\tthrow new Error( format( 'invalid argument. Input array and the specified shape are broadcast incompatible. Array shape: (%s). Desired shape: (%s). Dimension: %u.', copy( sh ).join( ', ' ), copy( shape ).join( ', ' ), i ) );\n\t\t}\n\t}\n\treturn ndarray( getDType( arr ), getData( arr ), copy( shape ), strides, getOffset( arr ), getOrder( arr ) ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default broadcastArray;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isArrayLike from './../../../is-array-like';\nimport format from '@stdlib/string/format';\n\n\n// MAIN //\n\n/**\n* Returns a function which tests if every element in an array-like object passes a test condition.\n*\n* @param {Function} predicate - function to apply\n* @throws {TypeError} must provide a function\n* @returns {Function} an array-like object function\n*\n* @example\n* import isOdd from '@stdlib/assert/is-odd';\n*\n* var arr1 = [ 1, 3, 5, 7 ];\n* var arr2 = [ 3, 5, 8 ];\n*\n* var validate = arraylikefcn( isOdd );\n*\n* var bool = validate( arr1 );\n* // returns true\n*\n* bool = validate( arr2 );\n* // returns false\n*/\nfunction arraylikefcn( predicate ) {\n\tif ( typeof predicate !== 'function' ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide a function. Value: `%s`.', predicate ) );\n\t}\n\treturn every;\n\n\t/**\n\t* Tests if every element in an array-like object passes a test condition.\n\t*\n\t* @private\n\t* @param {*} value - value to test\n\t* @returns {boolean} boolean indicating whether a value is an array-like object for which all elements pass a test condition\n\t*/\n\tfunction every( value ) {\n\t\tvar len;\n\t\tvar i;\n\t\tif ( !isArrayLike( value ) ) {\n\t\t\treturn false;\n\t\t}\n\t\tlen = value.length;\n\t\tif ( len === 0 ) {\n\t\t\treturn false;\n\t\t}\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tif ( predicate( value[ i ] ) === false ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t\treturn true;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default arraylikefcn;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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 '@stdlib/math/base/assert/is-integer';\nimport MAX_LENGTH from '@stdlib/constants/array/max-array-length';\n\n\n// MAIN //\n\n/**\n* Tests if a value is array-like.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is array-like\n*\n* @example\n* var bool = isArrayLike( [] );\n* // returns true\n*\n* @example\n* var bool = isArrayLike( {'length':10} );\n* // returns true\n*/\nfunction isArrayLike( value ) {\n\treturn (\n\t\tvalue !== void 0 &&\n\t\tvalue !== null &&\n\t\ttypeof value !== 'function' &&\n\t\ttypeof value.length === 'number' &&\n\t\tisInteger( value.length ) &&\n\t\tvalue.length >= 0 &&\n\t\tvalue.length <= MAX_LENGTH\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isArrayLike;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Test if a value is an array-like object containing only nonnegative integers.\n*\n* @module @stdlib/assert/is-nonnegative-integer-array\n*\n* @example\n* import isNonNegativeIntegerArray from '@stdlib/assert/is-nonnegative-integer-array';\n*\n* var bool = isNonNegativeIntegerArray( [ 3.0, new Number(3.0) ] );\n* // returns true\n*\n* bool = isNonNegativeIntegerArray( [ 3.0, '3.0' ] );\n* // returns false\n*\n* @example\n* import { primitives as isNonNegativeIntegerArray } from '@stdlib/assert/is-nonnegative-integer-array';\n*\n* var bool = isNonNegativeIntegerArray( [ 1.0, 0.0, 10.0 ] );\n* // returns true\n*\n* bool = isNonNegativeIntegerArray( [ 3.0, new Number(1.0) ] );\n* // returns false\n*\n* @example\n* import { objects as isNonNegativeIntegerArray } from '@stdlib/assert/is-nonnegative-integer-array';\n*\n* var bool = isNonNegativeIntegerArray( [ new Number(3.0), new Number(1.0) ] );\n* // returns true\n*\n* bool = isNonNegativeIntegerArray( [ 1.0, 0.0, 10.0 ] );\n* // returns false\n*/\n\n// MODULES //\n\nimport isNonNegativeInteger from './../../is-nonnegative-integer';\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport arrayfun from './../../tools/array-like-function';\n\n\n// VARIABLES //\n\nvar isPrimitiveArray = arrayfun( isNonNegativeInteger.isPrimitive );\nvar isObjectArray = arrayfun( isNonNegativeInteger.isObject );\n\n\n// MAIN //\n\nvar isNonNegativeIntegerArray = arrayfun( isNonNegativeInteger );\nsetReadOnly( isNonNegativeIntegerArray, 'primitives', isPrimitiveArray );\nsetReadOnly( isNonNegativeIntegerArray, 'objects', isObjectArray );\n\n\n// EXPORTS //\n\nexport default isNonNegativeIntegerArray;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Test if a value is an array-like object containing only integers.\n*\n* @module @stdlib/assert/is-integer-array\n*\n* @example\n* import isIntegerArray from '@stdlib/assert/is-integer-array';\n*\n* var bool = isIntegerArray( [ -3.0, new Number(0.0), 2.0 ] );\n* // returns true\n*\n* bool = isIntegerArray( [ -3.0, '3.0' ] );\n* // returns false\n*\n* @example\n* import { primitives as isIntegerArray } from '@stdlib/assert/is-integer-array';\n*\n* var bool = isIntegerArray( [ -1.0, 10.0 ] );\n* // returns true\n*\n* bool = isIntegerArray( [ -1.0, 0.0, 5.0 ] );\n* // returns true\n*\n* bool = isIntegerArray( [ -3.0, new Number(-1.0) ] );\n* // returns false\n*\n* @example\n* import { objects as isIntegerArray } from '@stdlib/assert/is-integer-array';\n*\n* var bool = isIntegerArray( [ new Number(1.0), new Number(3.0) ] );\n* // returns true\n*\n* bool = isIntegerArray( [ -1.0, 0.0, 3.0 ] );\n* // returns false\n*\n* bool = isIntegerArray( [ 3.0, new Number(-1.0) ] );\n* // returns false\n*/\n\n// MODULES //\n\nimport isInteger from './../../is-integer';\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport arrayfun from './../../tools/array-like-function';\n\n\n// VARIABLES //\n\nvar isPrimitiveArray = arrayfun( isInteger.isPrimitive );\nvar isObjectArray = arrayfun( isInteger.isObject );\n\n\n// MAIN //\n\nvar isIntegerArray = arrayfun( isInteger );\nsetReadOnly( isIntegerArray, 'primitives', isPrimitiveArray );\nsetReadOnly( isIntegerArray, 'objects', isObjectArray );\n\n\n// EXPORTS //\n\nexport default isIntegerArray;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport orders from './../../../../orders';\n\n\n// VARIABLES //\n\nvar ORDERS = orders();\nvar len = ORDERS.length;\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is an ndarray order.\n*\n* @param {*} v - value to test\n* @returns {boolean} boolean indicating whether an input value is an ndarray order\n*\n* @example\n* var bool = isOrder( 'row-major' );\n* // returns true\n*\n* bool = isOrder( 'column-major' );\n* // returns true\n*\n* bool = isOrder( 'foo' );\n* // returns false\n*/\nfunction isOrder( v ) {\n\tvar i;\n\tfor ( i = 0; i < len; i++ ) {\n\t\tif ( v === ORDERS[ i ] ) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default isOrder;\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// VARIABLES //\n\nvar TYPE = 'function';\n\n\n// MAIN //\n\n/**\n* Tests if an array-like object supports the accessor (get/set) protocol.\n*\n* @param {Object} value - value to test\n* @returns {boolean} boolean indicating whether a value is an accessor array\n*\n* @example\n* import Complex128Array from '@stdlib/array/complex128';\n*\n* var bool = isAccessorArray( new Complex128Array( 10 ) );\n* // returns true\n*\n* @example\n* var bool = isAccessorArray( [] );\n* // returns false\n*/\nfunction isAccessorArray( value ) {\n\treturn ( typeof value.get === TYPE && typeof value.set === TYPE ); // eslint-disable-line valid-typeof\n}\n\n\n// EXPORTS //\n\nexport default isAccessorArray;\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// MAIN //\n\n// Mapping from array constructors to data types...\nvar ctor2dtypes = {\n\t'Float32Array': 'float32',\n\t'Float64Array': 'float64',\n\t'Array': 'generic',\n\t'Int16Array': 'int16',\n\t'Int32Array': 'int32',\n\t'Int8Array': 'int8',\n\t'Uint16Array': 'uint16',\n\t'Uint32Array': 'uint32',\n\t'Uint8Array': 'uint8',\n\t'Uint8ClampedArray': 'uint8c',\n\t'Complex64Array': 'complex64',\n\t'Complex128Array': 'complex128',\n\t'BooleanArray': 'bool'\n};\n\n\n// EXPORTS //\n\nexport default ctor2dtypes;\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 Float64Array from './../../float64';\nimport Float32Array from './../../float32';\nimport Uint32Array from './../../uint32';\nimport Int32Array from './../../int32';\nimport Uint16Array from './../../uint16';\nimport Int16Array from './../../int16';\nimport Uint8Array from './../../uint8';\nimport Uint8ClampedArray from './../../uint8c';\nimport Int8Array from './../../int8';\nimport Complex64Array from './../../complex64';\nimport Complex128Array from './../../complex128';\nimport BooleanArray from './../../bool';\n\n\n// MAIN //\n\n// Note: order should match `dtypes` order\nvar CTORS = [\n\tFloat64Array,\n\tFloat32Array,\n\tInt32Array,\n\tUint32Array,\n\tInt16Array,\n\tUint16Array,\n\tInt8Array,\n\tUint8Array,\n\tUint8ClampedArray,\n\tComplex64Array,\n\tComplex128Array,\n\tBooleanArray\n];\n\n\n// EXPORTS //\n\nexport default CTORS;\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// MAIN //\n\n// Note: order should match `ctors` order\nvar DTYPES = [\n\t'float64',\n\t'float32',\n\t'int32',\n\t'uint32',\n\t'int16',\n\t'uint16',\n\t'int8',\n\t'uint8',\n\t'uint8c',\n\t'complex64',\n\t'complex128',\n\t'bool'\n];\n\n\n// EXPORTS //\n\nexport default DTYPES;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isBuffer from '@stdlib/assert/is-buffer';\nimport isArray from '@stdlib/assert/is-array';\nimport constructorName from '@stdlib/utils/constructor-name';\nimport ctor2dtype from './ctor2dtype.js';\nimport CTORS from './ctors.js';\nimport DTYPES from './dtypes.js';\n\n\n// VARIABLES //\n\nvar NTYPES = DTYPES.length;\n\n\n// MAIN //\n\n/**\n* Returns the data type of an array.\n*\n* @param {*} value - input value\n* @returns {(string|null)} data type\n*\n* @example\n* var dt = dtype( [ 1, 2, 3 ] );\n* // returns 'generic'\n*\n* var dt = dtype( 'beep' );\n* // returns null\n*/\nfunction dtype( value ) {\n\tvar i;\n\tif ( isArray( value ) ) {\n\t\treturn 'generic';\n\t}\n\tif ( isBuffer( value ) ) {\n\t\treturn null;\n\t}\n\tfor ( i = 0; i < NTYPES; i++ ) {\n\t\tif ( value instanceof CTORS[ i ] ) {\n\t\t\treturn DTYPES[ i ];\n\t\t}\n\t}\n\t// If the above failed, fall back to a more robust (and significantly slower) means for resolving underlying data types:\n\treturn ctor2dtype[ constructorName( value ) ] || null;\n}\n\n\n// EXPORTS //\n\nexport default dtype;\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 isCollection from '@stdlib/assert/is-collection';\nimport isAccessorArray from './../../../../base/assert/is-accessor-array';\nimport accessorGetter from './../../../../base/accessor-getter';\nimport dtype from './../../../../dtype';\nimport format from '@stdlib/string/format';\n\n\n// MAIN //\n\n/**\n* Returns a function to tests if an array contains a provided search value.\n*\n* @param {Collection} x - input array\n* @throws {TypeError} must provide an array-like object\n* @returns {Function} function to test if an array contains a search value\n*\n* @example\n* var contains = factory( [ 1, 2, 3 ] );\n* // returns \n*\n* var bool = contains( 2 );\n* // returns true\n*/\nfunction factory( x ) {\n\tvar get;\n\tvar len;\n\tvar dt;\n\n\tif ( !isCollection( x ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide an array-like object. Value: `%s`.', x ) );\n\t}\n\t// Resolve the input array data type:\n\tdt = dtype( x );\n\n\t// Resolve an accessor for retrieving input array elements:\n\tif ( isAccessorArray( x ) ) {\n\t\tget = accessorGetter( dt );\n\t}\n\t// Get the number of elements over which to iterate:\n\tlen = x.length;\n\n\treturn ( get === void 0 ) ? contains : accessors;\n\t/**\n\t* Tests if an array contains a provided search value.\n\t*\n\t* @private\n\t* @param {*} value - search value\n\t* @returns {boolean} boolean indicating if an array contains a search value\n\t*\n\t* @example\n\t* var out = contains( [ 1, 2, 3 ], 2 );\n\t* // returns true\n\t*/\n\tfunction contains( value ) {\n\t\tvar i;\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tif ( x[ i ] === value ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\t/**\n\t* Tests if an array contains a provided search value.\n\t*\n\t* @private\n\t* @param {*} value - search value\n\t* @returns {boolean} boolean indicating if an array contains a search value\n\t*/\n\tfunction accessors( value ) {\n\t\tvar i;\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tif ( get( x, i ) === value ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default factory;\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/**\n* Test if an array contains a provided search value.\n*\n* @module @stdlib/array/base/assert/contains\n*\n* @example\n* import contains from '@stdlib/array/base/assert/contains';\n*\n* var out = contains( [ 1, 2, 3 ], 2 );\n* // returns true\n*/\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// exports: { \"factory\": \"main.factory\" }\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 isAccessorArray from './../../../../base/assert/is-accessor-array';\nimport accessorGetter from './../../../../base/accessor-getter';\nimport getter from './../../../../base/getter';\nimport dtype from './../../../../dtype';\n\n\n// MAIN //\n\n/**\n* Tests if an array contains a provided search value.\n*\n* @param {Collection} x - input array\n* @param {*} value - search value\n* @returns {boolean} boolean indicating if an array contains a search value\n*\n* @example\n* var out = contains( [ 1, 2, 3 ], 2 );\n* // returns true\n*/\nfunction contains( x, value ) {\n\tvar len;\n\tvar get;\n\tvar dt;\n\tvar i;\n\n\t// Resolve the input array data type:\n\tdt = dtype( x );\n\n\t// Resolve an accessor for retrieving input array elements:\n\tif ( isAccessorArray( x ) ) {\n\t\tget = accessorGetter( dt );\n\t} else {\n\t\tget = getter( dt );\n\t}\n\t// Get the number of elements over which to iterate:\n\tlen = x.length;\n\n\t// Loop over the elements...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tif ( get( x, i ) === value ) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default contains;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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 contains } from '@stdlib/array/base/assert/contains';\nimport dtypes from './../../../../dtypes';\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is a supported ndarray data type.\n*\n* @name isDataType\n* @type {Function}\n* @param {*} v - value to test\n* @returns {boolean} boolean indicating whether an input value is a supported ndarray data type\n*\n* @example\n* var bool = isDataType( 'binary' );\n* // returns true\n*\n* bool = isDataType( 'float32' );\n* // returns true\n*\n* bool = isDataType( 'float64' );\n* // returns true\n*\n* bool = isDataType( 'generic' );\n* // returns true\n*\n* bool = isDataType( 'int16' );\n* // returns true\n*\n* bool = isDataType( 'int32' );\n* // returns true\n*\n* bool = isDataType( 'int8' );\n* // returns true\n*\n* bool = isDataType( 'uint16' );\n* // returns true\n*\n* bool = isDataType( 'uint32' );\n* // returns true\n*\n* bool = isDataType( 'uint8' );\n* // returns true\n*\n* bool = isDataType( 'uint8c' );\n* // returns true\n*\n* bool = isDataType( 'foo' );\n* // returns false\n*/\nvar isDataType = contains( dtypes() );\n\n\n// EXPORTS //\n\nexport default isDataType;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 number of elements in an array.\n*\n* @param {(NonNegativeIntegerArray|EmptyArray)} shape - array shape\n* @returns {NonNegativeInteger} number of elements\n*\n* @example\n* var n = numel( [ 3, 3, 3 ] );\n* // returns 27\n*/\nfunction numel( shape ) {\n\tvar ndims;\n\tvar n;\n\tvar i;\n\n\tndims = shape.length;\n\tif ( ndims === 0 ) {\n\t\treturn 0;\n\t}\n\tn = 1;\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\tn *= shape[ i ];\n\t}\n\treturn n;\n}\n\n\n// EXPORTS //\n\nexport default numel;\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// MAIN //\n\n/**\n* Returns default ndarray settings.\n*\n* @returns {Object} defaults\n*\n* @example\n* var o = defaults();\n* // returns {...}\n*/\nfunction defaults() {\n\treturn {\n\t\t// Data types:\n\t\t'dtypes': {\n\t\t\t'default': 'float64',\n\t\t\t'numeric': 'float64',\n\t\t\t'real': 'float64',\n\t\t\t'floating_point': 'float64',\n\t\t\t'real_floating_point': 'float64',\n\t\t\t'complex_floating_point': 'complex128',\n\t\t\t'integer': 'int32',\n\t\t\t'signed_integer': 'int32',\n\t\t\t'unsigned_integer': 'uint32',\n\t\t\t'boolean': 'bool'\n\t\t},\n\n\t\t// Memory layout:\n\t\t'order': 'row-major',\n\n\t\t// Casting mode:\n\t\t'casting': 'safe',\n\n\t\t// Index mode:\n\t\t'index_mode': 'throw'\n\t};\n}\n\n\n// EXPORTS //\n\nexport default defaults;\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 defaults from './main.js';\n\n\n// VARIABLES //\n\nvar DEFAULTS = defaults();\nvar HASH = {\n\t'dtypes.default': DEFAULTS.dtypes.default,\n\t'dtypes.numeric': DEFAULTS.dtypes.numeric,\n\t'dtypes.real': DEFAULTS.dtypes.real,\n\t'dtypes.floating_point': DEFAULTS.dtypes.floating_point,\n\t'dtypes.real_floating_point': DEFAULTS.dtypes.real_floating_point,\n\t'dtypes.complex_floating_point': DEFAULTS.dtypes.complex_floating_point,\n\t'dtypes.integer': DEFAULTS.dtypes.integer,\n\t'dtypes.signed_integer': DEFAULTS.dtypes.signed_integer,\n\t'dtypes.unsigned_integer': DEFAULTS.dtypes.unsigned_integer,\n\t'dtypes.boolean': DEFAULTS.dtypes.boolean,\n\t'order': DEFAULTS.order,\n\t'casting': DEFAULTS.casting,\n\t'index_mode': DEFAULTS.index_mode\n};\n\n\n// MAIN //\n\n/**\n* Returns a default ndarray setting.\n*\n* @param {string} name - setting name\n* @returns {*} default setting or null\n*\n* @example\n* var v = get( 'dtypes.default' );\n* // returns \n*/\nfunction get( name ) {\n\tvar v = HASH[ name ];\n\treturn ( v === void 0 ) ? null : v;\n}\n\n\n// EXPORTS //\n\nexport default get;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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* Tests that a value is a valid constructor.\n*\n* @private\n* @param {*} value - value to test\n* @returns {(Error|null)} error object or null\n*\n* @example\n* var ctor = function ctor() {};\n*\n* var err = validate( ctor );\n* // returns null\n*\n* err = validate( null );\n* // returns \n*/\nfunction validate( value ) {\n\tvar type = typeof value;\n\tif (\n\t\tvalue === null ||\n\t\t(type !== 'object' && type !== 'function')\n\t) {\n\t\treturn new TypeError( format( 'invalid argument. A provided constructor must be either an object (except null) or a function. Value: `%s`.', value ) );\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nexport default validate;\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/**\n* Return default ndarray settings.\n*\n* @module @stdlib/ndarray/defaults\n*\n* @example\n* import defaults from '@stdlib/ndarray/defaults';\n*\n* var o = defaults();\n* // returns {...}\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport get from './get.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'get', get );\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// EXPORTS //\n\nexport default Object.create;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// FUNCTIONS //\n\n/**\n* Dummy constructor.\n*\n* @private\n*/\nfunction Ctor() {\n\t// Empty...\n}\n\n\n// MAIN //\n\n/**\n* An `Object.create` shim for older JavaScript engines.\n*\n* @private\n* @param {Object} proto - prototype\n* @returns {Object} created object\n*\n* @example\n* var obj = createObject( Object.prototype );\n* // returns {}\n*/\nfunction createObject( proto ) {\n\tCtor.prototype = proto;\n\treturn new Ctor();\n}\n\n\n// EXPORTS //\n\nexport default createObject;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport builtin from './native.js';\nimport polyfill from './polyfill.js';\n\n\n// MAIN //\n\nvar createObject;\nif ( typeof builtin === 'function' ) {\n\tcreateObject = builtin;\n} else {\n\tcreateObject = polyfill;\n}\n\n\n// EXPORTS //\n\nexport default createObject;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Restricts an index to the interval `[0,max]`.\n*\n* @param {integer} idx - index\n* @param {NonNegativeInteger} max - maximum index\n* @returns {NonNegativeInteger} index\n*\n* @example\n* var idx = clampIndex( -1, 10 );\n* // returns 0\n*\n* idx = clampIndex( 15, 10 );\n* // returns 10\n*\n* idx = clampIndex( 5, 10 );\n* // returns 5\n*/\nfunction clampIndex( idx, max ) {\n\tif ( idx < 0 ) {\n\t\treturn 0;\n\t}\n\tif ( idx > max ) {\n\t\treturn max;\n\t}\n\treturn idx;\n}\n\n\n// EXPORTS //\n\nexport default clampIndex;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Wraps an index on the interval `[0,max]`.\n*\n* @param {integer} idx - index\n* @param {NonNegativeInteger} max - maximum index\n* @returns {NonNegativeInteger} index\n*\n* @example\n* var idx = wrapIndex( -1, 10 );\n* // returns 10\n*\n* idx = wrapIndex( 13, 10 );\n* // returns 2\n*\n* idx = wrapIndex( 6, 10 );\n* // returns 6\n*/\nfunction wrapIndex( idx, max ) {\n\tvar mp1 = max + 1;\n\tif ( idx < 0 ) {\n\t\tidx += mp1; // slight optimization to avoid modulo arithmetic when |idx| <= max+1\n\t\tif ( idx < 0 ) {\n\t\t\tidx %= mp1;\n\t\t\tif ( idx !== 0 ) {\n\t\t\t\tidx += mp1;\n\t\t\t}\n\t\t}\n\t\treturn idx;\n\t}\n\tif ( idx > max ) {\n\t\tidx -= mp1; // slight optimization to avoid modulo arithmetic when max+1 < idx <= 2*(max+1)\n\t\tif ( idx > max ) {\n\t\t\tidx %= mp1;\n\t\t}\n\t\treturn idx;\n\t}\n\treturn idx;\n}\n\n\n// EXPORTS //\n\nexport default wrapIndex;\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* Normalizes an index to the interval `[0,max]`.\n*\n* @param {integer} idx - index\n* @param {NonNegativeInteger} max - maximum index\n* @returns {integer} index\n*\n* @example\n* var idx = normalizeIndex( -2, 10 );\n* // returns 9\n*\n* idx = normalizeIndex( 15, 10 );\n* // returns -1\n*\n* idx = normalizeIndex( 5, 10 );\n* // returns 5\n*/\nfunction normalizeIndex( idx, max ) {\n\tif ( idx < 0 ) {\n\t\tidx += max + 1;\n\t\tif ( idx < 0 ) {\n\t\t\treturn -1;\n\t\t}\n\t\treturn idx;\n\t}\n\tif ( idx > max ) {\n\t\treturn -1;\n\t}\n\treturn idx;\n}\n\n\n// EXPORTS //\n\nexport default normalizeIndex;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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 contains } from '@stdlib/array/base/assert/contains';\nimport modes from './../../../../index-modes';\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is a supported ndarray index mode.\n*\n* @name isIndexMode\n* @type {Function}\n* @param {*} v - value to test\n* @returns {boolean} boolean indicating whether an input value is a supported ndarray index mode\n*\n* @example\n* var bool = isIndexMode( 'wrap' );\n* // returns true\n*\n* bool = isIndexMode( 'clamp' );\n* // returns true\n*\n* bool = isIndexMode( 'throw' );\n* // returns true\n*\n* bool = isIndexMode( 'foo' );\n* // returns false\n*/\nvar isIndexMode = contains( modes() );\n\n\n// EXPORTS //\n\nexport default isIndexMode;\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 clampIndex from './../../../base/clamp-index';\nimport wrapIndex from './../../../base/wrap-index';\nimport normalize from './../../../base/normalize-index';\nimport isIndexMode from './../../../base/assert/is-index-mode';\nimport format from '@stdlib/string/format';\n\n\n// VARIABLES //\n\nvar TABLE = {\n\t'wrap': wrapIndex,\n\t'clamp': clampIndex,\n\t'normalize': normalizeIndex,\n\t'throw': throwIfOutOfBounds\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an index if within bounds and throw an error otherwise.\n*\n* @private\n* @param {integer} idx - index\n* @param {NonNegativeInteger} max - maximum index\n* @throws {RangeError} index out-of-bounds\n* @returns {integer} index\n*\n* @example\n* var idx = throwIfOutOfBounds( 2, 9 );\n* // returns 2\n*\n* idx = throwIfOutOfBounds( 10, 9 );\n* // throws \n*\n* idx = throwIfOutOfBounds( -1, 9 );\n* // throws \n*/\nfunction throwIfOutOfBounds( idx, max ) {\n\tif ( idx < 0 || idx > max ) {\n\t\tthrow new RangeError( format( 'invalid argument. Index must resolve to a value on the interval: [0, %d]. Value: `%d`.', max, idx ) );\n\t}\n\treturn idx;\n}\n\n/**\n* Normalizes an index before performing a strict bounds check.\n*\n* @private\n* @param {integer} idx - index\n* @param {NonNegativeInteger} max - maximum index\n* @throws {RangeError} index out-of-bounds\n* @returns {integer} index\n*\n* @example\n* var idx = normalizeIndex( 1, 10 );\n* // returns 1\n*\n* idx = normalizeIndex( -4, 10 );\n* // returns 7\n*\n* idx = normalizeIndex( -100, 10 );\n* // throws \n*/\nfunction normalizeIndex( idx, max ) {\n\tvar index = normalize( idx, max );\n\tif ( index < 0 || index > max ) {\n\t\tthrow new RangeError( format( 'invalid argument. Index must resolve to a value on the interval: [0, %d]. Value: `%d`.', max, idx ) );\n\t}\n\treturn index;\n}\n\n\n// MAIN //\n\n/**\n* Returns a function for returning an index according to a provided index mode.\n*\n* @param {string} mode - specifies how to handle an out-of-bounds index\n* @throws {TypeError} first argument must be a recognized index mode\n* @returns {Function} function for returning an index\n*\n* @example\n* var ind = factory( 'clamp' );\n*\n* var idx = ind( 2, 9 );\n* // returns 2\n*\n* idx = ind( 10, 9 );\n* // returns 9\n*\n* idx = ind( -1, 9 );\n* // returns 0\n*\n* @example\n* var ind = factory( 'wrap' );\n*\n* var idx = ind( 2, 9 );\n* // returns 2\n*\n* idx = ind( 10, 9 );\n* // returns 0\n*\n* idx = ind( -1, 9 );\n* // returns 9\n*\n* @example\n* var ind = factory( 'throw' );\n*\n* var idx = ind( 2, 9 );\n* // returns 2\n*\n* idx = ind( 10, 9 );\n* // throws \n*\n* idx = ind( -1, 9 );\n* // throws \n*\n* @example\n* var ind = factory( 'normalize' );\n*\n* var idx = ind( 1, 10 );\n* // returns 1\n*\n* idx = ind( -4, 10 );\n* // returns 7\n*\n* idx = ind( -100, 10 );\n* // throws \n*/\nfunction factory( mode ) {\n\tif ( !isIndexMode( mode ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a recognized index mode. Value: `%s`.', mode ) );\n\t}\n\treturn TABLE[ mode ];\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// MODULES //\n\nimport clampIndex from './../../../base/clamp-index';\nimport wrapIndex from './../../../base/wrap-index';\nimport normalizeIndex from './../../../base/normalize-index';\nimport format from '@stdlib/string/format';\n\n\n// MAIN //\n\n/**\n* Returns an index given an index mode.\n*\n* @param {integer} idx - index\n* @param {NonNegativeInteger} max - maximum index\n* @param {string} mode - specifies how to handle an index outside the interval `[0,max]`\n* @throws {RangeError} index out-of-bounds\n* @returns {integer} index\n*\n* @example\n* var idx = ind( 2, 9, 'clamp' );\n* // returns 2\n*\n* idx = ind( 10, 9, 'clamp' );\n* // returns 9\n*\n* idx = ind( -1, 9, 'clamp' );\n* // returns 0\n*\n* @example\n* var idx = ind( 2, 9, 'wrap' );\n* // returns 2\n*\n* idx = ind( 10, 9, 'wrap' );\n* // returns 0\n*\n* idx = ind( -1, 9, 'wrap' );\n* // returns 9\n*\n* @example\n* var idx = ind( 2, 9, 'throw' );\n* // returns 2\n*\n* idx = ind( 10, 9, 'throw' );\n* // throws \n*\n* idx = ind( -1, 9, 'throw' );\n* // throws \n*\n* @example\n* var idx = ind( 1, 10, 'normalize' );\n* // returns 1\n*\n* idx = ind( -4, 10, 'normalize' );\n* // returns 7\n*\n* idx = ind( -100, 10, 'normalize' );\n* // throws \n*/\nfunction ind( idx, max, mode ) {\n\tvar index;\n\tif ( mode === 'clamp' ) {\n\t\treturn clampIndex( idx, max );\n\t}\n\tif ( mode === 'wrap' ) {\n\t\treturn wrapIndex( idx, max );\n\t}\n\tindex = idx;\n\tif ( mode === 'normalize' ) {\n\t\tindex = normalizeIndex( index, max );\n\t}\n\tif ( index < 0 || index > max ) {\n\t\tthrow new RangeError( format( 'invalid argument. Index must resolve to a value on the interval: [0, %d]. Value: `%d`.', max, idx ) );\n\t}\n\treturn index;\n}\n\n\n// EXPORTS //\n\nexport default ind;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 an index given an index mode.\n*\n* @module @stdlib/ndarray/base/ind\n*\n* @example\n* import ind from '@stdlib/ndarray/base/ind';\n*\n* var idx = ind( -1, 10, 'wrap' );\n* // returns 10\n*\n* idx = ind( 14, 10, 'wrap' );\n* // returns 3\n*\n* idx = ind( 6, 10, 'wrap' );\n* // returns 6\n*\n* @example\n* import ind from '@stdlib/ndarray/base/ind';\n*\n* var idx = ind( -1, 10, 'clamp' );\n* // returns 0\n*\n* idx = ind( 14, 10, 'clamp' );\n* // returns 10\n*\n* idx = ind( 6, 10, 'clamp' );\n* // returns 6\n*\n* @example\n* import ind from '@stdlib/ndarray/base/ind';\n*\n* var idx = ind( 1, 10, 'throw' );\n* // returns 1\n*\n* idx = ind( 14, 10, 'throw' );\n* // throws \n*\n* idx = ind( -1, 10, 'throw' );\n* // throws \n*\n* @example\n* import ind from '@stdlib/ndarray/base/ind';\n*\n* var idx = ind( 1, 10, 'normalize' );\n* // returns 1\n*\n* idx = ind( -4, 10, 'normalize' );\n* // returns 7\n*\n* idx = ind( -100, 10, 'normalize' );\n* // throws \n*\n* @example\n* import ind from '@stdlib/ndarray/base/ind';\n*\n* var fcn = ind.factory( 'clamp' );\n*\n* var idx = fcn( -1, 10 );\n* // returns 0\n*\n* idx = fcn( 14, 10 );\n* // returns 10\n*\n* idx = fcn( 6, 10 );\n* // returns 6\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport factory from './factory.js';\nimport main from './main.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/* eslint-disable no-invalid-this */\n\n'use strict';\n\n// MODULES //\n\nimport { isPrimitive as isInteger } from '@stdlib/assert/is-integer';\nimport getIndex from './../../base/ind';\nimport parent from './../../base/ctor'; // eslint-disable-line stdlib/no-redeclare\nimport format from '@stdlib/string/format';\n\n\n// VARIABLES //\n\nvar base = parent.prototype.iget;\n\n\n// MAIN //\n\n/**\n* Returns an array element located at a specified linear index.\n*\n* ## Notes\n*\n* - For zero-dimensional arrays, the input argument is ignored and, for clarity, should not be provided.\n*\n* @private\n* @param {integer} [idx] - linear view index\n* @throws {TypeError} index must be an integer\n* @throws {RangeError} index exceeds array dimensions\n* @returns {*} array element\n*/\nfunction iget( idx ) {\n\tif ( this._ndims > 0 ) {\n\t\tif ( !isInteger( idx ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Index must be an integer. Value: `%s`.', idx ) );\n\t\t}\n\t\tidx = getIndex( idx, this._length-1, this._mode );\n\t\treturn base.call( this, idx );\n\t}\n\treturn base.call( this );\n}\n\n\n// EXPORTS //\n\nexport default iget;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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 no-invalid-this */\n\n'use strict';\n\n// METHODS //\n\nimport { isPrimitive as isInteger } from '@stdlib/assert/is-integer';\nimport getIndex from './../../base/ind';\nimport parent from './../../base/ctor'; // eslint-disable-line stdlib/no-redeclare\nimport format from '@stdlib/string/format';\n\n\n// VARIABLES //\n\nvar base = parent.prototype.iset;\n\n\n// MAIN //\n\n/**\n* Sets an array element located at a specified linear index.\n*\n* ## Notes\n*\n* - For zero-dimensional arrays, the first, and only, argument should be the value to set.\n*\n* @private\n* @param {integer} [idx] - linear view index\n* @param {*} v - value to set\n* @throws {Error} cannot write to a read-only array\n* @throws {TypeError} index must be an integer\n* @throws {RangeError} index exceeds array dimensions\n* @returns {ndarray} ndarray instance\n*/\nfunction iset( idx, v ) {\n\tif ( this._flags.READONLY ) {\n\t\tthrow new Error( 'invalid invocation. Cannot write to a read-only array.' );\n\t}\n\tif ( this._ndims > 0 ) {\n\t\tif ( !isInteger( idx ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Index must be an integer. Value: `%s`.', idx ) );\n\t\t}\n\t\tidx = getIndex( idx, this._length-1, this._mode );\n\t\tbase.call( this, idx, v );\n\t} else {\n\t\tbase.call( this, idx );\n\t}\n\treturn this;\n}\n\n\n// EXPORTS //\n\nexport default iset;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Copies the contents of array-like value to a new array.\n*\n* @private\n* @param {ArrayLike} arr - input array\n* @param {NonNegativeInteger} len - array length\n* @returns {Array} output array\n*\n* @example\n* var arr = [ 1.0, 2.0, 3.0 ];\n*\n* var out = copy( arr, arr.length );\n* // returns [ 1.0, 2.0, 3.0 ]\n*\n* var bool = ( arr === out );\n* // returns false\n*/\nfunction copy( arr, len ) {\n\tvar out;\n\tvar i;\n\n\tout = [];\n\tfor ( i = 0; i < len; i++ ) {\n\t\tout.push( arr[ i ] );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default copy;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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 no-invalid-this */\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport isCollection from '@stdlib/assert/is-collection';\nimport { primitives as isNonNegativeIntegerArray } from '@stdlib/assert/is-nonnegative-integer-array';\nimport { isPrimitive as isNonNegativeInteger } from '@stdlib/assert/is-nonnegative-integer';\nimport { primitives as isIntegerArray } from '@stdlib/assert/is-integer-array';\nimport isFunction from '@stdlib/assert/is-function';\nimport isOrder from './../../base/assert/is-order';\nimport isDataType from './../../base/assert/is-data-type';\nimport isBufferLengthCompatible from './../../base/assert/is-buffer-length-compatible';\nimport numel from './../../base/numel';\nimport parent from './../../base/ctor'; // eslint-disable-line stdlib/no-redeclare\nimport defaults from './../../defaults';\nimport inherit from '@stdlib/utils/inherit';\nimport format from '@stdlib/string/format';\nimport iget from './iget.js';\nimport iset from './iset.js';\nimport get from './get.js';\nimport set from './set.js';\nimport copy from './copy_array.js';\nimport validate from './validate.js';\n\n\n// VARIABLES //\n\n/*\n* See the following references:\n*\n* - https://stackoverflow.com/questions/22747068/is-there-a-max-number-of-arguments-javascript-functions-can-accept\n* - https://bugs.webkit.org/show_bug.cgi?id=80797\n* - https://github.com/numpy/numpy/issues/5744\n*\n* Note that the maximum number of function arguments can vary from engine to engine. Here, we choose something of a lowest common denominator which may **not** be valid everywhere.\n*/\nvar MAX_DIMS = 32767|0;\n\nvar INDEX_MODE = defaults.get( 'index_mode' );\nvar READONLY = false;\n\n\n// MAIN //\n\n/**\n* ndarray constructor.\n*\n* @constructor\n* @param {string} dtype - data type\n* @param {Collection} buffer - data buffer\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {IntegerArray} strides - array strides\n* @param {NonNegativeInteger} offset - index offset\n* @param {string} order - specifies whether an array is row-major (C-style) or column-major (Fortran-style)\n* @param {Options} [options] - function options\n* @param {string} [options.mode=\"throw\"] - specifies how to handle indices which exceed array dimensions\n* @param {StringArray} [options.submode=[\"throw\"]] - specifies how to handle subscripts which exceed array dimensions on a per dimension basis\n* @param {boolean} [options.readonly=false] - boolean indicating whether an array should be read-only\n* @throws {TypeError} `dtype` argument must be a supported ndarray data type\n* @throws {TypeError} `buffer` argument must be an array-like object, typed-array-like, or a Buffer\n* @throws {TypeError} `buffer` argument `get` and `set` properties must be functions\n* @throws {TypeError} `shape` argument must be an array-like object containing nonnegative integers\n* @throws {Error} `shape` argument length must equal the number of dimensions\n* @throws {TypeError} `strides` argument must be an array-like object containing integers\n* @throws {Error} `strides` argument length must equal the number of dimensions (except for zero-dimensional arrays; in which case, the `strides` argument length must be equal to `1`)\n* @throws {Error} for zero-dimensional ndarrays, the `strides` argument must contain a single element equal to `0`\n* @throws {TypeError} `offset` argument must be a nonnegative integer\n* @throws {TypeError} `order` argument must be a supported ndarray order\n* @throws {Error} `buffer` argument must be compatible with specified meta data\n* @throws {TypeError} options argument must be an object\n* @throws {TypeError} must provide valid options\n* @throws {RangeError} too many dimensions\n* @returns {ndarray} ndarray instance\n*\n* @example\n* var buffer = [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var out = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*/\nfunction ndarray( dtype, buffer, shape, strides, offset, order, options ) {\n\tvar ndims;\n\tvar opts;\n\tvar err;\n\tvar sh;\n\tvar st;\n\n\tif ( !(this instanceof ndarray) ) {\n\t\tif ( arguments.length < 7 ) {\n\t\t\treturn new ndarray( dtype, buffer, shape, strides, offset, order );\n\t\t}\n\t\treturn new ndarray( dtype, buffer, shape, strides, offset, order, options ); // eslint-disable-line max-len\n\t}\n\tif ( !isDataType( dtype ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a supported ndarray data type. Value: `%s`.', dtype ) );\n\t}\n\tif ( !isCollection( buffer ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an array-like object, typed-array-like, or a Buffer. Value: `%s`.', buffer ) );\n\t} else if ( buffer.get && buffer.set && ( !isFunction( buffer.get ) || !isFunction( buffer.set ) ) ) { // eslint-disable-line max-len\n\t\tthrow new TypeError( format( 'invalid argument. Second argument `get` and `set` properties must be functions. Value: `%s`.', buffer ) );\n\t}\n\tif ( !isNonNegativeIntegerArray( shape ) ) {\n\t\tif ( !isCollection( shape) || shape.length > 0 ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Third argument must be an array-like object containing nonnegative integers. Value: `%s`.', shape ) );\n\t\t}\n\t}\n\tndims = shape.length;\n\tif ( ndims > MAX_DIMS ) {\n\t\tthrow new RangeError( format( 'invalid argument. Number of dimensions must not exceed %u due to stack limits. Value: `%u`.', MAX_DIMS, ndims ) );\n\t}\n\tif ( !isIntegerArray( strides ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Fourth argument must be an array-like object containing integers. Value: `%s`.', strides ) );\n\t}\n\tif ( ndims > 0 ) {\n\t\tif ( strides.length !== ndims ) {\n\t\t\tthrow new RangeError( format( 'invalid argument. Fourth argument length must match the number of dimensions. Expected number of dimensions: `%u`. Strides length: `%u`.', ndims, strides.length ) );\n\t\t}\n\t} else if ( strides.length !== 1 ) {\n\t\tthrow new RangeError( 'invalid argument. Fourth argument length must be equal to 1 when creating a zero-dimensional ndarray.' );\n\t} else if ( strides[ 0 ] !== 0 ) {\n\t\tthrow new RangeError( format( 'invalid argument. Fourth argument must contain a single element equal to 0. Value: `%d`.', strides[ 0 ] ) );\n\t}\n\tif ( !isNonNegativeInteger( offset ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Fifth argument must be a nonnegative integer. Value: `%s`.', offset ) );\n\t}\n\tif ( !isOrder( order ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Sixth argument must be a supported order. Value: `%s`.', order ) );\n\t}\n\tif ( ndims > 0 && !isBufferLengthCompatible( buffer.length, shape, strides, offset ) && numel( shape ) > 0 ) { // eslint-disable-line max-len\n\t\tthrow new Error( 'invalid arguments. Input buffer is incompatible with the specified meta data. Ensure that the offset is valid with regard to the strides array and that the buffer has enough elements to satisfy the desired array shape.' );\n\t}\n\topts = {};\n\topts.mode = INDEX_MODE;\n\topts.readonly = READONLY;\n\tif ( arguments.length > 6 ) {\n\t\terr = validate( opts, options );\n\t\tif ( err ) {\n\t\t\tthrow err;\n\t\t}\n\t}\n\tthis._mode = opts.mode;\n\tif ( opts.submode === void 0 ) {\n\t\topts.submode = [ this._mode ];\n\t}\n\tthis._submode = opts.submode;\n\n\t// Copy `shape` and `strides` to prevent external mutation:\n\tsh = copy( shape, ndims );\n\tst = copy( strides, ndims || 1 );\n\n\t// Call the parent constructor:\n\tparent.call( this, dtype, buffer, sh, st, offset, order );\n\tthis._flags.READONLY = opts.readonly;\n\n\treturn this;\n\n\t/* eslint-enable no-invalid-this */\n}\n\n// Inherit from the parent constructor:\ninherit( ndarray, parent );\n\n/**\n* Constructor name.\n*\n* @name name\n* @memberof ndarray\n* @type {string}\n* @default 'ndarray'\n*\n* @example\n* var str = ndarray.name;\n* // returns 'ndarray'\n*/\nsetReadOnly( ndarray, 'name', 'ndarray' );\n\n/**\n* Returns an array element.\n*\n* ## Notes\n*\n* - The number of indices should **equal** the number of dimensions. Accordingly, for zero-dimensional arrays, no indices should be provided.\n*\n* @name get\n* @memberof ndarray.prototype\n* @type {Function}\n* @param {...integer} [idx] - indices\n* @returns {*} array element\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var v = x.get( 1, 1 );\n* // returns 4\n*/\nsetReadOnly( ndarray.prototype, 'get', get );\n\n/**\n* Returns an array element located at a specified linear index.\n*\n* ## Notes\n*\n* - For zero-dimensional arrays, the input argument is ignored and, for clarity, should not be provided.\n*\n* @name iget\n* @memberof ndarray.prototype\n* @type {Function}\n* @param {integer} [idx] - linear index\n* @returns {*} array element\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var v = x.iget( 3 );\n* // returns 4\n*/\nsetReadOnly( ndarray.prototype, 'iget', iget );\n\n/**\n* Sets an array element.\n*\n* ## Notes\n*\n* - The number of indices should **equal** the number of dimensions. Accordingly, for zero-dimensional arrays, no indices should be provided.\n*\n* @name set\n* @memberof ndarray.prototype\n* @type {Function}\n* @param {...integer} [idx] - indices\n* @param {*} v - value to set\n* @returns {ndarray} ndarray instance\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var v = x.get( 1, 1 );\n* // returns 4\n*\n* x.set( 1, 1, 10 );\n*\n* var b = x.data;\n* // returns [ 1, 2, 3, 10, 5, 6 ]\n*\n* v = x.get( 1, 1 );\n* // returns 10\n*/\nsetReadOnly( ndarray.prototype, 'set', set );\n\n/**\n* Sets an array element located at a specified linear index.\n*\n* ## Notes\n*\n* - For zero-dimensional arrays, the first, and only, argument should be the value to set.\n*\n* @name iset\n* @memberof ndarray.prototype\n* @type {Function}\n* @param {integer} [idx] - linear index\n* @param {*} v - value to set\n* @returns {ndarray} ndarray instance\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var v = x.iget( 3 );\n* // returns 4\n*\n* x.iset( 3, 10 );\n*\n* var b = x.data;\n* // returns [ 1, 2, 3, 10, 5, 6 ]\n*\n* v = x.iget( 3 );\n* // returns 10\n*/\nsetReadOnly( ndarray.prototype, 'iset', iset );\n\n\n// EXPORTS //\n\nexport default ndarray;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport minmax from './../../../../base/minmax-view-buffer-index';\n\n\n// MAIN //\n\n/**\n* Returns a boolean indicating if a buffer length is compatible with provided ndarray meta data.\n*\n* @param {NonNegativeInteger} len - buffer length\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {IntegerArray} strides - stride array\n* @param {NonNegativeInteger} offset - index offset\n* @returns {boolean} boolean indicating if a buffer length is compatible\n*\n* @example\n* var shape = [ 2, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var bool = isBufferLengthCompatible( 4, shape, strides, offset );\n* // returns true\n*\n* @example\n* var shape = [ 2, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 2;\n*\n* var bool = isBufferLengthCompatible( 4, shape, strides, offset );\n* // returns false\n*/\nfunction isBufferLengthCompatible( len, shape, strides, offset ) {\n\t// Determine the minimum and maximum linear indices which are accessible by the array view:\n\tvar buf = minmax( shape, strides, offset );\n\n\t// If the indices are \"inbounds\", then the buffer length is compatible:\n\treturn ( buf[ 0 ] >= 0 && buf[ 1 ] < len );\n}\n\n\n// EXPORTS //\n\nexport default isBufferLengthCompatible;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isObject from '@stdlib/assert/is-plain-object';\nimport hasOwnProp from '@stdlib/assert/has-own-property';\nimport isArrayLikeObject from '@stdlib/assert/is-array-like-object';\nimport isIndexMode from './../../base/assert/is-index-mode';\nimport { isPrimitive as isBoolean } from '@stdlib/assert/is-boolean';\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 {string} [options.mode] - specifies how to handle indices which exceed array dimensions\n* @param {StringArray} [options.submode] - specifies how to handle subscripts which exceed array dimensions\n* @param {boolean} [options.readonly] - boolean indicating whether an array should be read-only\n* @returns {(Error|null)} null or an error object\n*\n* @example\n* var opts = {};\n* var options = {\n* 'mode': 'clamp',\n* 'submode': [ 'throw', 'wrap', 'clamp' ]\n* };\n* var err = validate( opts, options );\n* if ( err ) {\n* throw err;\n* }\n*/\nfunction validate( opts, options ) {\n\tvar i;\n\tif ( !isObject( options ) ) {\n\t\treturn new TypeError( format( 'invalid argument. Options argument must be an object. Value: `%s`.', options ) );\n\t}\n\tif ( hasOwnProp( options, 'mode' ) ) {\n\t\topts.mode = options.mode;\n\t\tif ( !isIndexMode( opts.mode ) ) {\n\t\t\treturn new TypeError( format( 'invalid option. `%s` option must be a recognized mode. Option: `%s`.', 'mode', opts.mode ) );\n\t\t}\n\t}\n\tif ( hasOwnProp( options, 'submode' ) ) {\n\t\topts.submode = options.submode;\n\t\tif ( !isArrayLikeObject( opts.submode ) ) {\n\t\t\treturn new TypeError( format( 'invalid option. `%s` option must be an array containing recognized modes. Option: `%s`.', 'submode', opts.submode ) );\n\t\t}\n\t\tif ( opts.submode.length === 0 ) {\n\t\t\treturn new TypeError( format( 'invalid option. `%s` option must be an array containing recognized modes. Option: `%s`.', 'submode', opts.submode.join( ',' ) ) );\n\t\t}\n\t\tfor ( i = 0; i < opts.submode.length; i++ ) {\n\t\t\tif ( !isIndexMode( opts.submode[ i ] ) ) {\n\t\t\t\treturn new TypeError( format( 'invalid option. Each submode must be a recognized mode. Option: `%s`.', opts.submode[ i ] ) );\n\t\t\t}\n\t\t}\n\t\topts.submode = opts.submode.slice();\n\t}\n\tif ( hasOwnProp( options, 'readonly' ) ) {\n\t\topts.readonly = options.readonly;\n\t\tif ( !isBoolean( opts.readonly ) ) {\n\t\t\treturn new TypeError( format( 'invalid option. `%s` option must be a boolean. Option: `%s`.', 'readonly', opts.readonly ) );\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 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) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport defineProperty from './../../define-property';\nimport format from '@stdlib/string/format';\nimport validate from './validate.js';\nimport createObject from './detect.js';\n\n\n// MAIN //\n\n/**\n* Implements prototypical inheritance by replacing the prototype of one constructor with the prototype of another constructor.\n*\n* ## Notes\n*\n* - This implementation is not designed to work with ES2015/ES6 classes. For ES2015/ES6 classes, use `class` with `extends`.\n* - For reference, see [node#3455](https://github.com/nodejs/node/pull/3455), [node#4179](https://github.com/nodejs/node/issues/4179), [node#3452](https://github.com/nodejs/node/issues/3452), and [node commit](https://github.com/nodejs/node/commit/29da8cf8d7ab8f66b9091ab22664067d4468461e#diff-3deb3f32958bb937ae05c6f3e4abbdf5).\n*\n* @param {(Object|Function)} ctor - constructor which will inherit\n* @param {(Object|Function)} superCtor - super (parent) constructor\n* @throws {TypeError} first argument must be either an object or a function which can inherit\n* @throws {TypeError} second argument must be either an object or a function from which a constructor can inherit\n* @throws {TypeError} second argument must have an inheritable prototype\n* @returns {(Object|Function)} child constructor\n*\n* @example\n* function Foo() {\n* return this;\n* }\n* Foo.prototype.beep = function beep() {\n* return 'boop';\n* };\n*\n* function Bar() {\n* Foo.call( this );\n* return this;\n* }\n* inherit( Bar, Foo );\n*\n* var bar = new Bar();\n* var v = bar.beep();\n* // returns 'boop'\n*/\nfunction inherit( ctor, superCtor ) {\n\tvar err = validate( ctor );\n\tif ( err ) {\n\t\tthrow err;\n\t}\n\terr = validate( superCtor );\n\tif ( err ) {\n\t\tthrow err;\n\t}\n\tif ( typeof superCtor.prototype === 'undefined' ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must have a prototype from which another object can inherit. Value: `%s`.', superCtor.prototype ) );\n\t}\n\t// Create a prototype which inherits from the parent prototype:\n\tctor.prototype = createObject( superCtor.prototype );\n\n\t// Set the constructor to refer to the child constructor:\n\tdefineProperty( ctor.prototype, 'constructor', {\n\t\t'configurable': true,\n\t\t'enumerable': false,\n\t\t'writable': true,\n\t\t'value': ctor\n\t});\n\n\treturn ctor;\n}\n\n\n// EXPORTS //\n\nexport default inherit;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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 no-invalid-this */\n\n'use strict';\n\n// MODULES //\n\nimport { isPrimitive as isInteger } from '@stdlib/assert/is-integer';\nimport getIndex from './../../base/ind';\nimport format from '@stdlib/string/format';\n\n\n// MAIN //\n\n/**\n* Returns an array element.\n*\n* ## Notes\n*\n* - The number of indices should **equal** the number of dimensions. Accordingly, for zero-dimensional arrays, no indices should be provided.\n*\n* @private\n* @param {...integer} [idx] - indices\n* @throws {TypeError} provided indices must be integer valued\n* @throws {RangeError} index exceeds array dimensions\n* @throws {RangeError} number of indices must equal the number of dimensions\n* @returns {*} array element\n*/\nfunction get() {\n\tvar idx;\n\tvar ind;\n\tvar M;\n\tvar i;\n\n\tif ( arguments.length !== this._ndims ) {\n\t\tthrow new RangeError( format( 'invalid arguments. Number of indices must match the number of dimensions. ndims: `%u`. nargs: `%u`.', this._ndims, arguments.length ) );\n\t}\n\tidx = this._offset;\n\tM = this._submode.length;\n\tfor ( i = 0; i < arguments.length; i++ ) {\n\t\tif ( !isInteger( arguments[ i ] ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Indices must be integer valued. Argument: `%u`. Value: `%s`.', i, arguments[ i ] ) );\n\t\t}\n\t\tind = getIndex( arguments[ i ], this._shape[ i ]-1, this._submode[ i%M ] ); // eslint-disable-line max-len\n\t\tidx += this._strides[ i ] * ind;\n\t}\n\tif ( this._accessors ) {\n\t\treturn this._buffer.get( idx );\n\t}\n\treturn this._buffer[ idx ];\n}\n\n\n// EXPORTS //\n\nexport default get;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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 no-invalid-this */\n\n'use strict';\n\n// MODULES //\n\nimport { isPrimitive as isInteger } from '@stdlib/assert/is-integer';\nimport getIndex from './../../base/ind';\nimport format from '@stdlib/string/format';\n\n\n// MAIN //\n\n/**\n* Sets an array element.\n*\n* ## Notes\n*\n* - The number of indices should **equal** the number of dimensions. Accordingly, for zero-dimensional arrays, no indices should be provided.\n*\n* @private\n* @param {...integer} [idx] - indices\n* @param {*} v - value to set\n* @throws {Error} cannot write to a read-only array\n* @throws {TypeError} provided indices must be integer valued\n* @throws {RangeError} index exceeds array dimensions\n* @throws {RangeError} number of indices must equal the number of dimensions\n* @returns {ndarray} ndarray instance\n*/\nfunction set() {\n\tvar idx;\n\tvar ind;\n\tvar M;\n\tvar i;\n\n\tif ( this._flags.READONLY ) {\n\t\tthrow new Error( 'invalid invocation. Cannot write to a read-only array.' );\n\t}\n\tif ( arguments.length !== this._ndims+1 ) {\n\t\tthrow new RangeError( format( 'invalid arguments. Number of indices must match the number of dimensions. ndims: `%u`. nargs: `%u`.', this._ndims, arguments.length ) );\n\t}\n\tidx = this._offset;\n\tM = this._submode.length;\n\tfor ( i = 0; i < arguments.length-1; i++ ) {\n\t\tif ( !isInteger( arguments[ i ] ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Indices must be integer valued. Argument: `%i`. Value: `%s`.', i, arguments[ i ] ) );\n\t\t}\n\t\tind = getIndex( arguments[ i ], this._shape[ i ]-1, this._submode[ i%M ] ); // eslint-disable-line max-len\n\t\tidx += this._strides[ i ] * ind;\n\t}\n\tif ( this._accessors ) {\n\t\tthis._buffer.set( arguments[ i ], idx );\n\t} else {\n\t\tthis._buffer[ idx ] = arguments[ i ];\n\t}\n\treturn this;\n}\n\n\n// EXPORTS //\n\nexport default set;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isCollection from './../../is-collection';\nimport { isPrimitive as isInteger } from './../../is-integer';\nimport { isPrimitive as isString } from './../../is-string';\nimport { isPrimitive as isnan } from './../../is-nan';\nimport format from '@stdlib/string/format';\n\n\n// MAIN //\n\n/**\n* Tests if an array-like value contains a search value.\n*\n* @param {(Collection|string)} val - input value\n* @param {*} searchValue - search value\n* @param {integer} [position=0] - position at which to start searching for `searchValue`\n* @throws {TypeError} first argument must be array-like\n* @throws {Error} must provide a search value\n* @throws {TypeError} second argument must be a string when the first argument is a string\n* @throws {TypeError} third argument must be an integer\n* @returns {boolean} boolean indicating whether one value contains another\n*\n* @example\n* var bool = contains( 'last man standing', 'stand' );\n* // returns true\n*\n* @example\n* var bool = contains( [ 1, 2, 3, 4 ], 2 );\n* // returns true\n*\n* @example\n* var bool = contains( 'presidential election', 'president' );\n* // returns true\n*\n* @example\n* var bool = contains( [ NaN, 2, 3, 4 ], NaN );\n* // returns true\n*\n* @example\n* var bool = contains( 'javaScript', 'js' );\n* // returns false\n*\n* @example\n* var bool = contains( [ 1, 2, 3, {} ], {} );\n* // returns false\n*\n* @example\n* var bool = contains( 'Hidden Treasures', '' );\n* // returns true\n*/\nfunction contains( val, searchValue, position ) {\n\tvar len;\n\tvar pos;\n\tvar i;\n\tif ( !isCollection( val ) && !isString( val ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be array-like. Value: `%s`.', val ) );\n\t}\n\tif ( arguments.length < 2 ) {\n\t\tthrow new Error( 'insufficient arguments. Must provide a search value.' );\n\t}\n\tif ( arguments.length > 2 ) {\n\t\tif ( !isInteger( position ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Third argument must be an integer. Value: `%s`.', position ) );\n\t\t}\n\t\tpos = position;\n\t\tif ( pos < 0 ) {\n\t\t\tpos = 0;\n\t\t}\n\t} else {\n\t\tpos = 0;\n\t}\n\tif ( isString( val ) ) {\n\t\tif ( !isString( searchValue ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be a string. Value: `%s`.', searchValue ) );\n\t\t}\n\t\treturn val.indexOf( searchValue, pos ) !== -1;\n\t}\n\tlen = val.length;\n\tif ( isnan( searchValue ) ) {\n\t\tfor ( i = pos; i < len; i++ ) {\n\t\t\tif ( isnan( val[ i ] ) ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\tfor ( i = pos; i < len; i++ ) {\n\t\tif ( val[ i ] === searchValue ) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default contains;\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) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 value is `null`.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether value is null\n*\n* @example\n* var bool = isNull( null );\n* // returns true\n*\n* bool = isNull( true );\n* // returns false\n*/\nfunction isNull( value ) {\n\treturn value === null;\n}\n\n\n// EXPORTS //\n\nexport default isNull;\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) 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 setReadOnlyAccessor from '@stdlib/utils/define-nonenumerable-read-only-accessor';\nimport dtypes2signatures from '@stdlib/ndarray/base/dtypes2signatures';\n\n\n// MAIN //\n\n/**\n* Defines non-enumerable read-only properties which expose strided array function meta data.\n*\n* @param {Object} meta - function meta data\n* @param {NonNegativeInteger} meta.nargs - total number of arguments (excluding offsets)\n* @param {NonNegativeInteger} meta.nin - total number of input arrays\n* @param {NonNegativeInteger} meta.nout - total number of output arrays\n* @param {ArrayLikeObject} dtypes - list of strided array data types\n* @param {(Function|Object)} obj - object on which to define properties\n* @param {boolean} bool - boolean indicating whether the provided object should describe an \"ndarray\" function interface\n* @returns {(Function|Object)} object on which properties were defined\n*\n* @example\n* // Define strided array function meta data:\n* var meta = {\n* 'nargs': 7,\n* 'nin': 1,\n* 'nout': 1\n* };\n*\n* // Define the list of strided array data types:\n* var dtypes = [\n* 'float64', 'float64',\n* 'float32', 'float32',\n* 'generic', 'generic'\n* ];\n*\n* // Define an object on which to set the properties:\n* var obj = {};\n*\n* // Set the properties:\n* setProps( meta, dtypes, obj, false );\n*\n* @example\n* // Define strided array function meta data:\n* var meta = {\n* 'nargs': 7,\n* 'nin': 1,\n* 'nout': 1\n* };\n*\n* // Define the list of strided array data types:\n* var dtypes = [\n* 'float64', 'float64',\n* 'float32', 'float32',\n* 'generic', 'generic'\n* ];\n*\n* // Define a function on which to set the properties:\n* function abs( N, dtypeX, x, strideX, dtypeY, y, strideY ) {\n* // Implementation...\n* }\n*\n* // Set the properties:\n* setProps( meta, dtypes, abs, false );\n*/\nfunction setProps( meta, dtypes, obj, bool ) {\n\t// Define the number of arguments:\n\tif ( bool ) {\n\t\tsetReadOnly( obj, 'nargs', meta.nargs+meta.nin+meta.nout ); // Note: accounts for one offset argument per input/output strided array\n\t} else {\n\t\tsetReadOnly( obj, 'nargs', meta.nargs );\n\t}\n\t// Define the number of input strided arrays:\n\tsetReadOnly( obj, 'nin', meta.nin );\n\n\t// Define the number of output strided arrays:\n\tsetReadOnly( obj, 'nout', meta.nout );\n\n\t// Define a read-only accessor for listing a function's supported array data types:\n\tsetReadOnlyAccessor( obj, 'types', types );\n\n\treturn obj;\n\n\t/**\n\t* Returns a list of strided array interface array type signatures.\n\t*\n\t* @private\n\t* @returns {StringArray} list of signatures\n\t*/\n\tfunction types() {\n\t\treturn dtypes2signatures( dtypes, meta.nin, meta.nout );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default setProps;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { isPrimitive as isInteger } from './../../is-integer';\n\n\n// MAIN //\n\n/**\n* Tests if a value is a number primitive having a positive integer value.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a number primitive having a positive integer value\n*\n* @example\n* var bool = isPositiveInteger( 3.0 );\n* // returns true\n*\n* @example\n* var bool = isPositiveInteger( new Number( 3.0 ) );\n* // returns false\n*/\nfunction isPositiveInteger( value ) {\n\treturn (\n\t\tisInteger( value ) &&\n\t\tvalue > 0.0\n\t);\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 { isObject as isInteger } from './../../is-integer';\n\n\n// MAIN //\n\n/**\n* Tests if a value is a number object having a positive integer value.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a number object having a positive integer value\n*\n* @example\n* var bool = isPositiveInteger( 3.0 );\n* // returns false\n*\n* @example\n* var bool = isPositiveInteger( new Number( 3.0 ) );\n* // returns true\n*/\nfunction isPositiveInteger( value ) {\n\treturn (\n\t\tisInteger( value ) &&\n\t\tvalue.valueOf() > 0.0\n\t);\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 isPrimitive from './primitive.js';\nimport isObject from './object.js';\n\n\n// MAIN //\n\n/**\n* Tests if a value is a positive integer.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether value is a positive integer\n*\n* @example\n* var bool = isPositiveInteger( 5.0 );\n* // returns true\n*\n* @example\n* var bool = isPositiveInteger( new Number( 5.0 ) );\n* // returns true\n*\n* @example\n* var bool = isPositiveInteger( 0.0 );\n* // returns false\n*\n* @example\n* var bool = isPositiveInteger( -5.0 );\n* // returns false\n*\n* @example\n* var bool = isPositiveInteger( 3.14 );\n* // returns false\n*\n* @example\n* var bool = isPositiveInteger( null );\n* // returns false\n*/\nfunction isPositiveInteger( value ) {\n\treturn ( isPrimitive( value ) || isObject( value ) );\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/**\n* Test if a value is a positive integer.\n*\n* @module @stdlib/assert/is-positive-integer\n*\n* @example\n* import isPositiveInteger from '@stdlib/assert/is-positive-integer';\n*\n* var bool = isPositiveInteger( 5.0 );\n* // returns true\n*\n* bool = isPositiveInteger( new Number( 5.0 ) );\n* // returns true\n*\n* bool = isPositiveInteger( -5.0 );\n* // returns false\n*\n* bool = isPositiveInteger( 3.14 );\n* // returns false\n*\n* bool = isPositiveInteger( null );\n* // returns false\n*\n* @example\n* import { isPrimitive as isPositiveInteger } from '@stdlib/assert/is-positive-integer';\n*\n* var bool = isPositiveInteger( 3.0 );\n* // returns true\n*\n* bool = isPositiveInteger( new Number( 3.0 ) );\n* // returns false\n*\n* @example\n* import { isObject as isPositiveInteger } from '@stdlib/assert/is-positive-integer';\n*\n* var bool = isPositiveInteger( 3.0 );\n* // returns false\n*\n* bool = isPositiveInteger( new Number( 3.0 ) );\n* // returns true\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport isPrimitive from './primitive.js';\nimport isObject from './object.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'isPrimitive', isPrimitive );\nsetReadOnly( main, 'isObject', isObject );\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* Test if a value is an array-like object containing only functions.\n*\n* @module @stdlib/assert/is-function-array\n*\n* @example\n* import isFunctionArray from '@stdlib/assert/is-function-array';\n*\n* function beep() {}\n*\n* function boop() {}\n*\n* var bool = isFunctionArray( [ beep, boop ] );\n* // returns true\n*\n* bool = isFunctionArray( [ {}, beep ] );\n* // returns false\n*\n* bool = isFunctionArray( [] );\n* // returns false\n*/\n\n// MODULES //\n\nimport arrayfun from './../../tools/array-like-function';\nimport isFunction from './../../is-function';\n\n\n// MAIN //\n\nvar isFunctionArray = arrayfun( isFunction );\n\n\n// EXPORTS //\n\nexport default isFunctionArray;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { isPrimitive as isNonNegativeInteger } from '@stdlib/assert/is-nonnegative-integer';\nimport isPositiveInteger from '@stdlib/assert/is-positive-integer';\nimport { isPrimitive as isInteger } from '@stdlib/assert/is-integer';\nimport isFunctionArray from '@stdlib/assert/is-function-array';\nimport isFunction from '@stdlib/assert/is-function';\nimport isCollection from '@stdlib/assert/is-collection';\nimport format from '@stdlib/string/format';\nimport abs from '@stdlib/math/base/special/abs';\nimport indexOfTypes from './index_of_types.js';\n\n\n// MAIN //\n\n/**\n* Returns a strided array function interface which performs multiple dispatch.\n*\n* @param {(FunctionArray|Function)} fcns - list of strided array functions\n* @param {Collection} types - one-dimensional list of strided array argument data types\n* @param {(Collection|null)} data - strided array function data (e.g., callbacks)\n* @param {PositiveInteger} nargs - total number of strided array function interface arguments (including data types, strides, and offsets)\n* @param {NonNegativeInteger} nin - number of input strided arrays\n* @param {NonNegativeInteger} nout - number of output strided arrays\n* @throws {TypeError} first argument must be either a function or an array of functions\n* @throws {TypeError} second argument must be an an array-like object\n* @throws {TypeError} third argument must be an array-like object or `null`\n* @throws {Error} third and first arguments must have the same number of elements\n* @throws {TypeError} fourth argument must be a positive integer\n* @throws {TypeError} fifth argument must be a nonnegative integer\n* @throws {TypeError} sixth argument must be a nonnegative integer\n* @throws {Error} fourth argument must be compatible with the specified number of input and output arrays\n* @throws {Error} number of types must match the number of functions times the total number of array arguments for each function\n* @throws {Error} interface must accept at least one strided input and/or output array\n* @returns {Function} strided array function interface\n*\n* @example\n* import unary from '@stdlib/strided/base/unary';\n* import abs from '@stdlib/math/base/special/abs';\n* import Float64Array from '@stdlib/array/float64';\n*\n* var types = [\n* 'float64', 'float64'\n* ];\n*\n* var data = [\n* abs\n* ];\n*\n* var strided = dispatch( unary, types, data, 7, 1, 1 );\n*\n* // ...\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* strided( x.length, 'float64', x, 1, 'float64', y, 1 );\n* // y => [ 1.0, 2.0, 3.0, 4.0, 5.0 ]\n*/\nfunction dispatch( fcns, types, data, nargs, nin, nout ) {\n\tvar strideArgs;\n\tvar hasOffsets;\n\tvar narrays;\n\tvar nfcns;\n\tvar iout;\n\tvar fcn;\n\n\tif ( isFunction( fcns ) ) {\n\t\tfcn = fcns;\n\t} else if ( !isFunctionArray( fcns ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be either a function or an array of functions. Value: `%s`.', fcns ) );\n\t}\n\tif ( !isCollection( types ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an array-like object. Value: `%s`.', types ) );\n\t}\n\tif ( !isCollection( data ) && data !== null ) {\n\t\tthrow new TypeError( format( 'invalid argument. Third argument must be an array-like object or null. Value: `%s`.', data ) );\n\t}\n\tif ( !isPositiveInteger( nargs ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Fourth argument must be a positive integer. Value: `%s`.', nargs ) );\n\t}\n\tif ( !isNonNegativeInteger( nin ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Fifth argument must be a nonnegative integer. Value: `%s`.', nin ) );\n\t}\n\tif ( !isNonNegativeInteger( nout ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Sixth argument must be a nonnegative integer. Value: `%s`.', nout ) );\n\t}\n\tnarrays = nin + nout;\n\tif ( narrays === 0 ) {\n\t\tthrow new Error( 'invalid arguments. Interface must accept at least one strided input and/or output array. Based on the provided arguments, `nin+nout` equals `0`.' );\n\t}\n\tif ( fcn ) {\n\t\tnfcns = types.length / narrays;\n\t\tif ( !isInteger( nfcns ) ) {\n\t\t\tthrow new Error( 'invalid argument. Unexpected number of types. A type must be specified for each strided input and output array for each provided strided array function.' );\n\t\t}\n\t} else {\n\t\tnfcns = fcns.length;\n\t\tif ( types.length !== nfcns*narrays ) {\n\t\t\tthrow new Error( 'invalid argument. Unexpected number of types. A type must be specified for each strided input and output array for each provided strided array function.' );\n\t\t}\n\t}\n\tif ( data && data.length !== nfcns ) {\n\t\tthrow new Error( 'invalid argument. The third argument must have the same number of elements as the first argument.' );\n\t}\n\t// Determine whether the strided array interface includes offsets:\n\tif ( (narrays*3)+1 === nargs ) {\n\t\thasOffsets = false;\n\t} else if ( (narrays*4)+1 === nargs ) {\n\t\thasOffsets = true;\n\t} else {\n\t\tthrow new Error( 'invalid argument. Fourth argument is incompatible with the number of strided input and output arrays.' );\n\t}\n\t// Determine the \"stride\" for accessing related arguments:\n\tif ( hasOffsets ) {\n\t\tstrideArgs = 4;\n\t} else {\n\t\tstrideArgs = 3;\n\t}\n\t// Compute the index of the first output strided array argument:\n\tiout = ( nin*strideArgs ) + 1;\n\n\treturn dispatcher;\n\n\t/**\n\t* Strided array function interface which performs multiple dispatch.\n\t*\n\t* @private\n\t* @param {integer} N - number of indexed elements\n\t* @param {*} dtypeX - data type for `x`\n\t* @param {Collection} x - strided array\n\t* @param {integer} strideX - index increment for `x`\n\t* @param {...(Collection|integer|NonNegativeInteger)} args - array arguments (data types, arrays, strides, and offsets)\n\t* @throws {Error} insufficient arguments\n\t* @throws {Error} too many arguments\n\t* @throws {TypeError} first argument must be an integer\n\t* @throws {TypeError} input array strides must be integers\n\t* @throws {TypeError} output array strides must be integers\n\t* @throws {TypeError} input array offsets must be nonnegative integers\n\t* @throws {TypeError} output array offsets must be nonnegative integers\n\t* @throws {TypeError} input array arguments must be array-like objects\n\t* @throws {TypeError} output array arguments must be array-like objects\n\t* @throws {RangeError} input array arguments must have sufficient elements based on the associated stride and the number of indexed elements\n\t* @throws {RangeError} output array arguments must have sufficient elements based on the associated stride and the number of indexed elements\n\t* @throws {TypeError} unable to resolve a strided array function supporting the provided array argument data types\n\t* @returns {(Collection|Array|void)} destination array(s)\n\t*/\n\tfunction dispatcher() {\n\t\tvar strides;\n\t\tvar offsets;\n\t\tvar arrays;\n\t\tvar dtypes;\n\t\tvar shape;\n\t\tvar argc;\n\t\tvar idx;\n\t\tvar N;\n\t\tvar v;\n\t\tvar f;\n\t\tvar i;\n\t\tvar j;\n\n\t\targc = arguments.length;\n\t\tif ( argc !== nargs ) {\n\t\t\tif ( argc < nargs ) {\n\t\t\t\tthrow new Error( 'invalid invocation. Insufficient arguments.' );\n\t\t\t}\n\t\t\tthrow new Error( 'invalid invocation. Too many arguments.' );\n\t\t}\n\t\tN = arguments[ 0 ];\n\t\tif ( !isInteger( N ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. First argument must be an integer. Value: `%s`.', N ) );\n\t\t}\n\t\tshape = [ N ];\n\n\t\t// data types for both input and output strided arrays are every `strideArgs` arguments beginning from the second argument...\n\t\tdtypes = [];\n\t\tfor ( i = 1; i < nargs; i += strideArgs ) {\n\t\t\tdtypes.push( arguments[ i ] );\n\t\t}\n\n\t\t// Strides for both input and output strided arrays are every `strideArgs` arguments beginning from the fourth argument...\n\t\tstrides = [];\n\t\tfor ( i = 3; i < nargs; i += strideArgs ) {\n\t\t\tv = arguments[ i ];\n\t\t\tif ( !isInteger( v ) ) {\n\t\t\t\tif ( i < iout ) {\n\t\t\t\t\tthrow new TypeError( format( 'invalid argument. Input array stride must be an integer. Value: `%s`.', v ) );\n\t\t\t\t} else {\n\t\t\t\t\tthrow new TypeError( format( 'invalid argument. Output array stride must be an integer. Value: `%s`.', v ) );\n\t\t\t\t}\n\t\t\t}\n\t\t\tstrides.push( v );\n\t\t}\n\t\tif ( hasOffsets ) {\n\t\t\t// Offsets for both input and output strided arrays are every `strideArgs` arguments beginning from the fifth argument...\n\t\t\toffsets = [];\n\t\t\tfor ( i = 4; i < nargs; i += strideArgs ) {\n\t\t\t\tv = arguments[ i ];\n\t\t\t\tif ( !isNonNegativeInteger( v ) ) {\n\t\t\t\t\tif ( i < iout ) {\n\t\t\t\t\t\tthrow new TypeError( format( 'invalid argument. Input array offset must be a nonnegative integer. Value: `%s`.', v ) );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthrow new TypeError( format( 'invalid argument. Output array offset must be a nonnegative integer. Value: `%s`.', v ) );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\toffsets.push( v );\n\t\t\t}\n\t\t}\n\t\t// Input and output strided arrays are every `strideArgs` arguments beginning from the third argument...\n\t\tarrays = [];\n\t\tfor ( i = 2; i < nargs; i += strideArgs ) {\n\t\t\tv = arguments[ i ];\n\t\t\tif ( !isCollection( v ) ) {\n\t\t\t\tif ( i < iout ) {\n\t\t\t\t\tthrow new TypeError( format( 'invalid argument. Input array must be an array-like object. Value: `%s`.', v ) );\n\t\t\t\t} else {\n\t\t\t\t\tthrow new TypeError( format( 'invalid argument. Output array must be an array-like object. Value: `%s`.', v ) );\n\t\t\t\t}\n\t\t\t}\n\t\t\tj = (i-2) / strideArgs;\n\t\t\tif ( hasOffsets ) {\n\t\t\t\tidx = offsets[ j ] + ( (N-1)*strides[j] );\n\t\t\t\tif ( N > 0 && (idx < 0 || idx >= v.length) ) {\n\t\t\t\t\tif ( i < iout ) {\n\t\t\t\t\t\tthrow new RangeError( 'invalid argument. Input array has insufficient elements based on the associated stride and the number of indexed elements.' );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthrow new RangeError( 'invalid argument. Output array has insufficient elements based on the associated stride and the number of indexed elements.' );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if ( (N-1)*abs(strides[j]) >= v.length ) {\n\t\t\t\tif ( i < iout ) {\n\t\t\t\t\tthrow new RangeError( 'invalid argument. Input array has insufficient elements based on the associated stride and the number of indexed elements.' );\n\t\t\t\t} else {\n\t\t\t\t\tthrow new RangeError( 'invalid argument. Output array has insufficient elements based on the associated stride and the number of indexed elements.' );\n\t\t\t\t}\n\t\t\t}\n\t\t\tarrays.push( v );\n\t\t}\n\t\t// Resolve the strided array function satisfying the input array types:\n\t\tidx = indexOfTypes( nfcns, narrays, types, narrays, 1, 0, dtypes, 1, 0 ); // eslint-disable-line max-len\n\n\t\t// Check whether we were able to successfully resolve a strided array function:\n\t\tif ( idx < 0 ) {\n\t\t\tthrow new TypeError( 'invalid arguments. Unable to resolve a strided array function supporting the provided array argument data types.' );\n\t\t}\n\t\t// Retrieve the strided array function:\n\t\tif ( fcn ) {\n\t\t\tf = fcn;\n\t\t} else {\n\t\t\tf = fcns[ idx ];\n\t\t}\n\t\t// Evaluate the strided array function:\n\t\tif ( data ) {\n\t\t\tif ( hasOffsets ) {\n\t\t\t\tf( arrays, shape, strides, offsets, data[ idx ] );\n\t\t\t} else {\n\t\t\t\tf( arrays, shape, strides, data[ idx ] );\n\t\t\t}\n\t\t} else if ( hasOffsets ) {\n\t\t\tf( arrays, shape, strides, offsets );\n\t\t} else {\n\t\t\tf( arrays, shape, strides );\n\t\t}\n\t\tif ( nout === 1 ) {\n\t\t\treturn arrays[ narrays-1 ];\n\t\t}\n\t\tif ( nout === 0 ) {\n\t\t\treturn;\n\t\t}\n\t\treturn arrays.slice( nin );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default dispatch;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 first row index at which a given one-dimensional array of types can be found in a two-dimensional reference array of types (or `-1` if not found).\n*\n* ## Notes\n*\n* - The intended use case for this function is for type dispatch (i.e., given a set of array data types, find a matching interface according the interface's accepted array data types).\n* - The function assumes that `x` is stored in row-major order.\n* - The function assumes that the number of indexed elements in `y` equals the number of columns in `x`.\n* - The function returns a row index. To convert to a linear index, multiply `strideX1` by the return value.\n*\n* @private\n* @param {NonNegativeInteger} N - number of rows in `x` (size of first dimension)\n* @param {NonNegativeInteger} M - number of columns in `x` (size of second dimension)\n* @param {ArrayLikeObject} x - input two-dimensional reference array\n* @param {integer} strideX1 - `x` stride length along first dimension\n* @param {integer} strideX2 - `x` stride length along second dimension\n* @param {NonNegativeInteger} offsetX - `x` starting index\n* @param {ArrayLikeObject} y - search array\n* @param {integer} strideY - `y` stride length\n* @param {NonNegativeInteger} offsetY - `y` starting index\n* @returns {integer} row index (if found) and `-1` otherwise\n*\n* @example\n* // Define a reference array to search:\n* var types = [\n* 'float64', 'float64', 'float64',\n* 'float32', 'float32', 'float32',\n* 'uint32', 'uint32', 'float64',\n* 'int32', 'int32', 'float64',\n* 'uint16', 'uint16', 'float64',\n* 'int16', 'int16', 'float64',\n* 'uint8', 'uint8', 'float64',\n* 'int8', 'int8', 'float64'\n* ];\n*\n* // Define reference array dimensions:\n* var N = 8; // rows\n* var M = 3; // columns\n*\n* // Define a search array:\n* y1 = [\n* 'float32', 'float32', 'float32',\n* ];\n*\n* // Find the list of types:\n* var r1 = indexOfTypes( N, M, types, M, 1, 0, y1, 1, 0 );\n* // returns 1\n*\n// Define a search array:\n* y2 = [\n* 'float32', 'float32', 'float64',\n* ];\n*\n* // Find the list of types:\n* var r2 = indexOfTypes( N, M, types, M, 1, 0, y2, 1, 0 );\n* // returns -1\n*/\nfunction indexOfTypes( N, M, x, strideX1, strideX2, offsetX, y, strideY, offsetY ) { // eslint-disable-line max-len\n\tvar ix;\n\tvar iy;\n\tvar i;\n\tvar j;\n\n\t// Search for the first row which matches `y`...\n\tix = offsetX;\n\tfor ( i = 0; i < N; i++ ) {\n\t\tiy = offsetY;\n\t\tfor ( j = 0; j < M; j++ ) {\n\t\t\tif ( x[ ix+(j*strideX2) ] !== y[ iy ] ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tiy += strideY;\n\t\t}\n\t\t// If we successfully iterated over all columns, then that means we've found a match...\n\t\tif ( j === M ) {\n\t\t\treturn i;\n\t\t}\n\t\tix += strideX1;\n\t}\n\treturn -1;\n}\n\n\n// EXPORTS //\n\nexport default indexOfTypes;\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// VARIABLES //\n\nvar SETTERS = {\n\t'complex128': setComplex128,\n\t'complex64': setComplex64,\n\t'default': setArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Sets an element in a `Complex128Array`.\n*\n* @private\n* @param {Complex128Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @param {(Collection|Complex|ComplexArray)} value - value(s)\n*\n* @example\n* import Complex128Array from '@stdlib/array/complex128';\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 arr = new Complex128Array( [ 1, 2, 3, 4 ] );\n*\n* setComplex128( arr, 1, new Complex128( 10.0, 11.0 ) );\n* var v = arr.get( 1 );\n* // returns \n*\n* var re = real( v );\n* // returns 10.0\n*\n* var im = imag( v );\n* // returns 11.0\n*/\nfunction setComplex128( arr, idx, value ) {\n\tarr.set( value, idx );\n}\n\n/**\n* Sets an element in a `Complex64Array`.\n*\n* @private\n* @param {Complex64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @param {(Collection|Complex|ComplexArray)} value - value(s)\n*\n* @example\n* import Complex64Array from '@stdlib/array/complex64';\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 arr = new Complex64Array( [ 1, 2, 3, 4 ] );\n*\n* setComplex64( arr, 1, new Complex64( 10.0, 11.0 ) );\n* var v = arr.get( 1 );\n* // returns \n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 11.0\n*/\nfunction setComplex64( arr, idx, value ) {\n\tarr.set( value, idx );\n}\n\n/**\n* Sets an element in an array-like object supporting the get/set protocol.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @param {(Collection|Complex|ComplexArray)} value - value(s)\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* function get( idx ) {\n* return arr[ idx ];\n* }\n*\n* function set( value, idx ) {\n* arr[ idx ] = value;\n* }\n*\n* arr.get = get;\n* arr.set = set;\n*\n* setArrayLike( arr, 2, 10 );\n*\n* var v = arr[ 2 ];\n* // returns 10\n*/\nfunction setArrayLike( arr, idx, value ) {\n\tarr.set( value, idx );\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for setting an element in an array-like object supporting the get/set protocol.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import Complex64Array from '@stdlib/array/complex64';\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* import dtype from '@stdlib/array/dtype';\n*\n* var arr = new Complex64Array( [ 1, 2, 3, 4 ] );\n*\n* var set = setter( dtype( arr ) );\n* set( arr, 1, new Complex64( 10.0, 11.0 ) );\n*\n* var v = arr.get( 1 );\n* // returns \n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 11.0\n*/\nfunction setter( dtype ) {\n\tvar f = SETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn SETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default setter;\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// VARIABLES //\n\nvar SETTERS = {\n\t'float64': setFloat64,\n\t'float32': setFloat32,\n\t'int32': setInt32,\n\t'int16': setInt16,\n\t'int8': setInt8,\n\t'uint32': setUint32,\n\t'uint16': setUint16,\n\t'uint8': setUint8,\n\t'uint8c': setUint8c,\n\t'generic': setGeneric,\n\t'default': setArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Sets an element in a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @param {number} value - value to set\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* var arr = new Float64Array( 4 );\n*\n* setFloat64( arr, 2, 3.0 );\n*\n* var v = arr[ 2 ];\n* // returns 3.0\n*/\nfunction setFloat64( arr, idx, value ) {\n\tarr[ idx ] = value;\n}\n\n/**\n* Sets an element in a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @param {number} value - value to set\n*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n*\n* var arr = new Float32Array( 4 );\n*\n* setFloat32( arr, 2, 3.0 );\n*\n* var v = arr[ 2 ];\n* // returns 3.0\n*/\nfunction setFloat32( arr, idx, value ) {\n\tarr[ idx ] = value;\n}\n\n/**\n* Sets an element in an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @param {number} value - value to set\n*\n* @example\n* import Int32Array from '@stdlib/array/int32';\n*\n* var arr = new Int32Array( 4 );\n*\n* setInt32( arr, 2, 3 );\n*\n* var v = arr[ 2 ];\n* // returns 3\n*/\nfunction setInt32( arr, idx, value ) {\n\tarr[ idx ] = value;\n}\n\n/**\n* Sets an element in an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @param {number} value - value to set\n*\n* @example\n* import Int16Array from '@stdlib/array/int16';\n*\n* var arr = new Int16Array( 4 );\n*\n* setInt16( arr, 2, 3 );\n*\n* var v = arr[ 2 ];\n* // returns 3\n*/\nfunction setInt16( arr, idx, value ) {\n\tarr[ idx ] = value;\n}\n\n/**\n* Sets an element in an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @param {number} value - value to set\n*\n* @example\n* import Int8Array from '@stdlib/array/int8';\n*\n* var arr = new Int8Array( 4 );\n*\n* setInt8( arr, 2, 3 );\n*\n* var v = arr[ 2 ];\n* // returns 3\n*/\nfunction setInt8( arr, idx, value ) {\n\tarr[ idx ] = value;\n}\n\n/**\n* Sets an element in a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @param {number} value - value to set\n*\n* @example\n* import Uint32Array from '@stdlib/array/uint32';\n*\n* var arr = new Uint32Array( 4 );\n*\n* setUint32( arr, 2, 3 );\n*\n* var v = arr[ 2 ];\n* // returns 3\n*/\nfunction setUint32( arr, idx, value ) {\n\tarr[ idx ] = value;\n}\n\n/**\n* Sets an element in a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @param {number} value - value to set\n*\n* @example\n* import Uint16Array from '@stdlib/array/uint16';\n*\n* var arr = new Uint16Array( 4 );\n*\n* setUint16( arr, 2, 3 );\n*\n* var v = arr[ 2 ];\n* // returns 3\n*/\nfunction setUint16( arr, idx, value ) {\n\tarr[ idx ] = value;\n}\n\n/**\n* Sets an element in a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @param {number} value - value to set\n*\n* @example\n* import Uint8Array from '@stdlib/array/uint8';\n*\n* var arr = new Uint8Array( 4 );\n*\n* setUint8( arr, 2, 3 );\n*\n* var v = arr[ 2 ];\n* // returns 3\n*/\nfunction setUint8( arr, idx, value ) {\n\tarr[ idx ] = value;\n}\n\n/**\n* Sets an element in a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @param {number} value - value to set\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array/uint8c';\n*\n* var arr = new Uint8ClampedArray( 4 );\n*\n* setUint8c( arr, 2, 3 );\n*\n* var v = arr[ 2 ];\n* // returns 3\n*/\nfunction setUint8c( arr, idx, value ) {\n\tarr[ idx ] = value;\n}\n\n/**\n* Sets an element in a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @param {*} value - value to set\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* setGeneric( arr, 2, 3 );\n*\n* var v = arr[ 2 ];\n* // returns 3\n*/\nfunction setGeneric( arr, idx, value ) {\n\tarr[ idx ] = value;\n}\n\n/**\n* Sets an element in an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @param {*} value - value to set\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* setArrayLike( arr, 2, 3 );\n*\n* var v = arr[ 2 ];\n* // returns 3\n*/\nfunction setArrayLike( arr, idx, value ) {\n\tarr[ idx ] = value;\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for setting an element in an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array/dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var set = setter( dtype( arr ) );\n* set( arr, 2, 3 );\n*\n* var v = arr[ 2 ];\n* // returns 3\n*/\nfunction setter( dtype ) {\n\tvar f = SETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn SETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default setter;\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// MAIN //\n\n/**\n* Returns the index offset which specifies the location of the first indexed value in a strided array.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {integer} stride - index increment\n* @returns {NonNegativeInteger} offset - offset\n*\n* @example\n* var offset = stride2offset( 10, -10 );\n* // returns 90\n*/\nfunction stride2offset( N, stride ) {\n\tif ( stride > 0 ) {\n\t\treturn 0;\n\t}\n\treturn ( 1 - N ) * stride;\n}\n\n\n// EXPORTS //\n\nexport default stride2offset;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Applies a unary callback to elements in a strided input array and assigns results to elements in a strided output array.\n*\n* @private\n* @param {ArrayLikeObject} arrays - array-like object containing one input array and one output array\n* @param {NonNegativeIntegerArray} shape - array-like object containing a single element, the number of indexed elements\n* @param {IntegerArray} strides - array-like object containing the stride lengths for the input and output arrays\n* @param {NonNegativeIntegerArray} offsets - array-like object containing the starting indices (i.e., index offsets) for the input and output arrays\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var y = new Float64Array( x.length );\n*\n* var shape = [ x.length ];\n* var strides = [ 1, 1 ];\n* var offsets = [ 0, 0 ];\n*\n* unary( [ x, y ], shape, strides, offsets, scale );\n*\n* console.log( y );\n* // => [ 10.0, 20.0, 30.0, 40.0, 50.0 ]\n*/\nfunction unary( arrays, shape, strides, offsets, fcn ) {\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar x;\n\tvar y;\n\tvar N;\n\tvar i;\n\n\tN = shape[ 0 ];\n\tif ( N <= 0 ) {\n\t\treturn;\n\t}\n\tix = offsets[ 0 ];\n\tiy = offsets[ 1 ];\n\tsx = strides[ 0 ];\n\tsy = strides[ 1 ];\n\tx = arrays[ 0 ];\n\ty = arrays[ 1 ];\n\tfor ( i = 0; i < N; i++ ) {\n\t\ty[ iy ] = fcn( x[ ix ] );\n\t\tix += sx;\n\t\tiy += sy;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary;\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* Applies a unary callback to elements in a strided input array and assigns results to elements in a strided output array.\n*\n* @private\n* @param {ArrayLikeObject} arrays - array-like object containing one input array and one output array\n* @param {NonNegativeIntegerArray} shape - array-like object containing a single element, the number of indexed elements\n* @param {IntegerArray} strides - array-like object containing the stride lengths for the input and output arrays\n* @param {NonNegativeIntegerArray} offsets - array-like object containing the starting indices (i.e., index offsets) for the input and output arrays\n* @param {Array} accessors - array-like object containing accessors for the input and output arrays\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* function get( buf, idx ) {\n* return buf[ idx ] * 2.0;\n* }\n*\n* function set( buf, idx, value ) {\n* buf[ idx ] = value;\n* }\n*\n* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var y = new Float64Array( x.length );\n*\n* var shape = [ x.length ];\n* var strides = [ 1, 1 ];\n* var offsets = [ 0, 0 ];\n*\n* unary( [ x, y ], shape, strides, offsets, [ get, set ], scale );\n*\n* console.log( y );\n* // => [ 20.0, 40.0, 60.0, 80.0, 100.0 ]\n*/\nfunction unary( arrays, shape, strides, offsets, accessors, fcn ) {\n\tvar xget;\n\tvar yset;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar x;\n\tvar y;\n\tvar N;\n\tvar i;\n\n\tN = shape[ 0 ];\n\tif ( N <= 0 ) {\n\t\treturn;\n\t}\n\tix = offsets[ 0 ];\n\tiy = offsets[ 1 ];\n\tsx = strides[ 0 ];\n\tsy = strides[ 1 ];\n\tx = arrays[ 0 ];\n\ty = arrays[ 1 ];\n\txget = accessors[ 0 ];\n\tyset = accessors[ 1 ];\n\tfor ( i = 0; i < N; i++ ) {\n\t\tyset( y, iy, fcn( xget( x, ix ) ) );\n\t\tix += sx;\n\t\tiy += sy;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isAccessorArray from '@stdlib/array/base/assert/is-accessor-array';\nimport accessorGetter from '@stdlib/array/base/accessor-getter';\nimport accessorSetter from '@stdlib/array/base/accessor-setter';\nimport getter from '@stdlib/array/base/getter';\nimport setter from '@stdlib/array/base/setter';\nimport dtype from '@stdlib/array/dtype';\nimport strided from './unary.js';\nimport accessors from './accessors.js';\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a strided input array and assigns results to elements in a strided output array.\n*\n* @param {ArrayLikeObject} arrays - array-like object containing one input array and one output array\n* @param {NonNegativeIntegerArray} shape - array-like object containing a single element, the number of indexed elements\n* @param {IntegerArray} strides - array-like object containing the stride lengths for the input and output arrays\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var y = new Float64Array( x.length );\n*\n* var shape = [ x.length ];\n* var strides = [ 1, 1 ];\n*\n* unary( [ x, y ], shape, strides, scale );\n*\n* console.log( y );\n* // => [ 10.0, 20.0, 30.0, 40.0, 50.0 ]\n*/\nfunction unary( arrays, shape, strides, fcn ) {\n\tvar xget;\n\tvar yset;\n\tvar x;\n\tvar y;\n\n\tx = arrays[ 0 ];\n\tif ( isAccessorArray( x ) ) {\n\t\txget = accessorGetter( dtype( x ) );\n\t}\n\ty = arrays[ 1 ];\n\tif ( isAccessorArray( y ) ) {\n\t\tyset = accessorSetter( dtype( y ) );\n\t}\n\tif ( xget || yset ) {\n\t\txget = xget || getter( dtype( x ) );\n\t\tyset = yset || setter( dtype( y ) );\n\t\treturn accessors( arrays, shape, strides, [ xget, yset ], fcn );\n\t}\n\treturn strided( arrays, shape, strides, fcn );\n}\n\n\n// EXPORTS //\n\nexport default unary;\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 stride2offset from './../../../base/stride2offset';\nimport ndarray from './accessors.ndarray.js';\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a strided input array and assigns results to elements in a strided output array.\n*\n* @private\n* @param {ArrayLikeObject} arrays - array-like object containing one input array and one output array\n* @param {NonNegativeIntegerArray} shape - array-like object containing a single element, the number of indexed elements\n* @param {IntegerArray} strides - array-like object containing the stride lengths for the input and output arrays\n* @param {Array} accessors - array-like object containing accessors for the input and output arrays\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* function get( buf, idx ) {\n* return buf[ idx ] * 2.0;\n* }\n*\n* function set( buf, idx, value ) {\n* buf[ idx ] = value;\n* }\n*\n* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var y = new Float64Array( x.length );\n*\n* var shape = [ x.length ];\n* var strides = [ 1, 1 ];\n*\n* unary( [ x, y ], shape, strides, [ get, set ], scale );\n*\n* console.log( y );\n* // => [ 20.0, 40.0, 60.0, 80.0, 100.0 ]\n*/\nfunction unary( arrays, shape, strides, accessors, fcn ) {\n\tvar offsets;\n\tvar N;\n\n\tN = shape[ 0 ];\n\toffsets = [\n\t\tstride2offset( N, strides[ 0 ] ),\n\t\tstride2offset( N, strides[ 1 ] )\n\t];\n\treturn ndarray( arrays, shape, strides, offsets, accessors, fcn );\n}\n\n\n// EXPORTS //\n\nexport default unary;\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 stride2offset from './../../../base/stride2offset';\nimport ndarray from './unary.ndarray.js';\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a strided input array and assigns results to elements in a strided output array.\n*\n* @private\n* @param {ArrayLikeObject} arrays - array-like object containing one input array and one output array\n* @param {NonNegativeIntegerArray} shape - array-like object containing a single element, the number of indexed elements\n* @param {IntegerArray} strides - array-like object containing the stride lengths for the input and output arrays\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var y = new Float64Array( x.length );\n*\n* var shape = [ x.length ];\n* var strides = [ 1, 1 ];\n*\n* unary( [ x, y ], shape, strides, scale );\n*\n* console.log( y );\n* // => [ 10.0, 20.0, 30.0, 40.0, 50.0 ]\n*/\nfunction unary( arrays, shape, strides, fcn ) {\n\tvar offsets;\n\tvar N;\n\n\tN = shape[ 0 ];\n\toffsets = [\n\t\tstride2offset( N, strides[ 0 ] ),\n\t\tstride2offset( N, strides[ 1 ] )\n\t];\n\treturn ndarray( arrays, shape, strides, offsets, fcn );\n}\n\n\n// EXPORTS //\n\nexport default unary;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isAccessorArray from '@stdlib/array/base/assert/is-accessor-array';\nimport accessorGetter from '@stdlib/array/base/accessor-getter';\nimport accessorSetter from '@stdlib/array/base/accessor-setter';\nimport getter from '@stdlib/array/base/getter';\nimport setter from '@stdlib/array/base/setter';\nimport dtype from '@stdlib/array/dtype';\nimport strided from './unary.ndarray.js';\nimport accessors from './accessors.ndarray.js';\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a strided input array and assigns results to elements in a strided output array.\n*\n* @param {ArrayLikeObject} arrays - array-like object containing one input array and one output array\n* @param {NonNegativeIntegerArray} shape - array-like object containing a single element, the number of indexed elements\n* @param {IntegerArray} strides - array-like object containing the stride lengths for the input and output arrays\n* @param {NonNegativeIntegerArray} offsets - array-like object containing the starting indices (i.e., index offsets) for the input and output arrays\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var y = new Float64Array( x.length );\n*\n* var shape = [ x.length ];\n* var strides = [ 1, 1 ];\n* var offsets = [ 0, 0 ];\n*\n* unary( [ x, y ], shape, strides, offsets, scale );\n*\n* console.log( y );\n* // => [ 10.0, 20.0, 30.0, 40.0, 50.0 ]\n*/\nfunction unary( arrays, shape, strides, offsets, fcn ) {\n\tvar xget;\n\tvar yset;\n\tvar x;\n\tvar y;\n\n\tx = arrays[ 0 ];\n\tif ( isAccessorArray( x ) ) {\n\t\txget = accessorGetter( dtype( x ) );\n\t}\n\ty = arrays[ 1 ];\n\tif ( isAccessorArray( y ) ) {\n\t\tyset = accessorSetter( dtype( y ) );\n\t}\n\tif ( xget || yset ) {\n\t\txget = xget || getter( dtype( x ) );\n\t\tyset = yset || setter( dtype( y ) );\n\t\treturn accessors( arrays, shape, strides, offsets, [ xget, yset ], fcn ); // eslint-disable-line max-len\n\t}\n\treturn strided( arrays, shape, strides, offsets, fcn );\n}\n\n\n// EXPORTS //\n\nexport default unary;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Apply a unary callback to elements in a strided input array and assign results to elements in a strided output array.\n*\n* @module @stdlib/strided/base/unary\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import unary from '@stdlib/strided/base/unary';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var y = new Float64Array( x.length );\n*\n* var shape = [ x.length ];\n* var strides = [ 1, 1 ];\n*\n* unary( [ x, y ], shape, strides, scale );\n*\n* console.log( y );\n* // => [ 10.0, 20.0, 30.0, 40.0, 50.0 ]\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import unary from '@stdlib/strided/base/unary';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var y = new Float64Array( x.length );\n*\n* var shape = [ x.length ];\n* var strides = [ 1, 1 ];\n* var offsets = [ 0, 0 ];\n*\n* unary.ndarray( [ x, y ], shape, strides, offsets, scale );\n*\n* console.log( y );\n* // => [ 10.0, 20.0, 30.0, 40.0, 50.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) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport DTYPES from './dtypes.json';\n\n\n// MAIN //\n\n/**\n* Returns a list of strided array data type strings.\n*\n* @returns {StringArray} list of strided array data type strings\n*\n* @example\n* var list = dtypes();\n* // returns [...]\n*/\nfunction dtypes() {\n\treturn DTYPES.slice();\n}\n\n\n// EXPORTS //\n\nexport default dtypes;\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 { enum as ndtypes } from '@stdlib/ndarray/dtypes';\n\n\n// VARIABLES //\n\nvar dt = ndtypes();\n\n\n// MAIN //\n\n/**\n* Returns an object mapping supported data strings to enumeration constants for purposes of C inter-operation.\n*\n* ## Notes\n*\n* - Downstream consumers of this mapping should **not** rely on specific integer values (e.g., `INT8 == 0`). Instead, the object should be used in an opaque manner.\n* - The main purpose of this function is JavaScript and C inter-operation of strided arrays.\n*\n* @private\n* @returns {Object} object mapping supported data strings strings to enumeration constants\n*\n* @example\n* var table = enumeration();\n* // returns \n*/\nfunction enumeration() {\n\t// NOTE: the returned object should match the C `dtypes.h` enumeration!!!!\n\treturn {\n\t\t'bool': dt[ 'bool' ],\n\n\t\t'int8': dt[ 'int8' ],\n\t\t'uint8': dt[ 'uint8' ],\n\t\t'uint8c': dt[ 'uint8c' ],\n\t\t'int16': dt[ 'int16' ],\n\t\t'uint16': dt[ 'uint16' ],\n\t\t'int32': dt[ 'int32' ],\n\t\t'uint32': dt[ 'uint32' ],\n\t\t'int64': dt[ 'int64' ],\n\t\t'uint64': dt[ 'uint64' ],\n\n\t\t'float32': dt[ 'float32' ],\n\t\t'float64': dt[ 'float64' ],\n\n\t\t'complex64': dt[ 'complex64' ],\n\t\t'complex128': dt[ 'complex128' ],\n\n\t\t'binary': dt[ 'binary' ],\n\n\t\t'generic': dt[ 'generic' ],\n\n\t\t'notype': dt[ 'notype' ],\n\n\t\t'userdefined_type': dt[ 'userdefined_type' ]\n\t};\n}\n\n\n// EXPORTS //\n\nexport default enumeration;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 a list of strided array data types.\n*\n* @module @stdlib/strided/dtypes\n*\n* @example\n* import dtypes from '@stdlib/strided/dtypes';\n*\n* var list = dtypes();\n* // returns [...]\n*\n* @example\n* import { enum as enumeration } from '@stdlib/strided/dtypes';\n*\n* var table = enumeration();\n* // returns {...}\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport enumeration from './enum.js';\nimport assign from './assign.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'enum', enumeration );\nassign( main, enumeration() );\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 setReadOnly from '@stdlib/utils/define-read-only-property';\nimport objectKeys from '@stdlib/utils/keys';\n\n\n// MAIN //\n\n/**\n* Copies all enumerable own properties from a source object to a target object as enumerable read-only properties.\n*\n* @private\n* @param {Object} target - target object\n* @param {Object} source - source object\n* @returns {Object} modified target object\n*\n* @example\n* var source = {\n* 'beep': 'boop'\n* };\n* var target = {};\n*\n* var out = assign( target, source );\n* // returns \n*\n* var bool = ( out === target );\n* // returns true\n*\n* var v = target.beep;\n* // returns 'boop'\n*/\nfunction assign( target, source ) {\n\tvar keys;\n\tvar k;\n\tvar i;\n\n\tkeys = objectKeys( source );\n\tfor ( i = 0; i < keys.length; i++ ) {\n\t\tk = keys[ i ];\n\t\tsetReadOnly( target, k, source[ k ] );\n\t}\n\treturn target;\n}\n\n\n// EXPORTS //\n\nexport default assign;\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 objectInverse from '@stdlib/utils/object-inverse';\nimport { enum as enumeration } from './../../../dtypes';\n\n\n// VARIABLES //\n\nvar hash = objectInverse( enumeration(), {\n\t'duplicates': false\n});\n\n\n// MAIN //\n\n/**\n* Returns the data type string associated with a strided array data type enumeration constant.\n*\n* @param {integer} dtype - data type enumeration constant\n* @returns {(string|null)} data type string or null\n*\n* @example\n* import str2enum from '@stdlib/strided/base/dtype-str2enum';\n*\n* var v = str2enum( 'float64' );\n* // returns \n*\n* var dt = enum2str( v );\n* // returns 'float64'\n*/\nfunction enum2str( dtype ) {\n\tvar v = hash[ dtype ];\n\treturn ( typeof v === 'string' ) ? v : null; // note: we include this guard to prevent walking the prototype chain\n}\n\n\n// EXPORTS //\n\nexport default enum2str;\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 { enum as enumeration } from './../../../dtypes';\n\n\n// VARIABLES //\n\nvar ENUM = enumeration();\n\n\n// MAIN //\n\n/**\n* Returns the enumeration constant associated with a strided array data type string.\n*\n* ## Notes\n*\n* - Downstream consumers of this function should **not** rely on specific integer values (e.g., `INT8 == 0`). Instead, the function should be used in an opaque manner.\n*\n* @param {string} dtype - data type string\n* @returns {(integer|null)} integer value or null\n*\n* @example\n* var v = str2enum( 'int8' );\n* // returns \n*/\nfunction str2enum( dtype ) {\n\tvar v = ENUM[ dtype ];\n\treturn ( typeof v === 'number' ) ? v : null; // note: we include this guard to prevent walking the prototype chain\n}\n\n\n// EXPORTS //\n\nexport default str2enum;\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 enum2str from './../../../base/dtype-enum2str';\nimport str2enum from './../../../base/dtype-str2enum';\n\n\n// MAIN //\n\n/**\n* Returns the enumeration constant associated with a supported strided array data type value.\n*\n* ## Notes\n*\n* - Downstream consumers of this function should **not** rely on specific integer values (e.g., `INT8 == 0`). Instead, the function should be used in an opaque manner.\n*\n* @param {*} dtype - data type value\n* @returns {(integer|null)} enumeration constant or null\n*\n* @example\n* var v = resolve( 'int8' );\n* // returns \n*/\nfunction resolve( dtype ) {\n\tvar t = ( typeof dtype );\n\tif ( t === 'number' ) {\n\t\treturn ( enum2str( dtype ) ) ? dtype : null;\n\t}\n\tif ( t === 'string' ) {\n\t\treturn str2enum( dtype );\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nexport default resolve;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 for each element in a strided array `x` and assign the results to elements in a strided array `y`.\n*\n* @module @stdlib/math/strided/special/abs\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import abs from '@stdlib/math/strided/special/abs';\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*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import abs from '@stdlib/math/strided/special/abs';\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.ndarray( x.length, 'float64', x, 1, 0, 'float64', y, 1, 0 );\n* // y => [ 1.0, 2.0, 3.0, 4.0, 5.0 ]\n*/\n\n// MODULES //\n\nvar join = require( 'path' ).join;\nimport tryRequire from '@stdlib/utils/try-require';\nimport javascript from './main.js';\n\n\n// MAIN //\n\nvar main;\nvar tmp = tryRequire( join( __dirname, './native.js' ) );\nif ( tmp instanceof Error ) {\n\tmain = javascript;\n} else {\n\tmain = tmp;\n}\n\n\n// EXPORTS //\n\nexport default main;\n\n// exports: { \"ndarray\": \"main.ndarray\" }\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 isDataType from './../../base/assert/is-data-type';\nimport format from '@stdlib/string/format';\n\n\n// MAIN //\n\n/**\n* Returns the data type of a provided ndarray.\n*\n* @param {ndarrayLike} x - input ndarray\n* @throws {TypeError} must provide an ndarray having a supported data type\n* @returns {string} data type\n*\n* @example\n* import zeros from '@stdlib/ndarray/zeros';\n*\n* var x = zeros( [ 3, 3, 3 ], {\n* 'dtype': 'float64'\n* });\n*\n* var dt = dtype( x );\n* // returns 'float64'\n*/\nfunction dtype( x ) {\n\tvar dt;\n\n\t// Note: we intentionally avoid rigorous ndarray checks to minimize performance impacts. This obviously means that non-ndarray-like objects can sneak through, but this is likely all right for the purposes of this function...\n\tif ( typeof x !== 'object' || x === null ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide an ndarray. Value: `%s`.', x ) );\n\t}\n\tdt = x.dtype;\n\tif ( isDataType( dt ) ) {\n\t\treturn dt;\n\t}\n\t// A data type is essential for interpreting the memory associated with an ndarray object, so no fallbacks or workarounds for data type resolution...\n\tthrow new TypeError( format( 'invalid argument. Must provide an ndarray having a supported data type. Value: `%s`.', dt ) );\n}\n\n\n// EXPORTS //\n\nexport default dtype;\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 enum2str from './../../../base/dtype-enum2str';\nimport str2enum from './../../../base/dtype-str2enum';\n\n\n// MAIN //\n\n/**\n* Returns the enumeration constant associated with a supported ndarray data type value.\n*\n* ## Notes\n*\n* - Downstream consumers of this function should **not** rely on specific integer values (e.g., `INT8 == 0`). Instead, the function should be used in an opaque manner.\n*\n* @param {*} dtype - data type value\n* @returns {(integer|null)} enumeration constant or null\n*\n* @example\n* var v = resolve( 'int8' );\n* // returns \n*/\nfunction resolve( dtype ) {\n\tvar t = ( typeof dtype );\n\tif ( t === 'number' ) {\n\t\treturn ( enum2str( dtype ) ) ? dtype : null;\n\t}\n\tif ( t === 'string' ) {\n\t\treturn str2enum( dtype );\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nexport default resolve;\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 isAccessorArray from '@stdlib/array/base/assert/is-accessor-array';\nimport accessorGetter from '@stdlib/array/base/accessor-getter';\nimport accessorSetter from '@stdlib/array/base/accessor-setter';\nimport getter from '@stdlib/array/base/getter';\nimport setter from '@stdlib/array/base/setter';\nimport numel from './../../../base/numel';\nimport getDType from './../../../base/dtype';\nimport getShape from './../../../base/shape';\nimport getStrides from './../../../base/strides';\nimport getOffset from './../../../base/offset';\nimport getOrder from './../../../base/order';\nimport getData from './../../../base/data-buffer';\n\n\n// MAIN //\n\n/**\n* Converts an ndarray-like object to an object likely to have the same \"shape\".\n*\n* ## Notes\n*\n* - This function is intended as a potential performance optimization. In V8, for example, even if two objects share common properties, if those properties were added in different orders or if one object has additional properties not shared by the other object, then those objects will have different \"hidden\" classes. If a function is provided many objects having different \"shapes\", some JavaScript VMs (e.g., V8) will consider the function \"megamorphic\" and fail to perform various runtime optimizations. Accordingly, the intent of this function is to standardize the \"shape\" of the object holding ndarray meta data to ensure that internal functions operating on ndarrays are provided consistent argument \"shapes\".\n*\n* - The returned object has the following properties:\n*\n* - **ref**: reference to the original ndarray-like object.\n* - **dtype**: underlying data type.\n* - **data**: data buffer.\n* - **length**: number of elements.\n* - **shape**: array dimensions.\n* - **strides**: array strides.\n* - **offset**: index offset.\n* - **order**: order.\n* - **accessorProtocol**: `boolean` indicating whether the data buffer supports the get/set protocol (i.e., uses accessors for getting and setting elements).\n* - **accessors**: a two-element array whose first element is an accessor for retrieving an ndarray element and whose second element is an accessor for setting an ndarray element.\n*\n* @param {ndarrayLike} x - ndarray-like object\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {Object} object containing ndarray meta data\n*\n* @example\n* import array from '@stdlib/ndarray/array';\n*\n* var x = array( [ [ 1, 2, 3 ], [ 4, 5, 6 ] ] );\n*\n* var obj = ndarraylike2object( x );\n* // returns {...}\n*/\nfunction ndarraylike2object( x ) {\n\tvar xbuf;\n\tvar bool;\n\tvar sh;\n\tvar dt;\n\n\txbuf = getData( x );\n\tsh = getShape( x, true );\n\tdt = getDType( x );\n\n\tbool = isAccessorArray( xbuf );\n\n\treturn {\n\t\t'ref': x,\n\t\t'dtype': dt,\n\t\t'data': xbuf,\n\t\t'length': numel( sh ),\n\t\t'shape': sh,\n\t\t'strides': getStrides( x, true ),\n\t\t'offset': getOffset( x ),\n\t\t'order': getOrder( x ),\n\t\t'accessorProtocol': bool,\n\t\t'accessors': ( bool ) ?\n\t\t\t[ accessorGetter( dt ), accessorSetter( dt ) ] :\n\t\t\t[ getter( dt ), setter( dt ) ]\n\t};\n}\n\n\n// EXPORTS //\n\nexport default ndarraylike2object;\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// MAIN //\n\n/**\n* Generates a linearly spaced numeric array whose elements increment by 1 starting from zero.\n*\n* @param {number} n - number of elements\n* @returns {Array} linearly spaced numeric array\n*\n* @example\n* var arr = zeroTo( 6 );\n* // returns [ 0, 1, 2, 3, 4, 5 ]\n*/\nfunction zeroTo( n ) {\n\tvar arr;\n\tvar i;\n\n\tarr = [];\n\tif ( n <= 0 ) {\n\t\treturn arr;\n\t}\n\tfor ( i = 0; i < n; i++ ) {\n\t\tarr.push( i );\n\t}\n\treturn arr;\n}\n\n\n// EXPORTS //\n\nexport default zeroTo;\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 arraylike2object from './../../../base/arraylike2object';\nimport reinterpret128 from '@stdlib/strided/base/reinterpret-complex128';\nimport reinterpret64 from '@stdlib/strided/base/reinterpret-complex64';\n\n\n// FUNCTIONS //\n\n/**\n* Fills an indexed array with linearly spaced numeric elements which increment by 1 starting from zero.\n*\n* @private\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, 0, 0, 0, 0 ];\n*\n* var arr = indexed( out, 1, 0 );\n* // returns [ 0, 1, 2, 3, 4, 5 ]\n*\n* @example\n* var out = [ 0, 0, 0, 0, 0, 0 ];\n*\n* var arr = indexed( out, -1, out.length-1 );\n* // returns [ 5, 4, 3, 2, 1, 0 ]\n*/\nfunction indexed( out, stride, offset ) {\n\tvar v;\n\tvar i;\n\n\ti = offset;\n\tv = 0;\n\twhile ( i >= 0 && i < out.length ) {\n\t\tout[ i ] = v;\n\t\ti += stride;\n\t\tv += 1;\n\t}\n\treturn out;\n}\n\n/**\n* Fills a complex number array with linearly spaced numeric elements which increment by 1 starting from zero.\n*\n* @private\n* @param {(Complex128Array|Complex64Array)} out - output complex number array\n* @param {(Float64Array|Float32Array)} data - output array data\n* @param {integer} stride - output array stride\n* @param {NonNegativeInteger} offset - output array index offset\n* @returns {(Complex128Array|Complex64Array)} output array\n*\n* @example\n* import Complex128Array from '@stdlib/array/complex128';\n* import reinterpret128 from '@stdlib/strided/base/reinterpret-complex128';\n*\n* var out = new Complex128Array( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n* // returns \n*\n* var data = reinterpret128( out, 0 );\n* // returns [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ]\n*\n* var arr = complex( out, data, 1, 0 );\n* // returns \n*\n* var bool = ( arr === out );\n* // returns true\n*\n* data = reinterpret128( out, 0 );\n* returns [ 0.0, 0.0, 1.0, 0.0, 2.0, 0.0 ]\n*/\nfunction complex( out, data, stride, offset ) {\n\tvar v;\n\tvar s;\n\tvar i;\n\n\ts = stride * 2;\n\ti = offset * 2;\n\tv = 0.0;\n\twhile ( i >= 0 && i < data.length ) {\n\t\tdata[ i ] = v; // real component\n\t\tdata[ i+1 ] = 0.0; // imaginary component\n\t\ti += s;\n\t\tv += 1.0;\n\t}\n\treturn out;\n}\n\n/**\n* Fills an accessor array with linearly spaced numeric elements which increment by 1 starting from zero.\n*\n* @private\n* @param {Object} out - output array object\n* @param {integer} stride - output array stride\n* @param {NonNegativeInteger} offset - output array index offset\n* @returns {Collection} output array\n*\n* @example\n* import toAccessorArray from '@stdlib/array/base/to-accessor-array';\n* import arraylike2object from '@stdlib/array/base/arraylike2object';\n\n* var out = toAccessorArray( [ 0, 0, 0, 0, 0, 0 ] );\n* var arr = accessors( arraylike2object( out ), 1, 0 );\n*\n* var bool = ( arr === out );\n* // returns true\n*\n* var v = out.get( 0 );\n* // returns 0\n*\n* v = out.get( out.length-1 );\n* // returns 5\n*/\nfunction accessors( out, stride, offset ) {\n\tvar data;\n\tvar set;\n\tvar v;\n\tvar i;\n\n\tdata = out.data;\n\tset = out.accessors[ 1 ];\n\n\ti = offset;\n\tv = 0;\n\twhile ( i >= 0 && i < data.length ) {\n\t\tset( data, i, v );\n\t\ti += stride;\n\t\tv += 1;\n\t}\n\treturn data;\n}\n\n\n// MAIN //\n\n/**\n* Fills an array with linearly spaced numeric elements which increment by 1 starting from zero.\n*\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, 0, 0, 0, 0 ];\n*\n* var arr = assign( out, 1, 0 );\n* // returns [ 0, 1, 2, 3, 4, 5 ]\n*\n* @example\n* var out = [ 0, 0, 0, 0, 0, 0 ];\n*\n* var arr = assign( out, -1, out.length-1 );\n* // returns [ 5, 4, 3, 2, 1, 0 ]\n*/\nfunction assign( out, stride, offset ) {\n\tvar obj = arraylike2object( out );\n\tif ( obj.accessorProtocol ) {\n\t\t// If provided a complex number array, reinterpret as a real typed array and only set the real components...\n\t\tif ( obj.dtype === 'complex128' ) {\n\t\t\treturn complex( out, reinterpret128( out, 0 ), stride, offset );\n\t\t}\n\t\tif ( obj.dtype === 'complex64' ) {\n\t\t\treturn complex( out, reinterpret64( out, 0 ), stride, offset );\n\t\t}\n\t\treturn accessors( obj, stride, offset );\n\t}\n\treturn indexed( out, stride, offset );\n}\n\n\n// EXPORTS //\n\nexport default assign;\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* Takes elements from an indexed array.\n*\n* @param {Collection} x - input array\n* @param {NonNegativeIntegerArray} indices - list of indices\n* @returns {Array} output array\n*\n* @example\n* var x = [ 1, 2, 3, 4 ];\n* var indices = [ 3, 1, 2, 0 ];\n*\n* var y = take( x, indices );\n* // returns [ 4, 2, 3, 1 ]\n*/\nfunction take( x, indices ) {\n\tvar out;\n\tvar i;\n\n\tout = [];\n\tfor ( i = 0; i < indices.length; i++ ) {\n\t\tout.push( x[ indices[ i ] ] ); // use `Array#push` to ensure \"fast\" elements\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default take;\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 zeroTo from '@stdlib/array/base/zero-to';\nimport copy from '@stdlib/array/base/copy-indexed';\nimport take from '@stdlib/array/base/take-indexed';\nimport sort2ins from './sort2ins.js';\n\n\n// MAIN //\n\n/**\n* Reorders ndarray dimensions and associated strides for loop interchange.\n*\n* ## Notes\n*\n* - The returned object has the following properties:\n*\n* - **sh**: dimensions sorted in loop order.\n* - **sx**: input ndarray strides sorted in loop order.\n* - **sy**: output ndarray strides sorted in loop order.\n* - **idx**: dimension indices sorted in loop order.\n*\n* @param {NonNegativeIntegerArray} sh - array dimensions\n* @param {IntegerArray} sx - input array stride lengths\n* @param {IntegerArray} sy - output array stride lengths\n* @returns {Object} loop interchange data\n*\n* @example\n* var sh = [ 2, 3, 4 ];\n*\n* var sx = [ 12, 4, 1 ]; // row-major\n* var sy = [ 1, -2, 6 ]; // column-major\n*\n* var o = loopOrder( sh, sx, sy );\n* // returns {...}\n*\n* var ssh = o.sh;\n* // returns [ 4, 3, 2 ]\n*\n* var ssx = o.sx;\n* // returns [ 1, 4, 12 ]\n*\n* var ssy = o.sy;\n* // returns [ 6, -2, 1 ]\n*\n* var idx = o.idx;\n* // returns [ 2, 1, 0 ]\n*/\nfunction loopOrder( sh, sx, sy ) {\n\tvar idx;\n\n\t// Initialize a loop interchange index array for generating a loop order permutation:\n\tidx = zeroTo( sh.length );\n\n\t// Sort the input array strides in increasing order (of magnitude):\n\tsx = copy( sx );\n\tsort2ins( sx, idx );\n\n\t// Permute the shape and output array strides based on the sorted input array strides:\n\tsh = take( sh, idx );\n\tsy = take( sy, idx );\n\n\treturn {\n\t\t'sh': sh,\n\t\t'sx': sx,\n\t\t'sy': sy,\n\t\t'idx': idx\n\t};\n}\n\n\n// EXPORTS //\n\nexport default loopOrder;\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// MAIN //\n\n/**\n* Simultaneously sorts two arrays based on the sort order of the first array using insertion sort.\n*\n* ## Notes\n*\n* - The first array is sorted in increasing order according to absolute value.\n* - The algorithm has space complexity `O(1)` and worst case time complexity `O(N^2)`.\n* - The algorithm is efficient for small arrays (typically `N <= 20``) and is particularly efficient for sorting arrays which are already substantially sorted.\n* - The algorithm is **stable**, meaning that the algorithm does **not** change the order of array elements which are equal or equivalent.\n* - The input arrays are sorted in-place (i.e., the input arrays are mutated).\n*\n* @private\n* @param {Array} x - first array\n* @param {Array} y - second array\n* @returns {void}\n*\n* @example\n* var x = [ -4, -2, 3, 1 ];\n* var y = [ 0, 1, 2, 3 ];\n*\n* sort2ins( x, y );\n*\n* console.log( x );\n* // => [ 1, -2, 3, -4 ]\n*\n* console.log( y );\n* // => [ 3, 1, 2, 0 ]\n*/\nfunction sort2ins( x, y ) {\n\tvar avx;\n\tvar aux;\n\tvar ix;\n\tvar iy;\n\tvar jx;\n\tvar jy;\n\tvar vx;\n\tvar vy;\n\tvar ux;\n\tvar i;\n\n\tix = 1;\n\tiy = 1;\n\n\t// Sort in increasing order...\n\tfor ( i = 1; i < x.length; i++ ) {\n\t\tvx = x[ ix ];\n\t\tavx = ( vx < 0 ) ? -vx : vx;\n\n\t\tvy = y[ iy ];\n\n\t\tjx = ix - 1;\n\t\tjy = iy - 1;\n\n\t\t// Shift all larger values to the left of the current element to the right...\n\t\twhile ( jx >= 0 ) {\n\t\t\tux = x[ jx ];\n\t\t\taux = ( ux < 0 ) ? -ux : ux;\n\t\t\tif ( aux <= avx ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tx[ jx+1 ] = ux;\n\t\t\ty[ jy+1 ] = y[ jy ];\n\t\t\tjx -= 1;\n\t\t\tjy -= 1;\n\t\t}\n\t\tx[ jx+1 ] = vx;\n\t\ty[ jy+1 ] = vy;\n\t\tix += 1;\n\t\tiy += 1;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default sort2ins;\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* Generate a linearly spaced numeric array whose elements increment by 1 starting from zero.\n*\n* @module @stdlib/array/base/zero-to\n*\n* @example\n* import zeroTo from '@stdlib/array/base/zero-to';\n*\n* var arr = zeroTo( 6 );\n* // returns [ 0, 1, 2, 3, 4, 5 ]\n*\n* @example\n* import zeroTo from '@stdlib/array/base/zero-to';\n*\n* var out = [ 0, 0, 0, 0, 0, 0 ];\n* var arr = zeroTo.assign( out, 1, 0 );\n* // returns [ 0, 1, 2, 3, 4, 5 ]\n*\n* var bool = ( out === arr );\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) 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 isAccessorArray from './../../../base/assert/is-accessor-array';\nimport getter from './../../../base/getter';\nimport setter from './../../../base/setter';\nimport accessorGetter from './../../../base/accessor-getter';\nimport accessorSetter from './../../../base/accessor-setter';\nimport dtype from './../../../dtype';\n\n\n// MAIN //\n\n/**\n* Converts an array-like to an object likely to have the same \"shape\".\n*\n* ## Notes\n*\n* - This function is intended as a potential performance optimization. In V8, for example, even if two objects share common properties, if those properties were added in different orders or if one object has additional properties not shared by the other object, then those objects will have different \"hidden\" classes. If a function is provided many objects having different \"shapes\", some JavaScript VMs (e.g., V8) will consider the function \"megamorphic\" and fail to perform various runtime optimizations. Accordingly, the intent of this function is to standardize the \"shape\" of the object holding array meta data to ensure that internal functions operating on arrays are provided consistent argument \"shapes\".\n*\n* - The returned object has the following properties:\n*\n* - **data**: reference to the input array.\n* - **dtype**: array data type.\n* - **accessorProtocol**: `boolean` indicating whether the input array uses accessors for getting and setting elements.\n* - **accessors**: a two-element array whose first element is an accessor for retrieving an array element and whose second element is an accessor for setting an array element.\n*\n* @param {Collection} x - array-like object\n* @returns {Object} object containing array meta data\n*\n* @example\n* var obj = arraylike2object( [ 1, 2, 3, 4 ] );\n* // returns {...}\n*/\nfunction arraylike2object( x ) {\n\tvar dt = dtype( x );\n\tif ( isAccessorArray( x ) ) {\n\t\treturn {\n\t\t\t'data': x,\n\t\t\t'dtype': dt,\n\t\t\t'accessorProtocol': true,\n\t\t\t'accessors': [\n\t\t\t\taccessorGetter( dt ),\n\t\t\t\taccessorSetter( dt )\n\t\t\t]\n\t\t};\n\t}\n\treturn {\n\t\t'data': x,\n\t\t'dtype': dt,\n\t\t'accessorProtocol': false,\n\t\t'accessors': [\n\t\t\tgetter( dt ),\n\t\t\tsetter( dt )\n\t\t]\n\t};\n}\n\n\n// EXPORTS //\n\nexport default arraylike2object;\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// MAIN //\n\nvar defaults = {\n\t// Define a default block size (in bytes):\n\t'BLOCK_SIZE_IN_BYTES': 64|0, // 64b is a common cache line size. How applicable the common cache line size is here is debatable, given that, depending on the associated stride(s), the innermost loop may not iterate over adjacent elements. The primary goal is to have a block size in which all data within a block can always fit in (L1) cache, regardless of cache size (i.e., cache-oblivious). For reference, a common L1 cache size is 32kB per core. For best performance, block sizes should be tuned based on system hardware; however, such tuning is not readily available to us here. Without obvious better alternatives, 64b has some theoretical (and practical) underpinning, and it should be good enough for most inputs, especially for ndarrays with near contiguity.\n\n\t// Define a default block size (in elements):\n\t'BLOCK_SIZE_IN_ELEMENTS': 8|0 // 64 bytes / 8 bytes per element (i.e., default element size is same as a double)\n};\n\n\n// EXPORTS //\n\nexport default defaults;\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 bytesPerElement from './../../../base/bytes-per-element';\nimport defaults from './defaults.js';\n\n\n// MAIN //\n\n/**\n* Returns a loop block size for multi-dimensional array tiled loops.\n*\n* @param {string} dtypeX - input array data type\n* @param {string} dtypeY - output array data type\n* @returns {integer} block size (in units of elements)\n*\n* @example\n* var bsize = unaryBlockSize( 'float64', 'float64' );\n* // returns \n*/\nfunction unaryBlockSize( dtypeX, dtypeY ) {\n\tvar nbx;\n\tvar nby;\n\n\tnbx = bytesPerElement( dtypeX );\n\tnby = bytesPerElement( dtypeY );\n\tif ( nbx === null || nby === null ) { // e.g., \"generic\" arrays\n\t\treturn defaults.BLOCK_SIZE_IN_ELEMENTS;\n\t}\n\tif ( nbx > nby ) {\n\t\treturn ( defaults.BLOCK_SIZE_IN_BYTES/nbx )|0; // asm type annotation\n\t}\n\treturn ( defaults.BLOCK_SIZE_IN_BYTES/nby )|0; // asm type annotation\n}\n\n\n// EXPORTS //\n\nexport default unaryBlockSize;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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* Converts a linear index in an array view to a linear index in an underlying data buffer.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {IntegerArray} strides - stride array\n* @param {NonNegativeInteger} offset - location of the first indexed value **based** on the stride array\n* @param {string} order - specifies whether an array is row-major (C-style) or column-major (Fortran-style)\n* @param {integer} idx - linear index in an array view\n* @param {string} mode - specifies how to handle a linear index which exceeds array dimensions\n* @throws {RangeError} linear index must not exceed array dimensions\n* @returns {NonNegativeInteger} linear index in an underlying data buffer\n*\n* @example\n* var shape = [ 3, 3 ];\n* var strides = [ -3, 1 ];\n* var offset = 6;\n* var order = 'row-major';\n* var mode = 'throw';\n*\n* var ind = vind2bind( shape, strides, offset, order, 1, mode );\n* // returns 7\n*/\nfunction vind2bind( shape, strides, offset, order, idx, mode ) {\n\tvar ndims;\n\tvar len;\n\tvar ind;\n\tvar s;\n\tvar i;\n\n\tndims = shape.length;\n\tlen = 1;\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\tlen *= shape[ i ];\n\t}\n\tif ( mode === 'clamp' ) {\n\t\tif ( idx < 0 ) {\n\t\t\tidx = 0;\n\t\t} else if ( idx >= len ) {\n\t\t\tidx = len - 1;\n\t\t}\n\t} else if ( mode === 'wrap' ) {\n\t\tif ( idx < 0 ) {\n\t\t\tidx += len; // slight optimization to avoid modulo arithmetic when |idx| <= len\n\t\t\tif ( idx < 0 ) {\n\t\t\t\tidx %= len;\n\t\t\t\tif ( idx !== 0 ) {\n\t\t\t\t\tidx += len;\n\t\t\t\t}\n\t\t\t}\n\t\t} else if ( idx >= len ) {\n\t\t\tidx -= len; // slight optimization to avoid modulo arithmetic when len < idx <= 2*len\n\t\t\tif ( idx >= len ) {\n\t\t\t\tidx %= len;\n\t\t\t}\n\t\t}\n\t} else {\n\t\tif ( mode === 'normalize' && idx < 0 ) {\n\t\t\tidx += len;\n\t\t}\n\t\tif ( idx < 0 || idx >= len ) {\n\t\t\tthrow new RangeError( format( 'invalid argument. Linear index must not exceed array dimensions. Number of array elements: `%u`. Value: `%d`.', len, idx ) );\n\t\t}\n\t}\n\t// The approach which follows is to resolve a view index to its subscripts and then plug the subscripts into the standard formula for computing the linear index in the underlying data buffer...\n\tind = offset;\n\tif ( order === 'column-major' ) {\n\t\tfor ( i = 0; i < ndims; i++ ) {\n\t\t\ts = idx % shape[ i ];\n\t\t\tidx -= s;\n\t\t\tidx /= shape[ i ];\n\t\t\tind += s * strides[ i ];\n\t\t}\n\t\treturn ind;\n\t}\n\t// Case: row-major\n\tfor ( i = ndims-1; i >= 0; i-- ) {\n\t\ts = idx % shape[ i ];\n\t\tidx -= s;\n\t\tidx /= shape[ i ];\n\t\tind += s * strides[ i ];\n\t}\n\treturn ind;\n}\n\n\n// EXPORTS //\n\nexport default vind2bind;\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 numel from './../../../base/numel';\nimport vind2bind from './../../../base/vind2bind';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in an n-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array/complex64';\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unarynd( x, y, scale );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction unarynd( x, y, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar ordx;\n\tvar ordy;\n\tvar len;\n\tvar get;\n\tvar set;\n\tvar sh;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache references to the input and output ndarray data buffers:\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache references to the respective stride arrays:\n\tsx = x.strides;\n\tsy = y.strides;\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays:\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache the respective array orders:\n\tordx = x.order;\n\tordy = y.order;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\tiy = vind2bind( sh, sy, oy, ordy, i, MODE );\n\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unarynd;\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 numel from './../../../base/numel';\nimport vind2bind from './../../../base/vind2bind';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in an n-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Float64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unarynd( x, y, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0 ]\n*/\nfunction unarynd( x, y, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar ordx;\n\tvar ordy;\n\tvar len;\n\tvar sh;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache references to the input and output ndarray data buffers:\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache references to the respective stride arrays:\n\tsx = x.strides;\n\tsy = y.strides;\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays:\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache the respective array orders:\n\tordx = x.order;\n\tordy = y.order;\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\tiy = vind2bind( sh, sy, oy, ordy, i, MODE );\n\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unarynd;\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 iterationOrder from './../../../base/iteration-order';\nimport minmaxViewBufferIndex from './../../../base/minmax-view-buffer-index';\nimport ndarray2object from './../../../base/ndarraylike2object';\nimport blockedaccessorunary2d from './2d_blocked_accessors.js';\nimport blockedaccessorunary3d from './3d_blocked_accessors.js';\nimport blockedaccessorunary4d from './4d_blocked_accessors.js';\nimport blockedaccessorunary5d from './5d_blocked_accessors.js';\nimport blockedaccessorunary6d from './6d_blocked_accessors.js';\nimport blockedaccessorunary7d from './7d_blocked_accessors.js';\nimport blockedaccessorunary8d from './8d_blocked_accessors.js';\nimport blockedaccessorunary9d from './9d_blocked_accessors.js';\nimport blockedaccessorunary10d from './10d_blocked_accessors.js';\nimport blockedunary2d from './2d_blocked.js';\nimport blockedunary3d from './3d_blocked.js';\nimport blockedunary4d from './4d_blocked.js';\nimport blockedunary5d from './5d_blocked.js';\nimport blockedunary6d from './6d_blocked.js';\nimport blockedunary7d from './7d_blocked.js';\nimport blockedunary8d from './8d_blocked.js';\nimport blockedunary9d from './9d_blocked.js';\nimport blockedunary10d from './10d_blocked.js';\nimport accessorunary0d from './0d_accessors.js';\nimport accessorunary1d from './1d_accessors.js';\nimport accessorunary2d from './2d_accessors.js';\nimport accessorunary3d from './3d_accessors.js';\nimport accessorunary4d from './4d_accessors.js';\nimport accessorunary5d from './5d_accessors.js';\nimport accessorunary6d from './6d_accessors.js';\nimport accessorunary7d from './7d_accessors.js';\nimport accessorunary8d from './8d_accessors.js';\nimport accessorunary9d from './9d_accessors.js';\nimport accessorunary10d from './10d_accessors.js';\nimport accessorunarynd from './nd_accessors.js';\nimport unary0d from './0d.js';\nimport unary1d from './1d.js';\nimport unary2d from './2d.js';\nimport unary3d from './3d.js';\nimport unary4d from './4d.js';\nimport unary5d from './5d.js';\nimport unary6d from './6d.js';\nimport unary7d from './7d.js';\nimport unary8d from './8d.js';\nimport unary9d from './9d.js';\nimport unary10d from './10d.js';\nimport unarynd from './nd.js';\n\n\n// VARIABLES //\n\nvar UNARY = [\n\tunary0d,\n\tunary1d,\n\tunary2d,\n\tunary3d,\n\tunary4d,\n\tunary5d,\n\tunary6d,\n\tunary7d,\n\tunary8d,\n\tunary9d,\n\tunary10d\n];\nvar ACCESSOR_UNARY = [\n\taccessorunary0d,\n\taccessorunary1d,\n\taccessorunary2d,\n\taccessorunary3d,\n\taccessorunary4d,\n\taccessorunary5d,\n\taccessorunary6d,\n\taccessorunary7d,\n\taccessorunary8d,\n\taccessorunary9d,\n\taccessorunary10d\n];\nvar BLOCKED_UNARY = [\n\tblockedunary2d, // 0\n\tblockedunary3d,\n\tblockedunary4d,\n\tblockedunary5d,\n\tblockedunary6d,\n\tblockedunary7d,\n\tblockedunary8d,\n\tblockedunary9d,\n\tblockedunary10d // 8\n];\nvar BLOCKED_ACCESSOR_UNARY = [\n\tblockedaccessorunary2d, // 0\n\tblockedaccessorunary3d,\n\tblockedaccessorunary4d,\n\tblockedaccessorunary5d,\n\tblockedaccessorunary6d,\n\tblockedaccessorunary7d,\n\tblockedaccessorunary8d,\n\tblockedaccessorunary9d,\n\tblockedaccessorunary10d // 8\n];\nvar MAX_DIMS = UNARY.length - 1;\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in an input ndarray and assigns results to elements in an output ndarray.\n*\n* ## Notes\n*\n* - Each provided ndarray should be an `object` with the following properties:\n*\n* - **dtype**: data type.\n* - **data**: data buffer.\n* - **shape**: dimensions.\n* - **strides**: stride lengths.\n* - **offset**: index offset.\n* - **order**: specifies whether an ndarray is row-major (C-style) or column major (Fortran-style).\n*\n* @param {ArrayLikeObject} arrays - array-like object containing one input array and one output array\n* @param {Callback} fcn - unary callback\n* @throws {Error} arrays must have the same number of dimensions\n* @throws {Error} arrays must have the same shape\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n* var sy = [ 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary( [ x, y ], scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction unary( arrays, fcn ) {\n\tvar ndims;\n\tvar xmmv;\n\tvar ymmv;\n\tvar shx;\n\tvar shy;\n\tvar iox;\n\tvar ioy;\n\tvar len;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ns;\n\tvar x;\n\tvar y;\n\tvar d;\n\tvar i;\n\n\t// Unpack the ndarrays and standardize ndarray meta data:\n\tx = ndarray2object( arrays[ 0 ] );\n\ty = ndarray2object( arrays[ 1 ] );\n\n\t// Verify that the input and output arrays have the same number of dimensions...\n\tshx = x.shape;\n\tshy = y.shape;\n\tndims = shx.length;\n\tif ( ndims !== shy.length ) {\n\t\tthrow new Error( 'invalid arguments. Arrays must have the same number of dimensions (i.e., same rank). ndims(x) == '+ndims+'. ndims(y) == '+shy.length+'.' );\n\t}\n\t// Determine whether we can avoid iteration altogether...\n\tif ( ndims === 0 ) {\n\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\treturn ACCESSOR_UNARY[ ndims ]( x, y, fcn );\n\t\t}\n\t\treturn UNARY[ ndims ]( x, y, fcn );\n\t}\n\t// Verify that the input and output arrays have the same dimensions...\n\tlen = 1; // number of elements\n\tns = 0; // number of singleton dimensions\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\td = shx[ i ];\n\t\tif ( d !== shy[ i ] ) {\n\t\t\tthrow new Error( 'invalid arguments. Arrays must have the same shape.' );\n\t\t}\n\t\t// Note that, if one of the dimensions is `0`, the length will be `0`...\n\t\tlen *= d;\n\n\t\t// Check whether the current dimension is a singleton dimension...\n\t\tif ( d === 1 ) {\n\t\t\tns += 1;\n\t\t}\n\t}\n\t// Check whether we were provided empty ndarrays...\n\tif ( len === 0 ) {\n\t\treturn;\n\t}\n\t// Determine whether the ndarrays are one-dimensional and thus readily translate to one-dimensional strided arrays...\n\tif ( ndims === 1 ) {\n\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\treturn ACCESSOR_UNARY[ ndims ]( x, y, fcn );\n\t\t}\n\t\treturn UNARY[ ndims ]( x, y, fcn );\n\t}\n\tsx = x.strides;\n\tsy = y.strides;\n\n\t// Determine whether the ndarray has only **one** non-singleton dimension (e.g., ndims=4, shape=[10,1,1,1]) so that we can treat the ndarrays as being equivalent to one-dimensional strided arrays...\n\tif ( ns === ndims-1 ) {\n\t\t// Get the index of the non-singleton dimension...\n\t\tfor ( i = 0; i < ndims; i++ ) {\n\t\t\tif ( shx[ i ] !== 1 ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tx.shape = [ shx[i] ];\n\t\ty.shape = x.shape;\n\t\tx.strides = [ sx[i] ];\n\t\ty.strides = [ sy[i] ];\n\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\treturn ACCESSOR_UNARY[ 1 ]( x, y, fcn );\n\t\t}\n\t\treturn UNARY[ 1 ]( x, y, fcn );\n\t}\n\tiox = iterationOrder( sx ); // +/-1\n\tioy = iterationOrder( sy ); // +/-1\n\n\t// Determine whether we can avoid blocked iteration...\n\tif ( iox !== 0 && ioy !== 0 && iox === ioy ) {\n\t\t// Determine the minimum and maximum linear indices which are accessible by the array views:\n\t\txmmv = minmaxViewBufferIndex( shx, sx, x.offset );\n\t\tymmv = minmaxViewBufferIndex( shy, sy, y.offset );\n\n\t\t// Determine whether we can ignore shape (and strides) and treat the ndarrays as linear one-dimensional strided arrays...\n\t\tif ( len === ( xmmv[1]-xmmv[0]+1 ) && len === ( ymmv[1]-ymmv[0]+1 ) ) {\n\t\t\t// Note: the above is equivalent to @stdlib/ndarray/base/assert/is-contiguous, but in-lined so we can retain computed values...\n\t\t\tif ( iox === 1 ) {\n\t\t\t\tox = xmmv[ 0 ];\n\t\t\t} else {\n\t\t\t\tox = xmmv[ 1 ];\n\t\t\t}\n\t\t\tif ( ioy === 1 ) {\n\t\t\t\toy = ymmv[ 0 ];\n\t\t\t} else {\n\t\t\t\toy = ymmv[ 1 ];\n\t\t\t}\n\t\t\tx.shape = [ len ];\n\t\t\ty.shape = x.shape;\n\t\t\tx.strides = [ iox ];\n\t\t\ty.strides = [ ioy ];\n\t\t\tx.offset = ox;\n\t\t\ty.offset = oy;\n\t\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\t\treturn ACCESSOR_UNARY[ 1 ]( x, y, fcn );\n\t\t\t}\n\t\t\treturn UNARY[ 1 ]( x, y, fcn );\n\t\t}\n\t\t// At least one ndarray is non-contiguous, so we cannot directly use one-dimensional array functionality...\n\n\t\t// Determine whether we can use simple nested loops...\n\t\tif ( ndims <= MAX_DIMS ) {\n\t\t\t// So long as iteration for each respective array always moves in the same direction (i.e., no mixed sign strides), we can leverage cache-optimal (i.e., normal) nested loops without resorting to blocked iteration...\n\t\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\t\treturn ACCESSOR_UNARY[ ndims ]( x, y, fcn );\n\t\t\t}\n\t\t\treturn UNARY[ ndims ]( x, y, fcn );\n\t\t}\n\t\t// Fall-through to blocked iteration...\n\t}\n\t// At this point, we're either dealing with non-contiguous n-dimensional arrays, high dimensional n-dimensional arrays, and/or arrays having differing memory layouts, so our only hope is that we can still perform blocked iteration...\n\n\t// Determine whether we can perform blocked iteration...\n\tif ( ndims <= MAX_DIMS ) {\n\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\treturn BLOCKED_ACCESSOR_UNARY[ ndims-2 ]( x, y, fcn );\n\t\t}\n\t\treturn BLOCKED_UNARY[ ndims-2 ]( x, y, fcn );\n\t}\n\t// Fall-through to linear view iteration without regard for how data is stored in memory (i.e., take the slow path)...\n\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\treturn accessorunarynd( x, y, fcn );\n\t}\n\tunarynd( x, y, fcn );\n}\n\n\n// EXPORTS //\n\nexport default unary;\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* Applies a unary callback to elements in a zero-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0 ] );\n* var ybuf = new Float64Array( 1 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 0 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary0d( x, y, scale );\n*\n* console.log( y.data );\n* // => [ 20.0 ]\n*/\nfunction unary0d( x, y, fcn ) {\n\ty.data[ y.offset ] = fcn( x.data[ x.offset ] );\n}\n\n\n// EXPORTS //\n\nexport default unary0d;\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* Applies a unary callback to elements in a one-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Float64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 4 ];\n*\n* // Define the array strides:\n* var sx = [ 2 ];\n* var sy = [ 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary1d( x, y, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 40.0, 60.0, 80.0 ]\n*/\nfunction unary1d( x, y, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dy0;\n\tvar S0;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments...\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\tdy0 = y.strides[ 0 ];\n\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t\tix += dx0;\n\t\tiy += dy0;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary1d;\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* Applies a unary callback to elements in a two-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Float64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary2d( x, y, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0 ]\n*/\nfunction unary2d( x, y, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dy0;\n\tvar dy1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 1 ];\n\t\tdy1 = sy[ 0 ] - ( S0*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t\t\tix += dx0;\n\t\t\tiy += dy0;\n\t\t}\n\t\tix += dx1;\n\t\tiy += dy1;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary2d;\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* Applies a unary callback to elements in a three-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n* var sy = [ 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary3d( x, y, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction unary3d( x, y, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 2 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[2] );\n\t\tdy2 = sy[ 0 ] - ( S1*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t\t\t\tix += dx0;\n\t\t\t\tiy += dy0;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t\tiy += dy1;\n\t\t}\n\t\tix += dx2;\n\t\tiy += dy2;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary3d;\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* Applies a unary callback to elements in a four-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 4, 1 ];\n* var sy = [ 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary4d( x, y, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction unary4d( x, y, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 3 ];\n\t\tdy1 = sy[ 2 ] - ( S0*sy[3] );\n\t\tdy2 = sy[ 1 ] - ( S1*sy[2] );\n\t\tdy3 = sy[ 0 ] - ( S2*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t\t\t\t\tix += dx0;\n\t\t\t\t\tiy += dy0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t\tiy += dy1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t\tiy += dy2;\n\t\t}\n\t\tix += dx3;\n\t\tiy += dy3;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary4d;\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* Applies a unary callback to elements in a five-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary5d( x, y, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction unary5d( x, y, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 4 ];\n\t\tdy1 = sy[ 3 ] - ( S0*sy[4] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[3] );\n\t\tdy3 = sy[ 1 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 0 ] - ( S3*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t\tiy += dy1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t\tiy += dy2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t\tiy += dy3;\n\t\t}\n\t\tix += dx4;\n\t\tiy += dy4;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary5d;\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-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a six-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary6d( x, y, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction unary6d( x, y, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 5 ];\n\t\tdy1 = sy[ 4 ] - ( S0*sy[5] );\n\t\tdy2 = sy[ 3 ] - ( S1*sy[4] );\n\t\tdy3 = sy[ 2 ] - ( S2*sy[3] );\n\t\tdy4 = sy[ 1 ] - ( S3*sy[2] );\n\t\tdy5 = sy[ 0 ] - ( S4*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t\tiy += dy2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t\tiy += dy3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t\tiy += dy4;\n\t\t}\n\t\tix += dx5;\n\t\tiy += dy5;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary6d;\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-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a seven-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary7d( x, y, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction unary7d( x, y, fcn ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 6 ];\n\t\tdy1 = sy[ 5 ] - ( S0*sy[6] );\n\t\tdy2 = sy[ 4 ] - ( S1*sy[5] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[4] );\n\t\tdy4 = sy[ 2 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 1 ] - ( S4*sy[2] );\n\t\tdy6 = sy[ 0 ] - ( S5*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t\tiy += dy3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t\tiy += dy4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t\tiy += dy5;\n\t\t}\n\t\tix += dx6;\n\t\tiy += dy6;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary7d;\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-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in an eight-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary8d( x, y, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction unary8d( x, y, fcn ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 7 ];\n\t\tdy1 = sy[ 6 ] - ( S0*sy[7] );\n\t\tdy2 = sy[ 5 ] - ( S1*sy[6] );\n\t\tdy3 = sy[ 4 ] - ( S2*sy[5] );\n\t\tdy4 = sy[ 3 ] - ( S3*sy[4] );\n\t\tdy5 = sy[ 2 ] - ( S4*sy[3] );\n\t\tdy6 = sy[ 1 ] - ( S5*sy[2] );\n\t\tdy7 = sy[ 0 ] - ( S6*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t\tiy += dy4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t\tiy += dy5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t\tiy += dy6;\n\t\t}\n\t\tix += dx7;\n\t\tiy += dy7;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary8d;\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-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a nine-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary9d( x, y, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction unary9d( x, y, fcn ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 8 ];\n\t\tdy1 = sy[ 7 ] - ( S0*sy[8] );\n\t\tdy2 = sy[ 6 ] - ( S1*sy[7] );\n\t\tdy3 = sy[ 5 ] - ( S2*sy[6] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[5] );\n\t\tdy5 = sy[ 3 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 2 ] - ( S5*sy[3] );\n\t\tdy7 = sy[ 1 ] - ( S6*sy[2] );\n\t\tdy8 = sy[ 0 ] - ( S7*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdy8 = sy[ 8 ] - ( S7*sy[7] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t\tiy += dy5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t\tiy += dy6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t\tiy += dy7;\n\t\t}\n\t\tix += dx8;\n\t\tiy += dy8;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary9d;\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-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a ten-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary10d( x, y, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction unary10d( x, y, fcn ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dy9;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 9 ];\n\t\tdy1 = sy[ 8 ] - ( S0*sy[9] );\n\t\tdy2 = sy[ 7 ] - ( S1*sy[8] );\n\t\tdy3 = sy[ 6 ] - ( S2*sy[7] );\n\t\tdy4 = sy[ 5 ] - ( S3*sy[6] );\n\t\tdy5 = sy[ 4 ] - ( S4*sy[5] );\n\t\tdy6 = sy[ 3 ] - ( S5*sy[4] );\n\t\tdy7 = sy[ 2 ] - ( S6*sy[3] );\n\t\tdy8 = sy[ 1 ] - ( S7*sy[2] );\n\t\tdy9 = sy[ 0 ] - ( S8*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdy8 = sy[ 8 ] - ( S7*sy[7] );\n\t\tdy9 = sy[ 9 ] - ( S8*sy[8] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t\tiy += dy6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t\tiy += dy7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t\tiy += dy8;\n\t\t}\n\t\tix += dx9;\n\t\tiy += dy9;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary10d;\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* Applies a unary callback to elements in a zero-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array/complex64';\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0 ] );\n* var ybuf = new Complex64Array( 2 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 0 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unary0d( x, y, scale );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 30.0\n*\n* var im = imagf( v );\n* // returns 40.0\n*/\nfunction unary0d( x, y, fcn ) {\n\ty.accessors[ 1 ]( y.data, y.offset, fcn( x.accessors[ 0 ]( x.data, x.offset ) ) ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default unary0d;\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* Applies a unary callback to elements in a one-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array/complex64';\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 4 ];\n*\n* // Define the array strides:\n* var sx = [ 1 ];\n* var sy = [ 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unary1d( x, y, scale );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction unary1d( x, y, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dy0;\n\tvar S0;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments...\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\tdy0 = y.strides[ 0 ];\n\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) );\n\t\tix += dx0;\n\t\tiy += dy0;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary1d;\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* Applies a unary callback to elements in a two-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array/complex64';\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unary2d( x, y, scale );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction unary2d( x, y, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dy0;\n\tvar dy1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 1 ];\n\t\tdy1 = sy[ 0 ] - ( S0*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) );\n\t\t\tix += dx0;\n\t\t\tiy += dy0;\n\t\t}\n\t\tix += dx1;\n\t\tiy += dy1;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary2d;\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* Applies a unary callback to elements in a three-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array/complex64';\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2, 1 ];\n* var sy = [ 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unary3d( x, y, scale );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction unary3d( x, y, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 2 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[2] );\n\t\tdy2 = sy[ 0 ] - ( S1*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) );\n\t\t\t\tix += dx0;\n\t\t\t\tiy += dy0;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t\tiy += dy1;\n\t\t}\n\t\tix += dx2;\n\t\tiy += dy2;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary3d;\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* Applies a unary callback to elements in a four-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array/complex64';\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unary4d( x, y, scale );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction unary4d( x, y, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 3 ];\n\t\tdy1 = sy[ 2 ] - ( S0*sy[3] );\n\t\tdy2 = sy[ 1 ] - ( S1*sy[2] );\n\t\tdy3 = sy[ 0 ] - ( S2*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) );\n\t\t\t\t\tix += dx0;\n\t\t\t\t\tiy += dy0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t\tiy += dy1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t\tiy += dy2;\n\t\t}\n\t\tix += dx3;\n\t\tiy += dy3;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary4d;\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* Applies a unary callback to elements in a five-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array/complex64';\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unary5d( x, y, scale );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction unary5d( x, y, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 4 ];\n\t\tdy1 = sy[ 3 ] - ( S0*sy[4] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[3] );\n\t\tdy3 = sy[ 1 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 0 ] - ( S3*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) );\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t\tiy += dy1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t\tiy += dy2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t\tiy += dy3;\n\t\t}\n\t\tix += dx4;\n\t\tiy += dy4;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary5d;\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-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a six-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array/complex64';\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unary6d( x, y, scale );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction unary6d( x, y, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 5 ];\n\t\tdy1 = sy[ 4 ] - ( S0*sy[5] );\n\t\tdy2 = sy[ 3 ] - ( S1*sy[4] );\n\t\tdy3 = sy[ 2 ] - ( S2*sy[3] );\n\t\tdy4 = sy[ 1 ] - ( S3*sy[2] );\n\t\tdy5 = sy[ 0 ] - ( S4*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) );\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t\tiy += dy2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t\tiy += dy3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t\tiy += dy4;\n\t\t}\n\t\tix += dx5;\n\t\tiy += dy5;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary6d;\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-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a seven-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array/complex64';\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unary7d( x, y, scale );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction unary7d( x, y, fcn ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 6 ];\n\t\tdy1 = sy[ 5 ] - ( S0*sy[6] );\n\t\tdy2 = sy[ 4 ] - ( S1*sy[5] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[4] );\n\t\tdy4 = sy[ 2 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 1 ] - ( S4*sy[2] );\n\t\tdy6 = sy[ 0 ] - ( S5*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) );\n\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t\tiy += dy3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t\tiy += dy4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t\tiy += dy5;\n\t\t}\n\t\tix += dx6;\n\t\tiy += dy6;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary7d;\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-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in an eight-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array/complex64';\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unary8d( x, y, scale );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction unary8d( x, y, fcn ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 7 ];\n\t\tdy1 = sy[ 6 ] - ( S0*sy[7] );\n\t\tdy2 = sy[ 5 ] - ( S1*sy[6] );\n\t\tdy3 = sy[ 4 ] - ( S2*sy[5] );\n\t\tdy4 = sy[ 3 ] - ( S3*sy[4] );\n\t\tdy5 = sy[ 2 ] - ( S4*sy[3] );\n\t\tdy6 = sy[ 1 ] - ( S5*sy[2] );\n\t\tdy7 = sy[ 0 ] - ( S6*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) );\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t\tiy += dy4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t\tiy += dy5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t\tiy += dy6;\n\t\t}\n\t\tix += dx7;\n\t\tiy += dy7;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary8d;\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-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a nine-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array/complex64';\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unary9d( x, y, scale );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction unary9d( x, y, fcn ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 8 ];\n\t\tdy1 = sy[ 7 ] - ( S0*sy[8] );\n\t\tdy2 = sy[ 6 ] - ( S1*sy[7] );\n\t\tdy3 = sy[ 5 ] - ( S2*sy[6] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[5] );\n\t\tdy5 = sy[ 3 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 2 ] - ( S5*sy[3] );\n\t\tdy7 = sy[ 1 ] - ( S6*sy[2] );\n\t\tdy8 = sy[ 0 ] - ( S7*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdy8 = sy[ 8 ] - ( S7*sy[7] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) );\n\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t\tiy += dy5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t\tiy += dy6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t\tiy += dy7;\n\t\t}\n\t\tix += dx8;\n\t\tiy += dy8;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary9d;\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-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a ten-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array/complex64';\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unary10d( x, y, scale );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction unary10d( x, y, fcn ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dy9;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 9 ];\n\t\tdy1 = sy[ 8 ] - ( S0*sy[9] );\n\t\tdy2 = sy[ 7 ] - ( S1*sy[8] );\n\t\tdy3 = sy[ 6 ] - ( S2*sy[7] );\n\t\tdy4 = sy[ 5 ] - ( S3*sy[6] );\n\t\tdy5 = sy[ 4 ] - ( S4*sy[5] );\n\t\tdy6 = sy[ 3 ] - ( S5*sy[4] );\n\t\tdy7 = sy[ 2 ] - ( S6*sy[3] );\n\t\tdy8 = sy[ 1 ] - ( S7*sy[2] );\n\t\tdy9 = sy[ 0 ] - ( S8*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdy8 = sy[ 8 ] - ( S7*sy[7] );\n\t\tdy9 = sy[ 9 ] - ( S8*sy[8] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) ); // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t\tiy += dy6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t\tiy += dy7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t\tiy += dy8;\n\t\t}\n\t\tix += dx9;\n\t\tiy += dy9;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary10d;\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 loopOrder from './../../../base/unary-loop-interchange-order';\nimport blockSize from './../../../base/unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a two-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - unary callback\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Float64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* blockedunary2d( x, y, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0 ]\n*/\nfunction blockedunary2d( x, y, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dy0;\n\tvar dy1;\n\tvar ox1;\n\tvar oy1;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\toy1 = oy + ( j1*sy[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t// Compute loop offset increments...\n\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t\t\t\t\tix += dx0;\n\t\t\t\t\tiy += dy0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t\tiy += dy1;\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedunary2d;\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-depth */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from './../../../base/unary-loop-interchange-order';\nimport blockSize from './../../../base/unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a three-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - unary callback\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n* var sy = [ 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* blockedunary3d( x, y, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction blockedunary3d( x, y, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar ox1;\n\tvar ox2;\n\tvar oy1;\n\tvar oy2;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\toy2 = oy + ( j2*sy[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t// Compute loop offset increments...\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t\tiy += dy2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedunary3d;\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-depth */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from './../../../base/unary-loop-interchange-order';\nimport blockSize from './../../../base/unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a four-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - unary callback\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 4, 1 ];\n* var sy = [ 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* blockedunary4d( x, y, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction blockedunary4d( x, y, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\toy3 = oy + ( j3*sy[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedunary4d;\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-depth */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from './../../../base/unary-loop-interchange-order';\nimport blockSize from './../../../base/unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a five-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - unary callback\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* blockedunary5d( x, y, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction blockedunary5d( x, y, fcn ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\toy4 = oy + ( j4*sy[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedunary5d;\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-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from './../../../base/unary-loop-interchange-order';\nimport blockSize from './../../../base/unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a six-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - unary callback\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* blockedunary6d( x, y, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction blockedunary6d( x, y, fcn ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\toy5 = oy + ( j5*sy[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedunary6d;\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-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from './../../../base/unary-loop-interchange-order';\nimport blockSize from './../../../base/unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a seven-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - unary callback\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* blockedunary7d( x, y, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction blockedunary7d( x, y, fcn ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\toy6 = oy + ( j6*sy[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedunary7d;\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-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from './../../../base/unary-loop-interchange-order';\nimport blockSize from './../../../base/unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in an eight-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - unary callback\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* blockedunary8d( x, y, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction blockedunary8d( x, y, fcn ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\toy7 = oy + ( j7*sy[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedunary8d;\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-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from './../../../base/unary-loop-interchange-order';\nimport blockSize from './../../../base/unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a nine-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - unary callback\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* blockedunary9d( x, y, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction blockedunary9d( x, y, fcn ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oy8;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\toy8 = oy + ( j8*sy[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\tdy8 = sy[8] - ( s7*sy[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\toy7 = oy8 + ( j7*sy[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedunary9d;\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-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from './../../../base/unary-loop-interchange-order';\nimport blockSize from './../../../base/unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a ten-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - unary callback\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* blockedunary10d( x, y, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction blockedunary10d( x, y, fcn ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dy9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oy8;\n\tvar oy9;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\ts9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\ts9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\toy9 = oy + ( j9*sy[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( s8*sx[8] );\n\t\t\tdy9 = sy[9] - ( s8*sy[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\toy8 = oy9 + ( j8*sy[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\t\tdy8 = sy[8] - ( s7*sy[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\toy7 = oy8 + ( j7*sy[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy9;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedunary10d;\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 loopOrder from './../../../base/unary-loop-interchange-order';\nimport blockSize from './../../../base/unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a two-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - unary callback\n*\n* @example\n* import Complex64Array from '@stdlib/array/complex64';\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* blockedunary2d( x, y, scale );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction blockedunary2d( x, y, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dy0;\n\tvar dy1;\n\tvar ox1;\n\tvar oy1;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\toy1 = oy + ( j1*sy[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t// Compute loop offset increments...\n\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) );\n\t\t\t\t\tix += dx0;\n\t\t\t\t\tiy += dy0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t\tiy += dy1;\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedunary2d;\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-depth */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from './../../../base/unary-loop-interchange-order';\nimport blockSize from './../../../base/unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a three-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - unary callback\n*\n* @example\n* import Complex64Array from '@stdlib/array/complex64';\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2, 1 ];\n* var sy = [ 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* blockedunary3d( x, y, scale );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction blockedunary3d( x, y, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar ox1;\n\tvar ox2;\n\tvar oy1;\n\tvar oy2;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\toy2 = oy + ( j2*sy[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t// Compute loop offset increments...\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) );\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t\tiy += dy2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedunary3d;\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-depth */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from './../../../base/unary-loop-interchange-order';\nimport blockSize from './../../../base/unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a four-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - unary callback\n*\n* @example\n* import Complex64Array from '@stdlib/array/complex64';\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* blockedunary4d( x, y, scale );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction blockedunary4d( x, y, fcn ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\toy3 = oy + ( j3*sy[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) );\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedunary4d;\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-depth */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from './../../../base/unary-loop-interchange-order';\nimport blockSize from './../../../base/unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a five-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - unary callback\n*\n* @example\n* import Complex64Array from '@stdlib/array/complex64';\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* blockedunary5d( x, y, scale );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction blockedunary5d( x, y, fcn ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\toy4 = oy + ( j4*sy[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) ); // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedunary5d;\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-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from './../../../base/unary-loop-interchange-order';\nimport blockSize from './../../../base/unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a six-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - unary callback\n*\n* @example\n* import Complex64Array from '@stdlib/array/complex64';\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* blockedunary6d( x, y, scale );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction blockedunary6d( x, y, fcn ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\toy5 = oy + ( j5*sy[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedunary6d;\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-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from './../../../base/unary-loop-interchange-order';\nimport blockSize from './../../../base/unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a seven-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - unary callback\n*\n* @example\n* import Complex64Array from '@stdlib/array/complex64';\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* blockedunary7d( x, y, scale );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction blockedunary7d( x, y, fcn ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\toy6 = oy + ( j6*sy[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedunary7d;\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-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from './../../../base/unary-loop-interchange-order';\nimport blockSize from './../../../base/unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in an eight-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - unary callback\n*\n* @example\n* import Complex64Array from '@stdlib/array/complex64';\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* blockedunary8d( x, y, scale );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction blockedunary8d( x, y, fcn ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\toy7 = oy + ( j7*sy[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedunary8d;\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-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from './../../../base/unary-loop-interchange-order';\nimport blockSize from './../../../base/unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a nine-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - unary callback\n*\n* @example\n* import Complex64Array from '@stdlib/array/complex64';\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* blockedunary9d( x, y, scale );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction blockedunary9d( x, y, fcn ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oy8;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\toy8 = oy + ( j8*sy[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\tdy8 = sy[8] - ( s7*sy[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\toy7 = oy8 + ( j7*sy[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedunary9d;\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-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from './../../../base/unary-loop-interchange-order';\nimport blockSize from './../../../base/unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a ten-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - unary callback\n*\n* @example\n* import Complex64Array from '@stdlib/array/complex64';\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* blockedunary10d( x, y, scale );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction blockedunary10d( x, y, fcn ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dy9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oy8;\n\tvar oy9;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\ts9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\ts9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\toy9 = oy + ( j9*sy[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( s8*sx[8] );\n\t\t\tdy9 = sy[9] - ( s8*sy[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\toy8 = oy9 + ( j8*sy[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\t\tdy8 = sy[8] - ( s7*sy[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\toy7 = oy8 + ( j7*sy[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy9;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedunary10d;\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) 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 { isPrimitive as isNonNegativeInteger } from '@stdlib/assert/is-nonnegative-integer';\nimport isPositiveInteger from '@stdlib/assert/is-positive-integer';\nimport { isPrimitive as isInteger } from '@stdlib/assert/is-integer';\nimport isFunctionArray from '@stdlib/assert/is-function-array';\nimport isFunction from '@stdlib/assert/is-function';\nimport isCollection from '@stdlib/assert/is-collection';\nimport isndarrayLike from '@stdlib/assert/is-ndarray-like';\nimport format from '@stdlib/string/format';\nimport getDType from './../../dtype';\nimport resolveEnum from './../../base/dtype-resolve-enum';\nimport indexOfTypes from './index_of_types.js';\n\n\n// FUNCTIONS //\n\n/**\n* Returns a list of data type enumeration constants.\n*\n* @private\n* @param {Collection} types - list of types\n* @returns {IntegerArray} list of data type enumeration constants\n*/\nfunction types2enums( types ) {\n\tvar out;\n\tvar i;\n\n\tout = [];\n\tfor ( i = 0; i < types.length; i++ ) {\n\t\tout.push( resolveEnum( types[ i ] ) );\n\t}\n\treturn out;\n}\n\n\n// MAIN //\n\n/**\n* Returns an ndarray function interface which performs multiple dispatch.\n*\n* @param {(FunctionArray|Function)} fcns - list of ndarray functions\n* @param {Collection} types - one-dimensional list of ndarray argument data types\n* @param {(Collection|null)} data - ndarray function data (e.g., callbacks)\n* @param {PositiveInteger} nargs - total number of ndarray function interface arguments\n* @param {NonNegativeInteger} nin - number of input ndarrays\n* @param {NonNegativeInteger} nout - number of output ndarrays\n* @throws {TypeError} first argument must be either a function or an array of functions\n* @throws {TypeError} second argument must be an array-like object\n* @throws {TypeError} third argument must be an array-like object or `null`\n* @throws {Error} third and first arguments must have the same number of elements\n* @throws {TypeError} fourth argument must be a positive integer\n* @throws {TypeError} fifth argument must be a nonnegative integer\n* @throws {TypeError} sixth argument must be a nonnegative integer\n* @throws {Error} fourth argument must equal the specified number of input and output arrays\n* @throws {Error} number of types must match the number of functions times the total number of array arguments for each function\n* @throws {Error} interface must accept at least one input and/or output ndarray\n* @returns {Function} ndarray function interface\n*\n* @example\n* import unary from '@stdlib/ndarray/base/unary';\n* import abs from '@stdlib/math/base/special/abs';\n* import Float64Array from '@stdlib/array/float64';\n* import ndarray from '@stdlib/ndarray/ctor';\n*\n* var types = [\n* 'float64', 'float64'\n* ];\n*\n* var data = [\n* abs\n* ];\n*\n* var absolute = dispatch( unary, types, data, 2, 1, 1 );\n*\n* // ...\n*\n* var xbuf = new Float64Array( [ -1.0, -2.0, -3.0, -4.0, -5.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* var x = ndarray( 'float64', xbuf, [ 5 ], [ 1 ], 0, 'row-major' );\n* var y = ndarray( 'float64', ybuf, [ 5 ], [ 1 ], 0, 'row-major' );\n*\n* absolute( x, y );\n* // ybuf => [ 1.0, 2.0, 3.0, 4.0, 5.0 ]\n*/\nfunction dispatch( fcns, types, data, nargs, nin, nout ) {\n\tvar narrays;\n\tvar nfcns;\n\tvar fcn;\n\n\tif ( isFunction( fcns ) ) {\n\t\tfcn = fcns;\n\t} else if ( !isFunctionArray( fcns ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be either a function or an array of functions. Value: `%s`.', fcns ) );\n\t}\n\tif ( !isCollection( types ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an array-like object. Value: `%s`.', types ) );\n\t}\n\tif ( !isCollection( data ) && data !== null ) {\n\t\tthrow new TypeError( format( 'invalid argument. Third argument must be an array-like object or null. Value: `%s`.', data ) );\n\t}\n\tif ( !isPositiveInteger( nargs ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Fourth argument must be a positive integer. Value: `%s`.', nargs ) );\n\t}\n\tif ( !isNonNegativeInteger( nin ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Fifth argument must be a nonnegative integer. Value: `%s`.', nin ) );\n\t}\n\tif ( !isNonNegativeInteger( nout ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Sixth argument must be a nonnegative integer. Value: `%s`.', nout ) );\n\t}\n\tnarrays = nin + nout;\n\tif ( narrays === 0 ) {\n\t\tthrow new Error( 'invalid arguments. Interface must accept at least one input and/or output ndarray. Based on the provided arguments, `nin+nout` equals `0`.' );\n\t}\n\tif ( nargs !== narrays ) {\n\t\tthrow new Error( 'invalid arguments. Fourth argument does not equal the number of input and output ndarrays.' );\n\t}\n\tif ( fcn ) {\n\t\tnfcns = types.length / narrays;\n\t\tif ( !isInteger( nfcns ) ) {\n\t\t\tthrow new Error( 'invalid argument. Unexpected number of types. A type must be specified for each input and output ndarray for each provided ndarray function.' );\n\t\t}\n\t} else {\n\t\tnfcns = fcns.length;\n\t\tif ( types.length !== nfcns*narrays ) {\n\t\t\tthrow new Error( 'invalid argument. Unexpected number of types. A type must be specified for each input and output ndarray for each provided ndarray function.' );\n\t\t}\n\t}\n\tif ( data && data.length !== nfcns ) {\n\t\tthrow new Error( 'invalid argument. The third argument must have the same number of elements as the first argument.' );\n\t}\n\ttypes = types2enums( types );\n\treturn dispatcher;\n\n\t/**\n\t* ndarray function interface which performs multiple dispatch.\n\t*\n\t* @private\n\t* @param {ndarrayLike} x - ndarray\n\t* @param {...ndarrayLike} args - ndarray arguments\n\t* @throws {Error} insufficient arguments\n\t* @throws {Error} too many arguments\n\t* @throws {TypeError} input array arguments must be ndarray-like objects\n\t* @throws {TypeError} output array arguments must be ndarray-like objects\n\t* @throws {TypeError} unable to resolve an ndarray function supporting the provided ndarray argument data types\n\t* @returns {(ndarrayLike|Array|void)} destination array(s)\n\t*/\n\tfunction dispatcher() {\n\t\tvar arrays;\n\t\tvar dtypes;\n\t\tvar argc;\n\t\tvar idx;\n\t\tvar v;\n\t\tvar f;\n\t\tvar i;\n\n\t\targc = arguments.length;\n\t\tif ( argc !== nargs ) {\n\t\t\tif ( argc < nargs ) {\n\t\t\t\tthrow new Error( 'invalid invocation. Insufficient arguments.' );\n\t\t\t}\n\t\t\tthrow new Error( 'invalid invocation. Too many arguments.' );\n\t\t}\n\t\tarrays = [];\n\t\tdtypes = [];\n\t\tfor ( i = 0; i < nargs; i++ ) {\n\t\t\tv = arguments[ i ];\n\t\t\tif ( !isndarrayLike( v ) ) {\n\t\t\t\tif ( i < nin ) {\n\t\t\t\t\tthrow new TypeError( format( 'invalid argument. Input array must be an ndarray-like object. Value: `%s`.', v ) );\n\t\t\t\t} else {\n\t\t\t\t\tthrow new TypeError( format( 'invalid argument. Output array must be an ndarray-like object. Value: `%s`.', v ) );\n\t\t\t\t}\n\t\t\t}\n\t\t\tarrays.push( v );\n\t\t\tdtypes.push( resolveEnum( getDType( v ) ) );\n\t\t}\n\t\t// Resolve the ndarray function satisfying the input array types:\n\t\tidx = indexOfTypes( nfcns, narrays, types, narrays, 1, 0, dtypes, 1, 0 ); // eslint-disable-line max-len\n\n\t\t// Check whether we were able to successfully resolve an ndarray function:\n\t\tif ( idx < 0 ) {\n\t\t\tthrow new TypeError( 'invalid arguments. Unable to resolve an ndarray function supporting the provided array argument data types.' );\n\t\t}\n\t\t// Retrieve the ndarray function:\n\t\tif ( fcn ) {\n\t\t\tf = fcn;\n\t\t} else {\n\t\t\tf = fcns[ idx ];\n\t\t}\n\t\t// Evaluate the ndarray function:\n\t\tif ( data ) {\n\t\t\tf( arrays, data[ idx ] );\n\t\t} else {\n\t\t\tf( arrays );\n\t\t}\n\t\tif ( nout === 1 ) {\n\t\t\treturn arrays[ narrays-1 ];\n\t\t}\n\t\tif ( nout === 0 ) {\n\t\t\treturn;\n\t\t}\n\t\treturn arrays.slice( nin );\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/**\n* Returns the first row index at which a given one-dimensional array of types can be found in a two-dimensional reference array of types (or `-1` if not found).\n*\n* ## Notes\n*\n* - The intended use case for this function is for type dispatch (i.e., given a set of array data types, find a matching interface according the interface's accepted array data types).\n* - The function assumes that `x` is stored in row-major order.\n* - The function assumes that the number of indexed elements in `y` equals the number of columns in `x`.\n* - The function returns a row index. To convert to a linear index, multiply `strideX1` by the return value.\n*\n* @private\n* @param {NonNegativeInteger} N - number of rows in `x` (size of first dimension)\n* @param {NonNegativeInteger} M - number of columns in `x` (size of second dimension)\n* @param {ArrayLikeObject} x - input two-dimensional reference array\n* @param {integer} strideX1 - `x` stride length along first dimension\n* @param {integer} strideX2 - `x` stride length along second dimension\n* @param {NonNegativeInteger} offsetX - `x` starting index\n* @param {ArrayLikeObject} y - search array\n* @param {integer} strideY - `y` stride length\n* @param {NonNegativeInteger} offsetY - `y` starting index\n* @returns {integer} row index (if found) and `-1` otherwise\n*\n* @example\n* // Define a reference array to search:\n* var types = [\n* 'float64', 'float64', 'float64',\n* 'float32', 'float32', 'float32',\n* 'uint32', 'uint32', 'float64',\n* 'int32', 'int32', 'float64',\n* 'uint16', 'uint16', 'float64',\n* 'int16', 'int16', 'float64',\n* 'uint8', 'uint8', 'float64',\n* 'int8', 'int8', 'float64'\n* ];\n*\n* // Define reference array dimensions:\n* var N = 8; // rows\n* var M = 3; // columns\n*\n* // Define a search array:\n* y1 = [\n* 'float32', 'float32', 'float32',\n* ];\n*\n* // Find the list of types:\n* var r1 = indexOfTypes( N, M, types, M, 1, 0, y1, 1, 0 );\n* // returns 1\n*\n// Define a search array:\n* y2 = [\n* 'float32', 'float32', 'float64',\n* ];\n*\n* // Find the list of types:\n* var r2 = indexOfTypes( N, M, types, M, 1, 0, y2, 1, 0 );\n* // returns -1\n*/\nfunction indexOfTypes( N, M, x, strideX1, strideX2, offsetX, y, strideY, offsetY ) { // eslint-disable-line max-len\n\tvar ix;\n\tvar iy;\n\tvar i;\n\tvar j;\n\n\t// Search for the first row which matches `y`...\n\tix = offsetX;\n\tfor ( i = 0; i < N; i++ ) {\n\t\tiy = offsetY;\n\t\tfor ( j = 0; j < M; j++ ) {\n\t\t\tif ( x[ ix+(j*strideX2) ] !== y[ iy ] ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tiy += strideY;\n\t\t}\n\t\t// If we successfully iterated over all columns, then that means we've found a match...\n\t\tif ( j === M ) {\n\t\t\treturn i;\n\t\t}\n\t\tix += strideX1;\n\t}\n\treturn -1;\n}\n\n\n// EXPORTS //\n\nexport default indexOfTypes;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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 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* Compute the absolute value.\n*\n* @module @stdlib/math/special/abs\n*\n* @example\n* import abs from '@stdlib/math/special/abs';\n*\n* var y = abs( -1.0 );\n* // returns 1.0\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import abs from '@stdlib/math/special/abs';\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* import abs from '@stdlib/math/special/abs';\n*\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* import abs from '@stdlib/math/special/abs';\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*/\n\n// MODULES //\n\nvar join = require( 'path' ).join;\nimport tryRequire from '@stdlib/utils/try-require';\nimport javascript from './main.js';\n\n\n// MAIN //\n\nvar main;\nvar tmp = tryRequire( join( __dirname, './native.js' ) );\nif ( tmp instanceof Error ) {\n\tmain = javascript;\n} else {\n\tmain = tmp;\n}\n\n\n// EXPORTS //\n\nexport default main;\n\n// exports: { \"assign\": \"main.assign\" }\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport objectKeys from '@stdlib/utils/keys';\nimport hasOwnProp from '@stdlib/assert/has-own-property';\nimport resolve from './../../base/dtype-resolve-str';\nimport PROMOTION_RULES from './promotion_rules.json';\n\n\n// FUNCTIONS //\n\n/**\n* Generates a full table of promotion rules.\n*\n* @private\n* @returns {Object} table\n*/\nfunction generateFullTable() {\n\tvar dtypes;\n\tvar ntypes;\n\tvar out;\n\tvar tmp;\n\tvar dt1;\n\tvar dt2;\n\tvar o;\n\tvar j;\n\tvar i;\n\n\tout = {};\n\tdtypes = objectKeys( PROMOTION_RULES );\n\tntypes = dtypes.length;\n\tfor ( i = 0; i < ntypes; i++ ) {\n\t\tdt1 = dtypes[ i ];\n\t\to = PROMOTION_RULES[ dt1 ];\n\t\ttmp = {};\n\t\tfor ( j = 0; j < ntypes; j++ ) {\n\t\t\tdt2 = dtypes[ j ];\n\t\t\ttmp[ dt2 ] = o[ dt2 ];\n\t\t}\n\t\tout[ dt1 ] = tmp;\n\t}\n\treturn out;\n}\n\n\n// MAIN //\n\n/**\n* Returns the ndarray data type with the smallest size and closest \"kind\" to which ndarray data types can be safely cast.\n*\n* @param {*} [dtype1] - ndarray data type value\n* @param {*} [dtype2] - ndarray data type value\n* @returns {(Object|integer|string|null)} promotion rule(s) or null\n*\n* @example\n* var table = promotionRules();\n* // returns {...}\n*\n* @example\n* var dt = promotionRules( 'float32', 'uint32' );\n* // returns 'float64'\n*\n* @example\n* var dt = promotionRules( 'binary', 'generic' );\n* // returns -1\n*\n* @example\n* var dt = promotionRules( 'float32', 'foo' );\n* // returns null\n*/\nfunction promotionRules( dtype1, dtype2 ) {\n\tvar o;\n\tif ( arguments.length === 0 ) {\n\t\treturn generateFullTable();\n\t}\n\tdtype1 = resolve( dtype1 );\n\tif ( hasOwnProp( PROMOTION_RULES, dtype1 ) ) {\n\t\to = PROMOTION_RULES[ dtype1 ];\n\t\tdtype2 = resolve( dtype2 );\n\t\tif ( hasOwnProp( o, dtype2 ) ) {\n\t\t\treturn o[ dtype2 ];\n\t\t}\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nexport default promotionRules;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport objectKeys from '@stdlib/utils/keys';\nimport hasOwnProp from '@stdlib/assert/has-own-property';\nimport resolve from './../../base/dtype-resolve-str';\nimport SAFE_CASTS from './safe_casts.json';\n\n\n// VARIABLES //\n\nvar TABLE;\n\n\n// FUNCTIONS //\n\n/**\n* Generates a full table of safe casts for each ndarray data type.\n*\n* @private\n* @returns {Object} table\n*/\nfunction generateFullTable() {\n\tvar dtypes;\n\tvar ntypes;\n\tvar out;\n\tvar tmp;\n\tvar dt1;\n\tvar dt2;\n\tvar o;\n\tvar j;\n\tvar i;\n\n\tout = {};\n\tdtypes = objectKeys( SAFE_CASTS );\n\tntypes = dtypes.length;\n\tfor ( i = 0; i < ntypes; i++ ) {\n\t\tdt1 = dtypes[ i ];\n\t\to = SAFE_CASTS[ dt1 ];\n\t\ttmp = {};\n\t\tfor ( j = 0; j < ntypes; j++ ) {\n\t\t\tdt2 = dtypes[ j ];\n\t\t\ttmp[ dt2 ] = o[ dt2 ];\n\t\t}\n\t\tout[ dt1 ] = tmp;\n\t}\n\treturn out;\n}\n\n/**\n* Generates a table of safe casts for each ndarray data type.\n*\n* @private\n* @returns {Object} table\n*/\nfunction generateTable() {\n\tvar dtypes;\n\tvar ntypes;\n\tvar out;\n\tvar tmp;\n\tvar dt1;\n\tvar dt2;\n\tvar o;\n\tvar j;\n\tvar i;\n\n\tout = {};\n\tdtypes = objectKeys( SAFE_CASTS );\n\tntypes = dtypes.length;\n\tfor ( i = 0; i < ntypes; i++ ) {\n\t\tdt1 = dtypes[ i ];\n\t\to = SAFE_CASTS[ dt1 ];\n\t\ttmp = [];\n\t\tfor ( j = 0; j < ntypes; j++ ) {\n\t\t\tdt2 = dtypes[ j ];\n\t\t\tif ( o[ dt2 ] === 1 ) {\n\t\t\t\ttmp.push( dt2 );\n\t\t\t}\n\t\t}\n\t\tout[ dt1 ] = tmp;\n\t}\n\treturn out;\n}\n\n\n// MAIN //\n\n/**\n* Returns a list of ndarray data types to which a provided ndarray data type can be safely cast.\n*\n* @param {*} [dtype] - ndarray data type value\n* @returns {(Object|StringArray|null)} list of ndarray data types or null\n*\n* @example\n* var list = safeCasts( 'float32' );\n* // returns [...]\n*/\nfunction safeCasts( dtype ) {\n\tif ( arguments.length === 0 ) {\n\t\treturn generateFullTable();\n\t}\n\tif ( TABLE === void 0 ) {\n\t\t// Lazily generate table...\n\t\tTABLE = generateTable();\n\t}\n\tdtype = resolve( dtype );\n\tif ( hasOwnProp( TABLE, dtype ) ) {\n\t\treturn TABLE[ dtype ].slice();\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nexport default safeCasts;\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 enum2str from './../../../base/dtype-enum2str';\nimport str2enum from './../../../base/dtype-str2enum';\n\n\n// MAIN //\n\n/**\n* Returns the data type string associated with a supported strided array data type value.\n*\n* @param {*} dtype - data type value\n* @returns {(string|null)} data type string or null\n*\n* @example\n* import str2enum from '@stdlib/strided/base/dtype-str2enum';\n*\n* var v = resolve( str2enum( 'float64' ) );\n* // returns 'float64'\n*/\nfunction resolve( dtype ) {\n\tvar t = ( typeof dtype );\n\tif ( t === 'string' ) {\n\t\treturn ( str2enum( dtype ) === null ) ? null : dtype;\n\t}\n\tif ( t === 'number' ) {\n\t\treturn enum2str( dtype );\n\t}\n\treturn null;\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 promotionRules from '@stdlib/ndarray/promotion-rules';\nimport safeCasts from '@stdlib/ndarray/safe-casts';\nimport resolveEnum from './../../../base/dtype-resolve-enum';\nimport resolveStr from './../../../base/dtype-resolve-str';\nimport format from '@stdlib/string/format';\n\n\n// FUNCTIONS //\n\n/**\n* Returns the intersection of two sorted lists.\n*\n* @private\n* @param {ArrayLikeObject} list1 - first sorted list\n* @param {ArrayLikeObject} list2 - second sorted list\n* @returns {ArrayLikeObject} result\n*\n* @example\n* var list1 = [ 'a', 'b', 'c', 'd' ];\n* var list2 = [ 'b', 'd', 'e' ];\n*\n* var out = intersection( list1, list2 );\n* // returns [ 'b', 'd' ]\n*/\nfunction intersection( list1, list2 ) {\n\tvar out;\n\tvar M;\n\tvar N;\n\tvar v;\n\tvar i;\n\tvar j;\n\tvar k;\n\n\tM = list1.length;\n\tN = list2.length;\n\n\tout = [];\n\tk = 0;\n\tfor ( i = 0; i < M; i++ ) {\n\t\tif ( k >= N ) {\n\t\t\tbreak;\n\t\t}\n\t\tv = list1[ i ];\n\t\tfor ( j = k; j < N; j++ ) {\n\t\t\tif ( v === list2[ j ] ) {\n\t\t\t\tk = j + 1;\n\t\t\t\tout.push( v );\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\treturn out;\n}\n\n/**\n* Resolves a list of data types to data type strings.\n*\n* @private\n* @param {ArrayLikeObject} dtypes - list of data types\n* @returns {(StringArray|Error)} data type strings (or an error)\n*\n* @example\n* var out = resolve( [ 1, 2, 3 ] );\n* // returns [...]\n*/\nfunction resolve( dtypes ) {\n\tvar out;\n\tvar dt;\n\tvar i;\n\n\tout = [];\n\tfor ( i = 0; i < dtypes.length; i++ ) {\n\t\tdt = resolveStr( dtypes[ i ] );\n\t\tif ( dt === null ) {\n\t\t\treturn new TypeError( format( 'invalid argument. Must provide recognized data types. Unable to resolve a data type string. Value: `%s`.', dtypes[ i ] ) );\n\t\t}\n\t\tout.push( dt );\n\t}\n\treturn out;\n}\n\n/**\n* Tests whether a provided array contains a specified value.\n*\n* @private\n* @param {Array} arr - input array\n* @param {*} value - search value\n* @returns {boolean} boolean indicating whether a provided array contains a specified value\n*/\nfunction contains( arr, value ) {\n\tvar i;\n\tfor ( i = 0; i < arr.length; i++ ) {\n\t\tif ( arr[ i ] === value ) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// MAIN //\n\n/**\n* Generates a list of binary interface signatures from strided array data types.\n*\n* ## Notes\n*\n* - The function returns a strided array having a stride length of `3` (i.e., every `3` elements define a binary interface signature).\n* - For each signature (i.e., set of three consecutive non-overlapping strided array elements), the first two elements are the input data types and the third element is the return data type.\n* - All signatures follow type promotion rules.\n*\n* @param {Array} dtypes1 - list of supported data types for the first argument\n* @param {Array} dtypes2 - list of supported data types for the second argument\n* @param {Array} dtypes3 - list of supported data types for the output\n* @param {Options} [options] - options\n* @param {boolean} [options.enums=false] - boolean flag indicating whether to return signatures as a list of enumeration constants\n* @throws {TypeError} must provide recognized data types\n* @returns {Array} strided array containing binary interface signatures\n*\n* @example\n* var dtypes = [\n* 'float64',\n* 'float32',\n* 'int32',\n* 'uint8'\n* ];\n*\n* var sigs = signatures( dtypes, dtypes, dtypes );\n* // returns [ 'float32', 'float32', 'float32', ... ]\n*/\nfunction signatures( dtypes1, dtypes2, dtypes3, options ) {\n\tvar cache;\n\tvar casts;\n\tvar opts;\n\tvar tmp;\n\tvar out;\n\tvar dt1;\n\tvar dt2;\n\tvar dt3;\n\tvar t1;\n\tvar t2;\n\tvar t3;\n\tvar t4;\n\tvar M;\n\tvar N;\n\tvar i;\n\tvar j;\n\tvar k;\n\n\tif ( arguments.length > 3 ) {\n\t\topts = options;\n\t} else {\n\t\topts = {};\n\t}\n\t// Resolve the list of provided data types to data type strings:\n\tdt1 = resolve( dtypes1 );\n\tif ( dt1 instanceof Error ) {\n\t\tthrow dt1;\n\t}\n\tif ( dtypes2 === dtypes1 ) { // don't do work if we don't need to\n\t\tdt2 = dt1;\n\t} else {\n\t\tdt2 = resolve( dtypes2 );\n\t\tif ( dt2 instanceof Error ) {\n\t\t\tthrow dt2;\n\t\t}\n\t}\n\tif ( dtypes3 === dtypes1 ) { // don't do work if we don't need to\n\t\tdt3 = dt1;\n\t} else if ( dtypes3 === dtypes2 ) {\n\t\tdt3 = dt2;\n\t} else {\n\t\tdt3 = resolve( dtypes3 );\n\t\tif ( dt3 instanceof Error ) {\n\t\t\tthrow dt3;\n\t\t}\n\t}\n\t// Sort the list of return dtypes:\n\tdt3.sort();\n\n\t// Initialize a cache for storing the safe casts for promoted dtypes:\n\tcache = {};\n\n\t// Generate the list of signatures...\n\tM = dt1.length;\n\tN = dt2.length;\n\tout = [];\n\tfor ( i = 0; i < M; i++ ) {\n\t\tt1 = dt1[ i ];\n\t\tfor ( j = 0; j < N; j++ ) {\n\t\t\tt2 = dt2[ j ];\n\n\t\t\t// Resolve the promoted dtype for the current dtype pair:\n\t\t\tt3 = promotionRules( t1, t2 );\n\n\t\t\t// Check whether the dtype pair promotes...\n\t\t\tif ( t3 === -1 || t3 === null ) {\n\t\t\t\t// The dtype pair does not promote:\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\t// Check whether the promoted dtype is in our list of output dtypes...\n\t\t\tif ( contains( dt3, t3 ) ) {\n\t\t\t\tout.push( t1, t2, t3 );\n\t\t\t}\n\t\t\t// Retrieve the allowed casts for the promoted dtype:\n\t\t\tcasts = cache[ t3 ];\n\n\t\t\t// If a list of allowed casts is not in the cache, we need to resolve them...\n\t\t\tif ( casts === void 0 ) {\n\t\t\t\t// Resolve the list of safe casts for the promoted dtype:\n\t\t\t\tcasts = safeCasts( t3 );\n\n\t\t\t\t// Remove safe casts which are not among the supported output dtypes:\n\t\t\t\tcasts = intersection( dt3, casts.sort() );\n\n\t\t\t\t// Store the list of safe casts in the cache:\n\t\t\t\tcache[ t3 ] = casts;\n\t\t\t}\n\t\t\t// Generate signatures for allowed casts...\n\t\t\tfor ( k = 0; k < casts.length; k++ ) {\n\t\t\t\tt4 = casts[ k ];\n\t\t\t\tif ( t4 !== t3 ) {\n\t\t\t\t\tout.push( t1, t2, t4 );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tif ( opts.enums ) {\n\t\ttmp = [];\n\t\tfor ( i = 0; i < out.length; i++ ) {\n\t\t\ttmp.push( resolveEnum( out[ i ] ) );\n\t\t}\n\t\tout = tmp;\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default signatures;\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) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Applies a binary callback to strided input array elements and assigns results to elements in a strided output array.\n*\n* @private\n* @param {ArrayLikeObject} arrays - array-like object containing two input arrays and one output array\n* @param {NonNegativeIntegerArray} shape - array-like object containing a single element, the number of indexed elements\n* @param {IntegerArray} strides - array-like object containing the stride lengths for the input and output arrays\n* @param {NonNegativeIntegerArray} offsets - array-like object containing the starting indices (i.e., index offsets) for the input and output arrays\n* @param {Callback} fcn - binary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import add from '@stdlib/math/base/ops/add';\n*\n* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var y = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var z = new Float64Array( x.length );\n*\n* var shape = [ x.length ];\n* var strides = [ 1, 1, 1 ];\n* var offsets = [ 0, 0, 0 ];\n*\n* binary( [ x, y, z ], shape, strides, offsets, add );\n*\n* console.log( z );\n* // => [ 2.0, 4.0, 6.0, 8.0, 10.0 ]\n*/\nfunction binary( arrays, shape, strides, offsets, fcn ) {\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar x;\n\tvar y;\n\tvar z;\n\tvar N;\n\tvar i;\n\n\tN = shape[ 0 ];\n\tif ( N <= 0 ) {\n\t\treturn;\n\t}\n\tix = offsets[ 0 ];\n\tiy = offsets[ 1 ];\n\tiz = offsets[ 2 ];\n\tsx = strides[ 0 ];\n\tsy = strides[ 1 ];\n\tsz = strides[ 2 ];\n\tx = arrays[ 0 ];\n\ty = arrays[ 1 ];\n\tz = arrays[ 2 ];\n\tfor ( i = 0; i < N; i++ ) {\n\t\tz[ iz ] = fcn( x[ ix ], y[ iy ] );\n\t\tix += sx;\n\t\tiy += sy;\n\t\tiz += sz;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default binary;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Applies a binary callback to strided input array elements and assigns results to elements in a strided output array.\n*\n* @private\n* @param {ArrayLikeObject} arrays - array-like object containing two input arrays and one output array\n* @param {NonNegativeIntegerArray} shape - array-like object containing a single element, the number of indexed elements\n* @param {IntegerArray} strides - array-like object containing the stride lengths for the input and output arrays\n* @param {NonNegativeIntegerArray} offsets - array-like object containing the starting indices (i.e., index offsets) for the input and output arrays\n* @param {Array} accessors - array-like object containing accessors for the input and output arrays\n* @param {Callback} fcn - binary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import add from '@stdlib/math/base/ops/add';\n*\n* function get( buf, idx ) {\n* return buf[ idx ] * 2.0;\n* }\n*\n* function set( buf, idx, value ) {\n* buf[ idx ] = value;\n* }\n*\n* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var y = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var z = new Float64Array( x.length );\n*\n* var shape = [ x.length ];\n* var strides = [ 1, 1, 1 ];\n* var offsets = [ 0, 0, 0 ];\n*\n* binary( [ x, y, z ], shape, strides, offsets, [ get, get, set ], add );\n*\n* console.log( z );\n* // => [ 4.0, 8.0, 12.0, 16.0, 20.0 ]\n*/\nfunction binary( arrays, shape, strides, offsets, accessors, fcn ) {\n\tvar xget;\n\tvar yget;\n\tvar zset;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar x;\n\tvar y;\n\tvar z;\n\tvar N;\n\tvar i;\n\n\tN = shape[ 0 ];\n\tif ( N <= 0 ) {\n\t\treturn;\n\t}\n\tix = offsets[ 0 ];\n\tiy = offsets[ 1 ];\n\tiz = offsets[ 2 ];\n\tsx = strides[ 0 ];\n\tsy = strides[ 1 ];\n\tsz = strides[ 2 ];\n\tx = arrays[ 0 ];\n\ty = arrays[ 1 ];\n\tz = arrays[ 2 ];\n\txget = accessors[ 0 ];\n\tyget = accessors[ 1 ];\n\tzset = accessors[ 2 ];\n\tfor ( i = 0; i < N; i++ ) {\n\t\tzset( z, iz, fcn( xget( x, ix ), yget( y, iy ) ) );\n\t\tix += sx;\n\t\tiy += sy;\n\t\tiz += sz;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default binary;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isAccessorArray from '@stdlib/array/base/assert/is-accessor-array';\nimport accessorGetter from '@stdlib/array/base/accessor-getter';\nimport accessorSetter from '@stdlib/array/base/accessor-setter';\nimport getter from '@stdlib/array/base/getter';\nimport setter from '@stdlib/array/base/setter';\nimport dtype from '@stdlib/array/dtype';\nimport strided from './binary.js';\nimport accessors from './accessors.js';\n\n\n// MAIN //\n\n/**\n* Applies a binary callback to strided input array elements and assigns results to elements in a strided output array.\n*\n* @param {ArrayLikeObject} arrays - array-like object containing two input arrays and one output array\n* @param {NonNegativeIntegerArray} shape - array-like object containing a single element, the number of indexed elements\n* @param {IntegerArray} strides - array-like object containing the stride lengths for the input and output arrays\n* @param {Callback} fcn - binary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import add from '@stdlib/math/base/ops/add';\n*\n* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var y = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var z = new Float64Array( x.length );\n*\n* var shape = [ x.length ];\n* var strides = [ 1, 1, 1 ];\n*\n* binary( [ x, y, z ], shape, strides, add );\n*\n* console.log( z );\n* // => [ 2.0, 4.0, 6.0, 8.0, 10.0 ]\n*/\nfunction binary( arrays, shape, strides, fcn ) {\n\tvar xget;\n\tvar yget;\n\tvar zset;\n\tvar x;\n\tvar y;\n\tvar z;\n\n\tx = arrays[ 0 ];\n\tif ( isAccessorArray( x ) ) {\n\t\txget = accessorGetter( dtype( x ) );\n\t}\n\ty = arrays[ 1 ];\n\tif ( isAccessorArray( y ) ) {\n\t\tyget = accessorGetter( dtype( y ) );\n\t}\n\tz = arrays[ 2 ];\n\tif ( isAccessorArray( z ) ) {\n\t\tzset = accessorSetter( dtype( z ) );\n\t}\n\tif ( xget || yget || zset ) {\n\t\txget = xget || getter( dtype( x ) );\n\t\tyget = yget || getter( dtype( y ) );\n\t\tzset = zset || setter( dtype( z ) );\n\t\treturn accessors( arrays, shape, strides, [ xget, yget, zset ], fcn );\n\t}\n\treturn strided( arrays, shape, strides, fcn );\n}\n\n\n// EXPORTS //\n\nexport default binary;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport stride2offset from './../../../base/stride2offset';\nimport ndarray from './accessors.ndarray.js';\n\n\n// MAIN //\n\n/**\n* Applies a binary callback to strided input array elements and assigns results to elements in a strided output array.\n*\n* @private\n* @param {ArrayLikeObject} arrays - array-like object containing two input arrays and one output array\n* @param {NonNegativeIntegerArray} shape - array-like object containing a single element, the number of indexed elements\n* @param {IntegerArray} strides - array-like object containing the stride lengths for the input and output arrays\n* @param {Array} accessors - array-like object containing accessors for the input and output arrays\n* @param {Callback} fcn - binary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import add from '@stdlib/math/base/ops/add';\n*\n* function get( buf, idx ) {\n* return buf[ idx ] * 2.0;\n* }\n*\n* function set( buf, idx, value ) {\n* buf[ idx ] = value;\n* }\n*\n* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var y = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var z = new Float64Array( x.length );\n*\n* var shape = [ x.length ];\n* var strides = [ 1, 1, 1 ];\n*\n* binary( [ x, y, z ], shape, strides, [ get, get, set ], add );\n*\n* console.log( z );\n* // => [ 4.0, 8.0, 12.0, 16.0, 20.0 ]\n*/\nfunction binary( arrays, shape, strides, accessors, fcn ) {\n\tvar offsets;\n\tvar N;\n\n\tN = shape[ 0 ];\n\toffsets = [\n\t\tstride2offset( N, strides[ 0 ] ),\n\t\tstride2offset( N, strides[ 1 ] ),\n\t\tstride2offset( N, strides[ 2 ] )\n\t];\n\treturn ndarray( arrays, shape, strides, offsets, accessors, fcn );\n}\n\n\n// EXPORTS //\n\nexport default binary;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport stride2offset from './../../../base/stride2offset';\nimport ndarray from './binary.ndarray.js';\n\n\n// MAIN //\n\n/**\n* Applies a binary callback to strided input array elements and assigns results to elements in a strided output array.\n*\n* @private\n* @param {ArrayLikeObject} arrays - array-like object containing two input arrays and one output array\n* @param {NonNegativeIntegerArray} shape - array-like object containing a single element, the number of indexed elements\n* @param {IntegerArray} strides - array-like object containing the stride lengths for the input and output arrays\n* @param {Callback} fcn - binary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import add from '@stdlib/math/base/ops/add';\n*\n* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var y = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var z = new Float64Array( x.length );\n*\n* var shape = [ x.length ];\n* var strides = [ 1, 1, 1 ];\n*\n* binary( [ x, y, z ], shape, strides, add );\n*\n* console.log( z );\n* // => [ 2.0, 4.0, 6.0, 8.0, 10.0 ]\n*/\nfunction binary( arrays, shape, strides, fcn ) {\n\tvar offsets;\n\tvar N;\n\n\tN = shape[ 0 ];\n\toffsets = [\n\t\tstride2offset( N, strides[ 0 ] ),\n\t\tstride2offset( N, strides[ 1 ] ),\n\t\tstride2offset( N, strides[ 2 ] )\n\t];\n\treturn ndarray( arrays, shape, strides, offsets, fcn );\n}\n\n\n// EXPORTS //\n\nexport default binary;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isAccessorArray from '@stdlib/array/base/assert/is-accessor-array';\nimport accessorGetter from '@stdlib/array/base/accessor-getter';\nimport accessorSetter from '@stdlib/array/base/accessor-setter';\nimport getter from '@stdlib/array/base/getter';\nimport setter from '@stdlib/array/base/setter';\nimport dtype from '@stdlib/array/dtype';\nimport strided from './binary.ndarray.js';\nimport accessors from './accessors.ndarray.js';\n\n\n// MAIN //\n\n/**\n* Applies a binary callback to strided input array elements and assigns results to elements in a strided output array.\n*\n* @param {ArrayLikeObject} arrays - array-like object containing two input arrays and one output array\n* @param {NonNegativeIntegerArray} shape - array-like object containing a single element, the number of indexed elements\n* @param {IntegerArray} strides - array-like object containing the stride lengths for the input and output arrays\n* @param {NonNegativeIntegerArray} offsets - array-like object containing the starting indices (i.e., index offsets) for the input and output arrays\n* @param {Callback} fcn - binary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import add from '@stdlib/math/base/ops/add';\n*\n* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var y = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var z = new Float64Array( x.length );\n*\n* var shape = [ x.length ];\n* var strides = [ 1, 1, 1 ];\n* var offsets = [ 0, 0, 0 ];\n*\n* binary( [ x, y, z ], shape, strides, offsets, add );\n*\n* console.log( z );\n* // => [ 2.0, 4.0, 6.0, 8.0, 10.0 ]\n*/\nfunction binary( arrays, shape, strides, offsets, fcn ) {\n\tvar xget;\n\tvar yget;\n\tvar zset;\n\tvar x;\n\tvar y;\n\tvar z;\n\n\tx = arrays[ 0 ];\n\tif ( isAccessorArray( x ) ) {\n\t\txget = accessorGetter( dtype( x ) );\n\t}\n\ty = arrays[ 1 ];\n\tif ( isAccessorArray( y ) ) {\n\t\tyget = accessorGetter( dtype( y ) );\n\t}\n\tz = arrays[ 2 ];\n\tif ( isAccessorArray( z ) ) {\n\t\tzset = accessorSetter( dtype( z ) );\n\t}\n\tif ( xget || yget || zset ) {\n\t\txget = xget || getter( dtype( x ) );\n\t\tyget = yget || getter( dtype( y ) );\n\t\tzset = zset || setter( dtype( z ) );\n\t\treturn accessors( arrays, shape, strides, offsets, [ xget, yget, zset ], fcn ); // eslint-disable-line max-len\n\t}\n\treturn strided( arrays, shape, strides, offsets, fcn );\n}\n\n\n// EXPORTS //\n\nexport default binary;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Apply a binary callback to strided input array elements and assign results to elements in a strided output array.\n*\n* @module @stdlib/strided/base/binary\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import binary from '@stdlib/strided/base/binary';\n* import add from '@stdlib/math/base/ops/add';\n*\n* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var y = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var z = new Float64Array( x.length );\n*\n* var shape = [ x.length ];\n* var strides = [ 1, 1, 1 ];\n*\n* binary( [ x, y, z ], shape, strides, add );\n*\n* console.log( z );\n* // => [ 2.0, 4.0, 6.0, 8.0, 10.0 ]\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import binary from '@stdlib/strided/base/binary';\n* import add from '@stdlib/math/base/ops/add';\n*\n* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var y = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var z = new Float64Array( x.length );\n*\n* var shape = [ x.length ];\n* var strides = [ 1, 1, 1 ];\n* var offsets = [ 0, 0, 0 ];\n*\n* binary.ndarray( [ x, y, z ], shape, strides, offsets, add );\n*\n* console.log( z );\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/* eslint-disable valid-typeof */\n\n'use strict';\n\n// MODULES //\n\nimport isFunction from '@stdlib/assert/is-function';\nimport { isPrimitive as isNonNegativeInteger } from '@stdlib/assert/is-nonnegative-integer';\nimport format from '@stdlib/string/format';\n\n\n// VARIABLES //\n\nvar T = 'number';\n\n\n// FUNCTIONS //\n\n/**\n* Wraps a function accepting complex number arguments to support providing both real and complex numbers.\n*\n* ## Notes\n*\n* - The returned function **assumes** that the wrapped function accepts **only** complex number input arguments (i.e., every argument must be a complex number).\n* - The returned function **assumes** that, if an input argument is non-numeric (i.e., not of type `number`), then the input argument is a complex number. The returned function does **not** verify that non-numeric input arguments are, in fact, complex number objects. The returned function passes non-numeric input arguments to the wrapped function without modification.\n*\n* @param {Function} fcn - function to wrap\n* @param {NonNegativeInteger} nargs - number of arguments\n* @param {Function} ctor - complex number constructor\n* @throws {TypeError} first argument must be a function\n* @throws {TypeError} second argument must be a nonnegative integer\n* @throws {TypeError} third argument must be a constructor function\n* @returns {Function} wrapped function\n*\n* @example\n* import Complex64 from '@stdlib/complex/float32/ctor';\n* import caddf from '@stdlib/complex/float32/base/add';\n* import realf from '@stdlib/complex/float32/real';\n* import imagf from '@stdlib/complex/float32/imag';\n*\n* var f = wrap( caddf, 2, Complex64 );\n*\n* // ...\n*\n* var z = f( 3.0, 4.0 );\n* // returns \n*\n* var re = realf( z );\n* // returns 7.0\n*\n* var im = imagf( z );\n* // returns 0.0\n*/\nfunction wrap( fcn, nargs, ctor ) {\n\tvar fcns;\n\tif ( !isFunction( fcn ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', fcn ) );\n\t}\n\tif ( !isNonNegativeInteger( nargs ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be a nonnegative integer. Value: `%s`.', nargs ) );\n\t}\n\tif ( !isFunction( ctor ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Third argument must be a constructor function. Value: `%s`.', ctor ) );\n\t}\n\tfcns = [ fcn0, fcn1, fcn2, fcn3, fcn4, fcn5 ];\n\treturn ( nargs <= 5 ) ? fcns[ nargs ] : fcnN;\n\n\t/**\n\t* Invokes a nullary function.\n\t*\n\t* @private\n\t* @returns {*} result\n\t*/\n\tfunction fcn0() {\n\t\treturn fcn();\n\t}\n\n\t/**\n\t* Invokes a unary function accepting complex numbers.\n\t*\n\t* @private\n\t* @param {(number|Complex)} x - input value\n\t* @returns {*} result\n\t*/\n\tfunction fcn1( x ) {\n\t\tif ( typeof x === T ) {\n\t\t\tx = new ctor( x, 0.0 );\n\t\t}\n\t\treturn fcn( x );\n\t}\n\n\t/**\n\t* Invokes a binary function accepting complex numbers.\n\t*\n\t* @private\n\t* @param {(number|Complex)} x - input value\n\t* @param {(number|Complex)} y - input value\n\t* @returns {*} result\n\t*/\n\tfunction fcn2( x, y ) {\n\t\tif ( typeof x === T ) {\n\t\t\tx = new ctor( x, 0.0 );\n\t\t}\n\t\tif ( typeof y === T ) {\n\t\t\ty = new ctor( y, 0.0 );\n\t\t}\n\t\treturn fcn( x, y );\n\t}\n\n\t/**\n\t* Invokes a ternary function accepting complex numbers.\n\t*\n\t* @private\n\t* @param {(number|Complex)} x - input value\n\t* @param {(number|Complex)} y - input value\n\t* @param {(number|Complex)} z - input value\n\t* @returns {*} result\n\t*/\n\tfunction fcn3( x, y, z ) {\n\t\tif ( typeof x === T ) {\n\t\t\tx = new ctor( x, 0.0 );\n\t\t}\n\t\tif ( typeof y === T ) {\n\t\t\ty = new ctor( y, 0.0 );\n\t\t}\n\t\tif ( typeof z === T ) {\n\t\t\tz = new ctor( z, 0.0 );\n\t\t}\n\t\treturn fcn( x, y, z );\n\t}\n\n\t/**\n\t* Invokes a quaternary function accepting complex numbers.\n\t*\n\t* @private\n\t* @param {(number|Complex)} x - input value\n\t* @param {(number|Complex)} y - input value\n\t* @param {(number|Complex)} z - input value\n\t* @param {(number|Complex)} w - input value\n\t* @returns {*} result\n\t*/\n\tfunction fcn4( x, y, z, w ) {\n\t\tif ( typeof x === T ) {\n\t\t\tx = new ctor( x, 0.0 );\n\t\t}\n\t\tif ( typeof y === T ) {\n\t\t\ty = new ctor( y, 0.0 );\n\t\t}\n\t\tif ( typeof z === T ) {\n\t\t\tz = new ctor( z, 0.0 );\n\t\t}\n\t\tif ( typeof w === T ) {\n\t\t\tw = new ctor( w, 0.0 );\n\t\t}\n\t\treturn fcn( x, y, z, w );\n\t}\n\n\t/**\n\t* Invokes a quinary function accepting complex numbers.\n\t*\n\t* @private\n\t* @param {(number|Complex)} x - input value\n\t* @param {(number|Complex)} y - input value\n\t* @param {(number|Complex)} z - input value\n\t* @param {(number|Complex)} w - input value\n\t* @param {(number|Complex)} v - input value\n\t* @returns {*} result\n\t*/\n\tfunction fcn5( x, y, z, w, v ) {\n\t\tif ( typeof x === T ) {\n\t\t\tx = new ctor( x, 0.0 );\n\t\t}\n\t\tif ( typeof y === T ) {\n\t\t\ty = new ctor( y, 0.0 );\n\t\t}\n\t\tif ( typeof z === T ) {\n\t\t\tz = new ctor( z, 0.0 );\n\t\t}\n\t\tif ( typeof w === T ) {\n\t\t\tw = new ctor( w, 0.0 );\n\t\t}\n\t\tif ( typeof v === T ) {\n\t\t\tv = new ctor( v, 0.0 );\n\t\t}\n\t\treturn fcn( x, y, z, w, v );\n\t}\n\n\t/**\n\t* Invokes a function accepting an arbitrary number of complex number input arguments.\n\t*\n\t* @private\n\t* @param {...(number|Complex)} args - input values\n\t* @returns {*} result\n\t*/\n\tfunction fcnN() {\n\t\tvar args;\n\t\tvar v;\n\t\tvar i;\n\n\t\targs = [];\n\t\tfor ( i = 0; i < arguments.length; i++ ) {\n\t\t\tv = arguments[ i ];\n\t\t\tif ( typeof v === T ) {\n\t\t\t\tv = new ctor( v, 0.0 );\n\t\t\t}\n\t\t\targs.push( v );\n\t\t}\n\t\treturn fcn.apply( null, args );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default wrap;\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 resolve from './../../../base/dtype-resolve-str';\nimport Complex64 from '@stdlib/complex/float32/ctor';\nimport Complex128 from '@stdlib/complex/float64/ctor';\nimport wrap from '@stdlib/complex/base/wrap-function';\n\n\n// VARIABLES //\n\nvar C64 = 'complex64';\nvar C128 = 'complex128';\nvar CTORS = {\n\t'complex64': Complex64,\n\t'complex128': Complex128\n};\n\n\n// FUNCTIONS //\n\n/**\n* Resolves a callback based on provided dtypes.\n*\n* @private\n* @param {Object} table - callback table\n* @param {Function} table.default - default callback\n* @param {Function} table.complex64 - callback for single-precision complex floating-point numbers\n* @param {Function} table.complex128 - callback for double-precision complex floating-point numbers\n* @param {string} t1 - dtype for first argument\n* @param {string} t2 - dtype for second argument\n* @param {string} t3 - dtype for return value\n* @returns {Function} callback\n*/\nfunction resolveCallback( table, t1, t2, t3 ) {\n\t// The following branches attempt to follow type promotion rules; however, some accommodations are made for completeness...\n\n\t// Signature: ??_z\n\tif ( t3 === C128 ) {\n\t\t// c?_z\n\t\tif ( t1 === C64 ) {\n\t\t\t// cz_z or cc_z\n\t\t\tif ( t2 === C128 || t2 === C64 ) {\n\t\t\t\treturn table[ C128 ]; // Signature: cz_z_as_zz_z or cc_z_as_zz_z\n\t\t\t}\n\t\t\t// cd_z\n\t\t\treturn wrap( table[ C128 ], 2, CTORS[ C128 ] ); // Signature: cd_z_as_zz_z\n\t\t}\n\t\t// z?_z\n\t\tif ( t1 === C128 ) {\n\t\t\t// zz_z or zc_z\n\t\t\tif ( t2 === C128 || t2 === C64 ) {\n\t\t\t\treturn table[ C128 ]; // Signature: zz_z or zc_z_as_zz_z\n\t\t\t}\n\t\t\t// zd_z\n\t\t\treturn wrap( table[ C128 ], 2, CTORS[ C128 ] ); // Signature: zd_z_as_zz_z\n\t\t}\n\t\t// dc_z, dz_z, or dd_z\n\t\treturn wrap( table[ C128 ], 2, CTORS[ C128 ] ); // Signature: dc_z_as_zz_z, dz_z_as_zz_z, or dd_z_as_zz_z\n\t}\n\t// Signature: ??_c\n\tif ( t3 === C64 ) {\n\t\t// z?_c\n\t\tif ( t1 === C128 ) {\n\t\t\t// zc_c or zz_c (note: according to type promotion rules `zz_c` should not happen, as `z` does not promote to `c`, but we accommodate here anyway)\n\t\t\tif ( t2 === C64 || t2 === C128 ) {\n\t\t\t\treturn table[ C128 ]; // Signature: zc_c_as_zz_z or zz_c_as_zz_z\n\t\t\t}\n\t\t\t// zd_c (note: according to type promotion rules `zd_c` should not happen, as neither `z` nor `d` promote to `c`, but we accommodate here anyway)\n\t\t\treturn wrap( table[ C128 ], 2, CTORS[ C128 ] ); // Signature: zd_c_as_zz_z\n\t\t}\n\t\t// c?_c\n\t\tif ( t1 === C64 ) {\n\t\t\t// cz_c (note: according to type promotion rules `cz_c` should not happen, as `z` does not promote to `c`, but we accommodate here anyway)\n\t\t\tif ( t2 === C128 ) {\n\t\t\t\treturn table[ C128 ]; // Signature: cz_c_as_zz_z\n\t\t\t}\n\t\t\t// cc_c\n\t\t\tif ( t2 === C64 ) {\n\t\t\t\treturn table[ C64 ]; // Signature: cc_c\n\t\t\t}\n\t\t\t// cd_c (note: in JavaScript, real values are double-precision, but we downcast `d` to `c`, as, according to type promotion rules `cd_c` should not happen, as `d` does not promote to `c`, but `cf_c` can happen)\n\t\t\treturn wrap( table[ C64 ], 2, CTORS[ C64 ] ); // Signature: cd_c_as_cc_c (cf_c_as_cc_c)\n\t\t}\n\t\t// dz_c\n\t\tif ( t2 === C128 ) {\n\t\t\t// Note: according to type promotion rules `dz_c` should not happen, as neither `z` nor `d` promote to `c`, but we accommodate here anyway\n\t\t\treturn wrap( table[ C128 ], 2, CTORS[ C128 ] ); // Signature: zd_c_as_zz_z\n\t\t}\n\t\t// dc_c\n\t\tif ( t2 === C64 ) {\n\t\t\t// Note: in JavaScript, real values are double-precision, but we downcast `d` to `c`, as, according to type promotion rules `dc_c` should not happen, as `d` does not promote to `c`, but `fc_c` can happen\n\t\t\treturn wrap( table[ C64 ], 2, CTORS[ C64 ] ); // Signature: dc_c_as_cc_c (fc_c_as_cc_c)\n\t\t}\n\t\t// dd_c (note: in JavaScript, real values are double-precision, but we downcast `d` to `c`, as, according to type promotion rules `dd_c` should not happen, as `d` does not promote to `c`, but `ff_c` can happen)\n\t\treturn wrap( table[ C64 ], 2, CTORS[ C64 ] ); // Signature: dd_c_as_cc_c (ff_c_as_cc_c)\n\t}\n\t// Signature: ??_o\n\tif ( t3 === 'generic' ) {\n\t\t// z?_o\n\t\tif ( t1 === C128 ) {\n\t\t\t// zz_o or zc_o\n\t\t\tif ( t2 === C128 || t2 === C64 ) {\n\t\t\t\treturn table[ C128 ]; // Signature: zz_o_as_zz_z or zc_o_as_zz_z\n\t\t\t}\n\t\t\t// zd_o\n\t\t\treturn wrap( table[ C128 ], 2, CTORS[ C128 ] ); // Signature: zd_o_as_zz_z\n\t\t}\n\t\t// c?_o\n\t\tif ( t1 === C64 ) {\n\t\t\t// cc_o\n\t\t\tif ( t2 === C64 ) {\n\t\t\t\treturn table[ C64 ]; // Signature: cc_o_as_cc_c\n\t\t\t}\n\t\t\t// cz_o\n\t\t\tif ( t2 === C128 ) {\n\t\t\t\treturn table[ C128 ]; // Signature: cz_o_as_zz_z\n\t\t\t}\n\t\t\t// cd_o\n\t\t\treturn wrap( table[ C64 ], 2, CTORS[ C64 ] ); // Signature: cd_o_as_cc_c\n\t\t}\n\t\t// dz_o\n\t\tif ( t2 === C128 ) {\n\t\t\treturn wrap( table[ C128 ], 2, CTORS[ C128 ] ); // Signature: dz_o_as_zz_z\n\t\t}\n\t\t// dc_o\n\t\tif ( t2 === C64 ) {\n\t\t\treturn wrap( table[ C64 ], 2, CTORS[ C64 ] ); // Signature: dc_o_as_cc_c\n\t\t}\n\t\t// dd_o\n\t\treturn table.default;\n\t}\n\treturn table.default;\n}\n\n\n// MAIN //\n\n/**\n* Assigns callbacks to binary interfaces according to type promotion rules.\n*\n* ## Notes\n*\n* - The function assumes that the provided signature array has the following properties:\n*\n* - a strided array having a stride length of `3` (i.e., every `3` elements define a binary interface signature).\n* - for each signature (i.e., set of three consecutive non-overlapping strided array elements), the first two elements are the input data types and the third element is the return data type.\n* - all signatures follow type promotion rules.\n*\n* - Based on type promotion rules, we can simply use the callback for `float64` (i.e., the assumed \"default\") for all interfaces not involving complex numbers, even for `float32`, as we shouldn't need to explicitly downcast strided array values. The only time we need to return `float32` values is when input arrays are already `float32` or of a type which can be safely represented in `float32` without concern for truncation.\n*\n* @param {Object} table - callback table\n* @param {Function} table.default - default callback\n* @param {Function} table.complex64 - callback for single-precision complex floating-point numbers\n* @param {Function} table.complex128 - callback for double-precision complex floating-point numbers\n* @param {ArrayLikeObject} signatures - strided array containing binary interface signatures\n* @returns {Array} list of callbacks\n*\n* @example\n* import signatures from '@stdlib/strided/base/binary-dtype-signatures';\n* import add from '@stdlib/math/base/ops/add';\n* import cadd from '@stdlib/complex/float64/base/add';\n* import caddf from '@stdlib/complex/float32/base/add';\n*\n* var dtypes = [\n* 'float64',\n* 'float32',\n* 'int32',\n* 'uint8'\n* ];\n*\n* var sigs = signatures( dtypes, dtypes, dtypes );\n* // returns [...]\n*\n* var table = {\n* 'default': add,\n* 'complex64': caddf,\n* 'complex128': cadd\n* };\n*\n* var list = callbacks( table, sigs );\n* // returns [...]\n*/\nfunction callbacks( table, signatures ) {\n\tvar out;\n\tvar t1;\n\tvar t2;\n\tvar t3;\n\tvar i;\n\n\tout = [];\n\tfor ( i = 0; i < signatures.length; i += 3 ) {\n\t\tt1 = resolve( signatures[ i ] );\n\t\tt2 = resolve( signatures[ i+1 ] );\n\t\tt3 = resolve( signatures[ i+2 ] );\n\t\tout.push( resolveCallback( table, t1, t2, t3 ) );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default callbacks;\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) 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) 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* Element-wise addition of two strided arrays.\n*\n* @module @stdlib/math/strided/ops/add\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import add from '@stdlib/math/strided/ops/add';\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*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import add from '@stdlib/math/strided/ops/add';\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.ndarray( 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*/\n\n// MODULES //\n\nvar join = require( 'path' ).join;\nimport tryRequire from '@stdlib/utils/try-require';\nimport javascript from './main.js';\n\n\n// MAIN //\n\nvar main;\nvar tmp = tryRequire( join( __dirname, './native.js' ) );\nif ( tmp instanceof Error ) {\n\tmain = javascript;\n} else {\n\tmain = tmp;\n}\n\n\n// EXPORTS //\n\nexport default main;\n\n// exports: { \"ndarray\": \"main.ndarray\" }\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* Applies a binary function to each element retrieved from a strided input array according to a callback function and assigns results to a strided output array.\n*\n* @private\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 - input array/collection\n* @param {integer} strideY - `y` stride length\n* @param {NonNegativeInteger} offsetY - starting `y` index\n* @param {Collection} z - destination array/collection\n* @param {integer} strideZ - `z` stride length\n* @param {NonNegativeInteger} offsetZ - starting `z` index\n* @param {Function} fcn - binary function to apply to callback return values\n* @param {Callback} clbk - callback function which returns an array-like object containing two values\n* @param {*} [thisArg] - callback execution context\n* @returns {Collection} `z`\n*\n* @example\n* import add from '@stdlib/math/base/ops/add';\n*\n* function accessor( values ) {\n* values[ 0 ] *= 2.0;\n* values[ 1 ] *= 2.0;\n* return values;\n* }\n*\n* var x = [ 1.0, -2.0, 3.0, -4.0, 5.0 ];\n* var y = [ 1.0, 2.0, 3.0, 4.0, 5.0 ];\n* var z = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* mapBy2( x.length, x, 1, 0, y, 1, 0, z, 1, 0, add, accessor );\n*\n* console.log( z );\n* // => [ 4.0, 0.0, 12.0, 0.0, 20.0 ]\n*/\nfunction mapBy2( N, x, strideX, offsetX, y, strideY, offsetY, z, strideZ, offsetZ, fcn, clbk, thisArg ) { // eslint-disable-line max-len, max-params\n\tvar args;\n\tvar o;\n\tvar a;\n\tvar v;\n\tvar i;\n\tif ( N <= 0 ) {\n\t\treturn z;\n\t}\n\to = [ offsetX, offsetY, offsetZ ];\n\ta = [ x, y, z ];\n\targs = [ 0, 0 ];\n\tfor ( i = 0; i < N; i++ ) {\n\t\targs[ 0 ] = x[ o[0] ];\n\t\targs[ 1 ] = y[ o[1] ];\n\t\tv = clbk.call( thisArg, args, i, o, a );\n\t\tif ( v !== void 0 ) {\n\t\t\tz[ o[2] ] = fcn( v[ 0 ], v[ 1 ] );\n\t\t}\n\t\to[ 0 ] += strideX;\n\t\to[ 1 ] += strideY;\n\t\to[ 2 ] += strideZ;\n\t}\n\treturn z;\n}\n\n\n// EXPORTS //\n\nexport default mapBy2;\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// MAIN //\n\n/**\n* Applies a binary function to each element retrieved from a strided input array according to a callback function and assigns results to a strided output array.\n*\n* @private\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 {Function} xget - accessor for retrieving elements in `x`\n* @param {Collection} y - input array/collection\n* @param {integer} strideY - `y` stride length\n* @param {NonNegativeInteger} offsetY - starting `y` index\n* @param {Function} yget - accessor for retrieving elements in `y`\n* @param {Collection} z - destination array/collection\n* @param {integer} strideZ - `z` stride length\n* @param {NonNegativeInteger} offsetZ - starting `z` index\n* @param {Function} zset - accessor for setting elements in `z`\n* @param {Function} fcn - binary function to apply to callback return values\n* @param {Callback} clbk - callback function which returns an array-like object containing two values\n* @param {*} [thisArg] - callback execution context\n* @returns {Collection} `z`\n*\n* @example\n* import add from '@stdlib/math/base/ops/add';\n*\n* function accessor( values ) {\n* return values;\n* }\n*\n* function get( buf, idx ) {\n* return buf[ idx ] * 2.0;\n* }\n*\n* function set( buf, idx, value ) {\n* buf[ idx ] = value;\n* }\n*\n* var x = [ 1.0, -2.0, 3.0, -4.0, 5.0 ];\n* var y = [ 1.0, 2.0, 3.0, 4.0, 5.0 ];\n* var z = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* mapBy2( x.length, x, 1, 0, get, y, 1, 0, get, z, 1, 0, set, add, accessor );\n*\n* console.log( z );\n* // => [ 4.0, 0.0, 12.0, 0.0, 20.0 ]\n*/\nfunction mapBy2( N, x, strideX, offsetX, xget, y, strideY, offsetY, yget, z, strideZ, offsetZ, zset, fcn, clbk, thisArg ) { // eslint-disable-line max-len, max-params\n\tvar args;\n\tvar o;\n\tvar a;\n\tvar v;\n\tvar i;\n\tif ( N <= 0 ) {\n\t\treturn z;\n\t}\n\to = [ offsetX, offsetY, offsetZ ];\n\ta = [ x, y, z ];\n\targs = [ 0, 0 ];\n\tfor ( i = 0; i < N; i++ ) {\n\t\targs[ 0 ] = xget( x, o[ 0 ] );\n\t\targs[ 1 ] = yget( y, o[ 1 ] );\n\t\tv = clbk.call( thisArg, args, i, o, a );\n\t\tif ( v !== void 0 ) {\n\t\t\tzset( z, o[ 2 ], fcn( v[ 0 ], v[ 1 ] ) );\n\t\t}\n\t\to[ 0 ] += strideX;\n\t\to[ 1 ] += strideY;\n\t\to[ 2 ] += strideZ;\n\t}\n\treturn z;\n}\n\n\n// EXPORTS //\n\nexport default mapBy2;\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 isAccessorArray from '@stdlib/array/base/assert/is-accessor-array';\nimport accessorGetter from '@stdlib/array/base/accessor-getter';\nimport accessorSetter from '@stdlib/array/base/accessor-setter';\nimport getter from '@stdlib/array/base/getter';\nimport setter from '@stdlib/array/base/setter';\nimport dtype from '@stdlib/array/dtype';\nimport strided from './map.js';\nimport accessors from './accessors.js';\n\n\n// MAIN //\n\n/**\n* Applies a binary function to each element retrieved from a strided input array according to a callback function and assigns results to a strided output array.\n*\n* @private\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 - input array/collection\n* @param {integer} strideY - `y` stride length\n* @param {Collection} z - destination array/collection\n* @param {integer} strideZ - `z` stride length\n* @param {Function} fcn - binary function to apply to callback return values\n* @param {Callback} clbk - callback function which returns an array-like object containing two values\n* @param {*} [thisArg] - callback execution context\n* @returns {Collection} `z`\n*\n* @example\n* import add from '@stdlib/math/base/ops/add';\n*\n* function accessor( values ) {\n* values[ 0 ] *= 2.0;\n* values[ 1 ] *= 2.0;\n* return values;\n* }\n*\n* var x = [ 1.0, -2.0, 3.0, -4.0, 5.0 ];\n* var y = [ 1.0, 2.0, 3.0, 4.0, 5.0 ];\n* var z = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* mapBy2( x.length, x, 1, y, 1, z, 1, add, accessor );\n*\n* console.log( z );\n* // => [ 4.0, 0.0, 12.0, 0.0, 20.0 ]\n*/\nfunction mapBy2( N, x, strideX, y, strideY, z, strideZ, fcn, clbk, thisArg ) {\n\tvar xget;\n\tvar yget;\n\tvar zset;\n\n\tif ( isAccessorArray( x ) ) {\n\t\txget = accessorGetter( dtype( x ) );\n\t}\n\tif ( isAccessorArray( y ) ) {\n\t\tyget = accessorGetter( dtype( y ) );\n\t}\n\tif ( isAccessorArray( z ) ) {\n\t\tzset = accessorSetter( dtype( z ) );\n\t}\n\tif ( xget || yget || zset ) {\n\t\txget = xget || getter( dtype( x ) );\n\t\tyget = yget || getter( dtype( y ) );\n\t\tzset = zset || setter( dtype( z ) );\n\t\treturn accessors( N, x, strideX, xget, y, strideY, yget, z, strideZ, zset, fcn, clbk, thisArg ); // eslint-disable-line max-len\n\t}\n\treturn strided( N, x, strideX, y, strideY, z, strideZ, fcn, clbk, thisArg );\n}\n\n\n// EXPORTS //\n\nexport default mapBy2;\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 stride2offset from './../../../base/stride2offset';\nimport ndarray from './accessors.ndarray.js';\n\n\n// MAIN //\n\n/**\n* Applies a binary function to each element retrieved from a strided input array according to a callback function and assigns results to a strided output array.\n*\n* @private\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Collection} x - input array/collection\n* @param {integer} strideX - `x` stride length\n* @param {Function} xget - accessor for retrieving elements in `x`\n* @param {Collection} y - input array/collection\n* @param {integer} strideY - `y` stride length\n* @param {Function} yget - accessor for retrieving elements in `y`\n* @param {Collection} z - destination array/collection\n* @param {integer} strideZ - `z` stride length\n* @param {Function} zset - accessor for setting elements in `z`\n* @param {Function} fcn - binary function to apply to callback return values\n* @param {Callback} clbk - callback function which returns an array-like object containing two values\n* @param {*} [thisArg] - callback execution context\n* @returns {Collection} `z`\n*\n* @example\n* import add from '@stdlib/math/base/ops/add';\n*\n* function accessor( values ) {\n* return values;\n* }\n*\n* function get( buf, idx ) {\n* return buf[ idx ] * 2.0;\n* }\n*\n* function set( buf, idx, value ) {\n* buf[ idx ] = value;\n* }\n*\n* var x = [ 1.0, -2.0, 3.0, -4.0, 5.0 ];\n* var y = [ 1.0, 2.0, 3.0, 4.0, 5.0 ];\n* var z = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* mapBy2( x.length, x, 1, get, y, 1, get, z, 1, set, add, accessor );\n*\n* console.log( z );\n* // => [ 4.0, 0.0, 12.0, 0.0, 20.0 ]\n*/\nfunction mapBy2( N, x, strideX, xget, y, strideY, yget, z, strideZ, zset, fcn, clbk, thisArg ) { // eslint-disable-line max-len, max-params\n\treturn ndarray( N, x, strideX, stride2offset( N, strideX ), xget, y, strideY, stride2offset( N, strideY ), yget, z, strideZ, stride2offset( N, strideZ ), zset, fcn, clbk, thisArg ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default mapBy2;\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 stride2offset from './../../../base/stride2offset';\nimport ndarray from './map.ndarray.js';\n\n\n// MAIN //\n\n/**\n* Applies a binary function to each element retrieved from a strided input array according to a callback function and assigns results to a strided output array.\n*\n* @private\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 - input array/collection\n* @param {integer} strideY - `y` stride length\n* @param {Collection} z - destination array/collection\n* @param {integer} strideZ - `z` stride length\n* @param {Function} fcn - binary function to apply to callback return values\n* @param {Callback} clbk - callback function which returns an array-like object containing two values\n* @param {*} [thisArg] - callback execution context\n* @returns {Collection} `z`\n*\n* @example\n* import add from '@stdlib/math/base/ops/add';\n*\n* function accessor( values ) {\n* values[ 0 ] *= 2.0;\n* values[ 1 ] *= 2.0;\n* return values;\n* }\n*\n* var x = [ 1.0, -2.0, 3.0, -4.0, 5.0 ];\n* var y = [ 1.0, 2.0, 3.0, 4.0, 5.0 ];\n* var z = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* mapBy2( x.length, x, 1, y, 1, z, 1, add, accessor );\n*\n* console.log( z );\n* // => [ 4.0, 0.0, 12.0, 0.0, 20.0 ]\n*/\nfunction mapBy2( N, x, strideX, y, strideY, z, strideZ, fcn, clbk, thisArg ) {\n\treturn ndarray( N, x, strideX, stride2offset( N, strideX ), y, strideY, stride2offset( N, strideY ), z, strideZ, stride2offset( N, strideZ ), fcn, clbk, thisArg ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default mapBy2;\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 isAccessorArray from '@stdlib/array/base/assert/is-accessor-array';\nimport accessorGetter from '@stdlib/array/base/accessor-getter';\nimport accessorSetter from '@stdlib/array/base/accessor-setter';\nimport getter from '@stdlib/array/base/getter';\nimport setter from '@stdlib/array/base/setter';\nimport dtype from '@stdlib/array/dtype';\nimport strided from './map.ndarray.js';\nimport accessors from './accessors.ndarray.js';\n\n\n// MAIN //\n\n/**\n* Applies a binary function to each element retrieved from a strided input array according to a callback function and assigns results to a strided output array.\n*\n* @private\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 - input array/collection\n* @param {integer} strideY - `y` stride length\n* @param {NonNegativeInteger} offsetY - starting `y` index\n* @param {Collection} z - destination array/collection\n* @param {integer} strideZ - `z` stride length\n* @param {NonNegativeInteger} offsetZ - starting `z` index\n* @param {Function} fcn - binary function to apply to callback return values\n* @param {Callback} clbk - callback function which returns an array-like object containing two values\n* @param {*} [thisArg] - callback execution context\n* @returns {Collection} `z`\n*\n* @example\n* import add from '@stdlib/math/base/ops/add';\n*\n* function accessor( values ) {\n* values[ 0 ] *= 2.0;\n* values[ 1 ] *= 2.0;\n* return values;\n* }\n*\n* var x = [ 1.0, -2.0, 3.0, -4.0, 5.0 ];\n* var y = [ 1.0, 2.0, 3.0, 4.0, 5.0 ];\n* var z = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* mapBy2( x.length, x, 1, 0, y, 1, 0, z, 1, 0, add, accessor );\n*\n* console.log( z );\n* // => [ 4.0, 0.0, 12.0, 0.0, 20.0 ]\n*/\nfunction mapBy2( N, x, strideX, offsetX, y, strideY, offsetY, z, strideZ, offsetZ, fcn, clbk, thisArg ) { // eslint-disable-line max-len, max-params\n\tvar xget;\n\tvar yget;\n\tvar zset;\n\n\tif ( isAccessorArray( x ) ) {\n\t\txget = accessorGetter( dtype( x ) );\n\t}\n\tif ( isAccessorArray( y ) ) {\n\t\tyget = accessorGetter( dtype( y ) );\n\t}\n\tif ( isAccessorArray( z ) ) {\n\t\tzset = accessorSetter( dtype( z ) );\n\t}\n\tif ( xget || yget || zset ) {\n\t\txget = xget || getter( dtype( x ) );\n\t\tyget = yget || getter( dtype( y ) );\n\t\tzset = zset || setter( dtype( z ) );\n\t\treturn accessors( N, x, strideX, offsetX, xget, y, strideY, offsetY, yget, z, strideZ, offsetZ, zset, fcn, clbk, thisArg ); // eslint-disable-line max-len\n\t}\n\treturn strided( N, x, strideX, offsetX, y, strideY, offsetY, z, strideZ, offsetZ, fcn, clbk, thisArg ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default mapBy2;\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/**\n* Apply a binary function to each pair of elements retrieved from strided input arrays according to a callback function and assign results to a strided output array.\n*\n* @module @stdlib/strided/base/map-by2\n*\n* @example\n* import add from '@stdlib/math/base/ops/add';\n* import mapBy2 from '@stdlib/strided/base/map-by2';\n*\n* function accessor( values ) {\n* values[ 0 ] *= 2.0;\n* values[ 1 ] *= 2.0;\n* return values;\n* }\n*\n* var x = [ 1.0, -2.0, 3.0, -4.0, 5.0 ];\n* var y = [ 1.0, 2.0, 3.0, 4.0, 5.0 ];\n* var z = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* mapBy2( x.length, x, 1, y, 1, z, 1, add, accessor );\n*\n* console.log( z );\n* // => [ 4.0, 0.0, 12.0, 0.0, 20.0 ]\n*\n* @example\n* import add from '@stdlib/math/base/ops/add';\n* import mapBy2 from '@stdlib/strided/base/map-by2';\n*\n* function accessor( values ) {\n* values[ 0 ] *= 2.0;\n* values[ 1 ] *= 2.0;\n* return values;\n* }\n*\n* var x = [ 1.0, -2.0, 3.0, -4.0, 5.0 ];\n* var y = [ 1.0, 2.0, 3.0, 4.0, 5.0 ];\n* var z = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* mapBy2.ndarray( x.length, x, 1, 0, y, 1, 0, z, 1, 0, add, accessor );\n*\n* console.log( z );\n* // => [ 4.0, 0.0, 12.0, 0.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'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) 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) 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* Element-wise multiplication of two strided arrays.\n*\n* @module @stdlib/math/strided/ops/mul\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import mul from '@stdlib/math/strided/ops/mul';\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*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import mul from '@stdlib/math/strided/ops/mul';\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.ndarray( 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*/\n\n// MODULES //\n\nvar join = require( 'path' ).join;\nimport tryRequire from '@stdlib/utils/try-require';\nimport javascript from './main.js';\n\n\n// MAIN //\n\nvar main;\nvar tmp = tryRequire( join( __dirname, './native.js' ) );\nif ( tmp instanceof Error ) {\n\tmain = javascript;\n} else {\n\tmain = tmp;\n}\n\n\n// EXPORTS //\n\nexport default main;\n\n// exports: { \"ndarray\": \"main.ndarray\" }\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) 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) 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) 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* Element-wise subtraction of two strided arrays.\n*\n* @module @stdlib/math/strided/ops/sub\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import sub from '@stdlib/math/strided/ops/sub';\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*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import sub from '@stdlib/math/strided/ops/sub';\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.ndarray( 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*/\n\n// MODULES //\n\nvar join = require( 'path' ).join;\nimport tryRequire from '@stdlib/utils/try-require';\nimport javascript from './main.js';\n\n\n// MAIN //\n\nvar main;\nvar tmp = tryRequire( join( __dirname, './native.js' ) );\nif ( tmp instanceof Error ) {\n\tmain = javascript;\n} else {\n\tmain = tmp;\n}\n\n\n// EXPORTS //\n\nexport default main;\n\n// exports: { \"ndarray\": \"main.ndarray\" }\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) 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// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a strided input array according to a callback function and assigns results to a strided output array.\n*\n* @private\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 {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {Collection} `y`\n*\n* @example\n* import abs from '@stdlib/math/base/special/abs';\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* mapBy( x.length, x, 1, 0, y, 1, 0, abs, accessor );\n*\n* console.log( y );\n* // => [ 2.0, 4.0, 6.0, 8.0, 10.0 ]\n*/\nfunction mapBy( N, x, strideX, offsetX, y, strideY, offsetY, fcn, clbk, thisArg ) { // eslint-disable-line max-len\n\tvar ix;\n\tvar iy;\n\tvar v;\n\tvar i;\n\n\tif ( N <= 0 ) {\n\t\treturn y;\n\t}\n\tix = offsetX;\n\tiy = offsetY;\n\tfor ( i = 0; i < N; i++ ) {\n\t\tv = clbk.call( thisArg, x[ ix ], i, [ ix, iy ], [ x, y ] );\n\t\tif ( v !== void 0 ) {\n\t\t\ty[ iy ] = fcn( v );\n\t\t}\n\t\tix += strideX;\n\t\tiy += strideY;\n\t}\n\treturn y;\n}\n\n\n// EXPORTS //\n\nexport default mapBy;\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* Applies a unary function to each element retrieved from a strided input array according to a callback function and assigns results to a strided output array.\n*\n* @private\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 {Function} xget - accessor for retrieving elements in `x`\n* @param {Collection} y - destination array/collection\n* @param {integer} strideY - `y` stride length\n* @param {NonNegativeInteger} offsetY - starting `y` index\n* @param {Function} yset - accessor for setting elements in `x`\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {Collection} `y`\n*\n* @example\n* import abs from '@stdlib/math/base/special/abs';\n*\n* function accessor( v ) {\n* return v;\n* }\n*\n* function xget( buf, idx ) {\n* return buf[ idx ] * 2.0;\n* }\n*\n* function yset( buf, idx, value ) {\n* buf[ idx ] = value;\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* mapBy( x.length, x, 1, 0, xget, y, 1, 0, yset, abs, accessor );\n*\n* console.log( y );\n* // => [ 2.0, 4.0, 6.0, 8.0, 10.0 ]\n*/\nfunction mapBy( N, x, strideX, offsetX, xget, y, strideY, offsetY, yset, fcn, clbk, thisArg ) { // eslint-disable-line max-len, max-params\n\tvar ix;\n\tvar iy;\n\tvar v;\n\tvar i;\n\n\tif ( N <= 0 ) {\n\t\treturn y;\n\t}\n\tix = offsetX;\n\tiy = offsetY;\n\tfor ( i = 0; i < N; i++ ) {\n\t\tv = clbk.call( thisArg, xget( x, ix ), i, [ ix, iy ], [ x, y ] );\n\t\tif ( v !== void 0 ) {\n\t\t\tyset( y, iy, fcn( v ) );\n\t\t}\n\t\tix += strideX;\n\t\tiy += strideY;\n\t}\n\treturn y;\n}\n\n\n// EXPORTS //\n\nexport default mapBy;\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 isAccessorArray from '@stdlib/array/base/assert/is-accessor-array';\nimport accessorGetter from '@stdlib/array/base/accessor-getter';\nimport accessorSetter from '@stdlib/array/base/accessor-setter';\nimport getter from '@stdlib/array/base/getter';\nimport setter from '@stdlib/array/base/setter';\nimport dtype from '@stdlib/array/dtype';\nimport strided from './map.js';\nimport accessors from './accessors.js';\n\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a strided input array according to a callback function and assigns results to a strided output array.\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 {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {Collection} `y`\n*\n* @example\n* import abs from '@stdlib/math/base/special/abs';\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* mapBy( x.length, x, 1, y, 1, abs, accessor );\n*\n* console.log( y );\n* // => [ 2.0, 4.0, 6.0, 8.0, 10.0 ]\n*/\nfunction mapBy( N, x, strideX, y, strideY, fcn, clbk, thisArg ) {\n\tvar xget;\n\tvar yset;\n\n\tif ( isAccessorArray( x ) ) {\n\t\txget = accessorGetter( dtype( x ) );\n\t}\n\tif ( isAccessorArray( y ) ) {\n\t\tyset = accessorSetter( dtype( y ) );\n\t}\n\tif ( xget || yset ) {\n\t\txget = xget || getter( dtype( x ) );\n\t\tyset = yset || setter( dtype( y ) );\n\t\treturn accessors( N, x, strideX, xget, y, strideY, yset, fcn, clbk, thisArg ); // eslint-disable-line max-len\n\t}\n\treturn strided( N, x, strideX, y, strideY, fcn, clbk, thisArg );\n}\n\n\n// EXPORTS //\n\nexport default mapBy;\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 stride2offset from './../../../base/stride2offset';\nimport ndarray from './accessors.ndarray.js';\n\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a strided input array according to a callback function and assigns results to a strided output array.\n*\n* @private\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Collection} x - input array/collection\n* @param {integer} strideX - `x` stride length\n* @param {Function} xget - accessor for retrieving elements in `x`\n* @param {Collection} y - destination array/collection\n* @param {integer} strideY - `y` stride length\n* @param {Function} yset - accessor for setting elements in `x`\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {Collection} `y`\n*\n* @example\n* import abs from '@stdlib/math/base/special/abs';\n*\n* function accessor( v ) {\n* return v;\n* }\n*\n* function xget( buf, idx ) {\n* return buf[ idx ] * 2.0;\n* }\n*\n* function yset( buf, idx, value ) {\n* buf[ idx ] = value;\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* mapBy( x.length, x, 1, xget, y, 1, yset, abs, accessor );\n*\n* console.log( y );\n* // => [ 2.0, 4.0, 6.0, 8.0, 10.0 ]\n*/\nfunction mapBy( N, x, strideX, xget, y, strideY, yset, fcn, clbk, thisArg ) {\n\treturn ndarray( N, x, strideX, stride2offset( N, strideX ), xget, y, strideY, stride2offset( N, strideY ), yset, fcn, clbk, thisArg ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default mapBy;\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 stride2offset from './../../../base/stride2offset';\nimport ndarray from './map.ndarray.js';\n\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a strided input array according to a callback function and assigns results to a strided output array.\n*\n* @private\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 {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {Collection} `y`\n*\n* @example\n* import abs from '@stdlib/math/base/special/abs';\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* mapBy( x.length, x, 1, y, 1, abs, accessor );\n*\n* console.log( y );\n* // => [ 2.0, 4.0, 6.0, 8.0, 10.0 ]\n*/\nfunction mapBy( N, x, strideX, y, strideY, fcn, clbk, thisArg ) {\n\treturn ndarray( N, x, strideX, stride2offset( N, strideX ), y, strideY, stride2offset( N, strideY ), fcn, clbk, thisArg ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default mapBy;\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 isAccessorArray from '@stdlib/array/base/assert/is-accessor-array';\nimport accessorGetter from '@stdlib/array/base/accessor-getter';\nimport accessorSetter from '@stdlib/array/base/accessor-setter';\nimport getter from '@stdlib/array/base/getter';\nimport setter from '@stdlib/array/base/setter';\nimport dtype from '@stdlib/array/dtype';\nimport strided from './map.ndarray.js';\nimport accessors from './accessors.ndarray.js';\n\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a strided input array according to a callback function and assigns results to a strided output array.\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 {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {Collection} `y`\n*\n* @example\n* import abs from '@stdlib/math/base/special/abs';\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* mapBy( x.length, x, 1, 0, y, 1, 0, abs, accessor );\n*\n* console.log( y );\n* // => [ 2.0, 4.0, 6.0, 8.0, 10.0 ]\n*/\nfunction mapBy( N, x, strideX, offsetX, y, strideY, offsetY, fcn, clbk, thisArg ) { // eslint-disable-line max-len\n\tvar xget;\n\tvar yset;\n\n\tif ( isAccessorArray( x ) ) {\n\t\txget = accessorGetter( dtype( x ) );\n\t}\n\tif ( isAccessorArray( y ) ) {\n\t\tyset = accessorSetter( dtype( y ) );\n\t}\n\tif ( xget || yset ) {\n\t\txget = xget || getter( dtype( x ) );\n\t\tyset = yset || setter( dtype( y ) );\n\t\treturn accessors( N, x, strideX, offsetX, xget, y, strideY, offsetY, yset, fcn, clbk, thisArg ); // eslint-disable-line max-len\n\t}\n\treturn strided( N, x, strideX, offsetX, y, strideY, offsetY, fcn, clbk, thisArg ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default mapBy;\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* Apply a unary function to each element retrieved from a strided input array according to a callback function and assign results to a strided output array.\n*\n* @module @stdlib/strided/base/map-by\n*\n* @example\n* import abs from '@stdlib/math/base/special/abs';\n* import mapBy from '@stdlib/strided/base/map-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* mapBy( x.length, x, 1, y, 1, abs, accessor );\n*\n* console.log( y );\n* // => [ 2.0, 4.0, 6.0, 8.0, 10.0 ]\n*\n* @example\n* import abs from '@stdlib/math/base/special/abs';\n* import mapBy from '@stdlib/strided/base/map-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* mapBy.ndarray( x.length, x, 1, 0, y, 1, 0, abs, 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/**\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 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 for each element in a strided array `x` and assign the results to elements in a strided array `y`.\n*\n* @module @stdlib/math/strided/special/abs2\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import abs2 from '@stdlib/math/strided/special/abs2';\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*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import abs2 from '@stdlib/math/strided/special/abs2';\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.ndarray( x.length, 'float64', x, 1, 0, 'float64', y, 1, 0 );\n* // y => [ 4.0, 1.0, 9.0, 25.0, 16.0 ]\n*/\n\n// MODULES //\n\nvar join = require( 'path' ).join;\nimport tryRequire from '@stdlib/utils/try-require';\nimport javascript from './main.js';\n\n\n// MAIN //\n\nvar main;\nvar tmp = tryRequire( join( __dirname, './native.js' ) );\nif ( tmp instanceof Error ) {\n\tmain = javascript;\n} else {\n\tmain = tmp;\n}\n\n\n// EXPORTS //\n\nexport default main;\n\n// exports: { \"ndarray\": \"main.ndarray\" }\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/**\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) 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) 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 cube root of each element in a strided array `x` and assign the results to elements in a strided array `y`.\n*\n* @module @stdlib/math/strided/special/cbrt\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import cbrt from '@stdlib/math/strided/special/cbrt';\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*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import cbrt from '@stdlib/math/strided/special/cbrt';\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.ndarray( x.length, 'float64', x, 1, 0, 'float64', y, 1, 0 );\n* // y => [ 0.0, 1.0, 2.0, 3.0, 4.0 ]\n*/\n\n// MODULES //\n\nvar join = require( 'path' ).join;\nimport tryRequire from '@stdlib/utils/try-require';\nimport javascript from './main.js';\n\n\n// MAIN //\n\nvar main;\nvar tmp = tryRequire( join( __dirname, './native.js' ) );\nif ( tmp instanceof Error ) {\n\tmain = javascript;\n} else {\n\tmain = tmp;\n}\n\n\n// EXPORTS //\n\nexport default main;\n\n// exports: { \"ndarray\": \"main.ndarray\" }\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) 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) 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) 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* Round each element in a strided array `x` toward positive infinity and assign the results to elements in a strided array `y`.\n*\n* @module @stdlib/math/strided/special/ceil\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import ceil from '@stdlib/math/strided/special/ceil';\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*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import ceil from '@stdlib/math/strided/special/ceil';\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.ndarray( x.length, 'float64', x, 1, 0, 'float64', y, 1, 0 );\n* // y => [ 2.0, 3.0, -3.0, 4.0, -5.0 ]\n*/\n\n// MODULES //\n\nvar join = require( 'path' ).join;\nimport tryRequire from '@stdlib/utils/try-require';\nimport javascript from './main.js';\n\n\n// MAIN //\n\nvar main;\nvar tmp = tryRequire( join( __dirname, './native.js' ) );\nif ( tmp instanceof Error ) {\n\tmain = javascript;\n} else {\n\tmain = tmp;\n}\n\n\n// EXPORTS //\n\nexport default main;\n\n// exports: { \"ndarray\": \"main.ndarray\" }\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) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Applies a unary function to a double-precision floating-point strided input array and assigns results to a double-precision floating-point strided output 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 {Function} fcn - unary function to apply\n* @returns {Float64Array} `y`\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var y = new Float64Array( x.length );\n*\n* dmap( x.length, x, 1, 0, y, 1, 0, scale );\n*\n* console.log( y );\n* // => [ 10.0, 20.0, 30.0, 40.0, 50.0 ]\n*/\nfunction dmap( N, x, strideX, offsetX, y, strideY, offsetY, fcn ) {\n\tvar ix;\n\tvar iy;\n\tvar i;\n\tif ( N <= 0 ) {\n\t\treturn y;\n\t}\n\tix = offsetX;\n\tiy = offsetY;\n\tfor ( i = 0; i < N; i++ ) {\n\t\ty[ iy ] = fcn( x[ ix ] );\n\t\tix += strideX;\n\t\tiy += strideY;\n\t}\n\treturn y;\n}\n\n\n// EXPORTS //\n\nexport default dmap;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport stride2offset from './../../../base/stride2offset';\nimport ndarray from './ndarray.js';\n\n\n// MAIN //\n\n/**\n* Applies a unary function to a double-precision floating-point strided input array and assigns results to a double-precision floating-point strided output 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 {Function} fcn - unary function to apply\n* @returns {Float64Array} `y`\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var y = new Float64Array( x.length );\n*\n* dmap( x.length, x, 1, y, 1, scale );\n*\n* console.log( y );\n* // => [ 10.0, 20.0, 30.0, 40.0, 50.0 ]\n*/\nfunction dmap( N, x, strideX, y, strideY, fcn ) {\n\treturn ndarray( N, x, strideX, stride2offset( N, strideX ), y, strideY, stride2offset( N, strideY ), fcn ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default dmap;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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) 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) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Apply a unary function to a double-precision floating-point strided input array and assign results to a double-precision floating-point strided output array.\n*\n* @module @stdlib/strided/base/dmap\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import dmap from '@stdlib/strided/base/dmap';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var y = new Float64Array( x.length );\n*\n* dmap( x.length, x, 1, y, 1, scale );\n*\n* console.log( y );\n* // => [ 10.0, 20.0, 30.0, 40.0, 50.0 ]\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import dmap from '@stdlib/strided/base/dmap';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var y = new Float64Array( x.length );\n*\n* dmap.ndarray( x.length, x, 1, 0, y, 1, 0, scale );\n*\n* console.log( y );\n* // => [ 10.0, 20.0, 30.0, 40.0, 50.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) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 for each element in a double-precision floating-point strided array `x` and assign the results to elements in a double-precision floating-point strided array `y`.\n*\n* @module @stdlib/math/strided/special/dabs\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import dabs from '@stdlib/math/strided/special/dabs';\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*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import dabs from '@stdlib/math/strided/special/dabs';\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.ndarray( x.length, x, 1, 0, y, 1, 0 );\n* // y => [ 1.0, 2.0, 3.0, 4.0, 5.0 ]\n*/\n\n// MODULES //\n\nvar join = require( 'path' ).join;\nimport tryRequire from '@stdlib/utils/try-require';\nimport javascript from './main.js';\n\n\n// MAIN //\n\nvar main;\nvar tmp = tryRequire( join( __dirname, './native.js' ) );\nif ( tmp instanceof Error ) {\n\tmain = javascript;\n} else {\n\tmain = tmp;\n}\n\n\n// EXPORTS //\n\nexport default main;\n\n// exports: { \"ndarray\": \"main.ndarray\" }\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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 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/**\n* Compute 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* @module @stdlib/math/strided/special/dabs2\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import dabs2 from '@stdlib/math/strided/special/dabs2';\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*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import dabs2 from '@stdlib/math/strided/special/dabs2';\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.ndarray( x.length, x, 1, 0, y, 1, 0 );\n* // y => [ 1.0, 4.0, 9.0, 16.0, 25.0 ]\n*/\n\n// MODULES //\n\nvar join = require( 'path' ).join;\nimport tryRequire from '@stdlib/utils/try-require';\nimport javascript from './main.js';\n\n\n// MAIN //\n\nvar main;\nvar tmp = tryRequire( join( __dirname, './native.js' ) );\nif ( tmp instanceof Error ) {\n\tmain = javascript;\n} else {\n\tmain = tmp;\n}\n\n\n// EXPORTS //\n\nexport default main;\n\n// exports: { \"ndarray\": \"main.ndarray\" }\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 in a double-precision floating-point strided array `x` and assign the results to elements in a double-precision floating-point strided array `y`.\n*\n* @module @stdlib/math/strided/special/dcbrt\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import dcbrt from '@stdlib/math/strided/special/dcbrt';\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*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import dcbrt from '@stdlib/math/strided/special/dcbrt';\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.ndarray( x.length, x, 1, 0, y, 1, 0 );\n* // y => [ 0.0, 1.0, 2.0, 3.0, 4.0 ]\n*/\n\n// MODULES //\n\nvar join = require( 'path' ).join;\nimport tryRequire from '@stdlib/utils/try-require';\nimport javascript from './main.js';\n\n\n// MAIN //\n\nvar main;\nvar tmp = tryRequire( join( __dirname, './native.js' ) );\nif ( tmp instanceof Error ) {\n\tmain = javascript;\n} else {\n\tmain = tmp;\n}\n\n\n// EXPORTS //\n\nexport default main;\n\n// exports: { \"ndarray\": \"main.ndarray\" }\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) 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/**\n* Round each element in a double-precision floating-point strided array `x` toward positive infinity and assign the results to elements in a double-precision floating-point strided array `y`.\n*\n* @module @stdlib/math/strided/special/dceil\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import dceil from '@stdlib/math/strided/special/dceil';\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*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import dceil from '@stdlib/math/strided/special/dceil';\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.ndarray( x.length, x, 1, 0, y, 1, 0 );\n* // y => [ 2.0, 3.0, -3.0, 4.0, -5.0 ]\n*/\n\n// MODULES //\n\nvar join = require( 'path' ).join;\nimport tryRequire from '@stdlib/utils/try-require';\nimport javascript from './main.js';\n\n\n// MAIN //\n\nvar main;\nvar tmp = tryRequire( join( __dirname, './native.js' ) );\nif ( tmp instanceof Error ) {\n\tmain = javascript;\n} else {\n\tmain = tmp;\n}\n\n\n// EXPORTS //\n\nexport default main;\n\n// exports: { \"ndarray\": \"main.ndarray\" }\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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'use strict';\n\n/**\n* Convert each element in a double-precision floating-point strided array `x` from degrees to radians and assign the results to elements in a double-precision floating-point strided array `y`.\n*\n* @module @stdlib/math/strided/special/ddeg2rad\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import ddeg2rad from '@stdlib/math/strided/special/ddeg2rad';\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*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import ddeg2rad from '@stdlib/math/strided/special/ddeg2rad';\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.ndarray( x.length, x, 1, 0, y, 1, 0 );\n* // y => [ 0.0, ~0.524, ~0.785, ~1.047, ~1.571 ]\n*/\n\n// MODULES //\n\nvar join = require( 'path' ).join;\nimport tryRequire from '@stdlib/utils/try-require';\nimport javascript from './main.js';\n\n\n// MAIN //\n\nvar main;\nvar tmp = tryRequire( join( __dirname, './native.js' ) );\nif ( tmp instanceof Error ) {\n\tmain = javascript;\n} else {\n\tmain = tmp;\n}\n\n\n// EXPORTS //\n\nexport default main;\n\n// exports: { \"ndarray\": \"main.ndarray\" }\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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) 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) 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* Convert each element in a strided array `x` from degrees to radians and assign the results to elements in a strided array `y`.\n*\n* @module @stdlib/math/strided/special/deg2rad\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import deg2rad from '@stdlib/math/strided/special/deg2rad';\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*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import deg2rad from '@stdlib/math/strided/special/deg2rad';\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.ndarray( x.length, 'float64', x, 1, 0, 'float64', y, 1, 0 );\n* // y => [ 0.0, ~0.524, ~0.785, ~1.571, ~2.094 ]\n*/\n\n// MODULES //\n\nvar join = require( 'path' ).join;\nimport tryRequire from '@stdlib/utils/try-require';\nimport javascript from './main.js';\n\n\n// MAIN //\n\nvar main;\nvar tmp = tryRequire( join( __dirname, './native.js' ) );\nif ( tmp instanceof Error ) {\n\tmain = javascript;\n} else {\n\tmain = tmp;\n}\n\n\n// EXPORTS //\n\nexport default main;\n\n// exports: { \"ndarray\": \"main.ndarray\" }\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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 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/**\n* Round each element in a double-precision floating-point strided array `x` toward negative infinity and assign the results to elements in a double-precision floating-point strided array `y`.\n*\n* @module @stdlib/math/strided/special/dfloor\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import dfloor from '@stdlib/math/strided/special/dfloor';\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*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import dfloor from '@stdlib/math/strided/special/dfloor';\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.ndarray( x.length, x, 1, 0, y, 1, 0 );\n* // y => [ -2.0, 1.0, 3.0, 4.0, 5.0 ]\n*/\n\n// MODULES //\n\nvar join = require( 'path' ).join;\nimport tryRequire from '@stdlib/utils/try-require';\nimport javascript from './main.js';\n\n\n// MAIN //\n\nvar main;\nvar tmp = tryRequire( join( __dirname, './native.js' ) );\nif ( tmp instanceof Error ) {\n\tmain = javascript;\n} else {\n\tmain = tmp;\n}\n\n\n// EXPORTS //\n\nexport default main;\n\n// exports: { \"ndarray\": \"main.ndarray\" }\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 multiplicative inverse for each element in a double-precision floating-point strided array `x` and assign the results to elements in a double-precision floating-point strided array `y`.\n*\n* @module @stdlib/math/strided/special/dinv\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import dinv from '@stdlib/math/strided/special/dinv';\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*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import dinv from '@stdlib/math/strided/special/dinv';\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.ndarray( x.length, x, 1, 0, y, 1, 0 );\n* // y => [ -0.05, -1.0, 0.5, 0.25, 0.1 ]\n*/\n\n// MODULES //\n\nvar join = require( 'path' ).join;\nimport tryRequire from '@stdlib/utils/try-require';\nimport javascript from './main.js';\n\n\n// MAIN //\n\nvar main;\nvar tmp = tryRequire( join( __dirname, './native.js' ) );\nif ( tmp instanceof Error ) {\n\tmain = javascript;\n} else {\n\tmain = tmp;\n}\n\n\n// EXPORTS //\n\nexport default main;\n\n// exports: { \"ndarray\": \"main.ndarray\" }\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Applies a unary function to a double-precision floating-point strided input array according to a strided mask array and assigns results to a double-precision floating-point strided output 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 {Uint8Array} mask - mask array\n* @param {integer} strideMask - `mask` stride length\n* @param {NonNegativeInteger} offsetMask - starting `mask` index\n* @param {Float64Array} y - destination array\n* @param {integer} strideY - `y` stride length\n* @param {NonNegativeInteger} offsetY - starting `y` index\n* @param {Function} fcn - unary function to apply\n* @returns {Float64Array} `y`\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import Uint8Array from '@stdlib/array/uint8';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var m = new Uint8Array( [ 0, 0, 1, 0, 0 ] );\n* var y = new Float64Array( x.length );\n*\n* dmskmap( x.length, x, 1, 0, m, 1, 0, y, 1, 0, scale );\n*\n* console.log( y );\n* // => [ 10.0, 20.0, 0.0, 40.0, 50.0 ]\n*/\nfunction dmskmap( N, x, strideX, offsetX, mask, strideMask, offsetMask, y, strideY, offsetY, fcn ) { // eslint-disable-line max-len, max-params\n\tvar ix;\n\tvar im;\n\tvar iy;\n\tvar i;\n\tif ( N <= 0 ) {\n\t\treturn y;\n\t}\n\tix = offsetX;\n\tim = offsetMask;\n\tiy = offsetY;\n\tfor ( i = 0; i < N; i++ ) {\n\t\tif ( mask[ im ] === 0 ) {\n\t\t\ty[ iy ] = fcn( x[ ix ] );\n\t\t}\n\t\tix += strideX;\n\t\tim += strideMask;\n\t\tiy += strideY;\n\t}\n\treturn y;\n}\n\n\n// EXPORTS //\n\nexport default dmskmap;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport stride2offset from './../../../base/stride2offset';\nimport ndarray from './ndarray.js';\n\n\n// MAIN //\n\n/**\n* Applies a unary function to a double-precision floating-point strided input array according to a strided mask array and assigns results to a double-precision floating-point strided output 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 {Uint8Array} mask - mask array\n* @param {integer} strideMask - `mask` stride length\n* @param {Float64Array} y - destination array\n* @param {integer} strideY - `y` stride length\n* @param {Function} fcn - unary function to apply\n* @returns {Float64Array} `y`\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import Uint8Array from '@stdlib/array/uint8';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var m = new Uint8Array( [ 0, 0, 1, 0, 0 ] );\n* var y = new Float64Array( x.length );\n*\n* dmskmap( x.length, x, 1, m, 1, y, 1, scale );\n*\n* console.log( y );\n* // => [ 10.0, 20.0, 0.0, 40.0, 50.0 ]\n*/\nfunction dmskmap( N, x, strideX, mask, strideMask, y, strideY, fcn ) {\n\treturn ndarray( N, x, strideX, stride2offset( N, strideX ), mask, strideMask, stride2offset( N, strideMask ), y, strideY, stride2offset( N, strideY ), fcn ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default dmskmap;\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) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Apply a unary function to a double-precision floating-point strided input array according to a strided mask array and assign results to a double-precision floating-point strided output array.\n*\n* @module @stdlib/strided/base/dmskmap\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import Uint8Array from '@stdlib/array/uint8';\n* import dmskmap from '@stdlib/strided/base/dmskmap';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var m = new Uint8Array( [ 0, 0, 1, 0, 0 ] );\n* var y = new Float64Array( x.length );\n*\n* dmskmap( x.length, x, 1, m, 1, y, 1, scale );\n*\n* console.log( y );\n* // => [ 10.0, 20.0, 0.0, 40.0, 50.0 ]\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import Uint8Array from '@stdlib/array/uint8';\n* import dmskmap from '@stdlib/strided/base/dmskmap';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var m = new Uint8Array( [ 0, 0, 1, 0, 0 ] );\n* var y = new Float64Array( x.length );\n*\n* dmskmap.ndarray( x.length, x, 1, 0, m, 1, 0, y, 1, 0, scale );\n*\n* console.log( y );\n* // => [ 10.0, 20.0, 0.0, 40.0, 50.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 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/**\n* Compute the absolute value for each element in a double-precision floating-point strided array `x` according to a strided mask array and assign the results to elements in a double-precision floating-point strided array `y`.\n*\n* @module @stdlib/math/strided/special/dmskabs\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import Uint8Array from '@stdlib/array/uint8';\n* import dmskabs from '@stdlib/math/strided/special/dmskabs';\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*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import Uint8Array from '@stdlib/array/uint8';\n* import dmskabs from '@stdlib/math/strided/special/dmskabs';\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.ndarray( x.length, x, 1, 0, m, 1, 0, y, 1, 0 );\n* // y => [ 2.0, 1.0, 0.0, 5.0, 0.0 ]\n*/\n\n// MODULES //\n\nvar join = require( 'path' ).join;\nimport tryRequire from '@stdlib/utils/try-require';\nimport javascript from './main.js';\n\n\n// MAIN //\n\nvar main;\nvar tmp = tryRequire( join( __dirname, './native.js' ) );\nif ( tmp instanceof Error ) {\n\tmain = javascript;\n} else {\n\tmain = tmp;\n}\n\n\n// EXPORTS //\n\nexport default main;\n\n// exports: { \"ndarray\": \"main.ndarray\" }\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 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/**\n* Compute the squared absolute value for each element in a double-precision floating-point strided array `x` according to a strided mask array and assign the results to elements in a double-precision floating-point strided array `y`.\n*\n* @module @stdlib/math/strided/special/dmskabs2\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import Uint8Array from '@stdlib/array/uint8';\n* import dmskabs2 from '@stdlib/math/strided/special/dmskabs2';\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*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import Uint8Array from '@stdlib/array/uint8';\n* import dmskabs2 from '@stdlib/math/strided/special/dmskabs2';\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.ndarray( x.length, x, 1, 0, m, 1, 0, y, 1, 0 );\n* // y => [ 4.0, 1.0, 0.0, 25.0, 0.0 ]\n*/\n\n// MODULES //\n\nvar join = require( 'path' ).join;\nimport tryRequire from '@stdlib/utils/try-require';\nimport javascript from './main.js';\n\n\n// MAIN //\n\nvar main;\nvar tmp = tryRequire( join( __dirname, './native.js' ) );\nif ( tmp instanceof Error ) {\n\tmain = javascript;\n} else {\n\tmain = tmp;\n}\n\n\n// EXPORTS //\n\nexport default main;\n\n// exports: { \"ndarray\": \"main.ndarray\" }\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 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/**\n* Compute the cube root for each element in a double-precision floating-point strided array `x` according to a strided mask array and assign the results to elements in a double-precision floating-point strided array `y`.\n*\n* @module @stdlib/math/strided/special/dmskcbrt\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import Uint8Array from '@stdlib/array/uint8';\n* import dmskcbrt from '@stdlib/math/strided/special/dmskcbrt';\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*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import Uint8Array from '@stdlib/array/uint8';\n* import dmskcbrt from '@stdlib/math/strided/special/dmskcbrt';\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.ndarray( x.length, x, 1, 0, m, 1, 0, y, 1, 0 );\n* // y => [ 0.0, 1.0, 0.0, 3.0, 0.0 ]\n*/\n\n// MODULES //\n\nvar join = require( 'path' ).join;\nimport tryRequire from '@stdlib/utils/try-require';\nimport javascript from './main.js';\n\n\n// MAIN //\n\nvar main;\nvar tmp = tryRequire( join( __dirname, './native.js' ) );\nif ( tmp instanceof Error ) {\n\tmain = javascript;\n} else {\n\tmain = tmp;\n}\n\n\n// EXPORTS //\n\nexport default main;\n\n// exports: { \"ndarray\": \"main.ndarray\" }\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 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/**\n* Round each element in a double-precision floating-point strided array `x` toward positive infinity according to a strided mask array and assign the results to elements in a double-precision floating-point strided array `y`.\n*\n* @module @stdlib/math/strided/special/dmskceil\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import Uint8Array from '@stdlib/array/uint8';\n* import dmskceil from '@stdlib/math/strided/special/dmskceil';\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*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import Uint8Array from '@stdlib/array/uint8';\n* import dmskceil from '@stdlib/math/strided/special/dmskceil';\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.ndarray( x.length, x, 1, 0, m, 1, 0, y, 1, 0 );\n* // y => [ 2.0, 3.0, 0.0, 4.0, 0.0 ]\n*/\n\n// MODULES //\n\nvar join = require( 'path' ).join;\nimport tryRequire from '@stdlib/utils/try-require';\nimport javascript from './main.js';\n\n\n// MAIN //\n\nvar main;\nvar tmp = tryRequire( join( __dirname, './native.js' ) );\nif ( tmp instanceof Error ) {\n\tmain = javascript;\n} else {\n\tmain = tmp;\n}\n\n\n// EXPORTS //\n\nexport default main;\n\n// exports: { \"ndarray\": \"main.ndarray\" }\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 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/**\n* Convert each element in a double-precision floating-point strided array `x` from degrees to radians according to a strided mask array and assign the results to elements in a double-precision floating-point strided array `y`.\n*\n* @module @stdlib/math/strided/special/dmskdeg2rad\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import Uint8Array from '@stdlib/array/uint8';\n* import dmskdeg2rad from '@stdlib/math/strided/special/dmskdeg2rad';\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*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import Uint8Array from '@stdlib/array/uint8';\n* import dmskdeg2rad from '@stdlib/math/strided/special/dmskdeg2rad';\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.ndarray( x.length, x, 1, 0, m, 1, 0, y, 1, 0 );\n* // y => [ 0.0, ~0.524, 0.0, ~1.047, 0.0 ]\n*/\n\n// MODULES //\n\nvar join = require( 'path' ).join;\nimport tryRequire from '@stdlib/utils/try-require';\nimport javascript from './main.js';\n\n\n// MAIN //\n\nvar main;\nvar tmp = tryRequire( join( __dirname, './native.js' ) );\nif ( tmp instanceof Error ) {\n\tmain = javascript;\n} else {\n\tmain = tmp;\n}\n\n\n// EXPORTS //\n\nexport default main;\n\n// exports: { \"ndarray\": \"main.ndarray\" }\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 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/**\n* Round each element in a double-precision floating-point strided array `x` toward negative infinity according to a strided mask array and assign the results to elements in a double-precision floating-point strided array `y`.\n*\n* @module @stdlib/math/strided/special/dmskfloor\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import Uint8Array from '@stdlib/array/uint8';\n* import dmskfloor from '@stdlib/math/strided/special/dmskfloor';\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*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import Uint8Array from '@stdlib/array/uint8';\n* import dmskfloor from '@stdlib/math/strided/special/dmskfloor';\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.ndarray( x.length, x, 1, 0, m, 1, 0, y, 1, 0 );\n* // y => [ 1.0, 2.0, 0.0, 4.0, 0.0 ]\n*/\n\n// MODULES //\n\nvar join = require( 'path' ).join;\nimport tryRequire from '@stdlib/utils/try-require';\nimport javascript from './main.js';\n\n\n// MAIN //\n\nvar main;\nvar tmp = tryRequire( join( __dirname, './native.js' ) );\nif ( tmp instanceof Error ) {\n\tmain = javascript;\n} else {\n\tmain = tmp;\n}\n\n\n// EXPORTS //\n\nexport default main;\n\n// exports: { \"ndarray\": \"main.ndarray\" }\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 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/**\n* Compute the multiplicative inverse for each element in a double-precision floating-point strided array `x` according to a strided mask array and assign the results to elements in a double-precision floating-point strided array `y`.\n*\n* @module @stdlib/math/strided/special/dmskinv\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import Uint8Array from '@stdlib/array/uint8';\n* import dmskinv from '@stdlib/math/strided/special/dmskinv';\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*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import Uint8Array from '@stdlib/array/uint8';\n* import dmskinv from '@stdlib/math/strided/special/dmskinv';\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.ndarray( x.length, x, 1, 0, m, 1, 0, y, 1, 0 );\n* // y => [ -0.05, -1.0, 0.0, 0.25, 0.0 ]\n*/\n\n// MODULES //\n\nvar join = require( 'path' ).join;\nimport tryRequire from '@stdlib/utils/try-require';\nimport javascript from './main.js';\n\n\n// MAIN //\n\nvar main;\nvar tmp = tryRequire( join( __dirname, './native.js' ) );\nif ( tmp instanceof Error ) {\n\tmain = javascript;\n} else {\n\tmain = tmp;\n}\n\n\n// EXPORTS //\n\nexport default main;\n\n// exports: { \"ndarray\": \"main.ndarray\" }\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 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/**\n* Evaluate the ramp function for each element in a double-precision floating-point strided array `x` according to a strided mask array and assign the results to elements in a double-precision floating-point strided array `y`.\n*\n* @module @stdlib/math/strided/special/dmskramp\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import Uint8Array from '@stdlib/array/uint8';\n* import dmskramp from '@stdlib/math/strided/special/dmskramp';\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*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import Uint8Array from '@stdlib/array/uint8';\n* import dmskramp from '@stdlib/math/strided/special/dmskramp';\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.ndarray( x.length, x, 1, 0, m, 1, 0, y, 1, 0 );\n* // y => [ 1.1, 2.5, 0.0, 4.0, 0.0 ]\n*/\n\n// MODULES //\n\nvar join = require( 'path' ).join;\nimport tryRequire from '@stdlib/utils/try-require';\nimport javascript from './main.js';\n\n\n// MAIN //\n\nvar main;\nvar tmp = tryRequire( join( __dirname, './native.js' ) );\nif ( tmp instanceof Error ) {\n\tmain = javascript;\n} else {\n\tmain = tmp;\n}\n\n\n// EXPORTS //\n\nexport default main;\n\n// exports: { \"ndarray\": \"main.ndarray\" }\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 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/**\n* Compute the reciprocal square root for each element in a double-precision floating-point strided array `x` according to a strided mask array and assign the results to elements in a double-precision floating-point strided array `y`.\n*\n* @module @stdlib/math/strided/special/dmskrsqrt\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import Uint8Array from '@stdlib/array/uint8';\n* import dmskrsqrt from '@stdlib/math/strided/special/dmskrsqrt';\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*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import Uint8Array from '@stdlib/array/uint8';\n* import dmskrsqrt from '@stdlib/math/strided/special/dmskrsqrt';\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.ndarray( x.length, x, 1, 0, m, 1, 0, y, 1, 0 );\n* // y => [ Infinity, 0.5, 0.0, ~0.289, 0.0 ]\n*/\n\n// MODULES //\n\nvar join = require( 'path' ).join;\nimport tryRequire from '@stdlib/utils/try-require';\nimport javascript from './main.js';\n\n\n// MAIN //\n\nvar main;\nvar tmp = tryRequire( join( __dirname, './native.js' ) );\nif ( tmp instanceof Error ) {\n\tmain = javascript;\n} else {\n\tmain = tmp;\n}\n\n\n// EXPORTS //\n\nexport default main;\n\n// exports: { \"ndarray\": \"main.ndarray\" }\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 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/**\n* Compute the principal square root for each element in a double-precision floating-point strided array `x` according to a strided mask array and assign the results to elements in a double-precision floating-point strided array `y`.\n*\n* @module @stdlib/math/strided/special/dmsksqrt\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import Uint8Array from '@stdlib/array/uint8';\n* import dmsksqrt from '@stdlib/math/strided/special/dmsksqrt';\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*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import Uint8Array from '@stdlib/array/uint8';\n* import dmsksqrt from '@stdlib/math/strided/special/dmsksqrt';\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.ndarray( x.length, x, 1, 0, m, 1, 0, y, 1, 0 );\n* // y => [ 0.0, 2.0, 0.0, ~3.464, 0.0 ]\n*/\n\n// MODULES //\n\nvar join = require( 'path' ).join;\nimport tryRequire from '@stdlib/utils/try-require';\nimport javascript from './main.js';\n\n\n// MAIN //\n\nvar main;\nvar tmp = tryRequire( join( __dirname, './native.js' ) );\nif ( tmp instanceof Error ) {\n\tmain = javascript;\n} else {\n\tmain = tmp;\n}\n\n\n// EXPORTS //\n\nexport default main;\n\n// exports: { \"ndarray\": \"main.ndarray\" }\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) 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) 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* Round each element in a double-precision floating-point strided array `x` toward zero according to a strided mask array and assign the results to elements in a double-precision floating-point strided array `y`.\n*\n* @module @stdlib/math/strided/special/dmsktrunc\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import Uint8Array from '@stdlib/array/uint8';\n* import dmsktrunc from '@stdlib/math/strided/special/dmsktrunc';\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*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import Uint8Array from '@stdlib/array/uint8';\n* import dmsktrunc from '@stdlib/math/strided/special/dmsktrunc';\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.ndarray( x.length, x, 1, 0, m, 1, 0, y, 1, 0 );\n* // y => [ 1.0, 2.0, 0.0, 4.0, 0.0 ]\n*/\n\n// MODULES //\n\nvar join = require( 'path' ).join;\nimport tryRequire from '@stdlib/utils/try-require';\nimport javascript from './main.js';\n\n\n// MAIN //\n\nvar main;\nvar tmp = tryRequire( join( __dirname, './native.js' ) );\nif ( tmp instanceof Error ) {\n\tmain = javascript;\n} else {\n\tmain = tmp;\n}\n\n\n// EXPORTS //\n\nexport default main;\n\n// exports: { \"ndarray\": \"main.ndarray\" }\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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 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/**\n* Evaluate the ramp function for each element in a double-precision floating-point strided array `x` and assign the results to elements in a double-precision floating-point strided array `y`.\n*\n* @module @stdlib/math/strided/special/dramp\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import dramp from '@stdlib/math/strided/special/dramp';\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*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import dramp from '@stdlib/math/strided/special/dramp';\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.ndarray( x.length, x, 1, 0, y, 1, 0 );\n* // y => [ 1.1, 2.5, 0.0, 4.0, 0.0 ]\n*/\n\n// MODULES //\n\nvar join = require( 'path' ).join;\nimport tryRequire from '@stdlib/utils/try-require';\nimport javascript from './main.js';\n\n\n// MAIN //\n\nvar main;\nvar tmp = tryRequire( join( __dirname, './native.js' ) );\nif ( tmp instanceof Error ) {\n\tmain = javascript;\n} else {\n\tmain = tmp;\n}\n\n\n// EXPORTS //\n\nexport default main;\n\n// exports: { \"ndarray\": \"main.ndarray\" }\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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 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/**\n* Compute the reciprocal square root for each element in a double-precision floating-point strided array `x` and assign the results to elements in a double-precision floating-point strided array `y`.\n*\n* @module @stdlib/math/strided/special/drsqrt\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import drsqrt from '@stdlib/math/strided/special/drsqrt';\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*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import drsqrt from '@stdlib/math/strided/special/drsqrt';\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.ndarray( x.length, x, 1, 0, y, 1, 0 );\n* // y => [ Infinity, 0.5, ~0.333, ~0.289, ~0.204 ]\n*/\n\n// MODULES //\n\nvar join = require( 'path' ).join;\nimport tryRequire from '@stdlib/utils/try-require';\nimport javascript from './main.js';\n\n\n// MAIN //\n\nvar main;\nvar tmp = tryRequire( join( __dirname, './native.js' ) );\nif ( tmp instanceof Error ) {\n\tmain = javascript;\n} else {\n\tmain = tmp;\n}\n\n\n// EXPORTS //\n\nexport default main;\n\n// exports: { \"ndarray\": \"main.ndarray\" }\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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 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/**\n* Compute the principal square root for each element in a double-precision floating-point strided array `x` and assign the results to elements in a double-precision floating-point strided array `y`.\n*\n* @module @stdlib/math/strided/special/dsqrt\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import dsqrt from '@stdlib/math/strided/special/dsqrt';\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*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import dsqrt from '@stdlib/math/strided/special/dsqrt';\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.ndarray( x.length, x, 1, 0, y, 1, 0 );\n* // y => [ 0.0, 2.0, 3.0, ~3.464, ~4.899 ]\n*/\n\n// MODULES //\n\nvar join = require( 'path' ).join;\nimport tryRequire from '@stdlib/utils/try-require';\nimport javascript from './main.js';\n\n\n// MAIN //\n\nvar main;\nvar tmp = tryRequire( join( __dirname, './native.js' ) );\nif ( tmp instanceof Error ) {\n\tmain = javascript;\n} else {\n\tmain = tmp;\n}\n\n\n// EXPORTS //\n\nexport default main;\n\n// exports: { \"ndarray\": \"main.ndarray\" }\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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'use strict';\n\n/**\n* Round each element in a double-precision floating-point strided array `x` toward zero and assign the results to elements in a double-precision floating-point strided array `y`.\n*\n* @module @stdlib/math/strided/special/dtrunc\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import dtrunc from '@stdlib/math/strided/special/dtrunc';\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*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import dtrunc from '@stdlib/math/strided/special/dtrunc';\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.ndarray( x.length, x, 1, 0, y, 1, 0 );\n* // y => [ 1.0, 2.0, -3.0, 4.0, -5.0 ]\n*/\n\n// MODULES //\n\nvar join = require( 'path' ).join;\nimport tryRequire from '@stdlib/utils/try-require';\nimport javascript from './main.js';\n\n\n// MAIN //\n\nvar main;\nvar tmp = tryRequire( join( __dirname, './native.js' ) );\nif ( tmp instanceof Error ) {\n\tmain = javascript;\n} else {\n\tmain = tmp;\n}\n\n\n// EXPORTS //\n\nexport default main;\n\n// exports: { \"ndarray\": \"main.ndarray\" }\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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) 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* Round each element in a strided array `x` toward negative infinity and assign the results to elements in a strided array `y`.\n*\n* @module @stdlib/math/strided/special/floor\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import floor from '@stdlib/math/strided/special/floor';\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*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import floor from '@stdlib/math/strided/special/floor';\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.ndarray( x.length, 'float64', x, 1, 0, 'float64', y, 1, 0 );\n* // y => [ -2.0, 2.0, -4.0, 4.0, -5.0 ]\n*/\n\n// MODULES //\n\nvar join = require( 'path' ).join;\nimport tryRequire from '@stdlib/utils/try-require';\nimport javascript from './main.js';\n\n\n// MAIN //\n\nvar main;\nvar tmp = tryRequire( join( __dirname, './native.js' ) );\nif ( tmp instanceof Error ) {\n\tmain = javascript;\n} else {\n\tmain = tmp;\n}\n\n\n// EXPORTS //\n\nexport default main;\n\n// exports: { \"ndarray\": \"main.ndarray\" }\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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) 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 multiplicative inverse for each element in a strided array `x` and assign the results to elements in a strided array `y`.\n*\n* @module @stdlib/math/strided/special/inv\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import inv from '@stdlib/math/strided/special/inv';\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*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import inv from '@stdlib/math/strided/special/inv';\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.ndarray( x.length, 'float64', x, 1, 0, 'float64', y, 1, 0 );\n* // y => [ -0.05, -1.0, 0.5, 0.25, 0.1 ]\n*/\n\n// MODULES //\n\nvar join = require( 'path' ).join;\nimport tryRequire from '@stdlib/utils/try-require';\nimport javascript from './main.js';\n\n\n// MAIN //\n\nvar main;\nvar tmp = tryRequire( join( __dirname, './native.js' ) );\nif ( tmp instanceof Error ) {\n\tmain = javascript;\n} else {\n\tmain = tmp;\n}\n\n\n// EXPORTS //\n\nexport default main;\n\n// exports: { \"ndarray\": \"main.ndarray\" }\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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) 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 the ramp function for each element in a strided array `x` and assign the results to elements in a strided array `y`.\n*\n* @module @stdlib/math/strided/special/ramp\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import ramp from '@stdlib/math/strided/special/ramp';\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*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import ramp from '@stdlib/math/strided/special/ramp';\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.ndarray( x.length, 'float64', x, 1, 0, 'float64', y, 1, 0 );\n* // y => [ 1.1, 2.5, 0.0, 4.0, 0.0 ]\n*/\n\n// MODULES //\n\nvar join = require( 'path' ).join;\nimport tryRequire from '@stdlib/utils/try-require';\nimport javascript from './main.js';\n\n\n// MAIN //\n\nvar main;\nvar tmp = tryRequire( join( __dirname, './native.js' ) );\nif ( tmp instanceof Error ) {\n\tmain = javascript;\n} else {\n\tmain = tmp;\n}\n\n\n// EXPORTS //\n\nexport default main;\n\n// exports: { \"ndarray\": \"main.ndarray\" }\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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) 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) 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 reciprocal square root for each element in a strided array `x` and assign the results to elements in a strided array `y`.\n*\n* @module @stdlib/math/strided/special/rsqrt\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import rsqrt from '@stdlib/math/strided/special/rsqrt';\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*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import rsqrt from '@stdlib/math/strided/special/rsqrt';\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.ndarray( x.length, 'float64', x, 1, 0, 'float64', y, 1, 0 );\n* // y => [ Infinity, 0.5, ~0.333, ~0.289, ~0.204 ]\n*/\n\n// MODULES //\n\nvar join = require( 'path' ).join;\nimport tryRequire from '@stdlib/utils/try-require';\nimport javascript from './main.js';\n\n\n// MAIN //\n\nvar main;\nvar tmp = tryRequire( join( __dirname, './native.js' ) );\nif ( tmp instanceof Error ) {\n\tmain = javascript;\n} else {\n\tmain = tmp;\n}\n\n\n// EXPORTS //\n\nexport default main;\n\n// exports: { \"ndarray\": \"main.ndarray\" }\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Applies a unary function to a single-precision floating-point strided input array and assigns results to a single-precision floating-point strided output array.\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* @param {Function} fcn - unary function to apply\n* @returns {Float32Array} `y`\n*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var x = new Float32Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var y = new Float32Array( x.length );\n*\n* smap( x.length, x, 1, 0, y, 1, 0, scale );\n*\n* console.log( y );\n* // => [ 10.0, 20.0, 30.0, 40.0, 50.0 ]\n*/\nfunction smap( N, x, strideX, offsetX, y, strideY, offsetY, fcn ) {\n\tvar ix;\n\tvar iy;\n\tvar i;\n\tif ( N <= 0 ) {\n\t\treturn y;\n\t}\n\tix = offsetX;\n\tiy = offsetY;\n\tfor ( i = 0; i < N; i++ ) {\n\t\ty[ iy ] = fcn( x[ ix ] );\n\t\tix += strideX;\n\t\tiy += strideY;\n\t}\n\treturn y;\n}\n\n\n// EXPORTS //\n\nexport default smap;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport stride2offset from './../../../base/stride2offset';\nimport ndarray from './ndarray.js';\n\n\n// MAIN //\n\n/**\n* Applies a unary function to a single-precision floating-point strided input array and assigns results to a single-precision floating-point strided output array.\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* @param {Function} fcn - unary function to apply\n* @returns {Float32Array} `y`\n*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var x = new Float32Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var y = new Float32Array( x.length );\n*\n* smap( x.length, x, 1, y, 1, scale );\n*\n* console.log( y );\n* // => [ 10.0, 20.0, 30.0, 40.0, 50.0 ]\n*/\nfunction smap( N, x, strideX, y, strideY, fcn ) {\n\treturn ndarray( N, x, strideX, stride2offset( N, strideX ), y, strideY, stride2offset( N, strideY ), fcn ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default smap;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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/**\n* Apply a unary function to a single-precision floating-point strided input array and assign results to a single-precision floating-point strided output array.\n*\n* @module @stdlib/strided/base/smap\n*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n* import smap from '@stdlib/strided/base/smap';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var x = new Float32Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var y = new Float32Array( x.length );\n*\n* smap( x.length, x, 1, y, 1, scale );\n*\n* console.log( y );\n* // => [ 10.0, 20.0, 30.0, 40.0, 50.0 ]\n*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n* import smap from '@stdlib/strided/base/smap';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var x = new Float32Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var y = new Float32Array( x.length );\n*\n* smap.ndarray( x.length, x, 1, 0, y, 1, 0, scale );\n*\n* console.log( y );\n* // => [ 10.0, 20.0, 30.0, 40.0, 50.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) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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/**\n* Compute the absolute value for each element in a single-precision floating-point strided array `x` and assign the results to elements in a single-precision floating-point strided array `y`.\n*\n* @module @stdlib/math/strided/special/sabs\n*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n* import sabs from '@stdlib/math/strided/special/sabs';\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*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n* import sabs from '@stdlib/math/strided/special/sabs';\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.ndarray( x.length, x, 1, 0, y, 1, 0 );\n* // y => [ 1.0, 2.0, 3.0, 4.0, 5.0 ]\n*/\n\n// MODULES //\n\nvar join = require( 'path' ).join;\nimport tryRequire from '@stdlib/utils/try-require';\nimport javascript from './main.js';\n\n\n// MAIN //\n\nvar main;\nvar tmp = tryRequire( join( __dirname, './native.js' ) );\nif ( tmp instanceof Error ) {\n\tmain = javascript;\n} else {\n\tmain = tmp;\n}\n\n\n// EXPORTS //\n\nexport default main;\n\n// exports: { \"ndarray\": \"main.ndarray\" }\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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 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/**\n* Compute the squared absolute value for each element in a single-precision floating-point strided array `x` and assign the results to elements in a single-precision floating-point strided array `y`.\n*\n* @module @stdlib/math/strided/special/sabs2\n*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n* import sabs2 from '@stdlib/math/strided/special/sabs2';\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*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n* import sabs2 from '@stdlib/math/strided/special/sabs2';\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.ndarray( x.length, x, 1, 0, y, 1, 0 );\n* // y => [ 1.0, 4.0, 9.0, 16.0, 25.0 ]\n*/\n\n// MODULES //\n\nvar join = require( 'path' ).join;\nimport tryRequire from '@stdlib/utils/try-require';\nimport javascript from './main.js';\n\n\n// MAIN //\n\nvar main;\nvar tmp = tryRequire( join( __dirname, './native.js' ) );\nif ( tmp instanceof Error ) {\n\tmain = javascript;\n} else {\n\tmain = tmp;\n}\n\n\n// EXPORTS //\n\nexport default main;\n\n// exports: { \"ndarray\": \"main.ndarray\" }\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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 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/**\n* Compute the cube root of each element in a single-precision floating-point strided array `x` and assign the results to elements in a single-precision floating-point strided array `y`.\n*\n* @module @stdlib/math/strided/special/scbrt\n*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n* import scbrt from '@stdlib/math/strided/special/scbrt';\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*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n* import scbrt from '@stdlib/math/strided/special/scbrt';\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.ndarray( x.length, x, 1, 0, y, 1, 0 );\n* // y => [ 0.0, 1.0, 2.0, 3.0, 4.0 ]\n*/\n\n// MODULES //\n\nvar join = require( 'path' ).join;\nimport tryRequire from '@stdlib/utils/try-require';\nimport javascript from './main.js';\n\n\n// MAIN //\n\nvar main;\nvar tmp = tryRequire( join( __dirname, './native.js' ) );\nif ( tmp instanceof Error ) {\n\tmain = javascript;\n} else {\n\tmain = tmp;\n}\n\n\n// EXPORTS //\n\nexport default main;\n\n// exports: { \"ndarray\": \"main.ndarray\" }\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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 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/**\n* Round each element in a single-precision floating-point strided array `x` toward positive infinity and assign the results to elements in a single-precision floating-point strided array `y`.\n*\n* @module @stdlib/math/strided/special/sceil\n*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n* import sceil from '@stdlib/math/strided/special/sceil';\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*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n* import sceil from '@stdlib/math/strided/special/sceil';\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.ndarray( x.length, x, 1, 0, y, 1, 0 );\n* // y => [ 2.0, 3.0, -3.0, 4.0, -5.0 ]\n*/\n\n// MODULES //\n\nvar join = require( 'path' ).join;\nimport tryRequire from '@stdlib/utils/try-require';\nimport javascript from './main.js';\n\n\n// MAIN //\n\nvar main;\nvar tmp = tryRequire( join( __dirname, './native.js' ) );\nif ( tmp instanceof Error ) {\n\tmain = javascript;\n} else {\n\tmain = tmp;\n}\n\n\n// EXPORTS //\n\nexport default main;\n\n// exports: { \"ndarray\": \"main.ndarray\" }\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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 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/**\n* Convert each element in a single-precision floating-point strided array `x` from degrees to radians and assign the results to elements in a single-precision floating-point strided array `y`.\n*\n* @module @stdlib/math/strided/special/sdeg2rad\n*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n* import sdeg2rad from '@stdlib/math/strided/special/sdeg2rad';\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*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n* import sdeg2rad from '@stdlib/math/strided/special/sdeg2rad';\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.ndarray( x.length, x, 1, 0, y, 1, 0 );\n* // y => [ 0.0, ~0.524, ~0.785, ~1.047, ~1.571 ]\n*/\n\n// MODULES //\n\nvar join = require( 'path' ).join;\nimport tryRequire from '@stdlib/utils/try-require';\nimport javascript from './main.js';\n\n\n// MAIN //\n\nvar main;\nvar tmp = tryRequire( join( __dirname, './native.js' ) );\nif ( tmp instanceof Error ) {\n\tmain = javascript;\n} else {\n\tmain = tmp;\n}\n\n\n// EXPORTS //\n\nexport default main;\n\n// exports: { \"ndarray\": \"main.ndarray\" }\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Round each element in a single-precision floating-point strided array `x` toward negative infinity and assign the results to elements in a single-precision floating-point strided array `y`.\n*\n* @module @stdlib/math/strided/special/sfloor\n*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n* import sfloor from '@stdlib/math/strided/special/sfloor';\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*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n* import sfloor from '@stdlib/math/strided/special/sfloor';\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.ndarray( x.length, x, 1, 0, y, 1, 0 );\n* // y => [ -2.0, 1.0, 3.0, 4.0, 5.0 ]\n*/\n\n// MODULES //\n\nvar join = require( 'path' ).join;\nimport tryRequire from '@stdlib/utils/try-require';\nimport javascript from './main.js';\n\n\n// MAIN //\n\nvar main;\nvar tmp = tryRequire( join( __dirname, './native.js' ) );\nif ( tmp instanceof Error ) {\n\tmain = javascript;\n} else {\n\tmain = tmp;\n}\n\n\n// EXPORTS //\n\nexport default main;\n\n// exports: { \"ndarray\": \"main.ndarray\" }\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) 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) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 multiplicative inverse for each element in a single-precision floating-point strided array `x` and assign the results to elements in a single-precision floating-point strided array `y`.\n*\n* @module @stdlib/math/strided/special/sinv\n*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n* import sinv from '@stdlib/math/strided/special/sinv';\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*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n* import sinv from '@stdlib/math/strided/special/sinv';\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.ndarray( x.length, x, 1, 0, y, 1, 0 );\n* // y => [ ~-0.05, -1.0, 0.5, 0.25, ~0.1 ]\n*/\n\n// MODULES //\n\nvar join = require( 'path' ).join;\nimport tryRequire from '@stdlib/utils/try-require';\nimport javascript from './main.js';\n\n\n// MAIN //\n\nvar main;\nvar tmp = tryRequire( join( __dirname, './native.js' ) );\nif ( tmp instanceof Error ) {\n\tmain = javascript;\n} else {\n\tmain = tmp;\n}\n\n\n// EXPORTS //\n\nexport default main;\n\n// exports: { \"ndarray\": \"main.ndarray\" }\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Applies a unary function to a single-precision floating-point strided input array according to a strided mask array and assigns results to a single-precision floating-point strided output array.\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 {Uint8Array} mask - mask array\n* @param {integer} strideMask - `mask` stride length\n* @param {NonNegativeInteger} offsetMask - starting `mask` index\n* @param {Float32Array} y - destination array\n* @param {integer} strideY - `y` stride length\n* @param {NonNegativeInteger} offsetY - starting `y` index\n* @param {Function} fcn - unary function to apply\n* @returns {Float32Array} `y`\n*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n* import Uint8Array from '@stdlib/array/uint8';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\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, 0 ] );\n* var y = new Float32Array( x.length );\n*\n* smskmap( x.length, x, 1, 0, m, 1, 0, y, 1, 0, scale );\n*\n* console.log( y );\n* // => [ 10.0, 20.0, 0.0, 40.0, 50.0 ]\n*/\nfunction smskmap( N, x, strideX, offsetX, mask, strideMask, offsetMask, y, strideY, offsetY, fcn ) { // eslint-disable-line max-len, max-params\n\tvar ix;\n\tvar im;\n\tvar iy;\n\tvar i;\n\tif ( N <= 0 ) {\n\t\treturn y;\n\t}\n\tix = offsetX;\n\tim = offsetMask;\n\tiy = offsetY;\n\tfor ( i = 0; i < N; i++ ) {\n\t\tif ( mask[ im ] === 0 ) {\n\t\t\ty[ iy ] = fcn( x[ ix ] );\n\t\t}\n\t\tix += strideX;\n\t\tim += strideMask;\n\t\tiy += strideY;\n\t}\n\treturn y;\n}\n\n\n// EXPORTS //\n\nexport default smskmap;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport stride2offset from './../../../base/stride2offset';\nimport ndarray from './ndarray.js';\n\n\n// MAIN //\n\n/**\n* Applies a unary function to a single-precision floating-point strided input array according to a strided mask array and assigns results to a single-precision floating-point strided output array.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Float32Array} x - input array\n* @param {integer} strideX - `x` stride length\n* @param {Uint8Array} mask - mask array\n* @param {integer} strideMask - `mask` stride length\n* @param {Float32Array} y - destination array\n* @param {integer} strideY - `y` stride length\n* @param {Function} fcn - unary function to apply\n* @returns {Float32Array} `y`\n*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n* import Uint8Array from '@stdlib/array/uint8';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\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, 0 ] );\n* var y = new Float32Array( x.length );\n*\n* smskmap( x.length, x, 1, m, 1, y, 1, scale );\n*\n* console.log( y );\n* // => [ 10.0, 20.0, 0.0, 40.0, 50.0 ]\n*/\nfunction smskmap( N, x, strideX, mask, strideMask, y, strideY, fcn ) {\n\treturn ndarray( N, x, strideX, stride2offset( N, strideX ), mask, strideMask, stride2offset( N, strideMask ), y, strideY, stride2offset( N, strideY ), fcn ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default smskmap;\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) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Apply a unary function to a single-precision floating-point strided input array according to a strided mask array and assign results to a single-precision floating-point strided output array.\n*\n* @module @stdlib/strided/base/smskmap\n*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n* import Uint8Array from '@stdlib/array/uint8';\n* import smskmap from '@stdlib/strided/base/smskmap';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\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, 0 ] );\n* var y = new Float32Array( x.length );\n*\n* smskmap( x.length, x, 1, m, 1, y, 1, scale );\n*\n* console.log( y );\n* // => [ 10.0, 20.0, 0.0, 40.0, 50.0 ]\n*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n* import Uint8Array from '@stdlib/array/uint8';\n* import smskmap from '@stdlib/strided/base/smskmap';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\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, 0 ] );\n* var y = new Float32Array( x.length );\n*\n* smskmap.ndarray( x.length, x, 1, 0, m, 1, 0, y, 1, 0, scale );\n*\n* console.log( y );\n* // => [ 10.0, 20.0, 0.0, 40.0, 50.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 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/**\n* Compute the absolute value for each element in a single-precision floating-point strided array `x` according to a strided mask array and assign the results to elements in a single-precision floating-point strided array `y`.\n*\n* @module @stdlib/math/strided/special/smskabs\n*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n* import Uint8Array from '@stdlib/array/uint8';\n* import smskabs from '@stdlib/math/strided/special/smskabs';\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*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n* import Uint8Array from '@stdlib/array/uint8';\n* import smskabs from '@stdlib/math/strided/special/smskabs';\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.ndarray( x.length, x, 1, 0, m, 1, 0, y, 1, 0 );\n* // y => [ 2.0, 1.0, 0.0, 5.0, 0.0 ]\n*/\n\n// MODULES //\n\nvar join = require( 'path' ).join;\nimport tryRequire from '@stdlib/utils/try-require';\nimport javascript from './main.js';\n\n\n// MAIN //\n\nvar main;\nvar tmp = tryRequire( join( __dirname, './native.js' ) );\nif ( tmp instanceof Error ) {\n\tmain = javascript;\n} else {\n\tmain = tmp;\n}\n\n\n// EXPORTS //\n\nexport default main;\n\n// exports: { \"ndarray\": \"main.ndarray\" }\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 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/**\n* Compute the squared absolute value for each element in a single-precision floating-point strided array `x` according to a strided mask array and assign the results to elements in a single-precision floating-point strided array `y`.\n*\n* @module @stdlib/math/strided/special/smskabs2\n*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n* import Uint8Array from '@stdlib/array/uint8';\n* import smskabs2 from '@stdlib/math/strided/special/smskabs2';\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*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n* import Uint8Array from '@stdlib/array/uint8';\n* import smskabs2 from '@stdlib/math/strided/special/smskabs2';\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.ndarray( x.length, x, 1, 0, m, 1, 0, y, 1, 0 );\n* // y => [ 4.0, 1.0, 0.0, 25.0, 0.0 ]\n*/\n\n// MODULES //\n\nvar join = require( 'path' ).join;\nimport tryRequire from '@stdlib/utils/try-require';\nimport javascript from './main.js';\n\n\n// MAIN //\n\nvar main;\nvar tmp = tryRequire( join( __dirname, './native.js' ) );\nif ( tmp instanceof Error ) {\n\tmain = javascript;\n} else {\n\tmain = tmp;\n}\n\n\n// EXPORTS //\n\nexport default main;\n\n// exports: { \"ndarray\": \"main.ndarray\" }\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 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/**\n* Compute the cube root for each element in a single-precision floating-point strided array `x` according to a strided mask array and assign the results to elements in a single-precision floating-point strided array `y`.\n*\n* @module @stdlib/math/strided/special/smskcbrt\n*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n* import Uint8Array from '@stdlib/array/uint8';\n* import smskcbrt from '@stdlib/math/strided/special/smskcbrt';\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*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n* import Uint8Array from '@stdlib/array/uint8';\n* import smskcbrt from '@stdlib/math/strided/special/smskcbrt';\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.ndarray( x.length, x, 1, 0, m, 1, 0, y, 1, 0 );\n* // y => [ 0.0, 1.0, 0.0, 3.0, 0.0 ]\n*/\n\n// MODULES //\n\nvar join = require( 'path' ).join;\nimport tryRequire from '@stdlib/utils/try-require';\nimport javascript from './main.js';\n\n\n// MAIN //\n\nvar main;\nvar tmp = tryRequire( join( __dirname, './native.js' ) );\nif ( tmp instanceof Error ) {\n\tmain = javascript;\n} else {\n\tmain = tmp;\n}\n\n\n// EXPORTS //\n\nexport default main;\n\n// exports: { \"ndarray\": \"main.ndarray\" }\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 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/**\n* Round each element in a single-precision floating-point strided array `x` toward positive infinity according to a strided mask array and assign the results to elements in a single-precision floating-point strided array `y`.\n*\n* @module @stdlib/math/strided/special/smskceil\n*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n* import Uint8Array from '@stdlib/array/uint8';\n* import smskceil from '@stdlib/math/strided/special/smskceil';\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*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n* import Uint8Array from '@stdlib/array/uint8';\n* import smskceil from '@stdlib/math/strided/special/smskceil';\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.ndarray( x.length, x, 1, 0, m, 1, 0, y, 1, 0 );\n* // y => [ 2.0, 3.0, 0.0, 4.0, 0.0 ]\n*/\n\n// MODULES //\n\nvar join = require( 'path' ).join;\nimport tryRequire from '@stdlib/utils/try-require';\nimport javascript from './main.js';\n\n\n// MAIN //\n\nvar main;\nvar tmp = tryRequire( join( __dirname, './native.js' ) );\nif ( tmp instanceof Error ) {\n\tmain = javascript;\n} else {\n\tmain = tmp;\n}\n\n\n// EXPORTS //\n\nexport default main;\n\n// exports: { \"ndarray\": \"main.ndarray\" }\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 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/**\n* Convert each element in a single-precision floating-point strided array `x` from degrees to radians according to a strided mask array and assign the results to elements in a single-precision floating-point strided array `y`.\n*\n* @module @stdlib/math/strided/special/smskdeg2rad\n*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n* import Uint8Array from '@stdlib/array/uint8';\n* import smskdeg2rad from '@stdlib/math/strided/special/smskdeg2rad';\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*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n* import Uint8Array from '@stdlib/array/uint8';\n* import smskdeg2rad from '@stdlib/math/strided/special/smskdeg2rad';\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.ndarray( x.length, x, 1, 0, m, 1, 0, y, 1, 0 );\n* // y => [ 0.0, ~0.524, 0.0, ~1.047, 0.0 ]\n*/\n\n// MODULES //\n\nvar join = require( 'path' ).join;\nimport tryRequire from '@stdlib/utils/try-require';\nimport javascript from './main.js';\n\n\n// MAIN //\n\nvar main;\nvar tmp = tryRequire( join( __dirname, './native.js' ) );\nif ( tmp instanceof Error ) {\n\tmain = javascript;\n} else {\n\tmain = tmp;\n}\n\n\n// EXPORTS //\n\nexport default main;\n\n// exports: { \"ndarray\": \"main.ndarray\" }\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 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/**\n* Round each element in a single-precision floating-point strided array `x` toward negative infinity according to a strided mask array and assign the results to elements in a single-precision floating-point strided array `y`.\n*\n* @module @stdlib/math/strided/special/smskfloor\n*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n* import Uint8Array from '@stdlib/array/uint8';\n* import smskfloor from '@stdlib/math/strided/special/smskfloor';\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*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n* import Uint8Array from '@stdlib/array/uint8';\n* import smskfloor from '@stdlib/math/strided/special/smskfloor';\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.ndarray( x.length, x, 1, 0, m, 1, 0, y, 1, 0 );\n* // y => [ 1.0, 2.0, 0.0, 4.0, 0.0 ]\n*/\n\n// MODULES //\n\nvar join = require( 'path' ).join;\nimport tryRequire from '@stdlib/utils/try-require';\nimport javascript from './main.js';\n\n\n// MAIN //\n\nvar main;\nvar tmp = tryRequire( join( __dirname, './native.js' ) );\nif ( tmp instanceof Error ) {\n\tmain = javascript;\n} else {\n\tmain = tmp;\n}\n\n\n// EXPORTS //\n\nexport default main;\n\n// exports: { \"ndarray\": \"main.ndarray\" }\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 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/**\n* Compute the multiplicative inverse for each element in a single-precision floating-point strided array `x` according to a strided mask array and assign the results to elements in a single-precision floating-point strided array `y`.\n*\n* @module @stdlib/math/strided/special/smskinv\n*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n* import Uint8Array from '@stdlib/array/uint8';\n* import smskinv from '@stdlib/math/strided/special/smskinv';\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*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n* import Uint8Array from '@stdlib/array/uint8';\n* import smskinv from '@stdlib/math/strided/special/smskinv';\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.ndarray( x.length, x, 1, 0, m, 1, 0, y, 1, 0 );\n* // y => [ ~-0.05, -1.0, 0.0, 0.25, 0.0 ]\n*/\n\n// MODULES //\n\nvar join = require( 'path' ).join;\nimport tryRequire from '@stdlib/utils/try-require';\nimport javascript from './main.js';\n\n\n// MAIN //\n\nvar main;\nvar tmp = tryRequire( join( __dirname, './native.js' ) );\nif ( tmp instanceof Error ) {\n\tmain = javascript;\n} else {\n\tmain = tmp;\n}\n\n\n// EXPORTS //\n\nexport default main;\n\n// exports: { \"ndarray\": \"main.ndarray\" }\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 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/**\n* Evaluate the ramp function for each element in a single-precision floating-point strided array `x` according to a strided mask array and assign the results to elements in a single-precision floating-point strided array `y`.\n*\n* @module @stdlib/math/strided/special/smskramp\n*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n* import Uint8Array from '@stdlib/array/uint8';\n* import smskramp from '@stdlib/math/strided/special/smskramp';\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*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n* import Uint8Array from '@stdlib/array/uint8';\n* import smskramp from '@stdlib/math/strided/special/smskramp';\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.ndarray( x.length, x, 1, 0, m, 1, 0, y, 1, 0 );\n* // y => [ 1.0, 2.0, 0.0, 4.0, 0.0 ]\n*/\n\n// MODULES //\n\nvar join = require( 'path' ).join;\nimport tryRequire from '@stdlib/utils/try-require';\nimport javascript from './main.js';\n\n\n// MAIN //\n\nvar main;\nvar tmp = tryRequire( join( __dirname, './native.js' ) );\nif ( tmp instanceof Error ) {\n\tmain = javascript;\n} else {\n\tmain = tmp;\n}\n\n\n// EXPORTS //\n\nexport default main;\n\n// exports: { \"ndarray\": \"main.ndarray\" }\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 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/**\n* Compute the reciprocal square root for each element in a single-precision floating-point strided array `x` according to a strided mask array and assign the results to elements in a single-precision floating-point strided array `y`.\n*\n* @module @stdlib/math/strided/special/smskrsqrt\n*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n* import Uint8Array from '@stdlib/array/uint8';\n* import smskrsqrt from '@stdlib/math/strided/special/smskrsqrt';\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*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n* import Uint8Array from '@stdlib/array/uint8';\n* import smskrsqrt from '@stdlib/math/strided/special/smskrsqrt';\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.ndarray( x.length, x, 1, 0, m, 1, 0, y, 1, 0 );\n* // y => [ Infinity, 0.5, 0.0, ~0.289, 0.0 ]\n*/\n\n// MODULES //\n\nvar join = require( 'path' ).join;\nimport tryRequire from '@stdlib/utils/try-require';\nimport javascript from './main.js';\n\n\n// MAIN //\n\nvar main;\nvar tmp = tryRequire( join( __dirname, './native.js' ) );\nif ( tmp instanceof Error ) {\n\tmain = javascript;\n} else {\n\tmain = tmp;\n}\n\n\n// EXPORTS //\n\nexport default main;\n\n// exports: { \"ndarray\": \"main.ndarray\" }\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 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/**\n* Compute the principal square root for each element in a single-precision floating-point strided array `x` according to a strided mask array and assign the results to elements in a single-precision floating-point strided array `y`.\n*\n* @module @stdlib/math/strided/special/smsksqrt\n*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n* import Uint8Array from '@stdlib/array/uint8';\n* import smsksqrt from '@stdlib/math/strided/special/smsksqrt';\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*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n* import Uint8Array from '@stdlib/array/uint8';\n* import smsksqrt from '@stdlib/math/strided/special/smsksqrt';\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.ndarray( x.length, x, 1, 0, m, 1, 0, y, 1, 0 );\n* // y => [ 0.0, 2.0, 0.0, ~3.464, 0.0 ]\n*/\n\n// MODULES //\n\nvar join = require( 'path' ).join;\nimport tryRequire from '@stdlib/utils/try-require';\nimport javascript from './main.js';\n\n\n// MAIN //\n\nvar main;\nvar tmp = tryRequire( join( __dirname, './native.js' ) );\nif ( tmp instanceof Error ) {\n\tmain = javascript;\n} else {\n\tmain = tmp;\n}\n\n\n// EXPORTS //\n\nexport default main;\n\n// exports: { \"ndarray\": \"main.ndarray\" }\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 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) 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* Round each element in a single-precision floating-point strided array `x` toward zero according to a strided mask array and assign the results to elements in a single-precision floating-point strided array `y`.\n*\n* @module @stdlib/math/strided/special/smsktrunc\n*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n* import Uint8Array from '@stdlib/array/uint8';\n* import smsktrunc from '@stdlib/math/strided/special/smsktrunc';\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*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n* import Uint8Array from '@stdlib/array/uint8';\n* import smsktrunc from '@stdlib/math/strided/special/smsktrunc';\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.ndarray( x.length, x, 1, 0, m, 1, 0, y, 1, 0 );\n* // y => [ 1.0, 2.0, 0.0, 4.0, 0.0 ]\n*/\n\n// MODULES //\n\nvar join = require( 'path' ).join;\nimport tryRequire from '@stdlib/utils/try-require';\nimport javascript from './main.js';\n\n\n// MAIN //\n\nvar main;\nvar tmp = tryRequire( join( __dirname, './native.js' ) );\nif ( tmp instanceof Error ) {\n\tmain = javascript;\n} else {\n\tmain = tmp;\n}\n\n\n// EXPORTS //\n\nexport default main;\n\n// exports: { \"ndarray\": \"main.ndarray\" }\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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) 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) 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 principal square root for each element in a strided array `x` and assign the results to elements in a strided array `y`.\n*\n* @module @stdlib/math/strided/special/sqrt\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import sqrt from '@stdlib/math/strided/special/sqrt';\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*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import sqrt from '@stdlib/math/strided/special/sqrt';\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.ndarray( x.length, 'float64', x, 1, 0, 'float64', y, 1, 0 );\n* // y => [ 0.0, 2.0, 3.0, ~3.464, ~4.899 ]\n*/\n\n// MODULES //\n\nvar join = require( 'path' ).join;\nimport tryRequire from '@stdlib/utils/try-require';\nimport javascript from './main.js';\n\n\n// MAIN //\n\nvar main;\nvar tmp = tryRequire( join( __dirname, './native.js' ) );\nif ( tmp instanceof Error ) {\n\tmain = javascript;\n} else {\n\tmain = tmp;\n}\n\n\n// EXPORTS //\n\nexport default main;\n\n// exports: { \"ndarray\": \"main.ndarray\" }\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) 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/**\n* Evaluate the ramp function for each element in a single-precision floating-point strided array `x` and assign the results to elements in a single-precision floating-point strided array `y`.\n*\n* @module @stdlib/math/strided/special/sramp\n*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n* import sramp from '@stdlib/math/strided/special/sramp';\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*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n* import sramp from '@stdlib/math/strided/special/sramp';\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.ndarray( x.length, x, 1, 0, y, 1, 0 );\n* // y => [ 1.0, 2.0, 0.0, 4.0, 0.0 ]\n*/\n\n// MODULES //\n\nvar join = require( 'path' ).join;\nimport tryRequire from '@stdlib/utils/try-require';\nimport javascript from './main.js';\n\n\n// MAIN //\n\nvar main;\nvar tmp = tryRequire( join( __dirname, './native.js' ) );\nif ( tmp instanceof Error ) {\n\tmain = javascript;\n} else {\n\tmain = tmp;\n}\n\n\n// EXPORTS //\n\nexport default main;\n\n// exports: { \"ndarray\": \"main.ndarray\" }\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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 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/**\n* Compute the reciprocal square root for each element in a single-precision floating-point strided array `x` and assign the results to elements in a single-precision floating-point strided array `y`.\n*\n* @module @stdlib/math/strided/special/srsqrt\n*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n* import srsqrt from '@stdlib/math/strided/special/srsqrt';\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*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n* import srsqrt from '@stdlib/math/strided/special/srsqrt';\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.ndarray( x.length, x, 1, 0, y, 1, 0 );\n* // y => [ 1.0, 0.5, ~0.333, ~0.289, ~0.204 ]\n*/\n\n// MODULES //\n\nvar join = require( 'path' ).join;\nimport tryRequire from '@stdlib/utils/try-require';\nimport javascript from './main.js';\n\n\n// MAIN //\n\nvar main;\nvar tmp = tryRequire( join( __dirname, './native.js' ) );\nif ( tmp instanceof Error ) {\n\tmain = javascript;\n} else {\n\tmain = tmp;\n}\n\n\n// EXPORTS //\n\nexport default main;\n\n// exports: { \"ndarray\": \"main.ndarray\" }\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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 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/**\n* Compute the principal square root for each element in a single-precision floating-point strided array `x` and assign the results to elements in a single-precision floating-point strided array `y`.\n*\n* @module @stdlib/math/strided/special/ssqrt\n*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n* import ssqrt from '@stdlib/math/strided/special/ssqrt';\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*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n* import ssqrt from '@stdlib/math/strided/special/ssqrt';\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.ndarray( x.length, x, 1, 0, y, 1, 0 );\n* // y => [ 0.0, 2.0, 3.0, ~3.464, ~4.899 ]\n*/\n\n// MODULES //\n\nvar join = require( 'path' ).join;\nimport tryRequire from '@stdlib/utils/try-require';\nimport javascript from './main.js';\n\n\n// MAIN //\n\nvar main;\nvar tmp = tryRequire( join( __dirname, './native.js' ) );\nif ( tmp instanceof Error ) {\n\tmain = javascript;\n} else {\n\tmain = tmp;\n}\n\n\n// EXPORTS //\n\nexport default main;\n\n// exports: { \"ndarray\": \"main.ndarray\" }\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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'use strict';\n\n/**\n* Round each element in a single-precision floating-point strided array `x` toward zero and assign the results to elements in a single-precision floating-point strided array `y`.\n*\n* @module @stdlib/math/strided/special/strunc\n*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n* import strunc from '@stdlib/math/strided/special/strunc';\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*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n* import strunc from '@stdlib/math/strided/special/strunc';\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.ndarray( x.length, x, 1, 0, y, 1, 0 );\n* // y => [ 1.0, 2.0, -3.0, 4.0, -5.0 ]\n*/\n\n// MODULES //\n\nvar join = require( 'path' ).join;\nimport tryRequire from '@stdlib/utils/try-require';\nimport javascript from './main.js';\n\n\n// MAIN //\n\nvar main;\nvar tmp = tryRequire( join( __dirname, './native.js' ) );\nif ( tmp instanceof Error ) {\n\tmain = javascript;\n} else {\n\tmain = tmp;\n}\n\n\n// EXPORTS //\n\nexport default main;\n\n// exports: { \"ndarray\": \"main.ndarray\" }\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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) 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* Round each element in a strided array `x` toward zero and assign the results to elements in a strided array `y`.\n*\n* @module @stdlib/math/strided/special/trunc\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import trunc from '@stdlib/math/strided/special/trunc';\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*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import trunc from '@stdlib/math/strided/special/trunc';\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.ndarray( x.length, 'float64', x, 1, 0, 'float64', y, 1, 0 );\n* // y => [ 1.0, 2.0, -3.0, 4.0, -5.0 ]\n*/\n\n// MODULES //\n\nvar join = require( 'path' ).join;\nimport tryRequire from '@stdlib/utils/try-require';\nimport javascript from './main.js';\n\n\n// MAIN //\n\nvar main;\nvar tmp = tryRequire( join( __dirname, './native.js' ) );\nif ( tmp instanceof Error ) {\n\tmain = javascript;\n} else {\n\tmain = tmp;\n}\n\n\n// EXPORTS //\n\nexport default main;\n\n// exports: { \"ndarray\": \"main.ndarray\" }\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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":["main","Object","defineProperty","isNumber","value","zeros","n","i","out","zeroPad","str","width","right","negative","pad","length","startsWithMinus","substr","lowercase","String","prototype","toLowerCase","uppercase","toUpperCase","formatInteger","token","base","specifier","arg","parseInt","isFinite","Error","toString","precision","padRight","sign","alternate","call","charAt","abs","Math","replace","RE_EXP_POS_DIGITS","RE_EXP_NEG_DIGITS","RE_ONLY_DIGITS","RE_DIGITS_BEFORE_EXP","RE_TRAILING_PERIOD_ZERO","RE_PERIOD_ZERO_EXP","RE_ZERO_BEFORE_EXP","formatDouble","digits","f","parseFloat","toExponential","toFixed","toPrecision","spaces","fromCharCode","isArray","Array","isnan","initialize","flags","mapping","formatInterpolate","tokens","hasPeriod","flag","num","pos","j","TypeError","padZeros","indexOf","arguments","maxWidth","substring","RE","parse","match","formatTokenize","content","prev","exec","slice","lastIndex","push","format","args","tokenize","interpolate","apply","objectProtoype","toStr","defineGetter","__defineGetter__","defineSetter","__defineSetter__","lookupGetter","__lookupGetter__","lookupSetter","__lookupSetter__","err","hasDefinePropertySupport","builtin","obj","prop","descriptor","hasValue","hasGet","hasSet","__proto__","get","set","defineProperty$1","setReadOnly","configurable","enumerable","writable","sqrt","floor","FLOAT64_MAX_SAFE_INTEGER","isPrime","x","N","WHEEL_PRIMES","isInteger","FLOAT64_PINF","Number","POSITIVE_INFINITY","isComposite","PINF","main$1c","FLOAT64_NINF","NEGATIVE_INFINITY","INT32_MAX","gcd","a","b","NINF","NaN","t","k","bitwise","largeIntegers","isEven","FLG","Symbol","hasToStringTagSupport","toStringTag","has","hasOwnProperty","hasOwnProp","property","Sym","toStrTag","hasToStringTag","v","isOwn","tag","nativeClass","hasFloat32Array","Float32Array","ctor","bool","arr","GlobalFloat32Array","hasFloat32ArraySupport","Float32Array$1","hasUint32Array","Uint32Array","UINT32_MAX","GlobalUint32Array","hasUint32ArraySupport","Uint32Array$1","FLOAT32_VIEW","buffer","isInfinite","isInfinitef","isnanf","isNegativeInteger","isNegativeZero","isNegativeZerof","isNonNegativeInteger","isOdd","isPositiveZero","isProbability","ns","MAX_SAFE_INTEGER","fround","float64ToFloat32$1","setNonEnumerableReadOnly","test","isPrimitive","isObject","Complex64","real","imag","this","float64ToFloat32","z","re","im","add","z1","z2","realf","imagf","mul","re1","re2","im1","im2","Complex128","cadd","y","max","FLOAT64_MAX","FLOAT64_SMALLEST_NORMAL","FLOAT64_EPSILON","internalCompreal","r","br","robustInternal","LARGE_THRESHOLD","FLOAT64_BIGGEST","SMALL_THRESHOLD","FLOAT64_SMALLEST","EPS","RECIP_EPS_SQR","csub","csubf","imul","la","lb","LOW_WORD_MASK","imuldw","stride","offset","w1","w3","ha","hb","fcn","sub","assign","umuldw","abs2","abs2f","absf","caddf","cmulf","cmul","w","u","ab","cd","s","FOURTH_PI","MOREBITS","asin","sgn","zz","p","s1","s2","ratevalRS","PIO4","ratevalPQ","acos","CONST_180_DIV_PI","rad2deg","sqrtf","UINT32_VIEW","toWordf","fromWordf","word","FLOAT32_PI","evalpoly","ALMOST_PI","PIO2_HI","PIO2_LO","MASK_LO","SMALL","QS1","PIO2","acosf","df","ax","q","c","PI","polyp","fromWord","toWord","hasFloat64Array","Float64Array","GlobalFloat64Array","hasFloat64ArraySupport","Float64Array$1","hasUint8Array","Uint8Array","GlobalUint8Array","UINT8_MAX","hasUint8ArraySupport","Uint8Array$1","hasUint16Array","Uint16Array","GlobalUint16Array","UINT16_MAX","hasUint16ArraySupport","uint16view","Uint16Array$1","ctors","uint16","uint8","IS_LITTLE_ENDIAN","HIGH$7","isLittleEndian","FLOAT64_VIEW","getHighWord","HIGH","HIGH$5","setHighWord","high","FLOAT64_EXPONENT_BIAS","LN2_HI","LN2_LO","SQRT2M1","SQRT2HALFM1","TINY","TWO53","TWO_THIRDS","log1p","hfsq","hu","R","polyval","LN2","TWO54","ONE_THIRD","HIGH_SIGNIFICAND_MASK","HIGH_MAX_NORMAL_EXP","HIGH_MIN_NORMAL_EXP","HIGH_BIASED_EXP_0","ln","hx","t2","t1","BIAS","polyvalP","polyvalQ","HUGE","acosh","HALF_PI","T3P8","atan","flg","acot","FLOAT32_HALF_PI","FLOAT32_FOURTH_PI","atanf","PI02F","PI04F","NEAR_ZERO","atanh","acoth","acovercos","acoversin","acsc","rad2degf","asinf","acscf","asinh","xx","isinfinite","ahavercos","ahaversin","asec","asecf","LOW","FLOAT64_HIGH_WORD_SIGN_MASK","FLOAT64_HIGH_WORD_ABS_MASK","indices$3","indices","toWords","indices$1","fromWords","low","WORDS","copysign","hy","ABS_MASK","SIGN_MASK","atan2","signbit","avercos","aversin","MAX_BERNOULLI","bernoulli","BERNOULLI","FLOAT64_HIGH_WORD_EXPONENT_MASK","FLOAT64_HIGH_WORD_SIGNIFICAND_MASK","LOW$3","FLOAT64_MAX_BASE2_EXPONENT","FLOAT64_MAX_BASE2_EXPONENT_SUBNORMAL","FLOAT64_MIN_BASE2_EXPONENT_SUBNORMAL","SCALAR","normalize","exponent","EXP_MASK","TWO52_INV","CLEAR_EXP_MASK","FRAC","ldexp","frac","exp","m","floatExp","MIN_SUBNORMAL_EXPONENT","MAX_EXPONENT","MAX_SUBNORMAL_EXPONENT","len","filled","IPIO2","TWO24","TWON24","F","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","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","SQRT_PI","j1","TWO_DIV_PI","x3","x31","x32","y0","besselj0","poly3","y1","besselj1","ceil","trunc","LOG2_E","OVERFLOW","UNDERFLOW","NEARZERO","NEG_NEARZERO","hi","lo","expmulti","LOW$1","setLowWord","uint32ToInt32","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","logx","ss","hs","ls","ht","bp","dp","lz","log2ax","pow2","E","evalrational","Infinity","G","beta","ambh","agh","bgh","cgh","res","EPSILON","lanczosSumExpGScaled","HALF_LN2","OVERFLOW_THRESHOLD","LN2_INV","LN2x56","LN2_HALFX3","expm1","halfX","twopk","r1","e","min","kernelCos","polyval13","polyval46","kernelSin","sin","HIGH_WORD_ABS_MASK","HIGH_WORD_EXPONENT_MASK","SQRT_TWO_PI","MAX_STIRLING","gamma","GAMMA","EULER","stirlingApprox","smallApprox","rateval","FLOAT64_MAX_SAFE_NTH_FACTORIAL","factorial","FACTORIALS","FLOAT64_GAMMA_LANCZOS_G","FACTORIAL_169","gammaDeltaRatioLanczos","delta","result","ratio","zgh","MAX_FACTORIAL","lanczosSum","gammaDeltaRatio","idelta","iz","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","FLOAT64_SQRT_EPSILON","FLOAT64_MAX_LN","ERX","PPC","QQC","PAC","QAC","RAC","SAC","RBC","SBC","erfc","polyvalPP","polyvalQQ","polyvalPA","polyvalQA","polyvalRA","polyvalSA","polyvalRB","polyvalSB","FLOAT64_MIN_LN","fullIGammaPrefix","alz","MAX_LN","MIN_LN","Fcn","Function","factory","evil","eval","hasGeneratorSupport","sumSeries","generator","options","tolerance","nextTerm","counter","opts","maxTerms","initialValue","next","sumSeries$1","log1pmx","FLOAT_EPS","mMult","mProd","log1pSeries","TWO_PI","workspace","lowerGammaSeries","a1","lowerIncompleteGammaSeries","regularisedGammaPrefix","prefix","amza","amz","sq","d","powm1","Y1","Y2","Y3","lgammaSmallImp","zm1","zm2","rateval2","rateval3","gamma1pm1","FLOAT32_SMALLEST_NORMAL","continuedFraction","maxIter","eps","keep","gen","factor","isgenerator","C","D","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","pgam","apn","smallGamma2Series","tgammaSmallUpperPart","phi","polyvalC0","polyvalC1","polyvalC2","polyvalC3","polyvalC4","polyvalC5","polyvalC6","polyvalC7","polyvalC8","igammaTemmeLarge","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","MAX_INT32","startTerm","start","binomialCCDF","kernelBetainc","betainc","Y4","Y5","erfcinv","rationalFcnR1","rationalFcnR2","rationalFcnR3","rationalFcnR4","rationalFcnR5","SQRT2","c0","inverseStudentsTBodySeries","idf","polyval2","polyval3","polyval4","polyval5","polyval6","polyval7","polyval8","polyval9","inverseStudentsTTailSeries","np2","np4","np6","rn","inverseStudentsTHill","ndf","DF_THRESHOLD","EXP","findIBetaInvFromTDist","py","rootAlpha","p0","p4","inverseStudentsT","terms","BIG","MAX_VALUE","temmeRootFinder","signum","newtonRaphsonIterate","fun","guess","f0last","delta1","delta2","count","f0","f1","FLOAT32_MAX","debug","require$$0","THRESHOLD","ONEO12","ONEO120","AK","lambdaeta","eta","L2","L3","L4","L5","L","polyvalAK2","LN_SQRT_TWO_PI","A","stirling","SMALLEST_FLOAT32","MAX_FLOAT32","tt","u0","u1","u2","chepolsum","polyvalC","polyvalD","gamstar","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","FLOAT64_SMALLEST_SUBNORMAL","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","halleyIterate","ALGMCS","LEN","XBIG","XMAX","gammaCorrection","twox","b0","dceval","betaln","corr","correction","MAX_INTEGER_P1","MAX_INTEGER","cospi","rx","PHI","SQRT_5","binet","hypot","cabs","hypotf","HIGH_WORD_MASK","TWO_54","TWO_31","ONE","B1","FLOAT64_SMALLEST_NORMAL_HIGH_WORD","cbrt","cbrtf","ceilf","FLOAT64_MAX_BASE10_EXPONENT","FLOAT64_MIN_BASE10_EXPONENT","FLOAT64_MIN_BASE10_EXPONENT_SUBNORMAL","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","FLOAT32_SIGN_MASK","PI_DIV_180","deg2rad","isinf","valueOf","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","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","FLOAT64_MIN_BASE2_EXPONENT","exp2","px","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","minn","minmax","minmaxabs","ay","minmaxabsn","av","minmaxn","ALL_ONES","modf","nonfibonacci","PI_SQUARED","YOFFSET24","trigamma","rateval12","rateval24","rateval48","rateval816","rateval16INF","MAX_SERIES_ITERATIONS","atinfinityplus","partTerm","xsquared","k2","LN_TWO","DIGITS_BASE10","LN_PI","PI2","PI3","PI4","PI5","PI6","PI7","PI8","PI9","PI10","PI11","PI12","polycotpi","xc","powTerms","idx","ncols","mcols","mo","so","co","calculateDerivatives","ramp","rampf","HALF_HUGE","round2","round10","rsqrt","rsqrtf","sici","si","ci","polyvalFN4","polyvalFD4","polyvalGN4","polyvalGD4","polyvalFN8","polyvalFD8","polyvalGN8","polyvalGD8","polyvalSN","polyvalSD","polyvalCN","polyvalCD","sinc","sincospi","PI2O6","spence","polyvalA","polyvalB","sqrt1pm1","trunc2","trunc10","truncn","truncf","vercos","versin","special","evalpolyf","P","evalrationalf","bessely0","bessely1","kernelBetaincinv","binomcoefln","lgx","ly","wx","wy","az","last","fast","FIBONACCI","gammaLanczosSum","gammaLanczosSumExpGScaled","fx","continuity","LUCAS","nargs","an","NEGAFIBONACCI","NEGALUCAS","polygamma","factorialPart","scale","AX","MAX","nearzero","minusMminus1","iter","sum0","attransitionplus","TRIBONACCI","cache","coefficients","coefs","fibpoly","normhermitepoly","y3","isint","wrap","hermitepoly","constantFunction","half","lucaspoly","isBoolean","Bool","Boolean","self","window","global","globalThis","getGlobal","codegen","GlobalThis","Self","Win","Global","nodeList","document","childNodes","typedarray","Int8Array","reFunctionName","RE_FUNCTION_NAME","REGEXP","main$14","arrayfcn","predicate","isObjectLike","isBuffer","_isBuffer","constructor","constructorName","name","arrayfun","ctorName","type","isFunction","typeOf","SCALES","mean","relativeDifference","SCALE","MAX_DIFF","reldiff","isIteratorLike","hasIteratorSymbolSupport","iterator","assert","ops","tools","utils","IteratorSymbol","iterAdd","iterators","types","niter","done","iteratorSymbol","iterDivide","iterMod","iterMultiply","iterSubtract","getProto","Obj","getPrototypeOf","proto","getProto$1","objectPrototype","isPlainObject","isPrototypeOf","key","ownProps","isfinite","setNonEnumerableReadOnlyAccessor","getter","Node","FIFO","_length","_first","_last","values","toArray","node","data","returns","RESULT_FUNCTION","convergent","convergents","MAX_ITER","iterMap","invalid","validate","iterMap2","iter0","iter1","iterCompositesSeq","iterContinuedFractionSeq","orig","neg","bi","fi","Ci","Di","tol","join","item","pop","first","clear","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","tryRequire","id","require","error","isError","JSON","stringify","sequences","MAX_ARRAY_LENGTH","isArrayLikeObject","MAX_LENGTH","keys","isArguments","bool$9","detect","hasArgumentsClass","isString","isNan","isEnumerableProperty","propertyIsEnumerable","hasStringEnumBug","isEnum","isArguments$1","MAX_TYPED_ARRAY_LENGTH","isCollection","searchElement","fromIndex","isConstructorPrototype","hasAutomationEqualityBug","win","EXCLUDED_KEYS","check","HAS_BUILTIN","skipConstructor","skipPrototype","isFcn","HAS_ENUM_PROTO_BUG","HAS_NON_ENUM_PROPS_BUG","HAS_WINDOW","NON_ENUMERABLE","main$12","val","allowDupes","duplicates","objectKeys","search","newval","RE_SUFFIX","dtypes","kind","DTYPES","all","enumeration","int8","uint8c","int16","int32","uint32","int64","uint64","float32","float64","complex64","complex128","binary","generic","notype","userdefined_type","source","hash","objectInverse","enum2str","dtype","ENUM","str2enum","resolve","dtypes2signatures","nin","nout","dt","M","setProps","meta","setReadOnlyAccessor","isComplexLike","bytesPerElement","BYTES_PER_ELEMENT","iterationOrder","strides","cnt","strides2order","column","ndims","row","isColumnMajorContiguous","order","contiguous","isRowMajorContiguous","minmaxViewBufferIndex","shape","RE_CHARS","RegExp","isRegExp","rescape","CTORS","hasArrayBuffer","ArrayBuffer","isArrayBuffer","view","GlobalArrayBuffer","isView","byteLength","hasArrayBufferSupport","ArrayBuffer$1","hasDataView","DataView","GlobalDataView","getFloat64","setFloat64","byteOffset","hasDataViewSupport","DataView$1","BigInteger","BigInt","orders","ORDERS","enumerated","DATA","LAYOUTS","modes","MODES","throw","clamp","LOW_MASK","TWO_32","BYTES","VIEW","float64ToInt64Bytes","setUint32","bytes","ndarray","nbytes","ord","_byteLength","_bytesPerElement","_buffer","_dtype","_ndims","_offset","_order","_shape","_strides","_accessors","_iterationOrder","isContiguous","_flags","ROW_MAJOR_CONTIGUOUS","COLUMN_MAJOR_CONTIGUOUS","READONLY","__meta_dataview__","isndarrayLike","ind","iget","flgs","sh","st","sm","_mode","_submode","setInt8","setInt16","setBigInt64","setInt32","Buffer","Int16Array","Int32Array","Uint8ClampedArray","Complex64Array","Complex128Array","BooleanArray","hasInt32Array","GlobalInt32Array","hasInt32ArraySupport","Int32Array$1","hasInt16Array","GlobalInt16Array","INT16_MAX","hasInt16ArraySupport","Int16Array$1","hasUint8ClampedArray","GlobalUint8ClampedArray","hasUint8ClampedArraySupport","Uint8ClampedArray$1","hasInt8Array","GlobalInt8Array","INT8_MAX","hasInt8ArraySupport","Int8Array$1","isPrimitiveArray","isObjectArray","isStringArray","isComplex64Array","isComplex128Array","reinterpret","GETTERS","default","fromIterator","it","HAS_ITERATOR_SYMBOL","isComplexArray","isComplexArrayConstructor","getComplex64","fromArray","reinterpret64","reinterpret128","ITERATOR_SYMBOL","src","thisArg","clbk","accessorGetter","fromIteratorMap","copyWithin","entries","end","separator","sep","outbuf","reducer","acc","sbuf","outlen","compareFcn","sort","begin","locales","loc","toLocaleString","index","getComplex128","isBooleanArray","isBooleanArrayConstructor","NTYPES","ctor2dtype","GlobalBuffer","from","hasNodeBufferSupport","Buffer$1","allocUnsafe$1","allocUnsafe","size","bufferCtors","copy","copyIndexed","shape2strides","columnmajor","rowmajor","ROW_MAJOR","strides2offset","COLUMN_MAJOR","broadcastArray","dim","getShape","getStrides","getDType","getData","getOffset","getOrder","arraylikefcn","isArrayLike","isNonNegativeIntegerArray","isIntegerArray","TYPE","isAccessorArray","ctor2dtypes","isDataType","contains","numel","defaults","numeric","floating_point","real_floating_point","complex_floating_point","integer","signed_integer","unsigned_integer","boolean","casting","index_mode","DEFAULTS","HASH","create","Ctor","createObject$1","clampIndex","wrapIndex","mp1","normalizeIndex","isIndexMode","TABLE","mode","parent","iset","MAX_DIMS","INDEX_MODE","isOrder","isBufferLengthCompatible","readonly","submode","xdtype","policy","superCtor","createObject","inherit","getIndex","searchValue","position","dispatch","fields","validateTable","number","complex","array","output_dtype_policy","POLICIES","validateOptions","ydtype","odtype","yorder","ndarrayfcn","xsh","ysh","broadcast","isPositiveInteger","isFunctionArray","fcns","strideArgs","hasOffsets","narrays","nfcns","iout","offsets","arrays","argc","strideX1","strideX2","offsetX","strideY","offsetY","iy","indexOfTypes","SETTERS","setter","stride2offset","unary","accessors","xget","yset","accessorSetter","strided","dtypeX","strideX","dtypeY","__dirname","abs$2","javascript","ndarraylike2object","xbuf","ref","accessorProtocol","zeroTo","take","loopOrder","avx","jy","vx","vy","ux","sort2ins","arraylike2object","indexed","BLOCK_SIZE_IN_BYTES","BLOCK_SIZE_IN_ELEMENTS","unaryBlockSize","nbx","nby","vind2bind","MODE","UNARY","ybuf","dx0","dy0","S0","dx1","dy1","dx2","dy2","i2","dx3","dy3","i3","dx4","dy4","i4","dx5","dy5","i5","dx6","dy6","i6","dx7","dy7","S7","i7","dx8","dy8","S8","i8","dx9","dy9","S9","i9","ACCESSOR_UNARY","BLOCKED_UNARY","bsize","ox1","oy1","ox","oy","blockSize","ox2","oy2","j2","ox3","oy3","s3","j3","ox4","oy4","s4","j4","ox5","oy5","s5","j5","ox6","oy6","s6","j6","ox7","oy7","s7","j7","ox8","oy8","s8","j8","ox9","oy9","s9","j9","BLOCKED_ACCESSOR_UNARY","resolveEnum","types2enums","dispatcher","xmmv","ymmv","shx","shy","iox","ioy","ndarray2object","ordx","ordy","accessorunarynd","unarynd","config","setProps$1","promotionRules","dtype1","dtype2","ntypes","dt1","dt2","PROMOTION_RULES","generateFullTable","safeCasts","SAFE_CASTS","generateTable","intersection","list1","list2","resolveStr","signatures","dtypes1","dtypes2","dtypes3","casts","dt3","t3","enums","sz","yget","zset","T","C64","C128","resolveCallback","callbacks","dtypeZ","strideZ","offsetZ","mapBy2","addBy","oz","mulBy","subBy","mapBy","absBy","abs2By","acosBy","acoshBy","acotBy","acothBy","acovercosBy","acoversinBy","ahavercosBy","ahaversinBy","asinBy","asinhBy","atanBy","atanhBy","avercosBy","aversinBy","besselj0By","besselj1By","bessely0By","bessely1By","binetBy","cbrtBy","cosBy","dmap","dabs","dabs2","dcbrt","dcbrtBy","dceil","ddeg2rad","dfloor","dinv","dmskmap","strideMask","offsetMask","dmskabs","om","dmskabs2","dmskcbrt","dmskceil","dmskdeg2rad","dmskfloor","dmskinv","dmskramp","dmskrsqrt","dmsksqrt","dmsktrunc","dramp","drsqrt","dsqrt","dtrunc","smap","sabs","sabs2","scbrt","sceil","sdeg2rad","sfloor","sinBy","sinv","smskmap","smskabs","smskabs2","smskcbrt","smskceil","smskdeg2rad","smskfloor","smskinv","smskramp","smskrsqrt","smsksqrt","smsktrunc","sqrtBy","sramp","srsqrt","ssqrt","strunc"],"mappings":"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,IACxBA,GAAM05C,EACNzC,GAAM0C,EAEP35C,GAAM65C,EACN5C,GAAM6C,CACN,CACD95C,GAAM+5C,EACN9C,GAAM+C,CACN,CACDh6C,GAAMk6C,EACNjD,GAAMkD,CACN,CACDn6C,GAAMq6C,EACNpD,GAAMqD,CACN,CACDt6C,GAAMw6C,EACNvD,GAAMwD,CACN,CACDz6C,GAAM26C,EACN1D,GAAM2D,CACN,CAQT,EC/MA,SAAyBvvD,EAAG4F,EAAG4B,GAC9B,IAAI+oD,EACAzD,EACAsB,EACAC,EACAG,EACAE,EACAG,EACAG,EACAG,EACAG,EACAG,EACAnB,EACAG,EACAE,EACAG,EACAG,EACAG,EACAG,EACAG,EACAc,EACAK,EACAG,EACAI,EACAI,EACAI,EACAI,EACAvB,EACAK,EACAG,EACAI,EACAI,EACAI,EACAI,EACA7R,EACAh3B,EACAvgB,EACAC,EACAooD,EACAI,EACAI,EACAI,EACAI,EACAh3C,EACAC,EACAu1C,EACAC,EACAh8C,EACAi3C,EACA//B,EACAC,EACA8iC,EACAG,GACAG,GACAG,GACAG,GACAI,GACAn4C,GACAS,GACA64C,GACAI,GACAI,GACAI,GACAI,GACAI,GACApc,GA0BJ,IApBAqK,GADArK,GAAIoX,GAAWntD,EAAEm8C,MAAOn8C,EAAEw7C,QAAS51C,EAAE41C,UAC9B4E,GACPllC,EAAK66B,GAAE76B,GACPC,EAAK46B,GAAE56B,GAGPo1C,EAAQK,GAAW5wD,EAAEw6C,MAAO50C,EAAE40C,OAG9BkW,EAAK1wD,EAAEmH,OACPwpD,EAAK/qD,EAAEuB,OAGP2lD,EAAO9sD,EAAEoyC,KACTgc,EAAOxoD,EAAEwsC,KAGTic,EAAMnzC,EAAG,GACTozC,EAAMnzC,EAAG,GAGHg3C,GAAK/R,EAAG,GAAI+R,GAAK,GAUtB,IATKA,GAAK5B,GACT2B,EAAKC,GACLA,GAAK,IAELD,EAAK3B,EACL4B,IAAM5B,GAEPyB,EAAMtB,EAAOyB,GAAGj3C,EAAG,GACnB+2C,EAAMtB,EAAOwB,GAAGh3C,EAAG,GACb42C,GAAK3R,EAA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CN7D,GAAM8D,CACN,CASV,ECvOA,SAAyB1vD,EAAG4F,EAAG4B,GAC9B,IAAI+oD,EACAzD,EACAsB,EACAC,EACAG,EACAE,EACAG,EACAG,EACAG,EACAG,EACAG,EACAI,EACAvB,EACAG,EACAE,EACAG,EACAG,EACAG,EACAG,EACAG,EACAI,EACAU,EACAK,EACAG,EACAI,EACAI,EACAI,EACAI,EACAI,EACA3B,EACAK,EACAG,EACAI,EACAI,EACAI,EACAI,EACAI,EACAjS,EACAh3B,EACAvgB,EACAC,EACAooD,EACAI,EACAI,EACAI,EACAI,EACAI,EACAp3C,EACAC,EACAu1C,EACAC,EACAh8C,GACAi3C,GACA//B,GACAC,GACA8iC,GACAG,GACAG,GACAG,GACAG,GACAI,GACAI,GACAv4C,GACAS,GACA64C,GACAI,GACAI,GACAI,GACAI,GACAI,GACAI,GACAxc,GA0BJ,IApBAqK,GADArK,GAAIoX,GAAWntD,EAAEm8C,MAAOn8C,EAAEw7C,QAAS51C,EAAE41C,UAC9B4E,GACPllC,EAAK66B,GAAE76B,GACPC,EAAK46B,GAAE56B,GAGPo1C,EAAQK,GAAW5wD,EAAEw6C,MAAO50C,EAAE40C,OAG9BkW,EAAK1wD,EAAEmH,OACPwpD,EAAK/qD,EAAEuB,OAGP2lD,EAAO9sD,EAAEoyC,KACTgc,EAAOxoD,EAAEwsC,KAGTic,EAAMnzC,EAAG,GACTozC,EAAMnzC,EAAG,GAGHo3C,GAAKnS,EAAG,GAAImS,GAAK,GAUtB,IATKA,GAAKhC,GACT+B,EAAKC,GACLA,GAAK,IAELD,EAAK/B,EACLgC,IAAMhC,GAEP6B,EAAM1B,EAAO6B,GAAGr3C,EAAG,GACnBm3C,EAAM1B,EAAO4B,GAAGp3C,EAAG,GACbg3C,GAAK/R,EAAG,GAAI+R,GAAK,GAYtB,IAXKA,GAAK5B,GACT2B,EAAKC,GACLA,GAAK,IAELD,EAAK3B,EACL4B,IAAM5B,GAEPV,EAAM30C,EAAG,GAAOg3C,EAAGh3C,EAAG,GACtB40C,EAAM30C,EAAG,GAAO+2C,EAAG/2C,EAAG,GACtB62C,EAAMI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AAMq6C,EACNpD,IAAMqD,CACN,CACDt6C,IAAMw6C,EACNvD,IAAMwD,CACN,CACDz6C,IAAM26C,EACN1D,IAAM2D,CACN,CACD56C,IAAM86C,EACN7D,IAAM8D,CACN,CACD/6C,IAAMk7C,EACNjE,IAAMkE,CACN,CAUX,EC/PA,SAA0B9vD,EAAG4F,EAAG4B,GAC/B,IAAI+oD,EACAzD,EACAsB,EACAC,EACAG,EACAE,EACAG,EACAG,EACAG,EACAG,EACAG,EACAI,EACAI,EACA3B,EACAG,EACAE,EACAG,EACAG,EACAG,EACAG,EACAG,EACAI,EACAI,EACAM,EACAK,EACAG,EACAI,EACAI,EACAI,EACAI,EACAI,EACAI,EACA/B,EACAK,EACAG,EACAI,EACAI,EACAI,EACAI,EACAI,EACAI,EACArS,EACAh3B,EACAvgB,EACAC,EACAooD,EACAI,EACAI,EACAI,EACAI,EACAI,EACAI,GACAx3C,GACAC,GACAu1C,GACAC,GACAh8C,GACAi3C,GACA//B,GACAC,GACA8iC,GACAG,GACAG,GACAG,GACAG,GACAI,GACAI,GACAI,GACA34C,GACAS,GACA64C,GACAI,GACAI,GACAI,GACAI,GACAI,GACAI,GACAI,GACA5c,GA0BJ,IApBAqK,GADArK,GAAIoX,GAAWntD,EAAEm8C,MAAOn8C,EAAEw7C,QAAS51C,EAAE41C,UAC9B4E,GACPllC,GAAK66B,GAAE76B,GACPC,GAAK46B,GAAE56B,GAGPo1C,EAAQK,GAAW5wD,EAAEw6C,MAAO50C,EAAE40C,OAG9BkW,GAAK1wD,EAAEmH,OACPwpD,GAAK/qD,EAAEuB,OAGP2lD,EAAO9sD,EAAEoyC,KACTgc,EAAOxoD,EAAEwsC,KAGTic,EAAMnzC,GAAG,GACTozC,EAAMnzC,GAAG,GAGHw3C,GAAKvS,EAAG,GAAIuS,GAAK,GAUtB,IATKA,GAAKpC,GACTmC,GAAKC,GACLA,GAAK,IAELD,GAAKnC,EACLoC,IAAMpC,GAEPiC,EAAM9B,GAAOiC,GAAGz3C,GAAG,GACnBu3C,EAAM9B,GAAOgC,GAAGx3C,GAAG,GACbo3C,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,EAAInC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK9lD,EAAI8lD,IAAO,CAC7B,IAAM9iC,EAAK,EAAGA,EAAKjjB,EAAIijB,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKzC,EAAIyC,IACtBvsB,EAAK8uD,EAAMxC,EAAIpkD,EAAKnI,EAAKytD,EAAMn4C,KAC/BA,GAAM05C,EACNzC,GAAM0C,EAEP35C,GAAM65C,EACN5C,GAAM6C,CACN,CACD95C,GAAM+5C,EACN9C,GAAM+C,CACN,CACDh6C,GAAMk6C,EACNjD,GAAMkD,CACN,CACDn6C,GAAMq6C,EACNpD,GAAMqD,CACN,CACDt6C,GAAMw6C,EACNvD,GAAMwD,CACN,CACDz6C,GAAM26C,EACN1D,GAAM2D,CACN,CAQT,ECrNA,SAAyBvvD,EAAG4F,EAAG4B,GAC9B,IAAI+oD,EACAzD,EACAsB,EACA/uD,EACAC,EACA+uD,EACAG,EACAE,EACAG,EACAG,EACAG,EACAG,EACAG,EACAnB,EACAG,EACAE,EACAG,EACAG,EACAG,EACAG,EACAG,EACAc,EACAK,EACAG,EACAI,EACAI,EACAI,EACAI,EACAvB,EACAK,EACAG,EACAI,EACAI,EACAI,EACAI,EACA7R,EACAh3B,EACAvgB,EACAC,EACAooD,EACAI,EACAI,EACAI,EACAI,EACAh3C,EACAC,EACAu1C,EACAC,EACAh8C,EACAi3C,EACA//B,EACAC,GACA8iC,GACAG,GACAG,GACAG,GACAG,GACAI,GACAn4C,GACAS,GACA64C,GACAI,GACAI,GACAI,GACAI,GACAI,GACApc,GA8BJ,IAxBAqK,GADArK,GAAIoX,GAAWntD,EAAEm8C,MAAOn8C,EAAEw7C,QAAS51C,EAAE41C,UAC9B4E,GACPllC,EAAK66B,GAAE76B,GACPC,EAAK46B,GAAE56B,GAGPo1C,EAAQK,GAAW5wD,EAAEw6C,MAAO50C,EAAE40C,OAG9BkW,EAAK1wD,EAAEmH,OACPwpD,EAAK/qD,EAAEuB,OAGP2lD,EAAO9sD,EAAEoyC,KACTgc,EAAOxoD,EAAEwsC,KAGTic,EAAMnzC,EAAG,G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AAKnI,EAAKytD,EAAMn4C,KAC/BA,GAAM05C,EACNzC,GAAM0C,EAEP35C,GAAM65C,EACN5C,GAAM6C,CACN,CACD95C,GAAM+5C,EACN9C,GAAM+C,CACN,CACDh6C,GAAMk6C,EACNjD,GAAMkD,CACN,CACDn6C,GAAMq6C,EACNpD,GAAMqD,CACN,CACDt6C,GAAMw6C,EACNvD,GAAMwD,CACN,CACDz6C,GAAM26C,EACN1D,GAAM2D,CACN,CACD56C,GAAM86C,EACN7D,GAAM8D,CACN,CASV,EC7OA,SAAyB1vD,EAAG4F,EAAG4B,GAC9B,IAAI+oD,EACAzD,EACAsB,EACA/uD,EACAC,EACA+uD,EACAG,EACAE,EACAG,EACAG,EACAG,EACAG,EACAG,EACAI,EACAvB,EACAG,EACAE,EACAG,EACAG,EACAG,EACAG,EACAG,EACAI,EACAU,EACAK,EACAG,EACAI,EACAI,EACAI,EACAI,EACAI,EACA3B,EACAK,EACAG,EACAI,EACAI,EACAI,EACAI,EACAI,EACAjS,EACAh3B,EACAvgB,EACAC,EACAooD,EACAI,EACAI,EACAI,EACAI,EACAI,EACAp3C,EACAC,EACAu1C,GACAC,GACAh8C,GACAi3C,GACA//B,GACAC,GACA8iC,GACAG,GACAG,GACAG,GACAG,GACAI,GACAI,GACAv4C,GACAS,GACA64C,GACAI,GACAI,GACAI,GACAI,GACAI,GACAI,GACAxc,GA8BJ,IAxBAqK,GADArK,GAAIoX,GAAWntD,EAAEm8C,MAAOn8C,EAAEw7C,QAAS51C,EAAE41C,UAC9B4E,GACPllC,EAAK66B,GAAE76B,GACPC,EAAK46B,GAAE56B,GAGPo1C,EAAQK,GAAW5wD,EAAEw6C,MAAO50C,EAAE40C,OAG9BkW,GAAK1wD,EAAEmH,OACPwpD,GAAK/qD,EAAEuB,OAGP2lD,EAAO9sD,EAAEoyC,KACTgc,EAAOxoD,EAAEwsC,KAGTic,EAAMnzC,EAAG,GACTozC,EAAMnzC,EAAG,GAGT9b,EAAMW,EAAEksD,UAAU,GAClB5sD,EAAMsG,EAAEsmD,UAAU,GAGZqG,GAAKnS,EAAG,GA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7B,IAAMH,GAAK,EAAGA,GAAKmC,EAAInC,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAK9lD,EAAI8lD,KAAO,CAC7B,IAAM9iC,GAAK,EAAGA,GAAKjjB,EAAIijB,KAAO,CAC7B,IAAMD,GAAK,EAAGA,GAAKzC,EAAIyC,KACtBvsB,EAAK8uD,EAAMxC,GAAIpkD,EAAKnI,EAAKytD,EAAMn4C,MAC/BA,IAAM05C,EACNzC,IAAM0C,EAEP35C,IAAM65C,EACN5C,IAAM6C,CACN,CACD95C,IAAM+5C,EACN9C,IAAM+C,CACN,CACDh6C,IAAMk6C,EACNjD,IAAMkD,CACN,CACDn6C,IAAMq6C,EACNpD,IAAMqD,CACN,CACDt6C,IAAMw6C,EACNvD,IAAMwD,CACN,CACDz6C,IAAM26C,EACN1D,IAAM2D,CACN,CACD56C,IAAM86C,EACN7D,IAAM8D,CACN,CACD/6C,IAAMk7C,EACNjE,IAAMkE,CACN,CAUX,ECrQA,SAA0B9vD,EAAG4F,EAAG4B,GAC/B,IAAI+oD,EACAzD,EACAsB,EACA/uD,EACAC,EACA+uD,EACAG,EACAE,EACAG,EACAG,EACAG,EACAG,EACAG,EACAI,EACAI,EACA3B,EACAG,EACAE,EACAG,EACAG,EACAG,EACAG,EACAG,EACAI,EACAI,EACAM,EACAK,EACAG,EACAI,EACAI,EACAI,EACAI,EACAI,EACAI,EACA/B,EACAK,EACAG,EACAI,EACAI,EACAI,EACAI,EACAI,EACAI,EACArS,EACAh3B,EACAvgB,EACAC,EACAooD,EACAI,EACAI,EACAI,EACAI,GACAI,GACAI,GACAx3C,GACAC,GACAu1C,GACAC,GACAh8C,GACAi3C,GACA//B,GACAC,GACA8iC,GACAG,GACAG,GACAG,GACAG,GACAI,GACAI,GACAI,GACA34C,GACAS,GACA64C,GACAI,GACAI,GACAI,GACAI,GACAI,GACAI,GACAI,GACA5c,GA8BJ,IAxBAqK,GADArK,GAAIoX,GAAWntD,EAAEm8C,MAAOn8C,EAAEw7C,QAAS51C,EAAE41C,UAC9B4E,GACPllC,GAAK66B,GAAE76B,GA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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,18,21,24,25,26,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,79,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,103,104,105,106,107,108,109,110,142,149,150,151,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,183,188,193,194,211,212,213,214,215,216,217,218,220,222,226,227,228,229,230,231,232,233,234,235,236,237,238,239,241,242,256,278,279,280,291,294,303,306,310,313,329,330,340,343,346,347,353,365,407,427,432,452,474,483,484,485,497,499,500,501,503,587,619,654,673,682,771,825,839,840,841,842,843,844,845,846,847,848,849,850,851,852,853,854,855,856,857,858,859,860,861,862,863,864,865,866,867,868,883,884,885,887,893,894,895,896,897,898,899,900,901,902,903,904,905,906,907,908,909,910,911,912,913,914,915,916,917,918,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,1117,1118,1119,1120,1121,1122,1123,1124,1125,1126,1127,1128,1129,1130,1131,1132,1133,1134,1135,1136,1137,1138,1139,1140,1141,1142,1143,1144,1145,1146,1147,1148,1149,1150,1151,1152,1153,1154,1155,1156,1157,1158,1159,1160,1161,1162,1163,1164,1165,1166,1167,1168,1169,1170,1171,1172,1173,1174,1175,1176,1177,1178,1179,1180,1181,1182,1183,1184,1185,1186,1187,1188,1189,1190,1191,1192,1193,1194,1195,1196,1197,1198,1199,1200,1201,1202,1203,1204,1205,1206,1207,1208,1209,1210,1211,1212,1213,1214,1215,1216,1217,1218,1219,1220,1221,1222,1223,1224,1225,1226,1227,1228,1229,1230,1231,1232,1233,1234,1235,1236,1237,1238,1239,1240,1241,1242,1243,1244,1245,1246,1247,1248,1249,1250,1251,1252,1253,1254,1255,1256,1257,1258,1259,1260,1261,1262,1263,1264,1265,1266,1267,1268,1269,1270,1271,1272,1273,1274,1275,1276,1277,1278,1279,1280,1281,1282,1283,1284,1285,1286,1287,1288,1289,1290,1291,1292,1293,1294,1295,1296,1297,1298,1299,1300,1302,1303,1304,1305,1309,1312,1313,1314,1315,1316,1317,1318,1319,1320,1321,1322,1323,1324,1325,1326,1327,1328,1329,1330,1331,1332,1333,1334,1335,1336,1342,1343,1344,1345,1346,1347,1348,1349,1350,1351,1352,1353,1354,1355,1356,1357,1358,1359,1360,1361,1362,1363,1364,1365,1366,1367,1368,1369,1370,1371,1372,1373,1374,1375,1376,1377,1378,1379,1380,1381,1382,1383,1384,1385,1386,1387,1388,1389,1390,1391,1392,1393,1394,1395,1396,1397,1400,1401,1406,1407,1408,1409,1411,1412,1413,1414,1415,1416,1417,1418,1419,1425,1426,1427,1428,1429,1430,1432,1454,1455,1456,1457,1458,1459,1461,1543,1544,1548,1584,1585,1587,1667,1668,1670,1701,1702,1704]} \ No newline at end of file diff --git a/stats_browser.html b/stats_browser.html deleted file mode 100644 index 5f291a116..000000000 --- a/stats_browser.html +++ /dev/null @@ -1,4842 +0,0 @@ - - - - - - - - Rollup Visualizer - - - -
- - - - - diff --git a/stats_node.html b/stats_node.html deleted file mode 100644 index 079ec3052..000000000 --- a/stats_node.html +++ /dev/null @@ -1,4842 +0,0 @@ - - - - - - - - Rollup Visualizer - - - -
- - - - -