@stdlib/esm
Version:
ES module distribution for Stdlib, a standard library for JavaScript and Node.js.
3 lines • 1.47 kB
JavaScript
// This file is a part of stdlib. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0
import r from"./../../../utils/define-nonenumerable-read-only-property.js";import e from"./../special/abs.js";var n=e;function t(r,e,t){var f,o,a,i;if(0===(f=r.length))return NaN;if(f!==e.length)return NaN;if(0===t||1===f)return r[0]/e[0];if(n(t)<=1)for(o=r[f-1],a=e[f-1],i=f-2;i>=0;--i)o*=t,a*=t,o+=r[i],a+=e[i];else for(t=1/t,o=r[0],a=e[0],i=1;i<f;++i)o*=t,a*=t,o+=r[i],a+=e[i];return o/a}var f=t;function o(r,e){var n,t,o,a;if(r.length>500)return function(n){return f(r,e,n)};if(n="return function evalrational(x){",n+="var ax,s1,s2;",0===(t=r.length))n+="return NaN;";else if(t!==e.length)n+="return NaN;";else if(1===t)n+="return "+r[0]/e[0]+";";else{for(n+="if(x===0.0){return "+r[0]/e[0]+";}",n+="if(x<0.0){ax=-x;}else{ax=x;}",n+="if(ax<=1.0){",n+="s1 = "+r[0],o=t-1,a=1;a<t;a++)n+="+x*",a<o&&(n+="("),n+=r[a];for(a=0;a<o-1;a++)n+=")";for(n+=";",n+="s2 = "+e[0],o=t-1,a=1;a<t;a++)n+="+x*",a<o&&(n+="("),n+=e[a];for(a=0;a<o-1;a++)n+=")";for(n+=";",n+="}else{",n+="x = 1.0/x;",n+="s1 = "+r[o=t-1],a=o-1;a>=0;a--)n+="+x*",a>0&&(n+="("),n+=r[a];for(a=0;a<o-1;a++)n+=")";for(n+=";",n+="s2 = "+e[o=t-1],a=o-1;a>=0;a--)n+="+x*",a>0&&(n+="("),n+=e[a];for(a=0;a<o-1;a++)n+=")";n+=";",n+="}",n+="return s1/s2;"}return n+="}",n+="//# sourceURL=evalrational.factory.js",new Function(n)()}var a=r,i=t,u=o;a(i,"factory",u);export default i;
//# sourceMappingURL=evalrational.js.map