mirror of
https://github.com/vale981/arb
synced 2025-03-09 12:06:38 -04:00
53 lines
2 KiB
ReStructuredText
53 lines
2 KiB
ReStructuredText
.. _fmpcb-calc:
|
|
|
|
**fmpcb_calc.h** -- calculus with complex-valued functions
|
|
===============================================================================
|
|
|
|
This module provides functions for operations of calculus
|
|
over the complex numbers (intended to include root-finding,
|
|
integration, and so on).
|
|
|
|
|
|
|
|
Types, macros and constants
|
|
-------------------------------------------------------------------------------
|
|
|
|
.. type:: fmpcb_calc_func_t
|
|
|
|
Typedef for a pointer to a function with signature
|
|
|
|
.. code ::
|
|
|
|
int func(fmpcb_ptr out, const fmpcb_t inp, void * param, long order, long prec)
|
|
|
|
implementing a univariate complex function `f(x)`.
|
|
When called, *func* should write to *out* the first *order*
|
|
coefficients in the Taylor series expansion of `f(x)` at the point *inp*,
|
|
evaluated at a precision of *prec* bits.
|
|
The *param* argument may be used to pass through
|
|
additional parameters to the function.
|
|
The return value is reserved for future use as an
|
|
error code. It can be assumed that *out* and *inp* are not
|
|
aliased and that *order* is positive.
|
|
|
|
|
|
Bounds
|
|
-------------------------------------------------------------------------------
|
|
|
|
.. function :: void fmpcb_calc_cauchy_bound(fmprb_t bound, fmpcb_calc_func_t func, void * param, const fmpcb_t x, const fmprb_t radius, long maxdepth, long prec)
|
|
|
|
Sets *bound* to a ball containing the value of the integral
|
|
|
|
.. math ::
|
|
|
|
b = \frac{1}{2 \pi r} \oint_{|t-x| = r} |f(t)| dt
|
|
|
|
where *f* is specified by (*func*, *param*) and *r* is given by *radius*.
|
|
The integral is computed using a simple step sum.
|
|
The integration range is subdivided until the order of magnitude of *b*
|
|
can be determined (i.e. its error bound is smaller than its midpoint),
|
|
or until the step length has been cut in half *maxdepth* times.
|
|
This function is currently implemented completely naively, and
|
|
repeatedly subdivides the whole integration range instead of
|
|
performing adaptive subdivisions.
|
|
|