HP OpenVMS Systems Documentation

Content starts here

OpenVMS VAX RTL Mathematics (MTH$) Manual


Previous Contents Index


MTH$CxCOS

The Cosine of a Complex Number routine returns the cosine of a complex number.

Format

MTH$CDCOS complex-cosine ,complex-number

MTH$CGCOS complex-cosine ,complex-number

Each of the above formats accepts one of the floating-point complex types as input.


RETURNS

None.


Arguments

complex-cosine


OpenVMS usage: complex_number
type: D_floating complex, G_floating complex
access: write only
mechanism: by reference

Complex cosine of the complex-number. The complex cosine routines that have D-floating and G-floating complex input values write the address of the complex cosine into the complex-cosine argument. For MTH$CDCOS, the complex-cosine argument specifies a D-floating complex number. For MTH$CGCOS, the complex-cosine argument specifies a G-floating complex number.

complex-number


OpenVMS usage: complex_number
type: D_floating complex, G_floating complex
access: read only
mechanism: by reference

A complex number (r,i) where r and i are floating-point numbers. The complex-number argument is the address of this complex number. For MTH$CDCOS, complex-number specifies a D-floating complex number. For MTH$CGCOS, complex-number specifies a G-floating complex number.

Description

The complex cosine is calculated as follows:
result = (COS(r) * COSH(i), -SIN(r) * SINH(i))

Condition Values Signaled

SS$_ROPRAND Reserved operand. The MTH$CxCOS routine encountered a floating-point reserved operand due to incorrect user input. A floating-point reserved operand is a floating-point datum with a sign bit of 1 and a biased exponent of 0. Floating-point reserved operands are reserved for future use by Compaq.
MTH$_FLOOVEMAT Floating-point overflow in Math Library: the absolute value of i is greater than about 88.029 for F-floating and D-floating values, or greater than 709.089 for G-floating values.

Example


C+
C    This Fortran example forms the complex
C    cosine of a D-floating complex number using
C    MTH$CDCOS and the Fortran random number
C    generator RAN.
C
C    Declare Z and MTH$CDCOS as complex values.
C    MTH$CDCOS will return the cosine value of
C    Z:         Z_NEW = MTH$CDCOS(Z)
C-


        COMPLEX*16 Z,Z_NEW,MTH$CDCOS
        COMPLEX*16 DCMPLX
        INTEGER M
        M = 1234567

C+
C    Generate a random complex number with the
C    Fortran generic DCMPLX.
C-

        Z = DCMPLX(RAN(M),RAN(M))

C+
C    Z is a complex number (r,i) with real part "r" and
C    imaginary part "i".
C-

        TYPE *, ' The complex number z is',z
        TYPE *, ' '

C+
C    Compute the complex cosine value of Z.
C-

        Z_NEW = MTH$CDCOS(Z)
        TYPE *, ' The complex cosine value of',z,' is',Z_NEW
        END


      

This Fortran example program demonstrates the use of MTH$CxCOS, using the MTH$CDCOS entry point. Notice the high precision of the output generated:


The complex number z is (0.8535407185554504,0.2043401598930359)
The complex cosine value of (0.8535407185554504,0.2043401598930359) is
 (0.6710899028500762,-0.1550672019621661)

MTH$CEXP

The Complex Exponential (F-Floating Value) routine returns the complex exponential of a complex number as an F-floating value.

Format

MTH$CEXP complex-number


RETURNS


OpenVMS usage: complex_number
type: F_floating complex
access: write only
mechanism: by value

Complex exponential of the complex input number. MTH$CEXP returns an F-floating complex number.


Argument

complex-number


OpenVMS usage: complex_number
type: F_floating complex
access: read only
mechanism: by reference

Complex number whose complex exponential is to be returned. This complex number has the form (r,i), where r is the real part and i is the imaginary part. The complex-number argument is the address of this complex number. For MTH$CEXP, complex-number specifies an F-floating number.

Description

The complex exponential is computed as follows:
complex-exponent = (EXP(r)*COS(i), EXP(r)*SIN(i))

See MTH$CxEXP for the descriptions of the D- and G-floating point versions of this routine.


Condition Values Signaled

SS$_ROPRAND Reserved operand. The MTH$CEXP routine encountered a floating-point reserved operand due to incorrect user input. A floating-point reserved operand is a floating-point datum with a sign bit of 1 and a biased exponent of 0. Floating-point reserved operands are reserved for future use by Compaq.
MTH$_FLOOVEMAT Floating-point overflow in Math Library: the absolute value of r is greater than about 88.029 for F-floating values.

Example


C+
C    This Fortran example forms the complex exponential
C    of an F-floating complex number using MTH$CEXP
C    and the Fortran random number generator RAN.
C
C    Declare Z and MTH$CEXP as complex values. MTH$CEXP
C    will return the exponential value of Z: Z_NEW = MTH$CEXP(Z)
C-

        COMPLEX Z,Z_NEW,MTH$CEXP
        COMPLEX CMPLX
        INTEGER M
        M = 1234567

C+
C    Generate a random complex number with the
C    Fortran generic CMPLX.
C-

        Z = CMPLX(RAN(M),RAN(M))

C+
C    Z is a complex number (r,i) with real part "r"
C    and imaginary part "i".
C-

       TYPE *, ' The complex number z is',z
       TYPE *, ' It has real part',REAL(Z),'and imaginary part',AIMAG(Z)
       TYPE *, ' '

C+
C    Compute the complex exponential value of Z.
C-

        Z_NEW = MTH$CEXP(Z)
        TYPE *, ' The complex exponential value of',z,' is',Z_NEW
        END


      

This Fortran program demonstrates the use of MTH$CEXP as a function call. The output generated by this example is as follows:


The complex number z is (0.8535407,0.2043402)
It has real part  0.8535407    and imaginary part  0.2043402
The complex exponential value of (0.8535407,0.2043402) is
 (2.299097,0.4764476)

MTH$CxEXP

The Complex Exponential routine returns the complex exponential of a complex number.

Format

MTH$CDEXP complex-exponent ,complex-number

MTH$CGEXP complex-exponent ,complex-number

Each of the above formats accepts one of the floating-point complex types as input.


RETURNS

None.


Arguments

complex-exponent


OpenVMS usage: complex_number
type: D_floating complex, G_floating complex
access: write only
mechanism: by reference

Complex exponential of complex-number. The complex exponential routines that have D-floating complex and G-floating complex input values write the complex-exponent into this argument. For MTH$CDEXP, complex-exponent argument specifies a D-floating complex number. For MTH$CGEXP, complex-exponent specifies a G-floating complex number.

complex-number


OpenVMS usage: complex_number
type: D_floating complex, G_floating complex
access: read only
mechanism: by reference

Complex number whose complex exponential is to be returned. This complex number has the form (r,i), where r is the real part and i is the imaginary part. The complex-number argument is the address of this complex number. For MTH$CDEXP, complex-number specifies a D-floating number. For MTH$CGEXP, complex-number specifies a G-floating number.

Description

The complex exponential is computed as follows:
complex-exponent = (EXP(r)*COS(i), EXP(r)*SIN(i))

Condition Values Signaled

SS$_ROPRAND Reserved operand. The MTH$CxEXP routine encountered a floating-point reserved operand due to incorrect user input. A floating-point reserved operand is a floating-point datum with a sign bit of 1 and a biased exponent of 0. Floating-point reserved operands are reserved for future use by Compaq.
MTH$_FLOOVEMAT Floating-point overflow in Math Library: the absolute value of r is greater than about 88.029 for D-floating values, or greater than about 709.089 for G-floating values.

Example


C+
C    This Fortran example forms the complex exponential
C    of a G-floating complex number using MTH$CGEXP
C    and the Fortran random number generator RAN.
C
C    Declare Z and MTH$CGEXP as complex values.
C    MTH$CGEXP will return the exponential value
C    of Z:      CALL MTH$CGEXP(Z_NEW,Z)
C-

        COMPLEX*16 Z,Z_NEW
        COMPLEX*16 MTH$GCMPLX
        REAL*8 R,I
        INTEGER M
        M = 1234567

C+
C    Generate a random complex number with the Fortran
C-   generic CMPLX.
C-

        R = RAN(M)
        I = RAN(M)
        Z = MTH$GCMPLX(R,I)
        TYPE *, ' The complex number z is',z
        TYPE *, ' '

C+
C    Compute the complex exponential value of Z.
C-

        CALL MTH$CGEXP(Z_NEW,Z)
        TYPE *, ' The complex exponential value of',z,' is',Z_NEW
        END


      

This Fortran example demonstrates how to access MTH$CGEXP as a procedure call. Because G-floating numbers are used, this program must be compiled using the command "Fortran/G filename".

Notice the high precision of the output generated:


 The complex number z is (0.853540718555450,0.204340159893036)
 The complex exponential value of (0.853540718555450,0.204340159893036) is
(2.29909677719458,0.476447678044977)

MTH$CLOG

The Complex Natural Logarithm (F-Floating Value) routine returns the complex natural logarithm of a complex number as an F-floating value.

Format

MTH$CLOG complex-number


RETURNS


OpenVMS usage: complex_number
type: F_floating complex
access: write only
mechanism: by value

The complex natural logarithm of a complex number. MTH$CLOG returns an F-floating complex number.


Argument

complex-number


OpenVMS usage: complex_number
type: F_floating complex
access: read only
mechanism: by reference

Complex number whose complex natural logarithm is to be returned. This complex number has the form (r,i), where r is the real part and i is the imaginary part. The complex-number argument is the address of this complex number. For MTH$CLOG, complex-number specifies an F-floating number.

Description

The complex natural logarithm is computed as follows:
CLOG(x) = (LOG(CABS(x)), ATAN2(i,r))

See MTH$CxLOG for the D- and G-floating point versions of this routine.


Condition Value Signaled

SS$_ROPRAND Reserved operand. The MTH$CLOG routine encountered a floating-point reserved operand (a floating-point datum with a sign bit of 1 and a biased exponent of 0) due to incorrect user input. Floating-point reserved operands are reserved for use by Compaq.

Example

See Section 1.7.4 for examples of using MTH$CLOG from VAX MACRO.


MTH$CxLOG

The Complex Natural Logarithm routine returns the complex natural logarithm of a complex number.

Format

MTH$CDLOG complex-natural-log ,complex-number

MTH$CGLOG complex-natural-log ,complex-number

Each of the above formats accepts one of the floating-point complex types as input.


RETURNS

None.


Arguments

complex-natural-log


OpenVMS usage: complex_number
type: D_floating complex, G_floating complex
access: write only
mechanism: by reference

Natural logarithm of the complex number specified by complex-number. The complex natural logarithm routines that have D-floating complex and G-floating complex input values write the address of the complex natural logarithm into complex-natural-log. For MTH$CDLOG, the complex-natural-log argument specifies a D-floating complex number. For MTH$CGLOG, the complex-natural-log argument specifies a G-floating complex number.

complex-number


OpenVMS usage: complex_number
type: D_floating complex, G_floating complex
access: read only
mechanism: by reference

Complex number whose complex natural logarithm is to be returned. This complex number has the form (r,i), where r is the real part and i is the imaginary part. The complex-number argument is the address of this complex number. For MTH$CDLOG, complex-number specifies a D-floating number. For MTH$CGLOG, complex-number specifies a G-floating number.

Description

The complex natural logarithm is computed as follows:
CLOG(x) = (LOG(CABS(x)), ATAN2(i,r))

Condition Value Signaled

SS$_FLTOVF_F Floating point overflow can occur. This condition value is signaled from MTH$CxABS when MTH$CxABS overflows.
SS$_ROPRAND Reserved operand. The MTH$CxLOG routine encountered a floating-point reserved operand due to incorrect user input. A floating-point reserved operand is a floating-point datum with a sign bit of 1 and a biased exponent of 0. Floating-point reserved operands are reserved for future use by Compaq.
MTH$_INVARGMAT Invalid argument: r = i = 0 . LIB$SIGNAL copies the floating-point reserved operand to the mechanism argument vector CHF$L_MCH_SAVR0/R1. The result is the floating-point reserved operand unless you have written a condition handler to change CHF$L_MCH_SAVR0/R1.

Example


C+
C   This Fortran example forms the complex logarithm of a D-floating complex
C   number by using MTH$CDLOG and the Fortran random number generator RAN.
C
C   Declare Z and MTH$CDLOG as complex values. Then MTH$CDLOG
c   returns the logarithm of Z: CALL MTH$CDLOG(Z_NEW,Z).
C
C   Declare Z, Z_LOG, MTH$DCMPLX as complex values, and R, I as real values.
C   MTH$DCMPLX takes two real arguments and returns one complex number.
C
C   Given complex number Z, MTH$CDLOG(Z) returns the complex natural
C   logarithm of Z.
C-
        COMPLEX*16 Z,Z_NEW,MTH$DCMPLX
        REAL*8 R,I
        R = 3.1425637846746565
        I = 7.43678469887
        Z = MTH$DCMPLX(R,I)
C+
C   Z is a complex number (r,i) with real part "r" and imaginary part "i".
C-
        TYPE *, ' The complex number z is',z
        TYPE *, ' '
        CALL MTH$CDLOG(Z_NEW,Z)
        TYPE *,' The complex logarithm of',z,' is',Z_NEW
        END




      

This Fortran example program uses MTH$CDLOG by calling it as a procedure. The output generated by this program is as follows:


The complex number z is (3.142563784674657,7.436784698870000)
The complex logarithm of (3.142563784674657,7.436784698870000) is
 (2.088587642177504,1.170985519274141)

MTH$CMPLX

The Complex Number Made from F-Floating Point routine returns a complex number from two floating-point input values.

Format

MTH$CMPLX real-part ,imaginary-part


RETURNS


OpenVMS usage: complex_number
type: F_floating complex
access: write only
mechanism: by value

A complex number. MTH$CMPLX returns an F-floating complex number.


Arguments

real-part


OpenVMS usage: floating_point
type: F_floating
access: read only
mechanism: by reference

Real part of a complex number. The real-part argument is the address of a floating-point number that contains this real part, r, of (r,i). For MTH$CMPLX, real-part specifies an F-floating number.

imaginary-part


OpenVMS usage: floating_point
type: F_floating
access: read only
mechanism: by reference

Imaginary part of a complex number. The imaginary-part argument is the address of a floating-point number that contains this imaginary part, i, of (r,i). For MTH$CMPLX, imaginary-part specifies an F-floating number.

Description

The MTH$CMPLX routine returns a complex number from two F-floating input values. See MTH$xCMPLX for the D- and G-floating point versions of this routine.

Condition Value Signaled

SS$_ROPRAND Reserved operand. The MTH$CMPLX routine encountered a floating-point reserved operand due to incorrect user input. A floating-point reserved operand is a floating-point datum with a sign bit of 1 and a biased exponent of 0. Floating-point reserved operands are reserved for future use by Compaq.

Example


C+
C    This Fortran example forms two F-floating
C    point complex numbers using MTH$CMPLX
C    and the Fortran random number generator RAN.
C
C    Declare Z and MTH$CMPLX as complex values, and R
C    and I as real values.  MTH$CMPLX takes two real
C    F-floating point values and returns one COMPLEX*8 number.
C
C    Note, since CMPLX is a generic name in Fortran, it would be
C    sufficient to use CMPLX.
C    CMPLX must be declared to be of type COMPLEX*8.
C
C    Z = CMPLX(R,I)
C-


        COMPLEX Z,MTH$CMPLX,CMPLX
        REAL*4 R,I
        INTEGER M
        M = 1234567
        R = RAN(M)
        I = RAN(M)
        Z = MTH$CMPLX(R,I)

C+
C    Z is a complex number (r,i) with real part "r" and
C    imaginary part "i".
C-

        TYPE *, ' The two input values are:',R,I
        TYPE *, ' The complex number z is',z
        z = CMPLX(RAN(M),RAN(M))
        TYPE *, ' '
        TYPE *, ' Using the Fortran generic CMPLX with random R and I:'
        TYPE *, ' The complex number z is',z
        END


      

This Fortran example program demonstrates the use of MTH$CMPLX. The output generated by this program is as follows:


The two input values are:  0.8535407      0.2043402
The complex number z is (0.8535407,0.2043402)
Using the Fortran generic CMPLX with random R and I:
The complex number z is (0.5722565,0.1857677)


Previous Next Contents Index