123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120 |
- 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;
|