The ZerSol Library

version 1.0.0

Solver for all zeros of an analytic function that lie within a rectangular region of a complex plane

User Guide

Table of contents

0. Introduction

The purpose of the ZerSol library is the finding all zeros of an analytic function that are contained in a given rectangular region of a complex plane. It is based on the argument principle and recursive subdivisions of the region coupled with the Newton's iterations at the final stage of the search. The ZerSol library assumes that evaluation of the function is expensive and tries to minimize the number of the function calls by using efficient algorithms and special data structures. The library provides an extensive set of interface functions for the search customization and it outputs detailed diagnostic messages in case of failures.

1. License

Copyright © 2012 - 2017 by Ivan B. Ivanov. The ZerSol library and its documentation are distributed under the terms of the GNU General Public License v3. No representations are made about the suitability of this software for any purpose. It is provided "as is" without express or implied warranty. See the GNU General Public License for more details.

2. Installation

Please, download and unpack the latest version of the library. In the following we assume that the top level ZerSol directory is zersol-x.x.x. The further steps depend on an operating system and a language you are going to use to call the library functions:

3. Quick start

Let us demonstrate how to apply the ZerSol library to find all zeros of the complex analytic function f(z) = exp(3*z) + 2*z*cos(z) - 1 located in the rectangular region [-2,2] x [-2,3] of complex plane (z). The test function is taken from the paper of P. Kravanja et al. / Computer Physics Communications, 124, (2000), 212-232. In this short example only the basic steps are shown with all default settings of the solver. For more detailed and comprehensive examples that can be easily adapted for your particular needs have a look at zersol-x.x.x/tests/case* directories where the source codes for several languages are provided. Linux / Unix users may immediately build any test case in a terminal:

cd zersol-x.x.x/tests/case* && make lang=c++

cd zersol-x.x.x/tests/case* && make lang=c

cd zersol-x.x.x/tests/case* && make lang=fortran

and similar for other languages. Windows and other users that do not have the GNU build tools should build the test cases manually in their favorite IDE by compilation of the test case source code and linking the object file with appropriate ZerSol bindings.

4. C++ interface

Please, find here the detailed information about the ZerSol C++ classes and functions.

5. C interface

Please, find here the detailed information about the ZerSol C interface typedefs and functions.

6. Fortran interface

Please, find here the detailed information about the ZerSol Fortran interface subroutines.