FastPolyEval  1.0
Fast Evaluation of Real and Complex Polynomials
appsf.h
Go to the documentation of this file.
1 //
2 // appsf.h
3 //
4 // Authors: Nicolae Mihalache & François Vigneron
5 //
6 // This software is released under BSD licence, with an attribution clause (see Licence file).
7 // Please cite the reference below if you use or distribute this software.
8 //
9 // • [1] R. Anton, N. Mihalache & F. Vigneron. Fast evaluation of real and complex polynomials. 2022.
10 // https://hal.archives-ouvertes.fr/hal-03820369
11 //
12 // Copyright 2022 Univ. Paris-Est Créteil & Univ. de Reims Champagne-Ardenne.
13 //
14 
20 #ifndef appsf_h
21 #define appsf_h
22 
23 #include <stdio.h>
24 #include "arrayf.h"
25 
34 
42 
49 
56 
63 
72 
80 bool appf_compare(arrayf z1, arrayf z2, char *output);
81 
88 
95 
102 
110 
123 bool appf_eval_p(polyf P, arrayf z, char *outFile, char *outError,
124  long count, char *outHorner, long countHorner, const char **inFiles);
125 
138 bool appf_eval_d(polyf P, arrayf z, char *outFile, char *outError,
139  long count, char *outHorner, long countHorner, const char **inFiles);
140 
153 bool appf_eval_n(polyf P, arrayf z, char *outFile, char *outError,
154  long count, char *outHorner, long countHorner, const char **inFiles);
155 
173 bool appf_eval_r(polyf P, arrayf z, ulong maxIter, char *outFile, char *outError,
174  long count, char *outHorner, long countHorner, const char **inFiles);
175 
176 #endif /* appsf_h */
arrayf appf_polar(arrayf z)
Computes the complex numbers given by a sequence z of their polar coordinates on the sphere.
arrayf appf_tensor(arrayf z1, arrayf z2)
Computes tensor (or piontwise) product of the sequences z1 and z2.
arrayf appf_im(arrayf z)
Returns the imaginary parts of the numbers in the sequence z.
arrayf appf_re(arrayf z)
Returns the real parts of the numbers in the sequence z.
bool appf_eval_n(polyf P, arrayf z, char *outFile, char *outError, long count, char *outHorner, long countHorner, const char **inFiles)
Evaluates the Newton terms of the polynomial P in all points in the list z, using the FPE algorithm.
bool appf_eval_p(polyf P, arrayf z, char *outFile, char *outError, long count, char *outHorner, long countHorner, const char **inFiles)
Evaluates the polynomial P in all points in the list z, using the FPE algorithm.
bool appf_eval_d(polyf P, arrayf z, char *outFile, char *outError, long count, char *outHorner, long countHorner, const char **inFiles)
Evaluates the derivative of the polynomial P in all points in the list z, using the FPE algorithm.
arrayf appf_grid(arrayf z1, arrayf z2)
Computes the set product of the real parts of two sequences z1 and z2.
arrayf appf_exp(arrayf z)
Computes the complex exponential of a sequence z.
bool appf_eval_r(polyf P, arrayf z, ulong maxIter, char *outFile, char *outError, long count, char *outHorner, long countHorner, const char **inFiles)
Evaluates the Newton iterates of the polynomial P in all points in the list z, using the FPE algorith...
arrayf appf_rot(arrayf z)
Computes a*exp(ib) for each term a+ib of a sequence z of complex numbers.
arrayf appf_join(arrayf z1, arrayf z2)
Joins the real parts of the sequences z1 and z2 as the real parts and imaginary parts of a new list.
arrayf appf_conj(arrayf z)
Returns the conjugates of the numbers in the sequence z.
bool appf_compare(arrayf z1, arrayf z2, char *output)
Compares two list of complex values and reports the eventual errors.
arrayf appf_unif(ulong n, coeff_t st, coeff_t en)
Returns the list of n real numbers that split the interval [st,en] in n-1 equal intervals.
Definition of a variable length array of machine floating point complex numbers.
double coeff_t
The machine number type to use for polynomial coefficients and evaluation.
Definition: ntypes.h:81
uint64_t ulong
ulong is uint64
Definition: ntypes.h:37
A variable length list of machine floating point complex numbers.
Definition: arrayf.h:38
Polynomial with machine floating point complex coefficients.
Definition: polyf.h:30