PLaSK library
Loading...
Searching...
No Matches
camos.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

void zairy (const double &zr, const double &zi, const long &id, const long &kode, double &air, double &aii, long &nz, long &ierr)
 
void zbiry (const double &zr, const double &zi, const long &id, const long &kode, double &bir, double &bii, long &ierr)
 
void zbesi (const double &zr, const double &zi, const double &fnu, const long &kode, const long &n, double *cyr, double *cyi, long &nz, long &ierr)
 Compute Bessel I function of a complex argument.
 
void zbesj (const double &zr, const double &zi, const double &fnu, const long &kode, const long &n, double *cyr, double *cyi, long &nz, long &ierr)
 Compute Bessel J function of a complex argument.
 
void zbesk (const double &zr, const double &zi, const double &fnu, const long &kode, const long &n, double *cyr, double *cyi, long &nz, long &ierr)
 Compute Bessel K function of a complex argument.
 
void zbesy (const double &zr, const double &zi, const double &fnu, const long &kode, const long &n, double *cyr, double *cyi, long &nz, double *cwrkr, double *cwrki, long &ierr)
 Compute Bessel Y function of a complex argument.
 
void zbesh (const double &zr, const double &zi, const double &fnu, const long &kode, const long &m, const long &n, double *cyr, double *cyi, long &nz, long &)
 Compute Bessel H function of a complex argument.
 

Function Documentation

◆ zairy()

void zairy ( const double &  zr,
const double &  zi,
const long &  id,
const long &  kode,
double &  air,
double &  aii,
long &  nz,
long &  ierr 
)

◆ zbesh()

void zbesh ( const double &  zr,
const double &  zi,
const double &  fnu,
const long &  kode,
const long &  m,
const long &  n,
double *  cyr,
double *  cyi,
long &  nz,
long &   
)

Compute Bessel H function of a complex argument.

On kode=1, zbesj computes an n member sequence of complex Bessel functions cy(i)=H(fnu+i-1,z) for real, nonnegative orders fnu+i-1, i=1,...,n and complex z in the cut plane -pi < arg(z) < pi. On kode=2, cbesj returns the scaled functions cy(i)=exp(-abs(y))*H(fnu+i-1,z) i = 1,...,n , y=aimag(z) which remove the exponential growth in both the upper and lower half planes for z to infinity. Definitions and notation are found in the nbs handbook of mathematical functions.

Parameters
[in]zr,ziz=cmplx(zr,zi), -pi < arg(z) <= pi
[in]fnuorder of initial j function, fnu >= 0.0d0
[in]kodea parameter to indicate the scaling option kode = 1 returns cy(i)=H(fnu+i-1,z), i=1,...,n = 2 returns cy(i)=H(fnu+i-1,z)exp(-abs(y)), i=1,...,n
[in]nnumber of members of the sequence, n >= 1
[in]mtype of the Hankel function m = 1 H(z) = J(z) + j H(z) m = 2 H(z) = J(z) - j H(z)
[out]cyr,cyidouble precision vectors whose first n components contain real and imaginary parts for the sequence cy(i)=H(fnu+i-1,z) or cy(i)=H(fnu+i-1,z)exp(-abs(y)) i=1,...,n depending on kode, y=aimag(z).
[out]nznumber of components set to zero due to underflow, nz = 0 normal return nz > 0 last nz components of cy set zero due to underflow, cy(i)=cmplx(0.0d0,0.0d0), i = n-nz+1,...,n
[out]ierrerror flag ierr = 0 normal return - computation completed ierr = 1 input error - no computation ierr = 2 overflow - no computation, aimag(z) too large on kode=1 ierr = 3 cabs(z) or fnu+n-1 large - computation done but losses of signifcance by argument reduction produce less than half of machine accuracy ierr = 4 cabs(z) or fnu+n-1 too large - no computation because of complete losses of significance by argument reduction ierr = 5 error - no computation, algorithm termination condition not met

◆ zbesi()

void zbesi ( const double &  zr,
const double &  zi,
const double &  fnu,
const long &  kode,
const long &  n,
double *  cyr,
double *  cyi,
long &  nz,
long &  ierr 
)

Compute Bessel I function of a complex argument.

On kode=1, zbesj computes an n member sequence of complex Bessel functions cy(i)=I(fnu+i-1,z) for real, nonnegative orders fnu+i-1, i=1,...,n and complex z in the cut plane -pi < arg(z) < pi. On kode=2, cbesj returns the scaled functions cy(i)=exp(-abs(y))*I(fnu+i-1,z) i = 1,...,n , y=aimag(z) which remove the exponential growth in both the upper and lower half planes for z to infinity. Definitions and notation are found in the nbs handbook of mathematical functions.

Parameters
[in]zr,ziz=cmplx(zr,zi), -pi < arg(z) <= pi
[in]fnuorder of initial j function, fnu >= 0.0d0
[in]kodea parameter to indicate the scaling option kode = 1 returns cy(i)=j(fnu+i-1,z), i=1,...,n = 2 returns cy(i)=j(fnu+i-1,z)exp(-abs(y)), i=1,...,n
[in]nnumber of members of the sequence, n >= 1
[out]cyr,cyidouble precision vectors whose first n components contain real and imaginary parts for the sequence cy(i)=I(fnu+i-1,z) or cy(i)=I(fnu+i-1,z)exp(-abs(y)) i=1,...,n depending on kode, y=aimag(z).
[out]nznumber of components set to zero due to underflow, nz = 0 normal return nz > 0 last nz components of cy set zero due to underflow, cy(i)=cmplx(0.0d0,0.0d0), i = n-nz+1,...,n
[out]ierrerror flag ierr = 0 normal return - computation completed ierr = 1 input error - no computation ierr = 2 overflow - no computation, aimag(z) too large on kode=1 ierr = 3 cabs(z) or fnu+n-1 large - computation done but losses of signifcance by argument reduction produce less than half of machine accuracy ierr = 4 cabs(z) or fnu+n-1 too large - no computation because of complete losses of significance by argument reduction ierr = 5 error - no computation, algorithm termination condition not met

◆ zbesj()

void zbesj ( const double &  zr,
const double &  zi,
const double &  fnu,
const long &  kode,
const long &  n,
double *  cyr,
double *  cyi,
long &  nz,
long &  ierr 
)

Compute Bessel J function of a complex argument.

On kode=1, zbesj computes an n member sequence of complex Bessel functions cy(i)=J(fnu+i-1,z) for real, nonnegative orders fnu+i-1, i=1,...,n and complex z in the cut plane -pi < arg(z) < pi. On kode=2, cbesj returns the scaled functions cy(i)=exp(-abs(y))*J(fnu+i-1,z) i = 1,...,n , y=aimag(z) which remove the exponential growth in both the upper and lower half planes for z to infinity. Definitions and notation are found in the nbs handbook of mathematical functions.

Parameters
[in]zr,ziz=cmplx(zr,zi), -pi < arg(z) <= pi
[in]fnuorder of initial j function, fnu >= 0.0d0
[in]kodea parameter to indicate the scaling option kode = 1 returns cy(i)=J(fnu+i-1,z), i=1,...,n = 2 returns cy(i)=J(fnu+i-1,z)exp(-abs(y)), i=1,...,n
[in]nnumber of members of the sequence, n >= 1
[out]cyr,cyidouble precision vectors whose first n components contain real and imaginary parts for the sequence cy(i)=J(fnu+i-1,z) or cy(i)=J(fnu+i-1,z)exp(-abs(y)) i=1,...,n depending on kode, y=aimag(z).
[out]nznumber of components set to zero due to underflow, nz = 0 normal return nz > 0 last nz components of cy set zero due to underflow, cy(i)=cmplx(0.0d0,0.0d0), i = n-nz+1,...,n
[out]ierrerror flag ierr = 0 normal return - computation completed ierr = 1 input error - no computation ierr = 2 overflow - no computation, aimag(z) too large on kode=1 ierr = 3 cabs(z) or fnu+n-1 large - computation done but losses of signifcance by argument reduction produce less than half of machine accuracy ierr = 4 cabs(z) or fnu+n-1 too large - no computation because of complete losses of significance by argument reduction ierr = 5 error - no computation, algorithm termination condition not met

◆ zbesk()

void zbesk ( const double &  zr,
const double &  zi,
const double &  fnu,
const long &  kode,
const long &  n,
double *  cyr,
double *  cyi,
long &  nz,
long &  ierr 
)

Compute Bessel K function of a complex argument.

On kode=1, zbesj computes an n member sequence of complex Bessel functions cy(i)=K(fnu+i-1,z) for real, nonnegative orders fnu+i-1, i=1,...,n and complex z in the cut plane -pi < arg(z) < pi. On kode=2, cbesj returns the scaled functions cy(i)=exp(-abs(y))*K(fnu+i-1,z) i = 1,...,n , y=aimag(z) which remove the exponential growth in both the upper and lower half planes for z to infinity. Definitions and notation are found in the nbs handbook of mathematical functions.

Parameters
[in]zr,ziz=cmplx(zr,zi), -pi < arg(z) <= pi
[in]fnuorder of initial j function, fnu >= 0.0d0
[in]kodea parameter to indicate the scaling option kode = 1 returns cy(i)=K(fnu+i-1,z), i=1,...,n = 2 returns cy(i)=K(fnu+i-1,z)exp(-abs(y)), i=1,...,n
[in]nnumber of members of the sequence, n >= 1
[out]cyr,cyidouble precision vectors whose first n components contain real and imaginary parts for the sequence cy(i)=K(fnu+i-1,z) or cy(i)=K(fnu+i-1,z)exp(-abs(y)) i=1,...,n depending on kode, y=aimag(z).
[out]nznumber of components set to zero due to underflow, nz = 0 normal return nz > 0 last nz components of cy set zero due to underflow, cy(i)=cmplx(0.0d0,0.0d0), i = n-nz+1,...,n
[out]ierrerror flag ierr = 0 normal return - computation completed ierr = 1 input error - no computation ierr = 2 overflow - no computation, aimag(z) too large on kode=1 ierr = 3 cabs(z) or fnu+n-1 large - computation done but losses of signifcance by argument reduction produce less than half of machine accuracy ierr = 4 cabs(z) or fnu+n-1 too large - no computation because of complete losses of significance by argument reduction ierr = 5 error - no computation, algorithm termination condition not met

◆ zbesy()

void zbesy ( const double &  zr,
const double &  zi,
const double &  fnu,
const long &  kode,
const long &  n,
double *  cyr,
double *  cyi,
long &  nz,
double *  cwrkr,
double *  cwrki,
long &  ierr 
)

Compute Bessel Y function of a complex argument.

On kode=1, zbesj computes an n member sequence of complex Bessel functions cy(i)=Y(fnu+i-1,z) for real, nonnegative orders fnu+i-1, i=1,...,n and complex z in the cut plane -pi < arg(z) < pi. On kode=2, cbesj returns the scaled functions cy(i)=exp(-abs(y))*Y(fnu+i-1,z) i = 1,...,n , y=aimag(z) which remove the exponential growth in both the upper and lower half planes for z to infinity. Definitions and notation are found in the nbs handbook of mathematical functions.

Parameters
[in]zr,ziz=cmplx(zr,zi), -pi < arg(z) <= pi
[in]fnuorder of initial j function, fnu >= 0.0d0
[in]kodea parameter to indicate the scaling option kode = 1 returns cy(i)=Y(fnu+i-1,z), i=1,...,n = 2 returns cy(i)=Y(fnu+i-1,z)exp(-abs(y)), i=1,...,n
[in]nnumber of members of the sequence, n >= 1
[out]cyr,cyidouble precision vectors whose first n components contain real and imaginary parts for the sequence cy(i)=Y(fnu+i-1,z) or cy(i)=Y(fnu+i-1,z)exp(-abs(y)) i=1,...,n depending on kode, y=aimag(z).
[out]nznumber of components set to zero due to underflow, nz = 0 normal return nz > 0 last nz components of cy set zero due to underflow, cy(i)=cmplx(0.0d0,0.0d0), i = n-nz+1,...,n
[out]ierrerror flag ierr = 0 normal return - computation completed ierr = 1 input error - no computation ierr = 2 overflow - no computation, aimag(z) too large on kode=1 ierr = 3 cabs(z) or fnu+n-1 large - computation done but losses of signifcance by argument reduction produce less than half of machine accuracy ierr = 4 cabs(z) or fnu+n-1 too large - no computation because of complete losses of significance by argument reduction ierr = 5 error - no computation, algorithm termination condition not met

◆ zbiry()

void zbiry ( const double &  zr,
const double &  zi,
const long &  id,
const long &  kode,
double &  bir,
double &  bii,
long &  ierr 
)