FPTAN           Partial tangent                      Exceptions: I P
(operands not checked)
FPTAN C3 C2 C1 C0: ? * * ?

Logic ST ← tan(ST)
push 1.0

FPTAN replaces the contents of ST with tan(ST) and then pushes 1.0
onto the FPU stack (leaving the tangent in ST(1) and 1.0 in ST).
ST, expressed in radians, must be an absolute number that is less
than 2**63 (on the 8087 and 80287, 0 <= ST <= PI/4).

FPTAN pushes 1.0 onto the FPU stack to maintain compatibility with
the 8087 and 80287 math coprocessors, simplifying the calculation of
other trigonometric functions. For example, you can produce the
cotangent (the reciprocal of the tangent) by executing FPTAN, then
FDIVR.


Note
If the operand is outside the acceptable range, C2 is set and ST
remains unchanged.
The 80486 checks for interrupts while executing this instruction. It
will abort FPTAN to service an interrupt.
ST(7) must be empty to avoid an invalid-operation exception.


Opcode Format
D9 F2 FPTAN


Timing
Operand 8087 287 387 486 Pentium
- 30-540 30-540 191-497 200-273 17-173 NP
Additional cycles required if operand > pi/4 (~3.141/4 = ~.785)