Elsevier Science Home
Computer Physics Communications Program Library
Full text online from Science Direct
Programs in Physics & Physical Chemistry
CPC Home

[Licence| Download | New Version Template] adkw_v1_0.tar.gz(100 Kbytes)
Manuscript Title: ZEAL: a mathematical software package for computing zeros of analytic functions.
Authors: P. Kravanja, M. Van Barel, O. Ragos, M.N. Vrahatis, F.A. Zafiropoulos
Program title: ZEAL
Catalogue identifier: ADKW_v1_0
Distribution format: tar.gz
Journal reference: Comput. Phys. Commun. 124(2000)212
Programming language: Fortran.
Computer: HP 9000 B160L, IBM RS6000 7012, Sun Microsystems SPARC Ultra-2, Silicon Graphics Origin 2000.
Operating system: UNIX (HPUX 11.0/AIX 3.2.5/SunOS 5.5.1/IRIX64 6.4).
RAM: 500K words
Word size: 32
Keywords: General purpose, Function, Other numerical, Analytic functions, Zeros, Multiplicities, Method quadrature, Formal orthogonal, Polynomials, Isolation of zeros, Computation of zeros.
Classification: 4.7, 4.12.

Nature of problem:
ZEAL is a general purpose package for computing zeros of analytic functions. It can be used in various physical applications. More precisely, given a rectangular region W in the complex plane and an analytic function f : W -> C, such that no zero of f lies on the boundary of W, ZEAL calculates all the zeros of f that lie inside W, together with their respective multiplicities.

Solution method:
The package ZEAL uses an integral formula to compute the total number of zeros (counting multiplicities) of f that lie inside W. Then, by using the same procedure, the region W is subdivided into subregions that contain at most M zeros (again counting multiplicities), where the value of M is specified by the user. Approximations for these zeros are calculated via an algorithm that is based on numerical integration along the boundaries of the subregions and generalized eigenvalue problems. The multiplicities of the zeros are calculated by solving a Vandermonde system. The approximations for the zeros are refined via the modified Newton's method, which takes into account the multiplicity of a zero and converges quadratically.

The function f has to be analytic in the rectangular region W. Both f and its derivative f' are needed. The edges of W have to be parallel to the coordinate axes. The boundary of W is not allowed to contain zeros of f. Since, in the sequel, W is repeatedly subdivided, the boundaries of the obtained subregions should not contain zeros of f. The possibility of such a situation can be minimized if W is not symmetric with respect to the axes. ZEAL is not specifically designed to handle clusters of zeros. However, if f has one or more clusters of zeros and the input parameter EPS_STOP is given a proper (problem-dependent) value, then ZEAL will compute approximations for the centres of the clusters. The "multiplicity" of a centre is equal to the total number of zeros that belong to the corresponding cluster.

Running time:
The following table gives the running times (in seconds) for the test runs of Section 4:
                         System library   Code included in ZEAL          
            Test run #1    0.13 (0.13)         0.18 (0.14)               
            Test run #2    1.82 (1.04)         1.65 (1.14)               
            Test run #3    1.55 (1.14)         1.60 (1.42)               
            Test run #4    1.52 (1.15)         1.62 (1.35)               
            Test run #5    0.65 (0.41)         1.62 (0.37)               
            Test run #6    1.56 (0.56)         1.54 (0.53)               
The calculations have been done on a SUN SPARC Ultra-2 m1170. We have used the subroutine ETIME. The parenthesized running times correspond to optimized compiling.
ZEAL uses a number of routines from the BLAS and LAPACK libraries. These Fortran 77 routines are distributed together with ZEAL to enable the user to compile them in case the BLAS and LAPACK libraries are not available on his/her computer system. The column labelled "System library" gives the running times in case ZEAL uses the BLAS and LAPACK libraries that are installed on our SUN computer. The column labelled "Code included in ZEAL" gives the running times in case the Fortran 77 routines distributed with ZEAL are used.