Difference between revisions of "TAN"
m (1 revision) |
m (→Detailed) |
||
(2 intermediate revisions by the same user not shown) | |||
Line 38: | Line 38: | ||
=== Detailed === | === Detailed === | ||
− | [[ | + | [[6502_BBC_BASIC#BASIC_4.2C_HIBASIC_4.2C_1984|BASIC 4]] implements TAN as follows:<br> |
The TAN routine calls &A93A to obtain the Floating-point argument and use continued-fraction expressions to calculate either the Sine or Cosine value (depending on the value of the argument) of the argument. <br> | The TAN routine calls &A93A to obtain the Floating-point argument and use continued-fraction expressions to calculate either the Sine or Cosine value (depending on the value of the argument) of the argument. <br> | ||
Line 57: | Line 57: | ||
Exit with A = #&FF (as the result is Floating-point and is located in the FWA). | Exit with A = #&FF (as the result is Floating-point and is located in the FWA). | ||
− | |||
− | |||
=== Example 1: TAN(90) === | === Example 1: TAN(90) === |
Latest revision as of 21:37, 8 March 2015
TAN is a BASIC function which returns the Tangent of the angle (passed as a parameter).
Availability | Present in all original versions of BBC BASIC. | |
Syntax | BASIC I-V | <num-var> = TAN( <numeric>)
|
Token (hex) | BASIC I-V | B7 (function)
|
Description | BASIC I-V | Returns the Tangent of the angle (passed as a parameter) |
Associated keywords | SIN , COS , ATN , ASN , ACS
|
Contents
Description
TAN
accepts a single parameter (the angle), and returns the Tangent of that angle.
Internal Operation
Overview
TAN(x)
To obtain the Tangent value the SIN(x) result is divided by the COS(x) result:
- TAN(x) = SIN(x) / COS(x)
Detailed
BASIC 4 implements TAN as follows:
The TAN routine calls &A93A to obtain the Floating-point argument and use continued-fraction expressions to calculate either the Sine or Cosine value (depending on the value of the argument) of the argument.
This FWA result is stored in temporary Floating-point location &047B-&047F.
Call &A917 (SIN) to calculate the Sine value from the FWA result.
Store the Sine result in the temporary Floating-point location &0476-&047A.
Set the FWA back to the &A93A result (from the Temporary Floating-point variable at &047B-&047F).
Call &A915 (COS) to calculate the Cosine value from the &A93A result.
Note: Storing the &A93A value avoids the need to calculate it again!
Set the argument pointer to point to &0476 (the Sine result).
Call &A5EE to divide argp by the FWA [FWA = argp / FWA], where argp points to the Sine result and the FWA contains the Cosine result.
Dividing the Sine result by the Cosine result gives the Tangent value.
Exit with A = #&FF (as the result is Floating-point and is located in the FWA).
Example 1: TAN(90)
- Divide the SIN(90) result by the COS(90) result
- FWA = 0.8939945 / -0.4480777 --> -1.9951774 (= the TAN result)
Example 2: TAN(2.41)
- Divide the SIN(2.41) result by the COS(2.41) result
- FWA = 0.6680554 / -0.7441115 --> -0.8977893 (= the TAN result)
Example 3: TAN(1.5)
- Divide the SIN(1.5) result by the COS(1.5) result
- FWA = 0.9974949 / 0.0707372 --> 14.1014191 (= the TAN result)
Example 4: TAN(5.63)
- Divide the SIN(5.63) result by the COS(5.63) result
- FWA = -0.6078147 / 0.7940788 --> -0.7654337 (= the TAN result)
Example 5: TAN(0)
- Divide the SIN(0) result by the COS(0) result
- FWA = 0 / 1 --> 0 (= the TAN result)
Example 6: TAN(-0.75)
- Divide the SIN(-0.75) result by the COS(-0.75) result
- FWA = -0.6816387 / 0.7316889 --> -0.9315963 (= the TAN result)
Example 7: TAN(0.25)
- Divide the SIN(0.25) result by the COS(0.25) result
- FWA = 0.2474039 / 0.9689124 --> 0.2553418 (= the TAN result)
Kranser 23:11, 2 October 2007 (BST)