24 #if ! defined (octave_lo_specfun_h) 25 #define octave_lo_specfun_h 1 27 #include "octave-config.h" 50 inline float acosh (
float x) {
return std::acoshf (
x); }
68 inline float asinh (
float x) {
return std::asinhf (
x); }
73 inline float atanh (
float x) {
return std::atanhf (
x); }
299 inline float cbrt (
float x) {
return std::cbrtf (
x); }
301 extern OCTAVE_API
double dawson (
double x);
302 extern OCTAVE_API
float dawson (
float x);
306 extern OCTAVE_API
void ellipj (
double u,
double m,
double& sn,
double& cn,
307 double& dn,
double&
err);
312 inline float erf (
float x) {
return std::erff (
x); }
317 inline float erfc (
float x) {
return std::erfcf (
x); }
321 extern OCTAVE_API
double erfcinv (
double x);
322 extern OCTAVE_API
float erfcinv (
float x);
324 extern OCTAVE_API
double erfcx (
double x);
325 extern OCTAVE_API
float erfcx (
float x);
329 extern OCTAVE_API
double erfi (
double x);
330 extern OCTAVE_API
float erfi (
float x);
334 extern OCTAVE_API
double erfinv (
double x);
335 extern OCTAVE_API
float erfinv (
float x);
338 inline float expm1 (
float x) {
return std::expm1f (
x); }
342 extern OCTAVE_API
double gamma (
double x);
343 extern OCTAVE_API
float gamma (
float x);
345 extern OCTAVE_API
double gammainc (
double x,
double a,
bool&
err);
360 extern OCTAVE_API
float gammainc (
float x,
float a,
bool&
err);
378 inline float lgamma (
float x) {
return std::lgammaf (
x); }
381 inline float log1p (
float x) {
return std::log1pf (
x); }
385 extern OCTAVE_API
double psi (
double x);
386 extern OCTAVE_API
float psi (
float x);
400 #if defined (OCTAVE_USE_DEPRECATED_FUNCTIONS) 402 OCTAVE_DEPRECATED (4.2,
"use 'octave::math::acosh' instead")
404 OCTAVE_DEPRECATED (4.2,
"use 'octave::math::acosh' instead")
406 OCTAVE_DEPRECATED (4.2,
"use 'octave::math::acosh' instead")
408 OCTAVE_DEPRECATED (4.2,
"use 'octave::math::acosh' instead")
411 OCTAVE_DEPRECATED (4.2,
"use 'octave::math::asinh' instead")
413 OCTAVE_DEPRECATED (4.2,
"use 'octave::math::asinh' instead")
415 OCTAVE_DEPRECATED (4.2,
"use 'octave::math::asinh' instead")
417 OCTAVE_DEPRECATED (4.2,
"use 'octave::math::asinh' instead")
420 OCTAVE_DEPRECATED (4.2,
"use 'octave::math::atanh' instead")
422 OCTAVE_DEPRECATED (4.2,
"use 'octave::math::atanh' instead")
424 OCTAVE_DEPRECATED (4.2,
"use 'octave::math::atanh' instead")
426 OCTAVE_DEPRECATED (4.2,
"use 'octave::math::atanh' instead")
429 OCTAVE_DEPRECATED (4.2,
"use 'octave::math::erf' instead")
431 OCTAVE_DEPRECATED (4.2,
"use 'octave::math::erf' instead")
433 OCTAVE_DEPRECATED (4.2,
"use 'octave::math::erf' instead")
435 OCTAVE_DEPRECATED (4.2,
"use 'octave::math::erf' instead")
438 OCTAVE_DEPRECATED (4.2,
"use 'octave::math::erfc' instead")
440 OCTAVE_DEPRECATED (4.2,
"use 'octave::math::erfc' instead")
442 OCTAVE_DEPRECATED (4.2,
"use 'octave::math::erfc' instead")
444 OCTAVE_DEPRECATED (4.2,
"use 'octave::math::erfc' instead")
447 OCTAVE_DEPRECATED (4.2,
"use 'octave::math::expm1' instead")
449 OCTAVE_DEPRECATED (4.2,
"use 'octave::math::expm1' instead")
452 OCTAVE_DEPRECATED (4.2,
"use 'octave::math::expm1' instead")
454 OCTAVE_DEPRECATED (4.2,
"use 'octave::math::expm1' instead")
457 OCTAVE_DEPRECATED (4.2,
"use 'octave::math::log1p' instead")
459 OCTAVE_DEPRECATED (4.2,
"use 'octave::math::log1p' instead")
462 OCTAVE_DEPRECATED (4.2,
"use 'octave::math::log1p' instead")
464 OCTAVE_DEPRECATED (4.2,
"use 'octave::math::log1p' instead")
467 OCTAVE_DEPRECATED (4.2,
"use 'octave::math::cbrt' instead")
469 OCTAVE_DEPRECATED (4.2,
"use 'octave::math::cbrt' instead")
472 OCTAVE_DEPRECATED (4.2,
"use 'octave::math::gamma' instead")
474 OCTAVE_DEPRECATED (4.2,
"use 'octave::math::lgamma' instead")
477 OCTAVE_DEPRECATED (4.2,
"use 'octave::math::rc_lgamma' instead")
480 OCTAVE_DEPRECATED (4.2,
"use 'octave::math::gamma' instead")
482 OCTAVE_DEPRECATED (4.2,
"use 'octave::math::lgamma' instead")
484 OCTAVE_DEPRECATED (4.2,
"use 'octave::math::rc_lgamma' instead")
487 OCTAVE_DEPRECATED (4.2,
"use 'octave::math::besselj' instead")
489 OCTAVE_DEPRECATED (4.2,
"use 'octave::math::bessely' instead")
491 OCTAVE_DEPRECATED (4.2,
"use 'octave::math::besseli' instead")
493 OCTAVE_DEPRECATED (4.2,
"use 'octave::math::besselk' instead")
495 OCTAVE_DEPRECATED (4.2,
"use 'octave::math::besselh1' instead")
497 OCTAVE_DEPRECATED (4.2,
"use 'octave::math::besselh2' instead")
500 OCTAVE_DEPRECATED (4.2,
"use 'octave::math::besselj' instead")
593 OCTAVE_DEPRECATED (4.2,
"use 'octavh::bessely' instead")
595 OCTAVE_DEPRECATED (4.2,
"use 'octavh::besseli' instead")
597 OCTAVE_DEPRECATED (4.2,
"use 'octavh::besselk' instead")
599 OCTAVE_DEPRECATED (4.2,
"use 'octavh::besselh1' instead")
601 OCTAVE_DEPRECATED (4.2,
"use 'octavh::besselh2' instead")
604 OCTAVE_DEPRECATED (4.2,
"use 'octave::math::besselj' instead")
697 OCTAVE_DEPRECATED (4.2,
"use 'octave::math::biry' instead")
700 OCTAVE_DEPRECATED (4.2,
"use 'octave::math::airy' instead")
712 OCTAVE_DEPRECATED (4.2,
"use 'octave::math::biry' instead")
715 OCTAVE_DEPRECATED (4.2,
"use 'octave::math::airy' instead")
727 OCTAVE_DEPRECATED (4.2,
"use 'octave::math::gammainc' instead")
730 OCTAVE_DEPRECATED (4.2,
"use 'octave::math::gammainc' instead")
746 OCTAVE_DEPRECATED (4.2,
"use 'octave::math::gammainc' instead")
749 OCTAVE_DEPRECATED (4.2,
"use 'octave::math::rc_log1p' instead")
765 OCTAVE_DEPRECATED (4.2,
"use 'octave::math::rc_log1p' instead")
768 OCTAVE_DEPRECATED (4.2,
"use 'octave::math::erfinv' instead")
770 OCTAVE_DEPRECATED (4.2,
"use 'octave::math::erfinv' instead")
773 OCTAVE_DEPRECATED (4.2,
"use 'octave::math::erfcinv' instead")
775 OCTAVE_DEPRECATED (4.2,
"use 'octave::math::erfcinv' instead")
778 OCTAVE_DEPRECATED (4.2,
"use 'octave::math::erfcx' instead")
780 OCTAVE_DEPRECATED (4.2,
"use 'octave::math::erfcx' instead")
782 OCTAVE_DEPRECATED (4.2,
"use 'octave::math::erfcx' instead")
784 OCTAVE_DEPRECATED (4.2,
"use 'octave::math::erfcx' instead")
787 OCTAVE_DEPRECATED (4.2,
"use 'octave::math::erfi' instead")
789 OCTAVE_DEPRECATED (4.2,
"use 'octave::math::erfi' instead")
791 OCTAVE_DEPRECATED (4.2,
"use 'octave::math::erfi' instead")
793 OCTAVE_DEPRECATED (4.2,
"use 'octave::math::erfi' instead")
796 OCTAVE_DEPRECATED (4.2,
"use 'octave::math::dawson' instead")
798 OCTAVE_DEPRECATED (4.2,
"use 'octave::math::dawson' instead")
800 OCTAVE_DEPRECATED (4.2,
"use 'octave::math::dawson' instead")
802 OCTAVE_DEPRECATED (4.2,
"use 'octave::math::dawson' instead")
805 OCTAVE_DEPRECATED (4.2,
"use 'octave::math::ellipj' instead")
806 inline
void ellipj (
double u,
double m,
double& sn,
double& cn,
double& dn,
double&
err) {
octave::math::ellipj (
u, m, sn, cn, dn,
err); }
807 OCTAVE_DEPRECATED (4.2,
"use 'octave::math::ellipj' instead")
808 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); }
813 template <
typename T>
814 OCTAVE_DEPRECATED (4.2,
"use 'octave::math::psi' instead")
835 template <
typename T>
836 OCTAVE_DEPRECATED (4.2,
"use 'octave::math::psi' instead")
838 psi (const
std::complex<T>& z);
841 inline
std::complex<
double>
842 psi (const
std::complex<
double>& z)
848 inline std::complex<float>
849 psi (
const std::complex<float>& z)
859 template <
typename T>
860 OCTAVE_DEPRECATED (4.2,
"use 'octave::math::psi' instead")
std::complex< double > erfi(std::complex< double > z, double relerr=0)
FloatComplex atanh(const FloatComplex &x)
Complex besselk(double alpha, const Complex &x, bool scaled, octave_idx_type &ierr)
Complex rc_lgamma(double x)
Complex besselh1(double alpha, const Complex &x, bool scaled, octave_idx_type &ierr)
static double xlgamma(double x)
FloatComplex asinh(const FloatComplex &x)
Complex erfc(const Complex &x)
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 expm1(const Complex &x)
OCTAVE_API FloatNDArray gammainc(const FloatNDArray &x, const FloatNDArray &a)
Complex besseli(double alpha, const Complex &x, bool scaled, octave_idx_type &ierr)
Complex log1p(const Complex &x)
std::complex< double > erfcx(std::complex< double > z, double relerr=0)
Complex erf(const Complex &x)
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)
OCTAVE_API 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
FloatComplex acosh(const FloatComplex &x)
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 const F77_DBLE F77_DBLE &F77_RET_T const F77_REAL F77_REAL &F77_RET_T const F77_DBLE const F77_DBLE F77_DBLE const F77_INT F77_INT & ierr
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 const F77_DBLE F77_DBLE &F77_RET_T const F77_REAL F77_REAL &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)
Complex biry(const Complex &z, bool deriv, bool scaled, octave_idx_type &ierr)