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.