mxlib
c++ tools for analyzing astronomical data and other tasks by Jared R. Males. [git repo]
Loading...
Searching...
No Matches
mx::math Namespace Reference

Namespaces

namespace  fit
 
namespace  ft
 
namespace  func
 

Classes

struct  degradT
 Type holding constants related to angle calculations in degrees. More...
 
struct  degradT< degrees, _realT >
 Type holding constants related to angle calculations in degrees. More...
 
struct  degradT< radians, _realT >
 Type holding constants related to angle calculations in radians. More...
 
class  gnuPlot
 An interactive c++ interface to gnuplot. More...
 
struct  gpCurve
 
struct  gsl_interp_linear
 GSL Linear Interpolation. More...
 
struct  gsl_interp_steffen
 GSL Steffen Interpolation. More...
 
class  gslInterpolator
 Class to manage interpolation using the GSL interpolation library. More...
 
class  histogramUniform
 A histogram with uniform bin spacing. More...
 
class  laplace_distribution
 The Laplace (double exponential) continuous distribution for random numbers. More...
 
class  logInterpolator
 Interpolate a function in log space. More...
 
class  point2D
 A point in 2-dimensional space. More...
 
class  randomT
 A random number type, which functions like any other arithmetic type. More...
 
struct  syevrMem
 A struct to hold the working memory for eigenSYEVR and maintain it between calls if desired. More...
 

Typedefs

template<typename realT >
using degreesT = degradT< degrees, realT >
 
template<typename realT >
using radiansT = degradT< radians, realT >
 

Functions

template<typename T >
constexprpi ()
 Get the value of pi.
 
template<>
constexpr float pi< float > ()
 
template<>
constexpr double pi< double > ()
 
template<>
constexpr long double pi< long double > ()
 
template<typename T >
constexprtwo_pi ()
 Get the value of 2pi.
 
template<>
constexpr float two_pi< float > ()
 
template<>
constexpr double two_pi< double > ()
 
template<>
constexpr long double two_pi< long double > ()
 
template<typename T >
constexprhalf_pi ()
 Get the value of pi/2.
 
template<>
constexpr float half_pi< float > ()
 
template<>
constexpr double half_pi< double > ()
 
template<>
constexpr long double half_pi< long double > ()
 
template<typename T >
constexprrad2deg ()
 Get the value of 180/pi.
 
template<>
constexpr float rad2deg< float > ()
 
template<>
constexpr double rad2deg< double > ()
 
template<>
constexpr long double rad2deg< long double > ()
 
template<typename T >
constexprroot_two ()
 Get the value of sqrt(2)
 
template<>
constexpr float root_two< float > ()
 
template<>
constexpr double root_two< double > ()
 
template<>
constexpr long double root_two< long double > ()
 
template<typename T >
constexprln_two ()
 Get the value of ln(2)
 
template<>
constexpr float ln_two< float > ()
 
template<>
constexpr double ln_two< double > ()
 
template<>
constexpr long double ln_two< long double > ()
 
template<typename T >
constexprthird ()
 Get the value of 1/3.
 
template<>
constexpr float third< float > ()
 
template<>
constexpr double third< double > ()
 
template<>
constexpr long double third< long double > ()
 
template<typename floatT >
constexpr floatT five_thirds ()
 Return 5/3 in the specified precision.
 
template<typename floatT >
constexpr floatT five_sixths ()
 Return 5/6 in the specified precision.
 
template<typename floatT >
constexpr floatT eleven_thirds ()
 Return 11/3 in the specified precision.
 
template<typename floatT >
constexpr floatT eleven_sixths ()
 Return 11/6 in the specified precision.
 
template<typename floatT >
constexpr floatT six_fifths ()
 Return 6/5 in the specified precision.
 
template<typename floatT >
constexpr floatT three_fifths ()
 Return 3/5 in the specified precision.
 
template<typename floatT >
constexpr floatT seventeen_thirds ()
 Return 17/3 in the specified precision.
 
template<typename eigenT1 , typename eigenT2 >
void eigenSYRK (eigenT1 &cv, const eigenT2 &ims)
 Calculates the lower triangular part of the covariance matrix of ims.
 
template<typename arrT >
MXLAPACK_INT eigenSYEVR (arrT &eigvec, arrT &eigval, arrT &X, int ev0=0, int ev1=-1, char UPLO='L', syevrMem< typename arrT::Scalar > *mem=0)
 Calculate select eigenvalues and eigenvectors of an Eigen Array.
 
template<typename _evCalcT = double, typename eigenT >
MXLAPACK_INT calcEigenVecs (eigenT &evecs, eigenT &evals, eigenT &cv, int nVecs=0, bool normalize=false, bool check=false, syevrMem< _evCalcT > *mem=0, double *t_eigenv=nullptr)
 Calculate the eigenvectors and eigenvalues given a triangular matrix.
 
template<typename _evCalcT = double, typename eigenT , typename eigenT1 >
MXLAPACK_INT calcKLModes (eigenT &klModes, eigenT &cv, const eigenT1 &Rims, int n_modes=0, syevrMem< _evCalcT > *mem=0, double *t_eigenv=nullptr, double *t_klim=nullptr)
 Calculate the K-L modes, or principle components, given a covariance matrix.
 
template<typename dataT >
MXLAPACK_INT eigenGESDD (Eigen::Array< dataT, -1, -1 > &U, Eigen::Array< dataT, -1, -1 > &S, Eigen::Array< dataT, -1, -1 > &VT, Eigen::Array< dataT, -1, -1 > &A)
 Compute the SVD of an Eigen::Array using LAPACK's xgesdd.
 
template<typename dataT >
int eigenPseudoInverse (Eigen::Array< dataT, -1, -1 > &PInv, dataT &condition, int &nRejected, Eigen::Array< dataT, -1, -1 > &U, Eigen::Array< dataT, -1, -1 > &S, Eigen::Array< dataT, -1, -1 > &VT, int minMN, dataT &maxCondition, dataT alpha=0, int interact=MX_PINV_NO_INTERACT)
 Calculate the pseudo-inverse of a patrix given its SVD.
 
template<typename dataT >
int eigenPseudoInverse (Eigen::Array< dataT, -1, -1 > &PInv, dataT &condition, int &nRejected, Eigen::Array< dataT, -1, -1 > &U, Eigen::Array< dataT, -1, -1 > &S, Eigen::Array< dataT, -1, -1 > &VT, Eigen::Array< dataT, -1, -1 > &A, dataT &maxCondition, dataT alpha=0, int interact=MX_PINV_NO_INTERACT)
 Calculate the pseudo-inverse of a patrix using the SVD.
 
template<typename dataT >
int eigenPseudoInverse (Eigen::Array< dataT, -1, -1 > &PInv, dataT &condition, int &nRejected, Eigen::Array< dataT, -1, -1 > &A, dataT &maxCondition, dataT alpha=0, int interact=MX_PINV_NO_INTERACT)
 Calculate the pseudo-inverse of a matrix using the SVD.
 
template<typename realT >
realT dtor (realT q)
 Convert from degrees to radians.
 
template<typename realT >
realT rtod (realT q)
 Convert from radians to degrees.
 
template<class angleT >
angleT::realT angleMod (typename angleT::realT q)
 Calculate the angle modulo full-circle, normalizing to a positive value.
 
template<class angleT >
angleT::realT angleDiff (typename angleT::realT q1, typename angleT::realT q2)
 Calculate the difference between two angles, correctly across 0/360.
 
template<class angleT >
angleT::realT angleMean (const std::vector< typename angleT::realT > &q)
 Calculate the mean of a set of angles, correctly across 0/360.
 
template<int degrad = 0, typename realT >
int continueAngles (std::vector< realT > &angles, realT threshold=0.75)
 Make a vector of angles continuous, fixing the 0/360 crossing.
 
template<typename realT >
void rotatePoint (realT &x0, realT &y0, realT angle)
 Rotate a point about the origin.
 
template<typename realT >
int gsl_interpolate (const gsl_interp_type *interpT, realT *xin, realT *yin, size_t Nin, realT *xout, realT *yout, size_t Nout)
 Interpolate a 1-D data X vs Y discrete function onto a new X axis.
 
template<typename realT >
int gsl_interpolate (const gsl_interp_type *interpT, std::vector< realT > &xin, std::vector< realT > &yin, std::vector< realT > &xout, std::vector< realT > &yout)
 Interpolate a 1-D data X vs Y discrete function onto a new X axis (vector version)
 
template<typename interpT >
interpT::realT logRadProfIntegrationF (typename interpT::realT x, void *params)
 
template<typename interpT >
interpT::realT logRadProfIntegrator (const std::vector< typename interpT::realT > &x, const std::vector< typename interpT::realT > &y, typename interpT::realT x0, typename interpT::realT xf)
 Integrate a numerical radial profile using logarithmic interpolation.
 
template<typename interpT >
interpT::realT logRadProfIntegrator (const std::vector< typename interpT::realT > &x, const std::vector< typename interpT::realT > &y)
 Integrate a numerical radial profile using logarithmic interpolation.
 
template<typename vectorScT , typename vectorT >
vectorT::value_type radprofIntegral (vectorScT r, vectorT p, bool inczero=false)
 Calculate the 2D integral given a radial profile.
 
template<typename intT >
int randomSeed (intT &seedval)
 Get a value to use as a random seed.
 
template<typename _RealType >
bool operator== (const laplace_distribution< _RealType > &__d1, const laplace_distribution< _RealType > &__d2)
 Return true if two exponential distributions have the same parameters.
 
template<typename _RealType >
bool operator!= (const laplace_distribution< _RealType > &__d1, const laplace_distribution< _RealType > &__d2)
 Return true if two exponential distributions have different parameters.
 
template<typename _RealType , typename _CharT , typename _Traits >
std::basic_ostream< _CharT, _Traits > & operator<< (std::basic_ostream< _CharT, _Traits > &, const laplace_distribution< _RealType > &)
 Inserts a laplace_distribution random number distribution __x into the output stream __os.
 
template<typename _RealType , typename _CharT , typename _Traits >
std::basic_istream< _CharT, _Traits > & operator>> (std::basic_istream< _CharT, _Traits > &, laplace_distribution< _RealType > &)
 Extracts a laplace_distribution random number distribution __x from the input stream __is.
 
template<typename realT >
realT cubicDescriminant (const realT &a, const realT &b, const realT &c, const realT &d)
 Calculate the descriminant for the general cubic.
 
template<typename realT >
realT cubicDescriminant (const realT &p, const realT &q)
 Calculate the descriminant for the depressed cubic.
 
template<typename realT >
void cubicDepressed (realT &p, realT &q, const realT &a, const realT &b, const realT &c, const realT &d)
 Convert a general cubic equation to depressed form.
 
template<typename realT >
realT cubicRealRoot (const realT &p, const realT &q)
 Calculate the real root for a depressed cubic with negative descriminant.
 
template<typename realT >
void quarticRoots (std::vector< std::complex< realT > > &x, realT a, realT b, realT c, realT d, realT e)
 Find the roots of the general quartic equation.
 
template<typename dataT >
void scal (const int N, const dataT &alpha, dataT *X, const int incX)
 Template wrapper for cblas xSCAL.
 
template<>
void scal< float > (const int N, const float &alpha, float *X, const int incX)
 
template<>
void scal< double > (const int N, const double &alpha, double *X, const int incX)
 
template<>
void scal< std::complex< float > > (const int N, const std::complex< float > &alpha, std::complex< float > *X, const int incX)
 
template<>
void scal< std::complex< double > > (const int N, const std::complex< double > &alpha, std::complex< double > *X, const int incX)
 
template<typename dataT >
void hadp_impl (const int N, dataT *__restrict__ Y, dataT *__restrict__ X)
 Implementation of the Hadamard (element-wise) product of two vectors.
 
template<typename dataT >
void hadp (const int N, dataT *Y, dataT *X)
 Template wrapper for cblas-extension xHADP.
 
template<typename dataT >
void hadd_impl (const int N, const dataT alpha, const dataT *Y, const int incY, dataT *X, const int incX)
 Implementation of the Hadamard (element-wise) division of two vectors.
 
template<typename dataT >
void hadd (const int N, const dataT alpha, const dataT *Y, const int incY, dataT *X, const int incX)
 Template wrapper for cblas-extension xHADD.
 
template<typename dataT >
void gemm (const CBLAS_ORDER Order, const CBLAS_TRANSPOSE TransA, const CBLAS_TRANSPOSE TransB, const int M, const int N, const int K, const dataT &alpha, const dataT *A, const int lda, const dataT *B, const int ldb, const dataT &beta, dataT *C, const int ldc)
 Template Wrapper for cblas xGEMM.
 
template<>
void gemm< float > (const CBLAS_ORDER Order, const CBLAS_TRANSPOSE TransA, const CBLAS_TRANSPOSE TransB, const int M, const int N, const int K, const float &alpha, const float *A, const int lda, const float *B, const int ldb, const float &beta, float *C, const int ldc)
 
template<>
void gemm< double > (const CBLAS_ORDER Order, const CBLAS_TRANSPOSE TransA, const CBLAS_TRANSPOSE TransB, const int M, const int N, const int K, const double &alpha, const double *A, const int lda, const double *B, const int ldb, const double &beta, double *C, const int ldc)
 
template<>
void gemm< std::complex< float > > (const CBLAS_ORDER Order, const CBLAS_TRANSPOSE TransA, const CBLAS_TRANSPOSE TransB, const int M, const int N, const int K, const std::complex< float > &alpha, const std::complex< float > *A, const int lda, const std::complex< float > *B, const int ldb, const std::complex< float > &beta, std::complex< float > *C, const int ldc)
 
template<>
void gemm< std::complex< double > > (const CBLAS_ORDER Order, const CBLAS_TRANSPOSE TransA, const CBLAS_TRANSPOSE TransB, const int M, const int N, const int K, const std::complex< double > &alpha, const std::complex< double > *A, const int lda, const std::complex< double > *B, const int ldb, const std::complex< double > &beta, std::complex< double > *C, const int ldc)
 
template<typename dataT >
void syrk (const CBLAS_ORDER Order, const CBLAS_UPLO Uplo, const CBLAS_TRANSPOSE Trans, const int N, const int K, const dataT &alpha, const dataT *A, const int lda, const dataT &beta, dataT *C, const int ldc)
 Template Wrapper for cblas xSYRK.
 
template<>
void syrk< float > (const CBLAS_ORDER Order, const CBLAS_UPLO Uplo, const CBLAS_TRANSPOSE Trans, const int N, const int K, const float &alpha, const float *A, const int lda, const float &beta, float *C, const int ldc)
 
template<>
void syrk< double > (const CBLAS_ORDER Order, const CBLAS_UPLO Uplo, const CBLAS_TRANSPOSE Trans, const int N, const int K, const double &alpha, const double *A, const int lda, const double &beta, double *C, const int ldc)
 
template<>
void syrk< std::complex< float > > (const CBLAS_ORDER Order, const CBLAS_UPLO Uplo, const CBLAS_TRANSPOSE Trans, const int N, const int K, const std::complex< float > &alpha, const std::complex< float > *A, const int lda, const std::complex< float > &beta, std::complex< float > *C, const int ldc)
 
template<>
void syrk< std::complex< double > > (const CBLAS_ORDER Order, const CBLAS_UPLO Uplo, const CBLAS_TRANSPOSE Trans, const int N, const int K, const std::complex< double > &alpha, const std::complex< double > *A, const int lda, const std::complex< double > &beta, std::complex< double > *C, const int ldc)
 
template<typename dataT >
dataT lamch (char CMACH)
 Determine machine parameters.
 
template<>
float lamch< float > (char CMACH)
 
template<>
double lamch< double > (char CMACH)
 
template<typename dataT >
MXLAPACK_INT potrf (char UPLO, MXLAPACK_INT N, dataT *A, MXLAPACK_INT LDA, MXLAPACK_INT &INFO)
 Compute the Cholesky factorization of a real symmetric positive definite matrix A.
 
template<>
MXLAPACK_INT potrf< float > (char UPLO, MXLAPACK_INT N, float *A, MXLAPACK_INT LDA, MXLAPACK_INT &INFO)
 
template<>
MXLAPACK_INT potrf< double > (char UPLO, MXLAPACK_INT N, double *A, MXLAPACK_INT LDA, MXLAPACK_INT &INFO)
 
template<>
MXLAPACK_INT potrf< std::complex< float > > (char UPLO, MXLAPACK_INT N, std::complex< float > *A, MXLAPACK_INT LDA, MXLAPACK_INT &INFO)
 
template<>
MXLAPACK_INT potrf< std::complex< double > > (char UPLO, MXLAPACK_INT N, std::complex< double > *A, MXLAPACK_INT LDA, MXLAPACK_INT &INFO)
 
template<typename dataT >
MXLAPACK_INT sytrd (char UPLO, MXLAPACK_INT N, dataT *A, MXLAPACK_INT LDA, dataT *D, dataT *E, dataT *TAU, dataT *WORK, MXLAPACK_INT LWORK, MXLAPACK_INT INFO)
 Reduce a real symmetric matrix to real symmetric tridiagonal form by an orthogonal similarity transformation.
 
template<>
MXLAPACK_INT sytrd< float > (char UPLO, MXLAPACK_INT N, float *A, MXLAPACK_INT LDA, float *D, float *E, float *TAU, float *WORK, MXLAPACK_INT LWORK, MXLAPACK_INT INFO)
 
template<>
MXLAPACK_INT sytrd< double > (char UPLO, MXLAPACK_INT N, double *A, MXLAPACK_INT LDA, double *D, double *E, double *TAU, double *WORK, MXLAPACK_INT LWORK, MXLAPACK_INT INFO)
 
template<typename dataT >
MXLAPACK_INT syevr (char JOBZ, char RANGE, char UPLO, MXLAPACK_INT N, dataT *A, MXLAPACK_INT LDA, dataT VL, dataT VU, MXLAPACK_INT IL, MXLAPACK_INT IU, dataT ABSTOL, MXLAPACK_INT *M, dataT *W, dataT *Z, MXLAPACK_INT LDZ, MXLAPACK_INT *ISUPPZ, dataT *WORK, MXLAPACK_INT LWORK, MXLAPACK_INT *IWORK, MXLAPACK_INT LIWORK)
 Compute selected eigenvalues and, optionally, eigenvectors of a real symmetric matrix.
 
template<>
MXLAPACK_INT syevr< float > (char JOBZ, char RANGE, char UPLO, MXLAPACK_INT N, float *A, MXLAPACK_INT LDA, float VL, float VU, MXLAPACK_INT IL, MXLAPACK_INT IU, float ABSTOL, MXLAPACK_INT *M, float *W, float *Z, MXLAPACK_INT LDZ, MXLAPACK_INT *ISUPPZ, float *WORK, MXLAPACK_INT LWORK, MXLAPACK_INT *IWORK, MXLAPACK_INT LIWORK)
 
template<>
MXLAPACK_INT syevr< double > (char JOBZ, char RANGE, char UPLO, MXLAPACK_INT N, double *A, MXLAPACK_INT LDA, double VL, double VU, MXLAPACK_INT IL, MXLAPACK_INT IU, double ABSTOL, MXLAPACK_INT *M, double *W, double *Z, MXLAPACK_INT LDZ, MXLAPACK_INT *ISUPPZ, double *WORK, MXLAPACK_INT LWORK, MXLAPACK_INT *IWORK, MXLAPACK_INT LIWORK)
 
template<typename dataT >
MXLAPACK_INT gesvd (char JOBU, char JOBVT, MXLAPACK_INT M, MXLAPACK_INT N, dataT *A, MXLAPACK_INT LDA, dataT *S, dataT *U, MXLAPACK_INT LDU, dataT *VT, MXLAPACK_INT LDVT, dataT *WORK, MXLAPACK_INT LWORK)
 Compute the singular value decomposition (SVD) of a real matrix.
 
template<>
MXLAPACK_INT gesvd< float > (char JOBU, char JOBVT, MXLAPACK_INT M, MXLAPACK_INT N, float *A, MXLAPACK_INT LDA, float *S, float *U, MXLAPACK_INT LDU, float *VT, MXLAPACK_INT LDVT, float *WORK, MXLAPACK_INT LWORK)
 
template<>
MXLAPACK_INT gesvd< double > (char JOBU, char JOBVT, MXLAPACK_INT M, MXLAPACK_INT N, double *A, MXLAPACK_INT LDA, double *S, double *U, MXLAPACK_INT LDU, double *VT, MXLAPACK_INT LDVT, double *WORK, MXLAPACK_INT LWORK)
 
template<typename dataT >
std::string gpBinaryFormat ()
 
template<>
std::string gpBinaryFormat< char > ()
 
template<>
std::string gpBinaryFormat< unsigned char > ()
 
template<>
std::string gpBinaryFormat< short > ()
 
template<>
std::string gpBinaryFormat< unsigned short > ()
 
template<>
std::string gpBinaryFormat< int > ()
 
template<>
std::string gpBinaryFormat< unsigned int > ()
 
template<>
std::string gpBinaryFormat< long > ()
 
template<>
std::string gpBinaryFormat< unsigned long > ()
 
template<>
std::string gpBinaryFormat< float > ()
 
template<>
std::string gpBinaryFormat< double > ()
 
template<>
void scal< float > (const int N, const float &alpha, float *X, const int incX)
 
template<>
void scal< double > (const int N, const double &alpha, double *X, const int incX)
 
template<>
void scal< std::complex< float > > (const int N, const std::complex< float > &alpha, std::complex< float > *X, const int incX)
 
template<>
void scal< std::complex< double > > (const int N, const std::complex< double > &alpha, std::complex< double > *X, const int incX)
 
template<>
void gemm< float > (const CBLAS_ORDER Order, const CBLAS_TRANSPOSE TransA, const CBLAS_TRANSPOSE TransB, const int M, const int N, const int K, const float &alpha, const float *A, const int lda, const float *B, const int ldb, const float &beta, float *C, const int ldc)
 
template<>
void gemm< double > (const CBLAS_ORDER Order, const CBLAS_TRANSPOSE TransA, const CBLAS_TRANSPOSE TransB, const int M, const int N, const int K, const double &alpha, const double *A, const int lda, const double *B, const int ldb, const double &beta, double *C, const int ldc)
 
template<>
void gemm< std::complex< float > > (const CBLAS_ORDER Order, const CBLAS_TRANSPOSE TransA, const CBLAS_TRANSPOSE TransB, const int M, const int N, const int K, const std::complex< float > &alpha, const std::complex< float > *A, const int lda, const std::complex< float > *B, const int ldb, const std::complex< float > &beta, std::complex< float > *C, const int ldc)
 
template<>
void gemm< std::complex< double > > (const CBLAS_ORDER Order, const CBLAS_TRANSPOSE TransA, const CBLAS_TRANSPOSE TransB, const int M, const int N, const int K, const std::complex< double > &alpha, const std::complex< double > *A, const int lda, const std::complex< double > *B, const int ldb, const std::complex< double > &beta, std::complex< double > *C, const int ldc)
 
template<>
void syrk< float > (const CBLAS_ORDER Order, const CBLAS_UPLO Uplo, const CBLAS_TRANSPOSE Trans, const int N, const int K, const float &alpha, const float *A, const int lda, const float &beta, float *C, const int ldc)
 
template<>
void syrk< double > (const CBLAS_ORDER Order, const CBLAS_UPLO Uplo, const CBLAS_TRANSPOSE Trans, const int N, const int K, const double &alpha, const double *A, const int lda, const double &beta, double *C, const int ldc)
 
template<>
void syrk< std::complex< float > > (const CBLAS_ORDER Order, const CBLAS_UPLO Uplo, const CBLAS_TRANSPOSE Trans, const int N, const int K, const std::complex< float > &alpha, const std::complex< float > *A, const int lda, const std::complex< float > &beta, std::complex< float > *C, const int ldc)
 
template<>
void syrk< std::complex< double > > (const CBLAS_ORDER Order, const CBLAS_UPLO Uplo, const CBLAS_TRANSPOSE Trans, const int N, const int K, const std::complex< double > &alpha, const std::complex< double > *A, const int lda, const std::complex< double > &beta, std::complex< double > *C, const int ldc)
 
template<>
float lamch< float > (char CMACH)
 
template<>
double lamch< double > (char CMACH)
 
template<>
MXLAPACK_INT potrf< float > (char UPLO, MXLAPACK_INT N, float *A, MXLAPACK_INT LDA, MXLAPACK_INT &INFO)
 
template<>
MXLAPACK_INT potrf< double > (char UPLO, MXLAPACK_INT N, double *A, MXLAPACK_INT LDA, MXLAPACK_INT &INFO)
 
template<>
MXLAPACK_INT potrf< std::complex< float > > (char UPLO, MXLAPACK_INT N, std::complex< float > *A, MXLAPACK_INT LDA, MXLAPACK_INT &INFO)
 
template<>
MXLAPACK_INT potrf< std::complex< double > > (char UPLO, MXLAPACK_INT N, std::complex< double > *A, MXLAPACK_INT LDA, MXLAPACK_INT &INFO)
 
template<>
MXLAPACK_INT sytrd< float > (char UPLO, MXLAPACK_INT N, float *A, MXLAPACK_INT LDA, float *D, float *E, float *TAU, float *WORK, MXLAPACK_INT LWORK, MXLAPACK_INT INFO)
 
template<>
MXLAPACK_INT sytrd< double > (char UPLO, MXLAPACK_INT N, double *A, MXLAPACK_INT LDA, double *D, double *E, double *TAU, double *WORK, MXLAPACK_INT LWORK, MXLAPACK_INT INFO)
 
template<>
MXLAPACK_INT syevr< float > (char JOBZ, char RANGE, char UPLO, MXLAPACK_INT N, float *A, MXLAPACK_INT LDA, float VL, float VU, MXLAPACK_INT IL, MXLAPACK_INT IU, float ABSTOL, MXLAPACK_INT *M, float *W, float *Z, MXLAPACK_INT LDZ, MXLAPACK_INT *ISUPPZ, float *WORK, MXLAPACK_INT LWORK, MXLAPACK_INT *IWORK, MXLAPACK_INT LIWORK)
 
template<>
MXLAPACK_INT syevr< double > (char JOBZ, char RANGE, char UPLO, MXLAPACK_INT N, double *A, MXLAPACK_INT LDA, double VL, double VU, MXLAPACK_INT IL, MXLAPACK_INT IU, double ABSTOL, MXLAPACK_INT *M, double *W, double *Z, MXLAPACK_INT LDZ, MXLAPACK_INT *ISUPPZ, double *WORK, MXLAPACK_INT LWORK, MXLAPACK_INT *IWORK, MXLAPACK_INT LIWORK)
 
template<>
MXLAPACK_INT gesvd< float > (char JOBU, char JOBVT, MXLAPACK_INT M, MXLAPACK_INT N, float *A, MXLAPACK_INT LDA, float *S, float *U, MXLAPACK_INT LDU, float *VT, MXLAPACK_INT LDVT, float *WORK, MXLAPACK_INT LWORK)
 
template<>
MXLAPACK_INT gesvd< double > (char JOBU, char JOBVT, MXLAPACK_INT M, MXLAPACK_INT N, double *A, MXLAPACK_INT LDA, double *S, double *U, MXLAPACK_INT LDU, double *VT, MXLAPACK_INT LDVT, double *WORK, MXLAPACK_INT LWORK)
 
template<>
MXLAPACK_INT gesdd< float > (char JOBZ, MXLAPACK_INT M, MXLAPACK_INT N, float *A, MXLAPACK_INT LDA, float *S, float *U, MXLAPACK_INT LDU, float *VT, MXLAPACK_INT LDVT, float *WORK, MXLAPACK_INT LWORK, MXLAPACK_INT *IWORK, MXLAPACK_INT INFO)
 
template<>
MXLAPACK_INT gesdd< double > (char JOBZ, MXLAPACK_INT M, MXLAPACK_INT N, double *A, MXLAPACK_INT LDA, double *S, double *U, MXLAPACK_INT LDU, double *VT, MXLAPACK_INT LDVT, double *WORK, MXLAPACK_INT LWORK, MXLAPACK_INT *IWORK, MXLAPACK_INT INFO)
 

Typedef Documentation

◆ degreesT

Definition at line 106 of file geo.hpp.

◆ radiansT

Definition at line 124 of file geo.hpp.

Function Documentation

◆ cubicDepressed()

template<typename realT >
void mx::math::cubicDepressed ( realT p,
realT q,
const realT a,
const realT b,
const realT c,
const realT d 
)

Convert a general cubic equation to depressed form.

The general cubic is

\[ ax^3 + bx^2 + cx + d = 0 \]

which can be converted to compressed form

\[ t^3 + pt + q = 0 \]

Parameters
[out]pthe 1st order coefficient of the depressed cubic
[out]qthe 0th order coefficient of the depressed cubic
[in]athe 3rd order coefficient of the general cubic
[in]bthe 2nd order coefficient of the general cubic
[in]cthe 1st order coefficient of the general cubic
[in]dthe 0th order coefficient of the general cubic

Definition at line 77 of file roots.hpp.

References six_fifths().

Referenced by mx::AO::analysis::F_mod().

◆ cubicDescriminant() [1/2]

template<typename realT >
realT mx::math::cubicDescriminant ( const realT a,
const realT b,
const realT c,
const realT d 
)

Calculate the descriminant for the general cubic.

Returns
the descriminant
Parameters
[in]athe 3rd order coefficient of the general cubic
[in]bthe 2nd order coefficient of the general cubic
[in]cthe 1st order coefficient of the general cubic
[in]dthe 0th order coefficient of the general cubic

Definition at line 44 of file roots.hpp.

References six_fifths().

◆ cubicDescriminant() [2/2]

template<typename realT >
realT mx::math::cubicDescriminant ( const realT p,
const realT q 
)

Calculate the descriminant for the depressed cubic.

Returns
the descriminant
Parameters
[in]pthe 0th order coefficient of the depressed cubic
[in]qthe 0th order coefficient of the depressed cubic

Definition at line 58 of file roots.hpp.

References six_fifths().

◆ cubicRealRoot()

template<typename realT >
realT mx::math::cubicRealRoot ( const realT p,
const realT q 
)

Calculate the real root for a depressed cubic with negative descriminant.

Returns
the real root for a depressed cubic defined by p and q
Exceptions
std::runtime_errorif there are 3 real roots
Parameters
[in]pthe 1st order coefficient of the depressed cubic
[in]qthe 0th order coefficient of the depressed cubic

Definition at line 97 of file roots.hpp.

References six_fifths().

Referenced by mx::AO::analysis::F_mod().

◆ gemm< double >() [1/2]

template<>
void mx::math::gemm< double > ( const CBLAS_ORDER  Order,
const CBLAS_TRANSPOSE  TransA,
const CBLAS_TRANSPOSE  TransB,
const int  M,
const int  N,
const int  K,
const double alpha,
const double A,
const int  lda,
const double B,
const int  ldb,
const double beta,
double C,
const int  ldc 
)

Definition at line 81 of file templateBLAS.cpp.

References six_fifths().

◆ gemm< double >() [2/2]

template<>
void mx::math::gemm< double > ( const CBLAS_ORDER  Order,
const CBLAS_TRANSPOSE  TransA,
const CBLAS_TRANSPOSE  TransB,
const int  M,
const int  N,
const int  K,
const double alpha,
const double A,
const int  lda,
const double B,
const int  ldb,
const double beta,
double C,
const int  ldc 
)

Definition at line 81 of file templateBLAS.cpp.

References six_fifths().

◆ gemm< float >() [1/2]

template<>
void mx::math::gemm< float > ( const CBLAS_ORDER  Order,
const CBLAS_TRANSPOSE  TransA,
const CBLAS_TRANSPOSE  TransB,
const int  M,
const int  N,
const int  K,
const float alpha,
const float A,
const int  lda,
const float B,
const int  ldb,
const float beta,
float C,
const int  ldc 
)

Definition at line 62 of file templateBLAS.cpp.

References six_fifths().

◆ gemm< float >() [2/2]

template<>
void mx::math::gemm< float > ( const CBLAS_ORDER  Order,
const CBLAS_TRANSPOSE  TransA,
const CBLAS_TRANSPOSE  TransB,
const int  M,
const int  N,
const int  K,
const float alpha,
const float A,
const int  lda,
const float B,
const int  ldb,
const float beta,
float C,
const int  ldc 
)

Definition at line 62 of file templateBLAS.cpp.

References six_fifths().

◆ gemm< std::complex< double > >() [1/2]

template<>
void mx::math::gemm< std::complex< double > > ( const CBLAS_ORDER  Order,
const CBLAS_TRANSPOSE  TransA,
const CBLAS_TRANSPOSE  TransB,
const int  M,
const int  N,
const int  K,
const std::complex< double > &  alpha,
const std::complex< double > *  A,
const int  lda,
const std::complex< double > *  B,
const int  ldb,
const std::complex< double > &  beta,
std::complex< double > *  C,
const int  ldc 
)

Definition at line 119 of file templateBLAS.cpp.

References six_fifths().

◆ gemm< std::complex< double > >() [2/2]

template<>
void mx::math::gemm< std::complex< double > > ( const CBLAS_ORDER  Order,
const CBLAS_TRANSPOSE  TransA,
const CBLAS_TRANSPOSE  TransB,
const int  M,
const int  N,
const int  K,
const std::complex< double > &  alpha,
const std::complex< double > *  A,
const int  lda,
const std::complex< double > *  B,
const int  ldb,
const std::complex< double > &  beta,
std::complex< double > *  C,
const int  ldc 
)

Definition at line 119 of file templateBLAS.cpp.

References six_fifths().

◆ gemm< std::complex< float > >() [1/2]

template<>
void mx::math::gemm< std::complex< float > > ( const CBLAS_ORDER  Order,
const CBLAS_TRANSPOSE  TransA,
const CBLAS_TRANSPOSE  TransB,
const int  M,
const int  N,
const int  K,
const std::complex< float > &  alpha,
const std::complex< float > *  A,
const int  lda,
const std::complex< float > *  B,
const int  ldb,
const std::complex< float > &  beta,
std::complex< float > *  C,
const int  ldc 
)

Definition at line 100 of file templateBLAS.cpp.

References six_fifths().

◆ gemm< std::complex< float > >() [2/2]

template<>
void mx::math::gemm< std::complex< float > > ( const CBLAS_ORDER  Order,
const CBLAS_TRANSPOSE  TransA,
const CBLAS_TRANSPOSE  TransB,
const int  M,
const int  N,
const int  K,
const std::complex< float > &  alpha,
const std::complex< float > *  A,
const int  lda,
const std::complex< float > *  B,
const int  ldb,
const std::complex< float > &  beta,
std::complex< float > *  C,
const int  ldc 
)

Definition at line 100 of file templateBLAS.cpp.

References six_fifths().

◆ gesdd< double >()

template<>
MXLAPACK_INT mx::math::gesdd< double > ( char  JOBZ,
MXLAPACK_INT  M,
MXLAPACK_INT  N,
double A,
MXLAPACK_INT  LDA,
double S,
double U,
MXLAPACK_INT  LDU,
double VT,
MXLAPACK_INT  LDVT,
double WORK,
MXLAPACK_INT  LWORK,
MXLAPACK_INT IWORK,
MXLAPACK_INT  INFO 
)

Definition at line 433 of file templateLapack.cpp.

References six_fifths().

◆ gesdd< float >()

template<>
MXLAPACK_INT mx::math::gesdd< float > ( char  JOBZ,
MXLAPACK_INT  M,
MXLAPACK_INT  N,
float A,
MXLAPACK_INT  LDA,
float S,
float U,
MXLAPACK_INT  LDU,
float VT,
MXLAPACK_INT  LDVT,
float WORK,
MXLAPACK_INT  LWORK,
MXLAPACK_INT IWORK,
MXLAPACK_INT  INFO 
)

Definition at line 393 of file templateLapack.cpp.

References six_fifths().

◆ gesvd< double >() [1/2]

template<>
MXLAPACK_INT mx::math::gesvd< double > ( char  JOBU,
char  JOBVT,
MXLAPACK_INT  M,
MXLAPACK_INT  N,
double A,
MXLAPACK_INT  LDA,
double S,
double U,
MXLAPACK_INT  LDU,
double VT,
MXLAPACK_INT  LDVT,
double WORK,
MXLAPACK_INT  LWORK 
)

Definition at line 351 of file templateLapack.cpp.

References six_fifths().

◆ gesvd< double >() [2/2]

template<>
MXLAPACK_INT mx::math::gesvd< double > ( char  JOBU,
char  JOBVT,
MXLAPACK_INT  M,
MXLAPACK_INT  N,
double A,
MXLAPACK_INT  LDA,
double S,
double U,
MXLAPACK_INT  LDU,
double VT,
MXLAPACK_INT  LDVT,
double WORK,
MXLAPACK_INT  LWORK 
)

Definition at line 351 of file templateLapack.cpp.

References six_fifths().

◆ gesvd< float >() [1/2]

template<>
MXLAPACK_INT mx::math::gesvd< float > ( char  JOBU,
char  JOBVT,
MXLAPACK_INT  M,
MXLAPACK_INT  N,
float A,
MXLAPACK_INT  LDA,
float S,
float U,
MXLAPACK_INT  LDU,
float VT,
MXLAPACK_INT  LDVT,
float WORK,
MXLAPACK_INT  LWORK 
)

Definition at line 309 of file templateLapack.cpp.

References six_fifths().

◆ gesvd< float >() [2/2]

template<>
MXLAPACK_INT mx::math::gesvd< float > ( char  JOBU,
char  JOBVT,
MXLAPACK_INT  M,
MXLAPACK_INT  N,
float A,
MXLAPACK_INT  LDA,
float S,
float U,
MXLAPACK_INT  LDU,
float VT,
MXLAPACK_INT  LDVT,
float WORK,
MXLAPACK_INT  LWORK 
)

Definition at line 309 of file templateLapack.cpp.

References six_fifths().

◆ gpBinaryFormat()

template<typename dataT >
std::string mx::math::gpBinaryFormat ( )

Definition at line 91 of file gnuPlot.hpp.

◆ gpBinaryFormat< char >()

template<>
std::string mx::math::gpBinaryFormat< char > ( )

◆ gpBinaryFormat< double >()

template<>
std::string mx::math::gpBinaryFormat< double > ( )

◆ gpBinaryFormat< float >()

template<>
std::string mx::math::gpBinaryFormat< float > ( )

◆ gpBinaryFormat< int >()

template<>
std::string mx::math::gpBinaryFormat< int > ( )

◆ gpBinaryFormat< long >()

template<>
std::string mx::math::gpBinaryFormat< long > ( )

◆ gpBinaryFormat< short >()

template<>
std::string mx::math::gpBinaryFormat< short > ( )

◆ gpBinaryFormat< unsigned char >()

template<>
std::string mx::math::gpBinaryFormat< unsigned char > ( )

◆ gpBinaryFormat< unsigned int >()

template<>
std::string mx::math::gpBinaryFormat< unsigned int > ( )

◆ gpBinaryFormat< unsigned long >()

template<>
std::string mx::math::gpBinaryFormat< unsigned long > ( )

◆ gpBinaryFormat< unsigned short >()

template<>
std::string mx::math::gpBinaryFormat< unsigned short > ( )

◆ half_pi< double >()

template<>
constexpr double mx::math::half_pi< double > ( )
constexpr

Definition at line 164 of file constants.hpp.

References MX_INTERNAL_PI_100.

◆ half_pi< float >()

template<>
constexpr float mx::math::half_pi< float > ( )
constexpr

Definition at line 158 of file constants.hpp.

References MX_INTERNAL_PI_100.

◆ half_pi< long double >()

template<>
constexpr long double mx::math::half_pi< long double > ( )
constexpr

Definition at line 170 of file constants.hpp.

References MX_INTERNAL_PI_100.

◆ lamch< double >() [1/2]

template<>
double mx::math::lamch< double > ( char  CMACH)

Definition at line 47 of file templateLapack.cpp.

References six_fifths().

Referenced by SCENARIO().

◆ lamch< double >() [2/2]

template<>
double mx::math::lamch< double > ( char  CMACH)

Definition at line 47 of file templateLapack.cpp.

References six_fifths().

Referenced by SCENARIO().

◆ lamch< float >() [1/2]

template<>
float mx::math::lamch< float > ( char  CMACH)

Definition at line 35 of file templateLapack.cpp.

References six_fifths().

Referenced by SCENARIO().

◆ lamch< float >() [2/2]

template<>
float mx::math::lamch< float > ( char  CMACH)

Definition at line 35 of file templateLapack.cpp.

References six_fifths().

Referenced by SCENARIO().

◆ ln_two< double >()

template<>
constexpr double mx::math::ln_two< double > ( )
constexpr

Definition at line 300 of file constants.hpp.

References MX_INTERNAL_LN2_100.

◆ ln_two< float >()

template<>
constexpr float mx::math::ln_two< float > ( )
constexpr

Definition at line 294 of file constants.hpp.

References MX_INTERNAL_LN2_100.

◆ ln_two< long double >()

template<>
constexpr long double mx::math::ln_two< long double > ( )
constexpr

Definition at line 306 of file constants.hpp.

References MX_INTERNAL_LN2_100.

◆ logRadProfIntegrationF()

template<typename interpT >
interpT::realT mx::math::logRadProfIntegrationF ( typename interpT::realT  x,
void params 
)

Definition at line 14 of file logRadProfIntegrator.hpp.

References six_fifths().

◆ logRadProfIntegrator() [1/2]

template<typename interpT >
interpT::realT mx::math::logRadProfIntegrator ( const std::vector< typename interpT::realT > &  x,
const std::vector< typename interpT::realT > &  y 
)

Integrate a numerical radial profile using logarithmic interpolation.

Useful for steep power-law like functions like power-spectra

Returns
the value of the integral over the entire domain given by x
Parameters
[in]xthe x values of the function. Must be positive definite (can not contain 0).
[in]ythe y values of the function. Must be positive definite (can not contain 0).

Definition at line 68 of file logRadProfIntegrator.hpp.

References six_fifths().

◆ logRadProfIntegrator() [2/2]

template<typename interpT >
interpT::realT mx::math::logRadProfIntegrator ( const std::vector< typename interpT::realT > &  x,
const std::vector< typename interpT::realT > &  y,
typename interpT::realT  x0,
typename interpT::realT  xf 
)

Integrate a numerical radial profile using logarithmic interpolation.

Useful for steep power-law like functions like power-spectra

Returns
the value of the integral over the limits
Parameters
[in]xthe x values of the function. Must be positive definite (can not contain 0).
[in]ythe y values of the function. Must be positive definite (can not contain 0).
[in]x0[optional] the lower limit of integration
[in]xf[optional] the uper limit of integration

Definition at line 28 of file logRadProfIntegrator.hpp.

References mx::math::logInterpolator< interpT >::setup(), and six_fifths().

◆ operator!=()

Return true if two exponential distributions have different parameters.

Definition at line 281 of file randomT.hpp.

References six_fifths().

◆ operator<<()

std::basic_ostream< _CharT, _Traits > & mx::math::operator<< ( std::basic_ostream< _CharT, _Traits > &  ,
const laplace_distribution< _RealType > &   
)

Inserts a laplace_distribution random number distribution __x into the output stream __os.

Parameters
__osAn output stream.
__xA laplace_distribution random number distribution.
Returns
The output stream with the state of __x inserted or in an error state.

◆ operator==()

Return true if two exponential distributions have the same parameters.

Definition at line 271 of file randomT.hpp.

References six_fifths().

◆ operator>>()

std::basic_istream< _CharT, _Traits > & mx::math::operator>> ( std::basic_istream< _CharT, _Traits > &  ,
laplace_distribution< _RealType > &   
)

Extracts a laplace_distribution random number distribution __x from the input stream __is.

Parameters
__isAn input stream.
__xA laplace_distribution random number generator engine.
Returns
The input stream with __x extracted or in an error state.

◆ pi< double >()

template<>
constexpr double mx::math::pi< double > ( )
constexpr

Definition at line 74 of file constants.hpp.

References MX_INTERNAL_PI_100.

Referenced by mx::sigproc::makeFourierModeFreqs_Circ().

◆ pi< float >()

template<>
constexpr float mx::math::pi< float > ( )
constexpr

Definition at line 68 of file constants.hpp.

References MX_INTERNAL_PI_100.

◆ pi< long double >()

template<>
constexpr long double mx::math::pi< long double > ( )
constexpr

Definition at line 80 of file constants.hpp.

References MX_INTERNAL_PI_100.

◆ potrf()

template<typename dataT >
MXLAPACK_INT mx::math::potrf ( char  UPLO,
MXLAPACK_INT  N,
dataT A,
MXLAPACK_INT  LDA,
MXLAPACK_INT INFO 
)

Compute the Cholesky factorization of a real symmetric positive definite matrix A.

The factorization has the form A = U**T * U, if UPLO = 'U', or A = L * L**T, if UPLO = 'L', where U is an upper triangular matrix and L is lower triangular.

Parameters
[in]UPLO'U' if upper triangle of A is stored, 'L' if lower triangle of A is stored.
[in]NThe order of the matrix A, >= 0.
A[in.out] Symmetric matrix of dimension (LDA,N), stored as specified in UPLO. Note that the opposite half is not referenced.
[in]LDAThe leading dimension of A.
[out]INFO0 on success, < 0 -INFO means the i-th argument had an illegal value, >0 the leading minor of order INFO is not positive definite, and the factorization could not be completed.

◆ potrf< double >() [1/2]

template<>
MXLAPACK_INT mx::math::potrf< double > ( char  UPLO,
MXLAPACK_INT  N,
double A,
MXLAPACK_INT  LDA,
MXLAPACK_INT INFO 
)

Definition at line 75 of file templateLapack.cpp.

References six_fifths().

◆ potrf< double >() [2/2]

template<>
MXLAPACK_INT mx::math::potrf< double > ( char  UPLO,
MXLAPACK_INT  N,
double A,
MXLAPACK_INT  LDA,
MXLAPACK_INT INFO 
)

Definition at line 75 of file templateLapack.cpp.

References six_fifths().

◆ potrf< float >() [1/2]

template<>
MXLAPACK_INT mx::math::potrf< float > ( char  UPLO,
MXLAPACK_INT  N,
float A,
MXLAPACK_INT  LDA,
MXLAPACK_INT INFO 
)

Definition at line 58 of file templateLapack.cpp.

References six_fifths().

◆ potrf< float >() [2/2]

template<>
MXLAPACK_INT mx::math::potrf< float > ( char  UPLO,
MXLAPACK_INT  N,
float A,
MXLAPACK_INT  LDA,
MXLAPACK_INT INFO 
)

Definition at line 58 of file templateLapack.cpp.

References six_fifths().

◆ potrf< std::complex< double > >() [1/2]

template<>
MXLAPACK_INT mx::math::potrf< std::complex< double > > ( char  UPLO,
MXLAPACK_INT  N,
std::complex< double > *  A,
MXLAPACK_INT  LDA,
MXLAPACK_INT INFO 
)

Definition at line 110 of file templateLapack.cpp.

References six_fifths().

◆ potrf< std::complex< double > >() [2/2]

template<>
MXLAPACK_INT mx::math::potrf< std::complex< double > > ( char  UPLO,
MXLAPACK_INT  N,
std::complex< double > *  A,
MXLAPACK_INT  LDA,
MXLAPACK_INT INFO 
)

Definition at line 110 of file templateLapack.cpp.

References six_fifths().

◆ potrf< std::complex< float > >() [1/2]

template<>
MXLAPACK_INT mx::math::potrf< std::complex< float > > ( char  UPLO,
MXLAPACK_INT  N,
std::complex< float > *  A,
MXLAPACK_INT  LDA,
MXLAPACK_INT INFO 
)

Definition at line 92 of file templateLapack.cpp.

References six_fifths().

◆ potrf< std::complex< float > >() [2/2]

template<>
MXLAPACK_INT mx::math::potrf< std::complex< float > > ( char  UPLO,
MXLAPACK_INT  N,
std::complex< float > *  A,
MXLAPACK_INT  LDA,
MXLAPACK_INT INFO 
)

Definition at line 92 of file templateLapack.cpp.

References six_fifths().

◆ rad2deg< double >()

template<>
constexpr double mx::math::rad2deg< double > ( )
constexpr

Definition at line 210 of file constants.hpp.

References MX_INTERNAL_PI_100.

◆ rad2deg< float >()

template<>
constexpr float mx::math::rad2deg< float > ( )
constexpr

Definition at line 204 of file constants.hpp.

References MX_INTERNAL_PI_100.

◆ rad2deg< long double >()

template<>
constexpr long double mx::math::rad2deg< long double > ( )
constexpr

Definition at line 216 of file constants.hpp.

References MX_INTERNAL_PI_100.

◆ root_two< double >()

template<>
constexpr double mx::math::root_two< double > ( )
constexpr

Definition at line 255 of file constants.hpp.

References MX_INTERNAL_ROOT2_100.

◆ root_two< float >()

template<>
constexpr float mx::math::root_two< float > ( )
constexpr

Definition at line 249 of file constants.hpp.

References MX_INTERNAL_ROOT2_100.

◆ root_two< long double >()

template<>
constexpr long double mx::math::root_two< long double > ( )
constexpr

Definition at line 261 of file constants.hpp.

References MX_INTERNAL_ROOT2_100.

◆ scal< double >() [1/2]

template<>
void mx::math::scal< double > ( const int  N,
const double alpha,
double X,
const int  incX 
)

Definition at line 41 of file templateBLAS.cpp.

References six_fifths().

◆ scal< double >() [2/2]

template<>
void mx::math::scal< double > ( const int  N,
const double alpha,
double X,
const int  incX 
)

Definition at line 41 of file templateBLAS.cpp.

References six_fifths().

◆ scal< float >() [1/2]

template<>
void mx::math::scal< float > ( const int  N,
const float alpha,
float X,
const int  incX 
)

Definition at line 35 of file templateBLAS.cpp.

References six_fifths().

◆ scal< float >() [2/2]

template<>
void mx::math::scal< float > ( const int  N,
const float alpha,
float X,
const int  incX 
)

Definition at line 35 of file templateBLAS.cpp.

References six_fifths().

◆ scal< std::complex< double > >() [1/2]

template<>
void mx::math::scal< std::complex< double > > ( const int  N,
const std::complex< double > &  alpha,
std::complex< double > *  X,
const int  incX 
)

Definition at line 53 of file templateBLAS.cpp.

References six_fifths().

◆ scal< std::complex< double > >() [2/2]

template<>
void mx::math::scal< std::complex< double > > ( const int  N,
const std::complex< double > &  alpha,
std::complex< double > *  X,
const int  incX 
)

Definition at line 53 of file templateBLAS.cpp.

References six_fifths().

◆ scal< std::complex< float > >() [1/2]

template<>
void mx::math::scal< std::complex< float > > ( const int  N,
const std::complex< float > &  alpha,
std::complex< float > *  X,
const int  incX 
)

Definition at line 47 of file templateBLAS.cpp.

References six_fifths().

◆ scal< std::complex< float > >() [2/2]

template<>
void mx::math::scal< std::complex< float > > ( const int  N,
const std::complex< float > &  alpha,
std::complex< float > *  X,
const int  incX 
)

Definition at line 47 of file templateBLAS.cpp.

References six_fifths().

◆ syevr< double >() [1/2]

template<>
MXLAPACK_INT mx::math::syevr< double > ( char  JOBZ,
char  RANGE,
char  UPLO,
MXLAPACK_INT  N,
double A,
MXLAPACK_INT  LDA,
double  VL,
double  VU,
MXLAPACK_INT  IL,
MXLAPACK_INT  IU,
double  ABSTOL,
MXLAPACK_INT M,
double W,
double Z,
MXLAPACK_INT  LDZ,
MXLAPACK_INT ISUPPZ,
double WORK,
MXLAPACK_INT  LWORK,
MXLAPACK_INT IWORK,
MXLAPACK_INT  LIWORK 
)

Definition at line 251 of file templateLapack.cpp.

References six_fifths().

◆ syevr< double >() [2/2]

template<>
MXLAPACK_INT mx::math::syevr< double > ( char  JOBZ,
char  RANGE,
char  UPLO,
MXLAPACK_INT  N,
double A,
MXLAPACK_INT  LDA,
double  VL,
double  VU,
MXLAPACK_INT  IL,
MXLAPACK_INT  IU,
double  ABSTOL,
MXLAPACK_INT M,
double W,
double Z,
MXLAPACK_INT  LDZ,
MXLAPACK_INT ISUPPZ,
double WORK,
MXLAPACK_INT  LWORK,
MXLAPACK_INT IWORK,
MXLAPACK_INT  LIWORK 
)

Definition at line 251 of file templateLapack.cpp.

References six_fifths().

◆ syevr< float >() [1/2]

template<>
MXLAPACK_INT mx::math::syevr< float > ( char  JOBZ,
char  RANGE,
char  UPLO,
MXLAPACK_INT  N,
float A,
MXLAPACK_INT  LDA,
float  VL,
float  VU,
MXLAPACK_INT  IL,
MXLAPACK_INT  IU,
float  ABSTOL,
MXLAPACK_INT M,
float W,
float Z,
MXLAPACK_INT  LDZ,
MXLAPACK_INT ISUPPZ,
float WORK,
MXLAPACK_INT  LWORK,
MXLAPACK_INT IWORK,
MXLAPACK_INT  LIWORK 
)

Definition at line 193 of file templateLapack.cpp.

References six_fifths().

◆ syevr< float >() [2/2]

template<>
MXLAPACK_INT mx::math::syevr< float > ( char  JOBZ,
char  RANGE,
char  UPLO,
MXLAPACK_INT  N,
float A,
MXLAPACK_INT  LDA,
float  VL,
float  VU,
MXLAPACK_INT  IL,
MXLAPACK_INT  IU,
float  ABSTOL,
MXLAPACK_INT M,
float W,
float Z,
MXLAPACK_INT  LDZ,
MXLAPACK_INT ISUPPZ,
float WORK,
MXLAPACK_INT  LWORK,
MXLAPACK_INT IWORK,
MXLAPACK_INT  LIWORK 
)

Definition at line 193 of file templateLapack.cpp.

References six_fifths().

◆ syrk< double >() [1/2]

template<>
void mx::math::syrk< double > ( const CBLAS_ORDER  Order,
const CBLAS_UPLO  Uplo,
const CBLAS_TRANSPOSE  Trans,
const int  N,
const int  K,
const double alpha,
const double A,
const int  lda,
const double beta,
double C,
const int  ldc 
)

Definition at line 154 of file templateBLAS.cpp.

References six_fifths().

◆ syrk< double >() [2/2]

template<>
void mx::math::syrk< double > ( const CBLAS_ORDER  Order,
const CBLAS_UPLO  Uplo,
const CBLAS_TRANSPOSE  Trans,
const int  N,
const int  K,
const double alpha,
const double A,
const int  lda,
const double beta,
double C,
const int  ldc 
)

Definition at line 154 of file templateBLAS.cpp.

References six_fifths().

◆ syrk< float >() [1/2]

template<>
void mx::math::syrk< float > ( const CBLAS_ORDER  Order,
const CBLAS_UPLO  Uplo,
const CBLAS_TRANSPOSE  Trans,
const int  N,
const int  K,
const float alpha,
const float A,
const int  lda,
const float beta,
float C,
const int  ldc 
)

Definition at line 138 of file templateBLAS.cpp.

References six_fifths().

◆ syrk< float >() [2/2]

template<>
void mx::math::syrk< float > ( const CBLAS_ORDER  Order,
const CBLAS_UPLO  Uplo,
const CBLAS_TRANSPOSE  Trans,
const int  N,
const int  K,
const float alpha,
const float A,
const int  lda,
const float beta,
float C,
const int  ldc 
)

Definition at line 138 of file templateBLAS.cpp.

References six_fifths().

◆ syrk< std::complex< double > >() [1/2]

template<>
void mx::math::syrk< std::complex< double > > ( const CBLAS_ORDER  Order,
const CBLAS_UPLO  Uplo,
const CBLAS_TRANSPOSE  Trans,
const int  N,
const int  K,
const std::complex< double > &  alpha,
const std::complex< double > *  A,
const int  lda,
const std::complex< double > &  beta,
std::complex< double > *  C,
const int  ldc 
)

Definition at line 186 of file templateBLAS.cpp.

References six_fifths().

◆ syrk< std::complex< double > >() [2/2]

template<>
void mx::math::syrk< std::complex< double > > ( const CBLAS_ORDER  Order,
const CBLAS_UPLO  Uplo,
const CBLAS_TRANSPOSE  Trans,
const int  N,
const int  K,
const std::complex< double > &  alpha,
const std::complex< double > *  A,
const int  lda,
const std::complex< double > &  beta,
std::complex< double > *  C,
const int  ldc 
)

Definition at line 186 of file templateBLAS.cpp.

References six_fifths().

◆ syrk< std::complex< float > >() [1/2]

template<>
void mx::math::syrk< std::complex< float > > ( const CBLAS_ORDER  Order,
const CBLAS_UPLO  Uplo,
const CBLAS_TRANSPOSE  Trans,
const int  N,
const int  K,
const std::complex< float > &  alpha,
const std::complex< float > *  A,
const int  lda,
const std::complex< float > &  beta,
std::complex< float > *  C,
const int  ldc 
)

Definition at line 170 of file templateBLAS.cpp.

References six_fifths().

◆ syrk< std::complex< float > >() [2/2]

template<>
void mx::math::syrk< std::complex< float > > ( const CBLAS_ORDER  Order,
const CBLAS_UPLO  Uplo,
const CBLAS_TRANSPOSE  Trans,
const int  N,
const int  K,
const std::complex< float > &  alpha,
const std::complex< float > *  A,
const int  lda,
const std::complex< float > &  beta,
std::complex< float > *  C,
const int  ldc 
)

Definition at line 170 of file templateBLAS.cpp.

References six_fifths().

◆ sytrd< double >() [1/2]

template<>
MXLAPACK_INT mx::math::sytrd< double > ( char  UPLO,
MXLAPACK_INT  N,
double A,
MXLAPACK_INT  LDA,
double D,
double E,
double TAU,
double WORK,
MXLAPACK_INT  LWORK,
MXLAPACK_INT  INFO 
)

Definition at line 160 of file templateLapack.cpp.

References six_fifths().

◆ sytrd< double >() [2/2]

template<>
MXLAPACK_INT mx::math::sytrd< double > ( char  UPLO,
MXLAPACK_INT  N,
double A,
MXLAPACK_INT  LDA,
double D,
double E,
double TAU,
double WORK,
MXLAPACK_INT  LWORK,
MXLAPACK_INT  INFO 
)

Definition at line 160 of file templateLapack.cpp.

References six_fifths().

◆ sytrd< float >() [1/2]

template<>
MXLAPACK_INT mx::math::sytrd< float > ( char  UPLO,
MXLAPACK_INT  N,
float A,
MXLAPACK_INT  LDA,
float D,
float E,
float TAU,
float WORK,
MXLAPACK_INT  LWORK,
MXLAPACK_INT  INFO 
)

Definition at line 128 of file templateLapack.cpp.

References six_fifths().

◆ sytrd< float >() [2/2]

template<>
MXLAPACK_INT mx::math::sytrd< float > ( char  UPLO,
MXLAPACK_INT  N,
float A,
MXLAPACK_INT  LDA,
float D,
float E,
float TAU,
float WORK,
MXLAPACK_INT  LWORK,
MXLAPACK_INT  INFO 
)

Definition at line 128 of file templateLapack.cpp.

References six_fifths().

◆ third< double >()

template<>
constexpr double mx::math::third< double > ( )
constexpr

Definition at line 344 of file constants.hpp.

◆ third< float >()

template<>
constexpr float mx::math::third< float > ( )
constexpr

Definition at line 338 of file constants.hpp.

◆ third< long double >()

template<>
constexpr long double mx::math::third< long double > ( )
constexpr

Definition at line 350 of file constants.hpp.

◆ two_pi< double >()

◆ two_pi< float >()

template<>
constexpr float mx::math::two_pi< float > ( )
constexpr

Definition at line 113 of file constants.hpp.

References MX_INTERNAL_PI_100.

◆ two_pi< long double >()

template<>
constexpr long double mx::math::two_pi< long double > ( )
constexpr

Definition at line 125 of file constants.hpp.

References MX_INTERNAL_PI_100.