Chapter 10: Elliptic and Related Functions

CWPL

This function evaluates the Weierstrass' function in the lemniscatic case for complex argument with unit period parallelogram.

Function Return Value

CWPL — Complex function value.   (Output)

Required Arguments

Z — Complex argument for which the function value is desired.   (Input)

FORTRAN 90 Interface

Generic:                              CWPL (Z)

Specific:                             The specific interface names are C_CWPL and Z_CWPL.

FORTRAN 77 Interface

Complex:                            CWPL (Z)

Double complex:               The double complex name is ZWPL.

Description

The Weierstrass' function, (z) = (z | ω, ωʹ), is an elliptic function of order two with periods 2 ω and 2 ωʹ and a double pole at z = 0. CWPL(Z) computes (z | ω, ωʹ) with 2 ω = 1 and 2 ωʹ = i.

The input argument is first reduced to the fundamental parallelogram of all z satisfying
 −1/2 ≤ z ≤ 1/2 and −1/2 ≤ z ≤ 1/2. Then, a rational approximation is used.

All arguments are valid with the exception of the lattice points z = m + ni, which are the poles of CWPL. If the argument is a lattice point, then b = AMACH(2) , the largest floating-point number, is returned. If the argument has modulus greater than 10ε1, then NaN (not a number) is returned. Here, ε = AMACH(4) is the machine precision.

Function CWPL is based on code by Eckhardt (1980). Also, see Eckhardt (1977).

Example

In this example, (0.25 + 0.25i) is computed and printed.

 

      USE CWPL_INT

      USE UMACH_INT

 

      IMPLICIT   NONE

!                                 Declare variables

      INTEGER    NOUT

      COMPLEX    VALUE, Z

!                                 Compute

      Z     = (0.25, 0.25)

      VALUE = CWPL(Z)

!                                 Print the results

      CALL UMACH (2, NOUT)

      WRITE (NOUT,99999) Z, VALUE

99999 FORMAT (' CWPL(', F6.3, ',', F6.3, ') = (', &

           F6.3, ',', F6.3, ')')

      END

Output

 

CWPL( 0.250, 0.250) = ( 0.000,-6.875)



http://www.vni.com/
PHONE: 713.784.3131
FAX:713.781.9260