UNPKG

@stdlib/esm

Version:

ES module distribution for Stdlib, a standard library for JavaScript and Node.js.

3 lines 1.1 kB
// This file is a part of stdlib. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 import r from"./../../assert/is-positive-integer.js";import e from"./../../math/base/assert/is-nan.js";import i from"./../../math/base/assert/is-infinite.js";import a from"./../../math/base/special/frexp.js";import t from"./../../math/base/special/ldexp.js";var f=r.isPrimitive,s=e,n=i,o=a,p=t;function m(r,e,i){return o(r,i),e.frac*=r[0],e.exp+=r[1],e.frac>-.5&&e.frac<.5&&(o(r,e.frac),e.frac=r[0],e.exp+=r[1]),p(e.frac,e.exp)}function c(r){var e,i,a,t,o,p;if(!f(r))throw new TypeError("invalid argument. Must provide a positive integer. Value: `"+r+"`.");return a=new Array(r),p=-1,o=0,e=[0,0],i=1,(t={}).frac=.5,t.exp=1,function(f){var c,l;if(0===arguments.length)return 0===o?null:i;if(p=(p+1)%r,s(f))o=r,i=NaN;else if(o<r)o+=1,i=m(e,t,f);else if(0===a[p]||s(a[p])||n(a[p])){for(o=1,t.frac=.5,t.exp=1,m(e,t,f),c=0;c<r;c++)if(c!==p){if(l=a[c],s(l)){o=r,i=NaN;break}o+=1,i=m(e,t,l)}}else!1===s(i)&&(l=f/a[p],i=m(e,t,l));return a[p]=f,i}}var l=c;export default l; //# sourceMappingURL=mprod.js.map