Omnimaga

Calculator Community => TI Calculators => Axe => Topic started by: SamTebbs33 on January 16, 2014, 12:43:34 pm

Title: cos(, tan( and sin( return strange values
Post by: SamTebbs33 on January 16, 2014, 12:43:34 pm
When using Disp {sin(90)}>Dec I get 8, why is that? If that is supposed to happen, could anyone guide me to somehow getting the proper value of sin(90)?

Thanks!
Title: Re: cos(, tan( and sin( return strange values
Post by: Xeda112358 on January 16, 2014, 01:13:41 pm
If you have read the documentation, what it means by having the range on [-128,127] is that 64 corresponds to "90" or "pi/2" or whatever other notation you might be used to. Likewise, since Axe only works with integers and fixed point, the output is basically 128*sin(x). Otherwise, it would always return 0 from rounding :P

So, the binary angle 90 corresponds to the degree measure 90*180/128=126.5625, and 128*sin(126.5625) is about 103. Axe returns 105, since it is an approximation (this is still within .01 of the actual, which is good).

You aren't getting 105, though, which might seem weird, but the problem is that you are using {}. In Axe, this means "read the byte at the address given." Basically, you told it to display the number at byte 105 of memory. If you wanted, you could get Calcsys, open the hex editor, press [Alpha][G] (for Goto) and type the address 006A and you will see the byte value is indeed 08.

EDIT: Also, I don't think Axe supports tan()... If you do want that, I would suggest using a fixed point division of sin()/cos(). For example:
Code: [Select]
.TAN
Ans→X
sin(X)/*cos(X)→X
Then do something like 37*128/180:Asm(prgmTAN:Ans and you should get an approximation of 256*tan(37).