Golem is hosted by Hepforge, IPPP Durham

## src/module/logarithme [ Modules ]

[ Top ] [ 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 ]

[ Top ] [ 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 ]

[ Top ] [ 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 ]

[ Top ] [ 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 ]

[ Top ] [ 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 ]

[ Top ] [ 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.