summaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
authorDan Everton <dan@iocaine.org>2007-04-08 11:22:12 +0000
committerDan Everton <dan@iocaine.org>2007-04-08 11:22:12 +0000
commit1322ae02f9ba77bbe6abff872593f051c4e6d1b5 (patch)
tree260c49c69c495152e289bf07014e5a85a3e4146a /apps
parent9e95e306cd6f17bc8f22d71608a21d47064b21eb (diff)
downloadrockbox-1322ae02f9ba77bbe6abff872593f051c4e6d1b5.tar.gz
rockbox-1322ae02f9ba77bbe6abff872593f051c4e6d1b5.zip
FS #6759: Support tan function in calculator plugin. Patch by Luke Blaney.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13070 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps')
-rw-r--r--apps/plugins/calculator.c19
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;