Socket
Socket
Sign inDemoInstall

@thi.ng/math

Package Overview
Dependencies
Maintainers
1
Versions
160
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@thi.ng/math - npm Package Compare versions

Comparing version 3.3.0 to 3.4.0

16

CHANGELOG.md

@@ -6,2 +6,18 @@ # Change Log

# [3.4.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/math@3.3.0...@thi.ng/math@3.4.0) (2021-04-03)
### Bug Fixes
* **math:** fix sigmoid01() signature ([378cb17](https://github.com/thi-ng/umbrella/commit/378cb17d4ad2ef2f301039e067af251c867d7da8))
### Features
* **math:** add lanczos(), fix/update/add sinc ([e661b7a](https://github.com/thi-ng/umbrella/commit/e661b7a8e8ce49e4d34ae572818d6b0e8e7a292d))
# [3.3.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/math@3.2.5...@thi.ng/math@3.3.0) (2021-03-17)

@@ -8,0 +24,0 @@

9

lib/index.js

@@ -352,6 +352,5 @@ 'use strict';

};
const sinc = (k, t) => {
t = PI * (k * t - 1.0);
return Math.sin(t) / t;
};
const sinc = (t) => (t !== 0 ? Math.sin(t) / t : 1);
const sincNormalized = (k, t) => sinc(PI * k * t);
const lanczos = (a, t) => t !== 0 ? (-a < t && t < a ? sinc(PI * t) * sinc((PI * t) / a) : 0) : 1;
const sigmoid = (bias, k, t) => t != bias ? 1 / (1 + Math.exp(-k * (t - bias))) : 0.5;

@@ -543,2 +542,3 @@ const sigmoid01 = (k, t) => sigmoid(0.5, k, t);

exports.isMinima = isMinima;
exports.lanczos = lanczos;
exports.lens = lens;

@@ -616,2 +616,3 @@ exports.loc = loc;

exports.sinc = sinc;
exports.sincNormalized = sincNormalized;
exports.sincos = sincos;

@@ -618,0 +619,0 @@ exports.smax = smax;

@@ -1,1 +0,1 @@

!function(t,a){"object"==typeof exports&&"undefined"!=typeof module?a(exports):"function"==typeof define&&define.amd?define(["exports"],a):a(((t="undefined"!=typeof globalThis?globalThis:t||self).thi=t.thi||{},t.thi.ng=t.thi.ng||{},t.thi.ng.math={}))}(this,(function(t){"use strict";const a=Math.PI,i=2*a,n=a/2,s=a/3,e=a/4,r=a/6,o=1/a,u=1/i,h=1/n,c=a/180,M=180/a,l=(1+Math.sqrt(5))/2,d=Math.SQRT2,f=Math.sqrt(3),m=d/2,b=f/2;let p=1e-6;const x=t=>(t%=i)<0?i+t:t,g=t=>(t=Math.abs(t))>a?i-t:t,I=t=>{const a=t*t;return.99940307+a*(.03679168*a-.49558072)},T=t=>{switch((t%=i)<0&&(t=-t),t*h|0){case 0:return I(t);case 1:return-I(a-t);case 2:return-I(t-a);default:return I(i-t)}},v=Math.abs,R=Math.max,q=(t,a,i=p)=>v(t-a)<=i,D=q,P=(t,a,i,n)=>t<i&&a>n,S=(t,a,i,n)=>t>i&&a<n,_=(t,a,i)=>t>a&&a<i,C=(t,a,i)=>t<a&&a>i,w=(t,a,i=0,n=a.length)=>{n--;for(let s=i+1;s<n;s++)if(t(a[s-1],a[s],a[s+1]))return s;return-1},H=(t,a=0,i=t.length)=>w(_,t,a,i);function*A(t,a,i=0,n=a.length){for(;i<n;){const s=t(a,i,n);if(s<0)return;yield s,i=s+1}}const y=t=>t<0?0:t>1?1:t,E=t=>t<-1?-1:t>1?1:t,Q=(t,a)=>0!==t?0!==a?Math.min(t,a):t:a,F=(t,a,i)=>N(t,a,-i),N=(t,a,i)=>{const n=Math.exp(t*i),s=Math.exp(a*i);return(t*n+a*s)/(n+s)},O=(t,a,i)=>i!==a?(t-a)/(i-a):0,U=255,L=65535,V=t=>128&(t&=U)?t|~U:t,j=t=>32768&(t&=L)?t|~L:t,k=(t,a,i,n=16,s=8,e=0,r=1,o=p)=>{if(s<=0)return(e+r)/2;const u=(r-e)/n;let h=e,c=1/0;for(let s=0;s<=n;s++){const n=e+s*u,r=a(i,t(n));if(r<c){if(r<=o)return n;c=r,h=n}}return k(t,a,i,n,s-1,Math.max(h-u,0),Math.min(h+u,1))},B=(t,a,i)=>t+(a-t)*i,G=(t,a,i,n,s)=>{const e=s*s;return s*e*(-.5*t+1.5*a-1.5*i+(n*=.5))+e*(t-2.5*a+2*i-n)+s*(-.5*t+.5*i)+a},X=t=>(t=1-t,Math.sqrt(1-t*t)),Z=t=>1-X(1-t),W=(t,a,i)=>i!=t?1/(1+Math.exp(-a*(i-t))):.5,z=t=>t-Math.floor(t),J=(t,a)=>0!==a?t/a:0;t.DEG2RAD=c,t.EPS=p,t.HALF_PI=n,t.INV_HALF_PI=h,t.INV_PI=o,t.INV_TAU=u,t.PHI=l,t.PI=a,t.QUARTER_PI=e,t.RAD2DEG=M,t.SIXTH=1/6,t.SIXTH_PI=r,t.SQRT2=d,t.SQRT2_2=m,t.SQRT2_3=b,t.SQRT3=f,t.TAU=i,t.THIRD=1/3,t.THIRD_PI=s,t.TWO_THIRD=2/3,t.absDiff=(t,a)=>Math.abs(t-a),t.absInnerAngle=g,t.absMax=(t,a)=>Math.abs(t)>Math.abs(a)?t:a,t.absMin=(t,a)=>Math.abs(t)<Math.abs(a)?t:a,t.absTheta=x,t.addi16=(t,a)=>j((0|t)+(0|a)),t.addi32=(t,a)=>(0|t)+(0|a)|0,t.addi8=(t,a)=>V((0|t)+(0|a)),t.addu16=(t,a)=>(t&L)+(a&L)&L,t.addu32=(t,a)=>(t>>>0)+(a>>>0)>>>0,t.addu8=(t,a)=>(t&U)+(a&U)&U,t.andi16=(t,a)=>j((0|t)&(0|a)),t.andi32=(t,a)=>(0|t)&(0|a),t.andi8=(t,a)=>V((0|t)&(0|a)),t.andu16=(t,a)=>t&L&a&L&L,t.andu32=(t,a)=>(t>>>0&a>>>0)>>>0,t.andu8=(t,a)=>t&U&a&U&U,t.angleDist=(t,a)=>g(x(a%i-t%i)),t.atan2Abs=(t,a)=>x(Math.atan2(t,a)),t.bounce=(t,a,i)=>{const s=i*t;return 1-a*Math.sin(s)/s*Math.cos(i*n)},t.ceilTo=(t,a=1)=>Math.ceil(t/a)*a,t.circular=X,t.clamp=(t,a,i)=>t<a?a:t>i?i:t,t.clamp0=t=>t>0?t:0,t.clamp01=y,t.clamp05=t=>t<0?0:t>.5?.5:t,t.clamp11=E,t.classifyCrossing=(t,a,i,n,s=p)=>q(t,i,s)&&q(a,n,s)?q(t,n,s)?"flat":"equal":P(t,a,i,n)?"over":S(t,a,i,n)?"under":"other",t.cosine=t=>1-(.5*Math.cos(t*a)+.5),t.cossin=(t,a=1)=>[Math.cos(t)*a,Math.sin(t)*a],t.cot=t=>1/Math.tan(t),t.csc=t=>1/Math.sin(t),t.cubicPulse=(t,a,i)=>(i=Math.abs(i-a))>t?0:1-(i/=t)*i*(3-2*i),t.decimated=(t,a)=>Math.floor(a*t)/t,t.deg=t=>t*M,t.derivative=(t,a=p)=>i=>(t(i+a)-t(i))/a,t.divi16=(t,a)=>j((0|t)/(0|a)),t.divi32=(t,a)=>(0|t)/(0|a)|0,t.divi8=(t,a)=>V((0|t)/(0|a)),t.divu16=(t,a)=>(t&L)/(a&L)&L,t.divu32=(t,a)=>(t>>>0)/(a>>>0)>>>0,t.divu8=(t,a)=>(t&U)/(a&U)&U,t.ease=(t,a)=>Math.pow(a,t),t.eqDelta=q,t.eqDeltaFixed=D,t.eqDeltaScaled=(t,a,i=p)=>v(t-a)<=i*R(1,v(t),v(a)),t.expFactor=(t,a,i)=>(a/t)**(1/i),t.expStep=(t,a,i)=>1-Math.exp(-t*Math.pow(i,a)),t.fastCos=T,t.fastSin=t=>T(n-t),t.fit=(t,a,i,n,s)=>n+(s-n)*O(t,a,i),t.fit01=(t,a,i)=>a+(i-a)*y(t),t.fit10=(t,a,i)=>i+(a-i)*y(t),t.fit11=(t,a,i)=>a+(i-a)*(.5+.5*E(t)),t.fitClamped=(t,a,i,n,s)=>n+(s-n)*y(O(t,a,i)),t.floorTo=(t,a=1)=>Math.floor(t/a)*a,t.fmod=(t,a)=>t-a*Math.floor(t/a),t.foldback=(t,a)=>a<-t||a>t?Math.abs(Math.abs((a-t)%(4*t))-2*t)-t:a,t.fract=z,t.gain=(t,a)=>a<.5?.5*Math.pow(2*a,t):1-.5*Math.pow(2-2*a,t),t.gaussian=(t,a,i)=>Math.exp(-((i-t)**2)/(2*a*a)),t.impulse=(t,a)=>{const i=t*a;return i*Math.exp(1-i)},t.inOpenRange=(t,a,i)=>t>a&&t<i,t.inRange=(t,a,i)=>t>=a&&t<=i,t.invCircular=Z,t.isCrossOver=P,t.isCrossUnder=S,t.isMaxima=C,t.isMinima=_,t.lens=(t,a,i)=>{const n=a>0?Z:X,s=1-t,e=i<=t?n(i/t)*t:1-n((1-i)/s)*s;return B(i,e,Math.abs(a))},t.loc=(t,a,i)=>Math.sqrt(t*t+a*a-2*t*a*Math.cos(i)),t.lshifti16=(t,a)=>j((0|t)<<(0|a)),t.lshifti32=(t,a)=>(0|t)<<(0|a),t.lshifti8=(t,a)=>V((0|t)<<(0|a)),t.lshiftu16=(t,a)=>(t&L)<<(a&L)&L,t.lshiftu32=(t,a)=>t>>>0<<(a>>>0)>>>0,t.lshiftu8=(t,a)=>(t&U)<<(a&U)&U,t.max2id=(t,a)=>t>=a?0:1,t.max3id=(t,a,i)=>t>=a?t>=i?0:2:a>=i?1:2,t.max4id=(t,a,i,n)=>t>=a?t>=i?t>=n?0:3:i>=n?2:3:a>=i?a>=n?1:3:i>=n?2:3,t.maximaIndex=(t,a=0,i=t.length)=>w(C,t,a,i),t.maximaIndices=(t,a=0,i=t.length)=>A(H,t,a,i),t.min2id=(t,a)=>t<=a?0:1,t.min3id=(t,a,i)=>t<=a?t<=i?0:2:a<=i?1:2,t.min4id=(t,a,i,n)=>t<=a?t<=i?t<=n?0:3:i<=n?2:3:a<=i?a<=n?1:3:i<=n?2:3,t.minError=k,t.minNonZero2=Q,t.minNonZero3=(t,a,i)=>Q(Q(t,a),i),t.minimaIndex=H,t.minimaIndices=(t,a=0,i=t.length)=>A(H,t,a,i),t.mix=B,t.mixBicubic=(t,a,i,n,s,e,r,o,u,h,c,M,l,d,f,m,b,p)=>G(G(t,a,i,n,b),G(s,e,r,o,b),G(u,h,c,M,b),G(l,d,f,m,b),p),t.mixBilinear=(t,a,i,n,s,e)=>{const r=1-s,o=1-e;return t*r*o+a*s*o+i*r*e+n*s*e},t.mixCubic=(t,a,i,n,s)=>{const e=s*s,r=1-s,o=r*r;return t*o*r+3*a*o*s+3*i*e*r+n*e*s},t.mixCubicHermite=(t,a,i,n,s)=>{const e=s-1,r=s*s,o=e*e;return(1+2*s)*o*t+s*o*a+r*(3-2*s)*i+r*e*n},t.mixCubicHermiteFromPoints=G,t.mixHermite=(t,a,i,n,s)=>{const e=.5*(i-t),r=1.5*(a-i)+.5*(n-t);return((r*s+t-a+e-r)*s+e)*s+a},t.mixQuadratic=(t,a,i,n)=>{const s=1-n;return t*s*s+2*a*s*n+i*n*n},t.muli16=(t,a)=>j((0|t)*(0|a)),t.muli32=(t,a)=>(0|t)*(0|a)|0,t.muli8=(t,a)=>V((0|t)*(0|a)),t.mulu16=(t,a)=>(t&L)*(a&L)&L,t.mulu32=(t,a)=>(t>>>0)*(a>>>0)>>>0,t.mulu8=(t,a)=>(t&U)*(a&U)&U,t.norm=O,t.normCos=t=>{const a=t*t;return 1+a*(2*a-4)},t.noti16=t=>j(~t),t.noti32=t=>~t,t.noti8=t=>V(~t),t.notu16=t=>~t&L,t.notu32=t=>~t>>>0,t.notu8=t=>~t&U,t.ori16=(t,a)=>j(0|t|a),t.ori32=(t,a)=>0|t|a,t.ori8=(t,a)=>V(0|t|a),t.oru16=(t,a)=>(t&L|a&L)&L,t.oru32=(t,a)=>(t>>>0|a>>>0)>>>0,t.oru8=(t,a)=>(t&U|a&U)&U,t.parabola=(t,a)=>Math.pow(4*a*(1-a),t),t.quadrant=t=>x(t)*h|0,t.rad=t=>t*c,t.roundEps=(t,a=p)=>{const i=z(t);return i<=a||i>=1-a?Math.round(t):t},t.roundTo=(t,a=1)=>Math.round(t/a)*a,t.rshifti16=(t,a)=>j((0|t)>>(0|a)),t.rshifti32=(t,a)=>(0|t)>>(0|a),t.rshifti8=(t,a)=>V((0|t)>>(0|a)),t.rshiftu16=(t,a)=>(t&L)>>>(a&L)&L,t.rshiftu32=(t,a)=>t>>>0>>>(a>>>0)>>>0,t.rshiftu8=(t,a)=>(t&U)>>>(a&U)&U,t.safeDiv=J,t.schlick=(t,a,i)=>i<=a?a*i/(i+t*(a-i)+p):(1-a)*(i-1)/(1-i-t*(a-i)+p)+1,t.sclamp=(t,a,i,n)=>F(N(t,a,n),i,n),t.sec=t=>1/Math.cos(t),t.sigmoid=W,t.sigmoid01=(t,a)=>W(.5,t,a),t.sigmoid11=(t,a)=>W(0,t,a),t.sign=(t,a=p)=>t>a?1:t<-a?-1:0,t.signExtend16=j,t.signExtend8=V,t.simplifyRatio=(t,a)=>{let i=Math.abs(t),n=Math.abs(a);for(;;){if(i<n){const t=i;i=n,n=t}const s=i%n;if(!s)return[t/n,a/n];i=s}},t.sinc=(t,i)=>(i=a*(t*i-1),Math.sin(i)/i),t.sincos=(t,a=1)=>[Math.sin(t)*a,Math.cos(t)*a],t.smax=N,t.smin=F,t.smoothStep=(t,a,i)=>(3-2*(i=y((i-t)/(a-t))))*i*i,t.smootherStep=(t,a,i)=>(i=y((i-t)/(a-t)))*i*i*(i*(6*i-15)+10),t.solveCubic=(t,a,i,n,s=1e-9)=>{const e=t*t,r=a*a,o=a/(3*t),u=(3*t*i-r)/(3*e),h=(2*r*a-9*t*a*i+27*e*n)/(27*e*t);if(Math.abs(u)<s)return[Math.cbrt(-h)-o];if(Math.abs(h)<s)return u<0?[-Math.sqrt(-u)-o,-o,Math.sqrt(-u)-o]:[-o];{const t=h*h/4+u*u*u/27;if(Math.abs(t)<s)return[-1.5*h/u-o,3*h/u-o];if(t>0){const a=Math.cbrt(-h/2-Math.sqrt(t));return[a-u/(3*a)-o]}{const t=2*Math.sqrt(-u/3),a=Math.acos(3*h/u/t)/3,i=2*Math.PI/3;return[t*Math.cos(a)-o,t*Math.cos(a-i)-o,t*Math.cos(a-2*i)-o]}}},t.solveLinear=(t,a)=>J(-a,t),t.solveQuadratic=(t,a,i,n=1e-9)=>{const s=2*t;let e=a*a-4*t*i;return e<0?[]:e<n?[-a/s]:(e=Math.sqrt(e),[(-a-e)/s,(-a+e)/s])},t.step=(t,a)=>a<t?0:1,t.subi16=(t,a)=>j((0|t)-(0|a)),t.subi32=(t,a)=>(0|t)-(0|a)|0,t.subi8=(t,a)=>V((0|t)-(0|a)),t.subu16=(t,a)=>(t&L)-(a&L)&L,t.subu32=(t,a)=>(t>>>0)-(a>>>0)>>>0,t.subu8=(t,a)=>(t&U)-(a&U)&U,t.tangentCardinal=(t,a,i=.5,n=0,s=2)=>i*((a-t)/(s-n)),t.tangentDiff3=(t,a,i,n=0,s=1,e=2)=>.5*((i-a)/(e-s)+(a-t)/(s-n)),t.trunc=t=>t<0?Math.ceil(t):Math.floor(t),t.tween=(t,a,i)=>n=>B(a,i,t(n)),t.wrap=(t,a,i)=>{if(a===i)return a;if(t>i){const n=i-a;(t-=n)>i&&(t-=n*((t-a)/n|0))}else if(t<a){const n=i-a;(t+=n)<a&&(t+=n*((a-t)/n+1|0))}return t},t.wrap01=t=>t<0?t+1:t>1?t-1:t,t.wrap11=t=>t<-1?t+2:t>1?t-2:t,t.wrapOnce=(t,a,i)=>t<a?t-a+i:t>i?t-i+a:t,t.xori16=(t,a)=>j((0|t)^(0|a)),t.xori32=(t,a)=>(0|t)^(0|a),t.xori8=(t,a)=>V((0|t)^(0|a)),t.xoru16=(t,a)=>(t&L^a&L)&L,t.xoru32=(t,a)=>(t>>>0^a>>>0)>>>0,t.xoru8=(t,a)=>(t&U^a&U)&U,Object.defineProperty(t,"__esModule",{value:!0})}));
!function(t,a){"object"==typeof exports&&"undefined"!=typeof module?a(exports):"function"==typeof define&&define.amd?define(["exports"],a):a(((t="undefined"!=typeof globalThis?globalThis:t||self).thi=t.thi||{},t.thi.ng=t.thi.ng||{},t.thi.ng.math={}))}(this,(function(t){"use strict";const a=Math.PI,i=2*a,n=a/2,s=a/3,e=a/4,r=a/6,o=1/a,u=1/i,h=1/n,c=a/180,l=180/a,M=(1+Math.sqrt(5))/2,d=Math.SQRT2,f=Math.sqrt(3),m=d/2,b=f/2;let p=1e-6;const x=t=>(t%=i)<0?i+t:t,g=t=>(t=Math.abs(t))>a?i-t:t,I=t=>{const a=t*t;return.99940307+a*(.03679168*a-.49558072)},T=t=>{switch((t%=i)<0&&(t=-t),t*h|0){case 0:return I(t);case 1:return-I(a-t);case 2:return-I(t-a);default:return I(i-t)}},v=Math.abs,R=Math.max,q=(t,a,i=p)=>v(t-a)<=i,D=q,P=(t,a,i,n)=>t<i&&a>n,S=(t,a,i,n)=>t>i&&a<n,_=(t,a,i)=>t>a&&a<i,C=(t,a,i)=>t<a&&a>i,w=(t,a,i=0,n=a.length)=>{n--;for(let s=i+1;s<n;s++)if(t(a[s-1],a[s],a[s+1]))return s;return-1},H=(t,a=0,i=t.length)=>w(_,t,a,i);function*A(t,a,i=0,n=a.length){for(;i<n;){const s=t(a,i,n);if(s<0)return;yield s,i=s+1}}const y=t=>t<0?0:t>1?1:t,E=t=>t<-1?-1:t>1?1:t,Q=(t,a)=>0!==t?0!==a?Math.min(t,a):t:a,N=(t,a,i)=>F(t,a,-i),F=(t,a,i)=>{const n=Math.exp(t*i),s=Math.exp(a*i);return(t*n+a*s)/(n+s)},O=(t,a,i)=>i!==a?(t-a)/(i-a):0,U=255,L=65535,V=t=>128&(t&=U)?t|~U:t,j=t=>32768&(t&=L)?t|~L:t,k=(t,a,i,n=16,s=8,e=0,r=1,o=p)=>{if(s<=0)return(e+r)/2;const u=(r-e)/n;let h=e,c=1/0;for(let s=0;s<=n;s++){const n=e+s*u,r=a(i,t(n));if(r<c){if(r<=o)return n;c=r,h=n}}return k(t,a,i,n,s-1,Math.max(h-u,0),Math.min(h+u,1))},z=(t,a,i)=>t+(a-t)*i,B=(t,a,i,n,s)=>{const e=s*s;return s*e*(-.5*t+1.5*a-1.5*i+(n*=.5))+e*(t-2.5*a+2*i-n)+s*(-.5*t+.5*i)+a},G=t=>(t=1-t,Math.sqrt(1-t*t)),X=t=>1-G(1-t),Z=t=>0!==t?Math.sin(t)/t:1,W=(t,a,i)=>i!=t?1/(1+Math.exp(-a*(i-t))):.5,J=t=>t-Math.floor(t),K=(t,a)=>0!==a?t/a:0;t.DEG2RAD=c,t.EPS=p,t.HALF_PI=n,t.INV_HALF_PI=h,t.INV_PI=o,t.INV_TAU=u,t.PHI=M,t.PI=a,t.QUARTER_PI=e,t.RAD2DEG=l,t.SIXTH=1/6,t.SIXTH_PI=r,t.SQRT2=d,t.SQRT2_2=m,t.SQRT2_3=b,t.SQRT3=f,t.TAU=i,t.THIRD=1/3,t.THIRD_PI=s,t.TWO_THIRD=2/3,t.absDiff=(t,a)=>Math.abs(t-a),t.absInnerAngle=g,t.absMax=(t,a)=>Math.abs(t)>Math.abs(a)?t:a,t.absMin=(t,a)=>Math.abs(t)<Math.abs(a)?t:a,t.absTheta=x,t.addi16=(t,a)=>j((0|t)+(0|a)),t.addi32=(t,a)=>(0|t)+(0|a)|0,t.addi8=(t,a)=>V((0|t)+(0|a)),t.addu16=(t,a)=>(t&L)+(a&L)&L,t.addu32=(t,a)=>(t>>>0)+(a>>>0)>>>0,t.addu8=(t,a)=>(t&U)+(a&U)&U,t.andi16=(t,a)=>j((0|t)&(0|a)),t.andi32=(t,a)=>(0|t)&(0|a),t.andi8=(t,a)=>V((0|t)&(0|a)),t.andu16=(t,a)=>t&L&a&L&L,t.andu32=(t,a)=>(t>>>0&a>>>0)>>>0,t.andu8=(t,a)=>t&U&a&U&U,t.angleDist=(t,a)=>g(x(a%i-t%i)),t.atan2Abs=(t,a)=>x(Math.atan2(t,a)),t.bounce=(t,a,i)=>{const s=i*t;return 1-a*Math.sin(s)/s*Math.cos(i*n)},t.ceilTo=(t,a=1)=>Math.ceil(t/a)*a,t.circular=G,t.clamp=(t,a,i)=>t<a?a:t>i?i:t,t.clamp0=t=>t>0?t:0,t.clamp01=y,t.clamp05=t=>t<0?0:t>.5?.5:t,t.clamp11=E,t.classifyCrossing=(t,a,i,n,s=p)=>q(t,i,s)&&q(a,n,s)?q(t,n,s)?"flat":"equal":P(t,a,i,n)?"over":S(t,a,i,n)?"under":"other",t.cosine=t=>1-(.5*Math.cos(t*a)+.5),t.cossin=(t,a=1)=>[Math.cos(t)*a,Math.sin(t)*a],t.cot=t=>1/Math.tan(t),t.csc=t=>1/Math.sin(t),t.cubicPulse=(t,a,i)=>(i=Math.abs(i-a))>t?0:1-(i/=t)*i*(3-2*i),t.decimated=(t,a)=>Math.floor(a*t)/t,t.deg=t=>t*l,t.derivative=(t,a=p)=>i=>(t(i+a)-t(i))/a,t.divi16=(t,a)=>j((0|t)/(0|a)),t.divi32=(t,a)=>(0|t)/(0|a)|0,t.divi8=(t,a)=>V((0|t)/(0|a)),t.divu16=(t,a)=>(t&L)/(a&L)&L,t.divu32=(t,a)=>(t>>>0)/(a>>>0)>>>0,t.divu8=(t,a)=>(t&U)/(a&U)&U,t.ease=(t,a)=>Math.pow(a,t),t.eqDelta=q,t.eqDeltaFixed=D,t.eqDeltaScaled=(t,a,i=p)=>v(t-a)<=i*R(1,v(t),v(a)),t.expFactor=(t,a,i)=>(a/t)**(1/i),t.expStep=(t,a,i)=>1-Math.exp(-t*Math.pow(i,a)),t.fastCos=T,t.fastSin=t=>T(n-t),t.fit=(t,a,i,n,s)=>n+(s-n)*O(t,a,i),t.fit01=(t,a,i)=>a+(i-a)*y(t),t.fit10=(t,a,i)=>i+(a-i)*y(t),t.fit11=(t,a,i)=>a+(i-a)*(.5+.5*E(t)),t.fitClamped=(t,a,i,n,s)=>n+(s-n)*y(O(t,a,i)),t.floorTo=(t,a=1)=>Math.floor(t/a)*a,t.fmod=(t,a)=>t-a*Math.floor(t/a),t.foldback=(t,a)=>a<-t||a>t?Math.abs(Math.abs((a-t)%(4*t))-2*t)-t:a,t.fract=J,t.gain=(t,a)=>a<.5?.5*Math.pow(2*a,t):1-.5*Math.pow(2-2*a,t),t.gaussian=(t,a,i)=>Math.exp(-((i-t)**2)/(2*a*a)),t.impulse=(t,a)=>{const i=t*a;return i*Math.exp(1-i)},t.inOpenRange=(t,a,i)=>t>a&&t<i,t.inRange=(t,a,i)=>t>=a&&t<=i,t.invCircular=X,t.isCrossOver=P,t.isCrossUnder=S,t.isMaxima=C,t.isMinima=_,t.lanczos=(t,i)=>0!==i?-t<i&&i<t?Z(a*i)*Z(a*i/t):0:1,t.lens=(t,a,i)=>{const n=a>0?X:G,s=1-t,e=i<=t?n(i/t)*t:1-n((1-i)/s)*s;return z(i,e,Math.abs(a))},t.loc=(t,a,i)=>Math.sqrt(t*t+a*a-2*t*a*Math.cos(i)),t.lshifti16=(t,a)=>j((0|t)<<(0|a)),t.lshifti32=(t,a)=>(0|t)<<(0|a),t.lshifti8=(t,a)=>V((0|t)<<(0|a)),t.lshiftu16=(t,a)=>(t&L)<<(a&L)&L,t.lshiftu32=(t,a)=>t>>>0<<(a>>>0)>>>0,t.lshiftu8=(t,a)=>(t&U)<<(a&U)&U,t.max2id=(t,a)=>t>=a?0:1,t.max3id=(t,a,i)=>t>=a?t>=i?0:2:a>=i?1:2,t.max4id=(t,a,i,n)=>t>=a?t>=i?t>=n?0:3:i>=n?2:3:a>=i?a>=n?1:3:i>=n?2:3,t.maximaIndex=(t,a=0,i=t.length)=>w(C,t,a,i),t.maximaIndices=(t,a=0,i=t.length)=>A(H,t,a,i),t.min2id=(t,a)=>t<=a?0:1,t.min3id=(t,a,i)=>t<=a?t<=i?0:2:a<=i?1:2,t.min4id=(t,a,i,n)=>t<=a?t<=i?t<=n?0:3:i<=n?2:3:a<=i?a<=n?1:3:i<=n?2:3,t.minError=k,t.minNonZero2=Q,t.minNonZero3=(t,a,i)=>Q(Q(t,a),i),t.minimaIndex=H,t.minimaIndices=(t,a=0,i=t.length)=>A(H,t,a,i),t.mix=z,t.mixBicubic=(t,a,i,n,s,e,r,o,u,h,c,l,M,d,f,m,b,p)=>B(B(t,a,i,n,b),B(s,e,r,o,b),B(u,h,c,l,b),B(M,d,f,m,b),p),t.mixBilinear=(t,a,i,n,s,e)=>{const r=1-s,o=1-e;return t*r*o+a*s*o+i*r*e+n*s*e},t.mixCubic=(t,a,i,n,s)=>{const e=s*s,r=1-s,o=r*r;return t*o*r+3*a*o*s+3*i*e*r+n*e*s},t.mixCubicHermite=(t,a,i,n,s)=>{const e=s-1,r=s*s,o=e*e;return(1+2*s)*o*t+s*o*a+r*(3-2*s)*i+r*e*n},t.mixCubicHermiteFromPoints=B,t.mixHermite=(t,a,i,n,s)=>{const e=.5*(i-t),r=1.5*(a-i)+.5*(n-t);return((r*s+t-a+e-r)*s+e)*s+a},t.mixQuadratic=(t,a,i,n)=>{const s=1-n;return t*s*s+2*a*s*n+i*n*n},t.muli16=(t,a)=>j((0|t)*(0|a)),t.muli32=(t,a)=>(0|t)*(0|a)|0,t.muli8=(t,a)=>V((0|t)*(0|a)),t.mulu16=(t,a)=>(t&L)*(a&L)&L,t.mulu32=(t,a)=>(t>>>0)*(a>>>0)>>>0,t.mulu8=(t,a)=>(t&U)*(a&U)&U,t.norm=O,t.normCos=t=>{const a=t*t;return 1+a*(2*a-4)},t.noti16=t=>j(~t),t.noti32=t=>~t,t.noti8=t=>V(~t),t.notu16=t=>~t&L,t.notu32=t=>~t>>>0,t.notu8=t=>~t&U,t.ori16=(t,a)=>j(0|t|a),t.ori32=(t,a)=>0|t|a,t.ori8=(t,a)=>V(0|t|a),t.oru16=(t,a)=>(t&L|a&L)&L,t.oru32=(t,a)=>(t>>>0|a>>>0)>>>0,t.oru8=(t,a)=>(t&U|a&U)&U,t.parabola=(t,a)=>Math.pow(4*a*(1-a),t),t.quadrant=t=>x(t)*h|0,t.rad=t=>t*c,t.roundEps=(t,a=p)=>{const i=J(t);return i<=a||i>=1-a?Math.round(t):t},t.roundTo=(t,a=1)=>Math.round(t/a)*a,t.rshifti16=(t,a)=>j((0|t)>>(0|a)),t.rshifti32=(t,a)=>(0|t)>>(0|a),t.rshifti8=(t,a)=>V((0|t)>>(0|a)),t.rshiftu16=(t,a)=>(t&L)>>>(a&L)&L,t.rshiftu32=(t,a)=>t>>>0>>>(a>>>0)>>>0,t.rshiftu8=(t,a)=>(t&U)>>>(a&U)&U,t.safeDiv=K,t.schlick=(t,a,i)=>i<=a?a*i/(i+t*(a-i)+p):(1-a)*(i-1)/(1-i-t*(a-i)+p)+1,t.sclamp=(t,a,i,n)=>N(F(t,a,n),i,n),t.sec=t=>1/Math.cos(t),t.sigmoid=W,t.sigmoid01=(t,a)=>W(.5,t,a),t.sigmoid11=(t,a)=>W(0,t,a),t.sign=(t,a=p)=>t>a?1:t<-a?-1:0,t.signExtend16=j,t.signExtend8=V,t.simplifyRatio=(t,a)=>{let i=Math.abs(t),n=Math.abs(a);for(;;){if(i<n){const t=i;i=n,n=t}const s=i%n;if(!s)return[t/n,a/n];i=s}},t.sinc=Z,t.sincNormalized=(t,i)=>Z(a*t*i),t.sincos=(t,a=1)=>[Math.sin(t)*a,Math.cos(t)*a],t.smax=F,t.smin=N,t.smoothStep=(t,a,i)=>(3-2*(i=y((i-t)/(a-t))))*i*i,t.smootherStep=(t,a,i)=>(i=y((i-t)/(a-t)))*i*i*(i*(6*i-15)+10),t.solveCubic=(t,a,i,n,s=1e-9)=>{const e=t*t,r=a*a,o=a/(3*t),u=(3*t*i-r)/(3*e),h=(2*r*a-9*t*a*i+27*e*n)/(27*e*t);if(Math.abs(u)<s)return[Math.cbrt(-h)-o];if(Math.abs(h)<s)return u<0?[-Math.sqrt(-u)-o,-o,Math.sqrt(-u)-o]:[-o];{const t=h*h/4+u*u*u/27;if(Math.abs(t)<s)return[-1.5*h/u-o,3*h/u-o];if(t>0){const a=Math.cbrt(-h/2-Math.sqrt(t));return[a-u/(3*a)-o]}{const t=2*Math.sqrt(-u/3),a=Math.acos(3*h/u/t)/3,i=2*Math.PI/3;return[t*Math.cos(a)-o,t*Math.cos(a-i)-o,t*Math.cos(a-2*i)-o]}}},t.solveLinear=(t,a)=>K(-a,t),t.solveQuadratic=(t,a,i,n=1e-9)=>{const s=2*t;let e=a*a-4*t*i;return e<0?[]:e<n?[-a/s]:(e=Math.sqrt(e),[(-a-e)/s,(-a+e)/s])},t.step=(t,a)=>a<t?0:1,t.subi16=(t,a)=>j((0|t)-(0|a)),t.subi32=(t,a)=>(0|t)-(0|a)|0,t.subi8=(t,a)=>V((0|t)-(0|a)),t.subu16=(t,a)=>(t&L)-(a&L)&L,t.subu32=(t,a)=>(t>>>0)-(a>>>0)>>>0,t.subu8=(t,a)=>(t&U)-(a&U)&U,t.tangentCardinal=(t,a,i=.5,n=0,s=2)=>i*((a-t)/(s-n)),t.tangentDiff3=(t,a,i,n=0,s=1,e=2)=>.5*((i-a)/(e-s)+(a-t)/(s-n)),t.trunc=t=>t<0?Math.ceil(t):Math.floor(t),t.tween=(t,a,i)=>n=>z(a,i,t(n)),t.wrap=(t,a,i)=>{if(a===i)return a;if(t>i){const n=i-a;(t-=n)>i&&(t-=n*((t-a)/n|0))}else if(t<a){const n=i-a;(t+=n)<a&&(t+=n*((a-t)/n+1|0))}return t},t.wrap01=t=>t<0?t+1:t>1?t-1:t,t.wrap11=t=>t<-1?t+2:t>1?t-2:t,t.wrapOnce=(t,a,i)=>t<a?t-a+i:t>i?t-i+a:t,t.xori16=(t,a)=>j((0|t)^(0|a)),t.xori32=(t,a)=>(0|t)^(0|a),t.xori8=(t,a)=>V((0|t)^(0|a)),t.xoru16=(t,a)=>(t&L^a&L)&L,t.xoru32=(t,a)=>(t>>>0^a>>>0)>>>0,t.xoru8=(t,a)=>(t&U^a&U)&U,Object.defineProperty(t,"__esModule",{value:!0})}));

@@ -232,4 +232,36 @@ import type { FnN, FnN2, FnN3, FnN4, FnN5, FnN6 } from "@thi.ng/api";

export declare const cubicPulse: FnN3;
export declare const sinc: FnN2;
/**
* Unnormalized Sinc function: sin(x)/x. Returns 1 for t=0.
*
* @remarks
* https://en.wikipedia.org/wiki/Sinc_function
*
* @param k
* @param t
*/
export declare const sinc: FnN;
/**
* Normalized Sinc function, returns sinc(π*k*t).
*
* @remarks
* https://en.wikipedia.org/wiki/Sinc_function
*
* @see {@link sinc}
*
* @param k
* @param t
*/
export declare const sincNormalized: FnN2;
/**
* Lanczos filter. Returns `sinc(πt)sinc(πt/a)` iff `t` in (-a,a) interval, else
* returns 0.
*
* @remarks
* Interactive graph: https://www.desmos.com/calculator/pmypqgefle
*
* @param a
* @param t
*/
export declare const lanczos: FnN2;
/**
* Sigmoid function for inputs arounds center bias.

@@ -252,3 +284,3 @@ *

*/
export declare const sigmoid01: FnN3;
export declare const sigmoid01: FnN2;
/**

@@ -255,0 +287,0 @@ * Sigmoid function for inputs in [-1..+1] interval. Center bias = 0

@@ -282,7 +282,36 @@ import { EPS, HALF_PI, PI } from "./api";

};
export const sinc = (k, t) => {
t = PI * (k * t - 1.0);
return Math.sin(t) / t;
};
/**
* Unnormalized Sinc function: sin(x)/x. Returns 1 for t=0.
*
* @remarks
* https://en.wikipedia.org/wiki/Sinc_function
*
* @param k
* @param t
*/
export const sinc = (t) => (t !== 0 ? Math.sin(t) / t : 1);
/**
* Normalized Sinc function, returns sinc(π*k*t).
*
* @remarks
* https://en.wikipedia.org/wiki/Sinc_function
*
* @see {@link sinc}
*
* @param k
* @param t
*/
export const sincNormalized = (k, t) => sinc(PI * k * t);
/**
* Lanczos filter. Returns `sinc(πt)sinc(πt/a)` iff `t` in (-a,a) interval, else
* returns 0.
*
* @remarks
* Interactive graph: https://www.desmos.com/calculator/pmypqgefle
*
* @param a
* @param t
*/
export const lanczos = (a, t) => t !== 0 ? (-a < t && t < a ? sinc(PI * t) * sinc((PI * t) / a) : 0) : 1;
/**
* Sigmoid function for inputs arounds center bias.

@@ -289,0 +318,0 @@ *

{
"name": "@thi.ng/math",
"version": "3.3.0",
"version": "3.4.0",
"description": "Assorted common math functions & utilities",

@@ -81,3 +81,3 @@ "module": "./index.js",

},
"gitHead": "15f3ea0e15805bc67ca61bf87ce5e8849a7d8e86"
"gitHead": "452a679a1c40e0708ac9007b25a45e209af78e59"
}

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc