24 #if ! defined (octave_lo_specfun_h)
25 #define octave_lo_specfun_h 1
27 #include "octave-config.h"
50 extern OCTAVE_API
double acosh (
double x);
51 extern OCTAVE_API
float acosh (
float x);
55 extern OCTAVE_API
double asinh (
double x);
56 extern OCTAVE_API
float asinh (
float x);
60 extern OCTAVE_API
double atanh (
double x);
61 extern OCTAVE_API
float atanh (
float x);
65 extern OCTAVE_API
double erf (
double x);
66 extern OCTAVE_API
float erf (
float x);
70 extern OCTAVE_API
double erfc (
double x);
71 extern OCTAVE_API
float erfc (
float x);
75 extern OCTAVE_API
double expm1 (
double x);
78 extern OCTAVE_API
float expm1 (
float x);
81 extern OCTAVE_API
double log1p (
double x);
84 extern OCTAVE_API
float log1p (
float x);
87 extern OCTAVE_API
double cbrt (
double x);
88 extern OCTAVE_API
float cbrt (
float x);
90 extern OCTAVE_API
double gamma (
double x);
91 extern OCTAVE_API
double lgamma (
double x);
94 extern OCTAVE_API
float gamma (
float x);
95 extern OCTAVE_API
float lgamma (
float x);
336 extern OCTAVE_API
double betainc (
double x,
double a,
double b);
353 extern OCTAVE_API
float betainc (
float x,
float a,
float b);
370 extern OCTAVE_API
double gammainc (
double x,
double a,
bool&
err);
385 extern OCTAVE_API
float gammainc (
float x,
float a,
bool&
err);
405 extern OCTAVE_API
double erfinv (
double x);
406 extern OCTAVE_API
float erfinv (
float x);
408 extern OCTAVE_API
double erfcinv (
double x);
409 extern OCTAVE_API
float erfcinv (
float x);
411 extern OCTAVE_API
float erfcx (
float x);
412 extern OCTAVE_API
double erfcx (
double x);
416 extern OCTAVE_API
float erfi (
float x);
417 extern OCTAVE_API
double erfi (
double x);
421 extern OCTAVE_API
float dawson (
float x);
422 extern OCTAVE_API
double dawson (
double x);
426 extern OCTAVE_API
double betaincinv (
double x,
double a,
double b);
443 extern OCTAVE_API
void ellipj (
double u,
double m,
double& sn,
double& cn,
444 double& dn,
double&
err);
448 extern OCTAVE_API
double psi (
double x);
449 extern OCTAVE_API
float psi (
float x);
459 #if defined (OCTAVE_USE_DEPRECATED_FUNCTIONS)
461 OCTAVE_DEPRECATED (
"use 'octave::math::acosh' instead")
463 OCTAVE_DEPRECATED (
"use 'octave::math::acosh' instead")
465 OCTAVE_DEPRECATED (
"use 'octave::math::acosh' instead")
467 OCTAVE_DEPRECATED (
"use 'octave::math::acosh' instead")
470 OCTAVE_DEPRECATED (
"use 'octave::math::asinh' instead")
472 OCTAVE_DEPRECATED (
"use 'octave::math::asinh' instead")
474 OCTAVE_DEPRECATED (
"use 'octave::math::asinh' instead")
476 OCTAVE_DEPRECATED (
"use 'octave::math::asinh' instead")
479 OCTAVE_DEPRECATED (
"use 'octave::math::atanh' instead")
481 OCTAVE_DEPRECATED (
"use 'octave::math::atanh' instead")
483 OCTAVE_DEPRECATED (
"use 'octave::math::atanh' instead")
485 OCTAVE_DEPRECATED (
"use 'octave::math::atanh' instead")
488 OCTAVE_DEPRECATED (
"use 'octave::math::erf' instead")
490 OCTAVE_DEPRECATED (
"use 'octave::math::erf' instead")
492 OCTAVE_DEPRECATED (
"use 'octave::math::erf' instead")
494 OCTAVE_DEPRECATED (
"use 'octave::math::erf' instead")
497 OCTAVE_DEPRECATED (
"use 'octave::math::erfc' instead")
499 OCTAVE_DEPRECATED (
"use 'octave::math::erfc' instead")
501 OCTAVE_DEPRECATED (
"use 'octave::math::erfc' instead")
503 OCTAVE_DEPRECATED (
"use 'octave::math::erfc' instead")
506 OCTAVE_DEPRECATED (
"use 'octave::math::expm1' instead")
508 OCTAVE_DEPRECATED (
"use 'octave::math::expm1' instead")
511 OCTAVE_DEPRECATED (
"use 'octave::math::expm1' instead")
513 OCTAVE_DEPRECATED (
"use 'octave::math::expm1' instead")
516 OCTAVE_DEPRECATED (
"use 'octave::math::log1p' instead")
518 OCTAVE_DEPRECATED (
"use 'octave::math::log1p' instead")
521 OCTAVE_DEPRECATED (
"use 'octave::math::log1p' instead")
523 OCTAVE_DEPRECATED (
"use 'octave::math::log1p' instead")
526 OCTAVE_DEPRECATED (
"use 'octave::math::cbrt' instead")
528 OCTAVE_DEPRECATED (
"use 'octave::math::cbrt' instead")
531 OCTAVE_DEPRECATED (
"use 'octave::math::gamma' instead")
533 OCTAVE_DEPRECATED (
"use 'octave::math::lgamma' instead")
536 OCTAVE_DEPRECATED (
"use 'octave::math::rc_lgamma' instead")
539 OCTAVE_DEPRECATED (
"use 'octave::math::gamma' instead")
541 OCTAVE_DEPRECATED (
"use 'octave::math::lgamma' instead")
543 OCTAVE_DEPRECATED (
"use 'octave::math::rc_lgamma' instead")
546 OCTAVE_DEPRECATED (
"use 'octave::math::besselj' instead")
548 OCTAVE_DEPRECATED (
"use 'octave::math::bessely' instead")
550 OCTAVE_DEPRECATED (
"use 'octave::math::besseli' instead")
552 OCTAVE_DEPRECATED (
"use 'octave::math::besselk' instead")
554 OCTAVE_DEPRECATED (
"use 'octave::math::besselh1' instead")
556 OCTAVE_DEPRECATED (
"use 'octave::math::besselh2' instead")
559 OCTAVE_DEPRECATED (
"use 'octave::math::besselj' instead")
652 OCTAVE_DEPRECATED (
"use 'octavh::bessely' instead")
654 OCTAVE_DEPRECATED (
"use 'octavh::besseli' instead")
656 OCTAVE_DEPRECATED (
"use 'octavh::besselk' instead")
658 OCTAVE_DEPRECATED (
"use 'octavh::besselh1' instead")
660 OCTAVE_DEPRECATED (
"use 'octavh::besselh2' instead")
663 OCTAVE_DEPRECATED (
"use 'octave::math::besselj' instead")
754 OCTAVE_DEPRECATED ("use '
octave::math::
airy' instead")
756 OCTAVE_DEPRECATED (
"use 'octave::math::biry' instead")
759 OCTAVE_DEPRECATED (
"use 'octave::math::airy' instead")
761 OCTAVE_DEPRECATED ("use '
octave::math::
biry' instead")
764 OCTAVE_DEPRECATED ("use '
octave::math::
airy' instead")
766 OCTAVE_DEPRECATED ("use '
octave::math::
biry' instead")
769 OCTAVE_DEPRECATED ("use '
octave::math::
airy' instead")
771 OCTAVE_DEPRECATED (
"use 'octave::math::biry' instead")
774 OCTAVE_DEPRECATED (
"use 'octave::math::airy' instead")
776 OCTAVE_DEPRECATED ("use '
octave::math::
biry' instead")
779 OCTAVE_DEPRECATED ("use '
octave::math::
airy' instead")
781 OCTAVE_DEPRECATED ("use '
octave::math::
biry' instead")
786 OCTAVE_DEPRECATED (
"use 'octave::math::betainc' instead")
789 extern OCTAVE_API
Array<
double>
betainc (
double x, const
Array<
double>& a,
double b);
795 OCTAVE_DEPRECATED (
"use 'octave::math::betainc' instead")
803 extern OCTAVE_API
float betainc (
float x,
float a,
float b);
805 extern OCTAVE_API
Array<
float>
betainc (
float x,
float a, const
Array<
float>& b);
807 extern OCTAVE_API
Array<
float>
betainc (
float x, const
Array<
float>& a,
float b);
812 extern OCTAVE_API
Array<
float>
betainc (const
Array<
float>& x,
float a,
float b);
822 OCTAVE_DEPRECATED (
"use 'octave::math::gammainc' instead")
825 OCTAVE_DEPRECATED (
"use 'octave::math::gammainc' instead")
841 OCTAVE_DEPRECATED (
"use 'octave::math::gammainc' instead")
844 OCTAVE_DEPRECATED (
"use 'octave::math::rc_log1p' instead")
860 OCTAVE_DEPRECATED (
"use 'octave::math::rc_log1p' instead")
863 OCTAVE_DEPRECATED (
"use 'octave::math::erfinv' instead")
865 OCTAVE_DEPRECATED (
"use 'octave::math::erfinv' instead")
868 OCTAVE_DEPRECATED (
"use 'octave::math::erfcinv' instead")
870 OCTAVE_DEPRECATED (
"use 'octave::math::erfcinv' instead")
873 OCTAVE_DEPRECATED (
"use 'octave::math::erfcx' instead")
875 OCTAVE_DEPRECATED (
"use 'octave::math::erfcx' instead")
877 OCTAVE_DEPRECATED (
"use 'octave::math::erfcx' instead")
879 OCTAVE_DEPRECATED (
"use 'octave::math::erfcx' instead")
882 OCTAVE_DEPRECATED (
"use 'octave::math::erfi' instead")
884 OCTAVE_DEPRECATED (
"use 'octave::math::erfi' instead")
886 OCTAVE_DEPRECATED (
"use 'octave::math::erfi' instead")
888 OCTAVE_DEPRECATED (
"use 'octave::math::erfi' instead")
891 OCTAVE_DEPRECATED (
"use 'octave::math::dawson' instead")
893 OCTAVE_DEPRECATED (
"use 'octave::math::dawson' instead")
895 OCTAVE_DEPRECATED (
"use 'octave::math::dawson' instead")
897 OCTAVE_DEPRECATED (
"use 'octave::math::dawson' instead")
900 OCTAVE_DEPRECATED (
"use 'octave::math::betaincinv' instead")
903 OCTAVE_DEPRECATED (
"use 'octave::math::betaincinv' instead")
904 extern OCTAVE_API
double betaincinv (
double x,
double a,
double b);
921 OCTAVE_DEPRECATED ("use '
octave::math::
ellipj' instead")
922 inline
void ellipj (
double u,
double m,
double& sn,
double& cn,
double& dn,
double&
err) {
octave::math::ellipj (u, m, sn, cn, dn, err); }
923 OCTAVE_DEPRECATED (
"use 'octave::math::ellipj' instead")
924 inline
void ellipj (const
Complex&
u,
double m,
Complex& sn,
Complex& cn,
Complex& dn,
double&
err) {
octave::math::ellipj (u, m, sn, cn, dn, err); }
929 template <
typename T>
930 OCTAVE_DEPRECATED (
"use 'octave::math::psi' instead")
951 template <
typename T>
952 OCTAVE_DEPRECATED (
"use 'octave::math::psi' instead")
954 psi (const
std::complex<T>& z);
957 inline
std::complex<
double>
958 psi (const
std::complex<
double>& z)
964 inline std::complex<float>
965 psi (
const std::complex<float>& z)
975 template <
typename T>
976 OCTAVE_DEPRECATED (
"use 'octave::math::psi' instead")
F77_RET_T F77_REAL &F77_RET_T F77_DBLE &F77_RET_T F77_REAL &F77_RET_T F77_DBLE &F77_RET_T F77_REAL &F77_RET_T F77_DBLE &F77_RET_T const F77_REAL const F77_REAL F77_REAL &F77_RET_T const F77_DBLE const F77_DBLE F77_DBLE &F77_RET_T F77_REAL &F77_RET_T F77_DBLE &F77_RET_T F77_DBLE &F77_RET_T F77_REAL &F77_RET_T F77_REAL &F77_RET_T F77_DBLE &F77_RET_T const F77_DBLE F77_DBLE &F77_RET_T const F77_REAL F77_REAL &F77_RET_T F77_REAL F77_REAL &F77_RET_T F77_DBLE F77_DBLE &F77_RET_T const F77_DBLE const F77_DBLE F77_DBLE const F77_INT F77_INT * ierr
Octave interface to the compression and uncompression libraries.
subroutine xerf(x, result)
std::complex< double > erfi(std::complex< double > z, double relerr=0)
Complex besselk(double alpha, const Complex &x, bool scaled, octave_idx_type &ierr)
double betaincinv(double y, double p, double q)
Complex rc_lgamma(double x)
Complex besselh1(double alpha, const Complex &x, bool scaled, octave_idx_type &ierr)
static double xlgamma(double x)
subroutine xerfc(x, result)
float gammainc(float x, float a)
subroutine xgamma(x, result)
calling an anonymous function involves an overhead quite comparable to the overhead of an m file function Passing a handle to a built in function is because the interpreter is not involved in the internal loop For a
Complex besseli(double alpha, const Complex &x, bool scaled, octave_idx_type &ierr)
nd deftypefn *octave_map m
subroutine xacosh(x, result)
std::complex< double > erfcx(std::complex< double > z, double relerr=0)
double betainc(double x, double a, double b)
Complex rc_log1p(double x)
Complex besselh2(double alpha, const Complex &x, bool scaled, octave_idx_type &ierr)
void ellipj(double u, double m, double &sn, double &cn, double &dn, double &err)
double gammainc(double x, double a, bool &err)
std::complex< float > FloatComplex
OCTAVE_EXPORT octave_value_list error nd deftypefn *const octave_scalar_map err
Complex airy(const Complex &z, bool deriv, bool scaled, octave_idx_type &ierr)
std::complex< double > Complex
subroutine xatanh(x, result)
F77_RET_T F77_REAL &F77_RET_T F77_DBLE &F77_RET_T F77_REAL &F77_RET_T F77_DBLE &F77_RET_T F77_REAL &F77_RET_T F77_DBLE &F77_RET_T const F77_REAL const F77_REAL F77_REAL &F77_RET_T const F77_DBLE const F77_DBLE F77_DBLE &F77_RET_T F77_REAL &F77_RET_T F77_DBLE &F77_RET_T F77_DBLE &F77_RET_T F77_REAL &F77_RET_T F77_REAL &F77_RET_T F77_DBLE &F77_RET_T const F77_DBLE F77_DBLE &F77_RET_T const F77_REAL F77_REAL &F77_RET_T F77_REAL F77_REAL &F77_RET_T F77_DBLE F77_DBLE &F77_RET_T const F77_DBLE * x
Complex besselj(double alpha, const Complex &x, bool scaled, octave_idx_type &ierr)
Complex bessely(double alpha, const Complex &x, bool scaled, octave_idx_type &ierr)
subroutine xasinh(x, result)
Complex biry(const Complex &z, bool deriv, bool scaled, octave_idx_type &ierr)