src/module/logarithme [ Modules ]
NAME
Module logarithme
USAGE
use logarithme
DESCRIPTION
This module provides three public routines to compute the logarithm, the logarithm squared and a special function (generalisation of ln(1-z)/z) assuming that the argument is of the type z = a + i lambda s, where lambda > 0 and << 1 and s = +/- 1. a can be a complex type. If its imaginary part vanishes, the sign of s becomes relevant.
OUTPUT
It exports: * z_log -- a function which returns the logarithm with a complex argument * z_log2 -- a function which returns the logarithm squared with a complex argument * q -- a recursive function which a generalisation of ln(1-z)/z
NOTES
z_log (and z_log2) can be called with complex argument and parameter s. If the imaginary part vanishes, z_log (or z_log2) with real argument is called. Here, s becomes important.
USES
* precision_golem (src/module/precision_golem.f90) * constante (src/module/constante.f90) * sortie_erreur (src/module/sortie_erreur.f90) * equal (src/module/equal.f90)
src/module/logarithme/eta [ Functions ]
NAME
Function eta
USAGE
complex = eta(x,y,z)
DESCRIPTION
It computes the function eta defined by eta(x,y) - ln(x*y) - ln(x) - ln(y)
INPUTS
* x -- a complex (type ki) * y -- a complex (type ki) * z -- optional, a complex (type ki) : product x*y
SIDE EFFECTS
No side effect
RETURN VALUE
This function returns a complex (type ki)
NOTES
src/module/logarithme/eta_mod [ Functions ]
NAME
Function eta_mod
USAGE
complex = eta_mod(im1,im2,imt)
DESCRIPTION
It computes the function eta defined by eta(x,y) - ln(x*y) - ln(x) - ln(y) the argument are Re(x), Im(x), Re(y), Im(y) and Im(x*y)
INPUTS
* re1 -- a real (type ki) * im2 -- a complex (type ki) * re2 -- a real (type ki) * im2 -- a complex (type ki) * imt -- a complex (type ki)
SIDE EFFECTS
No side effect
RETURN VALUE
This function returns a complex (type ki)
NOTES
src/module/logarithme/q [ Functions ]
NAME
Function q
USAGE
complex = q(n,x,s)
DESCRIPTION
It computes the function q defined recusively by q_n(X) = (q_{n-1}(X)+1/(n-1))/X with q_1(X) = ln(1-X)/X assuming that X = x + i*s*lambda and s=+/- 1, Care is taken for small values of x. For x < small_glob q_n(x) = -( 1/n + \sum_{j=n+1}^\infinity x^{j-n}/j ) Note that in this case there is no imaginary part.
INPUTS
* n -- an integer, the order of q * x -- a real/complex (type ki), the real part * s -- a real (type ki), s = +/- 1, it gives the sign of the small imaginary part
SIDE EFFECTS
No side effect
RETURN VALUE
This function returns a complex (type ki)
NOTES
This function can now be called with complex x. If the imaginary part vanishes, the evaluation is switched to the version with real x and the original entry for s becomes relevant.
src/module/logarithme/z_log [ Functions ]
NAME
Function z_log
USAGE
complex = z_log(a,s)
DESCRIPTION
Compute the ln(z) with z = a + i lambda s
INPUTS
* a -- a real/complex (type ki), the argument * s -- a real (type ki), s = +/- 1, it gives the sign of the small imaginary part
SIDE EFFECTS
No side effect
RETURN VALUE
This function returns a complex (type ki)
NOTES
If the imaginary part of the argument vanishes, the sign of s becomes relevant.
src/module/logarithme/z_log2 [ Functions ]
NAME
Function z_log2
USAGE
complex = z_log2(a,s)
DESCRIPTION
Compute the ln(z)^2 with z = a + i lambda s
INPUTS
* a -- a real/complex (type ki), the argument * s -- a real (type ki), s = +/- 1, it gives the sign of the small imaginary part
SIDE EFFECTS
No side effect
RETURN VALUE
This function returns a complex (type ki)
NOTES
If the imaginary part of the argument vanishes, the sign of s becomes relevant.