Skip to content

aliddell/cadenza

Repository files navigation

BUILD REQUIREMENTS
You need the GMP and MPFR headers to build this program. You will need to have
the gmp-devel and mpfr-devel (or equivalent) packages installed. Use apt-get
or yum or whatever accordingly. Cadenza has been tested with GMP v5.1.2 & MPFR v3.1.2.
Future versions will require MPI.

BUILDING
Just type `make'.

INVOCATION
Cadenza requires certain command-line arguments and is invoked like so:

cadenza ARGS

If you do not specify a config file with `-c FILENAME', the mandatory arguments are:
	-s || --system FILENAME (designates FILENAME as system file)
	-p || --points FILENAME (designates FILENAME as points file)

optional arguments are:
	-h || --help (displays this help dialog)
	-f || --float (use floating point arithmetic (default is rational))
	-a || --ascending (certify intervals from t=0 to t=1 (default is descending))
	-c || --config FILENAME (use options in FILENAME (command-line arguments override))
	-m || --precision INT (sets floating-point precision to INT (default is 32))
	-n || --newtons INT (sets maximum number of Newton iterations to INT (default is 20))
	-d || --subdivisions INT (sets maximum number of segment subdivisions to INT (default is 100))

FILE FORMATS
You must specify the polynomial system in a file formatted as follows:

The number of variables/polynomials on a line all its own. Since the
systems we're working with are square, this will be the same number and only
needs to be read in once. Each polynomial needs to be represented in a block
of its own. At the top of this block will be the number of terms. For example,
(3 + I*1/2)*x^2*y is a single term. Then each line following will be the degree
of each variable in the given term, followed by the real and imaginary
coefficients. So to use our (3 + I*1/2)*x^2*y example, assuming that x and y are
the only variables in the system, it would look something like this:

2       1       3       1/2

Every variable must be represented, so if z were a variable in this system,
our same example would look like this:

2       1       0       3       1/2

After each polynomial has been represented, the vector v will be represented
as each of its real and imaginary parts. So [1, 1 + i, i] would be written:

1       0
1       1
0       1

See system.example1 or system.example2 for a complete picture.

You must specify the points in a file formatted as follows:

The number of points must be specified on a line all its own. Each point is an ordered
pair (t, x), where t is in [0,1] and x is a vector in C^N. Thus, x represents a potential
solution to f(x) + t*v = 0 for its corresponding value of t.

Each t comes before each x. t is understood to be real-valued, so do not specify 0 for
the imaginary part. Each x vector comes after its corresponding t, and is complex-valued,
so each entry in x must specify a real and imaginary component, just like v.

See points.example1 or points.example2 for a complete picture.

About

Software for numerical certified path tracking

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published