diff options
Diffstat (limited to 'node_modules/math-expression-evaluator/src/math_function.js')
| -rwxr-xr-x | node_modules/math-expression-evaluator/src/math_function.js | 120 |
1 files changed, 120 insertions, 0 deletions
diff --git a/node_modules/math-expression-evaluator/src/math_function.js b/node_modules/math-expression-evaluator/src/math_function.js new file mode 100755 index 00000000..18d46ed6 --- /dev/null +++ b/node_modules/math-expression-evaluator/src/math_function.js @@ -0,0 +1,120 @@ + var Mexp=function(parsed){
+ this.value=parsed;
+
+ };
+
+ Mexp.math={
+ isDegree:true, //mode of calculator
+ acos:function(x){
+ return (Mexp.math.isDegree?180/Math.PI*Math.acos(x):Math.acos(x));
+ },
+ add:function(a,b){
+ return a+b;
+ },
+ asin:function(x){
+ return (Mexp.math.isDegree?180/Math.PI*Math.asin(x):Math.asin(x));
+ },
+ atan:function(x){
+ return (Mexp.math.isDegree?180/Math.PI*Math.atan(x):Math.atan(x));
+ },
+ acosh:function(x){
+ return Math.log(x+Math.sqrt(x*x-1));
+ },
+ asinh:function(x){
+ return Math.log(x+Math.sqrt(x*x+1));
+ },
+ atanh:function(x){
+ return Math.log((1+x)/(1-x));
+ },
+ C:function(n,r){
+ var pro=1,other=n-r,choice=r;
+ if(choice<other){
+ choice=other;
+ other=r;
+ }
+ for(var i=choice+1;i<=n;i++)
+ pro*=i;
+ return pro/Mexp.math.fact(other);
+ },
+ changeSign:function(x){
+ return -x;
+ },
+ cos:function(x){
+ if(Mexp.math.isDegree)x=Mexp.math.toRadian(x);
+ return Math.cos(x);
+ },
+ cosh:function(x){
+ return (Math.pow(Math.E,x)+Math.pow(Math.E,-1*x))/2;
+ },
+ div:function(a,b){
+ return a/b;
+ },
+ fact:function(n) {
+ if(n%1!==0)return "NAN";
+ var pro=1;
+ for(var i=2;i<=n;i++)
+ pro*=i;
+ return pro;
+ },
+ inverse:function(x){
+ return 1/x;
+ },
+ log:function(i){
+ return Math.log(i)/Math.log(10);
+ },
+ mod:function(a,b){
+ return a%b;
+ },
+ mul:function(a,b){
+ return a*b;
+ },
+ P:function(n,r){var pro=1;
+ for(var i=Math.floor(n)-Math.floor(r)+1;i<=Math.floor(n);i++)
+ pro*=i;
+ return pro;
+
+ },
+ Pi:function(low,high,ex){
+ var pro=1;
+ for(var i=low;i<=high;i++){
+ pro*=Number(ex.postfixEval({n:i}));
+ }
+ return pro;
+ },
+ pow10x:function(e){
+ var x=1;
+ while(e--){x*=10;}
+ return x;
+ },
+ sigma:function(low,high,ex){
+ var sum=0;
+ for(var i=low;i<=high;i++){
+ sum+=Number(ex.postfixEval({n:i}));
+ }
+ return sum;
+ },
+ sin:function(x){
+ if(Mexp.math.isDegree)x=Mexp.math.toRadian(x);
+ return Math.sin(x);
+ },
+ sinh:function(x){
+ return (Math.pow(Math.E,x)-Math.pow(Math.E,-1*x))/2;
+ },
+ sub:function(a,b){
+ return a-b;
+ },
+ tan:function(x){
+ if(Mexp.math.isDegree)x=Mexp.math.toRadian(x);
+ return Math.tan(x);
+ },
+ tanh:function(x){
+ return Mexp.sinha(x)/Mexp.cosha(x);
+ },
+ toRadian:function(x){
+ return x*Math.PI/180;
+ }
+ };
+ Mexp.exception=function(message){
+ this.message=message;
+ };
+ module.exports=Mexp;
\ No newline at end of file |
