diff options
Diffstat (limited to 'apps/plugins')
-rw-r--r-- | apps/plugins/calculator.c | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/apps/plugins/calculator.c b/apps/plugins/calculator.c index 05f9c73ba9..775210d7f3 100644 --- a/apps/plugins/calculator.c +++ b/apps/plugins/calculator.c | |||
@@ -521,7 +521,7 @@ void transcendFunc(char* func, double* tt, int* ttPower) | |||
521 | *ttPower = 0; | 521 | *ttPower = 0; |
522 | calStatus = cal_normal; | 522 | calStatus = cal_normal; |
523 | 523 | ||
524 | if( func[0] =='s' || func[0] =='S') | 524 | if( func[0] =='s' || func[0] =='S'|| func[0] =='t' || func[0] =='T') |
525 | sign = SIGN(t); | 525 | sign = SIGN(t); |
526 | else { | 526 | else { |
527 | /* if( func[0] =='c' || func[0] =='C') */ | 527 | /* if( func[0] =='c' || func[0] =='C') */ |
@@ -544,6 +544,8 @@ void transcendFunc(char* func, double* tt, int* ttPower) | |||
544 | t = M_PI - t; | 544 | t = M_PI - t; |
545 | if (func[0] =='c' || func[0] =='C') | 545 | if (func[0] =='c' || func[0] =='C') |
546 | sign = -1; | 546 | sign = -1; |
547 | else if (func[0] =='t' || func[0] =='T') | ||
548 | t*=-1; | ||
547 | } | 549 | } |
548 | else if ( 3*M_PI_2 <= t && t <= M_TWOPI) | 550 | else if ( 3*M_PI_2 <= t && t <= M_TWOPI) |
549 | t -= M_TWOPI; | 551 | t -= M_TWOPI; |
@@ -561,10 +563,20 @@ void transcendFunc(char* func, double* tt, int* ttPower) | |||
561 | *tt = sign*y; | 563 | *tt = sign*y; |
562 | return; | 564 | return; |
563 | } | 565 | } |
564 | else /* if( func[0] =='c' || func[0] =='C')*/ { | 566 | else if( func[0] =='c' || func[0] =='C') { |
565 | *tt = sign*x; | 567 | *tt = sign*x; |
566 | return; | 568 | return; |
567 | } | 569 | } |
570 | else /*if( func[0] =='t' || func[0] =='T')*/ { | ||
571 | if(t==M_PI_2||t==-M_PI_2){ | ||
572 | calStatus = cal_error; | ||
573 | return; | ||
574 | } | ||
575 | else{ | ||
576 | *tt = sign*(y/x); | ||
577 | return; | ||
578 | } | ||
579 | } | ||
568 | 580 | ||
569 | } | 581 | } |
570 | /* ----------------------------------------------------------------------- | 582 | /* ----------------------------------------------------------------------- |
@@ -658,6 +670,9 @@ void oneOperand(void) | |||
658 | case sci_cos: | 670 | case sci_cos: |
659 | transcendFunc("cos", &result, &power); | 671 | transcendFunc("cos", &result, &power); |
660 | break; | 672 | break; |
673 | case sci_tan: | ||
674 | transcendFunc("tan", &result, &power); | ||
675 | break; | ||
661 | case sci_fac: | 676 | case sci_fac: |
662 | if (power<0 || power>8 || result<0 ) | 677 | if (power<0 || power>8 || result<0 ) |
663 | calStatus = cal_error; | 678 | calStatus = cal_error; |