numpy-ts 0.12.0 → 0.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +18 -14
- package/dist/esm/common/broadcasting.js +1 -0
- package/dist/esm/common/complex.js +1 -0
- package/dist/esm/common/dtype.js +1 -0
- package/dist/esm/common/internal/compute.js +1 -0
- package/dist/esm/common/internal/indexing.js +1 -0
- package/dist/esm/common/ndarray-core.js +1 -0
- package/dist/esm/common/ops/advanced.js +1 -0
- package/dist/esm/common/ops/arithmetic.js +1 -0
- package/dist/esm/common/ops/bitwise.js +1 -0
- package/dist/esm/common/ops/comparison.js +1 -0
- package/dist/esm/common/ops/complex.js +1 -0
- package/dist/esm/common/ops/exponential.js +1 -0
- package/dist/esm/common/ops/fft.js +1 -0
- package/dist/esm/common/ops/formatting.js +2 -0
- package/dist/esm/common/ops/gradient.js +1 -0
- package/dist/esm/common/ops/hyperbolic.js +1 -0
- package/dist/esm/common/ops/linalg.js +2 -0
- package/dist/esm/common/ops/logic.js +1 -0
- package/dist/esm/common/ops/random.js +1 -0
- package/dist/esm/common/ops/reduction.js +1 -0
- package/dist/esm/common/ops/rounding.js +1 -0
- package/dist/esm/common/ops/sets.js +1 -0
- package/dist/esm/common/ops/shape.js +1 -0
- package/dist/esm/common/ops/sorting.js +1 -0
- package/dist/esm/common/ops/statistics.js +1 -0
- package/dist/esm/common/ops/trig.js +1 -0
- package/dist/esm/common/slicing.js +1 -0
- package/dist/esm/common/storage.js +1 -0
- package/dist/esm/core/advanced.js +1 -0
- package/dist/esm/core/arithmetic.js +1 -0
- package/dist/esm/core/bitwise.js +1 -0
- package/dist/esm/core/complex.js +1 -0
- package/dist/esm/core/creation.js +1 -0
- package/dist/esm/core/formatting.js +1 -0
- package/dist/esm/core/gradient.js +1 -0
- package/dist/esm/core/index.js +1 -0
- package/dist/esm/core/linalg.js +1 -0
- package/dist/esm/core/logic.js +1 -0
- package/dist/esm/core/polynomial.js +1 -0
- package/dist/esm/core/reduction.js +1 -0
- package/dist/esm/core/rounding.js +1 -0
- package/dist/esm/core/sets.js +1 -0
- package/dist/esm/core/shape-extra.js +1 -0
- package/dist/esm/core/shape.js +1 -0
- package/dist/esm/core/sorting.js +1 -0
- package/dist/esm/core/statistics.js +1 -0
- package/dist/esm/core/trig.js +1 -0
- package/dist/esm/core/typechecking.js +1 -0
- package/dist/esm/core/types.js +1 -0
- package/dist/esm/core/utility.js +1 -0
- package/dist/esm/core.js +1 -0
- package/dist/esm/full/index.js +1 -0
- package/dist/esm/full/ndarray.js +1 -0
- package/dist/esm/index.js +1 -0
- package/dist/esm/io/index.js +1 -0
- package/dist/esm/io/npy/format.js +1 -0
- package/dist/esm/io/npy/index.js +1 -0
- package/dist/esm/io/npy/parser.js +1 -0
- package/dist/esm/io/npy/serializer.js +2 -0
- package/dist/esm/io/npz/index.js +1 -0
- package/dist/esm/io/npz/parser.js +1 -0
- package/dist/esm/io/npz/serializer.js +1 -0
- package/dist/esm/io/txt/index.js +1 -0
- package/dist/esm/io/txt/parser.js +1 -0
- package/dist/esm/io/txt/serializer.js +2 -0
- package/dist/esm/io/zip/index.js +1 -0
- package/dist/esm/io/zip/reader.js +1 -0
- package/dist/esm/io/zip/types.js +1 -0
- package/dist/esm/io/zip/writer.js +1 -0
- package/dist/esm/node.js +1 -0
- package/dist/numpy-ts.browser.js +5 -2
- package/dist/numpy-ts.node-io.cjs +5 -3
- package/dist/numpy-ts.node-io.cjs.map +4 -4
- package/dist/numpy-ts.node-io.mjs +5 -3
- package/dist/numpy-ts.node-io.mjs.map +4 -4
- package/dist/numpy-ts.node.cjs +5 -2
- package/dist/numpy-ts.node.cjs.map +4 -4
- package/dist/types/common/complex.d.ts +94 -0
- package/dist/types/{internal → common/internal}/compute.d.ts +1 -1
- package/dist/types/{internal → common/internal}/indexing.d.ts +6 -0
- package/dist/types/common/ndarray-core.d.ts +126 -0
- package/dist/types/{ops → common/ops}/advanced.d.ts +2 -2
- package/dist/types/{ops → common/ops}/arithmetic.d.ts +1 -1
- package/dist/types/{ops → common/ops}/bitwise.d.ts +1 -1
- package/dist/types/{ops → common/ops}/comparison.d.ts +1 -1
- package/dist/types/{ops → common/ops}/complex.d.ts +1 -1
- package/dist/types/{ops → common/ops}/exponential.d.ts +1 -1
- package/dist/types/common/ops/fft.d.ts +166 -0
- package/dist/types/common/ops/formatting.d.ts +229 -0
- package/dist/types/{ops → common/ops}/gradient.d.ts +1 -1
- package/dist/types/{ops → common/ops}/hyperbolic.d.ts +1 -1
- package/dist/types/{ops → common/ops}/linalg.d.ts +24 -3
- package/dist/types/{ops → common/ops}/logic.d.ts +2 -2
- package/dist/types/common/ops/random.d.ts +376 -0
- package/dist/types/{ops → common/ops}/reduction.d.ts +2 -2
- package/dist/types/{ops → common/ops}/rounding.d.ts +1 -1
- package/dist/types/{ops → common/ops}/sets.d.ts +1 -1
- package/dist/types/{ops → common/ops}/shape.d.ts +1 -1
- package/dist/types/{ops → common/ops}/sorting.d.ts +1 -1
- package/dist/types/{ops → common/ops}/statistics.d.ts +1 -1
- package/dist/types/{ops → common/ops}/trig.d.ts +1 -1
- package/dist/types/{core → common}/storage.d.ts +1 -0
- package/dist/types/core/advanced.d.ts +54 -0
- package/dist/types/core/arithmetic.d.ts +110 -0
- package/dist/types/core/bitwise.d.ts +34 -0
- package/dist/types/core/complex.d.ts +15 -90
- package/dist/types/core/creation.d.ts +98 -0
- package/dist/types/core/formatting.d.ts +29 -0
- package/dist/types/core/gradient.d.ts +14 -0
- package/dist/types/core/index.d.ts +40 -0
- package/dist/types/core/linalg.d.ts +141 -0
- package/dist/types/core/logic.d.ts +72 -0
- package/dist/types/core/polynomial.d.ts +50 -0
- package/dist/types/core/reduction.d.ts +82 -0
- package/dist/types/core/rounding.d.ts +24 -0
- package/dist/types/core/sets.d.ts +48 -0
- package/dist/types/core/shape-extra.d.ts +24 -0
- package/dist/types/core/shape.d.ts +77 -0
- package/dist/types/core/sorting.d.ts +34 -0
- package/dist/types/core/statistics.d.ts +32 -0
- package/dist/types/core/trig.d.ts +58 -0
- package/dist/types/core/typechecking.d.ts +50 -0
- package/dist/types/core/types.d.ts +43 -0
- package/dist/types/core/utility.d.ts +30 -0
- package/dist/types/core.d.ts +30 -0
- package/dist/types/full/index.d.ts +603 -0
- package/dist/types/full/ndarray.d.ts +880 -0
- package/dist/types/index.d.ts +140 -26
- package/dist/types/io/npy/format.d.ts +1 -1
- package/dist/types/io/npy/parser.d.ts +3 -3
- package/dist/types/io/npy/serializer.d.ts +2 -2
- package/dist/types/io/npz/parser.d.ts +4 -4
- package/dist/types/io/npz/serializer.d.ts +6 -6
- package/dist/types/io/txt/parser.d.ts +5 -5
- package/dist/types/io/txt/serializer.d.ts +2 -2
- package/dist/types/node.d.ts +12 -8
- package/package.json +30 -29
- package/dist/numpy-ts.esm.js +0 -2
- package/dist/types/core/ndarray.d.ts +0 -3923
- package/dist/types/ops/random.d.ts +0 -136
- /package/dist/types/{core → common}/broadcasting.d.ts +0 -0
- /package/dist/types/{core → common}/dtype.d.ts +0 -0
- /package/dist/types/{core → common}/slicing.d.ts +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{ArrayStorage as A}from"../storage";import{isBigIntDType as J}from"../dtype";const B=624,T=397,Y=2567483615,G=2147483648,U=2147483647;let I={mt:new Uint32Array(B),mti:B+1};function R(t){const r=I.mt;r[0]=t>>>0;for(let e=1;e<B;e++){const n=r[e-1]^r[e-1]>>>30;r[e]=Math.imul(1812433253,n)+e>>>0}I.mti=B}function L(){const t=I.mt;let r;const e=[0,Y];if(I.mti>=B){let n;for(I.mti===B+1&&R(5489),n=0;n<B-T;n++)r=t[n]&G|t[n+1]&U,t[n]=t[n+T]^r>>>1^e[r&1];for(;n<B-1;n++)r=t[n]&G|t[n+1]&U,t[n]=t[n+(T-B)]^r>>>1^e[r&1];r=t[B-1]&G|t[0]&U,t[B-1]=t[T-1]^r>>>1^e[r&1],I.mti=0}return r=t[I.mti++],r^=r>>>11,r^=r<<7&2636928640,r^=r<<15&4022730752,r^=r>>>18,r>>>0}function c(){const t=L()>>>5,r=L()>>>6;return(t*67108864+r)/9007199254740992}const $=2468251765,V=1492356589,z=1135663077,rr=2337405405,tr=3389127133,er=1232336661,N=16,q=4;function M(t){return t>>>0}function j(t,r){return t=M(M(t)^r.val),r.val=M(Math.imul(r.val,$)),t=M(Math.imul(t,r.val)),t=M(t^t>>>N),t}function nr(t,r){let e=M(M(Math.imul(tr,M(t)))-M(Math.imul(er,M(r))));return e=M(e^e>>>N),e}function or(t){const r=[0,0,0,0],e=[t>>>0],n={val:z};for(let a=0;a<q;a++)a<e.length?r[a]=j(e[a],n):r[a]=j(0,n);for(let a=0;a<q;a++)for(let i=0;i<q;i++)if(a!==i){const s=j(r[a],n);r[i]=nr(r[i],s)}return r}function ar(t,r){const e=[];let n=rr;for(let a=0;a<r;a++){const i=t[a%q];let s=M(i^n);n=M(Math.imul(n,V)),s=M(Math.imul(s,n)),s=M(s^s>>>N),e.push(s)}return e}const ur=BigInt("4865540595714422341"),sr=BigInt("2549297995355413924"),ir=sr<<BigInt(64)|ur,D=BigInt("0xffffffffffffffff"),C=(BigInt(1)<<BigInt(128))-BigInt(1);function mr(t){const r=t>>BigInt(64),e=t&D,n=(r^e)&D,a=Number(t>>BigInt(122));return(n>>BigInt(a)|n<<BigInt(64-a))&D}function k(t,r){return t*ir+r&C}function K(t){const r=or(t),e=ar(r,8),n=BigInt(e[0])|BigInt(e[1])<<BigInt(32),a=BigInt(e[2])|BigInt(e[3])<<BigInt(32),i=BigInt(e[4])|BigInt(e[5])<<BigInt(32),s=BigInt(e[6])|BigInt(e[7])<<BigInt(32),u=n<<BigInt(64)|a;let o=(i<<BigInt(64)|s)<<BigInt(1);o=(o|BigInt(1))&C;let m=BigInt(0);return m=k(m,o),m=m+u&C,m=k(m,o),{state:m,inc:o}}function cr(t){return t.state=k(t.state,t.inc),mr(t.state)}function lr(t){const e=cr(t)>>BigInt(11);return Number(e)/9007199254740992}class fr{constructor(r){if(r!==void 0)this._pcgState=K(r);else{const e=Math.floor(Math.random()*4294967296);this._pcgState=K(e)}}_randomFloat(){return lr(this._pcgState)}random(r){if(r===void 0)return this._randomFloat();const e=Array.isArray(r)?r:[r],n=e.reduce((s,u)=>s*u,1),a=A.zeros(e,"float64"),i=a.data;for(let s=0;s<n;s++)i[s]=this._randomFloat();return a}integers(r,e,n){if(e===void 0&&(e=r,r=0),n===void 0)return Math.floor(this._randomFloat()*(e-r))+r;const a=Array.isArray(n)?n:[n],i=a.reduce((m,f)=>m*f,1),s=A.zeros(a,"int64"),u=s.data,o=e-r;for(let m=0;m<i;m++)u[m]=BigInt(Math.floor(this._randomFloat()*o)+r);return s}standard_normal(r){if(r===void 0)return _(this._randomFloat.bind(this));const e=Array.isArray(r)?r:[r],n=e.reduce((s,u)=>s*u,1),a=A.zeros(e,"float64"),i=a.data;for(let s=0;s<n;s+=2){const[u,o]=E(this._randomFloat.bind(this));i[s]=u,s+1<n&&(i[s+1]=o)}return a}normal(r=0,e=1,n){if(n===void 0)return _(this._randomFloat.bind(this))*e+r;const a=Array.isArray(n)?n:[n],i=a.reduce((o,m)=>o*m,1),s=A.zeros(a,"float64"),u=s.data;for(let o=0;o<i;o+=2){const[m,f]=E(this._randomFloat.bind(this));u[o]=m*e+r,o+1<i&&(u[o+1]=f*e+r)}return s}uniform(r=0,e=1,n){if(n===void 0)return this._randomFloat()*(e-r)+r;const a=Array.isArray(n)?n:[n],i=a.reduce((m,f)=>m*f,1),s=A.zeros(a,"float64"),u=s.data,o=e-r;for(let m=0;m<i;m++)u[m]=this._randomFloat()*o+r;return s}choice(r,e,n=!0,a){return X(r,e,n,a,this._randomFloat.bind(this))}permutation(r){return H(r,this._randomFloat.bind(this))}shuffle(r){Q(r,this._randomFloat.bind(this))}exponential(r=1,e){if(e===void 0)return-Math.log(1-this._randomFloat())*r;const n=Array.isArray(e)?e:[e],a=n.reduce((u,o)=>u*o,1),i=A.zeros(n,"float64"),s=i.data;for(let u=0;u<a;u++)s[u]=-Math.log(1-this._randomFloat())*r;return i}poisson(r=1,e){if(e===void 0)return F(r,this._randomFloat.bind(this));const n=Array.isArray(e)?e:[e],a=n.reduce((u,o)=>u*o,1),i=A.zeros(n,"int64"),s=i.data;for(let u=0;u<a;u++)s[u]=BigInt(F(r,this._randomFloat.bind(this)));return i}binomial(r,e,n){if(n===void 0)return P(r,e,this._randomFloat.bind(this));const a=Array.isArray(n)?n:[n],i=a.reduce((o,m)=>o*m,1),s=A.zeros(a,"int64"),u=s.data;for(let o=0;o<i;o++)u[o]=BigInt(P(r,e,this._randomFloat.bind(this)));return s}}function hr(t){return new fr(t)}function gr(t){t==null&&(t=Math.floor(Date.now()^Math.random()*4294967296)),R(t>>>0)}function pr(){return{mt:Array.from(I.mt),mti:I.mti}}function Sr(t){I.mt=new Uint32Array(t.mt),I.mti=t.mti}function _(t){let r,e;do r=t(),e=t();while(r===0);return Math.sqrt(-2*Math.log(r))*Math.cos(2*Math.PI*e)}function E(t){let r,e;do r=t(),e=t();while(r===0);const n=Math.sqrt(-2*Math.log(r)),a=2*Math.PI*e;return[n*Math.cos(a),n*Math.sin(a)]}function F(t,r){if(t<30){const e=Math.exp(-t);let n=0,a=1;do n++,a*=r();while(a>e);return n-1}else{const e=_(r);return Math.max(0,Math.round(t+Math.sqrt(t)*e))}}function P(t,r,e){if(t*r<10&&t*(1-r)<10){let n=0;for(let a=0;a<t;a++)e()<r&&n++;return n}else{const n=t*r,a=Math.sqrt(t*r*(1-r)),i=_(e);return Math.max(0,Math.min(t,Math.round(n+a*i)))}}function O(t){if(t===void 0)return c();const r=Array.isArray(t)?t:[t],e=r.reduce((i,s)=>i*s,1),n=A.zeros(r,"float64"),a=n.data;for(let i=0;i<e;i++)a[i]=c();return n}function Mr(...t){if(t.length===0)return c();const r=t.reduce((a,i)=>a*i,1),e=A.zeros(t,"float64"),n=e.data;for(let a=0;a<r;a++)n[a]=c();return e}function wr(...t){if(t.length===0)return _(c);const r=t.reduce((a,i)=>a*i,1),e=A.zeros(t,"float64"),n=e.data;for(let a=0;a<r;a+=2){const[i,s]=E(c);n[a]=i,a+1<r&&(n[a+1]=s)}return e}function br(t,r,e,n="int64"){r==null&&(r=t,t=0);const a=r-t;if(e===void 0)return Math.floor(c()*a)+t;const i=Array.isArray(e)?e:[e],s=i.reduce((m,f)=>m*f,1),u=A.zeros(i,n),o=u.data;if(J(n)){const m=o;for(let f=0;f<s;f++)m[f]=BigInt(Math.floor(c()*a)+t)}else{const m=o;for(let f=0;f<s;f++)m[f]=Math.floor(c()*a)+t}return u}function xr(t=0,r=1,e){if(e===void 0)return c()*(r-t)+t;const n=Array.isArray(e)?e:[e],a=n.reduce((o,m)=>o*m,1),i=A.zeros(n,"float64"),s=i.data,u=r-t;for(let o=0;o<a;o++)s[o]=c()*u+t;return i}function Ir(t=0,r=1,e){if(e===void 0)return _(c)*r+t;const n=Array.isArray(e)?e:[e],a=n.reduce((u,o)=>u*o,1),i=A.zeros(n,"float64"),s=i.data;for(let u=0;u<a;u+=2){const[o,m]=E(c);s[u]=o*r+t,u+1<a&&(s[u+1]=m*r+t)}return i}function _r(t){if(t===void 0)return _(c);const r=Array.isArray(t)?t:[t],e=r.reduce((i,s)=>i*s,1),n=A.zeros(r,"float64"),a=n.data;for(let i=0;i<e;i+=2){const[s,u]=E(c);a[i]=s,i+1<e&&(a[i+1]=u)}return n}function dr(t=1,r){if(r===void 0)return-Math.log(1-c())*t;const e=Array.isArray(r)?r:[r],n=e.reduce((s,u)=>s*u,1),a=A.zeros(e,"float64"),i=a.data;for(let s=0;s<n;s++)i[s]=-Math.log(1-c())*t;return a}function Br(t=1,r){if(r===void 0)return F(t,c);const e=Array.isArray(r)?r:[r],n=e.reduce((s,u)=>s*u,1),a=A.zeros(e,"int64"),i=a.data;for(let s=0;s<n;s++)i[s]=BigInt(F(t,c));return a}function Fr(t,r,e){if(e===void 0)return P(t,r,c);const n=Array.isArray(e)?e:[e],a=n.reduce((u,o)=>u*o,1),i=A.zeros(n,"int64"),s=i.data;for(let u=0;u<a;u++)s[u]=BigInt(P(t,r,c));return i}function X(t,r,e=!0,n,a=c){let i;if(typeof t=="number")i=Array.from({length:t},(d,l)=>l);else{const d=t.size;i=[];for(let l=0;l<d;l++)i.push(Number(t.iget(l)))}const s=i.length;if(s===0)throw new Error("cannot take a sample from an empty sequence");let u;if(n!==void 0){if(Array.isArray(n))u=n;else{const l=n.size;u=[];for(let y=0;y<l;y++)u.push(Number(n.iget(y)))}if(u.length!==s)throw new Error("p and a must have the same size");const d=u.reduce((l,y)=>l+y,0);Math.abs(d-1)>1e-10&&(u=u.map(l=>l/d))}if(r===void 0){if(u){const d=a();let l=0;for(let y=0;y<s;y++)if(l+=u[y],d<l)return i[y];return i[s-1]}return i[Math.floor(a()*s)]}const o=Array.isArray(r)?r:[r],m=o.reduce((d,l)=>d*l,1);if(!e&&m>s)throw new Error("cannot take a larger sample than population when replace=false");const f=A.zeros(o,"float64"),g=f.data;if(e)if(u){const d=new Array(s);d[0]=u[0];for(let l=1;l<s;l++)d[l]=d[l-1]+u[l];for(let l=0;l<m;l++){const y=a();let b=0;for(;b<s-1&&y>=d[b];)b++;g[l]=i[b]}}else for(let d=0;d<m;d++)g[d]=i[Math.floor(a()*s)];else{const d=[...i],l=u?[...u]:void 0;for(let y=0;y<m;y++){let b;if(l){const h=l.reduce((x,v)=>x+v,0),p=a()*h;let S=0;b=0;for(let x=0;x<d.length;x++)if(S+=l[x],p<S){b=x;break}b===0&&p>=S&&(b=d.length-1)}else b=Math.floor(a()*d.length);g[y]=d[b],d.splice(b,1),l&&l.splice(b,1)}}return f}function vr(t,r,e=!0,n){return X(t,r,e,n,c)}function H(t,r=c){let e;if(typeof t=="number"){const a=new Float64Array(t);for(let i=0;i<t;i++)a[i]=i;e=A.fromData(a,[t],"float64")}else e=t.copy();const n=e.size;for(let a=n-1;a>0;a--){const i=Math.floor(r()*(a+1)),s=e.iget(a);e.iset(a,e.iget(i)),e.iset(i,s)}return e}function Er(t){return H(t,c)}function Q(t,r=c){const e=t.size;for(let n=e-1;n>0;n--){const a=Math.floor(r()*(n+1)),i=t.iget(n);t.iset(n,t.iget(a)),t.iset(a,i)}}function Pr(t){Q(t,c)}function Tr(t){return O(t)}function qr(t){return O(t)}function Gr(t){return O(t)}function Ur(t,r,e){return r===void 0&&(r=t,t=1),br(t,r+1,e)}function Lr(t){const r=new Uint8Array(t);for(let e=0;e<t;e++)r[e]=L()&255;return r}let W={name:"MT19937",state:I};function Nr(){return W}function jr(t){W=t}function Dr(t){return dr(1,t)}function Cr(t,r){if(t<=0)throw new Error("shape must be positive");return Z(t,1,r)}function kr(t){if(t===void 0)return Math.tan(Math.PI*(c()-.5));const r=Array.isArray(t)?t:[t],e=r.reduce((i,s)=>i*s,1),n=A.zeros(r,"float64"),a=n.data;for(let i=0;i<e;i++)a[i]=Math.tan(Math.PI*(c()-.5));return n}function Or(t,r){if(t<=0)throw new Error("df must be positive");const e=u=>{const o=_(u),m=w(t/2,2,u);return o/Math.sqrt(m/t)};if(r===void 0)return e(c);const n=Array.isArray(r)?r:[r],a=n.reduce((u,o)=>u*o,1),i=A.zeros(n,"float64"),s=i.data;for(let u=0;u<a;u++)s[u]=e(c);return i}function w(t,r,e){if(t<1){const i=e();return w(1+t,r,e)*Math.pow(i,1/t)}const n=t-1/3,a=1/Math.sqrt(9*n);for(;;){let i,s;do i=_(e),s=1+a*i;while(s<=0);s=s*s*s;const u=e(),o=i*i;if(u<1-.0331*o*o||Math.log(u)<.5*o+n*(1-s+Math.log(s)))return n*s*r}}function Z(t,r=1,e){if(t<=0)throw new Error("shape must be positive");if(r<=0)throw new Error("scale must be positive");if(e===void 0)return w(t,r,c);const n=Array.isArray(e)?e:[e],a=n.reduce((u,o)=>u*o,1),i=A.zeros(n,"float64"),s=i.data;for(let u=0;u<a;u++)s[u]=w(t,r,c);return i}function Rr(t,r,e){if(t<=0||r<=0)throw new Error("a and b must be positive");const n=o=>{const m=w(t,1,o),f=w(r,1,o);return m/(m+f)};if(e===void 0)return n(c);const a=Array.isArray(e)?e:[e],i=a.reduce((o,m)=>o*m,1),s=A.zeros(a,"float64"),u=s.data;for(let o=0;o<i;o++)u[o]=n(c);return s}function Kr(t=0,r=1,e){if(r<=0)throw new Error("scale must be positive");const n=o=>{const m=o()-.5;return t-r*Math.sign(m)*Math.log(1-2*Math.abs(m))};if(e===void 0)return n(c);const a=Array.isArray(e)?e:[e],i=a.reduce((o,m)=>o*m,1),s=A.zeros(a,"float64"),u=s.data;for(let o=0;o<i;o++)u[o]=n(c);return s}function Xr(t=0,r=1,e){if(r<=0)throw new Error("scale must be positive");const n=o=>{const m=o();return t+r*Math.log(m/(1-m))};if(e===void 0)return n(c);const a=Array.isArray(e)?e:[e],i=a.reduce((o,m)=>o*m,1),s=A.zeros(a,"float64"),u=s.data;for(let o=0;o<i;o++)u[o]=n(c);return s}function Hr(t=0,r=1,e){if(r<=0)throw new Error("sigma must be positive");const n=o=>Math.exp(t+r*_(o));if(e===void 0)return n(c);const a=Array.isArray(e)?e:[e],i=a.reduce((o,m)=>o*m,1),s=A.zeros(a,"float64"),u=s.data;for(let o=0;o<i;o++)u[o]=n(c);return s}function Qr(t=0,r=1,e){if(r<=0)throw new Error("scale must be positive");const n=o=>{const m=o();return t-r*Math.log(-Math.log(m))};if(e===void 0)return n(c);const a=Array.isArray(e)?e:[e],i=a.reduce((o,m)=>o*m,1),s=A.zeros(a,"float64"),u=s.data;for(let o=0;o<i;o++)u[o]=n(c);return s}function Wr(t,r){if(t<=0)throw new Error("a must be positive");const e=u=>{const o=u();return Math.pow(1-o,-1/t)-1};if(r===void 0)return e(c);const n=Array.isArray(r)?r:[r],a=n.reduce((u,o)=>u*o,1),i=A.zeros(n,"float64"),s=i.data;for(let u=0;u<a;u++)s[u]=e(c);return i}function Zr(t,r){if(t<=0)throw new Error("a must be positive");const e=u=>{const o=u();return Math.pow(o,1/t)};if(r===void 0)return e(c);const n=Array.isArray(r)?r:[r],a=n.reduce((u,o)=>u*o,1),i=A.zeros(n,"float64"),s=i.data;for(let u=0;u<a;u++)s[u]=e(c);return i}function Jr(t=1,r){if(t<=0)throw new Error("scale must be positive");const e=u=>{const o=u();return t*Math.sqrt(-2*Math.log(o))};if(r===void 0)return e(c);const n=Array.isArray(r)?r:[r],a=n.reduce((u,o)=>u*o,1),i=A.zeros(n,"float64"),s=i.data;for(let u=0;u<a;u++)s[u]=e(c);return i}function Yr(t,r,e,n){if(t>r||r>e||t===e)throw new Error("must have left <= mode <= right and left < right");const a=m=>{const f=m(),g=(r-t)/(e-t);return f<g?t+Math.sqrt(f*(e-t)*(r-t)):e-Math.sqrt((1-f)*(e-t)*(e-r))};if(n===void 0)return a(c);const i=Array.isArray(n)?n:[n],s=i.reduce((m,f)=>m*f,1),u=A.zeros(i,"float64"),o=u.data;for(let m=0;m<s;m++)o[m]=a(c);return u}function $r(t,r,e){if(t<=0)throw new Error("mean must be positive");if(r<=0)throw new Error("scale must be positive");const n=o=>{const m=_(o),f=m*m,g=t/(2*r),d=t+g*(t*f-Math.sqrt(4*t*r*f+t*t*f*f));return o()<=t/(t+d)?d:t*t/d};if(e===void 0)return n(c);const a=Array.isArray(e)?e:[e],i=a.reduce((o,m)=>o*m,1),s=A.zeros(a,"float64"),u=s.data;for(let o=0;o<i;o++)u[o]=n(c);return s}function Vr(t,r){if(t<=0)throw new Error("a must be positive");const e=u=>{const o=u();return Math.pow(-Math.log(1-o),1/t)};if(r===void 0)return e(c);const n=Array.isArray(r)?r:[r],a=n.reduce((u,o)=>u*o,1),i=A.zeros(n,"float64"),s=i.data;for(let u=0;u<a;u++)s[u]=e(c);return i}function zr(t,r){if(t<=0)throw new Error("df must be positive");return Z(t/2,2,r)}function rt(t,r,e){if(t<=0)throw new Error("df must be positive");if(r<0)throw new Error("nonc must be non-negative");const n=o=>{if(r===0)return w(t/2,2,o);const m=F(r/2,o);return w(t/2+m,2,o)};if(e===void 0)return n(c);const a=Array.isArray(e)?e:[e],i=a.reduce((o,m)=>o*m,1),s=A.zeros(a,"float64"),u=s.data;for(let o=0;o<i;o++)u[o]=n(c);return s}function tt(t,r,e){if(t<=0)throw new Error("dfnum must be positive");if(r<=0)throw new Error("dfden must be positive");const n=o=>{const m=w(t/2,2,o),f=w(r/2,2,o);return m/t/(f/r)};if(e===void 0)return n(c);const a=Array.isArray(e)?e:[e],i=a.reduce((o,m)=>o*m,1),s=A.zeros(a,"float64"),u=s.data;for(let o=0;o<i;o++)u[o]=n(c);return s}function et(t,r,e,n){if(t<=0)throw new Error("dfnum must be positive");if(r<=0)throw new Error("dfden must be positive");if(e<0)throw new Error("nonc must be non-negative");const a=m=>{const f=w(e===0?t/2:t/2+F(e/2,m),2,m),g=w(r/2,2,m);return f/t/(g/r)};if(n===void 0)return a(c);const i=Array.isArray(n)?n:[n],s=i.reduce((m,f)=>m*f,1),u=A.zeros(i,"float64"),o=u.data;for(let m=0;m<s;m++)o[m]=a(c);return u}function nt(t,r){if(t<=0||t>1)throw new Error("p must be in (0, 1]");const e=u=>{if(t===1)return 1;const o=u();return Math.floor(Math.log(o)/Math.log(1-t))+1};if(r===void 0)return e(c);const n=Array.isArray(r)?r:[r],a=n.reduce((u,o)=>u*o,1),i=A.zeros(n,"int64"),s=i.data;for(let u=0;u<a;u++)s[u]=BigInt(e(c));return i}function ot(t,r,e,n){if(t<0)throw new Error("ngood must be non-negative");if(r<0)throw new Error("nbad must be non-negative");if(e<0)throw new Error("nsample must be non-negative");if(e>t+r)throw new Error("nsample must be <= ngood + nbad");const a=m=>{let f=t,g=r,d=0,l=e;for(;l>0;){const y=f+g;if(y===0)break;m()<f/y?(d++,f--):g--,l--}return d};if(n===void 0)return a(c);const i=Array.isArray(n)?n:[n],s=i.reduce((m,f)=>m*f,1),u=A.zeros(i,"int64"),o=u.data;for(let m=0;m<s;m++)o[m]=BigInt(a(c));return u}function at(t,r){if(t<=0||t>=1)throw new Error("p must be in (0, 1)");const e=Math.log(1-t),n=o=>{const m=o(),f=o(),g=1-Math.exp(e*m);if(f>=g||f===0)return 1;const d=Math.log(f),l=Math.log(g);return d>=l?1:d>=2*l?2:Math.floor(1+d/l)};if(r===void 0)return n(c);const a=Array.isArray(r)?r:[r],i=a.reduce((o,m)=>o*m,1),s=A.zeros(a,"int64"),u=s.data;for(let o=0;o<i;o++)u[o]=BigInt(n(c));return s}function ut(t,r,e){if(t<=0)throw new Error("n must be positive");if(r<=0||r>1)throw new Error("p must be in (0, 1]");const n=o=>{if(r===1)return 0;const m=w(t,(1-r)/r,o);return F(m,o)};if(e===void 0)return n(c);const a=Array.isArray(e)?e:[e],i=a.reduce((o,m)=>o*m,1),s=A.zeros(a,"int64"),u=s.data;for(let o=0;o<i;o++)u[o]=BigInt(n(c));return s}function st(t,r){if(t<=1)throw new Error("a must be > 1");const e=t-1,n=Math.pow(2,e),a=m=>{for(;;){const f=1-m(),g=m(),d=Math.floor(Math.pow(f,-1/e)),l=Math.pow(1+1/d,e);if(g*d*(l-1)/(n-1)<=l/n)return d}};if(r===void 0)return a(c);const i=Array.isArray(r)?r:[r],s=i.reduce((m,f)=>m*f,1),u=A.zeros(i,"int64"),o=u.data;for(let m=0;m<s;m++)o[m]=BigInt(a(c));return u}function it(t,r,e){const n=Array.isArray(r)?r:Array.from({length:r.size},(l,y)=>Number(r.iget(y))),a=n.length;if(a===0)throw new Error("pvals must have at least one element");const i=n.reduce((l,y)=>l+y,0),s=n.map(l=>l/i),u=l=>{const y=new Array(a).fill(0);let b=t,h=1;for(let p=0;p<a-1&&b>0;p++){const S=s[p]/h,x=P(b,Math.min(1,Math.max(0,S)),l);y[p]=x,b-=x,h-=s[p]}return y[a-1]=b,y};if(e===void 0){const l=u(c),y=A.zeros([a],"int64"),b=y.data;for(let h=0;h<a;h++)b[h]=BigInt(l[h]);return y}const o=Array.isArray(e)?e:[e],m=o.reduce((l,y)=>l*y,1),f=[...o,a],g=A.zeros(f,"int64"),d=g.data;for(let l=0;l<m;l++){const y=u(c);for(let b=0;b<a;b++)d[l*a+b]=BigInt(y[b])}return g}function mt(t,r,e,n="warn",a=1e-8){const i=Array.isArray(t)?t:Array.from({length:t.size},(b,h)=>Number(t.iget(h))),s=i.length;let u;if(Array.isArray(r))u=r;else{u=[];for(let b=0;b<s;b++){u.push([]);for(let h=0;h<s;h++)u[b].push(Number(r.iget(b*s+h)))}}const o=Array(s).fill(0).map(()=>Array(s).fill(0));for(let b=0;b<s;b++)for(let h=0;h<=b;h++){let p=u[b][h];for(let S=0;S<h;S++)p-=o[b][S]*o[h][S];if(b===h){if(p<-a){if(n==="raise")throw new Error("covariance matrix is not positive semi-definite");n==="warn"&&console.warn("covariance matrix is not positive semi-definite"),p=0}o[b][h]=Math.sqrt(Math.max(0,p))}else o[b][h]=o[h][h]!==0?p/o[h][h]:0}const m=b=>{const h=[];for(let S=0;S<s;S++)h.push(_(b));const p=[];for(let S=0;S<s;S++){let x=i[S];for(let v=0;v<=S;v++)x+=o[S][v]*h[v];p.push(x)}return p};if(e===void 0){const b=m(c),h=A.zeros([s],"float64"),p=h.data;for(let S=0;S<s;S++)p[S]=b[S];return h}const f=Array.isArray(e)?e:[e],g=f.reduce((b,h)=>b*h,1),d=[...f,s],l=A.zeros(d,"float64"),y=l.data;for(let b=0;b<g;b++){const h=m(c);for(let p=0;p<s;p++)y[b*s+p]=h[p]}return l}function ct(t,r){const e=Array.isArray(t)?t:Array.from({length:t.size},(f,g)=>Number(t.iget(g))),n=e.length;if(n<2)throw new Error("alpha must have at least 2 elements");for(const f of e)if(f<=0)throw new Error("all alpha values must be positive");const a=f=>{const g=[];let d=0;for(let l=0;l<n;l++){const y=w(e[l],1,f);g.push(y),d+=y}return g.map(l=>l/d)};if(r===void 0){const f=a(c),g=A.zeros([n],"float64"),d=g.data;for(let l=0;l<n;l++)d[l]=f[l];return g}const i=Array.isArray(r)?r:[r],s=i.reduce((f,g)=>f*g,1),u=[...i,n],o=A.zeros(u,"float64"),m=o.data;for(let f=0;f<s;f++){const g=a(c);for(let d=0;d<n;d++)m[f*n+d]=g[d]}return o}function lt(t,r,e){if(r<0)throw new Error("kappa must be non-negative");const n=o=>{if(r===0)return 2*Math.PI*o()-Math.PI;const m=1+Math.sqrt(1+4*r*r),f=(m-Math.sqrt(2*m))/(2*r),g=(1+f*f)/(2*f);for(;;){const d=o(),l=Math.cos(Math.PI*d),y=(1+g*l)/(g+l),b=r*(g-y),h=o();if(b*(2-b)>h||Math.log(b/h)+1-b>=0)return((o()>.5?Math.acos(y):-Math.acos(y))+t+Math.PI)%(2*Math.PI)-Math.PI}};if(e===void 0)return n(c);const a=Array.isArray(e)?e:[e],i=a.reduce((o,m)=>o*m,1),s=A.zeros(a,"float64"),u=s.data;for(let o=0;o<i;o++)u[o]=n(c);return s}export{fr as Generator,Rr as beta,Fr as binomial,Lr as bytes,zr as chisquare,vr as choice,hr as default_rng,ct as dirichlet,dr as exponential,tt as f,Z as gamma,nt as geometric,Nr as get_bit_generator,pr as get_state,Qr as gumbel,ot as hypergeometric,Kr as laplace,Xr as logistic,Hr as lognormal,at as logseries,it as multinomial,mt as multivariate_normal,ut as negative_binomial,rt as noncentral_chisquare,et as noncentral_f,Ir as normal,Wr as pareto,Er as permutation,Br as poisson,Zr as power,Mr as rand,br as randint,wr as randn,O as random,Ur as random_integers,Tr as random_sample,qr as ranf,Jr as rayleigh,Gr as sample,gr as seed,jr as set_bit_generator,Sr as set_state,Pr as shuffle,kr as standard_cauchy,Dr as standard_exponential,Cr as standard_gamma,_r as standard_normal,Or as standard_t,Yr as triangular,xr as uniform,lt as vonmises,$r as wald,Vr as weibull,st as zipf};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{ArrayStorage as B}from"../storage";import{isBigIntDType as Q,isComplexDType as k,throwIfComplex as H}from"../dtype";import{outerIndexToMultiIndex as M,multiIndexToBuffer as V}from"../internal/indexing";import{Complex as U}from"../complex";function J(n,p,F=!1){const x=n.dtype,c=n.shape,I=c.length,N=n.size,b=n.data,m=n.offset,h=n.strides,y=n.isCContiguous;if(p===void 0)if(k(x)){let t=0,o=0;if(y){const r=b;for(let s=0;s<N;s++)t+=r[(m+s)*2],o+=r[(m+s)*2+1]}else for(let r=0;r<N;r++){const s=n.iget(r);t+=s.re,o+=s.im}return new U(t,o)}else if(Q(x)){let t=BigInt(0);if(y){const o=b;for(let r=0;r<N;r++)t+=o[m+r]}else for(let o=0;o<N;o++)t+=n.iget(o);return Number(t)}else{let t=0;if(y)if(m===0)for(let o=0;o<N;o++)t+=Number(b[o]);else for(let o=0;o<N;o++)t+=Number(b[m+o]);else for(let o=0;o<N;o++)t+=Number(n.iget(o));return t}let A=p;if(A<0&&(A=I+A),A<0||A>=I)throw new Error(`axis ${p} is out of bounds for array of dimension ${I}`);const $=Array.from(c).filter((t,o)=>o!==A);if($.length===0)return J(n);const S=B.zeros($,x),D=S.data,l=c[A],e=$.reduce((t,o)=>t*o,1);if(k(x)){const t=b,o=D;for(let r=0;r<e;r++){let s=0,f=0;for(let a=0;a<l;a++){const i=M(r,A,a,c),d=V(i,h,m);s+=t[d*2],f+=t[d*2+1]}o[r*2]=s,o[r*2+1]=f}}else if(Q(x)){const t=b,o=D;for(let r=0;r<e;r++){let s=BigInt(0);for(let f=0;f<l;f++){const a=M(r,A,f,c),i=V(a,h,m);s+=t[i]}o[r]=s}}else for(let t=0;t<e;t++){let o=0;for(let r=0;r<l;r++){const s=M(t,A,r,c),f=V(s,h,m);o+=Number(b[f])}D[t]=o}if(F){const t=[...c];return t[A]=1,B.fromData(D,t,x)}return S}function X(n,p,F=!1){const x=n.dtype,c=n.shape;if(p===void 0){const $=J(n);return $ instanceof U?new U($.re/n.size,$.im/n.size):$/n.size}let I=p;if(I<0&&(I=c.length+I),I<0||I>=c.length)throw new Error(`axis ${p} is out of bounds for array of dimension ${c.length}`);const N=J(n,p,F);if(typeof N=="number")return N/c[I];if(N instanceof U)return new U(N.re/c[I],N.im/c[I]);const b=c[I];let m=x;k(x)?m=x:(Q(x)||x.startsWith("int")||x.startsWith("uint"))&&(m="float64");const h=B.zeros(Array.from(N.shape),m),y=h.data,A=N.data;if(k(x)){const $=A,S=y,D=N.size;for(let l=0;l<D;l++)S[l*2]=$[l*2]/b,S[l*2+1]=$[l*2+1]/b}else if(Q(x)){const $=A;for(let S=0;S<y.length;S++)y[S]=Number($[S])/b}else for(let $=0;$<y.length;$++)y[$]=Number(A[$])/b;return h}function j(n,p,F=!1){const x=n.dtype,c=n.shape,I=c.length,N=n.size,b=n.data,m=n.offset,h=n.strides;if(k(x)){const e=b;if(p===void 0){if(N===0)throw new Error("max of empty array");let i=e[m*2],d=e[m*2+1];for(let w=1;w<N;w++){const u=e[(m+w)*2],z=e[(m+w)*2+1];if(isNaN(u)||isNaN(z))return new U(NaN,NaN);(u>i||u===i&&z>d)&&(i=u,d=z)}return isNaN(i)||isNaN(d)?new U(NaN,NaN):new U(i,d)}let t=p;if(t<0&&(t=I+t),t<0||t>=I)throw new Error(`axis ${p} is out of bounds for array of dimension ${I}`);const o=Array.from(c).filter((i,d)=>d!==t);if(o.length===0)return j(n);const r=B.zeros(o,x),s=r.data,f=c[t],a=o.reduce((i,d)=>i*d,1);for(let i=0;i<a;i++){const d=M(i,t,0,c),w=V(d,h,m);let u=e[w*2],z=e[w*2+1];for(let C=1;C<f;C++){const E=M(i,t,C,c),R=V(E,h,m),v=e[R*2],g=e[R*2+1];if(isNaN(v)||isNaN(g)){u=NaN,z=NaN;break}(v>u||v===u&&g>z)&&(u=v,z=g)}s[i*2]=u,s[i*2+1]=z}if(F){const i=[...c];return i[t]=1,B.fromData(s,i,x)}return r}if(p===void 0){if(N===0)throw new Error("max of empty array");if(n.isCContiguous){let e=b[m];if(m===0)for(let t=1;t<N;t++)b[t]>e&&(e=b[t]);else for(let t=1;t<N;t++)b[m+t]>e&&(e=b[m+t]);return Number(e)}else{let e=n.iget(0);for(let t=1;t<N;t++){const o=n.iget(t);o>e&&(e=o)}return Number(e)}}let y=p;if(y<0&&(y=I+y),y<0||y>=I)throw new Error(`axis ${p} is out of bounds for array of dimension ${I}`);const A=Array.from(c).filter((e,t)=>t!==y);if(A.length===0)return j(n);const $=B.zeros(A,x),S=$.data,D=c[y],l=A.reduce((e,t)=>e*t,1);if(Q(x)){const e=b,t=S;for(let o=0;o<l;o++){const r=M(o,y,0,c),s=V(r,h,m);let f=e[s];for(let a=1;a<D;a++){const i=M(o,y,a,c),d=V(i,h,m),w=e[d];w>f&&(f=w)}t[o]=f}}else for(let e=0;e<l;e++){let t=-1/0;for(let o=0;o<D;o++){const r=M(e,y,o,c),s=V(r,h,m),f=Number(b[s]);f>t&&(t=f)}S[e]=t}if(F){const e=[...c];return e[y]=1,B.fromData(S,e,x)}return $}function rt(n,p,F=!1){const x=n.dtype,c=n.shape,I=c.length,N=n.size,b=n.data,m=n.offset,h=n.strides,y=n.isCContiguous;if(p===void 0)if(k(x)){let t=1,o=0;if(y){const r=b;for(let s=0;s<N;s++){const f=r[(m+s)*2],a=r[(m+s)*2+1],i=t*f-o*a,d=t*a+o*f;t=i,o=d}}else for(let r=0;r<N;r++){const s=n.iget(r),f=s.re,a=s.im,i=t*f-o*a,d=t*a+o*f;t=i,o=d}return new U(t,o)}else if(Q(x)){let t=BigInt(1);if(y){const o=b;for(let r=0;r<N;r++)t*=o[m+r]}else for(let o=0;o<N;o++)t*=n.iget(o);return Number(t)}else{let t=1;if(y)if(m===0)for(let o=0;o<N;o++)t*=Number(b[o]);else for(let o=0;o<N;o++)t*=Number(b[m+o]);else for(let o=0;o<N;o++)t*=Number(n.iget(o));return t}let A=p;if(A<0&&(A=I+A),A<0||A>=I)throw new Error(`axis ${p} is out of bounds for array of dimension ${I}`);const $=Array.from(c).filter((t,o)=>o!==A);if($.length===0)return rt(n);const S=B.zeros($,x),D=S.data,l=c[A],e=$.reduce((t,o)=>t*o,1);if(k(x)){const t=b,o=D;for(let r=0;r<e;r++){let s=1,f=0;for(let a=0;a<l;a++){const i=M(r,A,a,c),d=V(i,h,m),w=t[d*2],u=t[d*2+1],z=s*w-f*u,C=s*u+f*w;s=z,f=C}o[r*2]=s,o[r*2+1]=f}}else if(Q(x)){const t=b,o=D;for(let r=0;r<e;r++){let s=BigInt(1);for(let f=0;f<l;f++){const a=M(r,A,f,c),i=V(a,h,m);s*=t[i]}o[r]=s}}else for(let t=0;t<e;t++){let o=1;for(let r=0;r<l;r++){const s=M(t,A,r,c),f=V(s,h,m);o*=Number(b[f])}D[t]=o}if(F){const t=[...c];return t[A]=1,B.fromData(D,t,x)}return S}function G(n,p,F=!1){const x=n.dtype,c=n.shape,I=c.length,N=n.size,b=n.data,m=n.offset,h=n.strides;if(k(x)){const e=b;if(p===void 0){if(N===0)throw new Error("min of empty array");let i=e[m*2],d=e[m*2+1];for(let w=1;w<N;w++){const u=e[(m+w)*2],z=e[(m+w)*2+1];if(isNaN(u)||isNaN(z))return new U(NaN,NaN);(u<i||u===i&&z<d)&&(i=u,d=z)}return isNaN(i)||isNaN(d)?new U(NaN,NaN):new U(i,d)}let t=p;if(t<0&&(t=I+t),t<0||t>=I)throw new Error(`axis ${p} is out of bounds for array of dimension ${I}`);const o=Array.from(c).filter((i,d)=>d!==t);if(o.length===0)return G(n);const r=B.zeros(o,x),s=r.data,f=c[t],a=o.reduce((i,d)=>i*d,1);for(let i=0;i<a;i++){const d=M(i,t,0,c),w=V(d,h,m);let u=e[w*2],z=e[w*2+1];for(let C=1;C<f;C++){const E=M(i,t,C,c),R=V(E,h,m),v=e[R*2],g=e[R*2+1];if(isNaN(v)||isNaN(g)){u=NaN,z=NaN;break}(v<u||v===u&&g<z)&&(u=v,z=g)}s[i*2]=u,s[i*2+1]=z}if(F){const i=[...c];return i[t]=1,B.fromData(s,i,x)}return r}if(p===void 0){if(N===0)throw new Error("min of empty array");if(n.isCContiguous){let e=b[m];if(m===0)for(let t=1;t<N;t++)b[t]<e&&(e=b[t]);else for(let t=1;t<N;t++)b[m+t]<e&&(e=b[m+t]);return Number(e)}else{let e=n.iget(0);for(let t=1;t<N;t++){const o=n.iget(t);o<e&&(e=o)}return Number(e)}}let y=p;if(y<0&&(y=I+y),y<0||y>=I)throw new Error(`axis ${p} is out of bounds for array of dimension ${I}`);const A=Array.from(c).filter((e,t)=>t!==y);if(A.length===0)return G(n);const $=B.zeros(A,x),S=$.data,D=c[y],l=A.reduce((e,t)=>e*t,1);if(Q(x)){const e=b,t=S;for(let o=0;o<l;o++){const r=M(o,y,0,c),s=V(r,h,m);let f=e[s];for(let a=1;a<D;a++){const i=M(o,y,a,c),d=V(i,h,m),w=e[d];w<f&&(f=w)}t[o]=f}}else for(let e=0;e<l;e++){let t=1/0;for(let o=0;o<D;o++){const r=M(e,y,o,c),s=V(r,h,m),f=Number(b[s]);f<t&&(t=f)}S[e]=t}if(F){const e=[...c];return e[y]=1,B.fromData(S,e,x)}return $}function W(n,p,F,x){return n<F?-1:n>F?1:p<x?-1:p>x?1:0}function it(n,p){const F=n.dtype,x=k(F),c=n.shape,I=c.length,N=n.size,b=n.data,m=n.offset,h=n.strides,y=n.isCContiguous;if(p===void 0){if(N===0)throw new Error("argmin of empty array");if(x)if(y){const t=b;let o=t[m*2],r=t[m*2+1],s=0;for(let f=1;f<N;f++){const a=t[(m+f)*2],i=t[(m+f)*2+1];W(a,i,o,r)<0&&(o=a,r=i,s=f)}return s}else{const t=n.iget(0);let o=t.re,r=t.im,s=0;for(let f=1;f<N;f++){const a=n.iget(f);W(a.re,a.im,o,r)<0&&(o=a.re,r=a.im,s=f)}return s}if(y){let t=b[m],o=0;if(m===0)for(let r=1;r<N;r++)b[r]<t&&(t=b[r],o=r);else for(let r=1;r<N;r++)b[m+r]<t&&(t=b[m+r],o=r);return o}else{let t=n.iget(0),o=0;for(let r=1;r<N;r++){const s=n.iget(r);s<t&&(t=s,o=r)}return o}}let A=p;if(A<0&&(A=I+A),A<0||A>=I)throw new Error(`axis ${p} is out of bounds for array of dimension ${I}`);const $=Array.from(c).filter((t,o)=>o!==A);if($.length===0)return it(n);const S=B.zeros($,"int32"),D=S.data,l=c[A],e=$.reduce((t,o)=>t*o,1);if(x){const t=b;for(let o=0;o<e;o++){const r=M(o,A,0,c),s=V(r,h,m);let f=t[s*2],a=t[s*2+1],i=0;for(let d=1;d<l;d++){const w=M(o,A,d,c),u=V(w,h,m),z=t[u*2],C=t[u*2+1];W(z,C,f,a)<0&&(f=z,a=C,i=d)}D[o]=i}}else if(Q(F)){const t=b;for(let o=0;o<e;o++){const r=M(o,A,0,c),s=V(r,h,m);let f=t[s],a=0;for(let i=1;i<l;i++){const d=M(o,A,i,c),w=V(d,h,m),u=t[w];u<f&&(f=u,a=i)}D[o]=a}}else for(let t=0;t<e;t++){let o=1/0,r=0;for(let s=0;s<l;s++){const f=M(t,A,s,c),a=V(f,h,m),i=Number(b[a]);i<o&&(o=i,r=s)}D[t]=r}return S}function st(n,p){const F=n.dtype,x=k(F),c=n.shape,I=c.length,N=n.size,b=n.data,m=n.offset,h=n.strides,y=n.isCContiguous;if(p===void 0){if(N===0)throw new Error("argmax of empty array");if(x)if(y){const t=b;let o=t[m*2],r=t[m*2+1],s=0;for(let f=1;f<N;f++){const a=t[(m+f)*2],i=t[(m+f)*2+1];W(a,i,o,r)>0&&(o=a,r=i,s=f)}return s}else{const t=n.iget(0);let o=t.re,r=t.im,s=0;for(let f=1;f<N;f++){const a=n.iget(f);W(a.re,a.im,o,r)>0&&(o=a.re,r=a.im,s=f)}return s}if(y){let t=b[m],o=0;for(let r=1;r<N;r++)b[m+r]>t&&(t=b[m+r],o=r);return o}else{let t=n.iget(0),o=0;for(let r=1;r<N;r++){const s=n.iget(r);s>t&&(t=s,o=r)}return o}}let A=p;if(A<0&&(A=I+A),A<0||A>=I)throw new Error(`axis ${p} is out of bounds for array of dimension ${I}`);const $=Array.from(c).filter((t,o)=>o!==A);if($.length===0)return st(n);const S=B.zeros($,"int32"),D=S.data,l=c[A],e=$.reduce((t,o)=>t*o,1);if(x){const t=b;for(let o=0;o<e;o++){const r=M(o,A,0,c),s=V(r,h,m);let f=t[s*2],a=t[s*2+1],i=0;for(let d=1;d<l;d++){const w=M(o,A,d,c),u=V(w,h,m),z=t[u*2],C=t[u*2+1];W(z,C,f,a)>0&&(f=z,a=C,i=d)}D[o]=i}}else if(Q(F)){const t=b;for(let o=0;o<e;o++){const r=M(o,A,0,c),s=V(r,h,m);let f=t[s],a=0;for(let i=1;i<l;i++){const d=M(o,A,i,c),w=V(d,h,m),u=t[w];u>f&&(f=u,a=i)}D[o]=a}}else for(let t=0;t<e;t++){let o=-1/0,r=0;for(let s=0;s<l;s++){const f=M(t,A,s,c),a=V(f,h,m),i=Number(b[a]);i>o&&(o=i,r=s)}D[t]=r}return S}function at(n,p,F=0,x=!1){const c=n.dtype,I=n.shape,N=I.length,b=n.size,m=n.data,h=n.offset,y=n.strides,A=X(n,p,x),$=n.isCContiguous;if(p===void 0){if(k(c)){const i=A;let d=0;if($){const w=m;for(let u=0;u<b;u++){const z=w[(h+u)*2],C=w[(h+u)*2+1],E=z-i.re,R=C-i.im;d+=E*E+R*R}}else for(let w=0;w<b;w++){const u=n.iget(w),z=u.re-i.re,C=u.im-i.im;d+=z*z+C*C}return d/(b-F)}const f=A;let a=0;if($)for(let i=0;i<b;i++){const d=Number(m[h+i])-f;a+=d*d}else for(let i=0;i<b;i++){const d=Number(n.iget(i))-f;a+=d*d}return a/(b-F)}let S=p;if(S<0&&(S=N+S),S<0||S>=N)throw new Error(`axis ${p} is out of bounds for array of dimension ${N}`);const D=I[S],l=A,e=l.data,t=x?l.shape:Array.from(I).filter((f,a)=>a!==S),o=B.zeros(Array.from(t),"float64"),r=o.data,s=t.reduce((f,a)=>f*a,1);if(k(c)){const f=m,a=e;for(let i=0;i<s;i++){let d=0;const w=a[i*2],u=a[i*2+1];for(let z=0;z<D;z++){const C=M(i,S,z,I),E=V(C,y,h),R=f[E*2],v=f[E*2+1],g=R-w,_=v-u;d+=g*g+_*_}r[i]=d/(D-F)}}else for(let f=0;f<s;f++){let a=0;const i=Number(e[f]);for(let d=0;d<D;d++){const w=M(f,S,d,I),u=V(w,y,h),z=Number(m[u])-i;a+=z*z}r[f]=a/(D-F)}return o}function Nt(n,p,F=0,x=!1){const c=at(n,p,F,x);if(typeof c=="number")return Math.sqrt(c);const I=B.zeros(Array.from(c.shape),"float64"),N=c.data,b=I.data;for(let m=0;m<N.length;m++)b[m]=Math.sqrt(Number(N[m]));return I}function ft(n,p,F=!1){const x=n.shape,c=x.length,I=n.size,N=n.data,b=n.offset,m=n.strides,h=n.isCContiguous;if(p===void 0){if(h){for(let e=0;e<I;e++)if(!N[b+e])return!1}else for(let e=0;e<I;e++)if(!n.iget(e))return!1;return!0}let y=p;if(y<0&&(y=c+y),y<0||y>=c)throw new Error(`axis ${p} is out of bounds for array of dimension ${c}`);const A=Array.from(x).filter((e,t)=>t!==y);if(A.length===0)return ft(n);const $=B.zeros(A,"bool"),S=$.data,D=x[y],l=A.reduce((e,t)=>e*t,1);for(let e=0;e<l;e++){let t=!0;for(let o=0;o<D;o++){const r=M(e,y,o,x),s=V(r,m,b);if(!N[s]){t=!1;break}}S[e]=t?1:0}if(F){const e=[...x];return e[y]=1,B.fromData(S,e,"bool")}return $}function lt(n,p,F=!1){const x=n.shape,c=x.length,I=n.size,N=n.data,b=n.offset,m=n.strides,h=n.isCContiguous;if(p===void 0){if(h){for(let e=0;e<I;e++)if(N[b+e])return!0}else for(let e=0;e<I;e++)if(n.iget(e))return!0;return!1}let y=p;if(y<0&&(y=c+y),y<0||y>=c)throw new Error(`axis ${p} is out of bounds for array of dimension ${c}`);const A=Array.from(x).filter((e,t)=>t!==y);if(A.length===0)return lt(n);const $=B.zeros(A,"bool"),S=$.data,D=x[y],l=A.reduce((e,t)=>e*t,1);for(let e=0;e<l;e++){let t=!1;for(let o=0;o<D;o++){const r=M(e,y,o,x),s=V(r,m,b);if(N[s]){t=!0;break}}S[e]=t?1:0}if(F){const e=[...x];return e[y]=1,B.fromData(S,e,"bool")}return $}function bt(n,p){const F=n.dtype,x=n.shape,c=x.length,I=n.data,N=n.offset,b=n.strides,m=n.isCContiguous;if(k(F)){const e=I,t=n.size;if(p===void 0){const u=B.zeros([t],F),z=u.data;let C=0,E=0;if(m)for(let R=0;R<t;R++)C+=e[(N+R)*2],E+=e[(N+R)*2+1],z[R*2]=C,z[R*2+1]=E;else for(let R=0;R<t;R++){const v=n.iget(R);C+=v.re,E+=v.im,z[R*2]=C,z[R*2+1]=E}return u}let o=p;if(o<0&&(o=c+o),o<0||o>=c)throw new Error(`axis ${p} is out of bounds for array of dimension ${c}`);const r=B.zeros([...x],F),s=r.data,f=x[o],a=[];let i=1;for(let u=c-1;u>=0;u--)a.unshift(i),i*=x[u];const d=n.size,w=a[o];for(let u=0;u<d;u++){const z=Math.floor(u/w)%f,C=new Array(c);let E=u;for(let v=c-1;v>=0;v--)C[v]=E%x[v],E=Math.floor(E/x[v]);const R=V(C,b,N);z===0?(s[u*2]=e[R*2],s[u*2+1]=e[R*2+1]):(s[u*2]=s[(u-w)*2]+e[R*2],s[u*2+1]=s[(u-w)*2+1]+e[R*2+1])}return r}if(p===void 0){const e=n.size,t=new Float64Array(e);let o=0;if(m)for(let r=0;r<e;r++)o+=Number(I[N+r]),t[r]=o;else for(let r=0;r<e;r++)o+=Number(n.iget(r)),t[r]=o;return B.fromData(t,[e],"float64")}let h=p;if(h<0&&(h=c+h),h<0||h>=c)throw new Error(`axis ${p} is out of bounds for array of dimension ${c}`);const y=new Float64Array(n.size),A=x[h],$=[];let S=1;for(let e=c-1;e>=0;e--)$.unshift(S),S*=x[e];const D=n.size,l=$[h];for(let e=0;e<D;e++){const t=Math.floor(e/l)%A,o=new Array(c);let r=e;for(let f=c-1;f>=0;f--)o[f]=r%x[f],r=Math.floor(r/x[f]);const s=V(o,b,N);t===0?y[e]=Number(I[s]):y[e]=y[e-l]+Number(I[s])}return B.fromData(y,[...x],"float64")}function At(n,p){const F=n.dtype,x=n.shape,c=x.length,I=n.data,N=n.offset,b=n.strides,m=n.isCContiguous;if(k(F)){const e=I,t=n.size;if(p===void 0){const u=B.zeros([t],F),z=u.data;let C=1,E=0;if(m)for(let R=0;R<t;R++){const v=e[(N+R)*2],g=e[(N+R)*2+1],_=C*v-E*g,T=C*g+E*v;C=_,E=T,z[R*2]=C,z[R*2+1]=E}else for(let R=0;R<t;R++){const v=n.iget(R),g=v.re,_=v.im,T=C*g-E*_,q=C*_+E*g;C=T,E=q,z[R*2]=C,z[R*2+1]=E}return u}let o=p;if(o<0&&(o=c+o),o<0||o>=c)throw new Error(`axis ${p} is out of bounds for array of dimension ${c}`);const r=B.zeros([...x],F),s=r.data,f=x[o],a=[];let i=1;for(let u=c-1;u>=0;u--)a.unshift(i),i*=x[u];const d=n.size,w=a[o];for(let u=0;u<d;u++){const z=Math.floor(u/w)%f,C=new Array(c);let E=u;for(let v=c-1;v>=0;v--)C[v]=E%x[v],E=Math.floor(E/x[v]);const R=V(C,b,N);if(z===0)s[u*2]=e[R*2],s[u*2+1]=e[R*2+1];else{const v=s[(u-w)*2],g=s[(u-w)*2+1],_=e[R*2],T=e[R*2+1];s[u*2]=v*_-g*T,s[u*2+1]=v*T+g*_}}return r}if(p===void 0){const e=n.size,t=new Float64Array(e);let o=1;if(m)for(let r=0;r<e;r++)o*=Number(I[N+r]),t[r]=o;else for(let r=0;r<e;r++)o*=Number(n.iget(r)),t[r]=o;return B.fromData(t,[e],"float64")}let h=p;if(h<0&&(h=c+h),h<0||h>=c)throw new Error(`axis ${p} is out of bounds for array of dimension ${c}`);const y=new Float64Array(n.size),A=x[h],$=[];let S=1;for(let e=c-1;e>=0;e--)$.unshift(S),S*=x[e];const D=n.size,l=$[h];for(let e=0;e<D;e++){const t=Math.floor(e/l)%A,o=new Array(c);let r=e;for(let f=c-1;f>=0;f--)o[f]=r%x[f],r=Math.floor(r/x[f]);const s=V(o,b,N);t===0?y[e]=Number(I[s]):y[e]=y[e-l]*Number(I[s])}return B.fromData(y,[...x],"float64")}function ht(n,p,F=!1){const x=n.dtype;if(k(x)){const A=j(n,p,F),$=G(n,p,F);if(A instanceof U&&$ instanceof U)return new U(A.re-$.re,A.im-$.im);const S=A,D=$,l=S.data,e=D.data,t=new Float64Array(S.size*2);for(let o=0;o<S.size;o++)t[o*2]=l[o*2]-e[o*2],t[o*2+1]=l[o*2+1]-e[o*2+1];return B.fromData(t,[...S.shape],x)}const c=j(n,p,F),I=G(n,p,F);if(typeof c=="number"&&typeof I=="number")return c-I;const N=c,b=I,m=N.data,h=b.data,y=new Float64Array(N.size);for(let A=0;A<N.size;A++)y[A]=Number(m[A])-Number(h[A]);return B.fromData(y,[...N.shape],"float64")}function St(n,p,F=!1){return K(n,.5,p,F)}function zt(n,p,F,x=!1){return K(n,p/100,F,x)}function K(n,p,F,x=!1){if(H(n.dtype,"quantile","Complex numbers are not orderable."),p<0||p>1)throw new Error("Quantile must be between 0 and 1");const c=n.shape,I=c.length,N=n.data,b=n.offset,m=n.strides;if(F===void 0){const l=[];if(n.isCContiguous)for(let a=0;a<n.size;a++)l.push(Number(N[b+a]));else for(let a=0;a<n.size;a++)l.push(Number(n.iget(a)));l.sort((a,i)=>a-i);const t=l.length,o=p*(t-1),r=Math.floor(o),s=Math.ceil(o);if(r===s)return l[r];const f=o-r;return l[r]*(1-f)+l[s]*f}let h=F;if(h<0&&(h=I+h),h<0||h>=I)throw new Error(`axis ${F} is out of bounds for array of dimension ${I}`);const y=Array.from(c).filter((l,e)=>e!==h);if(y.length===0)return K(n,p);const A=y.reduce((l,e)=>l*e,1),$=c[h],S=new Float64Array(A);for(let l=0;l<A;l++){const e=[];for(let f=0;f<$;f++){const a=M(l,h,f,c),i=V(a,m,b);e.push(Number(N[i]))}e.sort((f,a)=>f-a);const t=e.length,o=p*(t-1),r=Math.floor(o),s=Math.ceil(o);if(r===s)S[l]=e[r];else{const f=o-r;S[l]=e[r]*(1-f)+e[s]*f}}const D=B.fromData(S,y,"float64");if(x){const l=[...c];return l[h]=1,B.fromData(S,l,"float64")}return D}function Y(n,p,F,x=!1){const c=n.dtype,I=n.shape,N=I.length,b=n.data,m=n.offset,h=n.strides;if(F===void 0)return X(n,p,x);if(k(c)){const o=b,r=F.data,s=F.offset;if(p===void 0){let z=0,C=0,E=0;if(n.isCContiguous)for(let v=0;v<n.size;v++){const g=Number(r[s+v%F.size]),_=o[(m+v)*2],T=o[(m+v)*2+1];z+=_*g,C+=T*g,E+=g}else for(let v=0;v<n.size;v++){const g=Number(r[s+v%F.size]),_=n.iget(v);z+=_.re*g,C+=_.im*g,E+=g}return E===0?new U(NaN,NaN):new U(z/E,C/E)}let f=p;if(f<0&&(f=N+f),f<0||f>=N)throw new Error(`axis ${p} is out of bounds for array of dimension ${N}`);const a=Array.from(I).filter((z,C)=>C!==f);if(a.length===0)return Y(n,void 0,F);const i=a.reduce((z,C)=>z*C,1),d=I[f],w=B.zeros(a,c),u=w.data;for(let z=0;z<i;z++){let C=0,E=0,R=0;for(let v=0;v<d;v++){const g=M(z,f,v,I),_=V(g,h,m),T=Number(r[s+v%F.size]),q=o[_*2],O=o[_*2+1];C+=q*T,E+=O*T,R+=T}R===0?(u[z*2]=NaN,u[z*2+1]=NaN):(u[z*2]=C/R,u[z*2+1]=E/R)}if(x){const z=[...I];return z[f]=1,B.fromData(u,z,c)}return w}const y=F.offset;if(p===void 0){let o=0,r=0;const s=F.data;if(n.isCContiguous)for(let a=0;a<n.size;a++){const i=Number(s[y+a%F.size]);o+=Number(b[m+a])*i,r+=i}else for(let a=0;a<n.size;a++){const i=Number(s[y+a%F.size]);o+=Number(n.iget(a))*i,r+=i}return r===0?NaN:o/r}let A=p;if(A<0&&(A=N+A),A<0||A>=N)throw new Error(`axis ${p} is out of bounds for array of dimension ${N}`);const $=Array.from(I).filter((o,r)=>r!==A);if($.length===0)return Y(n,void 0,F);const S=$.reduce((o,r)=>o*r,1),D=I[A],l=F.data,e=new Float64Array(S);for(let o=0;o<S;o++){let r=0,s=0;for(let f=0;f<D;f++){const a=M(o,A,f,I),i=V(a,h,m),d=Number(l[y+f%F.size]);r+=Number(b[i])*d,s+=d}e[o]=s===0?NaN:r/s}const t=B.fromData(e,$,"float64");if(x){const o=[...I];return o[A]=1,B.fromData(e,o,"float64")}return t}function P(n,p){return isNaN(n)||isNaN(p)}function ut(n,p,F=!1){const x=n.dtype,c=k(x),I=n.shape,N=I.length,b=n.data,m=n.offset,h=n.strides;if(p===void 0){if(c){const o=b;let r=0,s=0;if(n.isCContiguous)for(let a=0;a<n.size;a++){const i=o[(m+a)*2],d=o[(m+a)*2+1];P(i,d)||(r+=i,s+=d)}else for(let a=0;a<n.size;a++){const i=n.iget(a),d=i.re,w=i.im;P(d,w)||(r+=d,s+=w)}return new U(r,s)}let e=0;if(n.isCContiguous)for(let o=0;o<n.size;o++){const r=Number(b[m+o]);isNaN(r)||(e+=r)}else for(let o=0;o<n.size;o++){const r=Number(n.iget(o));isNaN(r)||(e+=r)}return e}let y=p;if(y<0&&(y=N+y),y<0||y>=N)throw new Error(`axis ${p} is out of bounds for array of dimension ${N}`);const A=Array.from(I).filter((e,t)=>t!==y);if(A.length===0)return ut(n);const $=A.reduce((e,t)=>e*t,1),S=I[y];if(c){const e=b,t=new Float64Array($*2);for(let o=0;o<$;o++){let r=0,s=0;for(let f=0;f<S;f++){const a=M(o,y,f,I),i=V(a,h,m),d=e[i*2],w=e[i*2+1];P(d,w)||(r+=d,s+=w)}t[o*2]=r,t[o*2+1]=s}if(F){const o=[...I];return o[y]=1,B.fromData(t,o,x)}return B.fromData(t,A,x)}const D=new Float64Array($);for(let e=0;e<$;e++){let t=0;for(let o=0;o<S;o++){const r=M(e,y,o,I),s=V(r,h,m),f=Number(b[s]);isNaN(f)||(t+=f)}D[e]=t}const l=B.fromData(D,A,"float64");if(F){const e=[...I];return e[y]=1,B.fromData(D,e,"float64")}return l}function ct(n,p,F=!1){const x=n.dtype,c=k(x),I=n.shape,N=I.length,b=n.data,m=n.offset,h=n.strides;if(p===void 0){if(c){const o=b;let r=1,s=0;if(n.isCContiguous)for(let a=0;a<n.size;a++){const i=o[(m+a)*2],d=o[(m+a)*2+1];if(!P(i,d)){const w=r*i-s*d,u=r*d+s*i;r=w,s=u}}else for(let a=0;a<n.size;a++){const i=n.iget(a),d=i.re,w=i.im;if(!P(d,w)){const u=r*d-s*w,z=r*w+s*d;r=u,s=z}}return new U(r,s)}let e=1;if(n.isCContiguous)for(let o=0;o<n.size;o++){const r=Number(b[m+o]);isNaN(r)||(e*=r)}else for(let o=0;o<n.size;o++){const r=Number(n.iget(o));isNaN(r)||(e*=r)}return e}let y=p;if(y<0&&(y=N+y),y<0||y>=N)throw new Error(`axis ${p} is out of bounds for array of dimension ${N}`);const A=Array.from(I).filter((e,t)=>t!==y);if(A.length===0)return ct(n);const $=A.reduce((e,t)=>e*t,1),S=I[y];if(c){const e=b,t=new Float64Array($*2);for(let o=0;o<$;o++){let r=1,s=0;for(let f=0;f<S;f++){const a=M(o,y,f,I),i=V(a,h,m),d=e[i*2],w=e[i*2+1];if(!P(d,w)){const u=r*d-s*w,z=r*w+s*d;r=u,s=z}}t[o*2]=r,t[o*2+1]=s}if(F){const o=[...I];return o[y]=1,B.fromData(t,o,x)}return B.fromData(t,A,x)}const D=new Float64Array($);for(let e=0;e<$;e++){let t=1;for(let o=0;o<S;o++){const r=M(e,y,o,I),s=V(r,h,m),f=Number(b[s]);isNaN(f)||(t*=f)}D[e]=t}const l=B.fromData(D,A,"float64");if(F){const e=[...I];return e[y]=1,B.fromData(D,e,"float64")}return l}function mt(n,p,F=!1){const x=n.dtype,c=k(x),I=n.shape,N=I.length,b=n.data,m=n.offset,h=n.strides;if(p===void 0){if(c){const r=b;let s=0,f=0,a=0;if(n.isCContiguous)for(let d=0;d<n.size;d++){const w=r[(m+d)*2],u=r[(m+d)*2+1];P(w,u)||(s+=w,f+=u,a++)}else for(let d=0;d<n.size;d++){const w=n.iget(d),u=w.re,z=w.im;P(u,z)||(s+=u,f+=z,a++)}return a===0?new U(NaN,NaN):new U(s/a,f/a)}let e=0,t=0;if(n.isCContiguous)for(let r=0;r<n.size;r++){const s=Number(b[m+r]);isNaN(s)||(e+=s,t++)}else for(let r=0;r<n.size;r++){const s=Number(n.iget(r));isNaN(s)||(e+=s,t++)}return t===0?NaN:e/t}let y=p;if(y<0&&(y=N+y),y<0||y>=N)throw new Error(`axis ${p} is out of bounds for array of dimension ${N}`);const A=Array.from(I).filter((e,t)=>t!==y);if(A.length===0)return mt(n);const $=A.reduce((e,t)=>e*t,1),S=I[y];if(c){const e=b,t=new Float64Array($*2);for(let o=0;o<$;o++){let r=0,s=0,f=0;for(let a=0;a<S;a++){const i=M(o,y,a,I),d=V(i,h,m),w=e[d*2],u=e[d*2+1];P(w,u)||(r+=w,s+=u,f++)}f===0?(t[o*2]=NaN,t[o*2+1]=NaN):(t[o*2]=r/f,t[o*2+1]=s/f)}if(F){const o=[...I];return o[y]=1,B.fromData(t,o,x)}return B.fromData(t,A,x)}const D=new Float64Array($);for(let e=0;e<$;e++){let t=0,o=0;for(let r=0;r<S;r++){const s=M(e,y,r,I),f=V(s,h,m),a=Number(b[f]);isNaN(a)||(t+=a,o++)}D[e]=o===0?NaN:t/o}const l=B.fromData(D,A,"float64");if(F){const e=[...I];return e[y]=1,B.fromData(D,e,"float64")}return l}function L(n,p,F=0,x=!1){const c=n.dtype,I=n.shape,N=I.length,b=n.data,m=n.offset,h=n.strides;if(k(c)){const e=b;if(p===void 0){let i=0,d=0,w=0;const u=n.isCContiguous;if(u)for(let R=0;R<n.size;R++){const v=e[(m+R)*2],g=e[(m+R)*2+1];P(v,g)||(i+=v,d+=g,w++)}else for(let R=0;R<n.size;R++){const v=n.iget(R),g=v.re,_=v.im;P(g,_)||(i+=g,d+=_,w++)}if(w-F<=0)return NaN;const z=i/w,C=d/w;let E=0;if(u)for(let R=0;R<n.size;R++){const v=e[(m+R)*2],g=e[(m+R)*2+1];if(!P(v,g)){const _=v-z,T=g-C;E+=_*_+T*T}}else for(let R=0;R<n.size;R++){const v=n.iget(R),g=v.re,_=v.im;if(!P(g,_)){const T=g-z,q=_-C;E+=T*T+q*q}}return E/(w-F)}let t=p;if(t<0&&(t=N+t),t<0||t>=N)throw new Error(`axis ${p} is out of bounds for array of dimension ${N}`);const o=Array.from(I).filter((i,d)=>d!==t);if(o.length===0)return L(n,void 0,F);const r=o.reduce((i,d)=>i*d,1),s=I[t],f=new Float64Array(r);for(let i=0;i<r;i++){let d=0,w=0,u=0;for(let R=0;R<s;R++){const v=M(i,t,R,I),g=V(v,h,m),_=e[g*2],T=e[g*2+1];P(_,T)||(d+=_,w+=T,u++)}if(u-F<=0){f[i]=NaN;continue}const z=d/u,C=w/u;let E=0;for(let R=0;R<s;R++){const v=M(i,t,R,I),g=V(v,h,m),_=e[g*2],T=e[g*2+1];if(!P(_,T)){const q=_-z,O=T-C;E+=q*q+O*O}}f[i]=E/(u-F)}const a=B.fromData(f,o,"float64");if(x){const i=[...I];return i[t]=1,B.fromData(f,i,"float64")}return a}if(p===void 0){let e=0,t=0;const o=n.isCContiguous;if(o)for(let f=0;f<n.size;f++){const a=Number(b[m+f]);isNaN(a)||(e+=a,t++)}else for(let f=0;f<n.size;f++){const a=Number(n.iget(f));isNaN(a)||(e+=a,t++)}if(t-F<=0)return NaN;const r=e/t;let s=0;if(o)for(let f=0;f<n.size;f++){const a=Number(b[m+f]);isNaN(a)||(s+=(a-r)**2)}else for(let f=0;f<n.size;f++){const a=Number(n.iget(f));isNaN(a)||(s+=(a-r)**2)}return s/(t-F)}let y=p;if(y<0&&(y=N+y),y<0||y>=N)throw new Error(`axis ${p} is out of bounds for array of dimension ${N}`);const A=Array.from(I).filter((e,t)=>t!==y);if(A.length===0)return L(n,void 0,F);const $=A.reduce((e,t)=>e*t,1),S=I[y],D=new Float64Array($);for(let e=0;e<$;e++){let t=0,o=0;for(let f=0;f<S;f++){const a=M(e,y,f,I),i=V(a,h,m),d=Number(b[i]);isNaN(d)||(t+=d,o++)}if(o-F<=0){D[e]=NaN;continue}const r=t/o;let s=0;for(let f=0;f<S;f++){const a=M(e,y,f,I),i=V(a,h,m),d=Number(b[i]);isNaN(d)||(s+=(d-r)**2)}D[e]=s/(o-F)}const l=B.fromData(D,A,"float64");if(x){const e=[...I];return e[y]=1,B.fromData(D,e,"float64")}return l}function Dt(n,p,F=0,x=!1){const c=L(n,p,F,x);if(typeof c=="number")return Math.sqrt(c);const I=c,N=new Float64Array(I.size);for(let b=0;b<I.size;b++)N[b]=Math.sqrt(Number(I.data[b]));return B.fromData(N,[...I.shape],"float64")}function Z(n,p,F=!1){const x=n.dtype,c=n.shape,I=c.length,N=n.data,b=n.offset,m=n.strides;if(k(x)){const l=N;if(p===void 0){let a=1/0,i=1/0,d=!1;if(n.isCContiguous)for(let u=0;u<n.size;u++){const z=l[(b+u)*2],C=l[(b+u)*2+1];isNaN(z)||isNaN(C)||(d?(z<a||z===a&&C<i)&&(a=z,i=C):(a=z,i=C,d=!0))}else for(let u=0;u<n.size;u++){const z=n.iget(u),C=z.re,E=z.im;isNaN(C)||isNaN(E)||(d?(C<a||C===a&&E<i)&&(a=C,i=E):(a=C,i=E,d=!0))}return d?new U(a,i):new U(NaN,NaN)}let e=p;if(e<0&&(e=I+e),e<0||e>=I)throw new Error(`axis ${p} is out of bounds for array of dimension ${I}`);const t=Array.from(c).filter((a,i)=>i!==e);if(t.length===0)return Z(n);const o=t.reduce((a,i)=>a*i,1),r=c[e],s=new Float64Array(o*2);for(let a=0;a<o;a++){let i=1/0,d=1/0,w=!1;for(let u=0;u<r;u++){const z=M(a,e,u,c),C=V(z,m,b),E=l[C*2],R=l[C*2+1];isNaN(E)||isNaN(R)||(w?(E<i||E===i&&R<d)&&(i=E,d=R):(i=E,d=R,w=!0))}s[a*2]=w?i:NaN,s[a*2+1]=w?d:NaN}const f=B.fromData(s,t,x);if(F){const a=[...c];return a[e]=1,B.fromData(s,a,x)}return f}if(p===void 0){let l=1/0;if(n.isCContiguous)for(let t=0;t<n.size;t++){const o=Number(N[b+t]);!isNaN(o)&&o<l&&(l=o)}else for(let t=0;t<n.size;t++){const o=Number(n.iget(t));!isNaN(o)&&o<l&&(l=o)}return l===1/0?NaN:l}let h=p;if(h<0&&(h=I+h),h<0||h>=I)throw new Error(`axis ${p} is out of bounds for array of dimension ${I}`);const y=Array.from(c).filter((l,e)=>e!==h);if(y.length===0)return Z(n);const A=y.reduce((l,e)=>l*e,1),$=c[h],S=new Float64Array(A);for(let l=0;l<A;l++){let e=1/0;for(let t=0;t<$;t++){const o=M(l,h,t,c),r=V(o,m,b),s=Number(N[r]);!isNaN(s)&&s<e&&(e=s)}S[l]=e===1/0?NaN:e}const D=B.fromData(S,y,"float64");if(F){const l=[...c];return l[h]=1,B.fromData(S,l,"float64")}return D}function tt(n,p,F=!1){const x=n.dtype,c=n.shape,I=c.length,N=n.data,b=n.offset,m=n.strides;if(k(x)){const l=N;if(p===void 0){let a=-1/0,i=-1/0,d=!1;if(n.isCContiguous)for(let u=0;u<n.size;u++){const z=l[(b+u)*2],C=l[(b+u)*2+1];isNaN(z)||isNaN(C)||(d?(z>a||z===a&&C>i)&&(a=z,i=C):(a=z,i=C,d=!0))}else for(let u=0;u<n.size;u++){const z=n.iget(u),C=z.re,E=z.im;isNaN(C)||isNaN(E)||(d?(C>a||C===a&&E>i)&&(a=C,i=E):(a=C,i=E,d=!0))}return d?new U(a,i):new U(NaN,NaN)}let e=p;if(e<0&&(e=I+e),e<0||e>=I)throw new Error(`axis ${p} is out of bounds for array of dimension ${I}`);const t=Array.from(c).filter((a,i)=>i!==e);if(t.length===0)return tt(n);const o=t.reduce((a,i)=>a*i,1),r=c[e],s=new Float64Array(o*2);for(let a=0;a<o;a++){let i=-1/0,d=-1/0,w=!1;for(let u=0;u<r;u++){const z=M(a,e,u,c),C=V(z,m,b),E=l[C*2],R=l[C*2+1];isNaN(E)||isNaN(R)||(w?(E>i||E===i&&R>d)&&(i=E,d=R):(i=E,d=R,w=!0))}s[a*2]=w?i:NaN,s[a*2+1]=w?d:NaN}const f=B.fromData(s,t,x);if(F){const a=[...c];return a[e]=1,B.fromData(s,a,x)}return f}if(p===void 0){let l=-1/0;if(n.isCContiguous)for(let t=0;t<n.size;t++){const o=Number(N[b+t]);!isNaN(o)&&o>l&&(l=o)}else for(let t=0;t<n.size;t++){const o=Number(n.iget(t));!isNaN(o)&&o>l&&(l=o)}return l===-1/0?NaN:l}let h=p;if(h<0&&(h=I+h),h<0||h>=I)throw new Error(`axis ${p} is out of bounds for array of dimension ${I}`);const y=Array.from(c).filter((l,e)=>e!==h);if(y.length===0)return tt(n);const A=y.reduce((l,e)=>l*e,1),$=c[h],S=new Float64Array(A);for(let l=0;l<A;l++){let e=-1/0;for(let t=0;t<$;t++){const o=M(l,h,t,c),r=V(o,m,b),s=Number(N[r]);!isNaN(s)&&s>e&&(e=s)}S[l]=e===-1/0?NaN:e}const D=B.fromData(S,y,"float64");if(F){const l=[...c];return l[h]=1,B.fromData(S,l,"float64")}return D}function et(n,p){const F=n.dtype,x=n.shape,c=x.length,I=n.data,N=n.offset,b=n.strides;if(k(F)){const S=I;if(p===void 0){let r=1/0,s=1/0,f=-1;if(n.isCContiguous)for(let i=0;i<n.size;i++){const d=S[(N+i)*2],w=S[(N+i)*2+1];!P(d,w)&&W(d,w,r,s)<0&&(r=d,s=w,f=i)}else for(let i=0;i<n.size;i++){const d=n.iget(i),w=d.re,u=d.im;!P(w,u)&&W(w,u,r,s)<0&&(r=w,s=u,f=i)}return f}let D=p;if(D<0&&(D=c+D),D<0||D>=c)throw new Error(`axis ${p} is out of bounds for array of dimension ${c}`);const l=Array.from(x).filter((r,s)=>s!==D);if(l.length===0)return et(n);const e=l.reduce((r,s)=>r*s,1),t=x[D],o=new Int32Array(e);for(let r=0;r<e;r++){let s=1/0,f=1/0,a=0;for(let i=0;i<t;i++){const d=M(r,D,i,x),w=V(d,b,N),u=S[w*2],z=S[w*2+1];!P(u,z)&&W(u,z,s,f)<0&&(s=u,f=z,a=i)}o[r]=a}return B.fromData(o,l,"int32")}if(p===void 0){let S=1/0,D=-1;if(n.isCContiguous)for(let e=0;e<n.size;e++){const t=Number(I[N+e]);!isNaN(t)&&t<S&&(S=t,D=e)}else for(let e=0;e<n.size;e++){const t=Number(n.iget(e));!isNaN(t)&&t<S&&(S=t,D=e)}return D}let m=p;if(m<0&&(m=c+m),m<0||m>=c)throw new Error(`axis ${p} is out of bounds for array of dimension ${c}`);const h=Array.from(x).filter((S,D)=>D!==m);if(h.length===0)return et(n);const y=h.reduce((S,D)=>S*D,1),A=x[m],$=new Int32Array(y);for(let S=0;S<y;S++){let D=1/0,l=0;for(let e=0;e<A;e++){const t=M(S,m,e,x),o=V(t,b,N),r=Number(I[o]);!isNaN(r)&&r<D&&(D=r,l=e)}$[S]=l}return B.fromData($,h,"int32")}function ot(n,p){const F=n.dtype,x=n.shape,c=x.length,I=n.data,N=n.offset,b=n.strides;if(k(F)){const S=I;if(p===void 0){let r=-1/0,s=-1/0,f=-1;if(n.isCContiguous)for(let i=0;i<n.size;i++){const d=S[(N+i)*2],w=S[(N+i)*2+1];!P(d,w)&&W(d,w,r,s)>0&&(r=d,s=w,f=i)}else for(let i=0;i<n.size;i++){const d=n.iget(i),w=d.re,u=d.im;!P(w,u)&&W(w,u,r,s)>0&&(r=w,s=u,f=i)}return f}let D=p;if(D<0&&(D=c+D),D<0||D>=c)throw new Error(`axis ${p} is out of bounds for array of dimension ${c}`);const l=Array.from(x).filter((r,s)=>s!==D);if(l.length===0)return ot(n);const e=l.reduce((r,s)=>r*s,1),t=x[D],o=new Int32Array(e);for(let r=0;r<e;r++){let s=-1/0,f=-1/0,a=0;for(let i=0;i<t;i++){const d=M(r,D,i,x),w=V(d,b,N),u=S[w*2],z=S[w*2+1];!P(u,z)&&W(u,z,s,f)>0&&(s=u,f=z,a=i)}o[r]=a}return B.fromData(o,l,"int32")}if(p===void 0){let S=-1/0,D=-1;if(n.isCContiguous)for(let e=0;e<n.size;e++){const t=Number(I[N+e]);!isNaN(t)&&t>S&&(S=t,D=e)}else for(let e=0;e<n.size;e++){const t=Number(n.iget(e));!isNaN(t)&&t>S&&(S=t,D=e)}return D}let m=p;if(m<0&&(m=c+m),m<0||m>=c)throw new Error(`axis ${p} is out of bounds for array of dimension ${c}`);const h=Array.from(x).filter((S,D)=>D!==m);if(h.length===0)return ot(n);const y=h.reduce((S,D)=>S*D,1),A=x[m],$=new Int32Array(y);for(let S=0;S<y;S++){let D=-1/0,l=0;for(let e=0;e<A;e++){const t=M(S,m,e,x),o=V(t,b,N),r=Number(I[o]);!isNaN(r)&&r>D&&(D=r,l=e)}$[S]=l}return B.fromData($,h,"int32")}function wt(n,p){const F=n.dtype,x=n.shape,c=x.length,I=n.data,N=n.offset;if(k(F)){const l=I,e=n.size;if(p===void 0){const u=B.zeros([e],F),z=u.data;let C=0,E=0;if(n.isCContiguous)for(let v=0;v<e;v++){const g=l[(N+v)*2],_=l[(N+v)*2+1];P(g,_)||(C+=g,E+=_),z[v*2]=C,z[v*2+1]=E}else for(let v=0;v<e;v++){const g=n.iget(v),_=g.re,T=g.im;P(_,T)||(C+=_,E+=T),z[v*2]=C,z[v*2+1]=E}return u}let t=p;if(t<0&&(t=c+t),t<0||t>=c)throw new Error(`axis ${p} is out of bounds for array of dimension ${c}`);const o=B.zeros([...x],F),r=o.data,s=x[t],f=[];let a=1;for(let u=c-1;u>=0;u--)f.unshift(a),a*=x[u];const i=n.size,d=f[t];if(n.isCContiguous)for(let u=0;u<i;u++){const z=l[(N+u)*2],C=l[(N+u)*2+1],E=Math.floor(u/d)%s,R=P(z,C);E===0?(r[u*2]=R?0:z,r[u*2+1]=R?0:C):(r[u*2]=r[(u-d)*2]+(R?0:z),r[u*2+1]=r[(u-d)*2+1]+(R?0:C))}else for(let u=0;u<i;u++){const z=n.iget(u),C=z.re,E=z.im,R=Math.floor(u/d)%s,v=P(C,E);R===0?(r[u*2]=v?0:C,r[u*2+1]=v?0:E):(r[u*2]=r[(u-d)*2]+(v?0:C),r[u*2+1]=r[(u-d)*2+1]+(v?0:E))}return o}if(p===void 0){const l=n.size,e=new Float64Array(l);let t=0;if(n.isCContiguous)for(let r=0;r<l;r++){const s=Number(I[N+r]);isNaN(s)||(t+=s),e[r]=t}else for(let r=0;r<l;r++){const s=Number(n.iget(r));isNaN(s)||(t+=s),e[r]=t}return B.fromData(e,[l],"float64")}let b=p;if(b<0&&(b=c+b),b<0||b>=c)throw new Error(`axis ${p} is out of bounds for array of dimension ${c}`);const m=new Float64Array(n.size),h=x[b],y=[];let A=1;for(let l=c-1;l>=0;l--)y.unshift(A),A*=x[l];const $=n.size,S=y[b];if(n.isCContiguous)for(let l=0;l<$;l++){const e=Number(I[N+l]);Math.floor(l/S)%h===0?m[l]=isNaN(e)?0:e:m[l]=m[l-S]+(isNaN(e)?0:e)}else for(let l=0;l<$;l++){const e=Number(n.iget(l));Math.floor(l/S)%h===0?m[l]=isNaN(e)?0:e:m[l]=m[l-S]+(isNaN(e)?0:e)}return B.fromData(m,[...x],"float64")}function Ct(n,p){const F=n.dtype,x=n.shape,c=x.length,I=n.data,N=n.offset;if(k(F)){const l=I,e=n.size;if(p===void 0){const u=B.zeros([e],F),z=u.data;let C=1,E=0;if(n.isCContiguous)for(let v=0;v<e;v++){const g=l[(N+v)*2],_=l[(N+v)*2+1];if(!P(g,_)){const T=C*g-E*_,q=C*_+E*g;C=T,E=q}z[v*2]=C,z[v*2+1]=E}else for(let v=0;v<e;v++){const g=n.iget(v),_=g.re,T=g.im;if(!P(_,T)){const q=C*_-E*T,O=C*T+E*_;C=q,E=O}z[v*2]=C,z[v*2+1]=E}return u}let t=p;if(t<0&&(t=c+t),t<0||t>=c)throw new Error(`axis ${p} is out of bounds for array of dimension ${c}`);const o=B.zeros([...x],F),r=o.data,s=x[t],f=[];let a=1;for(let u=c-1;u>=0;u--)f.unshift(a),a*=x[u];const i=n.size,d=f[t];if(n.isCContiguous)for(let u=0;u<i;u++){const z=l[(N+u)*2],C=l[(N+u)*2+1],E=Math.floor(u/d)%s,R=P(z,C);if(E===0)r[u*2]=R?1:z,r[u*2+1]=R?0:C;else{const v=r[(u-d)*2],g=r[(u-d)*2+1];R?(r[u*2]=v,r[u*2+1]=g):(r[u*2]=v*z-g*C,r[u*2+1]=v*C+g*z)}}else for(let u=0;u<i;u++){const z=n.iget(u),C=z.re,E=z.im,R=Math.floor(u/d)%s,v=P(C,E);if(R===0)r[u*2]=v?1:C,r[u*2+1]=v?0:E;else{const g=r[(u-d)*2],_=r[(u-d)*2+1];v?(r[u*2]=g,r[u*2+1]=_):(r[u*2]=g*C-_*E,r[u*2+1]=g*E+_*C)}}return o}if(p===void 0){const l=n.size,e=new Float64Array(l);let t=1;if(n.isCContiguous)for(let r=0;r<l;r++){const s=Number(I[N+r]);isNaN(s)||(t*=s),e[r]=t}else for(let r=0;r<l;r++){const s=Number(n.iget(r));isNaN(s)||(t*=s),e[r]=t}return B.fromData(e,[l],"float64")}let b=p;if(b<0&&(b=c+b),b<0||b>=c)throw new Error(`axis ${p} is out of bounds for array of dimension ${c}`);const m=new Float64Array(n.size),h=x[b],y=[];let A=1;for(let l=c-1;l>=0;l--)y.unshift(A),A*=x[l];const $=n.size,S=y[b];if(n.isCContiguous)for(let l=0;l<$;l++){const e=Number(I[N+l]);Math.floor(l/S)%h===0?m[l]=isNaN(e)?1:e:m[l]=m[l-S]*(isNaN(e)?1:e)}else for(let l=0;l<$;l++){const e=Number(n.iget(l));Math.floor(l/S)%h===0?m[l]=isNaN(e)?1:e:m[l]=m[l-S]*(isNaN(e)?1:e)}return B.fromData(m,[...x],"float64")}function dt(n,p,F=!1){H(n.dtype,"nanmedian","Complex numbers are not orderable.");const x=n.shape,c=x.length,I=n.data,N=n.offset,b=n.strides;if(p===void 0){const D=[];if(n.isCContiguous)for(let o=0;o<n.size;o++){const r=Number(I[N+o]);isNaN(r)||D.push(r)}else for(let o=0;o<n.size;o++){const r=Number(n.iget(o));isNaN(r)||D.push(r)}if(D.length===0)return NaN;D.sort((o,r)=>o-r);const e=D.length,t=Math.floor(e/2);return e%2===0?(D[t-1]+D[t])/2:D[t]}let m=p;if(m<0&&(m=c+m),m<0||m>=c)throw new Error(`axis ${p} is out of bounds for array of dimension ${c}`);const h=Array.from(x).filter((D,l)=>l!==m);if(h.length===0)return dt(n);const y=h.reduce((D,l)=>D*l,1),A=x[m],$=new Float64Array(y);for(let D=0;D<y;D++){const l=[];for(let o=0;o<A;o++){const r=M(D,m,o,x),s=V(r,b,N),f=Number(I[s]);isNaN(f)||l.push(f)}if(l.length===0){$[D]=NaN;continue}l.sort((o,r)=>o-r);const e=l.length,t=Math.floor(e/2);e%2===0?$[D]=(l[t-1]+l[t])/2:$[D]=l[t]}const S=B.fromData($,h,"float64");if(F){const D=[...x];return D[m]=1,B.fromData($,D,"float64")}return S}function nt(n,p,F,x=!1){if(H(n.dtype,"nanquantile","Complex numbers are not orderable."),p<0||p>1)throw new Error("Quantile must be between 0 and 1");const c=n.shape,I=c.length,N=n.data,b=n.offset,m=n.strides;if(F===void 0){const l=[];if(n.isCContiguous)for(let a=0;a<n.size;a++){const i=Number(N[b+a]);isNaN(i)||l.push(i)}else for(let a=0;a<n.size;a++){const i=Number(n.iget(a));isNaN(i)||l.push(i)}if(l.length===0)return NaN;l.sort((a,i)=>a-i);const t=l.length,o=p*(t-1),r=Math.floor(o),s=Math.ceil(o);if(r===s)return l[r];const f=o-r;return l[r]*(1-f)+l[s]*f}let h=F;if(h<0&&(h=I+h),h<0||h>=I)throw new Error(`axis ${F} is out of bounds for array of dimension ${I}`);const y=Array.from(c).filter((l,e)=>e!==h);if(y.length===0)return nt(n,p);const A=y.reduce((l,e)=>l*e,1),$=c[h],S=new Float64Array(A);for(let l=0;l<A;l++){const e=[];for(let f=0;f<$;f++){const a=M(l,h,f,c),i=V(a,m,b),d=Number(N[i]);isNaN(d)||e.push(d)}if(e.length===0){S[l]=NaN;continue}e.sort((f,a)=>f-a);const t=e.length,o=p*(t-1),r=Math.floor(o),s=Math.ceil(o);if(r===s)S[l]=e[r];else{const f=o-r;S[l]=e[r]*(1-f)+e[s]*f}}const D=B.fromData(S,y,"float64");if(x){const l=[...c];return l[h]=1,B.fromData(S,l,"float64")}return D}function Ft(n,p,F,x=!1){return nt(n,p/100,F,x)}export{ft as all,lt as any,st as argmax,it as argmin,Y as average,At as cumprod,bt as cumsum,j as max,X as mean,St as median,G as min,ot as nanargmax,et as nanargmin,Ct as nancumprod,wt as nancumsum,tt as nanmax,mt as nanmean,dt as nanmedian,Z as nanmin,Ft as nanpercentile,ct as nanprod,nt as nanquantile,Dt as nanstd,ut as nansum,L as nanvar,zt as percentile,rt as prod,ht as ptp,K as quantile,Nt as std,J as sum,at as variance};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{ArrayStorage as c}from"../storage";import{throwIfComplex as l}from"../dtype";function p(t){if(!isFinite(t))return t;const r=Math.floor(t),a=t-r;return Math.abs(a-.5)<1e-10?r%2===0?r:r+1:Math.round(t)}function g(t,r=0){l(t.dtype,"around","Rounding is not defined for complex numbers.");const a=t.dtype,n=Array.from(t.shape),u=t.size,f=a==="float32"?"float32":"float64",s=c.zeros(n,f),o=s.data,i=Math.pow(10,r);if(t.isCContiguous){const e=t.data,y=t.offset;for(let d=0;d<u;d++){const m=Number(e[y+d]);o[d]=p(m*i)/i}}else for(let e=0;e<u;e++){const y=Number(t.iget(e));o[e]=p(y*i)/i}return s}function A(t){l(t.dtype,"ceil","Rounding is not defined for complex numbers.");const r=t.dtype,a=Array.from(t.shape),n=t.size,u=r==="float32"?"float32":"float64",f=c.zeros(a,u),s=f.data;if(t.isCContiguous){const o=t.data,i=t.offset;for(let e=0;e<n;e++)s[e]=Math.ceil(Number(o[i+e]))}else for(let o=0;o<n;o++)s[o]=Math.ceil(Number(t.iget(o)));return f}function z(t){l(t.dtype,"fix","Rounding is not defined for complex numbers.");const r=t.dtype,a=Array.from(t.shape),n=t.size,u=r==="float32"?"float32":"float64",f=c.zeros(a,u),s=f.data;if(t.isCContiguous){const o=t.data,i=t.offset;for(let e=0;e<n;e++)s[e]=Math.trunc(Number(o[i+e]))}else for(let o=0;o<n;o++)s[o]=Math.trunc(Number(t.iget(o)));return f}function S(t){l(t.dtype,"floor","Rounding is not defined for complex numbers.");const r=t.dtype,a=Array.from(t.shape),n=t.size,u=r==="float32"?"float32":"float64",f=c.zeros(a,u),s=f.data;if(t.isCContiguous){const o=t.data,i=t.offset;for(let e=0;e<n;e++)s[e]=Math.floor(Number(o[i+e]))}else for(let o=0;o<n;o++)s[o]=Math.floor(Number(t.iget(o)));return f}function C(t){l(t.dtype,"rint","Rounding is not defined for complex numbers.");const r=t.dtype,a=Array.from(t.shape),n=t.size,u=r==="float32"?"float32":"float64",f=c.zeros(a,u),s=f.data;if(t.isCContiguous){const o=t.data,i=t.offset;for(let e=0;e<n;e++)s[e]=p(Number(o[i+e]))}else for(let o=0;o<n;o++)s[o]=p(Number(t.iget(o)));return f}function x(t,r=0){return g(t,r)}function D(t){l(t.dtype,"trunc","Rounding is not defined for complex numbers.");const r=t.dtype,a=Array.from(t.shape),n=t.size,u=r==="float32"?"float32":"float64",f=c.zeros(a,u),s=f.data;if(t.isCContiguous){const o=t.data,i=t.offset;for(let e=0;e<n;e++)s[e]=Math.trunc(Number(o[i+e]))}else for(let o=0;o<n;o++)s[o]=Math.trunc(Number(t.iget(o)));return f}export{g as around,A as ceil,z as fix,S as floor,C as rint,x as round,D as trunc};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{ArrayStorage as v}from"../storage";import{isComplexDType as k}from"../dtype";function R(r,c,t,o){const i=isNaN(r)||isNaN(c),s=isNaN(t)||isNaN(o);return i&&s?0:i?1:s||r<t?-1:r>t?1:c<o?-1:c>o?1:0}function B(r,c,t,o){const i=isNaN(r)||isNaN(c),s=isNaN(t)||isNaN(o);return i&&s?!0:i||s?!1:r===t&&c===o}function F(r,c=!1,t=!1,o=!1){const i=r.dtype,s=r.size,A=r.data,g=r.offset;if(k(i)){const a=A,S=[];for(let n=0;n<s;n++)S.push({re:a[(g+n)*2],im:a[(g+n)*2+1],index:n});S.sort((n,z)=>R(n.re,n.im,z.re,z.im));const p=[],T=[],$=new Array(s),_=[];let I,U,C=0;for(let n=0;n<S.length;n++){const{re:z,im:h,index:Z}=S[n];I===void 0||!B(z,h,I,U)?(I!==void 0&&_.push(C),p.push({re:z,im:h}),T.push(Z),C=1,I=z,U=h):C++}C>0&&_.push(C);const M=new Map;let K=-1;for(let n=0;n<p.length;n++){const{re:z,im:h}=p[n];isNaN(z)||isNaN(h)?K=n:M.set(`${z},${h}`,n)}for(let n=0;n<s;n++){const z=a[(g+n)*2],h=a[(g+n)*2+1];isNaN(z)||isNaN(h)?$[n]=K:$[n]=M.get(`${z},${h}`)}const j=v.zeros([p.length],i),L=j.data;for(let n=0;n<p.length;n++)L[n*2]=p[n].re,L[n*2+1]=p[n].im;if(!c&&!t&&!o)return j;const V={values:j};if(c){const n=v.zeros([T.length],"int32"),z=n.data;for(let h=0;h<T.length;h++)z[h]=T[h];V.indices=n}if(t){const n=v.zeros([$.length],"int32"),z=n.data;for(let h=0;h<$.length;h++)z[h]=$[h];V.inverse=n}if(o){const n=v.zeros([_.length],"int32"),z=n.data;for(let h=0;h<_.length;h++)z[h]=_[h];V.counts=n}return V}const f=[];for(let a=0;a<s;a++)f.push({value:Number(A[g+a]),index:a});f.sort((a,S)=>isNaN(a.value)&&isNaN(S.value)?0:isNaN(a.value)?1:isNaN(S.value)?-1:a.value-S.value);const u=[],l=[],y=new Array(s),N=[];let e,m=0;for(let a=0;a<f.length;a++){const{value:S,index:p}=f[a];e===void 0||isNaN(S)&&!isNaN(e)||!isNaN(S)&&isNaN(e)||!isNaN(S)&&!isNaN(e)&&S!==e?(e!==void 0&&N.push(m),u.push(S),l.push(p),m=1,e=S):m++}m>0&&N.push(m);const d=new Map;let D=-1;for(let a=0;a<u.length;a++){const S=u[a];isNaN(S)?D=a:d.set(S,a)}for(let a=0;a<s;a++){const S=Number(A[g+a]);isNaN(S)?y[a]=D:y[a]=d.get(S)}const x=v.zeros([u.length],i),b=x.data;for(let a=0;a<u.length;a++)b[a]=u[a];if(!c&&!t&&!o)return x;const w={values:x};if(c){const a=v.zeros([l.length],"int32"),S=a.data;for(let p=0;p<l.length;p++)S[p]=l[p];w.indices=a}if(t){const a=v.zeros([y.length],"int32"),S=a.data;for(let p=0;p<y.length;p++)S[p]=y[p];w.inverse=a}if(o){const a=v.zeros([N.length],"int32"),S=a.data;for(let p=0;p<N.length;p++)S[p]=N[p];w.counts=a}return w}function q(r,c,t,o=0){if(t){const i=Number(r[(o+c)*2]),s=Number(r[(o+c)*2+1]);return`${i},${s}`}return String(Number(r[o+c]))}function P(r,c){return G(r,c)}function Q(r,c){const t=r.dtype,o=k(t),i=F(r),s=F(c),A=new Set;for(let l=0;l<s.size;l++)A.add(q(s.data,l,o));const g=[];for(let l=0;l<i.size;l++){const y=q(i.data,l,o);A.has(y)&&g.push(l)}if(o){const l=v.zeros([g.length],t),y=l.data,N=i.data;for(let e=0;e<g.length;e++){const m=g[e];y[e*2]=N[m*2],y[e*2+1]=N[m*2+1]}return l}const f=v.zeros([g.length],t),u=f.data;for(let l=0;l<g.length;l++)u[l]=i.data[g[l]];return f}function G(r,c){const t=Array.from(r.shape),o=r.size,i=k(r.dtype),s=new Set;for(let f=0;f<c.size;f++)s.add(q(c.data,f,i,c.offset));const A=v.zeros(t,"bool"),g=A.data;for(let f=0;f<o;f++){const u=q(r.data,f,i,r.offset);g[f]=s.has(u)?1:0}return A}function W(r,c){const t=r.dtype,o=k(t),i=F(r),s=new Set;for(let u=0;u<c.size;u++)s.add(q(c.data,u,o,c.offset));const A=[];for(let u=0;u<i.size;u++){const l=q(i.data,u,o);s.has(l)||A.push(u)}if(o){const u=v.zeros([A.length],t),l=u.data,y=i.data;for(let N=0;N<A.length;N++){const e=A[N];l[N*2]=y[e*2],l[N*2+1]=y[e*2+1]}return u}const g=v.zeros([A.length],t),f=g.data;for(let u=0;u<A.length;u++)f[u]=i.data[A[u]];return g}function X(r,c){const t=r.dtype,o=k(t),i=F(r),s=F(c),A=new Set,g=new Set;for(let e=0;e<i.size;e++)A.add(q(i.data,e,o));for(let e=0;e<s.size;e++)g.add(q(s.data,e,o));const f=[],u=[];for(let e=0;e<i.size;e++){const m=q(i.data,e,o);g.has(m)||f.push(e)}for(let e=0;e<s.size;e++){const m=q(s.data,e,o);A.has(m)||u.push(e)}if(o){const e=[],m=i.data,d=s.data;for(const b of f)e.push({re:m[b*2],im:m[b*2+1]});for(const b of u)e.push({re:d[b*2],im:d[b*2+1]});e.sort((b,w)=>R(b.re,b.im,w.re,w.im));const D=v.zeros([e.length],t),x=D.data;for(let b=0;b<e.length;b++)x[b*2]=e[b].re,x[b*2+1]=e[b].im;return D}const l=[];for(const e of f)l.push(Number(i.data[e]));for(const e of u)l.push(Number(s.data[e]));l.sort((e,m)=>isNaN(e)&&isNaN(m)?0:isNaN(e)?1:isNaN(m)?-1:e-m);const y=v.zeros([l.length],t),N=y.data;for(let e=0;e<l.length;e++)N[e]=l[e];return y}function Y(r,c){const t=r.dtype,o=k(t),i=F(r),s=F(c),A=new Set,g=[];if(o){const y=i.data,N=s.data;for(let d=0;d<i.size;d++){const D=y[d*2],x=y[d*2+1],b=`${D},${x}`;A.has(b)||(A.add(b),g.push({re:D,im:x}))}for(let d=0;d<s.size;d++){const D=N[d*2],x=N[d*2+1],b=`${D},${x}`;A.has(b)||(A.add(b),g.push({re:D,im:x}))}g.sort((d,D)=>R(d.re,d.im,D.re,D.im));const e=v.zeros([g.length],t),m=e.data;for(let d=0;d<g.length;d++)m[d*2]=g[d].re,m[d*2+1]=g[d].im;return e}const f=[];for(let y=0;y<i.size;y++){const N=Number(i.data[y]),e=String(N);A.has(e)||(A.add(e),f.push(N))}for(let y=0;y<s.size;y++){const N=Number(s.data[y]),e=String(N);A.has(e)||(A.add(e),f.push(N))}f.sort((y,N)=>isNaN(y)&&isNaN(N)?0:isNaN(y)?1:isNaN(N)?-1:y-N);const u=v.zeros([f.length],t),l=u.data;for(let y=0;y<f.length;y++)l[y]=f[y];return u}function E(r,c="fb"){const t=r.dtype,o=r.data,i=r.size,s=r.offset,A=k(t);if(i===0)return v.zeros([0],t);const g=e=>{if(A){const m=o[(s+e)*2],d=o[(s+e)*2+1];return m===0&&d===0}return Number(o[s+e])===0};let f=0;if(c==="f"||c==="fb")for(;f<i&&g(f);)f++;let u=i-1;if(c==="b"||c==="fb")for(;u>=f&&g(u);)u--;if(f>u)return v.zeros([0],t);const l=u-f+1;if(A){const e=v.zeros([l],t),m=e.data;for(let d=0;d<l;d++)m[d*2]=o[(s+f+d)*2],m[d*2+1]=o[(s+f+d)*2+1];return e}const y=v.zeros([l],t),N=y.data;for(let e=0;e<l;e++)N[e]=o[s+f+e];return y}function ee(r){const t=F(r,!0,!0,!0);return{values:t.values,indices:t.indices,inverse_indices:t.inverse,counts:t.counts}}function re(r){const t=F(r,!1,!1,!0);return{values:t.values,counts:t.counts}}function te(r){const t=F(r,!1,!0,!1);return{values:t.values,inverse_indices:t.inverse}}function ae(r){return F(r)}export{P as in1d,Q as intersect1d,G as isin,W as setdiff1d,X as setxor1d,E as trim_zeros,Y as union1d,F as unique,ee as unique_all,re as unique_counts,te as unique_inverse,ae as unique_values};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{ArrayStorage as x,computeStrides as T}from"../storage";import{getTypedArrayConstructor as U,isBigIntDType as R}from"../dtype";function C(r,t){const n=r.size,e=r.dtype,o=t.indexOf(-1);let s;if(o!==-1){const i=t.reduce((l,m,y)=>y===o?l:l*m,1),p=n/i;if(!Number.isInteger(p))throw new Error(`cannot reshape array of size ${n} into shape ${JSON.stringify(t)}`);s=t.map((l,m)=>m===o?p:l)}else s=t;if(s.reduce((i,p)=>i*p,1)!==n)throw new Error(`cannot reshape array of size ${n} into shape ${JSON.stringify(s)}`);if(r.isCContiguous){const i=r.data;return x.fromData(i,s,e,T(s),0)}const u=r.copy().data;return x.fromData(u,s,e,T(s),0)}function q(r){const t=r.size,n=r.dtype,e=U(n);if(!e)throw new Error(`Cannot flatten array with dtype ${n}`);if(r.isCContiguous){const a=r.data.slice(r.offset,r.offset+t);return x.fromData(a,[t],n,[1],0)}const o=new e(t),s=R(n);for(let c=0;c<t;c++){const a=r.iget(c);o[c]=a}return x.fromData(o,[t],n,[1],0)}function L(r){const t=r.size,n=r.dtype;if(r.isCContiguous){const e=r.data;return x.fromData(e,[t],n,[1],0)}return q(r)}function N(r,t){const n=r.shape,e=n.length,o=r.strides,s=r.data,c=r.dtype;let a;if(t===void 0)a=Array.from({length:e},(l,m)=>e-1-m);else{if(t.length!==e)throw new Error(`axes must have length ${e}, got ${t.length}`);const l=new Set;for(const m of t){const y=m<0?e+m:m;if(y<0||y>=e)throw new Error(`axis ${m} is out of bounds for array of dimension ${e}`);if(l.has(y))throw new Error("repeated axis in transpose");l.add(y)}a=t.map(m=>m<0?e+m:m)}const u=a.map(l=>n[l]),i=Array.from(o),p=a.map(l=>i[l]);return x.fromData(s,u,c,p,r.offset)}function _(r,t){const n=r.shape,e=n.length,o=r.strides,s=r.data,c=r.dtype;if(t===void 0){const a=[],u=[];for(let i=0;i<e;i++)n[i]!==1&&(a.push(n[i]),u.push(o[i]));return a.length===0&&(a.push(1),u.push(1)),x.fromData(s,a,c,u,r.offset)}else{const a=t<0?e+t:t;if(a<0||a>=e)throw new Error(`axis ${t} is out of bounds for array of dimension ${e}`);if(n[a]!==1)throw new Error(`cannot select an axis which has size not equal to one (axis ${t} has size ${n[a]})`);const u=[],i=[];for(let p=0;p<e;p++)p!==a&&(u.push(n[p]),i.push(o[p]));return x.fromData(s,u,c,i,r.offset)}}function k(r,t){const n=r.shape,e=n.length,o=r.strides,s=r.data,c=r.dtype;let a=t;if(a<0&&(a=e+t+1),a<0||a>e)throw new Error(`axis ${t} is out of bounds for array of dimension ${e+1}`);const u=[...Array.from(n)];u.splice(a,0,1);const i=[...Array.from(o)],p=a<e?o[a]*(n[a]||1):1;return i.splice(a,0,p),x.fromData(s,u,c,i,r.offset)}function Q(r,t,n){const e=r.shape,o=e.length,s=r.strides,c=r.data,a=r.dtype;let u=t<0?o+t:t,i=n<0?o+n:n;if(u<0||u>=o)throw new Error(`axis1 ${t} is out of bounds for array of dimension ${o}`);if(i<0||i>=o)throw new Error(`axis2 ${n} is out of bounds for array of dimension ${o}`);if(u===i)return x.fromData(c,Array.from(e),a,Array.from(s),r.offset);const p=Array.from(e),l=Array.from(s);return[p[u],p[i]]=[p[i],p[u]],[l[u],l[i]]=[l[i],l[u]],x.fromData(c,p,a,l,r.offset)}function F(r,t,n){const e=r.ndim,o=Array.isArray(t)?t:[t],s=Array.isArray(n)?n:[n];if(o.length!==s.length)throw new Error("source and destination must have the same number of elements");const c=o.map(i=>{const p=i<0?e+i:i;if(p<0||p>=e)throw new Error(`source axis ${i} is out of bounds for array of dimension ${e}`);return p}),a=s.map(i=>{const p=i<0?e+i:i;if(p<0||p>=e)throw new Error(`destination axis ${i} is out of bounds for array of dimension ${e}`);return p});if(new Set(c).size!==c.length)throw new Error("repeated axis in source");if(new Set(a).size!==a.length)throw new Error("repeated axis in destination");const u=[];for(let i=0;i<e;i++)c.includes(i)||u.push(i);for(let i=0;i<c.length;i++){const p=a[i];u.splice(p,0,c[i])}return N(r,u)}function v(r,t=0){if(r.length===0)throw new Error("need at least one array to concatenate");if(r.length===1)return r[0].copy();const n=r[0],e=n.ndim,o=n.dtype,s=t<0?e+t:t;if(s<0||s>=e)throw new Error(`axis ${t} is out of bounds for array of dimension ${e}`);for(let y=1;y<r.length;y++){const h=r[y];if(h.ndim!==e)throw new Error("all the input arrays must have same number of dimensions");for(let A=0;A<e;A++)if(A!==s&&h.shape[A]!==n.shape[A])throw new Error("all the input array dimensions except for the concatenation axis must match exactly")}const c=Array.from(n.shape);let a=n.shape[s];for(let y=1;y<r.length;y++)a+=r[y].shape[s];c[s]=a;const u=c.reduce((y,h)=>y*h,1),i=U(o);if(!i)throw new Error(`Cannot concatenate arrays with dtype ${o}`);const p=new i(u),l=T(c);let m=0;for(const y of r){const h=y.shape[s];J(y,p,c,l,s,m,o),m+=h}return x.fromData(p,c,o)}function J(r,t,n,e,o,s,c){const a=r.shape,u=a.length,i=r.size,p=c==="int64"||c==="uint64";if(o===0&&r.isCContiguous&&u>0){const y=s*e[0],h=r.data,A=r.offset,w=A+i;t.set(h.subarray(A,w),y);return}if(o===1&&u===2&&r.isCContiguous){const y=a[0],h=a[1],A=n[1],w=r.data,I=r.offset;for(let f=0;f<y;f++){const d=I+f*h,E=f*A+s;t.set(w.subarray(d,d+h),E)}return}const l=new Array(u).fill(0),m=s*e[o];for(let y=0;y<i;y++){const h=r.iget(y);let A=m;for(let w=0;w<u;w++)A+=l[w]*e[w];t[A]=h;for(let w=u-1;w>=0&&(l[w]++,!(l[w]<a[w]));w--)l[w]=0}}function V(r,t=0){if(r.length===0)throw new Error("need at least one array to stack");const n=r[0],e=n.shape,o=n.ndim,s=t<0?o+1+t:t;if(s<0||s>o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o+1}`);for(let a=1;a<r.length;a++){const u=r[a];if(u.ndim!==o)throw new Error("all input arrays must have the same shape");for(let i=0;i<o;i++)if(u.shape[i]!==e[i])throw new Error("all input arrays must have the same shape")}const c=r.map(a=>k(a,s));return v(c,s)}function j(r){if(r.length===0)throw new Error("need at least one array to stack");const t=r.map(n=>n.ndim===1?C(n,[1,n.shape[0]]):n);return v(t,0)}function P(r){if(r.length===0)throw new Error("need at least one array to stack");return r.every(n=>n.ndim===1)?v(r,0):v(r,1)}function W(r){if(r.length===0)throw new Error("need at least one array to stack");const t=r.map(n=>n.ndim===1?C(k(C(n,[1,n.shape[0]]),2),[1,n.shape[0],1]):n.ndim===2?k(n,2):n);return v(t,2)}function X(r,t,n=0){const e=r.shape,o=e.length,s=n<0?o+n:n;if(s<0||s>=o)throw new Error(`axis ${n} is out of bounds for array of dimension ${o}`);const c=e[s];let a;if(typeof t=="number"){if(c%t!==0)throw new Error("array split does not result in an equal division");const u=c/t;a=[];for(let i=1;i<t;i++)a.push(i*u)}else a=t;return M(r,a,s)}function O(r,t,n=0){const e=r.shape,o=e.length,s=n<0?o+n:n;if(s<0||s>=o)throw new Error(`axis ${n} is out of bounds for array of dimension ${o}`);const c=e[s];let a;if(typeof t=="number"){const u=t,i=Math.floor(c/u),p=c%u;a=[];let l=0;for(let m=0;m<u-1;m++)l+=i+(m<p?1:0),a.push(l)}else a=t;return M(r,a,s)}function M(r,t,n){const e=r.shape,o=e[n],s=[0,...t,o],c=[];for(let a=0;a<s.length-1;a++){const u=s[a],i=s[a+1];if(u>i)throw new Error("split indices must be in ascending order");const p=Array.from(e);p[n]=i-u;const l=r.offset+u*r.strides[n];c.push(x.fromData(r.data,p,r.dtype,Array.from(r.strides),l))}return c}function Y(r,t){if(r.ndim<2)throw new Error("vsplit only works on arrays of 2 or more dimensions");return O(r,t,0)}function Z(r,t){if(r.ndim<1)throw new Error("hsplit only works on arrays of 1 or more dimensions");const n=r.ndim===1?0:1;return O(r,t,n)}function rr(r,t){const n=r.shape,e=n.length,o=r.dtype,s=Array.isArray(t)?t:[t],c=Math.max(e,s.length),a=new Array(c).fill(1),u=new Array(c).fill(1);for(let f=0;f<e;f++)a[c-e+f]=n[f];for(let f=0;f<s.length;f++)u[c-s.length+f]=s[f];const i=a.map((f,d)=>f*u[d]),p=i.reduce((f,d)=>f*d,1),l=U(o);if(!l)throw new Error(`Cannot tile array with dtype ${o}`);const m=new l(p),y=T(i);let h=r;e<c&&(h=C(r,a));const A=o==="int64"||o==="uint64",w=h.strides,I=new Array(c).fill(0);for(let f=0;f<p;f++){let d=h.offset;for(let g=0;g<c;g++){const b=I[g]%a[g];d+=b*w[g]}const E=h.data[d];let z=0;for(let g=0;g<c;g++)z+=I[g]*y[g];m[z]=E;for(let g=c-1;g>=0&&(I[g]++,!(I[g]<i[g]));g--)I[g]=0}return x.fromData(m,i,o)}function tr(r,t,n){const e=r.shape,o=e.length,s=r.dtype,c=r.size;if(n===void 0){const f=c,d=Array.isArray(t)?t:new Array(f).fill(t);if(d.length!==f)throw new Error(`operands could not be broadcast together with shape (${f},) (${d.length},)`);const E=d.reduce((B,S)=>B+S,0),z=U(s);if(!z)throw new Error(`Cannot repeat array with dtype ${s}`);const g=new z(E);let b=0;for(let B=0;B<f;B++){const S=r.iget(B),$=d[B];for(let D=0;D<$;D++)g[b++]=S}return x.fromData(g,[E],s)}const a=n<0?o+n:n;if(a<0||a>=o)throw new Error(`axis ${n} is out of bounds for array of dimension ${o}`);const u=e[a],i=Array.isArray(t)?t:new Array(u).fill(t);if(i.length!==u)throw new Error(`operands could not be broadcast together with shape (${u},) (${i.length},)`);const p=Array.from(e);p[a]=i.reduce((f,d)=>f+d,0);const l=p.reduce((f,d)=>f*d,1),m=U(s);if(!m)throw new Error(`Cannot repeat array with dtype ${s}`);const y=new m(l),h=T(p),A=new Array(o).fill(0),w=s==="int64"||s==="uint64",I=[0];for(let f=0;f<u;f++)I.push(I[f]+i[f]);for(let f=0;f<c;f++){const d=r.iget(f),E=A[a],z=i[E];let g=0;for(let S=0;S<o;S++)S!==a&&(g+=A[S]*h[S]);const b=h[a],B=I[E];for(let S=0;S<z;S++){const $=g+(B+S)*b;y[$]=d}for(let S=o-1;S>=0&&(A[S]++,!(A[S]<e[S]));S--)A[S]=0}return x.fromData(y,p,s)}function nr(r,t){const n=r.shape,e=n.length,o=r.dtype,s=r.size;let c;if(t===void 0)c=new Set(Array.from({length:e},(m,y)=>y));else if(typeof t=="number"){const m=t<0?e+t:t;if(m<0||m>=e)throw new Error(`axis ${t} is out of bounds for array of dimension ${e}`);c=new Set([m])}else c=new Set(t.map(m=>{const y=m<0?e+m:m;if(y<0||y>=e)throw new Error(`axis ${m} is out of bounds for array of dimension ${e}`);return y}));const a=U(o);if(!a)throw new Error(`Cannot flip array with dtype ${o}`);const u=new a(s),i=R(o);if(e===1&&r.isCContiguous){const m=r.data,y=r.offset;for(let h=0;h<s;h++)u[h]=m[y+s-1-h];return x.fromData(u,[...n],o)}if(e===2&&r.isCContiguous){const m=n[0],y=n[1],h=r.data,A=r.offset;if(c.size===2){for(let w=0;w<s;w++)u[w]=h[A+s-1-w];return x.fromData(u,[...n],o)}if(c.size===1){if(c.has(0)){for(let w=0;w<m;w++){const I=A+(m-1-w)*y,f=w*y;for(let d=0;d<y;d++)u[f+d]=h[I+d]}return x.fromData(u,[...n],o)}else if(c.has(1)){for(let w=0;w<m;w++){const I=A+w*y,f=w*y;for(let d=0;d<y;d++)u[f+d]=h[I+y-1-d]}return x.fromData(u,[...n],o)}}}const p=new Array(e),l=new Array(e).fill(0);for(let m=0;m<s;m++){for(let A=0;A<e;A++)p[A]=c.has(A)?n[A]-1-l[A]:l[A];let y=r.offset;for(let A=0;A<e;A++)y+=p[A]*r.strides[A];const h=r.data[y];u[m]=h;for(let A=e-1;A>=0&&(l[A]++,!(l[A]<n[A]));A--)l[A]=0}return x.fromData(u,[...n],o)}function er(r,t=1,n=[0,1]){const e=r.shape,o=e.length,s=r.dtype;if(o<2)throw new Error("Input must be at least 2-D");const c=n[0]<0?o+n[0]:n[0],a=n[1]<0?o+n[1]:n[1];if(c<0||c>=o||a<0||a>=o)throw new Error(`Axes are out of bounds for array of dimension ${o}`);if(c===a)throw new Error("Axes must be different");if(t=(t%4+4)%4,t===0)return r.copy();const u=U(s);if(!u)throw new Error(`Cannot rotate array with dtype ${s}`);const i=[...e];(t===1||t===3)&&([i[c],i[a]]=[i[a],i[c]]);const p=i.reduce((f,d)=>f*d,1),l=new u(p),m=R(s),y=r.data;if(o===2&&c===0&&a===1){const f=e[0],d=e[1];if(t===1){const E=d,z=f;if(m){const g=y,b=l;for(let B=0;B<E;B++){const S=B*z,$=d-1-B;for(let D=0;D<z;D++)b[S+D]=g[D*d+$]}}else{const g=y,b=l;for(let B=0;B<E;B++){const S=B*z,$=d-1-B;for(let D=0;D<z;D++)b[S+D]=g[D*d+$]}}}else if(t===2)if(m){const E=y,z=l;for(let g=0;g<f;g++){const b=g*d,B=(f-1-g)*d;for(let S=0;S<d;S++)z[b+S]=E[B+(d-1-S)]}}else{const E=y,z=l;for(let g=0;g<f;g++){const b=g*d,B=(f-1-g)*d;for(let S=0;S<d;S++)z[b+S]=E[B+(d-1-S)]}}else{const E=d,z=f;if(m){const g=y,b=l;for(let B=0;B<E;B++){const S=B*z;for(let $=0;$<z;$++)b[S+$]=g[(f-1-$)*d+B]}}else{const g=y,b=l;for(let B=0;B<E;B++){const S=B*z;for(let $=0;$<z;$++)b[S+$]=g[(f-1-$)*d+B]}}}return x.fromData(l,i,s)}const h=T(i),A=T(e),w=new Array(o).fill(0),I=new Array(o);for(let f=0;f<r.size;f++){for(let b=0;b<o;b++)I[b]=w[b];let d,E;t===1?(d=e[a]-1-w[a],E=w[c]):t===2?(d=e[c]-1-w[c],E=e[a]-1-w[a],I[c]=d,I[a]=E):(d=w[a],E=e[c]-1-w[c]),t!==2&&(I[c]=d,I[a]=E);let z=0;for(let b=0;b<o;b++)z+=I[b]*h[b];let g=0;for(let b=0;b<o;b++)g+=w[b]*A[b];if(m){const b=y,B=l;B[z]=b[g]}else{const b=y,B=l;B[z]=b[g]}for(let b=o-1;b>=0&&(w[b]++,!(w[b]<e[b]));b--)w[b]=0}return x.fromData(l,i,s)}function or(r,t,n){const e=r.shape,o=e.length,s=r.dtype,c=r.size;if(n===void 0){const h=Array.isArray(t)?t.reduce((d,E)=>d+E,0):t,A=q(r),w=U(s);if(!w)throw new Error(`Cannot roll array with dtype ${s}`);const I=new w(c),f=R(s);for(let d=0;d<c;d++){const E=((d-h)%c+c)%c,z=A.iget(E);I[d]=z}return x.fromData(I,[...e],s)}const a=Array.isArray(t)?t:[t],u=Array.isArray(n)?n:[n];if(a.length!==u.length)throw new Error("shift and axis must have the same length");const i=u.map(h=>{const A=h<0?o+h:h;if(A<0||A>=o)throw new Error(`axis ${h} is out of bounds for array of dimension ${o}`);return A}),p=U(s);if(!p)throw new Error(`Cannot roll array with dtype ${s}`);const l=new p(c),m=R(s),y=new Array(o).fill(0);for(let h=0;h<c;h++){const A=[...y];for(let f=0;f<i.length;f++){const d=i[f],E=e[d],z=a[f];A[d]=((A[d]-z)%E+E)%E}let w=r.offset;for(let f=0;f<o;f++)w+=A[f]*r.strides[f];const I=r.data[w];l[h]=I;for(let f=o-1;f>=0&&(y[f]++,!(y[f]<e[f]));f--)y[f]=0}return x.fromData(l,[...e],s)}function ar(r,t,n=0){const e=r.ndim;let o=t<0?e+t:t;if(o<0||o>=e)throw new Error(`axis ${t} is out of bounds for array of dimension ${e}`);let s=n<0?e+n:n;if(s<0||s>e)throw new Error(`start ${n} is out of bounds`);return o<s&&s--,o===s?x.fromData(r.data,Array.from(r.shape),r.dtype,Array.from(r.strides),r.offset):F(r,o,s)}function sr(r,t){if(r.ndim<3)throw new Error("dsplit only works on arrays of 3 or more dimensions");return O(r,t,2)}function ir(r){if(r.length===0)throw new Error("need at least one array to stack");const t=r.map(n=>n.ndim===1?C(n,[n.shape[0],1]):n);return P(t)}const cr=j;function ur(r,t){const n=r.dtype,e=t.reduce((u,i)=>u*i,1),o=r.size,s=U(n);if(!s)throw new Error(`Cannot resize array with dtype ${n}`);const c=new s(e),a=R(n);for(let u=0;u<e;u++){const i=u%o,p=r.iget(i);c[u]=p}return x.fromData(c,t,n)}function fr(r){return r.map(t=>t.ndim===0?C(t,[1]):t)}function dr(r){return r.map(t=>t.ndim===0?C(t,[1,1]):t.ndim===1?C(t,[1,t.shape[0]]):t)}function yr(r){return r.map(t=>t.ndim===0?C(t,[1,1,1]):t.ndim===1?C(t,[1,t.shape[0],1]):t.ndim===2?C(t,[t.shape[0],t.shape[1],1]):t)}function lr(r,t=0){return v(r,t)}function pr(r,t=0){const n=r.shape,e=n.length,o=t<0?e+t:t;if(o<0||o>=e)throw new Error(`axis ${t} is out of bounds for array of dimension ${e}`);const s=n[o],c=[];for(let a=0;a<s;a++){const u=[];for(let l=0;l<e;l++)l===o?u.push({start:a,stop:a+1,step:1}):u.push({start:0,stop:n[l],step:1});const i=G(r,u),p=_(i,o);c.push(p)}return c}function mr(r,t=1){if(r.length===0)throw new Error("need at least one array to block");return r.length===1?r[0].copy():v(r,-1)}function G(r,t){const n=r.shape,e=r.strides;let o=r.offset;const s=r.dtype,c=r.data,a=[],u=[];for(let i=0;i<n.length;i++){const p=t[i],{start:l,stop:m,step:y}=p,h=Math.ceil((m-l)/y);a.push(h),u.push(e[i]*y),o+=l*e[i]}return x.fromData(c,a,s,u,o)}export{O as arraySplit,fr as atleast1d,dr as atleast2d,yr as atleast3d,mr as block,ir as columnStack,lr as concat,v as concatenate,sr as dsplit,W as dstack,k as expandDims,q as flatten,nr as flip,Z as hsplit,P as hstack,F as moveaxis,L as ravel,tr as repeat,C as reshape,ur as resize,or as roll,ar as rollaxis,er as rot90,cr as rowStack,X as split,_ as squeeze,V as stack,Q as swapaxes,rr as tile,N as transpose,pr as unstack,Y as vsplit,j as vstack};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{ArrayStorage as w}from"../storage";import{isBigIntDType as L,isComplexDType as T}from"../dtype";import{outerIndexToMultiIndex as F,multiIndexToLinear as M,multiIndexToBuffer as E}from"../internal/indexing";function B(t,y,s){if(s){const i=t[y*2],b=t[y*2+1];return i!==0||b!==0}return!!t[y]}function j(t,y,s,i){const b=isNaN(t)||isNaN(y),m=isNaN(s)||isNaN(i);return b&&m?0:b?1:m||t<s?-1:t>s?1:y<i?-1:y>i?1:0}function at(t,y=-1){const s=t.shape,i=s.length,b=t.dtype,m=t.data,f=t.offset,x=t.strides;if(i===0)return t.copy();let u=y;if(u<0&&(u=i+u),u<0||u>=i)throw new Error(`axis ${y} is out of bounds for array of dimension ${i}`);const c=t.copy(),r=c.data,d=s[u],I=Array.from(s).filter((a,l)=>l!==u),p=I.length===0?1:I.reduce((a,l)=>a*l,1);if(T(b)){const a=m,l=r;for(let e=0;e<p;e++){const n=[];for(let o=0;o<d;o++){const h=F(e,u,o,s),g=E(h,x,f);n.push({re:a[g*2],im:a[g*2+1],idx:o})}n.sort((o,h)=>j(o.re,o.im,h.re,h.im));for(let o=0;o<d;o++){const h=F(e,u,o,s),g=M(h,s);l[g*2]=n[o].re,l[g*2+1]=n[o].im}}}else if(L(b)){const a=m,l=r;for(let e=0;e<p;e++){const n=[];for(let o=0;o<d;o++){const h=F(e,u,o,s),g=E(h,x,f);n.push({value:a[g],idx:o})}n.sort((o,h)=>o.value<h.value?-1:o.value>h.value?1:0);for(let o=0;o<d;o++){const h=F(e,u,o,s),g=M(h,s);l[g]=n[o].value}}}else for(let a=0;a<p;a++){const l=[];for(let e=0;e<d;e++){const n=F(a,u,e,s),o=E(n,x,f);l.push(Number(m[o]))}l.sort((e,n)=>isNaN(e)&&isNaN(n)?0:isNaN(e)?1:isNaN(n)?-1:e-n);for(let e=0;e<d;e++){const n=F(a,u,e,s),o=M(n,s);r[o]=l[e]}}return c}function lt(t,y=-1){const s=t.shape,i=s.length,b=t.dtype,m=t.data,f=t.offset,x=t.strides;if(i===0)return w.zeros([0],"int32");let u=y;if(u<0&&(u=i+u),u<0||u>=i)throw new Error(`axis ${y} is out of bounds for array of dimension ${i}`);const c=w.zeros(Array.from(s),"int32"),r=c.data,d=s[u],I=Array.from(s).filter((a,l)=>l!==u),p=I.length===0?1:I.reduce((a,l)=>a*l,1);if(T(b)){const a=m;for(let l=0;l<p;l++){const e=[];for(let n=0;n<d;n++){const o=F(l,u,n,s),h=E(o,x,f);e.push({re:a[h*2],im:a[h*2+1],idx:n})}e.sort((n,o)=>j(n.re,n.im,o.re,o.im));for(let n=0;n<d;n++){const o=F(l,u,n,s),h=M(o,s);r[h]=e[n].idx}}}else if(L(b)){const a=m;for(let l=0;l<p;l++){const e=[];for(let n=0;n<d;n++){const o=F(l,u,n,s),h=E(o,x,f);e.push({value:a[h],idx:n})}e.sort((n,o)=>n.value<o.value?-1:n.value>o.value?1:0);for(let n=0;n<d;n++){const o=F(l,u,n,s),h=M(o,s);r[h]=e[n].idx}}}else for(let a=0;a<p;a++){const l=[];for(let e=0;e<d;e++){const n=F(a,u,e,s),o=E(n,x,f);l.push({value:Number(m[o]),idx:e})}l.sort((e,n)=>isNaN(e.value)&&isNaN(n.value)?0:isNaN(e.value)?1:isNaN(n.value)?-1:e.value-n.value);for(let e=0;e<d;e++){const n=F(a,u,e,s),o=M(n,s);r[o]=l[e].idx}}return c}function ut(t){if(t.length===0)return w.zeros([0],"int32");const s=t[0].size;for(const r of t){if(r.ndim!==1)throw new Error("keys must be 1D arrays");if(r.size!==s)throw new Error("all keys must have the same length")}const i=[];for(let r=0;r<s;r++)i.push(r);const b=t.map(r=>T(r.dtype)),m=t.map(r=>r.isCContiguous),f=t.map(r=>r.data),x=t.map(r=>r.offset);i.sort((r,d)=>{for(let I=t.length-1;I>=0;I--)if(b[I]){let p,a,l,e;if(m[I]){const n=f[I],o=x[I];p=n[(o+r)*2],a=n[(o+r)*2+1],l=n[(o+d)*2],e=n[(o+d)*2+1]}else{const n=t[I].iget(r),o=t[I].iget(d);p=n.re,a=n.im,l=o.re,e=o.im}if(p<l)return-1;if(p>l)return 1;if(a<e)return-1;if(a>e)return 1}else{let p,a;if(m[I]){const l=f[I],e=x[I];p=Number(l[e+r]),a=Number(l[e+d])}else p=Number(t[I].iget(r)),a=Number(t[I].iget(d));if(isNaN(p)&&isNaN(a))continue;if(isNaN(p))return 1;if(isNaN(a)||p<a)return-1;if(p>a)return 1}return 0});const u=w.zeros([s],"int32"),c=u.data;for(let r=0;r<s;r++)c[r]=i[r];return u}function J(t,y){let s=0,i=t.length-1;for(;s<i;){const b=Math.floor((s+i)/2),m=t[s],f=t[b],x=t[i];let u;m<=f&&f<=x||x<=f&&f<=m?u=b:f<=m&&m<=x||x<=m&&m<=f?u=s:u=i;const c=t[u];[t[u],t[i]]=[t[i],t[u]];let r=s;for(let d=s;d<i;d++){const I=t[d],p=isNaN(I),a=isNaN(c);!p&&(a||I<=c)&&([t[r],t[d]]=[t[d],t[r]],r++)}if([t[r],t[i]]=[t[i],t[r]],r===y)return;r<y?s=r+1:i=r-1}}function P(t,y){let s=0,i=t.length-1;for(;s<i;){const b=Math.floor((s+i)/2),m=t[s],f=t[b],x=t[i];let u;m<=f&&f<=x||x<=f&&f<=m?u=b:f<=m&&m<=x||x<=m&&m<=f?u=s:u=i;const c=t[u];[t[u],t[i]]=[t[i],t[u]];let r=s;for(let d=s;d<i;d++)t[d]<=c&&([t[r],t[d]]=[t[d],t[r]],r++);if([t[r],t[i]]=[t[i],t[r]],r===y)return;r<y?s=r+1:i=r-1}}function Q(t,y){let s=0,i=t.length-1;for(;s<i;){const b=Math.floor((s+i)/2),m=t[s].value,f=t[b].value,x=t[i].value;let u;m<=f&&f<=x||x<=f&&f<=m?u=b:f<=m&&m<=x||x<=m&&m<=f?u=s:u=i;const c=t[u].value;[t[u],t[i]]=[t[i],t[u]];let r=s;for(let d=s;d<i;d++){const I=t[d].value,p=isNaN(I),a=isNaN(c);!p&&(a||I<=c)&&([t[r],t[d]]=[t[d],t[r]],r++)}if([t[r],t[i]]=[t[i],t[r]],r===y)return;r<y?s=r+1:i=r-1}}function W(t,y){let s=0,i=t.length-1;for(;s<i;){const b=Math.floor((s+i)/2),m=t[s].value,f=t[b].value,x=t[i].value;let u;m<=f&&f<=x||x<=f&&f<=m?u=b:f<=m&&m<=x||x<=m&&m<=f?u=s:u=i;const c=t[u].value;[t[u],t[i]]=[t[i],t[u]];let r=s;for(let d=s;d<i;d++)t[d].value<=c&&([t[r],t[d]]=[t[d],t[r]],r++);if([t[r],t[i]]=[t[i],t[r]],r===y)return;r<y?s=r+1:i=r-1}}function ct(t,y,s=-1){const i=t.shape,b=i.length,m=t.dtype;if(b===0)return t.copy();let f=s;if(f<0&&(f=b+f),f<0||f>=b)throw new Error(`axis ${s} is out of bounds for array of dimension ${b}`);const x=i[f];let u=y;if(u<0&&(u=x+u),u<0||u>=x)throw new Error(`kth(=${y}) out of bounds (${x})`);const c=t.copy(),r=c.data,d=Array.from(i).filter((p,a)=>a!==f),I=d.length===0?1:d.reduce((p,a)=>p*a,1);if(L(m)){const p=r;for(let a=0;a<I;a++){const l=[];for(let e=0;e<x;e++){const n=F(a,f,e,i),o=M(n,i);l.push(p[o])}P(l,u);for(let e=0;e<x;e++){const n=F(a,f,e,i),o=M(n,i);p[o]=l[e]}}}else for(let p=0;p<I;p++){const a=[];for(let l=0;l<x;l++){const e=F(p,f,l,i),n=M(e,i);a.push(Number(r[n]))}J(a,u);for(let l=0;l<x;l++){const e=F(p,f,l,i),n=M(e,i);r[n]=a[l]}}return c}function ft(t,y,s=-1){const i=t.shape,b=i.length,m=t.dtype,f=t.data,x=t.offset,u=t.strides;if(b===0)return w.zeros([0],"int32");let c=s;if(c<0&&(c=b+c),c<0||c>=b)throw new Error(`axis ${s} is out of bounds for array of dimension ${b}`);const r=i[c];let d=y;if(d<0&&(d=r+d),d<0||d>=r)throw new Error(`kth(=${y}) out of bounds (${r})`);const I=w.zeros(Array.from(i),"int32"),p=I.data,a=Array.from(i).filter((e,n)=>n!==c),l=a.length===0?1:a.reduce((e,n)=>e*n,1);if(L(m)){const e=f;for(let n=0;n<l;n++){const o=[];for(let h=0;h<r;h++){const g=F(n,c,h,i),z=E(g,u,x);o.push({value:e[z],idx:h})}W(o,d);for(let h=0;h<r;h++){const g=F(n,c,h,i),z=M(g,i);p[z]=o[h].idx}}}else for(let e=0;e<l;e++){const n=[];for(let o=0;o<r;o++){const h=F(e,c,o,i),g=E(h,u,x);n.push({value:Number(f[g]),idx:o})}Q(n,d);for(let o=0;o<r;o++){const h=F(e,c,o,i),g=M(h,i);p[g]=n[o].idx}}return I}function dt(t){const y=t.dtype,s=t.size,i=t.isCContiguous,b=t.data,m=t.offset;if(T(y)){const f=[];if(i){const c=b;for(let r=0;r<s;r++)f.push({re:c[(m+r)*2],im:c[(m+r)*2+1]})}else for(let c=0;c<s;c++){const r=t.iget(c);f.push({re:r.re,im:r.im})}f.sort((c,r)=>j(c.re,c.im,r.re,r.im));const x=w.zeros([s],"complex128"),u=x.data;for(let c=0;c<s;c++)u[c*2]=f[c].re,u[c*2+1]=f[c].im;return x}else{const f=[];if(i)for(let c=0;c<s;c++)f.push(Number(b[m+c]));else for(let c=0;c<s;c++)f.push(Number(t.iget(c)));f.sort((c,r)=>isNaN(c)&&isNaN(r)?0:isNaN(c)?1:isNaN(r)?-1:c-r);const x=w.zeros([s],"complex128"),u=x.data;for(let c=0;c<s;c++)u[c*2]=f[c],u[c*2+1]=0;return x}}function k(t){const y=t.shape,s=y.length,i=t.size,b=T(t.dtype),m=t.isCContiguous,f=t.data,x=t.offset,u=[];for(let p=0;p<s;p++)u.push([]);const c=[];let r=1;for(let p=s-1;p>=0;p--)c.unshift(r),r*=y[p];if(m){for(let p=0;p<i;p++)if(B(f,x+p,b)){let a=p;for(let l=0;l<s;l++){const e=Math.floor(a/c[l]);a=a%c[l],u[l].push(e)}}}else for(let p=0;p<i;p++){const a=t.iget(p);if(b?a.re!==0||a.im!==0:!!a){let e=p;for(let n=0;n<s;n++){const o=Math.floor(e/c[n]);e=e%c[n],u[n].push(o)}}}const d=u[0]?.length??0,I=[];for(let p=0;p<s;p++){const a=w.zeros([d],"int32"),l=a.data;for(let e=0;e<d;e++)l[e]=u[p][e];I.push(a)}return I}function mt(t){const y=t.shape,s=y.length,i=t.size,b=T(t.dtype),m=t.isCContiguous,f=t.data,x=t.offset,u=[],c=[];let r=1;for(let l=s-1;l>=0;l--)c.unshift(r),r*=y[l];if(m){for(let l=0;l<i;l++)if(B(f,x+l,b)){const e=[];let n=l;for(let o=0;o<s;o++){const h=Math.floor(n/c[o]);n=n%c[o],e.push(h)}u.push(e)}}else for(let l=0;l<i;l++){const e=t.iget(l);if(b?e.re!==0||e.im!==0:!!e){const o=[];let h=l;for(let g=0;g<s;g++){const z=Math.floor(h/c[g]);h=h%c[g],o.push(z)}u.push(o)}}const d=u.length,I=s===0?[d,1]:[d,s],p=w.zeros(I,"int32"),a=p.data;for(let l=0;l<d;l++){const e=u[l];for(let n=0;n<(s===0?1:s);n++)a[l*(s===0?1:s)+n]=e[n]??0}return p}function pt(t){const y=t.size,s=T(t.dtype),i=t.isCContiguous,b=t.data,m=t.offset,f=[];if(i)for(let c=0;c<y;c++)B(b,m+c,s)&&f.push(c);else for(let c=0;c<y;c++){const r=t.iget(c);(s?r.re!==0||r.im!==0:r)&&f.push(c)}const x=w.zeros([f.length],"int32"),u=x.data;for(let c=0;c<f.length;c++)u[c]=f[c];return x}function yt(t,y,s){if(y===void 0&&s===void 0)return k(t);if(y===void 0||s===void 0)throw new Error("either both or neither of x and y should be given");const i=t.shape,b=y.shape,m=s.shape,f=Math.max(i.length,b.length,m.length),x=A=>{const N=Array(f).fill(1);for(let C=0;C<A.length;C++)N[f-A.length+C]=A[C];return N},u=x(i),c=x(b),r=x(m),d=[];for(let A=0;A<f;A++){const N=[u[A],c[A],r[A]],C=Math.max(...N);for(const v of N)if(v!==1&&v!==C)throw new Error("operands could not be broadcast together");d.push(C)}const I=y.dtype,p=w.zeros(d,I),a=p.data,l=(A,N)=>{const C=[];let v=1;for(let D=A.length-1;D>=0;D--)C.unshift(v),v*=A[D];for(;C.length<N.length;)C.unshift(0);for(let D=0;D<N.length;D++)N[D]===1&&d[D]!==1&&(C[D]=0);return C},e=l(i,u),n=l(b,c),o=l(m,r),h=[];let g=1;for(let A=d.length-1;A>=0;A--)h.unshift(g),g*=d[A];const z=d.reduce((A,N)=>A*N,1),$=T(t.dtype),U=T(I),H=t.isCContiguous,V=t.data,R=t.offset,X=y.isCContiguous,q=y.data,O=y.offset,Y=s.isCContiguous,K=s.data,_=s.offset;if(i.length===d.length&&b.length===d.length&&m.length===d.length&&i.every((A,N)=>A===d[N])&&b.every((A,N)=>A===d[N])&&m.every((A,N)=>A===d[N])&&H&&X&&Y)if(U){const A=a,N=q,C=K;for(let v=0;v<z;v++)B(V,R+v,$)?(A[v*2]=N[(O+v)*2],A[v*2+1]=N[(O+v)*2+1]):(A[v*2]=C[(_+v)*2],A[v*2+1]=C[(_+v)*2+1])}else if(L(I)){const A=a,N=q,C=K;for(let v=0;v<z;v++)B(V,R+v,$)?A[v]=N[O+v]:A[v]=C[_+v]}else for(let A=0;A<z;A++)B(V,R+A,$)?a[A]=q[O+A]:a[A]=K[_+A];else for(let A=0;A<z;A++){let N=A,C=0,v=0,D=0;for(let S=0;S<f;S++){const G=Math.floor(N/h[S]);N=N%h[S],C+=G*e[S],v+=G*n[S],D+=G*o[S]}let Z;if(H)Z=B(V,R+C,$);else{const S=t.iget(C);Z=$?S.re!==0||S.im!==0:!!S}if(Z)if(U)if(X){const S=q;a[A*2]=S[(O+v)*2],a[A*2+1]=S[(O+v)*2+1]}else{const S=y.iget(v);a[A*2]=S.re,a[A*2+1]=S.im}else X?a[A]=q[O+v]:a[A]=y.iget(v);else if(U)if(Y){const S=K;a[A*2]=S[(_+D)*2],a[A*2+1]=S[(_+D)*2+1]}else{const S=s.iget(D);a[A*2]=S.re,a[A*2+1]=S.im}else Y?a[A]=K[_+D]:a[A]=s.iget(D)}return p}function ht(t,y,s="left"){if(t.ndim!==1)throw new Error("storage must be 1D");const i=t.size,b=y.size,m=T(t.dtype),f=t.isCContiguous,x=t.data,u=t.offset,c=y.isCContiguous,r=y.data,d=y.offset,I=w.zeros([b],"int32"),p=I.data;if(m)if(f&&c){const a=x,l=r;for(let e=0;e<b;e++){const n=l[(d+e)*2],o=l[(d+e)*2+1];let h=0,g=i;if(s==="left")for(;h<g;){const z=Math.floor((h+g)/2),$=a[(u+z)*2],U=a[(u+z)*2+1];j($,U,n,o)<0?h=z+1:g=z}else for(;h<g;){const z=Math.floor((h+g)/2),$=a[(u+z)*2],U=a[(u+z)*2+1];j($,U,n,o)<=0?h=z+1:g=z}p[e]=h}}else for(let a=0;a<b;a++){const l=y.iget(a),e=l.re,n=l.im;let o=0,h=i;if(s==="left")for(;o<h;){const g=Math.floor((o+h)/2),z=t.iget(g);j(z.re,z.im,e,n)<0?o=g+1:h=g}else for(;o<h;){const g=Math.floor((o+h)/2),z=t.iget(g);j(z.re,z.im,e,n)<=0?o=g+1:h=g}p[a]=o}else if(f&&c)for(let a=0;a<b;a++){const l=Number(r[d+a]);let e=0,n=i;if(s==="left")for(;e<n;){const o=Math.floor((e+n)/2);Number(x[u+o])<l?e=o+1:n=o}else for(;e<n;){const o=Math.floor((e+n)/2);Number(x[u+o])<=l?e=o+1:n=o}p[a]=e}else for(let a=0;a<b;a++){const l=Number(y.iget(a));let e=0,n=i;if(s==="left")for(;e<n;){const o=Math.floor((e+n)/2);Number(t.iget(o))<l?e=o+1:n=o}else for(;e<n;){const o=Math.floor((e+n)/2);Number(t.iget(o))<=l?e=o+1:n=o}p[a]=e}return I}function xt(t,y){const s=y.dtype,i=T(t.dtype),b=T(s),m=Math.min(t.size,y.size),f=t.isCContiguous,x=t.data,u=t.offset,c=y.isCContiguous,r=y.data,d=y.offset;let I=0;if(f)for(let e=0;e<m;e++)B(x,u+e,i)&&I++;else for(let e=0;e<m;e++){const n=t.iget(e);(i?n.re!==0||n.im!==0:n)&&I++}const p=w.zeros([I],s),a=p.data;let l=0;if(f&&c)if(L(s)){const e=a,n=r;for(let o=0;o<m;o++)B(x,u+o,i)&&(e[l++]=n[d+o])}else if(b){const e=a,n=r;for(let o=0;o<m;o++)B(x,u+o,i)&&(e[l*2]=n[(d+o)*2],e[l*2+1]=n[(d+o)*2+1],l++)}else for(let e=0;e<m;e++)B(x,u+e,i)&&(a[l++]=r[d+e]);else{const e=f?n=>B(x,u+n,i):n=>{const o=t.iget(n);if(i){const h=o;return h.re!==0||h.im!==0}return!!o};if(L(s)){const n=a;for(let o=0;o<m;o++)e(o)&&(n[l++]=y.iget(o))}else if(b){const n=a;for(let o=0;o<m;o++)if(e(o)){const h=y.iget(o);n[l*2]=h.re,n[l*2+1]=h.im,l++}}else for(let n=0;n<m;n++)e(n)&&(a[l++]=y.iget(n))}return p}function tt(t,y){const s=t.shape,i=s.length,b=t.data,m=t.size,f=t.offset,x=t.strides,u=T(t.dtype),c=t.isCContiguous;if(y===void 0){let e=0;if(c)for(let n=0;n<m;n++)B(b,f+n,u)&&e++;else for(let n=0;n<m;n++){const o=t.iget(n);if(u){const h=o;(h.re!==0||h.im!==0)&&e++}else o!==0&&o!==BigInt(0)&&e++}return e}let r=y;if(r<0&&(r=i+r),r<0||r>=i)throw new Error(`axis ${y} is out of bounds for array of dimension ${i}`);const d=Array.from(s).filter((e,n)=>n!==r);if(d.length===0)return tt(t);const I=w.zeros(d,"int32"),p=I.data,a=s[r],l=d.reduce((e,n)=>e*n,1);for(let e=0;e<l;e++){let n=0;for(let o=0;o<a;o++){const h=F(e,r,o,s),g=E(h,x,f);B(b,g,u)&&n++}p[e]=n}return I}export{ft as argpartition,lt as argsort,mt as argwhere,tt as count_nonzero,xt as extract,pt as flatnonzero,ut as lexsort,k as nonzero,ct as partition,ht as searchsorted,at as sort,dt as sort_complex,yt as where};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{ArrayStorage as S}from"../storage";import{isComplexDType as R,throwIfComplex as q}from"../dtype";function te(A,d,N=0){q(A.dtype,"bincount","bincount requires integer input.");const p=A.data,g=A.size;let f=0;for(let n=0;n<g;n++){const e=Number(p[n]);if(e<0||!Number.isInteger(e))throw new Error("'x' argument must contain non-negative integers");e>f&&(f=e)}const s=Math.max(f+1,N);if(d!==void 0){if(d.size!==g)throw new Error("weights array must have same length as x");const n=d.data,e=new Float64Array(s);for(let r=0;r<g;r++){const u=Number(p[r]);e[u]+=Number(n[r])}return S.fromData(e,[s],"float64")}else{const n=new Float64Array(s);for(let e=0;e<g;e++){const r=Number(p[e]);n[r]++}return S.fromData(n,[s],"float64")}}function re(A,d,N=!1){q(A.dtype,"digitize","digitize requires real numbers."),q(d.dtype,"digitize","digitize requires real numbers.");const p=A.data,g=d.data,f=A.size,s=d.size,n=new Float64Array(f);let e=!0;s>1&&(e=Number(g[1])>=Number(g[0]));for(let r=0;r<f;r++){const u=Number(p[r]);let l;if(e)N?l=K(g,s,u):l=Y(g,s,u);else if(N)for(l=0;l<s&&Number(g[l])>=u;)l++;else for(l=0;l<s&&Number(g[l])>u;)l++;n[r]=l}return S.fromData(n,[...A.shape],"float64")}function K(A,d,N){let p=0,g=d;for(;p<g;){const f=p+g>>>1;Number(A[f])<N?p=f+1:g=f}return p}function Y(A,d,N){let p=0,g=d;for(;p<g;){const f=p+g>>>1;Number(A[f])<=N?p=f+1:g=f}return p}function ae(A,d=10,N,p=!1,g){q(A.dtype,"histogram","histogram requires real numbers."),typeof d!="number"&&q(d.dtype,"histogram","histogram requires real numbers.");const f=A.data,s=A.size;let n;if(typeof d=="number"){let l,m;if(N)[l,m]=N;else{l=1/0,m=-1/0;for(let i=0;i<s;i++){const t=Number(f[i]);t<l&&(l=t),t>m&&(m=t)}l===m&&(l=l-.5,m=m+.5)}n=[];const F=(m-l)/d;for(let i=0;i<=d;i++)n.push(l+i*F)}else{const l=d.data;n=[];for(let m=0;m<d.size;m++)n.push(Number(l[m]))}const e=n.length-1,r=new Float64Array(e),u=g?.data;for(let l=0;l<s;l++){const m=Number(f[l]),F=u?Number(u[l]):1;let i=Y(n,n.length,m)-1;if(!(i<0)){if(i>=e)if(m===n[e])i=e-1;else continue;r[i]+=F}}if(p){let l=0;for(let m=0;m<e;m++)l+=r[m];for(let m=0;m<e;m++){const F=n[m+1]-n[m];r[m]=r[m]/(l*F)}}return{hist:S.fromData(r,[e],"float64"),bin_edges:S.fromData(new Float64Array(n),[n.length],"float64")}}function oe(A,d,N=10,p,g=!1,f){q(A.dtype,"histogram2d","histogram2d requires real numbers."),q(d.dtype,"histogram2d","histogram2d requires real numbers.");const s=A.data,n=d.data,e=A.size;if(d.size!==e)throw new Error("x and y must have the same length");let r,u,l,m;if(typeof N=="number"?(l=N,m=N):Array.isArray(N)&&N.length===2?(N[0],l=N[0],m=N[1]):(l=10,m=10),typeof l=="number"){let a,o;if(p)[a,o]=p[0];else{a=1/0,o=-1/0;for(let b=0;b<e;b++){const y=Number(s[b]);y<a&&(a=y),y>o&&(o=y)}a===o&&(a-=.5,o+=.5)}r=[];const c=(o-a)/l;for(let b=0;b<=l;b++)r.push(a+b*c)}else{const a=l.data;r=[];for(let o=0;o<l.size;o++)r.push(Number(a[o]))}if(typeof m=="number"){let a,o;if(p)[a,o]=p[1];else{a=1/0,o=-1/0;for(let b=0;b<e;b++){const y=Number(n[b]);y<a&&(a=y),y>o&&(o=y)}a===o&&(a-=.5,o+=.5)}u=[];const c=(o-a)/m;for(let b=0;b<=m;b++)u.push(a+b*c)}else{const a=m.data;u=[];for(let o=0;o<m.size;o++)u.push(Number(a[o]))}const F=r.length-1,i=u.length-1,t=new Float64Array(F*i),h=f?.data;for(let a=0;a<e;a++){const o=Number(s[a]),c=Number(n[a]),b=h?Number(h[a]):1;let y=Y(r,r.length,o)-1,w=Y(u,u.length,c)-1;if(y<0||y>=F)if(o===r[F]&&y===F)y=F-1;else continue;if(w<0||w>=i)if(c===u[i]&&w===i)w=i-1;else continue;t[y*i+w]+=b}if(g){let a=0;for(let o=0;o<t.length;o++)a+=t[o];for(let o=0;o<F;o++)for(let c=0;c<i;c++){const b=r[o+1]-r[o],y=u[c+1]-u[c],w=b*y;t[o*i+c]=t[o*i+c]/(a*w)}}return{hist:S.fromData(t,[F,i],"float64"),x_edges:S.fromData(new Float64Array(r),[r.length],"float64"),y_edges:S.fromData(new Float64Array(u),[u.length],"float64")}}function ne(A,d=10,N,p=!1,g){q(A.dtype,"histogramdd","histogramdd requires real numbers.");const f=A.shape,s=A.data;let n,e;if(f.length===1)n=f[0],e=1;else if(f.length===2)n=f[0],e=f[1];else throw new Error("sample must be 1D or 2D array");let r;if(typeof d=="number")r=new Array(e).fill(d);else if(r=d,r.length!==e)throw new Error("bins array length must match number of dimensions");const u=[];for(let a=0;a<e;a++){let o,c;if(N&&N[a])[o,c]=N[a];else{o=1/0,c=-1/0;for(let x=0;x<n;x++){const D=Number(e===1?s[x]:s[x*e+a]);D<o&&(o=D),D>c&&(c=D)}o===c&&(o-=.5,c+=.5)}const b=r[a],y=[],w=(c-o)/b;for(let x=0;x<=b;x++)y.push(o+x*w);u.push(y)}const l=r.slice(),m=l.reduce((a,o)=>a*o,1),F=new Float64Array(m),i=new Array(e);i[e-1]=1;for(let a=e-2;a>=0;a--)i[a]=i[a+1]*r[a+1];const t=g?.data;for(let a=0;a<n;a++){const o=t?Number(t[a]):1;let c=0,b=!1;for(let y=0;y<e;y++){const w=Number(e===1?s[a]:s[a*e+y]),x=u[y],D=r[y];let v=Y(x,x.length,w)-1;if(v<0||v>=D)if(w===x[D]&&v===D)v=D-1;else{b=!0;break}c+=v*i[y]}b||(F[c]+=o)}if(p){let a=0;for(let c=0;c<m;c++)a+=F[c];const o=new Float64Array(m);for(let c=0;c<m;c++){let b=1,y=c;for(let w=0;w<e;w++){const x=Math.floor(y/i[w])%r[w],D=u[w];b*=D[x+1]-D[x]}o[c]=b}for(let c=0;c<m;c++)F[c]=F[c]/(a*o[c])}const h=u.map(a=>S.fromData(new Float64Array(a),[a.length],"float64"));return{hist:S.fromData(F,l,"float64"),edges:h}}function P(A,d,N="full"){const p=A.data,g=d.data,f=A.size,s=d.size,n=R(A.dtype)||R(d.dtype),e=f+s-1;if(n){const u=new Float64Array(e),l=new Float64Array(e),m=R(A.dtype),F=R(d.dtype);for(let t=0;t<e;t++){let h=0,a=0;const o=t-s+1;for(let c=0;c<f;c++){const b=c-o;if(b>=0&&b<s){let y,w,x,D;m?(y=p[c*2],w=p[c*2+1]):(y=Number(p[c]),w=0),F?(x=g[b*2],D=g[b*2+1]):(x=Number(g[b]),D=0),h+=y*x+w*D,a+=w*x-y*D}}u[t]=h,l[t]=a}const i=(t,h,a,o=0)=>{const c=new Float64Array(a*2);for(let b=0;b<a;b++)c[b*2]=t[o+b],c[b*2+1]=h[o+b];return S.fromData(c,[a],"complex128")};if(N==="full")return i(u,l,e);if(N==="same"){const t=Math.floor((e-f)/2);return i(u,l,f,t)}else{const t=Math.max(f,s)-Math.min(f,s)+1,h=Math.min(f,s)-1;return i(u,l,t,h)}}const r=new Float64Array(e);for(let u=0;u<e;u++){let l=0;const m=u-s+1;for(let F=0;F<f;F++){const i=F-m;i>=0&&i<s&&(l+=Number(p[F])*Number(g[i]))}r[u]=l}if(N==="full")return S.fromData(r,[e],"float64");if(N==="same"){const u=Math.floor((e-f)/2),l=new Float64Array(f);for(let m=0;m<f;m++)l[m]=r[u+m];return S.fromData(l,[f],"float64")}else{const u=Math.max(f,s)-Math.min(f,s)+1,l=Math.min(f,s)-1,m=new Float64Array(u);for(let F=0;F<u;F++)m[F]=r[l+F];return S.fromData(m,[u],"float64")}}function se(A,d,N="full"){const p=d.data,g=d.size,f=R(d.dtype);let s;if(f){const n=new Float64Array(g*2);for(let e=0;e<g;e++){const r=g-1-e;n[e*2]=p[r*2],n[e*2+1]=p[r*2+1]}s=S.fromData(n,[g],d.dtype)}else{const n=new Float64Array(g);for(let e=0;e<g;e++)n[e]=Number(p[g-1-e]);s=S.fromData(n,[g],"float64")}if(f){const n=s.data;for(let e=0;e<g;e++)n[e*2+1]=-n[e*2+1]}return P(A,s,N)}function Q(A,d,N=!0,p=!1,g){const f=A.shape,s=A.data,n=R(A.dtype)||d!==void 0&&R(d.dtype);let e;if(g!==void 0?e=g:e=p?0:1,f.length===1)if(d!==void 0){const i=d.data,t=A.size,h=R(A.dtype),a=R(d.dtype);if(d.size!==t)throw new Error("m and y must have same length");if(n){let D=0,v=0,z=0,I=0;for(let M=0;M<t;M++)h?(D+=s[M*2],v+=s[M*2+1]):D+=Number(s[M]),a?(z+=i[M*2],I+=i[M*2+1]):z+=Number(i[M]);D/=t,v/=t,z/=t,I/=t;let W=0,G=0,k=0,H=0,J=0,L=0,T=0,$=0;for(let M=0;M<t;M++){let _,E,C,j;h?(_=s[M*2]-D,E=s[M*2+1]-v):(_=Number(s[M])-D,E=0),a?(C=i[M*2]-z,j=i[M*2+1]-I):(C=Number(i[M])-z,j=0),W+=_*_+E*E,k+=C*C+j*j,J+=_*C+E*j,L+=E*C-_*j,T+=C*_+j*E,$+=j*_-C*E}const V=t-e;if(V<=0){const M=new Float64Array(8);return M.fill(NaN),S.fromData(M,[2,2],"complex128")}W/=V,k/=V,J/=V,L/=V,T/=V,$/=V;const B=new Float64Array(8);return B[0]=W,B[1]=G,B[2]=J,B[3]=L,B[4]=T,B[5]=$,B[6]=k,B[7]=H,S.fromData(B,[2,2],"complex128")}let o=0,c=0;for(let D=0;D<t;D++)o+=Number(s[D]),c+=Number(i[D]);o/=t,c/=t;let b=0,y=0,w=0;for(let D=0;D<t;D++){const v=Number(s[D])-o,z=Number(i[D])-c;b+=v*v,y+=z*z,w+=v*z}const x=t-e;return x<=0?S.fromData(new Float64Array([NaN,NaN,NaN,NaN]),[2,2],"float64"):(b/=x,y/=x,w/=x,S.fromData(new Float64Array([b,w,w,y]),[2,2],"float64"))}else{const i=A.size;if(n){let o=0,c=0;for(let w=0;w<i;w++)o+=s[w*2],c+=s[w*2+1];o/=i,c/=i;let b=0;for(let w=0;w<i;w++){const x=s[w*2]-o,D=s[w*2+1]-c;b+=x*x+D*D}const y=i-e;return y<=0?S.fromData(new Float64Array([NaN,0]),[],"complex128"):(b/=y,S.fromData(new Float64Array([b,0]),[],"complex128"))}let t=0;for(let o=0;o<i;o++)t+=Number(s[o]);t/=i;let h=0;for(let o=0;o<i;o++){const c=Number(s[o])-t;h+=c*c}const a=i-e;return a<=0?S.fromData(new Float64Array([NaN]),[],"float64"):(h/=a,S.fromData(new Float64Array([h]),[],"float64"))}let r,u;N?(r=f[0],u=f[1]):(r=f[1],u=f[0]);const l=u-e;if(n){const i=new Float64Array(r),t=new Float64Array(r);for(let a=0;a<r;a++){let o=0,c=0;for(let b=0;b<u;b++){const y=N?a*u+b:b*r+a;o+=s[y*2],c+=s[y*2+1]}i[a]=o/u,t[a]=c/u}const h=new Float64Array(r*r*2);if(l<=0)return h.fill(NaN),S.fromData(h,[r,r],"complex128");for(let a=0;a<r;a++)for(let o=0;o<r;o++){let c=0,b=0;for(let w=0;w<u;w++){const x=N?a*u+w:w*r+a,D=N?o*u+w:w*r+o,v=s[x*2]-i[a],z=s[x*2+1]-t[a],I=s[D*2]-i[o],W=s[D*2+1]-t[o];c+=v*I+z*W,b+=z*I-v*W}const y=(a*r+o)*2;h[y]=c/l,h[y+1]=b/l}return S.fromData(h,[r,r],"complex128")}const m=new Float64Array(r);for(let i=0;i<r;i++){let t=0;for(let h=0;h<u;h++){const a=N?i*u+h:h*r+i;t+=Number(s[a])}m[i]=t/u}const F=new Float64Array(r*r);if(l<=0)return F.fill(NaN),S.fromData(F,[r,r],"float64");for(let i=0;i<r;i++)for(let t=i;t<r;t++){let h=0;for(let o=0;o<u;o++){const c=N?i*u+o:o*r+i,b=N?t*u+o:o*r+t,y=Number(s[c])-m[i],w=Number(s[b])-m[t];h+=y*w}const a=h/l;F[i*r+t]=a,F[t*r+i]=a}return S.fromData(F,[r,r],"float64")}function le(A,d,N=!0){const p=R(A.dtype)||d!==void 0&&R(d.dtype);if(A.shape.length===1&&d===void 0)return p?S.fromData(new Float64Array([1,0]),[],"complex128"):S.fromData(new Float64Array([1]),[],"float64");const g=Q(A,d,N,!1),f=g.data,n=g.shape[0];if(p){const r=new Float64Array(n*n*2);for(let u=0;u<n;u++)for(let l=0;l<n;l++){const m=f[(u*n+l)*2],F=f[(u*n+l)*2+1],i=f[(u*n+u)*2],t=f[(l*n+l)*2],h=(u*n+l)*2;if(i<=0||t<=0)r[h]=NaN,r[h+1]=NaN;else{const a=Math.sqrt(i*t);r[h]=m/a,r[h+1]=F/a}}return S.fromData(r,[n,n],"complex128")}const e=new Float64Array(n*n);for(let r=0;r<n;r++)for(let u=0;u<n;u++){const l=Number(f[r*n+u]),m=Number(f[r*n+r]),F=Number(f[u*n+u]);m<=0||F<=0?e[r*n+u]=NaN:e[r*n+u]=l/Math.sqrt(m*F)}return S.fromData(e,[n,n],"float64")}function ie(A,d=10,N,p){q(A.dtype,"histogram_bin_edges","histogram_bin_edges requires real numbers.");const g=A.data,f=A.size;let s,n;if(N)[s,n]=N;else{s=1/0,n=-1/0;for(let l=0;l<f;l++){const m=Number(g[l]);isNaN(m)||(m<s&&(s=m),m>n&&(n=m))}!isFinite(s)||!isFinite(n)?(s=0,n=1):s===n&&(s=s-.5,n=n+.5)}let e;typeof d=="number"?e=d:e=O(g,f,s,n,d),e=Math.max(1,Math.round(e));const r=new Float64Array(e+1),u=(n-s)/e;for(let l=0;l<=e;l++)r[l]=s+l*u;return S.fromData(r,[e+1],"float64")}function O(A,d,N,p,g){if(d===0)return 1;const f=p-N;if(f===0)return 1;const s=[];let n=0;for(let t=0;t<d;t++){const h=Number(A[t]);isNaN(h)||(s.push(h),n+=h)}const e=s.length;if(e===0)return 1;const r=n/e;let u=0;for(let t=0;t<e;t++){const h=s[t]-r;u+=h*h}const l=Math.sqrt(u/e);s.sort((t,h)=>t-h);const m=s[Math.floor(e*.25)]??0,i=(s[Math.floor(e*.75)]??0)-m;switch(g){case"sqrt":return Math.ceil(Math.sqrt(e));case"sturges":return Math.ceil(Math.log2(e)+1);case"rice":return Math.ceil(2*Math.pow(e,1/3));case"scott":{if(l===0)return 1;const t=3.5*l/Math.pow(e,1/3);return Math.ceil(f/t)}case"fd":{if(i===0)return O(A,d,N,p,"sturges");const t=2*i/Math.pow(e,1/3);return Math.ceil(f/t)}case"doane":{const t=U(s,r,l),h=Math.sqrt(6*(e-2)/((e+1)*(e+3)));return Math.ceil(1+Math.log2(e)+Math.log2(1+Math.abs(t)/h))}case"stone":return O(A,d,N,p,"sturges");default:{const t=Math.ceil(Math.log2(e)+1),h=i===0?t:Math.ceil(f/(2*i/Math.pow(e,1/3)));return Math.max(t,h)}}}function U(A,d,N){if(N===0)return 0;const p=A.length;let g=0;for(let f=0;f<p;f++)g+=Math.pow((A[f]-d)/N,3);return g/p}function ue(A,d,N=1,p=-1){q(A.dtype,"trapezoid","trapezoid requires real numbers."),d!==void 0&&q(d.dtype,"trapezoid","trapezoid requires real numbers.");const g=Array.from(A.shape),f=g.length;if(p<0&&(p=f+p),p<0||p>=f)throw new Error(`axis ${p} is out of bounds for array of dimension ${f}`);const s=g[p];if(s<2)throw new Error("trapezoid requires at least 2 samples along axis");let n;if(d!==void 0){if(d.size!==s)throw new Error(`x array size (${d.size}) must match y axis size (${s})`);const t=d.data;n=new Float64Array(s);for(let h=0;h<s;h++)n[h]=Number(t[h])}else{n=new Float64Array(s);for(let t=0;t<s;t++)n[t]=t*N}const e=[...g];if(e.splice(p,1),f===1){const t=A.data;let h=0;for(let a=0;a<s-1;a++){const o=Number(t[a]),c=Number(t[a+1]),b=n[a+1]-n[a];h+=.5*(o+c)*b}return h}const r=e.reduce((t,h)=>t*h,1),u=new Float64Array(r),l=new Array(f);let m=1;for(let t=f-1;t>=0;t--)l[t]=m,m*=g[t];const F=new Array(e.length);m=1;for(let t=e.length-1;t>=0;t--)F[t]=m,m*=e[t];const i=A.data;for(let t=0;t<r;t++){const h=[];let a=t;for(let y=0;y<e.length;y++){const w=Math.floor(a/F[y]);a%=F[y],h.push(w)}const o=[];let c=0;for(let y=0;y<f;y++)y===p?o.push(0):(o.push(h[c]),c++);let b=0;for(let y=0;y<s-1;y++){o[p]=y;let w=0;for(let I=0;I<f;I++)w+=o[I]*l[I];o[p]=y+1;let x=0;for(let I=0;I<f;I++)x+=o[I]*l[I];const D=Number(i[w]),v=Number(i[x]),z=n[y+1]-n[y];b+=.5*(D+v)*z}u[t]=b}return e.length===0?u[0]:S.fromData(u,e,"float64")}export{te as bincount,se as convolve,le as corrcoef,P as correlate,Q as cov,re as digitize,ae as histogram,oe as histogram2d,ie as histogram_bin_edges,ne as histogramdd,ue as trapezoid};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{ArrayStorage as h}from"../storage";import{elementwiseUnaryOp as g}from"../internal/compute";import{isBigIntDType as C,isComplexDType as A,throwIfComplex as M}from"../dtype";function U(t){const s=t.dtype;if(A(s)){const m=Array.from(t.shape),f=t.size,y=t.isCContiguous,l=h.zeros(m,s),n=l.data;if(y){const r=t.data,a=t.offset;for(let o=0;o<f;o++){const i=r[(a+o)*2],e=r[(a+o)*2+1];n[o*2]=Math.sin(i)*Math.cosh(e),n[o*2+1]=Math.cos(i)*Math.sinh(e)}}else for(let r=0;r<f;r++){const a=t.iget(r),o=a.re,i=a.im;n[r*2]=Math.sin(o)*Math.cosh(i),n[r*2+1]=Math.cos(o)*Math.sinh(i)}return l}return g(t,Math.sin,!1)}function j(t){const s=t.dtype;if(A(s)){const m=Array.from(t.shape),f=t.size,y=t.isCContiguous,l=h.zeros(m,s),n=l.data;if(y){const r=t.data,a=t.offset;for(let o=0;o<f;o++){const i=r[(a+o)*2],e=r[(a+o)*2+1];n[o*2]=Math.cos(i)*Math.cosh(e),n[o*2+1]=-Math.sin(i)*Math.sinh(e)}}else for(let r=0;r<f;r++){const a=t.iget(r),o=a.re,i=a.im;n[r*2]=Math.cos(o)*Math.cosh(i),n[r*2+1]=-Math.sin(o)*Math.sinh(i)}return l}return g(t,Math.cos,!1)}function k(t){const s=t.dtype;if(A(s)){const m=Array.from(t.shape),f=t.size,y=t.isCContiguous,l=h.zeros(m,s),n=l.data;if(y){const r=t.data,a=t.offset;for(let o=0;o<f;o++){const i=r[(a+o)*2],e=r[(a+o)*2+1],c=Math.cos(2*i)+Math.cosh(2*e);n[o*2]=Math.sin(2*i)/c,n[o*2+1]=Math.sinh(2*e)/c}}else for(let r=0;r<f;r++){const a=t.iget(r),o=a.re,i=a.im,e=Math.cos(2*o)+Math.cosh(2*i);n[r*2]=Math.sin(2*o)/e,n[r*2+1]=Math.sinh(2*i)/e}return l}return g(t,Math.tan,!1)}function E(t){const s=t.dtype;if(A(s)){const m=Array.from(t.shape),f=t.size,y=t.isCContiguous,l=h.zeros(m,s),n=l.data;if(y){const r=t.data,a=t.offset;for(let o=0;o<f;o++){const i=r[(a+o)*2],e=r[(a+o)*2+1],[c,u]=D(i,e);n[o*2]=c,n[o*2+1]=u}}else for(let r=0;r<f;r++){const a=t.iget(r),[o,i]=D(a.re,a.im);n[r*2]=o,n[r*2+1]=i}return l}return g(t,Math.asin,!1)}function D(t,s){const m=-s,f=t,y=t*t-s*s,l=2*t*s,n=1-y,r=-l,a=Math.sqrt(n*n+r*r),o=Math.sqrt((a+n)/2),i=(r>=0?1:-1)*Math.sqrt((a-n)/2),e=m+o,c=f+i,u=Math.sqrt(e*e+c*c),p=Math.log(u);let S=Math.atan2(c,e),d=-p;return Math.abs(s)<1e-15&&t>1&&(d=-d),[S,d]}function G(t){const s=t.dtype;if(A(s)){const m=Array.from(t.shape),f=t.size,y=t.isCContiguous,l=h.zeros(m,s),n=l.data;if(y){const r=t.data,a=t.offset;for(let o=0;o<f;o++){const i=r[(a+o)*2],e=r[(a+o)*2+1],[c,u]=z(i,e);n[o*2]=c,n[o*2+1]=u}}else for(let r=0;r<f;r++){const a=t.iget(r),[o,i]=z(a.re,a.im);n[r*2]=o,n[r*2+1]=i}return l}return g(t,Math.acos,!1)}function z(t,s){const m=t*t-s*s,f=2*t*s,y=1-m,l=-f,n=Math.sqrt(y*y+l*l),r=Math.sqrt((n+y)/2),o=-((l>=0?1:-1)*Math.sqrt((n-y)/2)),i=r,e=t+o,c=s+i,u=Math.sqrt(e*e+c*c),p=Math.log(u);let S=Math.atan2(c,e),d=-p;return Math.abs(s)<1e-15&&t>1&&(d=-d),[S,d]}function H(t){const s=t.dtype;if(A(s)){const m=Array.from(t.shape),f=t.size,y=t.isCContiguous,l=h.zeros(m,s),n=l.data;if(y){const r=t.data,a=t.offset;for(let o=0;o<f;o++){const i=r[(a+o)*2],e=r[(a+o)*2+1],[c,u]=I(i,e);n[o*2]=c,n[o*2+1]=u}}else for(let r=0;r<f;r++){const a=t.iget(r),[o,i]=I(a.re,a.im);n[r*2]=o,n[r*2+1]=i}return l}return g(t,Math.atan,!1)}function I(t,s){const m=-s,f=t,y=1-m,l=-f,n=1+m,r=f,a=n*n+r*r,o=(y*n+l*r)/a,i=(l*n-y*r)/a,e=Math.sqrt(o*o+i*i),c=Math.log(e);return[-Math.atan2(i,o)/2,c/2]}function J(t,s){return M(t.dtype,"arctan2","arctan2 is only defined for real numbers."),typeof s!="number"&&M(s.dtype,"arctan2","arctan2 is only defined for real numbers."),typeof s=="number"?F(t,s):v(t,s)}function v(t,s){const m=Array.from(t.shape),f=t.size,y=t.dtype,l=s.dtype,n=y==="float32"&&l==="float32"?"float32":"float64",r=h.zeros(m,n),a=r.data,o=t.isCContiguous,i=s.isCContiguous;if(o&&i){const e=t.offset,c=s.offset;for(let u=0;u<f;u++){const p=Number(t.data[e+u]),b=Number(s.data[c+u]);a[u]=Math.atan2(p,b)}}else if(o){const e=t.offset;for(let c=0;c<f;c++){const u=Number(t.data[e+c]),p=Number(s.iget(c));a[c]=Math.atan2(u,p)}}else if(i){const e=s.offset;for(let c=0;c<f;c++){const u=Number(t.iget(c)),p=Number(s.data[e+c]);a[c]=Math.atan2(u,p)}}else for(let e=0;e<f;e++){const c=Number(t.iget(e)),u=Number(s.iget(e));a[e]=Math.atan2(c,u)}return r}function F(t,s){const m=t.dtype,f=Array.from(t.shape),y=t.size,l=m==="float32"?"float32":"float64",n=h.zeros(f,l),r=n.data;if(t.isCContiguous){const o=t.data,i=t.offset;if(C(m))for(let e=0;e<y;e++)r[e]=Math.atan2(Number(o[i+e]),s);else for(let e=0;e<y;e++)r[e]=Math.atan2(Number(o[i+e]),s)}else for(let o=0;o<y;o++)r[o]=Math.atan2(Number(t.iget(o)),s);return n}function K(t,s){return M(t.dtype,"hypot","hypot is only defined for real numbers."),typeof s!="number"&&M(s.dtype,"hypot","hypot is only defined for real numbers."),typeof s=="number"?R(t,s):N(t,s)}function N(t,s){const m=Array.from(t.shape),f=t.size,y=t.dtype,l=s.dtype,n=y==="float32"&&l==="float32"?"float32":"float64",r=h.zeros(m,n),a=r.data,o=t.isCContiguous,i=s.isCContiguous;if(o&&i){const e=t.offset,c=s.offset;for(let u=0;u<f;u++){const p=Number(t.data[e+u]),b=Number(s.data[c+u]);a[u]=Math.hypot(p,b)}}else if(o){const e=t.offset;for(let c=0;c<f;c++){const u=Number(t.data[e+c]),p=Number(s.iget(c));a[c]=Math.hypot(u,p)}}else if(i){const e=s.offset;for(let c=0;c<f;c++){const u=Number(t.iget(c)),p=Number(s.data[e+c]);a[c]=Math.hypot(u,p)}}else for(let e=0;e<f;e++){const c=Number(t.iget(e)),u=Number(s.iget(e));a[e]=Math.hypot(c,u)}return r}function R(t,s){const m=t.dtype,f=Array.from(t.shape),y=t.size,l=m==="float32"?"float32":"float64",n=h.zeros(f,l),r=n.data;if(t.isCContiguous){const o=t.data,i=t.offset;if(C(m))for(let e=0;e<y;e++)r[e]=Math.hypot(Number(o[i+e]),s);else for(let e=0;e<y;e++)r[e]=Math.hypot(Number(o[i+e]),s)}else for(let o=0;o<y;o++)r[o]=Math.hypot(Number(t.iget(o)),s);return n}function q(t){M(t.dtype,"degrees","degrees is only defined for real numbers.");const s=180/Math.PI;return g(t,m=>m*s,!1)}function O(t){M(t.dtype,"radians","radians is only defined for real numbers.");const s=Math.PI/180;return g(t,m=>m*s,!1)}function L(t){return O(t)}function Q(t){return q(t)}export{G as arccos,E as arcsin,H as arctan,J as arctan2,j as cos,L as deg2rad,q as degrees,K as hypot,Q as rad2deg,O as radians,U as sin,k as tan};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
function u(r){if(!r.includes(":")){if(r.includes("."))throw new Error(`Invalid slice index: "${r}" (must be integer)`);const o=parseInt(r,10);if(isNaN(o))throw new Error(`Invalid slice index: "${r}"`);return{start:o,stop:null,step:1,isIndex:!0}}const n=r.split(":");if(n.length>3)throw new Error(`Invalid slice notation: "${r}" (too many colons)`);const e=n[0]===""?null:parseInt(n[0],10),t=n[1]===""||n[1]===void 0?null:parseInt(n[1],10),i=n[2]===""||n[2]===void 0?1:parseInt(n[2],10);if(e!==null&&isNaN(e))throw new Error(`Invalid start index in slice: "${r}"`);if(t!==null&&isNaN(t))throw new Error(`Invalid stop index in slice: "${r}"`);if(isNaN(i))throw new Error(`Invalid step in slice: "${r}"`);if(i===0)throw new Error("Slice step cannot be zero");return{start:e,stop:t,step:i,isIndex:!1}}function a(r,n){let{start:e,stop:t}=r;const{step:i,isIndex:o}=r;if(o){if(e===null)throw new Error("Index cannot be null");const l=e<0?n+e:e;if(l<0||l>=n)throw new Error(`Index ${e} is out of bounds for size ${n}`);return{start:l,stop:l+1,step:1,isIndex:!0}}return i>0?(e===null&&(e=0),t===null&&(t=n)):(e===null&&(e=n-1),t===null&&(t=-n-1)),e<0&&(e=n+e),t<0&&(t=n+t),e=Math.max(0,Math.min(e,n)),t=Math.max(-1,Math.min(t,n)),{start:e,stop:t,step:i,isIndex:!1}}function s(r,n,e){return e>0?r>=n?0:Math.ceil((n-r)/e):r<=n?0:Math.ceil((r-n)/-e)}function f(r){return r.map(n=>u(n))}export{s as computeSliceLength,a as normalizeSlice,u as parseSlice,f as parseSlices};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{DEFAULT_DTYPE as g,getTypedArrayConstructor as p,isBigIntDType as b,isComplexDType as m}from"./dtype";import{Complex as f}from"./complex";class d{constructor(s,t,r,e,n){this._isCContiguous=-1;this._data=s,this._shape=t,this._strides=r,this._offset=e,this._dtype=n}get shape(){return this._shape}get ndim(){return this._shape.length}get size(){return this._shape.reduce((s,t)=>s*t,1)}get dtype(){return this._dtype}get data(){return this._data}get strides(){return this._strides}get offset(){return this._offset}get isCContiguous(){if(this._isCContiguous!==-1)return this._isCContiguous===1;const s=this._shape,t=this._strides,r=s.length;let e;if(r===0)e=!0;else if(r===1)e=t[0]===1;else{e=!0;let n=1;for(let l=r-1;l>=0;l--){if(t[l]!==n){e=!1;break}n*=s[l]}}return this._isCContiguous=e?1:0,e}get isFContiguous(){const s=this._shape,t=this._strides,r=s.length;if(r===0)return!0;if(r===1)return t[0]===1;let e=1;for(let n=0;n<r;n++){if(t[n]!==e)return!1;e*=s[n]}return!0}iget(s){const t=this._shape,r=this._strides,e=t.length,n=m(this._dtype);let l;if(e===0)l=this._offset;else{let o=s;l=this._offset;for(let a=0;a<e;a++){let i=1;for(let c=a+1;c<e;c++)i*=t[c];const u=Math.floor(o/i);o=o%i,l+=u*r[a]}}if(n){const o=l*2,a=this._data[o],i=this._data[o+1];return new f(a,i)}return this._data[l]}iset(s,t){const r=this._shape,e=this._strides,n=r.length,l=m(this._dtype);let o;if(n===0)o=this._offset;else{let a=s;o=this._offset;for(let i=0;i<n;i++){let u=1;for(let y=i+1;y<n;y++)u*=r[y];const c=Math.floor(a/u);a=a%u,o+=c*e[i]}}if(l){const a=o*2;let i,u;t instanceof f?(i=t.re,u=t.im):typeof t=="object"&&t!==null&&"re"in t?(i=t.re,u=t.im??0):(i=Number(t),u=0),this._data[a]=i,this._data[a+1]=u}else this._data[o]=t}get(...s){const t=this._strides;let r=this._offset;for(let e=0;e<s.length;e++)r+=s[e]*t[e];if(m(this._dtype)){const e=r*2,n=this._data[e],l=this._data[e+1];return new f(n,l)}return this._data[r]}set(s,t){const r=this._strides;let e=this._offset;for(let n=0;n<s.length;n++)e+=s[n]*r[n];if(m(this._dtype)){const n=e*2;let l,o;t instanceof f?(l=t.re,o=t.im):typeof t=="object"&&t!==null&&"re"in t?(l=t.re,o=t.im??0):(l=Number(t),o=0),this._data[n]=l,this._data[n+1]=o}else this._data[e]=t}copy(){const s=Array.from(this._shape),t=this._dtype,r=this.size,e=m(t),n=p(t);if(!n)throw new Error(`Cannot copy array with dtype ${t}`);const l=e?r*2:r,o=new n(l);if(this.isCContiguous&&this._offset===0)if(b(t)){const a=this._data,i=o;for(let u=0;u<l;u++)i[u]=a[u]}else o.set(this._data.subarray(0,l));else if(b(t)){const a=o;for(let i=0;i<r;i++)a[i]=this.iget(i)}else if(e){const a=o;for(let i=0;i<r;i++){const u=this.iget(i);a[i*2]=u.re,a[i*2+1]=u.im}}else for(let a=0;a<r;a++)o[a]=this.iget(a);return new d(o,s,d._computeStrides(s),0,t)}static fromData(s,t,r,e,n){const l=e??d._computeStrides(t),o=n??0;return new d(s,t,l,o,r)}static zeros(s,t=g){const r=s.reduce((a,i)=>a*i,1),e=m(t),n=p(t);if(!n)throw new Error(`Cannot create array with dtype ${t}`);const l=e?r*2:r,o=new n(l);return new d(o,s,d._computeStrides(s),0,t)}static ones(s,t=g){const r=s.reduce((a,i)=>a*i,1),e=m(t),n=p(t);if(!n)throw new Error(`Cannot create array with dtype ${t}`);const l=e?r*2:r,o=new n(l);if(b(t))o.fill(BigInt(1));else if(e){const a=o;for(let i=0;i<r;i++)a[i*2]=1,a[i*2+1]=0}else o.fill(1);return new d(o,s,d._computeStrides(s),0,t)}static _computeStrides(s){const t=new Array(s.length);let r=1;for(let e=s.length-1;e>=0;e--)t[e]=r,r*=s[e];return t}}function C(h){const s=new Array(h.length);let t=1;for(let r=h.length-1;r>=0;r--)s[r]=t,t*=h[r];return s}export{d as ArrayStorage,C as computeStrides};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{NDArrayCore as D}from"../common/ndarray-core";import*as a from"../common/ops/advanced";import*as N from"../common/ops/comparison";import{array as b}from"./creation";import{toStorage as n,fromStorage as i,fromStorageView as C}from"./types";import{computeBroadcastShape as _}from"../common/broadcasting";import{isBigIntDType as d}from"../common/dtype";function q(e,r){return C(a.broadcast_to(n(e),r),e)}function E(...e){const r=e.map(n);return a.broadcast_arrays(r).map(o=>i(o))}function B(...e){if(e.length===0)return[];if(e.length===1)return[...e[0]];let r=[...e[0]];for(let o=1;o<e.length;o++){const t=e[o],s=Math.max(r.length,t.length),m=[];for(let c=0;c<s;c++){const y=c<r.length?r[r.length-1-c]:1,f=c<t.length?t[t.length-1-c]:1;if(y===f)m.unshift(y);else if(y===1)m.unshift(f);else if(f===1)m.unshift(y);else throw new Error(`Cannot broadcast shapes: dimensions ${y} and ${f} are incompatible`)}r=m}return r}function x(e,r,o){return i(a.take(n(e),r,o))}function F(e,r,o){const t=Array.isArray(o)?n(b(o)):n(o);a.put(n(e),r,t)}function M(e,r,o){return i(a.take_along_axis(n(e),n(r),o))}function T(e,r,o,t){a.put_along_axis(n(e),n(r),n(o),t)}function z(e,r){const o=r.map(n);return i(a.choose(n(e),o))}function g(e,r,o){return i(a.compress(n(e),n(r),o))}function I(e,r,o=0){let t;return r instanceof D?t=Array.from(r.data):Array.isArray(r[0])?t=r.flat():t=r,x(e,t,o)}function O(e,r,o){return g(r,e,o)}function V(e,r,o=0){const t=e.map(n),s=r.map(n);return i(a.select(t,s,o))}function L(e,r,o){a.place(n(e),n(r),n(o))}function R(e,r,o){a.putmask(n(e),n(r),n(o))}function G(e,r){const o=n(e),t=e.shape,s=e.size,m=e.dtype;if(typeof r=="number"||typeof r=="bigint"){e.fill(r);return}const c=n(r),y=r.shape,f=_([y,t]);if(!f)throw new Error(`could not broadcast input array from shape (${y.join(",")}) into shape (${t.join(",")})`);if(f.length!==t.length||!f.every((u,p)=>u===t[p]))throw new Error(`could not broadcast input array from shape (${y.join(",")}) into shape (${t.join(",")})`);const A=a.broadcast_to(c,t);if(d(m))for(let u=0;u<s;u++){const p=A.iget(u),l=typeof p=="bigint"?p:BigInt(Math.round(Number(p)));o.iset(u,l)}else if(m==="bool")for(let u=0;u<s;u++){const p=A.iget(u);o.iset(u,p?1:0)}else for(let u=0;u<s;u++){const p=A.iget(u);o.iset(u,Number(p))}}function H(e,r="int32"){return i(a.indices(e,r))}function J(...e){const r=e.map(n);return a.ix_(...r).map(o=>i(o))}function K(e,r,o="raise"){const t=e.map(n);return i(a.ravel_multi_index(t,r,o))}function P(e,r){const o=typeof e=="number"?n(b([e])):n(e);return a.unravel_index(o,r).map(t=>i(t))}function Q(e,r=2){return a.diag_indices(e,r).map(o=>i(o))}function U(e){return a.diag_indices_from(n(e)).map(r=>i(r))}function W(e,r,o=!1){a.fill_diagonal(n(e),r,o)}function X(e,r=0,o){return a.tril_indices(e,r,o).map(t=>i(t))}function Y(e,r=0){return a.tril_indices_from(n(e),r).map(o=>i(o))}function Z(e,r=0,o){return a.triu_indices(e,r,o).map(t=>i(t))}function rr(e,r=0){return a.triu_indices_from(n(e),r).map(o=>i(o))}function er(e,r,o=0){const t=(s,m)=>n(r(s,m));return a.mask_indices(e,t,o).map(s=>i(s))}function or(e,r,o=!1){return a.array_equal(n(e),n(r),o)}function nr(e,r){return N.arrayEquiv(n(e),n(r))}function tr(e,r,o){const t=s=>{const m=e(i(s));return typeof m=="number"?m:n(m)};return i(a.apply_along_axis(n(o),r,t))}function ar(e,r,o){const t=(s,m)=>n(e(i(s),m));return i(a.apply_over_axes(n(r),t,o))}function ir(e,r){return a.may_share_memory(n(e),n(r))}function ur(e,r){return a.shares_memory(n(e),n(r))}const sr=a.geterr,mr=a.seterr;export{tr as apply_along_axis,ar as apply_over_axes,or as array_equal,nr as array_equiv,O as bindex,E as broadcast_arrays,B as broadcast_shapes,q as broadcast_to,z as choose,g as compress,G as copyto,Q as diag_indices,U as diag_indices_from,W as fill_diagonal,sr as geterr,I as iindex,H as indices,J as ix_,er as mask_indices,ir as may_share_memory,L as place,F as put,T as put_along_axis,R as putmask,K as ravel_multi_index,V as select,mr as seterr,ur as shares_memory,x as take,M as take_along_axis,X as tril_indices,Y as tril_indices_from,Z as triu_indices,rr as triu_indices_from,P as unravel_index};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import*as a from"../common/ops/arithmetic";import*as u from"../common/ops/exponential";import{toStorage as o,fromStorage as n,fromStorageTuple as A}from"./types";function c(e,r){const t=typeof r=="number"?r:o(r);return n(a.add(o(e),t))}function i(e,r){const t=typeof r=="number"?r:o(r);return n(a.subtract(o(e),t))}function b(e,r){const t=typeof r=="number"?r:o(r);return n(a.multiply(o(e),t))}function x(e){return n(u.sqrt(o(e)))}function C(e,r){const t=typeof r=="number"?r:o(r);return n(u.power(o(e),t))}const g=C;function l(e){return n(u.exp(o(e)))}function s(e){return n(u.exp2(o(e)))}function d(e){return n(u.expm1(o(e)))}function S(e){return n(u.log(o(e)))}function v(e){return n(u.log2(o(e)))}function w(e){return n(u.log10(o(e)))}function h(e){return n(u.log1p(o(e)))}function q(e,r){const t=typeof r=="number"?r:o(r);return n(u.logaddexp(o(e),t))}function I(e,r){const t=typeof r=="number"?r:o(r);return n(u.logaddexp2(o(e),t))}function N(e){return n(a.absolute(o(e)))}const M=N;function O(e){return n(a.negative(o(e)))}function P(e){return n(a.sign(o(e)))}function _(e,r){const t=typeof r=="number"?r:o(r);return n(a.mod(o(e),t))}function p(e,r){const t=typeof r=="number"?r:o(r);return n(a.divide(o(e),t))}const T=p;function j(e,r){const t=typeof r=="number"?r:o(r);return n(a.floorDivide(o(e),t))}function k(e){return n(a.positive(o(e)))}function z(e){return n(a.reciprocal(o(e)))}function B(e){return n(a.cbrt(o(e)))}function E(e){return n(a.fabs(o(e)))}function F(e,r){const t=typeof r=="number"?r:o(r);return A(a.divmod(o(e),t))}function G(e){return n(a.square(o(e)))}function H(e,r){const t=typeof r=="number"?r:o(r);return n(a.remainder(o(e),t))}function J(e,r){const t=typeof r=="number"?r:o(r);return n(a.heaviside(o(e),t))}function K(e,r){const t=typeof r=="number"?r:o(r);return n(a.float_power(o(e),t))}function L(e,r){const t=typeof r=="number"?r:o(r);return n(a.fmod(o(e),t))}function Q(e){return A(a.frexp(o(e)))}function R(e,r){const t=typeof r=="number"?r:o(r);return n(a.gcd(o(e),t))}function U(e,r){const t=typeof r=="number"?r:o(r);return n(a.lcm(o(e),t))}function V(e,r){const t=typeof r=="number"?r:o(r);return n(a.ldexp(o(e),t))}function W(e){return A(a.modf(o(e)))}function X(e,r,t){const y=r===null?null:typeof r=="number"?r:o(r),D=t===null?null:typeof t=="number"?t:o(t);return n(a.clip(o(e),y,D))}function Y(e,r){const t=typeof r=="number"?r:o(r);return n(a.maximum(o(e),t))}function Z(e,r){const t=typeof r=="number"?r:o(r);return n(a.minimum(o(e),t))}function $(e,r){const t=typeof r=="number"?r:o(r);return n(a.fmax(o(e),t))}function rr(e,r){const t=typeof r=="number"?r:o(r);return n(a.fmin(o(e),t))}function er(e,r=0,t,y){return n(a.nan_to_num(o(e),r,t,y))}function or(e,r,t,y,D){return n(a.interp(o(e),o(r),o(t),y,D))}function tr(e,r=Math.PI,t=-1,y=2*Math.PI){return n(a.unwrap(o(e),r,t,y))}function nr(e){return n(a.sinc(o(e)))}function ar(e){return n(a.i0(o(e)))}export{M as abs,N as absolute,c as add,B as cbrt,X as clip,p as divide,F as divmod,l as exp,s as exp2,d as expm1,E as fabs,K as float_power,j as floor_divide,$ as fmax,rr as fmin,L as fmod,Q as frexp,R as gcd,J as heaviside,ar as i0,or as interp,U as lcm,V as ldexp,S as log,w as log10,h as log1p,v as log2,q as logaddexp,I as logaddexp2,Y as maximum,Z as minimum,_ as mod,W as modf,b as multiply,er as nan_to_num,O as negative,k as positive,g as pow,C as power,z as reciprocal,H as remainder,P as sign,nr as sinc,x as sqrt,G as square,i as subtract,T as true_divide,tr as unwrap};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import*as n from"../common/ops/bitwise";import{toStorage as t,fromStorage as i}from"./types";function b(e,r){const o=typeof r=="number"?r:t(r);return i(n.bitwise_and(t(e),o))}function s(e,r){const o=typeof r=="number"?r:t(r);return i(n.bitwise_or(t(e),o))}function f(e,r){const o=typeof r=="number"?r:t(r);return i(n.bitwise_xor(t(e),o))}function A(e){return i(n.bitwise_not(t(e)))}function C(e){return i(n.invert(t(e)))}function D(e,r){const o=typeof r=="number"?r:t(r);return i(n.left_shift(t(e),o))}function N(e,r){const o=typeof r=="number"?r:t(r);return i(n.right_shift(t(e),o))}function p(e,r,o){return i(n.packbits(t(e),r,o))}function c(e,r,o,a){return i(n.unpackbits(t(e),r,o,a))}function _(e){return i(n.bitwise_count(t(e)))}function m(e){return i(n.bitwise_invert(t(e)))}function w(e,r){const o=typeof r=="number"?r:t(r);return i(n.bitwise_left_shift(t(e),o))}function g(e,r){const o=typeof r=="number"?r:t(r);return i(n.bitwise_right_shift(t(e),o))}export{b as bitwise_and,_ as bitwise_count,m as bitwise_invert,w as bitwise_left_shift,A as bitwise_not,s as bitwise_or,g as bitwise_right_shift,f as bitwise_xor,C as invert,D as left_shift,p as packbits,N as right_shift,c as unpackbits};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import*as o from"../common/ops/complex";import{toStorage as e,fromStorage as t}from"./types";import{Complex as N}from"../common/complex";function C(r){return t(o.real(e(r)))}function c(r){return t(o.imag(e(r)))}function n(r){return t(o.conj(e(r)))}const u=n;function y(r,a){return t(o.angle(e(r),a))}export{N as Complex,y as angle,n as conj,u as conjugate,c as imag,C as real};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{ArrayStorage as g}from"../common/storage";import{NDArrayCore as b}from"../common/ndarray-core";import{Complex as M,isComplexLike as U}from"../common/complex";import{getTypedArrayConstructor as w,isBigIntDType as C,isComplexDType as S,DEFAULT_DTYPE as m}from"../common/dtype";function B(r){return new b(r)}function z(r){return!!(r instanceof b||r&&typeof r=="object"&&"storage"in r&&r.storage instanceof g)}function N(r,e=m){const t=g.zeros(r,e);return new b(t)}function F(r,e=m){const t=g.ones(r,e);return new b(t)}function k(r,e=m){return N(r,e)}function v(r,e,t){let n=t;n||(typeof e=="bigint"?n="int64":typeof e=="boolean"?n="bool":Number.isInteger(e)?n="int32":n=m);const o=w(n);if(!o)throw new Error(`Cannot create full array with dtype ${n}`);const u=r.reduce((s,a)=>s*a,1),i=new o(u);if(C(n)){const s=typeof e=="bigint"?e:BigInt(Math.round(Number(e)));i.fill(s)}else n==="bool"?i.fill(e?1:0):i.fill(Number(e));const f=g.fromData(i,r,n);return new b(f)}function j(r){const e=[];let t=r;for(;Array.isArray(t);)e.push(t.length),t=t[0];return e}function E(r){return typeof r=="bigint"?!0:Array.isArray(r)?r.some(e=>E(e)):!1}function I(r){return U(r)?!0:Array.isArray(r)?r.some(e=>I(e)):!1}function $(r){const e=[];function t(n){Array.isArray(n)?n.forEach(o=>t(o)):e.push(n)}return t(r),e}function h(r,e){if(r instanceof b)return!e||r.dtype===e?r.copy():r.astype(e);const t=E(r),n=I(r),o=j(r),u=o.reduce((A,p)=>A*p,1);let i=e;i||(n?i="complex128":t?i="int64":i=m);const f=S(i),s=w(i);if(!s)throw new Error(`Cannot create array with dtype ${i}`);const a=f?u*2:u,c=new s(a),y=$(r);if(C(i)){const A=c;for(let p=0;p<u;p++){const D=y[p];A[p]=typeof D=="bigint"?D:BigInt(Math.round(Number(D)))}}else if(i==="bool"){const A=c;for(let p=0;p<u;p++)A[p]=y[p]?1:0}else if(f){const A=c;for(let p=0;p<u;p++){const D=y[p];let d,x;D instanceof M?(d=D.re,x=D.im):typeof D=="object"&&D!==null&&"re"in D?(d=D.re,x=D.im??0):(d=Number(D),x=0),A[p*2]=d,A[p*2+1]=x}}else{const A=c;for(let p=0;p<u;p++){const D=y[p];A[p]=Number(D)}}const l=g.fromData(c,o,i);return new b(l)}function K(r,e,t=1,n=m){let o=r,u=e;if(e===void 0&&(o=0,u=r),u===void 0)throw new Error("stop is required");const i=Math.max(0,Math.ceil((u-o)/t)),f=w(n);if(!f)throw new Error(`Cannot create arange array with dtype ${n}`);const s=new f(i);if(C(n))for(let c=0;c<i;c++)s[c]=BigInt(Math.round(o+c*t));else if(n==="bool")for(let c=0;c<i;c++)s[c]=o+c*t!==0?1:0;else for(let c=0;c<i;c++)s[c]=o+c*t;const a=g.fromData(s,[i],n);return new b(a)}function O(r,e,t=50,n=m){if(t<0)throw new Error("num must be non-negative");if(t===0)return h([],n);if(t===1)return h([r],n);const o=w(n);if(!o)throw new Error(`Cannot create linspace array with dtype ${n}`);const u=new o(t),i=(e-r)/(t-1);if(C(n))for(let s=0;s<t;s++)u[s]=BigInt(Math.round(r+s*i));else if(n==="bool")for(let s=0;s<t;s++)u[s]=r+s*i!==0?1:0;else for(let s=0;s<t;s++)u[s]=r+s*i;const f=g.fromData(u,[t],n);return new b(f)}function R(r,e,t=50,n=10,o=m){if(t<0)throw new Error("num must be non-negative");if(t===0)return h([],o);if(t===1)return h([Math.pow(n,r)],o);const u=w(o);if(!u)throw new Error(`Cannot create logspace array with dtype ${o}`);const i=new u(t),f=(e-r)/(t-1);if(C(o))for(let a=0;a<t;a++){const c=r+a*f;i[a]=BigInt(Math.round(Math.pow(n,c)))}else if(o==="bool")for(let a=0;a<t;a++){const c=r+a*f;i[a]=Math.pow(n,c)!==0?1:0}else for(let a=0;a<t;a++){const c=r+a*f;i[a]=Math.pow(n,c)}const s=g.fromData(i,[t],o);return new b(s)}function H(r,e,t=50,n=m){if(t<0)throw new Error("num must be non-negative");if(r===0||e===0)throw new Error("Geometric sequence cannot include zero");if(t===0)return h([],n);if(t===1)return h([r],n);const o=Math.sign(r),u=Math.sign(e);if(o!==u)throw new Error("Geometric sequence cannot contain both positive and negative values");const i=w(n);if(!i)throw new Error(`Cannot create geomspace array with dtype ${n}`);const f=new i(t),s=Math.log(Math.abs(r)),c=(Math.log(Math.abs(e))-s)/(t-1);if(C(n))for(let l=0;l<t;l++){const A=o*Math.exp(s+l*c);f[l]=BigInt(Math.round(A))}else if(n==="bool")for(let l=0;l<t;l++){const A=o*Math.exp(s+l*c);f[l]=A!==0?1:0}else for(let l=0;l<t;l++){const A=o*Math.exp(s+l*c);f[l]=A}const y=g.fromData(f,[t],n);return new b(y)}function L(r,e,t=0,n=m){const o=e??r,u=N([r,o],n),i=u.data;if(C(n)){const f=i;for(let s=0;s<r;s++){const a=s+t;a>=0&&a<o&&(f[s*o+a]=BigInt(1))}}else{const f=i;for(let s=0;s<r;s++){const a=s+t;a>=0&&a<o&&(f[s*o+a]=1)}}return u}function J(r,e=m){return L(r,r,0,e)}function T(r,e){return z(r)?!e||r.dtype===e?r:r.astype(e):h(r,e)}function Q(r,e){return N(Array.from(r.shape),e??r.dtype)}function W(r,e){return F(Array.from(r.shape),e??r.dtype)}function X(r,e){return k(Array.from(r.shape),e??r.dtype)}function Z(r,e,t){return v(Array.from(r.shape),e,t??r.dtype)}function rr(r){return r.copy()}function er(r,e){return T(r,e)}function tr(r,e){return T(r,e).copy()}function nr(r,e){return T(r,e).copy()}function or(r,e){const t=T(r,e),n=t.data;for(let o=0;o<n.length;o++){const u=n[o];if(!Number.isFinite(u))throw new Error("array must not contain infs or NaNs")}return t}function ar(r,e,t){let n=r;return e&&e!==r.dtype&&(n=n.astype(e)),n}function q(r){const e=r.data,t=g.fromData(e.slice(),[e.length],r.dtype);return B(t)}function _(r,e=0){const t=r.shape,n=r.data,o=r.dtype;if(t.length===1){const u=t[0],i=u+Math.abs(e),f=N([i,i],o),s=f.data;for(let a=0;a<u;a++){const c=e>=0?a:a-e,y=e>=0?a+e:a;c>=0&&c<i&&y>=0&&y<i&&(s[c*i+y]=n[a])}return f}else if(t.length===2){const u=t[0],i=t[1],f=Math.min(e>=0?Math.min(u,i-e):Math.min(u+e,i),Math.max(0,e>=0?i-e:u+e));if(f<=0)return h([],o);const s=[];for(let a=0;a<f;a++){const c=e>=0?a:a-e,y=e>=0?a+e:a;c>=0&&c<u&&y>=0&&y<i&&s.push(n[c*i+y])}return h(s,o)}throw new Error("Input must be 1-D or 2-D")}function sr(r,e=0){const t=q(r);return _(t,e)}function ir(r,e,t=0,n=m){const o=e??r,u=N([r,o],n),i=u.data;for(let f=0;f<r;f++)for(let s=0;s<=Math.min(f+t,o-1);s++)s>=0&&(i[f*o+s]=1);return u}function cr(r,e=0){const t=r.shape;if(t.length<2)throw new Error("Input must be at least 2-D");const n=r.copy(),o=n.data,u=t[t.length-2],i=t[t.length-1],f=t.slice(0,-2).reduce((a,c)=>a*c,1),s=u*i;for(let a=0;a<f;a++){const c=a*s;for(let y=0;y<u;y++)for(let l=y+e+1;l<i;l++)o[c+y*i+l]=0}return n}function ur(r,e=0){const t=r.shape;if(t.length<2)throw new Error("Input must be at least 2-D");const n=r.copy(),o=n.data,u=t[t.length-2],i=t[t.length-1],f=t.slice(0,-2).reduce((a,c)=>a*c,1),s=u*i;for(let a=0;a<f;a++){const c=a*s;for(let y=0;y<u;y++)for(let l=0;l<Math.min(y+e,i);l++)o[c+y*i+l]=0}return n}function fr(r,e,t=!1){const n=r.size,o=e??n,u=r.data,i=N([n,o],r.dtype),f=i.data;for(let s=0;s<n;s++){const a=u[s];for(let c=0;c<o;c++){const y=t?c:o-1-c;f[s*o+c]=Math.pow(a,y)}}return i}function lr(r,e=m,t=-1,n=0){const o=w(e);if(!o)throw new Error(`Unsupported dtype: ${e}`);let u;if(r instanceof ArrayBuffer){const f=n,s=t<0?(r.byteLength-f)/o.BYTES_PER_ELEMENT:t;u=new o(r,f,s)}else{const f=n,s=t<0?r.length:n+t,a=Array.from(r.slice(f,s));u=new o(a.length);for(let c=0;c<a.length;c++)u[c]=a[c]}const i=g.fromData(u,[u.length],e);return B(i)}function yr(r,e,t=m){const n=e.reduce((a,c)=>a*c,1),o=w(t);if(!o)throw new Error(`Unsupported dtype: ${t}`);const u=new o(n),i=[];let f=1;for(let a=e.length-1;a>=0;a--)i.unshift(f),f*=e[a];for(let a=0;a<n;a++){const c=[];let y=a;for(let l=0;l<e.length;l++)c.push(Math.floor(y/i[l])),y=y%i[l];u[a]=r(...c)}const s=g.fromData(u,e,t);return B(s)}function pr(r,e=m,t=-1){const n=[];let o=0;for(const u of r){if(t>=0&&o>=t)break;n.push(u),o++}return h(n,e)}function Ar(r,e=m,t=-1,n){const o=n??/\s+/,i=r.split(o).filter(s=>s.trim()!=="").map(s=>parseFloat(s.trim())),f=t>=0?i.slice(0,t):i;return h(f,e)}function Dr(r,e=m,t=-1,n=""){throw new Error("fromfile requires Node.js file system access")}function mr(...r){if(r.length===0)return[];if(r.length===1)return[r[0].copy()];const e=r.map(o=>o.size),t=[...e],n=[];for(let o=0;o<r.length;o++){const u=r[o],i=u.data,f=N(t,u.dtype),s=f.data,a=[];let c=1;for(let l=t.length-1;l>=0;l--)a.unshift(c),c*=t[l];const y=t.reduce((l,A)=>l*A,1);for(let l=0;l<y;l++){const A=Math.floor(l/a[o])%e[o];s[l]=i[A]}n.push(f)}return n}export{K as arange,h as array,er as asanyarray,T as asarray,or as asarray_chkfinite,tr as ascontiguousarray,nr as asfortranarray,rr as copy,_ as diag,sr as diagflat,k as empty,X as empty_like,L as eye,lr as frombuffer,Dr as fromfile,yr as fromfunction,pr as fromiter,Ar as fromstring,v as full,Z as full_like,H as geomspace,J as identity,O as linspace,R as logspace,mr as meshgrid,F as ones,W as ones_like,ar as require,ir as tri,cr as tril,ur as triu,fr as vander,N as zeros,Q as zeros_like};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import*as t from"../common/ops/formatting";import{toStorage as o}from"./types";const l=t.set_printoptions,m=t.get_printoptions,_=t.printoptions,u=t.format_float_positional,f=t.format_float_scientific,x=t.base_repr,c=t.binary_repr;function g(e,r){return t.array2string(o(e),r?.max_line_width??null,r?.precision??null,r?.suppress_small??null,r?.separator??" ",r?.prefix??"",r?.suffix??"",r?.threshold??null,r?.edgeitems??null)}function b(e,r,n,i){return t.array_repr(o(e),r,n,i)}function y(e,r,n){return t.array_str(o(e),r,n)}export{g as array2string,b as array_repr,y as array_str,x as base_repr,c as binary_repr,u as format_float_positional,f as format_float_scientific,m as get_printoptions,_ as printoptions,l as set_printoptions};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import*as t from"../common/ops/gradient";import{toStorage as u,fromStorage as a,fromStorageArray as f}from"./types";function l(r,e,n){return a(t.diff(u(r),e,n))}function y(r,e,n){return a(t.ediff1d(u(r),e??null,n??null))}function A(r,e,n){const o=t.gradient(u(r),e,n);return Array.isArray(o)?f(o):a(o)}export{l as diff,y as ediff1d,A as gradient};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{NDArrayCore as a,Complex as t,ArrayStorage as i}from"./types";import{zeros as s,ones as n,empty as p,full as l,array as m,arange as d,linspace as c,logspace as _,geomspace as f,eye as u,identity as y,asarray as x,zeros_like as g,ones_like as v,empty_like as h,full_like as b,copy as z,asanyarray as k,ascontiguousarray as N,asfortranarray as w,asarray_chkfinite as q,require as T,diag as S,diagflat as D,tri as P,tril as E,triu as O,vander as j,frombuffer as A,fromfunction as C,fromiter as R,fromstring as H,fromfile as I,meshgrid as U}from"./creation";import{add as M,subtract as V,multiply as B,sqrt as F,power as G,pow as J,exp as K,exp2 as L,expm1 as Q,log as W,log2 as X,log10 as Z,log1p as $,logaddexp as ee,logaddexp2 as re,absolute as ae,abs as te,negative as ie,sign as oe,mod as se,divide as ne,true_divide as pe,floor_divide as le,positive as me,reciprocal as de,cbrt as ce,fabs as _e,divmod as fe,square as ue,remainder as ye,heaviside as xe,float_power as ge,fmod as ve,frexp as he,gcd as be,lcm as ze,ldexp as ke,modf as Ne,clip as we,maximum as qe,minimum as Te,fmax as Se,fmin as De,nan_to_num as Pe,interp as Ee,unwrap as Oe,sinc as je,i0 as Ae}from"./arithmetic";import{sin as Re,cos as He,tan as Ie,arcsin as Ue,asin as Ye,arccos as Me,acos as Ve,arctan as Be,atan as Fe,arctan2 as Ge,atan2 as Je,hypot as Ke,degrees as Le,radians as Qe,deg2rad as We,rad2deg as Xe,sinh as Ze,cosh as $e,tanh as er,arcsinh as rr,asinh as ar,arccosh as tr,acosh as ir,arctanh as or,atanh as sr}from"./trig";import{dot as pr,matmul as lr,trace as mr,diagonal as dr,kron as cr,transpose as _r,inner as fr,outer as ur,tensordot as yr,einsum as xr,einsum_path as gr,vdot as vr,vecdot as hr,matrix_transpose as br,permute_dims as zr,matvec as kr,vecmat as Nr,cross as wr,linalg as qr}from"./linalg";import{reshape as Sr,flatten as Dr,ravel as Pr,squeeze as Er,expand_dims as Or,swapaxes as jr,moveaxis as Ar,rollaxis as Cr,concatenate as Rr,stack as Hr,vstack as Ir,hstack as Ur,dstack as Yr,concat as Mr,column_stack as Vr,row_stack as Br,block as Fr,split as Gr,array_split as Jr,vsplit as Kr,hsplit as Lr,dsplit as Qr,unstack as Wr,tile as Xr,repeat as Zr,flip as $r,fliplr as ea,flipud as ra,rot90 as aa,roll as ta,resize as ia,atleast_1d as oa,atleast_2d as sa,atleast_3d as na}from"./shape";import{sum as la,mean as ma,prod as da,max as ca,amax as _a,min as fa,amin as ua,ptp as ya,argmin as xa,argmax as ga,variance as va,var_ as ha,variance as ba,std as za,median as ka,percentile as Na,quantile as wa,average as qa,all as Ta,any as Sa,cumsum as Da,cumulative_sum as Pa,cumprod as Ea,cumulative_prod as Oa,nansum as ja,nanprod as Aa,nanmean as Ca,nanvar as Ra,nanstd as Ha,nanmin as Ia,nanmax as Ua,nanargmin as Ya,nanargmax as Ma,nancumsum as Va,nancumprod as Ba,nanmedian as Fa,nanquantile as Ga,nanpercentile as Ja}from"./reduction";import{logical_and as La,logical_or as Qa,logical_not as Wa,logical_xor as Xa,isfinite as Za,isinf as $a,isnan as et,isnat as rt,isneginf as at,isposinf as tt,iscomplex as it,iscomplexobj as ot,isreal as st,isrealobj as nt,real_if_close as pt,isfortran as lt,isscalar as mt,iterable as dt,isdtype as ct,promote_types as _t,copysign as ft,signbit as ut,nextafter as yt,spacing as xt,greater as gt,greater_equal as vt,less as ht,less_equal as bt,equal as zt,not_equal as kt,isclose as Nt,allclose as wt}from"./logic";import{sort as Tt,argsort as St,lexsort as Dt,partition as Pt,argpartition as Et,sort_complex as Ot,nonzero as jt,argwhere as At,flatnonzero as Ct,where as Rt,searchsorted as Ht,extract as It,count_nonzero as Ut}from"./sorting";import{bitwise_and as Mt,bitwise_or as Vt,bitwise_xor as Bt,bitwise_not as Ft,invert as Gt,left_shift as Jt,right_shift as Kt,packbits as Lt,unpackbits as Qt,bitwise_count as Wt,bitwise_invert as Xt,bitwise_left_shift as Zt,bitwise_right_shift as $t}from"./bitwise";import{around as ri,round_ as ai,round as ti,ceil as ii,fix as oi,floor as si,rint as ni,trunc as pi}from"./rounding";import{unique as mi,in1d as di,intersect1d as ci,isin as _i,setdiff1d as fi,setxor1d as ui,union1d as yi,trim_zeros as xi,unique_all as gi,unique_counts as vi,unique_inverse as hi,unique_values as bi}from"./sets";import{bincount as ki,digitize as Ni,histogram as wi,histogram2d as qi,histogramdd as Ti,correlate as Si,convolve as Di,cov as Pi,corrcoef as Ei,histogram_bin_edges as Oi,trapezoid as ji}from"./statistics";import{diff as Ci,ediff1d as Ri,gradient as Hi}from"./gradient";import{real as Ui,imag as Yi,conj as Mi,conjugate as Vi,angle as Bi}from"./complex";import{broadcast_to as Gi,broadcast_arrays as Ji,broadcast_shapes as Ki,take as Li,put as Qi,take_along_axis as Wi,put_along_axis as Xi,choose as Zi,compress as $i,select as eo,place as ro,putmask as ao,copyto as to,indices as io,ix_ as oo,ravel_multi_index as so,unravel_index as no,diag_indices as po,diag_indices_from as lo,fill_diagonal as mo,tril_indices as co,tril_indices_from as _o,triu_indices as fo,triu_indices_from as uo,mask_indices as yo,array_equal as xo,array_equiv as go,apply_along_axis as vo,apply_over_axes as ho,may_share_memory as bo,shares_memory as zo,geterr as ko,seterr as No,iindex as wo,bindex as qo}from"./advanced";import{set_printoptions as So,get_printoptions as Do,printoptions as Po,format_float_positional as Eo,format_float_scientific as Oo,base_repr as jo,binary_repr as Ao,array2string as Co,array_repr as Ro,array_str as Ho}from"./formatting";import{ndim as Uo,shape as Yo,size as Mo,item as Vo,tolist as Bo,tobytes as Fo,byteswap as Go,view as Jo,tofile as Ko,fill as Lo}from"./utility";import{append as Wo,delete_ as Xo,delete_ as Zo,insert as $o,pad as es}from"./shape-extra";import{can_cast as as,common_type as ts,result_type as is,min_scalar_type as os,issubdtype as ss,typename as ns,mintypecode as ps}from"./typechecking";import{poly as ms,polyadd as ds,polyder as cs,polydiv as _s,polyfit as fs,polyint as us,polymul as ys,polysub as xs,polyval as gs,roots as vs}from"./polynomial";import{parseNpy as bs,parseNpyHeader as zs,parseNpyData as ks}from"../io/npy/parser";import{serializeNpy as ws}from"../io/npy/serializer";import{UnsupportedDTypeError as Ts,InvalidNpyError as Ss,SUPPORTED_DTYPES as Ds,DTYPE_TO_DESCR as Ps}from"../io/npy/format";import{parseNpz as Os,parseNpzSync as js,loadNpz as As,loadNpzSync as Cs}from"../io/npz/parser";import{serializeNpz as Hs,serializeNpzSync as Is}from"../io/npz/serializer";import{parseTxt as Ys,genfromtxt as Ms,fromregex as Vs}from"../io/txt/parser";import{serializeTxt as Fs}from"../io/txt/serializer";export{i as ArrayStorage,t as Complex,Ps as DTYPE_TO_DESCR,Ss as InvalidNpyError,a as NDArrayCore,Ds as SUPPORTED_DTYPES,Ts as UnsupportedDTypeError,te as abs,ae as absolute,Ve as acos,ir as acosh,M as add,Ta as all,wt as allclose,_a as amax,ua as amin,Bi as angle,Sa as any,Wo as append,vo as apply_along_axis,ho as apply_over_axes,d as arange,Me as arccos,tr as arccosh,Ue as arcsin,rr as arcsinh,Be as arctan,Ge as arctan2,or as arctanh,ga as argmax,xa as argmin,Et as argpartition,St as argsort,At as argwhere,ri as around,m as array,Co as array2string,xo as array_equal,go as array_equiv,Ro as array_repr,Jr as array_split,Ho as array_str,k as asanyarray,x as asarray,q as asarray_chkfinite,N as ascontiguousarray,w as asfortranarray,Ye as asin,ar as asinh,Fe as atan,Je as atan2,sr as atanh,oa as atleast_1d,sa as atleast_2d,na as atleast_3d,qa as average,jo as base_repr,Ao as binary_repr,ki as bincount,qo as bindex,Mt as bitwise_and,Wt as bitwise_count,Xt as bitwise_invert,Zt as bitwise_left_shift,Ft as bitwise_not,Vt as bitwise_or,$t as bitwise_right_shift,Bt as bitwise_xor,Fr as block,Ji as broadcast_arrays,Ki as broadcast_shapes,Gi as broadcast_to,Go as byteswap,as as can_cast,ce as cbrt,ii as ceil,Zi as choose,we as clip,Vr as column_stack,ts as common_type,$i as compress,Mr as concat,Rr as concatenate,Mi as conj,Vi as conjugate,Di as convolve,z as copy,ft as copysign,to as copyto,Ei as corrcoef,Si as correlate,He as cos,$e as cosh,Ut as count_nonzero,Pi as cov,wr as cross,Ea as cumprod,Da as cumsum,Oa as cumulative_prod,Pa as cumulative_sum,We as deg2rad,Le as degrees,Zo as delete,Xo as delete_,S as diag,po as diag_indices,lo as diag_indices_from,D as diagflat,dr as diagonal,Ci as diff,Ni as digitize,ne as divide,fe as divmod,pr as dot,Qr as dsplit,Yr as dstack,Ri as ediff1d,xr as einsum,gr as einsum_path,p as empty,h as empty_like,zt as equal,K as exp,L as exp2,Or as expand_dims,Q as expm1,It as extract,u as eye,_e as fabs,Lo as fill,mo as fill_diagonal,oi as fix,Ct as flatnonzero,Dr as flatten,$r as flip,ea as fliplr,ra as flipud,ge as float_power,si as floor,le as floor_divide,Se as fmax,De as fmin,ve as fmod,Eo as format_float_positional,Oo as format_float_scientific,he as frexp,A as frombuffer,I as fromfile,C as fromfunction,R as fromiter,Vs as fromregex,H as fromstring,l as full,b as full_like,be as gcd,Ms as genfromtxt,f as geomspace,Do as get_printoptions,ko as geterr,Hi as gradient,gt as greater,vt as greater_equal,xe as heaviside,wi as histogram,qi as histogram2d,Oi as histogram_bin_edges,Ti as histogramdd,Lr as hsplit,Ur as hstack,Ke as hypot,Ae as i0,y as identity,wo as iindex,Yi as imag,di as in1d,io as indices,fr as inner,$o as insert,Ee as interp,ci as intersect1d,Gt as invert,Nt as isclose,it as iscomplex,ot as iscomplexobj,ct as isdtype,Za as isfinite,lt as isfortran,_i as isin,$a as isinf,et as isnan,rt as isnat,at as isneginf,tt as isposinf,st as isreal,nt as isrealobj,mt as isscalar,ss as issubdtype,Vo as item,dt as iterable,oo as ix_,cr as kron,ze as lcm,ke as ldexp,Jt as left_shift,ht as less,bt as less_equal,Dt as lexsort,qr as linalg,c as linspace,As as loadNpz,Cs as loadNpzSync,W as log,Z as log10,$ as log1p,X as log2,ee as logaddexp,re as logaddexp2,La as logical_and,Wa as logical_not,Qa as logical_or,Xa as logical_xor,_ as logspace,yo as mask_indices,lr as matmul,br as matrix_transpose,kr as matvec,ca as max,qe as maximum,bo as may_share_memory,ma as mean,ka as median,U as meshgrid,fa as min,os as min_scalar_type,Te as minimum,ps as mintypecode,se as mod,Ne as modf,Ar as moveaxis,B as multiply,Pe as nan_to_num,Ma as nanargmax,Ya as nanargmin,Ba as nancumprod,Va as nancumsum,Ua as nanmax,Ca as nanmean,Fa as nanmedian,Ia as nanmin,Ja as nanpercentile,Aa as nanprod,Ga as nanquantile,Ha as nanstd,ja as nansum,Ra as nanvar,Uo as ndim,ie as negative,yt as nextafter,jt as nonzero,kt as not_equal,n as ones,v as ones_like,ur as outer,Lt as packbits,es as pad,bs as parseNpy,ks as parseNpyData,zs as parseNpyHeader,Os as parseNpz,js as parseNpzSync,Ys as parseTxt,Pt as partition,Na as percentile,zr as permute_dims,ro as place,ms as poly,ds as polyadd,cs as polyder,_s as polydiv,fs as polyfit,us as polyint,ys as polymul,xs as polysub,gs as polyval,me as positive,J as pow,G as power,Po as printoptions,da as prod,_t as promote_types,ya as ptp,Qi as put,Xi as put_along_axis,ao as putmask,wa as quantile,Xe as rad2deg,Qe as radians,Pr as ravel,so as ravel_multi_index,Ui as real,pt as real_if_close,de as reciprocal,ye as remainder,Zr as repeat,T as require,Sr as reshape,ia as resize,is as result_type,Kt as right_shift,ni as rint,ta as roll,Cr as rollaxis,vs as roots,aa as rot90,ti as round,ai as round_,Br as row_stack,Ht as searchsorted,eo as select,ws as serializeNpy,Hs as serializeNpz,Is as serializeNpzSync,Fs as serializeTxt,So as set_printoptions,fi as setdiff1d,No as seterr,ui as setxor1d,Yo as shape,zo as shares_memory,oe as sign,ut as signbit,Re as sin,je as sinc,Ze as sinh,Mo as size,Tt as sort,Ot as sort_complex,xt as spacing,Gr as split,F as sqrt,ue as square,Er as squeeze,Hr as stack,za as std,V as subtract,la as sum,jr as swapaxes,Li as take,Wi as take_along_axis,Ie as tan,er as tanh,yr as tensordot,Xr as tile,Fo as tobytes,Ko as tofile,Bo as tolist,mr as trace,_r as transpose,ji as trapezoid,P as tri,E as tril,co as tril_indices,_o as tril_indices_from,xi as trim_zeros,O as triu,fo as triu_indices,uo as triu_indices_from,pe as true_divide,pi as trunc,ns as typename,yi as union1d,mi as unique,gi as unique_all,vi as unique_counts,hi as unique_inverse,bi as unique_values,Qt as unpackbits,no as unravel_index,Wr as unstack,Oe as unwrap,j as vander,ba as var,ha as var_,va as variance,vr as vdot,hr as vecdot,Nr as vecmat,Jo as view,Kr as vsplit,Ir as vstack,Rt as where,s as zeros,g as zeros_like};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import*as u from"../common/ops/linalg";import{toStorage as o,fromStorage as a,fromStorageView as D,Complex as C}from"./types";function N(r,e){const n=u.dot(o(r),o(e));return typeof n=="number"||typeof n=="bigint"||n instanceof C?n:a(n)}function i(r){return u.trace(o(r))}function s(r,e=0,n=0,t=1){return a(u.diagonal(o(r),e,n,t))}function w(r,e){return a(u.kron(o(r),o(e)))}function b(r,e){return D(u.transpose(o(r),e),r)}function l(r,e){const n=u.inner(o(r),o(e));return typeof n=="number"||typeof n=="bigint"||n instanceof C?n:a(n)}function p(r,e){return a(u.outer(o(r),o(e)))}function c(r,e,n=2){const t=u.tensordot(o(r),o(e),n);return typeof t=="number"||typeof t=="bigint"||t instanceof C?t:a(t)}function k(r,...e){const n=e.map(y=>o(y)),t=u.einsum(r,...n);return typeof t=="number"||typeof t=="bigint"||t instanceof C?t:a(t)}function q(r,...e){const n=e.map(t=>o(t));return u.einsum_path(r,...n)}function S(r,e){return u.vdot(o(r),o(e))}function f(r,e,n=-1){const t=u.vecdot(o(r),o(e),n);return typeof t=="number"||typeof t=="bigint"||t instanceof C?t:a(t)}function x(r){return D(u.matrix_transpose(o(r)),r)}function g(r,e){return D(u.permute_dims(o(r),e),r)}function O(r,e){return a(u.matvec(o(r),o(e)))}function L(r,e){return a(u.vecmat(o(r),o(e)))}function v(r,e,n=-1,t=-1,y=-1,A){const m=u.cross(o(r),o(e),n,t,y,A);return typeof m=="number"||m instanceof C?m:a(m)}function U(r,e){return a(u.matmul(o(r),o(e)))}const V={matmul:(r,e)=>a(u.matmul(o(r),o(e))),dot:(r,e)=>N(r,e),det:r=>u.det(o(r)),inv:r=>a(u.inv(o(r))),solve:(r,e)=>a(u.solve(o(r),o(e))),lstsq:(r,e,n)=>{const t=u.lstsq(o(r),o(e),n);return{x:a(t.x),residuals:a(t.residuals),rank:t.rank,s:a(t.s)}},norm:(r,e,n,t)=>{const y=u.norm(o(r),e,n,t);return typeof y=="number"?y:a(y)},cond:(r,e)=>u.cond(o(r),e),matrix_rank:(r,e)=>u.matrix_rank(o(r),e),matrix_power:(r,e)=>a(u.matrix_power(o(r),e)),pinv:(r,e)=>a(u.pinv(o(r),e)),qr:(r,e)=>{const n=u.qr(o(r),e);return"h"in n&&"tau"in n?{h:a(n.h),tau:a(n.tau)}:"q"in n&&"r"in n?{q:a(n.q),r:a(n.r)}:a(n)},cholesky:(r,e)=>a(u.cholesky(o(r),e)),svd:(r,e,n)=>{const t=u.svd(o(r),e,n);return"u"in t&&"s"in t&&"vt"in t?{u:a(t.u),s:a(t.s),vt:a(t.vt)}:a(t)},eig:r=>{const e=u.eig(o(r));return{w:a(e.w),v:a(e.v)}},eigh:(r,e)=>{const n=u.eigh(o(r),e);return{w:a(n.w),v:a(n.v)}},eigvals:r=>a(u.eigvals(o(r))),eigvalsh:(r,e)=>a(u.eigvalsh(o(r),e)),slogdet:r=>u.slogdet(o(r)),svdvals:r=>a(u.svdvals(o(r))),multi_dot:r=>a(u.multi_dot(r.map(e=>o(e)))),tensorinv:(r,e)=>a(u.tensorinv(o(r),e)),tensorsolve:(r,e,n)=>a(u.tensorsolve(o(r),o(e),n)),vector_norm:(r,e,n,t)=>{const y=u.vector_norm(o(r),e,n,t);return typeof y=="number"?y:a(y)},matrix_norm:(r,e,n)=>{const t=u.matrix_norm(o(r),e,n);return typeof t=="number"?t:a(t)},cross:(r,e,n,t,y,A)=>v(r,e,n,t,y,A),matrix_transpose:r=>x(r),permute_dims:(r,e)=>g(r,e),trace:r=>i(r),diagonal:(r,e,n,t)=>s(r,e,n,t),outer:(r,e)=>p(r,e),inner:(r,e)=>l(r,e),tensordot:(r,e,n)=>c(r,e,n),vecdot:(r,e,n)=>f(r,e,n),transpose:(r,e)=>b(r,e)};export{v as cross,s as diagonal,N as dot,k as einsum,q as einsum_path,l as inner,w as kron,V as linalg,U as matmul,x as matrix_transpose,O as matvec,p as outer,g as permute_dims,c as tensordot,i as trace,b as transpose,S as vdot,f as vecdot,L as vecmat};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import*as n from"../common/ops/logic";import*as u from"../common/ops/comparison";import{toStorage as o,fromStorage as t}from"./types";function D(r,e){const a=typeof e=="number"?e:o(e);return t(n.logical_and(o(r),a))}function A(r,e){const a=typeof e=="number"?e:o(e);return t(n.logical_or(o(r),a))}function C(r){return t(n.logical_not(o(r)))}function N(r,e){const a=typeof e=="number"?e:o(e);return t(n.logical_xor(o(r),a))}function s(r){return t(n.isfinite(o(r)))}function c(r){return t(n.isinf(o(r)))}function f(r){return t(n.isnan(o(r)))}function l(r){return t(n.isnat(o(r)))}function m(r){return t(n.isneginf(o(r)))}function b(r){return t(n.isposinf(o(r)))}function g(r){return t(n.iscomplex(o(r)))}function x(r){return n.iscomplexobj(o(r))}function _(r){return t(n.isreal(o(r)))}function q(r){return n.isrealobj(o(r))}function S(r,e){return t(n.real_if_close(o(r),e))}function T(r){return n.isfortran(o(r))}function d(r){return n.isscalar(r)}function j(r){return n.iterable(r)}function E(r,e){return n.isdtype(r,e)}function k(r,e){return n.promote_types(r,e)}function w(r,e){const a=typeof e=="number"?e:o(e);return t(n.copysign(o(r),a))}function O(r){return t(n.signbit(o(r)))}function h(r,e){const a=typeof e=="number"?e:o(e);return t(n.nextafter(o(r),a))}function v(r){return t(n.spacing(o(r)))}function z(r,e){return t(u.greater(o(r),typeof e=="number"?e:o(e)))}function B(r,e){return t(u.greaterEqual(o(r),typeof e=="number"?e:o(e)))}function F(r,e){return t(u.less(o(r),typeof e=="number"?e:o(e)))}function G(r,e){return t(u.lessEqual(o(r),typeof e=="number"?e:o(e)))}function H(r,e){return t(u.equal(o(r),typeof e=="number"?e:o(e)))}function I(r,e){return t(u.notEqual(o(r),typeof e=="number"?e:o(e)))}function J(r,e,a=1e-5,i=1e-8){return t(u.isclose(o(r),typeof e=="number"?e:o(e),a,i))}function K(r,e,a=1e-5,i=1e-8){return u.allclose(o(r),typeof e=="number"?e:o(e),a,i)}export{K as allclose,w as copysign,H as equal,z as greater,B as greater_equal,J as isclose,g as iscomplex,x as iscomplexobj,E as isdtype,s as isfinite,T as isfortran,c as isinf,f as isnan,l as isnat,m as isneginf,b as isposinf,_ as isreal,q as isrealobj,d as isscalar,j as iterable,F as less,G as less_equal,D as logical_and,C as logical_not,A as logical_or,N as logical_xor,h as nextafter,I as not_equal,k as promote_types,S as real_if_close,O as signbit,v as spacing};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{NDArrayCore as z}from"../common/ndarray-core";import{ArrayStorage as j}from"../common/storage";import{array as A}from"./creation";function D(n){return n instanceof z?n:A(n)}function L(n){const m=D(n),e=m.data,a=m.size;if(a===0)return A([1]);let r=[1];for(let i=0;i<a;i++){const l=e[i],o=new Array(r.length+1).fill(0);for(let c=0;c<r.length;c++)o[c]+=r[c],o[c+1]-=r[c]*l;r=o}return A(r)}function S(n,m){const e=D(n),a=D(m),r=e.data,i=a.data,l=Math.max(e.size,a.size),o=new Array(l).fill(0);for(let s=0;s<e.size;s++)o[l-e.size+s]+=r[s];for(let s=0;s<a.size;s++)o[l-a.size+s]+=i[s];let c=0;for(;c<o.length-1&&o[c]===0;)c++;return A(o.slice(c))}function T(n,m=1){let e=D(n);for(let a=0;a<m;a++){const r=e.data,i=e.size;if(i<=1)return A([0]);const l=[];for(let o=0;o<i-1;o++){const c=i-1-o;l.push(r[o]*c)}e=A(l)}return e}function B(n,m){const e=[...D(n).data],a=[...D(m).data];if(a.length===0||a.length===1&&a[0]===0)throw new Error("Division by zero polynomial");for(;e.length>1&&e[0]===0;)e.shift();for(;a.length>1&&a[0]===0;)a.shift();if(e.length<a.length)return[A([0]),A(e)];const r=[],i=[...e];for(;i.length>=a.length;){const l=i[0]/a[0];r.push(l);for(let o=0;o<a.length;o++)i[o]-=l*a[o];i.shift()}for(;i.length>1&&Math.abs(i[0])<1e-15;)i.shift();return[A(r.length>0?r:[0]),A(i.length>0?i:[0])]}function F(n,m,e){const a=n.data,r=m.data,i=n.size;if(e>=i)throw new Error("polyfit: degree must be less than number of points");const l=[];for(let u=0;u<i;u++){const p=[];for(let t=e;t>=0;t--)p.push(Math.pow(a[u],t));l.push(p)}const o=[],c=[];for(let u=0;u<=e;u++){o.push([]);for(let t=0;t<=e;t++){let h=0;for(let y=0;y<i;y++)h+=l[y][u]*l[y][t];o[u].push(h)}let p=0;for(let t=0;t<i;t++)p+=l[t][u]*r[t];c.push(p)}const s=e+1,b=o.map((u,p)=>[...u,c[p]]);for(let u=0;u<s;u++){let p=u;for(let t=u+1;t<s;t++)Math.abs(b[t][u])>Math.abs(b[p][u])&&(p=t);[b[u],b[p]]=[b[p],b[u]];for(let t=u+1;t<s;t++){const h=b[t][u]/b[u][u];for(let y=u;y<=s;y++)b[t][y]-=h*b[u][y]}}const f=new Array(s).fill(0);for(let u=s-1;u>=0;u--){let p=b[u][s];for(let t=u+1;t<s;t++)p-=b[u][t]*f[t];f[u]=p/b[u][u]}return A(f)}function P(n,m=1,e=0){let a=D(n);const r=Array.isArray(e)?e:[e];for(let i=0;i<m;i++){const l=a.data,o=a.size,c=[];for(let b=0;b<o;b++){const f=o-b;c.push(l[b]/f)}const s=i<r.length?r[i]:0;c.push(s),a=A(c)}return a}function Q(n,m){const e=D(n),a=D(m),r=e.data,i=a.data,l=e.size+a.size-1,o=new Array(l).fill(0);for(let c=0;c<e.size;c++)for(let s=0;s<a.size;s++)o[c+s]+=r[c]*i[s];return A(o)}function V(n,m){const e=D(n),a=D(m),r=e.data,i=a.data,l=Math.max(e.size,a.size),o=new Array(l).fill(0);for(let s=0;s<e.size;s++)o[l-e.size+s]+=r[s];for(let s=0;s<a.size;s++)o[l-a.size+s]-=i[s];let c=0;for(;c<o.length-1&&o[c]===0;)c++;return A(o.slice(c))}function Z(n,m){const e=D(n),a=e.data;if(typeof m=="number"){let o=a[0];for(let c=1;c<e.size;c++)o=o*m+a[c];return o}const r=m instanceof z?m:A(m),i=r.data,l=[];for(let o=0;o<r.size;o++){const c=i[o];let s=a[0];for(let b=1;b<e.size;b++)s=s*c+a[b];l.push(s)}return A(l)}function G(n){const e=[...D(n).data];for(;e.length>1&&e[0]===0;)e.shift();let a=0;for(;e.length>1&&e[e.length-1]===0;)e.pop(),a++;const r=e.length-1;if(r+a===0)return q([],[]);let l=[],o=[];if(r===1)l.push(-e[1]/e[0]),o.push(0);else if(r===2){const f=e[0],u=e[1],p=e[2],t=u*u-4*f*p;if(t>=0){const h=Math.sqrt(t);l.push((-u+h)/(2*f),(-u-h)/(2*f)),o.push(0,0)}else{const h=Math.sqrt(-t);l.push(-u/(2*f),-u/(2*f)),o.push(h/(2*f),-h/(2*f))}}else if(r>=3){const f=k(e,r);for(const u of f)l.push(u.re),o.push(u.im)}for(let f=0;f<a;f++)l.push(0),o.push(0);const c=l.map((f,u)=>u);c.sort((f,u)=>{const p=Math.sqrt(l[f]**2+o[f]**2),t=Math.sqrt(l[u]**2+o[u]**2);return Math.abs(p-t)>1e-10?t-p:Math.abs(l[f]-l[u])>1e-10?l[u]-l[f]:o[u]-o[f]});const s=c.map(f=>l[f]),b=c.map(f=>o[f]);return q(s,b)}function q(n,m){const e=n.length,a=new Float64Array(2*e);for(let i=0;i<e;i++)a[2*i]=n[i],a[2*i+1]=m[i];const r=j.fromData(a,[e],"complex128");return new z(r)}function k(n,m){const e=Array.from({length:m},()=>new Array(m).fill(0)),a=n[0];for(let r=0;r<m;r++)e[0][r]=-n[r+1]/a;for(let r=1;r<m;r++)e[r][r-1]=1;return R(e,m)}function R(n,m){const e=[];let r=m,i=0;const l=100*m;let o=m,c=0;for(;r>0&&i<l;){if(i++,r===o?c++:(c=0,o=r),r===1){e.push({re:n[0][0],im:0}),r=0;break}if(r===2){e.push(...v(n[0][0],n[0][1],n[1][0],n[1][1])),r=0;break}let s=r-1;for(;s>0;){const t=Math.abs(n[s-1][s-1])+Math.abs(n[s][s]),h=222e-18*(t===0?1:t);if(Math.abs(n[s][s-1])<=h){n[s][s-1]=0;break}s--}const b=r-s;if(b===1){e.push({re:n[r-1][r-1],im:0}),r--;continue}if(b===2){e.push(...v(n[r-2][r-2],n[r-2][r-1],n[r-1][r-2],n[r-1][r-1])),r-=2;continue}let f;if(c>0&&c%10===0)f=Math.abs(n[r-1][r-2])+Math.abs(n[r-2][r-3]);else{const t=n[r-2][r-2],h=n[r-2][r-1],y=n[r-1][r-2],C=n[r-1][r-1],d=t+C,g=t*C-h*y,w=d*d-4*g;if(w>=0){const N=Math.sqrt(w),M=(d+N)/2,x=(d-N)/2;f=Math.abs(M-C)<Math.abs(x-C)?M:x}else f=C}for(let t=s;t<r;t++)n[t][t]=n[t][t]-f;const u=[],p=[];for(let t=s;t<r-1;t++){const h=Math.hypot(n[t][t],n[t+1][t]),y=h===0?1:n[t][t]/h,C=h===0?0:n[t+1][t]/h;u.push(y),p.push(C);for(let d=t;d<r;d++){const g=n[t][d],w=n[t+1][d];n[t][d]=y*g+C*w,n[t+1][d]=-C*g+y*w}}for(let t=0;t<u.length;t++){const h=s+t,y=u[t],C=p[t],d=Math.min(h+2,r-1);for(let g=s;g<=d;g++){const w=n[g][h],N=n[g][h+1];n[g][h]=y*w+C*N,n[g][h+1]=-C*w+y*N}}for(let t=s;t<r;t++)n[t][t]=n[t][t]+f}if(r>0)for(let s=0;s<r;s++)e.push({re:n[s][s],im:0});return e}function v(n,m,e,a){const r=n+a,i=n*a-m*e,l=r*r-4*i;if(l>=0){const o=Math.sqrt(l);return[{re:(r+o)/2,im:0},{re:(r-o)/2,im:0}]}else{const o=Math.sqrt(-l);return[{re:r/2,im:o/2},{re:r/2,im:-o/2}]}}export{L as poly,S as polyadd,T as polyder,B as polydiv,F as polyfit,P as polyint,Q as polymul,V as polysub,Z as polyval,G as roots};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import*as a from"../common/ops/reduction";import{toStorage as u,fromStorage as m,Complex as b}from"./types";function A(n,o,e){const r=a.sum(u(n),o,e);return typeof r=="number"||typeof r=="bigint"||r instanceof b?r:m(r)}function D(n,o,e){const r=a.mean(u(n),o,e);return typeof r=="number"||r instanceof b?r:m(r)}function N(n,o,e){const r=a.prod(u(n),o,e);return typeof r=="number"||typeof r=="bigint"||r instanceof b?r:m(r)}function f(n,o,e){const r=a.max(u(n),o,e);return typeof r=="number"||r instanceof b?r:m(r)}const x=f;function p(n,o,e){const r=a.min(u(n),o,e);return typeof r=="number"||r instanceof b?r:m(r)}const d=p;function g(n,o,e){const r=a.ptp(u(n),o,e);return typeof r=="number"||r instanceof b?r:m(r)}function v(n,o){const e=a.argmin(u(n),o);return typeof e=="number"?e:m(e)}function q(n,o){const e=a.argmax(u(n),o);return typeof e=="number"?e:m(e)}function y(n,o,e,r){const t=a.variance(u(n),o,e,r);return typeof t=="number"?t:m(t)}const S=y;function _(n,o,e,r){const t=a.std(u(n),o,e,r);return typeof t=="number"?t:m(t)}function O(n,o,e){const r=a.median(u(n),o,e);return typeof r=="number"?r:m(r)}function h(n,o,e,r){const t=a.percentile(u(n),o,e,r);return typeof t=="number"?t:m(t)}function j(n,o,e,r){const t=a.quantile(u(n),o,e,r);return typeof t=="number"?t:m(t)}function k(n,o,e,r){const t=e?u(e):void 0,i=a.average(u(n),o,t,r);return typeof i=="number"||i instanceof b?i:m(i)}function w(n,o,e){const r=a.all(u(n),o,e);return typeof r=="boolean"?r:m(r)}function z(n,o,e){const r=a.any(u(n),o,e);return typeof r=="boolean"?r:m(r)}function c(n,o){return m(a.cumsum(u(n),o))}const B=c;function s(n,o){return m(a.cumprod(u(n),o))}const E=s;function F(n,o,e){const r=a.nansum(u(n),o,e);return typeof r=="number"||r instanceof b?r:m(r)}function G(n,o,e){const r=a.nanprod(u(n),o,e);return typeof r=="number"||r instanceof b?r:m(r)}function H(n,o,e){const r=a.nanmean(u(n),o,e);return typeof r=="number"||r instanceof b?r:m(r)}function I(n,o,e,r){const t=a.nanvar(u(n),o,e,r);return typeof t=="number"?t:m(t)}function J(n,o,e,r){const t=a.nanstd(u(n),o,e,r);return typeof t=="number"?t:m(t)}function K(n,o,e){const r=a.nanmin(u(n),o,e);return typeof r=="number"||r instanceof b?r:m(r)}function L(n,o,e){const r=a.nanmax(u(n),o,e);return typeof r=="number"||r instanceof b?r:m(r)}function M(n,o){const e=a.nanargmin(u(n),o);return typeof e=="number"?e:m(e)}function P(n,o){const e=a.nanargmax(u(n),o);return typeof e=="number"?e:m(e)}function Q(n,o){return m(a.nancumsum(u(n),o))}function R(n,o){return m(a.nancumprod(u(n),o))}function T(n,o,e){const r=a.nanmedian(u(n),o,e);return typeof r=="number"?r:m(r)}function U(n,o,e,r){const t=a.nanquantile(u(n),o,e,r);return typeof t=="number"?t:m(t)}function V(n,o,e,r){const t=a.nanpercentile(u(n),o,e,r);return typeof t=="number"?t:m(t)}export{w as all,x as amax,d as amin,z as any,q as argmax,v as argmin,k as average,s as cumprod,c as cumsum,E as cumulative_prod,B as cumulative_sum,f as max,D as mean,O as median,p as min,P as nanargmax,M as nanargmin,R as nancumprod,Q as nancumsum,L as nanmax,H as nanmean,T as nanmedian,K as nanmin,V as nanpercentile,G as nanprod,U as nanquantile,J as nanstd,F as nansum,I as nanvar,h as percentile,N as prod,g as ptp,j as quantile,_ as std,A as sum,S as var_,y as variance};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import*as o from"../common/ops/rounding";import{toStorage as e,fromStorage as n}from"./types";function u(r,t=0){return n(o.around(e(r),t))}const y=u;function A(r,t=0){return n(o.round(e(r),t))}function C(r){return n(o.ceil(e(r)))}function D(r){return n(o.fix(e(r)))}function N(r){return n(o.floor(e(r)))}function f(r){return n(o.rint(e(r)))}function c(r){return n(o.trunc(e(r)))}export{u as around,C as ceil,D as fix,N as floor,f as rint,A as round,y as round_,c as trunc};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import*as i from"../common/ops/sets";import{toStorage as o,fromStorage as n}from"./types";function A(e,r=!1,s=!1,t=!1){const u=i.unique(o(e),r,s,t);return"values"in u?{values:n(u.values),indices:u.indices?n(u.indices):void 0,inverse:u.inverse?n(u.inverse):void 0,counts:u.counts?n(u.counts):void 0}:n(u)}function C(e,r){return n(i.in1d(o(e),o(r)))}function D(e,r){return n(i.intersect1d(o(e),o(r)))}function N(e,r){return n(i.isin(o(e),o(r)))}function d(e,r){return n(i.setdiff1d(o(e),o(r)))}function l(e,r){return n(i.setxor1d(o(e),o(r)))}function f(e,r){return n(i.union1d(o(e),o(r)))}function v(e,r){return n(i.trim_zeros(o(e),r))}function _(e){const r=i.unique_all(o(e));return{values:n(r.values),indices:n(r.indices),inverse_indices:n(r.inverse_indices),counts:n(r.counts)}}function p(e){const r=i.unique_counts(o(e));return{values:n(r.values),counts:n(r.counts)}}function x(e){const r=i.unique_inverse(o(e));return{values:n(r.values),inverse_indices:n(r.inverse_indices)}}function q(e){return n(i.unique_values(o(e)))}export{C as in1d,D as intersect1d,N as isin,d as setdiff1d,l as setxor1d,v as trim_zeros,f as union1d,A as unique,_ as unique_all,p as unique_counts,x as unique_inverse,q as unique_values};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{NDArrayCore as z}from"../common/ndarray-core";import{array as C,zeros as I}from"./creation";import{concatenate as T,flatten as S}from"./shape";function F(l,n,a){const b=n instanceof z?n:C(Array.isArray(n)?n:[n]);if(a===void 0){const r=S(l),x=S(b);return T([r,x],0)}return T([l,b],a)}function k(l,n,a){const b=Array.isArray(n)?n:[n],r=[...l.shape],x=l.storage;if(a===void 0){const e=S(l),f=e.storage,o=[],w=new Set(b.map(d=>d<0?e.size+d:d));for(let d=0;d<e.size;d++)w.has(d)||o.push(f.iget(d));return C(o,l.dtype)}const i=a<0?r.length+a:a,p=r[i],A=new Set(b.map(e=>e<0?p+e:e)),D=p-A.size,c=[...r];c[i]=D;const u=I(c,l.dtype),s=u.storage,m=[];let g=1;for(let e=r.length-1;e>=0;e--)m.unshift(g),g*=r[e];const t=[];g=1;for(let e=c.length-1;e>=0;e--)t.unshift(g),g*=c[e];const h=r.reduce((e,f)=>e*f,1);for(let e=0;e<h;e++){const f=[];let o=e;for(let y=0;y<r.length;y++)f.push(Math.floor(o/m[y])),o=o%m[y];if(A.has(f[i]))continue;let w=0;for(const y of A)y<f[i]&&w++;const d=[...f];d[i]-=w;let N=0;for(let y=0;y<c.length;y++)N+=d[y]*t[y];s.iset(N,x.iget(e))}return u}function V(l,n,a,b){const r=Array.isArray(n)?n:[n],x=a instanceof z?a:C(Array.isArray(a)?a:[a]);if(b===void 0){const i=S(l),p=S(x),A=i.data,D=p.data,c=Array.from(A);if(r.length===1){const u=r[0],s=u<0?i.size+u:u,m=Array.from(D);c.splice(s,0,...m)}else{const u=r.map((s,m)=>({idx:s<0?i.size+s:s,valIdx:m})).sort((s,m)=>s.idx-m.idx);for(let s=0;s<u.length;s++){const{idx:m,valIdx:g}=u[s],t=D[g%D.length];c.splice(m+s,0,t)}}return C(c,l.dtype)}throw new Error("insert along axis not fully implemented in standalone")}function B(l,n,a="constant",b=0){const r=[...l.shape],x=r.length;let i;typeof n=="number"?i=Array(x).fill([n,n]):Array.isArray(n)&&typeof n[0]=="number"?i=Array(x).fill(n):i=n;const p=r.map((t,h)=>t+i[h][0]+i[h][1]);if(a!=="constant")throw new Error(`pad mode '${a}' not fully implemented in standalone`);const A=I(p,l.dtype),D=A.storage;if(b!==0)for(let t=0;t<A.size;t++)D.iset(t,b);const c=l.storage,u=[];let s=1;for(let t=r.length-1;t>=0;t--)u.unshift(s),s*=r[t];const m=[];s=1;for(let t=p.length-1;t>=0;t--)m.unshift(s),s*=p[t];const g=r.reduce((t,h)=>t*h,1);for(let t=0;t<g;t++){const h=[];let e=t;for(let o=0;o<r.length;o++)h.push(Math.floor(e/u[o])),e=e%u[o];let f=0;for(let o=0;o<p.length;o++)f+=(h[o]+i[o][0])*m[o];D.iset(f,c.iget(t))}return A}export{F as append,k as delete,k as delete_,V as insert,B as pad};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import*as o from"../common/ops/shape";import{toStorage as t,fromStorage as a,fromStorageView as u,fromStorageArray as A,fromStorageViewArray as y}from"./types";function m(r,e){return a(o.reshape(t(r),e))}function i(r){return a(o.flatten(t(r)))}function c(r){return a(o.ravel(t(r)))}function s(r,e){return u(o.squeeze(t(r),e),r)}function f(r,e){return u(o.expandDims(t(r),e),r)}function l(r,e,n){return u(o.swapaxes(t(r),e,n),r)}function b(r,e,n){return u(o.moveaxis(t(r),e,n),r)}function x(r,e,n=0){return u(o.rollaxis(t(r),e,n),r)}function k(r,e=0){return a(o.concatenate(r.map(n=>t(n)),e))}function d(r,e=0){return a(o.stack(r.map(n=>t(n)),e))}function D(r){return a(o.vstack(r.map(e=>t(e))))}function h(r){return a(o.hstack(r.map(e=>t(e))))}function g(r){return a(o.dstack(r.map(e=>t(e))))}function v(r,e=0){return a(o.concat(r.map(n=>t(n)),e))}function S(r){return a(o.columnStack(r.map(e=>t(e))))}const _=D;function w(r){return a(o.block(r.map(e=>t(e))))}function z(r,e,n=0){return y(o.split(t(r),e,n),r)}function q(r,e,n=0){return y(o.arraySplit(t(r),e,n),r)}function V(r,e){return y(o.vsplit(t(r),e),r)}function O(r,e){return y(o.hsplit(t(r),e),r)}function j(r,e){return y(o.dsplit(t(r),e),r)}function B(r,e=0){return A(o.unstack(t(r),e))}function E(r,e){return a(o.tile(t(r),e))}function F(r,e,n){return a(o.repeat(t(r),e,n))}function p(r,e){return a(o.flip(t(r),e))}function G(r){return p(r,1)}function H(r){return p(r,0)}function I(r,e=1,n=[0,1]){return a(o.rot90(t(r),e,n))}function J(r,e,n){return a(o.roll(t(r),e,n))}function K(r,e){return a(o.resize(t(r),e))}function L(...r){const e=o.atleast1d(r.map(n=>t(n)));return e.length===1?a(e[0]):A(e)}function M(...r){const e=o.atleast2d(r.map(n=>t(n)));return e.length===1?a(e[0]):A(e)}function P(...r){const e=o.atleast3d(r.map(n=>t(n)));return e.length===1?a(e[0]):A(e)}export{q as array_split,L as atleast_1d,M as atleast_2d,P as atleast_3d,w as block,S as column_stack,v as concat,k as concatenate,j as dsplit,g as dstack,f as expand_dims,i as flatten,p as flip,G as fliplr,H as flipud,O as hsplit,h as hstack,b as moveaxis,c as ravel,F as repeat,m as reshape,K as resize,J as roll,x as rollaxis,I as rot90,_ as row_stack,z as split,s as squeeze,d as stack,l as swapaxes,E as tile,B as unstack,V as vsplit,D as vstack};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import*as t from"../common/ops/sorting";import{toStorage as o,fromStorage as a,fromStorageArray as y}from"./types";function D(r,e=-1){return a(t.sort(o(r),e))}function N(r,e=-1){return a(t.argsort(o(r),e))}function i(r){return a(t.lexsort(r.map(e=>o(e))))}function f(r,e,n=-1){return a(t.partition(o(r),e,n))}function p(r,e,n=-1){return a(t.argpartition(o(r),e,n))}function c(r){return a(t.sort_complex(o(r)))}function s(r){return y(t.nonzero(o(r)))}function m(r){return a(t.argwhere(o(r)))}function x(r){return a(t.flatnonzero(o(r)))}function g(r,e,n){const u=t.where(o(r),e?o(e):void 0,n?o(n):void 0);return Array.isArray(u)?y(u):a(u)}function l(r,e,n="left"){return a(t.searchsorted(o(r),o(e),n))}function b(r,e){return a(t.extract(o(r),o(e)))}function h(r,e){const n=t.count_nonzero(o(r),e);return typeof n=="number"?n:a(n)}export{p as argpartition,N as argsort,m as argwhere,h as count_nonzero,b as extract,x as flatnonzero,i as lexsort,s as nonzero,f as partition,l as searchsorted,D as sort,c as sort_complex,g as where};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import*as A from"../common/ops/statistics";import{NDArrayCore as d,toStorage as o,fromStorage as t}from"./types";function g(n,e,r){const a=e?o(e):void 0;return t(A.bincount(o(n),a,r))}function b(n,e,r){return t(A.digitize(o(n),o(e),r))}function f(n,e,r,a,u){const y=e instanceof d?o(e):e,i=u?o(u):void 0,m=A.histogram(o(n),y,r,a,i);return[t(m.hist),t(m.bin_edges)]}function l(n,e,r,a,u,y){let i;if(Array.isArray(r)&&r.length===2){const C=r[0]instanceof d?o(r[0]):r[0],D=r[1]instanceof d?o(r[1]):r[1];i=[C,D]}else i=r;const m=y?o(y):void 0,s=A.histogram2d(o(n),o(e),i,a,u,m);return[t(s.hist),t(s.x_edges),t(s.y_edges)]}function p(n,e,r,a,u){const y=u?o(u):void 0,i=A.histogramdd(o(n),e,r,a,y);return[t(i.hist),i.edges.map(m=>t(m))]}function S(n,e,r){return t(A.correlate(o(n),o(e),r))}function h(n,e,r){return t(A.convolve(o(n),o(e),r))}function x(n,e,r,a,u){return t(A.cov(o(n),e?o(e):void 0,r,a,u))}function v(n,e,r){return t(A.corrcoef(o(n),e?o(e):void 0,r))}function _(n,e,r,a){return t(A.histogram_bin_edges(o(n),e,r,a?o(a):void 0))}function z(n,e,r,a){const u=A.trapezoid(o(n),e?o(e):void 0,r,a);return typeof u=="number"?u:t(u)}export{g as bincount,h as convolve,v as corrcoef,S as correlate,x as cov,b as digitize,f as histogram,l as histogram2d,_ as histogram_bin_edges,p as histogramdd,z as trapezoid};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import*as t from"../common/ops/trig";import*as a from"../common/ops/hyperbolic";import{toStorage as o,fromStorage as e}from"./types";function f(r){return e(t.sin(o(r)))}function x(r){return e(t.cos(o(r)))}function h(r){return e(t.tan(o(r)))}function y(r){return e(t.arcsin(o(r)))}const d=y;function u(r){return e(t.arccos(o(r)))}const g=u;function A(r){return e(t.arctan(o(r)))}const m=A;function C(r,n){const c=typeof n=="number"?n:o(n);return e(t.arctan2(o(r),c))}const b=C;function S(r,n){const c=typeof n=="number"?n:o(n);return e(t.hypot(o(r),c))}function O(r){return e(t.degrees(o(r)))}function l(r){return e(t.radians(o(r)))}function j(r){return e(t.deg2rad(o(r)))}function k(r){return e(t.rad2deg(o(r)))}function q(r){return e(a.sinh(o(r)))}function v(r){return e(a.cosh(o(r)))}function w(r){return e(a.tanh(o(r)))}function D(r){return e(a.arcsinh(o(r)))}const z=D;function N(r){return e(a.arccosh(o(r)))}const B=N;function s(r){return e(a.arctanh(o(r)))}const E=s;export{g as acos,B as acosh,u as arccos,N as arccosh,y as arcsin,D as arcsinh,A as arctan,C as arctan2,s as arctanh,d as asin,z as asinh,m as atan,b as atan2,E as atanh,x as cos,v as cosh,j as deg2rad,O as degrees,S as hypot,k as rad2deg,l as radians,f as sin,q as sinh,h as tan,w as tanh};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{NDArrayCore as m}from"../common/ndarray-core";import{isComplexDType as p,isFloatDType as l,isIntegerDType as a}from"../common/dtype";const y=["int8","int16","int32","int64"],D=["uint8","uint16","uint32","uint64"],d=[...y,...D],T=["float32","float64"],x=["complex64","complex128"],R=[...d,...T,...x],h={bool:0,int8:1,uint8:2,int16:3,uint16:4,int32:5,uint32:6,int64:7,uint64:8,float32:9,float64:10,complex64:11,complex128:12};function C(t,n,e="safe"){const r=t instanceof m?t.dtype:t;if(e==="no"||e==="equiv")return r===n;if(e==="unsafe")return!0;const u=h[r]??-1,o=h[n]??-1;if(e==="safe"){if(a(r)&&l(n)){const c={int8:8,int16:16,int32:32,int64:64,uint8:8,uint16:16,uint32:32,uint64:64,bool:1,float32:0,float64:0,complex64:0,complex128:0},s={float32:24,float64:53,int8:0,int16:0,int32:0,int64:0,uint8:0,uint16:0,uint32:0,uint64:0,bool:0,complex64:24,complex128:53},i=c[r]??64,f=s[n]??0;return i<=f}return!!(a(r)&&p(n)||l(r)&&p(n)||u<=o)}return e==="same_kind"?!!(a(r)&&a(n)||l(r)&&l(n)||p(r)&&p(n)||r==="bool"&&a(n)||r==="bool"&&n==="bool"||l(r)&&p(n)):!1}function B(...t){if(t.length===0)return"float64";let n=!1,e=!1;for(const r of t){const u=r.dtype;p(u)?(n=!0,u==="complex128"&&(e=!0)):l(u)?u==="float64"&&(e=!0):a(u)&&(u==="int64"||u==="uint64"||u==="int32"||u==="uint32")&&(e=!0)}return n?e?"complex128":"complex64":e?"float64":"float32"}function _(...t){if(t.length===0)return"float64";const n=t.map(o=>o instanceof m?o.dtype:o),e=n.some(p),r=n.some(l),u=n.some(a);if(e){const o=n.some(i=>i==="float64"),c=n.some(i=>i==="complex128"),s=n.some(i=>i==="int64"||i==="uint64"||i==="int32"||i==="uint32");return c||o||s?"complex128":"complex64"}if(r){const o=n.some(c=>c==="float64");return u&&(n.some(s=>s==="int32"||s==="uint32"||s==="int64"||s==="uint64")||o)||o?"float64":"float32"}if(u){const o=n.some(f=>y.includes(f)),c=n.some(f=>D.includes(f)),s={bool:8,int8:8,uint8:8,int16:16,uint16:16,int32:32,uint32:32,int64:64,uint64:64,float32:0,float64:0,complex64:0,complex128:0},i=Math.max(...n.map(f=>s[f]??0));return o&&c?i>=32?"int64":i>=16?"int32":"int16":o?i>=64?"int64":i>=32?"int32":i>=16?"int16":"int8":i>=64?"uint64":i>=32?"uint32":i>=16?"uint16":"uint8"}return"bool"}function F(t){return typeof t=="boolean"?"bool":typeof t=="bigint"?t>=0n?t<=255n?"uint8":t<=65535n?"uint16":t<=4294967295n?"uint32":"uint64":t>=-128n&&t<=127n?"int8":t>=-32768n&&t<=32767n?"int16":t>=-2147483648n&&t<=2147483647n?"int32":"int64":Number.isInteger(t)?t>=0?t<=255?"uint8":t<=65535?"uint16":t<=4294967295?"uint32":"int64":t>=-128&&t<=127?"int8":t>=-32768&&t<=32767?"int16":t>=-2147483648&&t<=2147483647?"int32":"int64":"float64"}function S(t,n){const e=t instanceof m?t.dtype:t;if(typeof n=="string")switch(n){case"number":case"numeric":return R.includes(e);case"integer":case"int":return d.includes(e);case"signedinteger":return y.includes(e);case"unsignedinteger":return D.includes(e);case"floating":case"float":return T.includes(e);case"complexfloating":case"complex":return x.includes(e);case"inexact":return T.includes(e)||x.includes(e);default:return e===n}return e===n}function k(t){return t}function A(t,n="GDFgdf",e="d"){const r={b:"int8",B:"uint8",h:"int16",H:"uint16",i:"int32",I:"uint32",l:"int64",L:"uint64",f:"float32",d:"float64",F:"complex64",D:"complex128",g:"float64",G:"complex128"},u={b:0,B:1,h:2,H:3,i:4,I:5,l:6,L:7,f:8,g:9.1,d:9,F:10,G:11.1,D:11};if(t.length===0)return e;const o=[];for(const i of t){const f=r[i];f&&o.push(f)}if(o.length===0)return e;let c=e,s=1/0;for(const i of n){const f=r[i];if(!f)continue;const b=u[i]??1/0;let g=!0;for(const E of o)if(!C(E,f,"safe")){g=!1;break}g&&b<s&&(s=b,c=i)}return c}export{C as can_cast,B as common_type,S as issubdtype,F as min_scalar_type,A as mintypecode,_ as result_type,k as typename};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{NDArrayCore as e}from"../common/ndarray-core";import{ArrayStorage as n}from"../common/storage";import{Complex as y}from"../common/complex";function p(r){return r instanceof e||r&&typeof r=="object"&&"storage"in r&&r.storage instanceof n?r.storage:r}function a(r,o){return e.fromStorage(r,o)}function A(r,o){const t=o.base??o;return e.fromStorage(r,t)}function u(r){return r.map(o=>a(o))}function i(r,o){return r.map(t=>A(t,o))}function S(r){return[a(r[0]),a(r[1])]}export{n as ArrayStorage,y as Complex,e as NDArrayCore,a as fromStorage,u as fromStorageArray,S as fromStorageTuple,A as fromStorageView,i as fromStorageViewArray,p as toStorage};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{NDArrayCore as g}from"../common/ndarray-core";import{Complex as C}from"../common/complex";function E(r){if(r instanceof g)return r.ndim;if(typeof r=="number"||typeof r=="bigint"||typeof r=="boolean")return 0;if(Array.isArray(r)){let t=0,e=r;for(;Array.isArray(e)&&e.length>0;)t++,e=e[0];return t}return 0}function d(r){if(r instanceof g)return r.shape;if(typeof r=="number"||typeof r=="bigint"||typeof r=="boolean")return[];if(Array.isArray(r)){const t=[];let e=r;for(;Array.isArray(e)&&e.length>0;)t.push(e.length),e=e[0];return t}return[]}function D(r){return r instanceof g?r.size:typeof r=="number"||typeof r=="bigint"||typeof r=="boolean"?1:Array.isArray(r)?d(r).reduce((e,o)=>e*o,1):1}function N(r,...t){const e=r.storage,o=r.shape;if(t.length===0){if(r.size!==1)throw new Error("can only convert an array of size 1 to a scalar");return e.isCContiguous?e.data[e.offset]:e.iget(0)}if(t.length===1)return e.isCContiguous?e.data[e.offset+t[0]]:e.iget(t[0]);if(t.length!==o.length)throw new Error("incorrect number of indices for array");return e.get(...t)}function k(r){const t=r.shape,e=r.storage,o=t.length;if(o===0)return e.iget(0);if(e.isCContiguous){let b=function(l,c){const y=t[c],w=s[c];if(c===o-1){const p=new Array(y);for(let m=0;m<y;m++)p[m]=n[i+l+m];return p}const A=new Array(y);for(let p=0;p<y;p++)A[p]=b(l+p*w,c+1);return A};var u=b;const n=e.data,i=e.offset;if(o===1){const l=t[0],c=new Array(l);for(let y=0;y<l;y++)c[y]=n[i+y];return c}const s=new Array(o);let a=1;for(let l=o-1;l>=0;l--)s[l]=a,a*=t[l];return b(0,0)}if(o===1){const n=[];for(let i=0;i<t[0];i++)n.push(e.iget(i));return n}function f(n,i){if(i===o)return e.get(...n);const s=[];for(let a=0;a<t[i];a++)n[i]=a,s.push(f(n,i+1));return s}return f(new Array(o),0)}function z(r,t="C"){const e=r.storage;t==="F"&&console.warn('tobytes with order="F" not fully implemented, returning C-order');const o=e.data,f=o.BYTES_PER_ELEMENT;if(e.isCContiguous){const i=o.byteOffset+e.offset*f,s=r.size*f;return new Uint8Array(o.buffer,i,s)}const n=r.copy().data;return new Uint8Array(n.buffer,n.byteOffset,r.size*f)}function T(r,t=!1){const o=r.data.BYTES_PER_ELEMENT;if(o===1)return t?r:r.copy();const f=t?r:r.copy(),u=f.data,n=new Uint8Array(u.buffer,u.byteOffset,u.byteLength);for(let i=0;i<u.length;i++){const s=i*o;for(let a=0;a<o/2;a++){const b=n[s+a];n[s+a]=n[s+o-1-a],n[s+o-1-a]=b}}return f}function _(r,t){if(!t||t===r.dtype)return r.copy();throw new Error("view with different dtype not fully implemented")}function U(r,t,e="",o=""){throw new Error("tofile requires Node.js file system access. Use serializeNpy for portable serialization.")}function B(r,t){const e=r.storage,o=r.dtype,f=r.size;if(t instanceof C){if(!(o==="complex64"||o==="complex128"))throw new Error("Cannot fill non-complex array with complex value");if(e.isCContiguous){const n=e.data,i=e.offset;for(let s=0;s<f;s++)n[(i+s)*2]=t.re,n[(i+s)*2+1]=t.im}else for(let n=0;n<f;n++)e.iset(n,t)}else if(typeof t=="bigint")if(e.isCContiguous)e.data.fill(t,e.offset,e.offset+f);else for(let u=0;u<f;u++)e.iset(u,t);else{const u=typeof t=="boolean"?t?1:0:t;if(e.isCContiguous)e.data.fill(u,e.offset,e.offset+f);else for(let n=0;n<f;n++)e.iset(n,u)}}export{T as byteswap,B as fill,N as item,E as ndim,d as shape,D as size,z as tobytes,U as tofile,k as tolist,_ as view};
|
package/dist/esm/core.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export*from"./core/index";
|