KnowledgeBase Archive

An Archive of Early Microsoft KnowledgeBase Articles

View on GitHub

Q28249: How to Derive Inverse (ARC) and Hyperbolic Trig Functions

Article: Q28249
Product(s): See article
Version(s): 1.00 1.01 1.02 2.00 2.01 3.00 4.00 4.00b 4.50
Operating System(s): MS-DOS
Keyword(s): ENDUSER | B_BasicCom B_GWBasicI B_BasicInt B_MQuickB B_BBasic | mspl13_basic
Last Modified: 10-JAN-1991

From the BASIC functions LOG, COS, SIN, TAN, SGN, EXP, and SQR, you
can derive the other transcendental functions as shown below.

The following trigonometric and mathematical functions that are not
intrinsic to BASIC can be calculated as shown:

Function                  BASIC Equivalent
--------                  ----------------

Secant                    SEC(X) = 1/COS(X)
Cosecant                  CSC(X) = 1/SIN(X)
Cotangent                 COT(X) = 1/TAN(X)
Inverse Sine              ARCSIN(X) = ATN(X/SQR(1-X*X))
Inverse Cosine            ARCCOS(X) = -ATN(X/SQR(X*X-1)) + Pi/2
Inverse Secant            ARCSEC(X) = ATN(X/SQR(X*X-1)) + (SGN(X)-1) * Pi/2
Inverse Cosecant          ARCCSC(X) = ATN(1/SQR(X*X-1)) + (SGN(X)-1) * Pi/2
Inverse Cotangent         ARCCOT(X) = -ATN(X) + Pi/2
Hyperbolic Sine           SINH(X) = (EXP(X) - EXP(-X))/2
Hyperbolic Cosine         CACHE(X) = (EXP(X) + EXP(-X))/2
Hyperbolic Tangent        TANH(X) = (EXP(X) - EXP(-X))/(EXP(X) + EXP(-X))
Hyperbolic Secant         SECH(X) = 2/(EXP(X) + EXP(-X))
Hyperbolic Cosecant       CSCH(X) = 2/(EXP(X) - EXP(-X))
Hyperbolic Cotangent      COTH(X) = EXP(-X)/(EXP(X) - EXP(-X)) * 2 + 1
Inverse Hyperbolic Sine   ARCSINH(X) = LOG(X + SQR(X*X+1))
Inverse Hyperbolic Cos    ARCCOSH(X) = LOG(X + SQR(X*X-1))
Inverse Hyperbolic Tan    ARCCTANH(X) = LOG((1 + X)/(1 - X)) / 2
Inverse Hyperbolic CSC    ARCCSCH(X) = LOG((SGN(X)*SQR(X*X+1)+1)/X)
Inverse Hyperbolic Sec    ARCSECH(X) = LOG((SQR(1-X*X)+1) / X)
Inverse Hyperbolic Cot    ARCCOTH(X) = LOG((X+1)/(X-1)) / 2

The above general formulas may be used in Microsoft BASIC or any other
language. Note that the constant Pi has the following approximate
value:

   Pi# = 3.14159265359
   Pi# = 4.0# * ATN(1.0#)

The above information applies to most Microsoft BASIC products,
including the following:

1. Microsoft QuickBASIC versions 1.00, 1.01, 1.02, 2.00, 2.01,
   3.00, 4.00, 4.00b, and 4.50 for the IBM PC

2. Microsoft BASIC Compiler versions 6.00 and 6.00b for MS-DOS and
   MS OS/2, and Microsoft BASIC Compiler versions 5.35 and 5.36 for
   MS-DOS

3. Microsoft GW-BASIC Interpreter versions 3.20, 3.22, and 3.23

4. Microsoft BASIC Interpreter versions 1.00, 1.01, 2.00, 2.10,
   and 3.00 for the Apple Macintosh

5. Microsoft BASIC Compiler version 1.00 for the Apple Macintosh

6. Microsoft QuickBASIC version 1.00 for the Apple Macintosh

7. Microsoft BASIC Professional Development System (PDS) versions 7.00
   and 7.10 for MS-DOS and MS OS/2

8. Microsoft Business BASIC Compiler versions 1.00 and 1.10 for MS-DOS
   (discontinued product)

9. Microsoft BASIC Interpreter (BASIC86.EXE) version 5.28 for MS-DOS

THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY.

Copyright Microsoft Corporation 1986-2002.