DMRITool  v0.1.1-139-g860d86b4
Diffusion MRI Tool
Namespaces | Classes | Typedefs | Functions | Variables
utl Namespace Reference

Namespaces

 Functor
 

Classes

class  __InstanceOf
 
class  BinaryOpExpr
 
class  BinaryOpExpr< OP, ScalarExprBase< ValueT >, TRight >
 
class  BinaryOpExpr< OP, ScalarExprBase< ValueT1 >, ScalarExprBase< ValueT2 > >
 
class  BinaryOpExpr< OP, TLeft, ScalarExprBase< ValueT > >
 
class  Expr
 
class  GradientTable
 
struct  Int_
 
class  NDArray
 
class  NDArray< T, 1 >
 
class  NDArray< T, 2 >
 
class  NDArray< T, 4 >
 
class  NDArrayBase
 
struct  remove_complex
 
class  ScalarExprBase
 
struct  SuperFloatType
 
struct  Superset
 
class  UnaryOpExpr
 

Typedefs

template<class... T>
using common_type_t = typename::std::common_type< T... >::type
 
template<bool B, class T , class F >
using conditional_t = typename::std::conditional< B, T, F >::type
 
template<class TExpr >
using Expr1ValueType = typename TExpr::ValueType
 
template<class TLeft , class TRight >
using Expr2ValueType = typename SuperFloatType< typename TLeft::ValueType, typename TRight::ValueType >::type
 
typedef double(* Func1To1) (double)
 
typedef int INTT
 
template<class T >
using remove_complex_t = typename remove_complex< T >::type
 
template<class T >
using remove_const_t = typename::std::remove_const< T >::type
 
template<class T >
using remove_reference_t = typename::std::remove_reference< T >::type
 
typedef ScalarExprBase< std::complex< double > > ScalarComplexExpr
 
typedef ScalarExprBase< double > ScalarExpr
 
template<class T , typename t >
using superset_t = typename Superset< T, t >::type
 
template<class T1 , class T2 >
using SuperType = typename SuperFloatType< T1, T2 >::type
 
template<class T >
using Vector = NDArray< T, 1 >
 
template<class T >
using Matrix = NDArray< T, 2 >
 

Functions

template<class ExprT >
auto Abs (const ExprT &expr) -> decltype(utl::F< utl::Functor::Abs< typename ExprT::ValueType > >(expr))
 
template<class VectorType >
void AbsoluteVector (VectorType &vec, const int N)
 
template<class ExprT >
auto Acos (const ExprT &expr) -> decltype(utl::F< utl::Functor::Acos< typename ExprT::ValueType > >(expr))
 
template<typename VectorType >
VectorType AddNoise (const VectorType &signal, const int size, const double sigma, const bool is_rician=true)
 
template<typename T >
std::vector< T > AddNoise (const std::vector< T > &signal, const double sigma, const bool is_rician=true)
 
template<class Iterator >
unsigned int argmax (Iterator i1, Iterator i2)
 
template<class VectorType >
void argmax2 (const VectorType &vec, int size, int &index0, int &index1)
 
template<class TMatrixType >
double ArgmaxMatrix (const TMatrixType &matrix, const int rows, const int columns, int &row, int &colomn)
 
template<class TMatrixType >
double ArgmaxSymmetricMatrix (const TMatrixType matrix, const int size, int &row, int &colomn, const bool includeDiagonalElements)
 
template<class Iterator >
unsigned int argmin (Iterator i1, Iterator i2)
 
template<class TMatrixType >
double ArgminMatrix (const TMatrixType matrix, const int rows, const int columns, int &row, int &colomn)
 
template<class TMatrixType >
double ArgminSymmetricMatrix (const TMatrixType &matrix, const int size, int &row, int &colomn, const bool includeDiagonalElements)
 
template<class ExprT >
auto Asin (const ExprT &expr) -> decltype(utl::F< utl::Functor::Asin< typename ExprT::ValueType > >(expr))
 
template<class ExprT >
auto Atan (const ExprT &expr) -> decltype(utl::F< utl::Functor::Atan< typename ExprT::ValueType > >(expr))
 
template<class TLeft , class TRight >
auto Atan2 (const TLeft &lhs, const TRight &rhs) -> decltype(utl::F< utl::Functor::Atan2< Expr2ValueType< TLeft, TRight >> >(lhs, rhs))
 
template<class TLeft >
auto Atan2 (const TLeft &lhs, const ScalarExpr &rhs) -> decltype(utl::F< utl::Functor::Atan2< Expr2ValueType< TLeft, ScalarExpr >> >(lhs, rhs))
 
template<class TRight >
auto Atan2 (const ScalarExpr &lhs, const TRight &rhs) -> decltype(utl::F< utl::Functor::Atan2< Expr2ValueType< ScalarExpr, TRight >> >(lhs, rhs))
 
template<class T >
void AxisAngleToRotationMatrix (const NDArray< T, 1 > &axis, const double theta, NDArray< T, 2 > &rotMat)
 
double BesselJa (const double a, const double x)
 
double BesselJInteger (const int n, const double x)
 
double BesselJIntegerPrime (const int n, const double x)
 
template<typename T >
Binomial (const T v1, const int times)
 
template<typename T >
void cartesian2Spherical (const T x, const T y, const T z, T &r, T &theta, T &phi)
 
template<typename T >
void cartesian2Spherical (T &x, T &y, T &z)
 
template<class T >
vnl_matrix< T > CartesianToSpherical (const vnl_matrix< T > &in)
 
template<class T >
NDArray< T, 2 > CartesianToSpherical (const NDArray< T, 2 > &in)
 
template<class T >
cblas_asum (const INTT N, const T *X, const INTT incX)
 
double cblas_asum (const INTT N, const std::complex< double > *X, const INTT incX)
 
float cblas_asum (const INTT N, const std::complex< float > *X, const INTT incX)
 
template<>
double cblas_asum< double > (const INTT N, const double *X, const INTT incX)
 
template<>
float cblas_asum< float > (const INTT N, const float *X, const INTT incX)
 
template<class T >
void cblas_axpby (const INTT N, const T alpha, const T *X, const INTT incX, const T beta, T *Y, const INTT incY)
 
template<class T >
void cblas_copy (const INTT N, const T *X, const INTT incX, T *Y, const INTT incY)
 
template<>
void cblas_copy< double > (const INTT N, const double *X, const INTT incX, double *Y, const INTT incY)
 
template<>
void cblas_copy< float > (const INTT N, const float *X, const INTT incX, float *Y, const INTT incY)
 
template<>
void cblas_copy< std::complex< double > > (const INTT N, const std::complex< double > *X, const INTT incX, std::complex< double > *Y, const INTT incY)
 
template<>
void cblas_copy< std::complex< float > > (const INTT N, const std::complex< float > *X, const INTT incX, std::complex< float > *Y, const INTT incY)
 
template<class T >
cblas_dot (const INTT N, const T *X, const INTT incX, const T *Y, const INTT incY)
 
template<>
double cblas_dot< double > (const INTT N, const double *X, const INTT incX, const double *Y, const INTT incY)
 
template<>
float cblas_dot< float > (const INTT N, const float *X, const INTT incX, const float *Y, const INTT incY)
 
template<>
std::complex< double > cblas_dot< std::complex< double > > (const INTT N, const std::complex< double > *X, const INTT incX, const std::complex< double > *Y, const INTT incY)
 
template<class T >
void cblas_gemm (const CBLAS_ORDER order, const CBLAS_TRANSPOSE TransA, const CBLAS_TRANSPOSE TransB, const INTT M, const INTT N, const INTT K, const T alpha, const T *A, const INTT lda, const T *B, const INTT ldb, const T beta, T *C, const INTT ldc)
 
template<>
void cblas_gemm< double > (const CBLAS_ORDER order, const CBLAS_TRANSPOSE TransA, const CBLAS_TRANSPOSE TransB, const INTT M, const INTT N, const INTT K, const double alpha, const double *A, const INTT lda, const double *B, const INTT ldb, const double beta, double *C, const INTT ldc)
 
template<>
void cblas_gemm< float > (const CBLAS_ORDER order, const CBLAS_TRANSPOSE TransA, const CBLAS_TRANSPOSE TransB, const INTT M, const INTT N, const INTT K, const float alpha, const float *A, const INTT lda, const float *B, const INTT ldb, const float beta, float *C, const INTT ldc)
 
template<>
void cblas_gemm< std::complex< double > > (const CBLAS_ORDER order, const CBLAS_TRANSPOSE TransA, const CBLAS_TRANSPOSE TransB, const INTT M, const INTT N, const INTT K, const std::complex< double > alpha, const std::complex< double > *A, const INTT lda, const std::complex< double > *B, const INTT ldb, const std::complex< double > beta, std::complex< double > *C, const INTT ldc)
 
template<class T >
void cblas_gemv (const CBLAS_ORDER order, const CBLAS_TRANSPOSE TransA, const INTT M, const INTT N, const T alpha, const T *A, const INTT lda, const T *X, const INTT incX, const T beta, T *Y, const INTT incY)
 
template<>
void cblas_gemv< double > (const CBLAS_ORDER order, const CBLAS_TRANSPOSE TransA, const INTT M, const INTT N, const double alpha, const double *A, const INTT lda, const double *X, const INTT incX, const double beta, double *Y, const INTT incY)
 
template<>
void cblas_gemv< float > (const CBLAS_ORDER order, const CBLAS_TRANSPOSE TransA, const INTT M, const INTT N, const float alpha, const float *A, const INTT lda, const float *X, const INTT incX, const float beta, float *Y, const INTT incY)
 
template<>
void cblas_gemv< std::complex< double > > (const CBLAS_ORDER order, const CBLAS_TRANSPOSE TransA, const INTT M, const INTT N, const std::complex< double > alpha, const std::complex< double > *A, const INTT lda, const std::complex< double > *X, const INTT incX, const std::complex< double > beta, std::complex< double > *Y, const INTT incY)
 
template<>
void cblas_gemv< std::complex< float > > (const CBLAS_ORDER order, const CBLAS_TRANSPOSE TransA, const INTT M, const INTT N, const std::complex< float > alpha, const std::complex< float > *A, const INTT lda, const std::complex< float > *X, const INTT incX, const std::complex< float > beta, std::complex< float > *Y, const INTT incY)
 
template<class T >
void cblas_ger (const CBLAS_ORDER order, const INTT M, const INTT N, const T alpha, const T *X, const INTT incX, const T *Y, const INTT incY, T *A, const INTT lda)
 
template<>
void cblas_ger< double > (const CBLAS_ORDER order, const INTT M, const INTT N, const double alpha, const double *X, const INTT incX, const double *Y, const INTT incY, double *A, const INTT lda)
 
template<>
void cblas_ger< float > (const CBLAS_ORDER order, const INTT M, const INTT N, const float alpha, const float *X, const INTT incX, const float *Y, const INTT incY, float *A, const INTT lda)
 
template<class T >
int cblas_iamax (const INTT N, const T *X, const INTT incX)
 
template<>
int cblas_iamax< double > (const INTT N, const double *X, const INTT incX)
 
template<>
int cblas_iamax< float > (const INTT N, const float *X, const INTT incX)
 
template<>
int cblas_iamax< std::complex< double > > (const INTT N, const std::complex< double > *X, const INTT incX)
 
template<>
int cblas_iamax< std::complex< float > > (const INTT N, const std::complex< float > *X, const INTT incX)
 
template<class T >
int cblas_iamin (const INTT N, const T *X, const INTT incX)
 
template<class T >
cblas_nrm2 (const INTT N, const T *X, const INTT incX)
 
double cblas_nrm2 (const INTT N, const std::complex< double > *X, const INTT incX)
 
float cblas_nrm2 (const INTT N, const std::complex< float > *X, const INTT incX)
 
template<>
double cblas_nrm2< double > (const INTT N, const double *X, const INTT incX)
 
template<>
float cblas_nrm2< float > (const INTT N, const float *X, const INTT incX)
 
template<class T >
void cblas_scal (const INTT N, const T alpha, T *X, const INTT incX)
 
template<>
void cblas_scal< double > (const INTT N, const double alpha, double *X, const INTT incX)
 
template<>
void cblas_scal< float > (const INTT N, const float alpha, float *X, const INTT incX)
 
template<>
void cblas_scal< std::complex< double > > (const INTT N, const std::complex< double > alpha, std::complex< double > *X, const INTT incX)
 
template<>
void cblas_scal< std::complex< float > > (const INTT N, const std::complex< float > alpha, std::complex< float > *X, const INTT incX)
 
template<class T >
void cblas_swap (const INTT N, T *X, const INTT incX, T *Y, const INTT incY)
 
template<>
void cblas_swap< double > (const INTT N, double *X, const INTT incX, double *Y, const INTT incY)
 
template<>
void cblas_swap< float > (const INTT N, float *X, const INTT incX, float *Y, const INTT incY)
 
template<class T >
void cblas_syr (const CBLAS_ORDER order, const CBLAS_UPLO Uplo, const INTT N, const T alpha, const T *X, const INTT incX, T *A, const INTT lda)
 
template<>
void cblas_syr< double > (const CBLAS_ORDER order, const CBLAS_UPLO Uplo, const INTT N, const double alpha, const double *X, const INTT incX, double *A, const INTT lda)
 
template<>
void cblas_syr< float > (const CBLAS_ORDER order, const CBLAS_UPLO Uplo, const INTT N, const float alpha, const float *X, const INTT incX, float *A, const INTT lda)
 
template<class T >
void cblas_syrk (CBLAS_ORDER order, CBLAS_UPLO Uplo, CBLAS_TRANSPOSE Trans, INTT N, INTT K, T alpha, T *A, INTT lda, T beta, T *C, INTT ldc)
 
template<>
void cblas_syrk< double > (CBLAS_ORDER order, CBLAS_UPLO Uplo, CBLAS_TRANSPOSE Trans, INTT N, INTT K, double alpha, double *A, INTT lda, double beta, double *C, INTT ldc)
 
template<>
void cblas_syrk< float > (CBLAS_ORDER order, CBLAS_UPLO Uplo, CBLAS_TRANSPOSE Trans, INTT N, INTT K, float alpha, float *A, INTT lda, float beta, float *C, INTT ldc)
 
bool CheckField (const mxArray *pr_struct, const char *name)
 
bool CheckSize (const mxArray *array, const int m, const int n)
 
template<class T , unsigned Dim>
NDArray< std::complex< T >, Dim > ComplexCombine (const NDArray< T, Dim > &arrReal, const NDArray< T, Dim > &arrImg)
 
template<class T , unsigned Dim>
NDArray< std::complex< T >, Dim > ComplexCombine (const T val, const NDArray< T, Dim > &arrImg)
 
template<class T , unsigned Dim>
NDArray< std::complex< T >, Dim > ComplexCombine (const NDArray< T, Dim > &arrReal, const T val)
 
template<class T >
utl_shared_ptr< utl::NDArray< T, 1 > > ComputeDWISHCoefficientsForGPDCylinder (const T radius, const T diffusivity, const T deltaBig, const T deltaSmall, const T qq, const int lMax, const T theta=0, const T phi=0)
 
void ComputeNDArrayIndex (const int offset, std::vector< int > &index, const std::vector< int > &size, const int storedWay, std::vector< int > offsetTable=std::vector< int >())
 
int ComputeNDArrayOffset (const std::vector< int > &multiIndex, const std::vector< int > &size, const int storedWay, std::vector< int > offsetTable=std::vector< int >())
 
void ComputeOffsetTable (const std::vector< int > &size, std::vector< int > &offsetTable, const int storedWay)
 
template<class T >
double ComputeOrientationalOrderFromSHCoefficients (const utl::NDArray< T, 1 > &shCoef, const utl::NDArray< T, 1 > &axis)
 
double ComputeOrientationalOrderFromSymmetricTensor (const double e1, const double e2, const double phi=0)
 
template<class T >
std::shared_ptr< NDArray< T, 2 > > ComputeSHMatrix (const unsigned int rank, const NDArray< T, 2 > &grad, const int mode)
 
template<class ExprT >
auto Conj (const ExprT &expr) -> decltype(utl::F< utl::Functor::Conj< typename ExprT::ValueType > >(expr))
 
template<class T >
NDArray< T, 2 > ConnectUtlMatrix (const NDArray< T, 2 > &m1, const NDArray< T, 2 > &m2, const bool isConnectRow)
 
template<class T >
NDArray< T, 1 > ConnectUtlVector (const NDArray< T, 1 > &m1, const NDArray< T, 1 > &m2)
 
template<typename T >
void ConnectVector (std::vector< T > &vec1, const std::vector< T > &vec2)
 
template<class T >
vnl_matrix< T > ConnectVnlMatrix (const vnl_matrix< T > &m1, const vnl_matrix< T > &m2, const bool isConnectRow)
 
template<class T >
vnl_vector< T > ConnectVnlVector (const vnl_vector< T > &m1, const vnl_vector< T > &m2)
 
template<class T >
void Convert1To2Tensor (const utl::NDArray< T, 1 > &vec, utl::NDArray< T, 2 > &mat)
 
template<class T >
void Convert2To1Tensor (const utl::NDArray< T, 2 > &mat, utl::NDArray< T, 1 > &vec)
 
template<class T >
void Convert2To4Tensor (const utl::NDArray< T, 2 > &mat, utl::NDArray< T, 4 > &tensor)
 
template<class T >
void Convert4To2Tensor (const utl::NDArray< T, 4 > &tensor, utl::NDArray< T, 2 > &mat)
 
template<class T >
std::string ConvertNumberToString (const T value, const int precision=6)
 
template<typename T >
void ConvertSpMatrix (mxArray *&matlab_mat, int K, int M, int n, int nzmax, const T *v, const int *r, const int *pB)
 
template<class T >
ConvertStringToNumber (const std::string &input)
 
template<typename V1Type , typename V2Type >
void ConvertTensor6DTo6D (const V1Type &v6d1, V2Type &v6d2, int s1, int s2)
 
template<typename V1Type , typename V2Type >
void ConvertTensor6DTo9D (const V1Type &v6d, V2Type &v9d, int v6dStoreWay)
 
template<typename V1Type , typename V2Type >
void ConvertTensor9DTo6D (const V1Type &v9d, V2Type &v6d, int v6dStoreWay)
 
std::string ConvertToUnixOutputPath (const char *path)
 
void ConvertToUnixSlashes (std::string &path)
 
std::string ConvertToWindowsOutputPath (const char *path)
 
template<class VectorType >
std::string ConvertVectorToString (VectorType vec, const int N, const char *separate=" ")
 
template<class ExprT >
auto Cos (const ExprT &expr) -> decltype(utl::F< utl::Functor::Cos< typename ExprT::ValueType > >(expr))
 
template<vcl_size_t M>
std::vector< std::string > CovertChar2DArrayToStringArray (const char arr[][M], int N)
 
template<vcl_size_t M>
void CovertStringArrayToChar2DArray (const std::vector< std::string > &vec, char arr[][M], int N)
 
template<typename T >
mxArray * Create4DImage (int h, int w, int V, int dim)
 
template<>
mxArray * Create4DImage< double > (int h, int w, int V, int dim)
 
template<>
mxArray * Create4DImage< float > (int h, int w, int V, int dim)
 
template<typename T >
void CreateCopySparse (T *&alpha_v2, int *&alpha_r2, int *&alpha_pB2, int *&alpha_pE2, double *alpha_v, mwSize *alpha_r, mwSize *alpha_pB, mwSize *alpha_pE, int M)
 
std::string CreateExpandedPath (const std::string &path)
 
template<typename T >
mxArray * CreateImage (int h, int w, int V)
 
template<>
mxArray * CreateImage< double > (int h, int w, int V)
 
template<>
mxArray * CreateImage< float > (int h, int w, int V)
 
template<typename T >
mxArray * CreateMatrix (int m, int n)
 
template<>
mxArray * CreateMatrix< double > (int m, int n)
 
template<>
mxArray * CreateMatrix< float > (int m, int n)
 
template<typename T >
mxArray * CreateScalar ()
 
template<class TVector1 , class TVector2 , class TVector3 >
double CrossProduct (const TVector1 &v1, const TVector2 &v2, TVector3 &v3)
 
template<typename T >
cube (const T &x)
 
template<class ExprT >
auto Cube (const ExprT &expr) -> decltype(utl::F< utl::Functor::Cube< typename ExprT::ValueType > >(expr))
 
double DawsonF (double x)
 
template<typename T >
void DeleteCopySparse (T *&alpha_v2, int *&alpha_r2, int *&alpha_pB2, int *&alpha_pE2, double *alpha_v, mwSize *alpha_r)
 
std::string Demangle (const char *name)
 
template<class TMatrixType >
auto DeterminantSmallMatrix (const TMatrixType &mat, const int row) -> utl::remove_reference_t< decltype(mat(0, 0))>
 
template<class T >
NDArray< T, 1 > DifferenceOfDirection (const NDArray< T, 1 > v1, const NDArray< T, 1 > &v0)
 
int DimToRankSH (const int dimm)
 
template<class T , unsigned int Dim>
DotProduct (const NDArray< T, Dim > &v1, const NDArray< T, Dim > &v2)
 
template<unsigned int Dim>
std::complex< double > DotProduct (const NDArray< std::complex< double >, Dim > &v1, const NDArray< std::complex< double >, Dim > &v2)
 
template<class TVector1 , class TVector2 >
double DotProduct (const TVector1 &v1, const TVector2 &v2, const int N1)
 
template<class T >
void EigenDecompositionSymmetricVnlMatrix (const vnl_matrix< T > &mat, vnl_vector< T > &eigenValues, vnl_matrix< T > &eigenVectors)
 
template<class VectorType >
double Entropy (const VectorType &pdfVec, const int N)
 
double Erf (double x)
 
double Erfi (double x, Func1To1 expF=&std::exp)
 
template<class T , unsigned int Dim, class EType >
NDArray< T, Dim > Eval (const Expr< EType, typename EType::ValueType > &expr)
 
template<class ExprT >
auto Exp (const ExprT &expr) -> decltype(utl::F< utl::Functor::Exp< typename ExprT::ValueType > >(expr))
 
template<class ExprT >
auto Exp2 (const ExprT &expr) -> decltype(utl::F< utl::Functor::Exp2< typename ExprT::ValueType > >(expr))
 
double ExpNegtiveLUT (const double dist, const double distMax=30.0, const int precision=1000)
 
template<class T = double>
utl::NDArray< T, 2 > Eye (const int n, const T val=1.0)
 
template<typename OP , typename TLeft , typename TRight >
BinaryOpExpr< OP, TLeft, TRight > F (const Expr< TLeft, typename TLeft::ValueType > &lhs, const Expr< TRight, typename TRight::ValueType > &rhs)
 
template<typename OP , typename TA >
BinaryOpExpr< OP, TA, ScalarExprF (const Expr< TA, typename TA::ValueType > &lhs, const ScalarExpr &rhs)
 
template<typename OP , typename TB >
BinaryOpExpr< OP, ScalarExpr, TB > F (const ScalarExpr &lhs, const Expr< TB, typename TB::ValueType > &rhs)
 
template<typename OP , typename TA >
BinaryOpExpr< OP, TA, ScalarComplexExprF (const Expr< TA, typename TA::ValueType > &lhs, const ScalarComplexExpr &rhs)
 
template<typename OP , typename TB >
BinaryOpExpr< OP, ScalarComplexExpr, TB > F (const ScalarComplexExpr &lhs, const Expr< TB, typename TB::ValueType > &rhs)
 
template<typename OP , typename EType >
UnaryOpExpr< OP, EType > F (const Expr< EType, typename EType::ValueType > &expr)
 
unsigned long Factorial (const int n)
 
template<typename T >
Factorial (const T v1, const int times)
 
template<typename T >
std::vector< int > FindVector (const std::vector< T > &vec, const T &elem, const double gap=1e-9)
 
template<>
std::vector< int > FindVector< std::string > (const std::vector< std::string > &vec, const std::string &elem, const double)
 
template<class T >
NDArray< T, 2 > FlipOrientations (const NDArray< T, 2 > &in, const std::vector< int > &flip)
 
template<class T1 , class T2 >
void FlipVector (T1 &vec, const T2 &flip, const int N)
 
template<class ExprT >
auto Floor (const ExprT &expr) -> decltype(utl::F< utl::Functor::Floor< typename ExprT::ValueType > >(expr))
 
double Gamma (const double x)
 
double GammaHalfInteger (const double x)
 
double GammaLower (const double s, const double x)
 
template<typename T >
GaussRand (const T value, const double sigma)
 
template<class T >
int geev (int matrix_layout, char jobvl, char jobvr, int n, T *a, int lda, T *wr, T *wi, T *vl, int ldvl, T *vr, int ldvr)
 
int geev (int matrix_layout, char jobvl, char jobvr, int n, std::complex< double > *a, int lda, std::complex< double > *w, std::complex< double > *vl, int ldvl, std::complex< double > *vr, int ldvr)
 
template<>
int geev< double > (int matrix_layout, char jobvl, char jobvr, int n, double *a, int lda, double *wr, double *wi, double *vl, int ldvl, double *vr, int ldvr)
 
template<>
int geev< float > (int matrix_layout, char jobvl, char jobvr, int n, float *a, int lda, float *wr, float *wi, float *vl, int ldvl, float *vr, int ldvr)
 
template<>
int geev< std::complex< double > > (int matrix_layout, char jobvl, char jobvr, int n, std::complex< double > *a, int lda, std::complex< double > *wr, std::complex< double > *wi, std::complex< double > *vl, int ldvl, std::complex< double > *vr, int ldvr)
 
template<>
int geev< std::complex< float > > (int matrix_layout, char jobvl, char jobvr, int n, std::complex< float > *a, int lda, std::complex< float > *wr, std::complex< float > *wi, std::complex< float > *vl, int ldvl, std::complex< float > *vr, int ldvr)
 
template<class T >
void geev_UtlMatrix (const utl::NDArray< T, 2 > &mat, utl::NDArray< T, 1 > &valReal, utl::NDArray< T, 1 > &valImg, utl::NDArray< T, 2 > &vecRealR, utl::NDArray< T, 2 > &vecImgR, utl::NDArray< T, 2 > &vecRealL, utl::NDArray< T, 2 > &vecImgL)
 
template<class T >
void geev_UtlMatrix (const utl::NDArray< T, 2 > &mat, utl::NDArray< T, 1 > &valReal, utl::NDArray< T, 1 > &valImg)
 
template<class T >
void geev_UtlMatrix (const utl::NDArray< T, 2 > &mat, utl::NDArray< T, 1 > &valReal, utl::NDArray< T, 1 > &valImg, utl::NDArray< T, 2 > &vecRealR, utl::NDArray< T, 2 > &vecImgR)
 
template<class T >
void geev_VnlMatrix (const vnl_matrix< T > &mat, vnl_vector< T > &valReal, vnl_vector< T > &valImg, vnl_matrix< T > &vecRealR, vnl_matrix< T > &vecImgR, vnl_matrix< T > &vecRealL, vnl_matrix< T > &vecImgL)
 
template<class T >
void geev_VnlMatrix (const vnl_matrix< T > &mat, vnl_vector< T > &valReal, vnl_vector< T > &valImg, vnl_matrix< T > &vecRealR, vnl_matrix< T > &vecImgR)
 
template<class T >
void geev_VnlMatrix (const vnl_matrix< T > &mat, vnl_vector< T > &valReal, vnl_vector< T > &valImg)
 
template<class T >
bool gemm_UtlMatrixTimesMatrix (const bool bATrans, const bool bBTrans, const T alpha, const utl::NDArray< T, 2 > &A, const utl::NDArray< T, 2 > &B, const T beta, utl::NDArray< T, 2 > &C)
 
template<class T >
bool gemm_VnlMatrixTimesMatrix (const bool bATrans, const bool bBTrans, const T alpha, const vnl_matrix< T > &A, const vnl_matrix< T > &B, const T beta, vnl_matrix< T > &C)
 
template<class T >
bool gemm_VnlVectorTimesMatrix (const bool bATrans, const T alpha, const vnl_vector< T > &X, const vnl_matrix< T > &A, const T beta, vnl_vector< T > &Y)
 
template<class T >
bool gemv_UtlMatrixTimesVector (const bool bATrans, const T alpha, const utl::NDArray< T, 2 > &A, const utl::NDArray< T, 1 > &X, const T beta, utl::NDArray< T, 1 > &Y)
 
template<class T >
bool gemv_VnlMatrixTimesVector (const bool bATrans, const T alpha, const vnl_matrix< T > &A, const vnl_vector< T > &X, const T beta, vnl_vector< T > &Y)
 
template<class T >
int gesdd (int matrix_order, char JOBZ, int M, int N, T *A, int LDA, T *S, T *U, int LDU, T *VT, int LDVT)
 
int gesdd (int matrix_order, char JOBZ, int M, int N, std::complex< double > *A, int LDA, double *S, std::complex< double > *U, int LDU, std::complex< double > *VT, int LDVT)
 
int gesdd (int matrix_order, char JOBZ, int M, int N, std::complex< float > *A, int LDA, float *S, std::complex< float > *U, int LDU, std::complex< float > *VT, int LDVT)
 
template<>
int gesdd< double > (int matrix_order, char JOBZ, int M, int N, double *A, int LDA, double *S, double *U, int LDU, double *VT, int LDVT)
 
template<>
int gesdd< float > (int matrix_order, char JOBZ, int M, int N, float *A, int LDA, float *S, float *U, int LDU, float *VT, int LDVT)
 
template<class T >
void gesdd_UtlMatrix (const NDArray< T, 2 > &mat, NDArray< T, 2 > &U, NDArray< utl::remove_complex_t< T >, 1 > &s, NDArray< T, 2 > &V, char format='S')
 
template<class T >
void gesdd_VnlMatrix (const vnl_matrix< T > &mat, vnl_matrix< T > &U, vnl_vector< T > &s, vnl_matrix< T > &V, char format='S')
 
template<class T >
int gesvd (int matrix_order, char JOBU, char JOBVT, int M, int N, T *A, int LDA, T *S, T *U, int LDU, T *VT, int LDVT, T *superb)
 
template<>
int gesvd< double > (int matrix_order, char JOBU, char JOBVT, int M, int N, double *A, int LDA, double *S, double *U, int LDU, double *VT, int LDVT, double *superb)
 
template<>
int gesvd< float > (int matrix_order, char JOBU, char JOBVT, int M, int N, float *A, int LDA, float *S, float *U, int LDU, float *VT, int LDVT, float *superb)
 
template<class T >
void gesvd_UtlMatrix (const NDArray< T, 2 > &mat, NDArray< T, 2 > &U, NDArray< T, 1 > &s, NDArray< T, 2 > &V, char format='S')
 
template<class T >
void gesvd_VnlMatrix (const vnl_matrix< T > &mat, vnl_matrix< T > &U, vnl_vector< T > &s, vnl_matrix< T > &V, char format='S')
 
template<class VectorType >
VectorType GetAbsoluteVector (const VectorType &vec, const int N)
 
template<class T >
vnl_vector< T > GetAbsoluteVnlVector (const vnl_vector< T > &vec)
 
mxArray * GetArrayStruct (const mxArray *pr_struct, const char *name)
 
std::vector< double > GetCoefLaguerre (const int n, const double a=0.5)
 
std::vector< double > GetCoefLaguerreProduct (const int n1, const double a1, const int n2, const double a2)
 
std::string GetColoredString (const std::string &str, const int color)
 
template<class T >
void GetColumn (const vnl_matrix< T > &mat, const int index, vnl_vector< T > &v1)
 
template<class T >
vnl_matrix< T > GetColumnsVnlMatrix (const vnl_matrix< T > &mat, const std::vector< int > &index)
 
template<class IteratorType >
std::vector< double > GetContainerStats (IteratorType v1, IteratorType v2)
 
template<>
std::vector< double > GetContainerStats< const std::complex< double > * > (const std::complex< double > *v1, const std::complex< double > *v2)
 
template<>
std::vector< double > GetContainerStats< const std::complex< float > * > (const std::complex< float > *v1, const std::complex< float > *v2)
 
template<>
std::vector< double > GetContainerStats< const std::string * > (const std::string *v1, const std::string *v2)
 
template<>
std::vector< double > GetContainerStats< std::complex< double > * > (std::complex< double > *v1, std::complex< double > *v2)
 
template<>
std::vector< double > GetContainerStats< std::complex< float > * > (std::complex< float > *v1, std::complex< float > *v2)
 
template<class T >
vnl_matrix< T > GetDiagonalMatrix (const vnl_vector< T > &vec)
 
template<class T >
utl::Matrix< T > GetDTIDesignMatrix (const utl::Matrix< T > &gradMat, const std::vector< T > &bVec, int dwi_normalize)
 
template<typename T >
std::vector< T > GetE1E2FromFAMD (const T fa, const T meanEigenValue, const bool isE2E3Equal=true)
 
template<class T >
void GetEqualityConstraintProjection (const vnl_matrix< T > &Aeq, const vnl_vector< T > &beq, const vnl_matrix< T > &QInverse, vnl_matrix< T > &projMatrix, vnl_vector< T > &projVector)
 
template<class T >
void GetEqualityConstraintProjection (const NDArray< T, 2 > &Aeq, const NDArray< T, 1 > &beq, const NDArray< T, 2 > &QInverse, NDArray< T, 2 > &projMatrix, NDArray< T, 1 > &projVector)
 
double GetExpLegendreCoef (const double a, const int l, Func1To1 expF=&std::exp)
 
double GetExpLegendreCoefDerivative (const double a, const int l, Func1To1 expF=&std::exp)
 
double GetExpProductLegendreCoef (const double a, const double b, const int l)
 
int GetFiberTractsFormat (const std::string &filename)
 
int GetFiberTractsFormatFromFileExtension (const std::string &filename)
 
void GetFileExtension (const std::string &fileNameAbsolute, std::string &ext, std::string &fileNoExt)
 
int GetIndexSHj (const int l, const int m)
 
std::vector< int > GetIndexSHlm (const int j)
 
template<class T >
utl::NDArray< T, 2 > GetMeanOfRotationMatrix (const std::vector< NDArray< T, 2 > > &matrixVec, const utl::NDArray< T, 1 > &weights)
 
template<class T >
utl::NDArray< T, 2 > GetMeanOfRotationMatrix (const std::vector< NDArray< T, 2 > > &matrixVec)
 
template<class T >
GetMedianVnlVector (const vnl_vector< T > &values)
 
template<class T >
double GetMinAngle (const vnl_matrix< T > &grad)
 
template<class T >
void GetMXArrayFromSTDVector (const std::vector< T > *vec, mxArray *&pr)
 
template<class T >
void GetMXArrayFromUtlMatrix (const NDArray< T, 2 > *mat, mxArray *&pr)
 
template<class T >
void GetMXArrayFromUtlVector (const NDArray< T, 1 > *mat, mxArray *&pr)
 
template<class T >
void GetMXArrayFromVNLMatrix (const vnl_matrix< T > *mat, mxArray *&pr)
 
template<class T >
void GetMXArrayFromVNLVector (const vnl_vector< T > *mat, mxArray *&pr)
 
template<typename... Args>
auto GetNumberOfArgs (Args...args) -> decltype(sizeof...(args))
 
template<class IteratorType >
int GetNumberOfNonZeroValues (IteratorType v, IteratorType v2, const double threshold=1e-6)
 
void GetPath (const std::string &fileNameAbsolute, std::string &path, std::string &file)
 
std::vector< int > GetRange (const int start, const int end, const int space=1)
 
template<class T >
int getrf (int matrix_layout, int m, int n, T *a, int lda, int *ipiv)
 
template<>
int getrf< double > (int matrix_layout, int m, int n, double *a, int lda, int *ipiv)
 
template<>
int getrf< float > (int matrix_layout, int m, int n, float *a, int lda, int *ipiv)
 
template<>
int getrf< std::complex< double > > (int matrix_layout, int m, int n, std::complex< double > *a, int lda, int *ipiv)
 
template<>
int getrf< std::complex< float > > (int matrix_layout, int m, int n, std::complex< float > *a, int lda, int *ipiv)
 
template<class T >
int getri (int matrix_layout, int n, T *a, int lda, const int *ipiv)
 
template<>
int getri< double > (int matrix_layout, int n, double *a, int lda, const int *ipiv)
 
template<>
int getri< float > (int matrix_layout, int n, float *a, int lda, const int *ipiv)
 
template<>
int getri< std::complex< double > > (int matrix_layout, int n, std::complex< double > *a, int lda, const int *ipiv)
 
template<>
int getri< std::complex< float > > (int matrix_layout, int n, std::complex< float > *a, int lda, const int *ipiv)
 
template<class T >
void getri_UtlMatrix (const utl::NDArray< T, 2 > &mat, utl::NDArray< T, 2 > &result)
 
template<class T >
void GetRow (const vnl_matrix< T > &mat, const int index, vnl_vector< T > &v1)
 
template<class T >
vnl_matrix< T > GetRowsVnlMatrix (const vnl_matrix< T > &mat, const std::vector< int > &index)
 
template<class T = double>
std::function< T(T)> GetScalarFunctionFromString (const std::string &funcStr)
 
template<class T >
std::vector< T > GetScalarsByName (const std::vector< T > &vec, const std::vector< std::string > &nameVec, const std::string &name)
 
int GetScalarsDimentionByName (const std::string &name)
 
template<typename T >
GetScalarStruct (const mxArray *pr_struct, const char *name)
 
template<typename T >
GetScalarStructDef (const mxArray *pr_struct, const char *name, const T def)
 
template<>
std::string GetScalarStructDef (const mxArray *pr_struct, const char *name, const std::string def)
 
std::string GetSequentialFileName (const std::string &filePrefix, const unsigned int iteration, const std::string &fileExtension, const unsigned int paddedLength=6)
 
template<class T >
void GetSTDVectorFromMXArray (const mxArray *pr, std::vector< T > *vec)
 
void GetString (const mxArray *pr, std::string &str)
 
std::string GetString (const mxArray *pr)
 
void GetStringStruct (const mxArray *pr_struct, const char *name, char *field, const mwSize length)
 
template<class TVectorType >
double GetSumOfVector (const TVectorType &vec, const int NSize)
 
template<class T >
utl_shared_ptr< utl::NDArray< T, 1 > > GetSymmetricTensorSHCoef (const T b, const T e1, const T e2, const int lMax, const T theta=0, const T phi=0)
 
template<class T >
std::vector< std::vector< T > > GetSymmetricTensorSHCoefDerivative (const T b, const T e1, const T e2, const int lMax, const T theta=0, const T phi=0)
 
template<class T >
void GetUtlMatrixFromMXArray (const mxArray *pr, NDArray< T, 2 > *mat)
 
template<class T >
void GetUtlVectorFromMXArray (const mxArray *pr, NDArray< T, 1 > *mat)
 
template<class T >
vnl_vector< T > GetValuesVnlVector (const vnl_vector< T > &vec, const int colstart, const int n)
 
template<class T >
vnl_vector< T > GetValuesVnlVector (const vnl_vector< T > &vec, const std::vector< int > &index)
 
template<class T = double>
std::function< T(std::vector< T >)> GetVectorFunctionFromString (const std::string &funcStr)
 
template<class VectorType >
VectorType GetVectorLinspace (const double valueMin, const double valueMax, const int num)
 
template<class VectorType >
VectorType GetVectorShrinkage (const VectorType &vec, const int N, const double kappa)
 
template<class T >
void GetVNLMatrixFromMXArray (const mxArray *pr, vnl_matrix< T > *mat)
 
template<class T >
vnl_matrix< T > GetVnlMatrixPInverse (const vnl_matrix< T > &mat, const double eps=1e-8)
 
template<class T >
std::vector< T > GetVnlMatrixStats (const vnl_matrix< T > &values)
 
template<class T >
vnl_matrix< T > GetVnlSymmericMatrixPInverse (const vnl_matrix< T > &mat, const double eps=1e-8)
 
template<class T >
void GetVNLVectorFromMXArray (const mxArray *pr, vnl_vector< T > *mat)
 
template<class T >
std::vector< T > GetVnlVectorStats (const vnl_vector< T > &values)
 
template<class T >
bool gevm_UtlVectorTimesMatrix (const bool bATrans, const T alpha, const utl::NDArray< T, 1 > &X, const utl::NDArray< T, 2 > &A, const T beta, utl::NDArray< T, 1 > &Y)
 
template<class T >
void hash_combine (std::vcl_size_t &seed, T const &v)
 
double Hyperg1F1 (double a, double b, double x)
 
template<class T , unsigned Dim>
NDArray< T, Dim > Imag (const NDArray< std::complex< T >, Dim > &mat)
 
static int InitializeMKL (const int numThreads)
 
static int InitializeOpenMP (const int numThreads)
 
void InitializeSHTripleIntegrationTable (const int rank0=-1, const int rank1=-1, const int rank2=-1, const bool useExactSize=false)
 
static void InitializeThreadedLibraries (const int numThreads)
 
template<class T >
InnerProduct (const vnl_vector< T > &v1, const vnl_vector< T > &v2)
 
template<class T , unsigned int Dim>
InnerProduct (const NDArrayBase< T, Dim > &v1, const NDArrayBase< T, Dim > &v2)
 
template<class T >
void InnerProduct (const NDArray< T, 2 > &mat, const NDArray< T, 1 > &vec, NDArray< T, 1 > &result)
 
template<class T >
void InnerProduct (const NDArray< T, 1 > &vec, const NDArray< T, 2 > &mat, NDArray< T, 1 > &result)
 
template<class T >
void InnerProduct (const NDArray< T, 4 > &tensor, const NDArray< T, 2 > &matrix, NDArray< T, 2 > &result)
 
template<class T >
void InnerProduct (const NDArray< T, 2 > &matrix, const NDArray< T, 4 > &tensor, NDArray< T, 2 > &result)
 
template<class TVector1 , class TVector2 >
double InnerProduct (const TVector1 &v1, const TVector2 &v2, const int N1)
 
template<class T >
NDArray< T, 2 > InverseMatrix (const NDArray< T, 2 > &mat, const double eps=1e-10)
 
template<class TMatrixType >
void InverseSmallMatrix (const TMatrixType &mat, TMatrixType &result, const int row)
 
template<class T >
NDArray< T, 2 > InverseSymmericMatrix (const NDArray< T, 2 > &mat, const double eps=1e-10)
 
template<class T >
void InverseSymmericVnlMatrix (const vnl_matrix< T > &mat, vnl_matrix< T > &result, const T eps=1e-8)
 
template<class VectorType >
bool IsContainsNaN (const VectorType &a, const int size)
 
bool IsEndingWith (const std::string &fullString, const std::string &ending)
 
bool IsEven (const int value)
 
bool IsFileExist (const std::string &file)
 
template<class Parent , class Object >
bool IsInstanceOf (const Object &o)
 
bool IsInt (const std::string &input, const double epss=1e-10)
 
bool IsInt (const double dd, const double epss=1e-10)
 
bool IsInt (const float dd, const double epss=1e-10)
 
template<class VectorType , class T >
bool IsInVector (const VectorType &vec, const int size, const T &num, const double eps=1e-10)
 
template<typename T >
bool IsInVector (const std::vector< T > &vec, const T &num, const double eps=1e-10)
 
bool IsLogAll (const int level=utl::LogLevel)
 
bool IsLogDebug (const int level=utl::LogLevel)
 
bool IsLogLarge (const int level=utl::LogLevel)
 
bool IsLogMute (const int level=utl::LogLevel)
 
bool IsLogNormal (const int level=utl::LogLevel)
 
template<class T >
bool IsMatrixSymmetric (const vnl_matrix< T > &mat, const double eps=1e-10)
 
bool IsNumber (const std::string &input)
 
bool IsOdd (const int value)
 
template<class T >
bool IsSame (const T &value, const T &v0, const double eps=1e-10)
 
template<>
bool IsSame< char > (const char &value, const char &v0, const double)
 
template<>
bool IsSame< int > (const int &value, const int &v0, const double)
 
template<>
bool IsSame< std::string > (const std::string &value, const std::string &v0, const double)
 
template<class T , vcl_size_t N1, vcl_size_t N2>
bool IsSameArray (const T(&a1)[N1], const T(&a2)[N2], const double eps=1e-10)
 
template<class T1 , class T2 , unsigned Dim1, unsigned Dim2>
bool IsSameShape (const NDArray< T1, Dim1 > &arr1, const NDArray< T2, Dim2 > &arr2)
 
template<class T >
bool IsSameVector (const std::vector< T > &vec1, const std::vector< T > &vec2, const double eps=1e-10)
 
template<class T >
Lagurre (const int n, const double a, const T x)
 
template<class T >
lange (int matrix_order, char norm, int m, int n, const T *A, int LDA)
 
double lange (int matrix_order, char norm, int m, int n, const std::complex< double > *A, int LDA)
 
float lange (int matrix_order, char norm, int m, int n, const std::complex< float > *A, int LDA)
 
template<>
double lange< double > (int matrix_order, char norm, int m, int n, const double *A, int LDA)
 
template<>
float lange< float > (int matrix_order, char norm, int m, int n, const float *A, int LDA)
 
double LegendrePolynomialAt0 (const int order)
 
template<class ExprT >
auto Log (const ExprT &expr) -> decltype(utl::F< utl::Functor::Log< typename ExprT::ValueType > >(expr))
 
template<class ExprT >
auto Log10 (const ExprT &expr) -> decltype(utl::F< utl::Functor::Log10< typename ExprT::ValueType > >(expr))
 
template<class ExprT >
auto Log2 (const ExprT &expr) -> decltype(utl::F< utl::Functor::Log2< typename ExprT::ValueType > >(expr))
 
template<class ExprT >
auto LRound (const ExprT &expr) -> decltype(utl::F< utl::Functor::LRound< typename ExprT::ValueType > >(expr))
 
template<typename OP , typename TA , typename TB >
BinaryOpExpr< OP, TA, TB > MakeExpr (const Expr< TA, typename TA::ValueType > &lhs, const Expr< TB, typename TB::ValueType > &rhs)
 
template<typename OP , typename EType >
UnaryOpExpr< OP, EType > MakeExpr (const Expr< EType, typename EType::ValueType > &expr)
 
template<class T >
void MatchBVectorAndGradientMatrix (const T &br, std::vector< T > &vec, const NDArray< T, 2 > &grad)
 
template<class T >
void MatchBVectorAndGradientMatrix (std::vector< T > &vec, NDArray< T, 2 > &grad)
 
template<class T >
void MatrixCopy (const vnl_matrix< T > &mat, vnl_matrix< T > &matOut, const T alpha, const char trans='N')
 
template<class T1 , class T2 >
void MatrixToMatrix (const T1 &mat1, T2 &mat2, const int NRows, const int NColumns)
 
template<typename T >
const T & max (const T &a, const T &b)
 
template<typename T >
const T & max (const T &a, const T &b, const T &c)
 
template<typename T >
const T & max (const T &a, const T &b, const T &c, const T &d)
 
const unsigned int max (const unsigned int a, const vcl_size_t b)
 
const unsigned int max (const vcl_size_t a, const unsigned int b)
 
const int max (const unsigned int a, const int b)
 
const int max (const int a, const unsigned int b)
 
const int max (const int a, const vcl_size_t b)
 
const int max (const vcl_size_t a, const int b)
 
const double max (const double a, const float b)
 
const double max (const float a, const double b)
 
const double max (const double a, const int b)
 
const double max (const int a, const double b)
 
const double max (const float a, const int b)
 
const double max (const int a, const float b)
 
template<class TLeft , class TRight >
auto Max (const TLeft &lhs, const TRight &rhs) -> decltype(utl::F< utl::Functor::Max< Expr2ValueType< TLeft, TRight >> >(lhs, rhs))
 
template<class TLeft >
auto Max (const TLeft &lhs, const ScalarExpr &rhs) -> decltype(utl::F< utl::Functor::Max< Expr2ValueType< TLeft, ScalarExpr >> >(lhs, rhs))
 
template<class TRight >
auto Max (const ScalarExpr &lhs, const TRight &rhs) -> decltype(utl::F< utl::Functor::Max< Expr2ValueType< ScalarExpr, TRight >> >(lhs, rhs))
 
template<class T >
max_element (const std::vector< T > &v)
 
template<class T >
utl::NDArray< T, 1 > MeanDirector (const std::vector< utl::NDArray< T, 1 > > &dirVec, const bool isUnitNorm=true)
 
template<typename T >
median_element (std::vector< T > values)
 
template<typename T >
bool mexCheckType (const mxArray *array)
 
template<>
bool mexCheckType< bool > (const mxArray *array)
 
template<>
bool mexCheckType< double > (const mxArray *array)
 
template<>
bool mexCheckType< float > (const mxArray *array)
 
template<>
bool mexCheckType< int > (const mxArray *array)
 
template<>
bool mexCheckType< std::complex< double > > (const mxArray *array)
 
template<>
bool mexCheckType< std::complex< float > > (const mxArray *array)
 
template<typename T >
const T & min (const T &a, const T &b)
 
template<typename T >
const T & min (const T &a, const T &b, const T &c)
 
template<typename T >
const T & min (const T &a, const T &b, const T &c, const T &d)
 
const unsigned int min (const unsigned int a, const vcl_size_t b)
 
const unsigned int min (const vcl_size_t a, const unsigned int b)
 
const int min (const unsigned int a, const int b)
 
const int min (const int a, const unsigned int b)
 
const int min (const int a, const vcl_size_t b)
 
const int min (const vcl_size_t a, const int b)
 
const double min (const double a, const float b)
 
const double min (const float a, const double b)
 
const double min (const double a, const int b)
 
const double min (const int a, const double b)
 
const double min (const float a, const int b)
 
const double min (const int a, const float b)
 
template<class TLeft , class TRight >
auto Min (const TLeft &lhs, const TRight &rhs) -> decltype(utl::F< utl::Functor::Min< Expr2ValueType< TLeft, TRight >> >(lhs, rhs))
 
template<class TLeft >
auto Min (const TLeft &lhs, const ScalarExpr &rhs) -> decltype(utl::F< utl::Functor::Min< Expr2ValueType< TLeft, ScalarExpr >> >(lhs, rhs))
 
template<class TRight >
auto Min (const ScalarExpr &lhs, const TRight &rhs) -> decltype(utl::F< utl::Functor::Min< Expr2ValueType< ScalarExpr, TRight >> >(lhs, rhs))
 
template<class T >
min_element (const std::vector< T > &v)
 
template<class T >
void mkl_imatcopy (const char ordering, const char trans, const int rows, const int cols, const T alpha, T *A, const int lda, const int ldb)
 
template<>
void mkl_imatcopy< double > (const char ordering, const char trans, const int rows, const int cols, const double alpha, double *A, const int lda, const int ldb)
 
template<>
void mkl_imatcopy< float > (const char ordering, const char trans, const int rows, const int cols, const float alpha, float *A, const int lda, const int ldb)
 
template<>
void mkl_imatcopy< std::complex< double > > (const char ordering, const char trans, const int rows, const int cols, const std::complex< double > alpha, std::complex< double > *A, const int lda, const int ldb)
 
template<>
void mkl_imatcopy< std::complex< float > > (const char ordering, const char trans, const int rows, const int cols, const std::complex< float > alpha, std::complex< float > *A, const int lda, const int ldb)
 
template<class T >
void mkl_omatcopy (const char ordering, const char trans, const int rows, const int cols, const T alpha, const T *A, const int lda, T *B, const int ldb)
 
template<>
void mkl_omatcopy< double > (const char ordering, const char trans, const int rows, const int cols, const double alpha, const double *A, const int lda, double *B, const int ldb)
 
template<>
void mkl_omatcopy< float > (const char ordering, const char trans, const int rows, const int cols, const float alpha, const float *A, const int lda, float *B, const int ldb)
 
template<>
void mkl_omatcopy< std::complex< double > > (const char ordering, const char trans, const int rows, const int cols, const std::complex< double > alpha, const std::complex< double > *A, const int lda, std::complex< double > *B, const int ldb)
 
template<>
void mkl_omatcopy< std::complex< float > > (const char ordering, const char trans, const int rows, const int cols, const std::complex< float > alpha, const std::complex< float > *A, const int lda, std::complex< float > *B, const int ldb)
 
template<class ExprT >
auto Neg (const ExprT &expr) -> decltype(utl::F< utl::Functor::Neg< typename ExprT::ValueType > >(expr))
 
template<class T >
void NormalizeGrad (const utl::NDArray< T, 2 > &grad)
 
template<class VectorType >
VectorType NormalizeMax (const VectorType &v, const int nSize)
 
template<typename T >
std::vector< T > NormalizeMax (const std::vector< T > &v)
 
template<class T >
vnl_matrix< T > NormalizeMinMax (const vnl_matrix< T > &matrix)
 
template<class VectorType >
VectorType NormalizeMinMax (const VectorType &v, const int nSize)
 
template<typename T >
std::vector< T > NormalizeMinMax (std::vector< T > &v)
 
template<class VectorType >
VectorType NormalizeUnitNorm (const VectorType &v, const int nSize)
 
template<typename T >
std::vector< T > NormalizeUnitNorm (const std::vector< T > &v)
 
template<class T = double>
utl::NDArray< T, 1 > Ones (const int n)
 
template<class T = double>
utl::NDArray< T, 2 > Ones (const int n, const int m)
 
template<typename TLeft , typename TRight >
BinaryOpExpr< std::multiplies< Expr2ValueType< TLeft, TRight > >, TLeft, TRight > operator% (const Expr< TLeft, typename TLeft::ValueType > &lhs, const Expr< TRight, typename TRight::ValueType > &rhs)
 
template<typename TRight >
BinaryOpExpr< std::multiplies< Expr2ValueType< ScalarExpr, TRight > >, ScalarExpr, TRight > operator% (const double lhs, const Expr< TRight, typename TRight::ValueType > &rhs)
 
template<typename TLeft >
BinaryOpExpr< std::multiplies< Expr2ValueType< TLeft, ScalarExpr > >, TLeft, ScalarExproperator% (const Expr< TLeft, typename TLeft::ValueType > &lhs, const ScalarExpr &rhs)
 
template<typename TRight >
BinaryOpExpr< std::multiplies< Expr2ValueType< ScalarExpr, TRight > >, ScalarExpr, TRight > operator% (const ScalarExpr &lhs, const Expr< TRight, typename TRight::ValueType > &rhs)
 
template<typename TRight >
BinaryOpExpr< std::multiplies< Expr2ValueType< ScalarComplexExpr, TRight > >, ScalarComplexExpr, TRight > operator% (const std::complex< double > lhs, const Expr< TRight, typename TRight::ValueType > &rhs)
 
template<typename TLeft >
BinaryOpExpr< std::multiplies< Expr2ValueType< TLeft, ScalarExpr > >, TLeft, ScalarExproperator% (const Expr< TLeft, typename TLeft::ValueType > &lhs, const double rhs)
 
template<typename TLeft >
BinaryOpExpr< std::multiplies< Expr2ValueType< TLeft, ScalarComplexExpr > >, TLeft, ScalarComplexExproperator% (const Expr< TLeft, typename TLeft::ValueType > &lhs, const std::complex< double > rhs)
 
template<typename T >
NDArray< T, 2 > operator* (const NDArray< T, 2 > &mat1, const NDArray< T, 2 > &mat2)
 
template<typename T >
NDArray< std::complex< T >, 2 > operator* (const NDArray< T, 2 > &mat1, const NDArray< std::complex< T >, 2 > &mat2)
 
template<typename T >
NDArray< std::complex< T >, 2 > operator* (const NDArray< std::complex< T >, 2 > &mat1, const NDArray< T, 2 > &mat2)
 
template<typename T >
NDArray< T, 1 > operator* (const NDArray< T, 2 > &mat, const NDArray< T, 1 > &vec)
 
template<typename T >
NDArray< T, 1 > operator* (const NDArray< T, 1 > &vec, const NDArray< T, 2 > &mat)
 
template<typename T , typename EType >
NDArray< T, 1 > operator* (const NDArray< T, 1 > &vec, const Expr< EType, typename EType::ValueType > &expr)
 
template<typename TLeft , typename TRight >
BinaryOpExpr< std::plus< Expr2ValueType< TLeft, TRight > >, TLeft, TRight > operator+ (const Expr< TLeft, typename TLeft::ValueType > &lhs, const Expr< TRight, typename TRight::ValueType > &rhs)
 
template<typename TLeft >
BinaryOpExpr< std::plus< Expr2ValueType< TLeft, ScalarExpr > >, TLeft, ScalarExproperator+ (const Expr< TLeft, typename TLeft::ValueType > &lhs, const ScalarExpr &rhs)
 
template<typename TRight >
BinaryOpExpr< std::plus< Expr2ValueType< ScalarExpr, TRight > >, ScalarExpr, TRight > operator+ (const ScalarExpr &lhs, const Expr< TRight, typename TRight::ValueType > &rhs)
 
template<typename TLeft >
BinaryOpExpr< std::plus< Expr2ValueType< TLeft, ScalarExpr > >, TLeft, ScalarExproperator+ (const Expr< TLeft, typename TLeft::ValueType > &lhs, const double rhs)
 
template<typename TRight >
BinaryOpExpr< std::plus< Expr2ValueType< ScalarComplexExpr, TRight > >, ScalarComplexExpr, TRight > operator+ (const std::complex< double > lhs, const Expr< TRight, typename TRight::ValueType > &rhs)
 
template<typename TLeft >
BinaryOpExpr< std::plus< Expr2ValueType< TLeft, ScalarComplexExpr > >, TLeft, ScalarComplexExproperator+ (const Expr< TLeft, typename TLeft::ValueType > &lhs, const std::complex< double > rhs)
 
template<typename TRight >
BinaryOpExpr< std::plus< Expr2ValueType< ScalarExpr, TRight > >, ScalarExpr, TRight > operator+ (const double lhs, const Expr< TRight, typename TRight::ValueType > &rhs)
 
template<typename TLeft , typename TRight >
BinaryOpExpr< std::minus< Expr2ValueType< TLeft, TRight > >, TLeft, TRight > operator- (const Expr< TLeft, typename TLeft::ValueType > &lhs, const Expr< TRight, typename TRight::ValueType > &rhs)
 
template<typename TLeft >
BinaryOpExpr< std::minus< Expr2ValueType< TLeft, ScalarExpr > >, TLeft, ScalarExproperator- (const Expr< TLeft, typename TLeft::ValueType > &lhs, const ScalarExpr &rhs)
 
template<typename TRight >
BinaryOpExpr< std::minus< Expr2ValueType< ScalarExpr, TRight > >, ScalarExpr, TRight > operator- (const double lhs, const Expr< TRight, typename TRight::ValueType > &rhs)
 
template<typename TLeft >
BinaryOpExpr< std::minus< Expr2ValueType< TLeft, ScalarExpr > >, TLeft, ScalarExproperator- (const Expr< TLeft, typename TLeft::ValueType > &lhs, const double rhs)
 
template<typename TLeft >
BinaryOpExpr< std::minus< Expr2ValueType< TLeft, ScalarComplexExpr > >, TLeft, ScalarComplexExproperator- (const Expr< TLeft, typename TLeft::ValueType > &lhs, const std::complex< double > rhs)
 
template<typename TRight >
BinaryOpExpr< std::minus< Expr2ValueType< ScalarComplexExpr, TRight > >, ScalarComplexExpr, TRight > operator- (const std::complex< double > lhs, const Expr< TRight, typename TRight::ValueType > &rhs)
 
template<typename TRight >
BinaryOpExpr< std::minus< Expr2ValueType< ScalarExpr, TRight > >, ScalarExpr, TRight > operator- (const ScalarExpr &lhs, const Expr< TRight, typename TRight::ValueType > &rhs)
 
template<typename TExpr >
UnaryOpExpr< std::negate< typename TExpr::ValueType >, TExpr > operator- (const Expr< TExpr, typename TExpr::ValueType > &lhs)
 
template<typename TLeft , typename TRight >
BinaryOpExpr< std::divides< Expr2ValueType< TLeft, TRight > >, TLeft, TRight > operator/ (const Expr< TLeft, typename TLeft::ValueType > &lhs, const Expr< TRight, typename TRight::ValueType > &rhs)
 
template<typename TRight >
BinaryOpExpr< std::divides< Expr2ValueType< ScalarExpr, TRight > >, ScalarExpr, TRight > operator/ (const double lhs, const Expr< TRight, typename TRight::ValueType > &rhs)
 
template<typename TLeft >
BinaryOpExpr< std::divides< Expr2ValueType< TLeft, ScalarExpr > >, TLeft, ScalarExproperator/ (const Expr< TLeft, typename TLeft::ValueType > &lhs, const double rhs)
 
template<typename TLeft >
BinaryOpExpr< std::divides< Expr2ValueType< TLeft, ScalarExpr > >, TLeft, ScalarExproperator/ (const Expr< TLeft, typename TLeft::ValueType > &lhs, const ScalarExpr &rhs)
 
template<typename TRight >
BinaryOpExpr< std::divides< Expr2ValueType< ScalarExpr, TRight > >, ScalarExpr, TRight > operator/ (const ScalarExpr &lhs, const Expr< TRight, typename TRight::ValueType > &rhs)
 
template<typename TLeft >
BinaryOpExpr< std::divides< Expr2ValueType< TLeft, ScalarComplexExpr > >, TLeft, ScalarComplexExproperator/ (const Expr< TLeft, typename TLeft::ValueType > &lhs, const std::complex< double > rhs)
 
template<typename TRight >
BinaryOpExpr< std::divides< Expr2ValueType< ScalarComplexExpr, TRight > >, ScalarComplexExpr, TRight > operator/ (const std::complex< double > lhs, const Expr< TRight, typename TRight::ValueType > &rhs)
 
template<typename T , unsigned int Dim>
std::ostream & operator<< (std::ostream &os, const NDArray< T, Dim > &arr)
 
template<typename T >
std::ostream & operator<< (std::ostream &os, const NDArray< T, 1 > &arr)
 
template<typename T >
std::ostream & operator<< (std::ostream &os, const NDArray< T, 2 > &arr)
 
template<class T >
void OuterProduct (const vnl_vector< T > &v1, const vnl_vector< T > &v2, vnl_matrix< T > &mat, const double alpha=1.0)
 
template<class T >
void OuterProduct (const vnl_vector< T > &v1, vnl_matrix< T > &mat, const double alpha=1.0)
 
template<class T >
void OuterProduct (const NDArrayBase< T, 2 > &mat1, const NDArrayBase< T, 2 > &mat2, NDArray< T, 4 > &tensor)
 
template<class T >
void OuterProduct (const NDArray< T, 1 > &v1, const NDArray< T, 1 > &v2, NDArray< T, 2 > &mat)
 
template<class TVector1 , class TVector2 , class TMatrix >
void OuterProduct (const TVector1 &v1, const int N1, const TVector2 &v2, const int N2, TMatrix &mat)
 
template<class TVector1 , class TMatrix >
void OuterProduct (const TVector1 &v1, const int N1, TMatrix &mat)
 
template<class T >
NDArray< T, 2 > PInverseMatrix (const NDArray< T, 2 > &mat, const double eps=1e-10)
 
template<class T >
NDArray< T, 2 > PInverseSymmericMatrix (const NDArray< T, 2 > &mat, const double eps=1e-10)
 
template<class T >
void PInverseSymmericVnlMatrix (const vnl_matrix< T > &mat, vnl_matrix< T > &result, const T eps=1e-8)
 
template<class T >
void PInverseVnlMatrix (const vnl_matrix< T > &mat, vnl_matrix< T > &result, const T eps=1e-8)
 
template<class PointsContainer , class VnlValueType >
void PointsContainerToUtlMatrix (const PointsContainer &points, utl::NDArray< VnlValueType, 2 > &matrix)
 
std::vector< std::complex< double > > PolynomialRoot (const std::vector< double > &coef)
 
template<class TRight >
auto Pow (const ScalarExpr &lhs, const TRight &rhs) -> decltype(utl::F< utl::Functor::Pow< Expr2ValueType< ScalarExpr, TRight >> >(lhs, rhs))
 
template<class TLeft >
auto Pow (const TLeft &lhs, const ScalarExpr &rhs) -> decltype(utl::F< utl::Functor::Pow< Expr2ValueType< TLeft, ScalarExpr >> >(lhs, rhs))
 
template<class TLeft , class TRight >
auto Pow (const TLeft &lhs, const TRight &rhs) -> decltype(utl::F< utl::Functor::Pow< Expr2ValueType< TLeft, TRight >> >(lhs, rhs))
 
template<class IteratorType >
void PowerVector (IteratorType v1, IteratorType v2, const double poww)
 
double PowHalfInteger (const double a, const double b)
 
double PowInteger (const double a, const int b)
 
template<typename... Args>
void Print (Args...args)
 
template<class IteratorType >
void PrintContainer (IteratorType v1, IteratorType v2, const std::string &str="", const char *separate=" ", std::ostream &os=std::cout, bool showStats=true)
 
template<class TMatrixType >
void PrintMatrix (const TMatrixType &matrix, const int NumberRows, const int NumberColumns, const std::string &str="", const char *separate=" ", std::ostream &os=std::cout, bool showStats=true)
 
template<class TMatrixType >
void PrintMatrixStats (const TMatrixType &matrix, const int NumberRows, const int NumberColumns, const std::string &str="", const char *separate=" ", std::ostream &os=std::cout)
 
template<typename... Args>
void PrintOS (std::ostream &os, Args...args)
 
template<class Tuple , vcl_size_t Pos>
std::ostream & PrintTuple (std::ostream &os, const Tuple &t, Int_< Pos >)
 
template<class Tuple >
std::ostream & PrintTuple (std::ostream &os, const Tuple &t, Int_< 1 >)
 
template<class... Args>
void PrintTuple (const std::tuple< Args... > &t, const std::string &str="", std::ostream &os=std::cout)
 
template<class T >
void PrintUtlMatrix (const NDArray< T, 2 > &mat, const std::string &str="", const char *separate=" ", std::ostream &os=std::cout)
 
template<class T , unsigned int Dim>
void PrintUtlNDArray (const NDArrayBase< T, Dim > &arr, const std::string &str="", const char *separate=" ", std::ostream &os=std::cout)
 
template<class T >
void PrintUtlVector (const NDArray< T, 1 > &vec, const std::string &str="", const char *separate=" ", std::ostream &os=std::cout, bool showStats=true)
 
template<typename T >
void PrintVector (const std::vector< T > &vec, const std::string &str="", const char *separate=" ", std::ostream &os=std::cout, bool showStats=true)
 
template<class VectorType >
void PrintVector (const VectorType &vec, const int NSize, const std::string &str="", const char *separate=" ", std::ostream &os=std::cout, bool showStats=true)
 
template<>
void PrintVector< std::string > (const std::vector< std::string > &vec, const std::string &str, const char *separate, std::ostream &os, bool showStats)
 
template<class T >
void PrintVnlMatrix (const vnl_matrix< T > &matrix, const std::string &str="", const char *separate=" ", std::ostream &os=std::cout)
 
template<class T >
void PrintVnlMatrixStats (const vnl_matrix< T > &matrix, const std::string &str="", const char *separate=" ", std::ostream &os=std::cout)
 
template<class T >
void PrintVnlVector (const vnl_vector< T > &vec, const std::string &str="", const char *separate=" ", std::ostream &os=std::cout)
 
template<class TMatrix1 , class TMatrix2 , class TMatrix3 >
void ProductMM (const TMatrix1 &mat1, int rows, int cols, const TMatrix2 &mat2, int cols2, TMatrix3 &mat3)
 
template<class TMatrix , class TVector1 , class TVector2 >
void ProductMv (const TMatrix &mat, int rows, int cols, const TVector1 &v1, TVector2 &v2)
 
template<class T >
void ProductUtlMM (const utl::NDArray< T, 2 > &A1, const utl::NDArray< T, 2 > &A2, const utl::NDArray< T, 2 > &A3, const utl::NDArray< T, 2 > &A4, utl::NDArray< T, 2 > &C)
 
template<class T >
void ProductUtlMM (const utl::NDArray< T, 2 > &A1, const utl::NDArray< T, 2 > &A2, const utl::NDArray< T, 2 > &A3, utl::NDArray< T, 2 > &C)
 
template<class T >
void ProductUtlMM (const utl::NDArray< T, 2 > &A, const utl::NDArray< T, 2 > &B, utl::NDArray< T, 2 > &C, const double alpha=1.0, const double beta=0.0)
 
template<class T >
void ProductUtlMM (const utl::NDArray< T, 2 > &A1, const utl::NDArray< T, 2 > &A2, const utl::NDArray< T, 2 > &A3, const utl::NDArray< T, 2 > &A4, const utl::NDArray< T, 2 > &A5, utl::NDArray< T, 2 > &C)
 
template<class T >
void ProductUtlMMt (const utl::NDArray< T, 2 > &A, const utl::NDArray< T, 2 > &B, utl::NDArray< T, 2 > &C, const double alpha=1.0, const double beta=0.0)
 
template<class T >
void ProductUtlMtM (const utl::NDArray< T, 2 > &A, const utl::NDArray< T, 2 > &B, utl::NDArray< T, 2 > &C, const double alpha=1.0, const double beta=0.0)
 
template<class T >
void ProductUtlMtMt (const utl::NDArray< T, 2 > &A, const utl::NDArray< T, 2 > &B, utl::NDArray< T, 2 > &C, const double alpha=1.0, const double beta=0.0)
 
template<class T >
void ProductUtlMtv (const utl::NDArray< T, 2 > &A, const utl::NDArray< T, 1 > &b, utl::NDArray< T, 1 > &c, const double alpha=1.0, const double beta=0.0)
 
template<class T >
void ProductUtlMv (const utl::NDArray< T, 2 > &A, const utl::NDArray< T, 1 > &b, utl::NDArray< T, 1 > &c, const double alpha=1.0, const double beta=0.0)
 
template<class T >
void ProductUtlvM (const utl::NDArray< T, 1 > &b, const utl::NDArray< T, 2 > &A, utl::NDArray< T, 1 > &c, const double alpha=1.0, const double beta=0.0)
 
template<class T >
void ProductUtlvMt (const utl::NDArray< T, 1 > &b, const utl::NDArray< T, 2 > &A, utl::NDArray< T, 1 > &c, const double alpha=1.0, const double beta=0.0)
 
template<class T >
void ProductUtlXtX (const utl::NDArray< T, 2 > &A, utl::NDArray< T, 2 > &C, const double alpha=1.0, const double beta=0.0)
 
template<class T >
void ProductUtlXXt (const utl::NDArray< T, 2 > &A, utl::NDArray< T, 2 > &C, const double alpha=1.0, const double beta=0.0)
 
template<class TVector1 , class TMatrix , class TVector2 >
void ProductvM (const TVector1 &v1, int rows, const TMatrix &mat, int cols, TVector2 &v2)
 
template<class T >
void ProductVnlMM (const vnl_matrix< T > &A, const vnl_matrix< T > &B, vnl_matrix< T > &C, const double alpha=1.0, const double beta=0.0)
 
template<class T >
void ProductVnlMM (const vnl_matrix< T > &A1, const vnl_matrix< T > &A2, const vnl_matrix< T > &A3, vnl_matrix< T > &C)
 
template<class T >
void ProductVnlMM (const vnl_matrix< T > &A1, const vnl_matrix< T > &A2, const vnl_matrix< T > &A3, const vnl_matrix< T > &A4, vnl_matrix< T > &C)
 
template<class T >
void ProductVnlMM (const vnl_matrix< T > &A1, const vnl_matrix< T > &A2, const vnl_matrix< T > &A3, const vnl_matrix< T > &A4, const vnl_matrix< T > &A5, vnl_matrix< T > &C)
 
template<class T >
void ProductVnlMMt (const vnl_matrix< T > &A, const vnl_matrix< T > &B, vnl_matrix< T > &C, const double alpha=1.0, const double beta=0.0)
 
template<class T >
void ProductVnlMtM (const vnl_matrix< T > &A, const vnl_matrix< T > &B, vnl_matrix< T > &C, const double alpha=1.0, const double beta=0.0)
 
template<class T >
void ProductVnlMtMt (const vnl_matrix< T > &A, const vnl_matrix< T > &B, vnl_matrix< T > &C, const double alpha=1.0, const double beta=0.0)
 
template<class T >
void ProductVnlMtv (const vnl_matrix< T > &A, const vnl_vector< T > &b, vnl_vector< T > &c, const double alpha=1.0, const double beta=0.0)
 
template<class T >
void ProductVnlMv (const vnl_matrix< T > &A, const vnl_vector< T > &b, vnl_vector< T > &c, const double alpha=1.0, const double beta=0.0)
 
template<class T >
void ProductVnlvM (const vnl_vector< T > &b, const vnl_matrix< T > &A, vnl_vector< T > &c, const double alpha=1.0, const double beta=0.0)
 
template<class T >
void ProductVnlvMt (const vnl_vector< T > &b, const vnl_matrix< T > &A, vnl_vector< T > &c, const double alpha=1.0, const double beta=0.0)
 
template<class T >
void ProductVnlXtX (const vnl_matrix< T > &A, vnl_matrix< T > &C, const double alpha=1.0, const double beta=0.0)
 
template<class T >
void ProductVnlXXt (const vnl_matrix< T > &A, vnl_matrix< T > &C, const double alpha=1.0, const double beta=0.0)
 
template<typename T >
Random (const T d1=T(0.0), const T d2=T(1.0))
 
long RandomInt (const long d1=0, const long d2=1)
 
std::vector< double > RandomPointInSphere (const bool hemis)
 
template<typename T >
std::vector< T > RandomVec (const std::vector< T > &vec, const int num, std::vector< int > &result_index)
 
int RankToDimSH (const int shRank)
 
template<class T >
std::shared_ptr< NDArray< T, 2 > > ReadGrad (const int tess, const int NoSymmetricDuple=DIRECTION_NODUPLICATE, const int mode=CARTESIAN_TO_SPHERICAL, const int flipx=DIRECTION_NOFLIP, const int flipy=DIRECTION_NOFLIP, const int flipz=DIRECTION_NOFLIP, const bool need_normalize=true)
 
template<class T >
std::shared_ptr< NDArray< T, 2 > > ReadGrad (const std::string &grad_str, const int NoSymmetricDuple=DIRECTION_NODUPLICATE, const int mode=CARTESIAN_TO_SPHERICAL, const int flipx=DIRECTION_NOFLIP, const int flipy=DIRECTION_NOFLIP, const int flipz=DIRECTION_NOFLIP, const bool need_normalize=true)
 
template<>
std::shared_ptr< NDArray< float, 2 > > ReadGrad< float > (const int tess, const int NoSymmetricDuple, const int mode, const int flipx, const int flipy, const int flipz, const bool need_normalize)
 
template<class T >
std::shared_ptr< NDArray< T, 2 > > ReadGradElectricRepulsion (const int num, const int NoSymmetricDuple=DIRECTION_NODUPLICATE, const int mode=CARTESIAN_TO_SPHERICAL, const int flipx=DIRECTION_NOFLIP, const int flipy=DIRECTION_NOFLIP, const int flipz=DIRECTION_NOFLIP, const bool need_normalize=true)
 
void ReadLines (const std::string &filename, std::vector< std::vector< std::string > > &strVec, const char *cc=" ")
 
void ReadLinesFirstlineCheck (const std::string &filename, std::vector< std::vector< std::string > > &strVec, const char *cc=" ")
 
template<class TMatrixType >
void ReadMatFileToMatrix (const std::string fileName, const std::string varibleName, TMatrixType &matrix)
 
template<class T >
void ReadMatFileToVNLMatrix (const std::string fileName, const std::string varibleName, vnl_matrix< T > *mat)
 
template<class TMatrixType >
void ReadMatrix (const std::string &file, TMatrixType &matrix)
 
template<class T >
void ReadVector (const std::string &vectorStr, std::vector< T > &vec, const char *cc=" ")
 
template<>
void ReadVector< std::string > (const std::string &vectorStr, std::vector< std::string > &vec, const char *cc)
 
template<class T , unsigned Dim>
NDArray< T, Dim > Real (const NDArray< std::complex< T >, Dim > &mat)
 
template<class T >
void RemoveScalarsByName (std::vector< T > &vec, const std::vector< std::string > &nameVec, const std::string &name)
 
void ReplaceString (std::string &source, const char *replace, const char *with)
 
void RGBToIndex (double R, double G, double B, double &index)
 
template<typename T >
RicianRand (const T value, const double sigma)
 
template<class VectorType , class MatrixType >
void RotationMatrixFromUnitNormVectors (const VectorType &from, const VectorType &to, MatrixType &mtx)
 
template<class VectorType , class MatrixType >
void RotationMatrixFromVectors (const VectorType &from, const VectorType &to, MatrixType &mat)
 
template<class T >
void RotationMatrixToAxisAngle (const NDArray< T, 2 > &rotMat, NDArray< T, 1 > &axis, double &theta)
 
template<class ExprT >
auto Round (const ExprT &expr) -> decltype(utl::F< utl::Functor::Round< typename ExprT::ValueType > >(expr))
 
template<class T >
int RoundNumber (const T x)
 
template<typename Vector2D >
void Save2DVector (const Vector2D &vv, std::ostream &out=std::cout)
 
template<typename Vector2D >
void Save2DVector (const Vector2D &vv, const std::string &file)
 
template<class TMatrixType >
void SaveMatrix (const TMatrixType &matrix, const int NumberRows, const int NumberColumns, const std::string &file)
 
template<class TMatrixType >
void SaveMatrixToMatFile (const TMatrixType &matrix, const int NumberRows, const int NumberColumns, const std::string fileName, const std::string varibleName)
 
template<typename VectorType >
void SaveVector (const VectorType &vv, const int NSize, const std::string &vectorStr, const bool is_save_number=false)
 
template<typename T >
void SaveVector (const std::vector< T > &vv, const std::string &vectorStr, const bool is_save_number=false)
 
template<class T >
void SaveVnlMatrix (const vnl_matrix< T > &matrix, const std::string &file)
 
template<class T >
void SaveVNLMatrixToMatFile (const vnl_matrix< T > *mat, const std::string fileName, const std::string varibleName)
 
template<typename T >
std::vector< T > SelectVector (const std::vector< T > &vec, const std::vector< int > &index)
 
template<typename T >
std::vector< T > SelectVector (const std::vector< T > &vec, const int startIndex, const int numberOfElement)
 
template<typename T >
std::vector< std::vector< int > > SeparateVector (const std::vector< T > &vec, std::vector< T > &vec_sep, const double gap=1e-9)
 
template<class T >
void SetColumnsVnlMatrix (const vnl_matrix< T > &submat, vnl_matrix< T > &mat, const std::vector< int > &index)
 
template<class T >
void SetRowsVnlMatrix (const vnl_matrix< T > &submat, vnl_matrix< T > &mat, const std::vector< int > &index)
 
template<class T >
void SetScalarsByName (const std::vector< T > &vec, const std::vector< std::string > &nameVec, const std::vector< T > &scalars, const std::string &name)
 
template<class T >
void SetValuesVnlVector (const vnl_vector< T > &subvec, vnl_vector< T > &vec, const int colstart)
 
template<class T >
void SetValuesVnlVector (const vnl_vector< T > &subvec, vnl_vector< T > &vec, const std::vector< int > &index)
 
template<typename T >
int SetVector (const char *s, std::vector< T > &vec, const int least_num=0, const char &c=',')
 
template<typename T >
int SetVector (const std::string &s, std::vector< T > &vec, const int least_num=0, const char &c=',')
 
static std::shared_ptr< NDArray< double, 3 > > SH3IntegralTable (new NDArray< double, 3 >)
 
template<typename T >
int sign (const T &x)
 
template<class ExprT >
auto Sign (const ExprT &expr) -> decltype(utl::F< utl::Functor::Sign< typename ExprT::ValueType > >(expr))
 
template<class ExprT >
auto Sin (const ExprT &expr) -> decltype(utl::F< utl::Functor::Sin< typename ExprT::ValueType > >(expr))
 
template<typename T >
void spherical2Cartesian (const T r, const T theta, const T phi, T &x, T &y, T &z)
 
template<typename T >
void spherical2Cartesian (T &x, T &y, T &z)
 
template<class T >
vnl_matrix< T > SphericalToCartesian (const vnl_matrix< T > &in)
 
template<class T >
NDArray< T, 2 > SphericalToCartesian (const NDArray< T, 2 > &in)
 
void SplitString (const std::string &str, std::vector< std::string > &strVec, const char *cc=" ")
 
template<class ExprT >
auto Sqrt (const ExprT &expr) -> decltype(utl::F< utl::Functor::Sqrt< typename ExprT::ValueType > >(expr))
 
template<typename T >
square (const T &x)
 
template<class ExprT >
auto Square (const ExprT &expr) -> decltype(utl::F< utl::Functor::Square< typename ExprT::ValueType > >(expr))
 
template<class TVector1 >
double SquaredTwoNorm (const TVector1 &v1, const int N1)
 
template<class T >
NDArray< T, 1 > StdVectorToUtlVector (const std::vector< T > &vec)
 
template<class T >
vnl_vector< T > StdVectorToVnlVector (const std::vector< T > &vec)
 
int strfind (const char *s, const char c)
 
bool StringCompareCaseIgnored (const std::string &str1, const std::string &str2)
 
std::string StringToLowerCase (const std::string &str)
 
std::string StringToUpperCase (const std::string &str)
 
void super_flush (std::ostream &stream)
 
template<class T >
void SVDVnlMatrix (const vnl_matrix< T > &mat, vnl_matrix< T > &U, vnl_vector< T > &s, vnl_matrix< T > &V, char format='S')
 
void SwapBytes (void *ptr, const int sizePerElement, const int count)
 
template<class T >
int syev (int matrix_order, char JOBZ, char UPLO, int N, T *A, int LDA, T *W)
 
template<>
int syev< double > (int matrix_order, char JOBZ, char UPLO, int N, double *A, int LDA, double *W)
 
template<>
int syev< float > (int matrix_order, char JOBZ, char UPLO, int N, float *A, int LDA, float *W)
 
template<class T >
void syev_UtlMatrix (const NDArray< T, 2 > &mat, NDArray< T, 1 > &eigenValues, NDArray< T, 2 > &eigenVectors)
 
template<class T >
void syev_VnlMatrix (const vnl_matrix< T > &mat, vnl_vector< T > &eigenValues, vnl_matrix< T > &eigenVectors)
 
template<class T >
int syevd (int matrix_order, char JOBZ, char UPLO, int N, T *A, int LDA, T *W)
 
template<>
int syevd< double > (int matrix_order, char JOBZ, char UPLO, int N, double *A, int LDA, double *W)
 
template<>
int syevd< float > (int matrix_order, char JOBZ, char UPLO, int N, float *A, int LDA, float *W)
 
template<>
int syevd< std::complex< double > > (int matrix_order, char JOBZ, char UPLO, int N, std::complex< double > *A, int LDA, std::complex< double > *W)
 
template<>
int syevd< std::complex< float > > (int matrix_order, char JOBZ, char UPLO, int N, std::complex< float > *A, int LDA, std::complex< float > *W)
 
template<class T >
void syevd_UtlMatrix (const NDArray< T, 2 > &mat, NDArray< T, 1 > &eigenValues, NDArray< T, 2 > &eigenVectors)
 
template<class T >
void syevd_VnlMatrix (const vnl_matrix< T > &mat, vnl_vector< T > &eigenValues, vnl_matrix< T > &eigenVectors)
 
template<class T >
void syrk_UtlMatrix (const bool trans, const T alpha, const utl::NDArray< T, 2 > &A, const T beta, utl::NDArray< T, 2 > &C)
 
template<class T >
void syrk_VnlMatrix (const bool trans, const T alpha, const vnl_matrix< T > &A, const T beta, vnl_matrix< T > &C)
 
template<class T >
int sytrf (int matrix_order, char UPLO, int N, T *A, int LDA, int *IPIV)
 
template<>
int sytrf< double > (int matrix_order, char UPLO, int N, double *A, int LDA, int *IPIV)
 
template<>
int sytrf< float > (int matrix_order, char UPLO, int N, float *A, int LDA, int *IPIV)
 
template<>
int sytrf< std::complex< double > > (int matrix_order, char UPLO, int N, std::complex< double > *A, int LDA, int *IPIV)
 
template<>
int sytrf< std::complex< float > > (int matrix_order, char UPLO, int N, std::complex< float > *A, int LDA, int *IPIV)
 
template<class T >
int sytri (int matrix_order, char UPLO, int N, T *A, int LDA, const int *IPIV)
 
template<>
int sytri< double > (int matrix_order, char UPLO, int N, double *A, int LDA, const int *IPIV)
 
template<>
int sytri< float > (int matrix_order, char UPLO, int N, float *A, int LDA, const int *IPIV)
 
template<>
int sytri< std::complex< double > > (int matrix_order, char UPLO, int N, std::complex< double > *A, int LDA, const int *IPIV)
 
template<>
int sytri< std::complex< float > > (int matrix_order, char UPLO, int N, std::complex< float > *A, int LDA, const int *IPIV)
 
template<class ExprT >
auto Tan (const ExprT &expr) -> decltype(utl::F< utl::Functor::Tan< typename ExprT::ValueType > >(expr))
 
unsigned long Tic (std::ostream &os=std::cout)
 
unsigned long TicToc (const bool is_tic, std::ostream &os=std::cout)
 
unsigned long Time ()
 
unsigned long Toc (std::ostream &os=std::cout)
 
template<class T , class EType >
std::shared_ptr< NDArray< T, 2 > > ToMatrix (const Expr< EType, typename EType::ValueType > &expr)
 
template<class T , unsigned int Dim, class EType >
std::shared_ptr< NDArray< T, Dim > > ToNDArray (const Expr< EType, typename EType::ValueType > &expr)
 
template<class T , class EType >
std::shared_ptr< NDArray< T, 1 > > ToVector (const Expr< EType, typename EType::ValueType > &expr)
 
template<class T >
std::string TypeName ()
 
template<class T >
std::string TypeName (const T &)
 
template<class VnlValueType , class PointsContainer >
void UtlMatrixToPointsContainer (const NDArray< VnlValueType, 2 > &matrix, PointsContainer &points)
 
template<class T >
void UtlMatrixToVnlMatrix (const NDArray< T, 2 > &mat, vnl_matrix< T > &matVnl)
 
template<class T >
vnl_matrix< T > UtlMatrixToVnlMatrix (const NDArray< T, 2 > &mat)
 
const char * utlOption (const char *const name, const unsigned int argc, char **argv, const char *const defaut, const char *const usage=NULL)
 
bool utlOption (const char *const name, const unsigned int argc, char **argv, const bool defaut, const char *const usage=NULL)
 
int utlOption (const char *const name, const unsigned int argc, char **argv, const int defaut, const char *const usage=NULL)
 
char utlOption (const char *const name, const unsigned int argc, char **argv, const char defaut, const char *const usage=NULL)
 
double utlOption (const char *const name, const unsigned int argc, char **argv, const double defaut, const char *const usage=NULL)
 
template<class T >
std::vector< T > UtlVectorToStdVector (const NDArray< T, 1 > &vec)
 
template<class T >
itk::VariableLengthVector< T > UtlVectorToVariableLengthVector (const NDArray< T, 1 > &vec)
 
template<class T >
vnl_vector< T > UtlVectorToVnlVector (const NDArray< T, 1 > &vec)
 
template<typename T >
void vAbs (int n, T *vecIn, T *vecOut)
 
template<typename T >
void vAdd (int n, T *vecIn, T *vecIn2, T *vecOut)
 
template<class T >
NDArray< T, 1 > VariableLengthVectorToUtlVector (const itk::VariableLengthVector< T > &vec)
 
template<typename T >
void vCos (int n, T *vecIn, T *vecOut)
 
template<typename T >
void vDiv (int n, T *vecIn, T *vecIn2, T *vecOut)
 
template<class VectorType >
void VectorShrinkage (VectorType &vec, const int N, const double kappa)
 
template<class T1 , class T2 >
void VectorToVector (const T1 &v1, T2 &v2, const int N)
 
template<typename T >
void vExp (int n, T *vecIn, T *vecOut)
 
template<typename T >
void vInv (int n, T *vecIn, T *vecOut)
 
template<typename T >
void vInvSqrt (int n, T *vecIn, T *vecOut)
 
template<typename T >
void vMul (int n, T *vecIn, T *vecIn2, T *vecOut)
 
template<class T >
void VnlMatrixToUtlMatrix (const vnl_matrix< T > &mat, utl::NDArray< T, 2 > &matUtl)
 
template<class T , unsigned rows, unsigned cols>
void VnlMatrixToUtlMatrix (const vnl_matrix_fixed< T, rows, cols > &mat, utl::NDArray< T, 2 > &matUtl)
 
template<class T >
utl::NDArray< T, 2 > VnlMatrixToUtlMatrix (const vnl_matrix< T > &mat)
 
template<class T >
std::vector< T > VnlVectorToStdVector (const vnl_vector< T > &vec)
 
template<class T >
utl::NDArray< T, 1 > VnlVectorToUtlVector (const vnl_vector< T > &vec)
 
template<typename T >
void vSin (int n, T *vecIn, T *vecOut)
 
template<typename T >
void vSqr (int n, T *vecIn, T *vecOut)
 
template<typename T >
void vSqrt (int n, T *vecIn, T *vecOut)
 
template<typename T >
void vSub (int n, T *vecIn, T *vecIn2, T *vecOut)
 
double w_im (double x)
 
static double w_im_y100 (double y100, double x)
 
template<typename WriterType >
void WriteVTK (vtkPolyData *mesh, const std::string &filename)
 
void WriteVtkPolyData (vtkPolyData *mesh, const std::string &filename)
 
std::string ZeroPad (const unsigned int number, const unsigned int paddedLength)
 

Variables

static const double BesselJPrimeZerosOrder1 [60]
 
static const double BesselJPrimeZerosTable []
 
static const std::string DirectionsT1 = std::string( "/home/jcheng/.dmritool/Data/Tessellation/directions_t1.txt" )
 
static const std::string DirectionsT2 = std::string( "/home/jcheng/.dmritool/Data/Tessellation/directions_t2.txt" )
 
static const std::string DirectionsT3 = std::string( "/home/jcheng/.dmritool/Data/Tessellation/directions_t3.txt" )
 
static const std::string DirectionsT4 = std::string( "/home/jcheng/.dmritool/Data/Tessellation/directions_t4.txt" )
 
static const std::string DirectionsT5 = std::string( "/home/jcheng/.dmritool/Data/Tessellation/directions_t5.txt" )
 
static const std::string DirectionsT6 = std::string( "/home/jcheng/.dmritool/Data/Tessellation/directions_t6.txt" )
 
static const std::string DirectionsT7 = std::string( "/home/jcheng/.dmritool/Data/Tessellation/directions_t7.txt" )
 
static constexpr double E = 2.71828182845904523536028747135
 
static const unsigned long FactorialTable [21]
 
static const double GammaHalfIntegerTable [30]
 
static const std::string GradientsElec = std::string( "/home/jcheng/.dmritool/Data/ElectricRepulsion" )
 
static const std::string LearnedSPFDictionary_SH8_RA4_K250 = std::string( "/home/jcheng/.dmritool/Data/PreComputedTables/SPFDictionary_sh8_ra4_eps0.0001_iter10000_online_iso2_k250_md5_fa10_mdiso10x321.txt" )
 
static const std::string LearnedSPFEnergy_SH8_RA4_K250 = std::string( "/home/jcheng/.dmritool/Data/PreComputedTables/SPFEnergy_sh8_ra4_eps0.0001_iter10000_online_iso2_k250_md5_fa10_mdiso10x321.txt" )
 
static constexpr double LOG10E = 0.43429448190325182765112891892
 
static constexpr double LOG2E = 1.44269504088896340735992468100
 
static int LogLevel =LOG_NORMAL
 
static constexpr double PI = 3.14159265358979323846264338328
 
static constexpr double PI_2 = 1.57079632679489661923132169164
 
static constexpr double PI_4 = 0.78539816339744830961566084582
 
static const std::string SH3Itegralhdr = std::string( "/home/jcheng/.dmritool/Data/PreComputedTables/sh3integral.hdr" )
 
static constexpr double SQRT1_2 = 0.70710678118654752440084436210
 
static constexpr double SQRT2 = 1.41421356237309504880168872421
 
static constexpr double SQRT3 = 1.73205080756887729352744634151
 
static constexpr double SQRTPI = 1.77245385090551602729816748334
 

Typedef Documentation

template<class... T>
using utl::common_type_t = typedef typename ::std::common_type<T...>::type

Definition at line 45 of file utlTypeinfo.h.

template<bool B, class T , class F >
using utl::conditional_t = typedef typename ::std::conditional<B,T,F>::type

Definition at line 33 of file utlTypeinfo.h.

typedef int utl::INTT

Definition at line 55 of file utlBlas.h.

template<class T >
using utl::remove_complex_t = typedef typename remove_complex<T>::type

Definition at line 67 of file utlTypeinfo.h.

template<class T >
using utl::remove_const_t = typedef typename ::std::remove_const<T>::type

Definition at line 36 of file utlTypeinfo.h.

template<class T >
using utl::remove_reference_t = typedef typename ::std::remove_reference<T>::type

Definition at line 39 of file utlTypeinfo.h.

template<class T , typename t >
using utl::superset_t = typedef typename Superset<T,t>::type

Definition at line 76 of file utlTypeinfo.h.

Function Documentation

template<class VectorType >
void utl::AbsoluteVector ( VectorType &  vec,
const int  N 
)
inline

Definition at line 1673 of file utlCore.h.

References spams::abs().

Referenced by GetAbsoluteVector().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<typename VectorType >
VectorType utl::AddNoise ( const VectorType &  signal,
const int  size,
const double  sigma,
const bool  is_rician = true 
)
inline

Definition at line 1552 of file utlCore.h.

References GaussRand(), and RicianRand().

Referenced by AddNoise().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<typename T >
std::vector<T> utl::AddNoise ( const std::vector< T > &  signal,
const double  sigma,
const bool  is_rician = true 
)
inline

Definition at line 1570 of file utlCore.h.

References AddNoise().

+ Here is the call graph for this function:

template<class Iterator >
unsigned int utl::argmax ( Iterator  i1,
Iterator  i2 
)
inline

Definition at line 222 of file utlCore.h.

References max_element().

Referenced by utl::NDArrayBase< T, 4 >::MaxValue().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<class VectorType >
void utl::argmax2 ( const VectorType &  vec,
int  size,
int &  index0,
int &  index1 
)
inline

calculate indices of the first two largest elements

Definition at line 234 of file utlCore.h.

References max().

Referenced by itk::SamplingSchemeQSpace1OptEstimationFilter< TSamplingType >::GenerateData().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<class TMatrixType >
double utl::ArgmaxMatrix ( const TMatrixType &  matrix,
const int  rows,
const int  columns,
int &  row,
int &  colomn 
)
inline

Definition at line 1806 of file utlCore.h.

References max().

+ Here is the call graph for this function:

template<class TMatrixType >
double utl::ArgmaxSymmetricMatrix ( const TMatrixType  matrix,
const int  size,
int &  row,
int &  colomn,
const bool  includeDiagonalElements 
)
inline

Definition at line 1762 of file utlCore.h.

References max().

+ Here is the call graph for this function:

template<class Iterator >
unsigned int utl::argmin ( Iterator  i1,
Iterator  i2 
)
inline

Definition at line 212 of file utlCore.h.

References min_element().

Referenced by itk::SamplingSchemeQSpaceIMOCEstimationFilter< TSamplingType >::IsSatisfiedSeparationAngles(), and utl::NDArrayBase< T, 4 >::MinValue().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<class TMatrixType >
double utl::ArgminMatrix ( const TMatrixType  matrix,
const int  rows,
const int  columns,
int &  row,
int &  colomn 
)
inline

Definition at line 1828 of file utlCore.h.

References max().

+ Here is the call graph for this function:

template<class TMatrixType >
double utl::ArgminSymmetricMatrix ( const TMatrixType &  matrix,
const int  size,
int &  row,
int &  colomn,
const bool  includeDiagonalElements 
)
inline

Definition at line 1784 of file utlCore.h.

References max().

+ Here is the call graph for this function:

template<class T >
void utl::AxisAngleToRotationMatrix ( const NDArray< T, 1 > &  axis,
const double  theta,
NDArray< T, 2 > &  rotMat 
)

Convert a set of axis and angle to a rotation matrix.

reference: axang2rotm in Matlab. https://en.wikipedia.org/wiki/Rotation_matrix

Definition at line 1231 of file utlNDArrayFunctions.h.

Referenced by RotationMatrixToAxisAngle().

+ Here is the caller graph for this function:

template<typename T >
void utl::cartesian2Spherical ( const T  x,
const T  y,
const T  z,
T &  r,
T &  theta,
T &  phi 
)
inline

http://en.wikipedia.org/wiki/Spherical_coordinate_system

Definition at line 1579 of file utlCore.h.

References M_EPS.

Referenced by cartesian2Spherical(), CartesianToSpherical(), and ReadGrad().

+ Here is the caller graph for this function:

template<typename T >
void utl::cartesian2Spherical ( T &  x,
T &  y,
T &  z 
)
inline

Definition at line 1593 of file utlCore.h.

References cartesian2Spherical().

+ Here is the call graph for this function:

template<class T >
NDArray<T,2> utl::CartesianToSpherical ( const NDArray< T, 2 > &  in)

Definition at line 133 of file utlNDArrayFunctions.h.

References cartesian2Spherical(), utl::NDArray< T, 2 >::Columns(), utl::NDArray< T, 2 >::Rows(), and utlAssert.

Referenced by callFunction(), ComputeSHMatrix(), utl::GradientTable< T >::GetGrad(), and itk::SamplingScheme3D< TPixelType >::GetOrientationsSpherical().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<class T >
T utl::cblas_asum ( const INTT  N,
const T *  X,
const INTT  incX 
)
inline
double utl::cblas_asum ( const INTT  N,
const std::complex< double > *  X,
const INTT  incX 
)
inline

Definition at line 229 of file utlBlas.h.

References cblas_dzasum().

+ Here is the call graph for this function:

float utl::cblas_asum ( const INTT  N,
const std::complex< float > *  X,
const INTT  incX 
)
inline

Definition at line 234 of file utlBlas.h.

References cblas_scasum().

+ Here is the call graph for this function:

template<>
double utl::cblas_asum< double > ( const INTT  N,
const double *  X,
const INTT  incX 
)
inline

Definition at line 219 of file utlBlas.h.

References cblas_dasum().

+ Here is the call graph for this function:

template<>
float utl::cblas_asum< float > ( const INTT  N,
const float *  X,
const INTT  incX 
)
inline

Definition at line 224 of file utlBlas.h.

References cblas_sasum().

+ Here is the call graph for this function:

template<class T >
void utl::cblas_axpby ( const INTT  N,
const T  alpha,
const T *  X,
const INTT  incX,
const T  beta,
T *  Y,
const INTT  incY 
)
inline

Definition at line 413 of file utlBlas.h.

Referenced by utl::NDArrayBase< T, 4 >::Scale().

+ Here is the caller graph for this function:

template<class T >
void utl::cblas_copy ( const INTT  N,
const T *  X,
const INTT  incX,
T *  Y,
const INTT  incY 
)
inline

copy from one vector to another vector

Referenced by spams::coreGroupIST(), spams::coreGroupISTConstrained(), itk::L1RegularizedLeastSquaresFISTASolver< TPrecision >::Iterate(), MatrixCopy(), and utl::NDArray< T, 1 >::NDArray().

+ Here is the caller graph for this function:

template<>
void utl::cblas_copy< double > ( const INTT  N,
const double *  X,
const INTT  incX,
double *  Y,
const INTT  incY 
)
inline

Definition at line 260 of file utlBlas.h.

References cblas_dcopy().

+ Here is the call graph for this function:

template<>
void utl::cblas_copy< float > ( const INTT  N,
const float *  X,
const INTT  incX,
float *  Y,
const INTT  incY 
)
inline

Definition at line 265 of file utlBlas.h.

References cblas_scopy().

+ Here is the call graph for this function:

template<>
void utl::cblas_copy< std::complex< double > > ( const INTT  N,
const std::complex< double > *  X,
const INTT  incX,
std::complex< double > *  Y,
const INTT  incY 
)
inline

Definition at line 270 of file utlBlas.h.

References cblas_zcopy().

+ Here is the call graph for this function:

template<>
void utl::cblas_copy< std::complex< float > > ( const INTT  N,
const std::complex< float > *  X,
const INTT  incX,
std::complex< float > *  Y,
const INTT  incY 
)
inline

Definition at line 275 of file utlBlas.h.

References cblas_ccopy().

+ Here is the call graph for this function:

template<class T >
T utl::cblas_dot ( const INTT  N,
const T *  X,
const INTT  incX,
const T *  Y,
const INTT  incY 
)
inline

dot product between two vectors

Referenced by spams::coreGroupIST(), and spams::coreGroupISTConstrained().

+ Here is the caller graph for this function:

template<>
double utl::cblas_dot< double > ( const INTT  N,
const double *  X,
const INTT  incX,
const double *  Y,
const INTT  incY 
)
inline

Definition at line 241 of file utlBlas.h.

References cblas_ddot().

+ Here is the call graph for this function:

template<>
float utl::cblas_dot< float > ( const INTT  N,
const float *  X,
const INTT  incX,
const float *  Y,
const INTT  incY 
)
inline

Definition at line 246 of file utlBlas.h.

References cblas_sdot().

+ Here is the call graph for this function:

template<>
std::complex<double> utl::cblas_dot< std::complex< double > > ( const INTT  N,
const std::complex< double > *  X,
const INTT  incX,
const std::complex< double > *  Y,
const INTT  incY 
)
inline

Definition at line 252 of file utlBlas.h.

References cblas_zdotc_sub().

+ Here is the call graph for this function:

template<class T >
void utl::cblas_gemm ( const CBLAS_ORDER  order,
const CBLAS_TRANSPOSE  TransA,
const CBLAS_TRANSPOSE  TransB,
const INTT  M,
const INTT  N,
const INTT  K,
const T  alpha,
const T *  A,
const INTT  lda,
const T *  B,
const INTT  ldb,
const T  beta,
T *  C,
const INTT  ldc 
)
inline

template function definitions. Level 3 Matrix-matrix product of general matrices

template<>
void utl::cblas_gemm< double > ( const CBLAS_ORDER  order,
const CBLAS_TRANSPOSE  TransA,
const CBLAS_TRANSPOSE  TransB,
const INTT  M,
const INTT  N,
const INTT  K,
const double  alpha,
const double *  A,
const INTT  lda,
const double *  B,
const INTT  ldb,
const double  beta,
double *  C,
const INTT  ldc 
)
inline

Definition at line 363 of file utlBlas.h.

References cblas_dgemm().

+ Here is the call graph for this function:

template<>
void utl::cblas_gemm< float > ( const CBLAS_ORDER  order,
const CBLAS_TRANSPOSE  TransA,
const CBLAS_TRANSPOSE  TransB,
const INTT  M,
const INTT  N,
const INTT  K,
const float  alpha,
const float *  A,
const INTT  lda,
const float *  B,
const INTT  ldb,
const float  beta,
float *  C,
const INTT  ldc 
)
inline

Definition at line 368 of file utlBlas.h.

References cblas_sgemm().

+ Here is the call graph for this function:

template<>
void utl::cblas_gemm< std::complex< double > > ( const CBLAS_ORDER  order,
const CBLAS_TRANSPOSE  TransA,
const CBLAS_TRANSPOSE  TransB,
const INTT  M,
const INTT  N,
const INTT  K,
const std::complex< double >  alpha,
const std::complex< double > *  A,
const INTT  lda,
const std::complex< double > *  B,
const INTT  ldb,
const std::complex< double >  beta,
std::complex< double > *  C,
const INTT  ldc 
)
inline

Definition at line 373 of file utlBlas.h.

References cblas_zgemm().

+ Here is the call graph for this function:

template<class T >
void utl::cblas_gemv ( const CBLAS_ORDER  order,
const CBLAS_TRANSPOSE  TransA,
const INTT  M,
const INTT  N,
const T  alpha,
const T *  A,
const INTT  lda,
const T *  X,
const INTT  incX,
const T  beta,
T *  Y,
const INTT  incY 
)
inline

Matrix-vector product of general matrices. $ y := alpha*A*x + beta*y $

template<>
void utl::cblas_gemv< double > ( const CBLAS_ORDER  order,
const CBLAS_TRANSPOSE  TransA,
const INTT  M,
const INTT  N,
const double  alpha,
const double *  A,
const INTT  lda,
const double *  X,
const INTT  incX,
const double  beta,
double *  Y,
const INTT  incY 
)
inline

Definition at line 338 of file utlBlas.h.

References cblas_dgemv().

+ Here is the call graph for this function:

template<>
void utl::cblas_gemv< float > ( const CBLAS_ORDER  order,
const CBLAS_TRANSPOSE  TransA,
const INTT  M,
const INTT  N,
const float  alpha,
const float *  A,
const INTT  lda,
const float *  X,
const INTT  incX,
const float  beta,
float *  Y,
const INTT  incY 
)
inline

Definition at line 343 of file utlBlas.h.

References cblas_sgemv().

+ Here is the call graph for this function:

template<>
void utl::cblas_gemv< std::complex< double > > ( const CBLAS_ORDER  order,
const CBLAS_TRANSPOSE  TransA,
const INTT  M,
const INTT  N,
const std::complex< double >  alpha,
const std::complex< double > *  A,
const INTT  lda,
const std::complex< double > *  X,
const INTT  incX,
const std::complex< double >  beta,
std::complex< double > *  Y,
const INTT  incY 
)
inline

Definition at line 348 of file utlBlas.h.

References cblas_zgemv().

+ Here is the call graph for this function:

template<>
void utl::cblas_gemv< std::complex< float > > ( const CBLAS_ORDER  order,
const CBLAS_TRANSPOSE  TransA,
const INTT  M,
const INTT  N,
const std::complex< float >  alpha,
const std::complex< float > *  A,
const INTT  lda,
const std::complex< float > *  X,
const INTT  incX,
const std::complex< float >  beta,
std::complex< float > *  Y,
const INTT  incY 
)
inline

Definition at line 353 of file utlBlas.h.

References cblas_cgemv().

+ Here is the call graph for this function:

template<class T >
void utl::cblas_ger ( const CBLAS_ORDER  order,
const INTT  M,
const INTT  N,
const T  alpha,
const T *  X,
const INTT  incX,
const T *  Y,
const INTT  incY,
T *  A,
const INTT  lda 
)
inline

template function definitions. Level 2 out-product of two vectors. $ A = alpha*x*y'+ A, $

Referenced by spams::coreGroupIST(), and spams::coreGroupISTConstrained().

+ Here is the caller graph for this function:

template<>
void utl::cblas_ger< double > ( const CBLAS_ORDER  order,
const INTT  M,
const INTT  N,
const double  alpha,
const double *  X,
const INTT  incX,
const double *  Y,
const INTT  incY,
double *  A,
const INTT  lda 
)
inline

Definition at line 321 of file utlBlas.h.

References cblas_dger().

+ Here is the call graph for this function:

template<>
void utl::cblas_ger< float > ( const CBLAS_ORDER  order,
const INTT  M,
const INTT  N,
const float  alpha,
const float *  X,
const INTT  incX,
const float *  Y,
const INTT  incY,
float *  A,
const INTT  lda 
)
inline

Definition at line 316 of file utlBlas.h.

References cblas_sger().

+ Here is the call graph for this function:

template<class T >
int utl::cblas_iamax ( const INTT  N,
const T *  X,
const INTT  incX 
)
inline

interface to cblas_i*amax

template function definitions. Level 1

Definition at line 183 of file utlBlas.h.

References spams::abs(), and max_element().

+ Here is the call graph for this function:

template<>
int utl::cblas_iamax< double > ( const INTT  N,
const double *  X,
const INTT  incX 
)
inline

function implementations using double and float

Definition at line 127 of file utlBlas.h.

References cblas_idamax(), and CBLAS_INDEX.

+ Here is the call graph for this function:

template<>
int utl::cblas_iamax< float > ( const INTT  N,
const float *  X,
const INTT  incX 
)
inline

Definition at line 132 of file utlBlas.h.

References CBLAS_INDEX, and cblas_isamax().

+ Here is the call graph for this function:

template<>
int utl::cblas_iamax< std::complex< double > > ( const INTT  N,
const std::complex< double > *  X,
const INTT  incX 
)
inline

Definition at line 137 of file utlBlas.h.

References CBLAS_INDEX, and cblas_izamax().

+ Here is the call graph for this function:

template<>
int utl::cblas_iamax< std::complex< float > > ( const INTT  N,
const std::complex< float > *  X,
const INTT  incX 
)
inline

Definition at line 142 of file utlBlas.h.

References cblas_icamax(), cblas_idamin(), CBLAS_INDEX, and cblas_isamin().

+ Here is the call graph for this function:

template<class T >
int utl::cblas_iamin ( const INTT  N,
const T *  X,
const INTT  incX 
)
inline

interface to cblas_i*amin

Definition at line 170 of file utlBlas.h.

References spams::abs(), CBLAS_INDEX, and min_element().

Referenced by utl::NDArrayBase< T, 4 >::AbsoluteMinValue().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<class T >
T utl::cblas_nrm2 ( const INTT  N,
const T *  X,
const INTT  incX 
)
inline
double utl::cblas_nrm2 ( const INTT  N,
const std::complex< double > *  X,
const INTT  incX 
)
inline

Definition at line 208 of file utlBlas.h.

References cblas_dznrm2().

+ Here is the call graph for this function:

float utl::cblas_nrm2 ( const INTT  N,
const std::complex< float > *  X,
const INTT  incX 
)
inline

Definition at line 213 of file utlBlas.h.

References cblas_scnrm2().

+ Here is the call graph for this function:

template<>
double utl::cblas_nrm2< double > ( const INTT  N,
const double *  X,
const INTT  incX 
)
inline

Definition at line 198 of file utlBlas.h.

References cblas_dnrm2().

+ Here is the call graph for this function:

template<>
float utl::cblas_nrm2< float > ( const INTT  N,
const float *  X,
const INTT  incX 
)
inline

Definition at line 203 of file utlBlas.h.

References cblas_snrm2().

+ Here is the call graph for this function:

template<class T >
void utl::cblas_scal ( const INTT  N,
const T  alpha,
T *  X,
const INTT  incX 
)
inline

Computes the product of a vector by a scalar. x = a*x

Referenced by spams::coreGroupIST(), and spams::coreGroupISTConstrained().

+ Here is the caller graph for this function:

template<>
void utl::cblas_scal< double > ( const INTT  N,
const double  alpha,
double *  X,
const INTT  incX 
)
inline

Definition at line 292 of file utlBlas.h.

References cblas_dscal().

Referenced by itk::L1RegularizedLeastSquaresFISTASolver< TPrecision >::Iterate().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<>
void utl::cblas_scal< float > ( const INTT  N,
const float  alpha,
float *  X,
const INTT  incX 
)
inline

Definition at line 297 of file utlBlas.h.

References cblas_sscal().

+ Here is the call graph for this function:

template<>
void utl::cblas_scal< std::complex< double > > ( const INTT  N,
const std::complex< double >  alpha,
std::complex< double > *  X,
const INTT  incX 
)
inline

Definition at line 302 of file utlBlas.h.

References cblas_zscal().

+ Here is the call graph for this function:

template<>
void utl::cblas_scal< std::complex< float > > ( const INTT  N,
const std::complex< float >  alpha,
std::complex< float > *  X,
const INTT  incX 
)
inline

Definition at line 307 of file utlBlas.h.

References cblas_cscal().

+ Here is the call graph for this function:

template<class T >
void utl::cblas_swap ( const INTT  N,
T *  X,
const INTT  incX,
T *  Y,
const INTT  incY 
)
inline

swap two vectors

template<>
void utl::cblas_swap< double > ( const INTT  N,
double *  X,
const INTT  incX,
double *  Y,
const INTT  incY 
)
inline

Definition at line 281 of file utlBlas.h.

References cblas_dswap().

+ Here is the call graph for this function:

template<>
void utl::cblas_swap< float > ( const INTT  N,
float *  X,
const INTT  incX,
float *  Y,
const INTT  incY 
)
inline

Definition at line 286 of file utlBlas.h.

References cblas_sswap().

+ Here is the call graph for this function:

template<class T >
void utl::cblas_syr ( const CBLAS_ORDER  order,
const CBLAS_UPLO  Uplo,
const INTT  N,
const T  alpha,
const T *  X,
const INTT  incX,
T *  A,
const INTT  lda 
)
inline

out-product of one vector. $ A = alpha*x*x' + A $

template<>
void utl::cblas_syr< double > ( const CBLAS_ORDER  order,
const CBLAS_UPLO  Uplo,
const INTT  N,
const double  alpha,
const double *  X,
const INTT  incX,
double *  A,
const INTT  lda 
)
inline

Definition at line 332 of file utlBlas.h.

References cblas_dsyr().

+ Here is the call graph for this function:

template<>
void utl::cblas_syr< float > ( const CBLAS_ORDER  order,
const CBLAS_UPLO  Uplo,
const INTT  N,
const float  alpha,
const float *  X,
const INTT  incX,
float *  A,
const INTT  lda 
)
inline

Definition at line 327 of file utlBlas.h.

References cblas_ssyr().

+ Here is the call graph for this function:

template<class T >
void utl::cblas_syrk ( CBLAS_ORDER  order,
CBLAS_UPLO  Uplo,
CBLAS_TRANSPOSE  Trans,
INTT  N,
INTT  K,
alpha,
T *  A,
INTT  lda,
beta,
T *  C,
INTT  ldc 
)
inline

Rank-k update—multiplies a symmetric matrix by its transpose and adds a second matrix.

template<>
void utl::cblas_syrk< double > ( CBLAS_ORDER  order,
CBLAS_UPLO  Uplo,
CBLAS_TRANSPOSE  Trans,
INTT  N,
INTT  K,
double  alpha,
double *  A,
INTT  lda,
double  beta,
double *  C,
INTT  ldc 
)
inline

Definition at line 379 of file utlBlas.h.

References cblas_dsyrk().

+ Here is the call graph for this function:

template<>
void utl::cblas_syrk< float > ( CBLAS_ORDER  order,
CBLAS_UPLO  Uplo,
CBLAS_TRANSPOSE  Trans,
INTT  N,
INTT  K,
float  alpha,
float *  A,
INTT  lda,
float  beta,
float *  C,
INTT  ldc 
)
inline

Definition at line 384 of file utlBlas.h.

References cblas_ssyrk().

+ Here is the call graph for this function:

bool utl::CheckField ( const mxArray *  pr_struct,
const char *  name 
)
inline

get a scalar from a struct

Definition at line 300 of file mexutils.h.

bool utl::CheckSize ( const mxArray *  array,
const int  m,
const int  n 
)
inline

Check the size of a 2D-array.

Definition at line 79 of file mexutils.h.

template<class T , unsigned Dim>
NDArray<std::complex<T>, Dim> utl::ComplexCombine ( const NDArray< T, Dim > &  arrReal,
const NDArray< T, Dim > &  arrImg 
)

generate complex array from real and imaginary parts

Definition at line 1089 of file utlNDArrayFunctions.h.

References utl::NDArrayBase< T, Dim >::GetShape(), IsSameShape(), and utlException.

+ Here is the call graph for this function:

template<class T , unsigned Dim>
NDArray<std::complex<T>, Dim> utl::ComplexCombine ( const T  val,
const NDArray< T, Dim > &  arrImg 
)

generate complex array from imaginary part, if val==0

Definition at line 1102 of file utlNDArrayFunctions.h.

References utl::NDArrayBase< T, Dim >::GetShape().

+ Here is the call graph for this function:

template<class T , unsigned Dim>
NDArray<std::complex<T>, Dim> utl::ComplexCombine ( const NDArray< T, Dim > &  arrReal,
const T  val 
)

generate complex array from real part, if val==0

Definition at line 1114 of file utlNDArrayFunctions.h.

References utl::NDArrayBase< T, Dim >::GetShape().

+ Here is the call graph for this function:

void utl::ComputeNDArrayIndex ( const int  offset,
std::vector< int > &  index,
const std::vector< int > &  size,
const int  storedWay,
std::vector< int >  offsetTable = std::vector<int>() 
)
inline

Definition at line 1977 of file utlCore.h.

References COLUMN_MAJOR, ComputeOffsetTable(), ROW_MAJOR, and utlException.

+ Here is the call graph for this function:

int utl::ComputeNDArrayOffset ( const std::vector< int > &  multiIndex,
const std::vector< int > &  size,
const int  storedWay,
std::vector< int >  offsetTable = std::vector<int>() 
)
inline

Definition at line 1946 of file utlCore.h.

References COLUMN_MAJOR, ComputeOffsetTable(), ROW_MAJOR, and utlException.

+ Here is the call graph for this function:

void utl::ComputeOffsetTable ( const std::vector< int > &  size,
std::vector< int > &  offsetTable,
const int  storedWay 
)
inline
template<class T >
std::shared_ptr<NDArray<T,2> > utl::ComputeSHMatrix ( const unsigned int  rank,
const NDArray< T, 2 > &  grad,
const int  mode 
)
inline
template<class T >
NDArray<T,2> utl::ConnectUtlMatrix ( const NDArray< T, 2 > &  m1,
const NDArray< T, 2 > &  m2,
const bool  isConnectRow 
)
template<class T >
NDArray<T,1> utl::ConnectUtlVector ( const NDArray< T, 1 > &  m1,
const NDArray< T, 1 > &  m2 
)

Definition at line 1020 of file utlNDArrayFunctions.h.

References utl::NDArrayBase< T, Dim >::Size().

+ Here is the call graph for this function:

template<typename T >
void utl::ConnectVector ( std::vector< T > &  vec1,
const std::vector< T > &  vec2 
)

Definition at line 1304 of file utlCore.h.

template<class T >
void utl::Convert1To2Tensor ( const utl::NDArray< T, 1 > &  vec,
utl::NDArray< T, 2 > &  mat 
)
inline

Definition at line 386 of file utlDMRI.h.

References ConvertTensor6DTo9D(), utl::NDArray< T, 2 >::ReSize(), utl::NDArrayBase< T, Dim >::Size(), TENSOR_EMBED6D, and utlException.

Referenced by utl::NDArray< T, 4 >::EigenDecompositionWithMinorSymmetry().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<class T >
void utl::Convert2To1Tensor ( const utl::NDArray< T, 2 > &  mat,
utl::NDArray< T, 1 > &  vec 
)
inline

The function only works for 2th order tensors which are in 3D and are symmetric.

Definition at line 377 of file utlDMRI.h.

References utl::NDArray< T, 2 >::Cols(), ConvertTensor9DTo6D(), utl::NDArray< T, 1 >::ReSize(), utl::NDArray< T, 2 >::Rows(), TENSOR_EMBED6D, and utlException.

+ Here is the call graph for this function:

template<class T >
void utl::Convert2To4Tensor ( const utl::NDArray< T, 2 > &  mat,
utl::NDArray< T, 4 > &  tensor 
)
inline

Definition at line 213 of file utlNDArrayFunctions.h.

References utl::NDArray< T, 2 >::Cols(), utl::NDArray< T, 4 >::ReSize(), utl::NDArray< T, 2 >::Rows(), SQRT1_2, and utlException.

+ Here is the call graph for this function:

template<class T >
void utl::Convert4To2Tensor ( const utl::NDArray< T, 4 > &  tensor,
utl::NDArray< T, 2 > &  mat 
)
inline

The function only works for 4th order tensors which are in 3D space and have minor symmetry.

When $ A_{i,j,k,l} $ is minor symmetric, it can be mapped to a 2D matrix

\[ \begin{bmatrix} A_{1111} & A_{1122} & A_{1133} & \sqrt{2} A_{1112} & \sqrt{2} A_{1113} & \sqrt{2} A_{1123} \\ A_{2211} & A_{2222} & A_{2233} & \sqrt{2} A_{2212} & \sqrt{2} A_{2213} & \sqrt{2} A_{2223} \\ A_{3311} & A_{3322} & A_{3333} & \sqrt{2} A_{3312} & \sqrt{2} A_{3313} & \sqrt{2} A_{3323} \\ \sqrt{2} A_{1211} & \sqrt{2} A_{1222} & \sqrt{2} A_{1233} & 2 A_{1212} & 2 A_{1213} & 2 A_{1223} \\ \sqrt{2} A_{1311} & \sqrt{2} A_{1322} & \sqrt{2} A_{1333} & 2 A_{1312} & 2 A_{1313} & 2 A_{1323} \\ \sqrt{2} A_{2311} & \sqrt{2} A_{2322} & \sqrt{2} A_{2333} & 2 A_{2312} & 2 A_{2313} & 2 A_{2323} \end{bmatrix} \]

Definition at line 194 of file utlNDArrayFunctions.h.

References utl::NDArrayBase< T, Dim >::GetShape(), utl::NDArray< T, 2 >::ReSize(), SQRT2, and utlException.

Referenced by utl::NDArray< T, 4 >::EigenDecompositionWithMinorSymmetry().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<class T >
std::string utl::ConvertNumberToString ( const T  value,
const int  precision = 6 
)
inline

convert number to string

Definition at line 740 of file utlCore.h.

Referenced by callFunction(), ImageMath(), main(), and itk::SamplingSchemeQSpaceWriter< TSamplingType >::Update().

+ Here is the caller graph for this function:

template<typename T >
void utl::ConvertSpMatrix ( mxArray *&  matlab_mat,
int  K,
int  M,
int  n,
int  nzmax,
const T *  v,
const int *  r,
const int *  pB 
)
inline

convert sparse matrix to Matlab sparse matrix

Definition at line 236 of file mexutils.h.

Referenced by callFunction().

+ Here is the caller graph for this function:

template<class T >
T utl::ConvertStringToNumber ( const std::string &  input)
inline

convert string to number

Definition at line 751 of file utlCore.h.

References utlException.

template<typename V1Type , typename V2Type >
void utl::ConvertTensor6DTo6D ( const V1Type &  v6d1,
V2Type &  v6d2,
int  s1,
int  s2 
)

Definition at line 359 of file utlDMRI.h.

References ConvertTensor6DTo9D(), and ConvertTensor9DTo6D().

Referenced by main().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<typename V1Type , typename V2Type >
void utl::ConvertTensor6DTo9D ( const V1Type &  v6d,
V2Type &  v9d,
int  v6dStoreWay 
)

Covert 6D tensor format to 9D format (3x3 symmetric matrix). v9d is in ROW_MAJOR.

Definition at line 257 of file utlDMRI.h.

References SQRT1_2, TENSOR_DIAGONAL_FIRST, TENSOR_EMBED6D, TENSOR_LOWER_TRIANGULAR, TENSOR_UPPER_TRIANGULAR, and utlException.

Referenced by Convert1To2Tensor(), ConvertTensor6DTo6D(), itk::MeshFromTensorImageFilter< TInputImage, TOutputMesh >::GenerateData(), main(), and PrintImage().

+ Here is the caller graph for this function:

template<typename V1Type , typename V2Type >
void utl::ConvertTensor9DTo6D ( const V1Type &  v9d,
V2Type &  v6d,
int  v6dStoreWay 
)

Covert 9D tensor format to 6D format (3x3 symmetric matrix). v9d is in ROW_MAJOR.

Definition at line 315 of file utlDMRI.h.

References SQRT2, TENSOR_DIAGONAL_FIRST, TENSOR_EMBED6D, TENSOR_LOWER_TRIANGULAR, TENSOR_UPPER_TRIANGULAR, and utlException.

Referenced by Convert2To1Tensor(), ConvertTensor6DTo6D(), and main().

+ Here is the caller graph for this function:

std::string utl::ConvertToUnixOutputPath ( const char *  path)
inline

change // to /, and escape any spaces in the path

Definition at line 411 of file utlCore.h.

Referenced by CreateExpandedPath().

+ Here is the caller graph for this function:

void utl::ConvertToUnixSlashes ( std::string &  path)
inline

convert windows slashes to unix slashes

Definition at line 442 of file utlCore.h.

References ReplaceString().

Referenced by CreateExpandedPath().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

std::string utl::ConvertToWindowsOutputPath ( const char *  path)
inline

remove double slashes not at the start

Definition at line 361 of file utlCore.h.

Referenced by CreateExpandedPath().

+ Here is the caller graph for this function:

template<class VectorType >
std::string utl::ConvertVectorToString ( VectorType  vec,
const int  N,
const char *  separate = " " 
)

Definition at line 771 of file utlCore.h.

template<vcl_size_t M>
std::vector<std::string> utl::CovertChar2DArrayToStringArray ( const char  arr[][M],
int  N 
)
inline

convert a char array to a string vector

Definition at line 605 of file utlCore.h.

Referenced by itk::GetPropertyNames(), itk::GetScalarNames(), itk::FiberTracts< TValue >::RemovePropertiesByName(), and itk::FiberTracts< TValue >::RemoveScalarsByName().

+ Here is the caller graph for this function:

template<vcl_size_t M>
void utl::CovertStringArrayToChar2DArray ( const std::vector< std::string > &  vec,
char  arr[][M],
int  N 
)
inline

Definition at line 619 of file utlCore.h.

template<typename T >
mxArray* utl::Create4DImage ( int  h,
int  w,
int  V,
int  dim 
)
inline

Create a h x w x V x dim image.

Referenced by CreateImage< float >().

+ Here is the caller graph for this function:

template<>
mxArray* utl::Create4DImage< double > ( int  h,
int  w,
int  V,
int  dim 
)
inline

Definition at line 195 of file mexutils.h.

References CreateImage< double >().

+ Here is the call graph for this function:

template<>
mxArray* utl::Create4DImage< float > ( int  h,
int  w,
int  V,
int  dim 
)
inline

Definition at line 211 of file mexutils.h.

References CreateImage< float >().

+ Here is the call graph for this function:

template<typename T >
void utl::CreateCopySparse ( T *&  alpha_v2,
int *&  alpha_r2,
int *&  alpha_pB2,
int *&  alpha_pE2,
double *  alpha_v,
mwSize alpha_r,
mwSize alpha_pB,
mwSize alpha_pE,
int  M 
)

Create a sparse copy of an array. Useful to deal with non-standard sparse matlab matrices

Definition at line 91 of file mexutils.h.

std::string utl::CreateExpandedPath ( const std::string &  path)
inline
template<typename T >
mxArray* utl::CreateImage ( int  h,
int  w,
int  V 
)
inline

Create a h x w x V image.

Referenced by CreateMatrix< float >().

+ Here is the caller graph for this function:

template<>
mxArray* utl::CreateImage< double > ( int  h,
int  w,
int  V 
)
inline

Create a h x w x V double image.

Definition at line 159 of file mexutils.h.

References CreateMatrix< double >().

Referenced by Create4DImage< double >().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<>
mxArray* utl::CreateImage< float > ( int  h,
int  w,
int  V 
)
inline

Create a h x w x V float image.

Definition at line 175 of file mexutils.h.

References Create4DImage(), and CreateMatrix< float >().

Referenced by Create4DImage< float >().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<typename T >
mxArray* utl::CreateMatrix ( int  m,
int  n 
)
inline

Create a m x n matrix.

Referenced by DeleteCopySparse().

+ Here is the caller graph for this function:

template<>
mxArray* utl::CreateMatrix< double > ( int  m,
int  n 
)
inline

Create a m x n double matrix.

Definition at line 139 of file mexutils.h.

Referenced by CreateImage< double >(), GetMXArrayFromSTDVector(), GetMXArrayFromUtlMatrix(), GetMXArrayFromUtlVector(), GetMXArrayFromVNLMatrix(), and GetMXArrayFromVNLVector().

+ Here is the caller graph for this function:

template<>
mxArray* utl::CreateMatrix< float > ( int  m,
int  n 
)
inline

Create a m x n float matrix.

Definition at line 147 of file mexutils.h.

References CreateImage().

Referenced by CreateImage< float >().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<typename T >
mxArray* utl::CreateScalar ( )
inline

Create a scalar.

Definition at line 228 of file mexutils.h.

template<typename T >
T utl::cube ( const T &  x)
inline

Definition at line 289 of file utlCore.h.

template<typename T >
void utl::DeleteCopySparse ( T *&  alpha_v2,
int *&  alpha_r2,
int *&  alpha_pB2,
int *&  alpha_pE2,
double *  alpha_v,
mwSize alpha_r 
)
inline

Delete a sparse matrix which has been created using createCopySparse.

Definition at line 116 of file mexutils.h.

References CreateMatrix().

+ Here is the call graph for this function:

std::string utl::Demangle ( const char *  name)
inline

Definition at line 114 of file utlTypeinfo.h.

Referenced by TypeName().

+ Here is the caller graph for this function:

template<class T >
NDArray<T,1> utl::DifferenceOfDirection ( const NDArray< T, 1 >  v1,
const NDArray< T, 1 > &  v0 
)

Definition at line 832 of file utlNDArrayFunctions.h.

References utl::NDArrayBase< T, Dim >::GetTwoNorm().

+ Here is the call graph for this function:

int utl::DimToRankSH ( const int  dimm)
inline
template<class T , unsigned int Dim>
T utl::DotProduct ( const NDArray< T, Dim > &  v1,
const NDArray< T, Dim > &  v2 
)
inline

$ \sum_i v1_i v2_i $. No conjugate for complex values.

Definition at line 683 of file utlNDArrayFunctions.h.

References InnerProduct(), utl::NDArrayBase< T, Dim >::Size(), and utlSAException.

+ Here is the call graph for this function:

template<unsigned int Dim>
std::complex<double> utl::DotProduct ( const NDArray< std::complex< double >, Dim > &  v1,
const NDArray< std::complex< double >, Dim > &  v2 
)
inline

Definition at line 691 of file utlNDArrayFunctions.h.

References cblas_zdotu_sub(), and utlSAException.

+ Here is the call graph for this function:

template<class T , unsigned int Dim, class EType >
NDArray<T,Dim> utl::Eval ( const Expr< EType, typename EType::ValueType > &  expr)

Definition at line 56 of file utlNDArrayFunctions.h.

template<class T = double>
utl::NDArray<T,2> utl::Eye ( const int  n,
const T  val = 1.0 
)

Definition at line 286 of file utlNDArrayFunctions.h.

References utl::NDArrayBase< T, Dim >::Fill(), and utl::NDArray< T, 2 >::FillDiagonal().

+ Here is the call graph for this function:

template<typename T >
std::vector<int> utl::FindVector ( const std::vector< T > &  vec,
const T &  elem,
const double  gap = 1e-9 
)
inline

Definition at line 1236 of file utlCore.h.

Referenced by SeparateVector().

+ Here is the caller graph for this function:

template<>
std::vector<int> utl::FindVector< std::string > ( const std::vector< std::string > &  vec,
const std::string &  elem,
const double   
)
inline

Definition at line 1249 of file utlCore.h.

template<class T >
NDArray<T,2> utl::FlipOrientations ( const NDArray< T, 2 > &  in,
const std::vector< int > &  flip 
)
template<class T1 , class T2 >
void utl::FlipVector ( T1 &  vec,
const T2 &  flip,
const int  N 
)

Definition at line 1690 of file utlCore.h.

Referenced by itk::MeshFromFiberTractsFilter::Update().

+ Here is the caller graph for this function:

template<typename T >
T utl::GaussRand ( const T  value,
const double  sigma 
)
inline

Generate random value from Gaussian distribution. http://en.wikipedia.org/wiki/Gaussian_random_variable#Generating_values_from_normal_distribution

Definition at line 1504 of file utlCore.h.

References M_PI.

Referenced by AddNoise(), and RicianRand().

+ Here is the caller graph for this function:

template<class T >
void utl::geev_UtlMatrix ( const utl::NDArray< T, 2 > &  mat,
utl::NDArray< T, 1 > &  valReal,
utl::NDArray< T, 1 > &  valImg,
utl::NDArray< T, 2 > &  vecRealR,
utl::NDArray< T, 2 > &  vecImgR,
utl::NDArray< T, 2 > &  vecRealL,
utl::NDArray< T, 2 > &  vecImgL 
)
inline

geev_UtlMatrix calculate non-symmetric eigen-decomposition.

Parameters
matmatrix with size NxN.
valRealreal part of right eigen-values.
valImgimginary part of right eigen-values.
vecRealRreal part of right eigen-vectors.
vecImgRpart of right eigen-vectors.
vecRealLreal part of left eigen-vectors.
vecImgLpart of left eigen-vectors.

template <class T> inline void geev_UtlMatrix ( const NDArray<T,2>& mat, NDArray<T,1>& valReal, NDArray<T,1>& valImg);

template <class T> inline void geev_UtlMatrix ( const NDArray<T,2>& mat, NDArray<T,1>& valReal, NDArray<T,1>& valImg, NDArray<T,2>& vecRealR, NDArray<T,2>& vecImgR);

template <class T> inline void geev_UtlMatrix ( const NDArray<T,2>& mat, NDArray<T,1>& valReal, NDArray<T,1>& valImg, NDArray<T,2>& vecRealR, NDArray<T,2>& vecImgR, NDArray<T,2>& vecRealL, NDArray<T,2>& vecImgL);

http://www.netlib.org/lapack/explore-html/d9/d8e/group__double_g_eeigen_ga8ec1625302675b981eb34ed024b27a47.html http://www.netlib.org/lapack/lug/node31.html

Definition at line 476 of file utlNDArrayFunctions.h.

Referenced by utl::NDArray< T, 2 >::EigenDecompositionNonSymmetricMatrix().

+ Here is the caller graph for this function:

template<class T >
void utl::geev_UtlMatrix ( const utl::NDArray< T, 2 > &  mat,
utl::NDArray< T, 1 > &  valReal,
utl::NDArray< T, 1 > &  valImg 
)
inline

Definition at line 476 of file utlNDArrayFunctions.h.

template<class T >
void utl::geev_UtlMatrix ( const utl::NDArray< T, 2 > &  mat,
utl::NDArray< T, 1 > &  valReal,
utl::NDArray< T, 1 > &  valImg,
utl::NDArray< T, 2 > &  vecRealR,
utl::NDArray< T, 2 > &  vecImgR 
)
inline

Definition at line 476 of file utlNDArrayFunctions.h.

template<class T >
bool utl::gemm_UtlMatrixTimesMatrix ( const bool  bATrans,
const bool  bBTrans,
const T  alpha,
const utl::NDArray< T, 2 > &  A,
const utl::NDArray< T, 2 > &  B,
const T  beta,
utl::NDArray< T, 2 > &  C 
)
inline

http://www.netlib.org/lapack/explore-html/d7/d2b/dgemm_8f.html https://developer.apple.com/library/mac/documentation/Accelerate/Reference/BLAS_Ref/Reference/reference.html

$ C = alpha * A * B + beta * C $

Note
: C should be pre-allocated

define several functions.

template <class T> inline bool gemm_UtlMatrixTimesMatrix(const bool bATrans, const bool bBTrans, const T alpha, const utl::NDArray<T,2>& a, const utl::NDArray<T,2>& b, const T beta, utl::NDArray<T,2>& c);

$ C = alpha * A * B + beta * C $
template <class T> inline void ProductUtlMM(const utl::NDArray<T,2>& A, const utl::NDArray<T,2>& B, utl::NDArray<T,2>& C, const double alpha=1.0, const double beta=0.0);

$ C = alpha * A * B^T + beta * C $
template <class T> inline void ProductUtlMMt(const utl::NDArray<T,2>& A, const utl::NDArray<T,2>& B, utl::NDArray<T,2>& C, const double alpha=1.0, const double beta=0.0);

$ C = alpha * A^T * B + beta * C $
template <class T> inline void ProductUtlMtM(const utl::NDArray<T,2>& A, const utl::NDArray<T,2>& B, utl::NDArray<T,2>& C, const double alpha=1.0, const double beta=0.0);

$ C = alpha * A^T * B^T + beta * C $
template <class T> inline void ProductUtlMtMt(const utl::NDArray<T,2>& A, const utl::NDArray<T,2>& B, utl::NDArray<T,2>& C, const double alpha=1.0, const double beta=0.0);

$ C = alpha * A1*A2*A3 $
template <class T> inline void ProductUtlMM(const utl::NDArray<T,2>& A1, const utl::NDArray<T,2>& A2, const utl::NDArray<T,2>& A3, utl::NDArray<T,2>& C);

$ C = alpha * A1*A2*A3*A4 $
template <class T> inline void ProductUtlMM(const utl::NDArray<T,2>& A1, const utl::NDArray<T,2>& A2, const utl::NDArray<T,2>& A3, const utl::NDArray<T,2>& A4, utl::NDArray<T,2>& C);

$ C = alpha * A1*A2*A3*A5 $
template <class T> inline void ProductUtlMM(const utl::NDArray<T,2>& A1, const utl::NDArray<T,2>& A2, const utl::NDArray<T,2>& A3, const utl::NDArray<T,2>& A4, const utl::NDArray<T,2>& A5, utl::NDArray<T,2>& C);

Definition at line 423 of file utlNDArrayFunctions.h.

template<class T >
bool utl::gemv_UtlMatrixTimesVector ( const bool  bATrans,
const T  alpha,
const utl::NDArray< T, 2 > &  A,
const utl::NDArray< T, 1 > &  X,
const T  beta,
utl::NDArray< T, 1 > &  Y 
)
inline

http://www.netlib.org/lapack/explore-html/d7/d2b/dgemm_8f.html https://developer.apple.com/library/mac/documentation/Accelerate/Reference/BLAS_Ref/Reference/reference.html

$ Y = alpha * A * X + beta * Y $

Note
: Y should be pre-allocated

define several functions.

template <class T> inline bool gemv_UtlMatrixTimesVector(const bool bATrans, const T alpha, const utl::NDArray<T,2>& A, const utl::NDArray<T,1>& X, const T beta, utl::NDArray<T,1>& Y);

$ Y = alpha * A * X + beta * Y $
template <class T> inline void ProductUtlMv(const utl::NDArray<T,2>& A, const utl::NDArray<T,1>& b, utl::NDArray<T,1>& c, const double alpha=1.0, const double beta=0.0);

$ Y = alpha * A^T * X + beta * Y $
template <class T> inline void ProductUtlMtv(const utl::NDArray<T,2>& A, const utl::NDArray<T,1>& b, utl::NDArray<T,1>& c, const double alpha=1.0, const double beta=0.0);

Definition at line 360 of file utlNDArrayFunctions.h.

template<class T >
void utl::gesdd_UtlMatrix ( const NDArray< T, 2 > &  mat,
NDArray< T, 2 > &  U,
NDArray< utl::remove_complex_t< T >, 1 > &  s,
NDArray< T, 2 > &  V,
char  format = 'S' 
)
inline

dgesdd_UtlMatrix dgesdd is faster than dgesvd. http://www.netlib.org/lapack/explore-html/db/db4/dgesdd_8f.html http://www.netlib.org/lapack/lug/node71.html

Parameters
matmatrix with size MxN.
Uleft singular vectors. If format is 'A', U is MxM matrix. If format is 'S', U size is M x min(M,N)
ssingular values with size min(M,N). Sored in decreasing order.
Vright singular vectors. If format is 'A', V size is NxN. If format is 'S', V size is N x min(M,N)
format'S' or 'A'. 'A' means full size, 'S' means reduced size.

Definition at line 620 of file utlNDArrayFunctions.h.

References utl::NDArray< T, 2 >::Cols(), gesdd(), utl::NDArrayBase< T, Dim >::GetData(), utl::NDArray< T, 2 >::GetTranspose(), min(), utl::NDArray< T, 2 >::ReSize(), utl::NDArray< T, 2 >::Rows(), utlException, and utlGlobalException.

Referenced by utl::NDArray< T, 2 >::SVD().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<class T >
void utl::gesvd_UtlMatrix ( const NDArray< T, 2 > &  mat,
NDArray< T, 2 > &  U,
NDArray< T, 1 > &  s,
NDArray< T, 2 > &  V,
char  format = 'S' 
)
inline

dgesvd_UtlMatrix

Parameters
matmatrix with size MxN.
Uleft singular vectors. If format is 'A', U is MxM matrix. If format is 'S', U size is M x min(M,N)
ssingular values with size min(M,N). Sored in decreasing order.
Vright singular vectors. If format is 'A', V size is NxN. If format is 'S', V size is N x min(M,N)
format'S' or 'A'. 'A' means full size, 'S' means reduced size.

Definition at line 566 of file utlNDArrayFunctions.h.

References utl::NDArray< T, 2 >::Cols(), utl::NDArrayBase< T, Dim >::GetData(), utl::NDArray< T, 2 >::GetTranspose(), min(), utl::NDArray< T, 2 >::ReSize(), utl::NDArray< T, 1 >::ReSize(), utl::NDArray< T, 2 >::Rows(), utlException, and utlGlobalException.

+ Here is the call graph for this function:

template<class VectorType >
VectorType utl::GetAbsoluteVector ( const VectorType &  vec,
const int  N 
)
inline

Definition at line 1681 of file utlCore.h.

References AbsoluteVector().

+ Here is the call graph for this function:

mxArray* utl::GetArrayStruct ( const mxArray *  pr_struct,
const char *  name 
)
inline

Definition at line 333 of file mexutils.h.

Referenced by callFunction().

+ Here is the caller graph for this function:

std::string utl::GetColoredString ( const std::string &  str,
const int  color 
)
inline

Definition at line 114 of file utlCoreMacro.h.

References COLOR_BLACK, COLOR_BLUE, COLOR_BOLD, COLOR_CYAN, COLOR_GREEN, COLOR_PURPLE, COLOR_RED, COLOR_WHITE, and COLOR_YELLOW.

Referenced by utlOption().

+ Here is the caller graph for this function:

template<class IteratorType >
std::vector<double> utl::GetContainerStats ( IteratorType  v1,
IteratorType  v2 
)
inline
template<>
std::vector<double> utl::GetContainerStats< const std::complex< double > * > ( const std::complex< double > *  v1,
const std::complex< double > *  v2 
)
inline

Definition at line 951 of file utlCore.h.

template<>
std::vector<double> utl::GetContainerStats< const std::complex< float > * > ( const std::complex< float > *  v1,
const std::complex< float > *  v2 
)
inline

Definition at line 972 of file utlCore.h.

template<>
std::vector<double> utl::GetContainerStats< const std::string * > ( const std::string *  v1,
const std::string *  v2 
)
inline

Definition at line 979 of file utlCore.h.

template<>
std::vector<double> utl::GetContainerStats< std::complex< double > * > ( std::complex< double > *  v1,
std::complex< double > *  v2 
)
inline

Definition at line 958 of file utlCore.h.

template<>
std::vector<double> utl::GetContainerStats< std::complex< float > * > ( std::complex< float > *  v1,
std::complex< float > *  v2 
)
inline

Definition at line 965 of file utlCore.h.

template<class T >
utl::Matrix<T> utl::GetDTIDesignMatrix ( const utl::Matrix< T > &  gradMat,
const std::vector< T > &  bVec,
int  dwi_normalize 
)

Get design matrix for DTI from gradient matrix and b values.

Parameters
gradMatNx3 gradient matrix in cartesian format.
dwi_normalizewhether DWI samples are normalized using the b0 image. For normalized DWI samples, b0 is not needed to re-estimated.
Returns
Nx6 or Nx7 design matrix for DTI. First 6 values are for $ -b*[g_x g_x, 2.0*g_x g_y, 2.0*g_x g_z, g_y g_y, 2.0*g_y g_z, g_z g_z] $.

Definition at line 583 of file utlDMRI.h.

References DWI_NONORMALIZE, DWI_NORMALIZE, utl::NDArray< T, 2 >::ReSize(), utl::NDArray< T, 2 >::Rows(), utlException, and utlSAException.

+ Here is the call graph for this function:

template<typename T >
std::vector<T> utl::GetE1E2FromFAMD ( const T  fa,
const T  meanEigenValue,
const bool  isE2E3Equal = true 
)

If isE2E3Equal==true, for symmetric tensor with eigenvalues (e1,e2,e2), get (e1,e2) from the fa and (e1+e2+e2)/3. If isE2E3Equal==false, for symmetric tensor with eigenvalues (e1,e1,e2), get (e1,e2) from the fa and (e1+e1+e2)/3.

Note
: when isE2E3Equal==false, fa cannot be larger than 1/sqrt(2), otherwise e3 is negative.

Definition at line 235 of file utlDMRI.h.

References SQRT2, and utlSAException.

Referenced by main().

+ Here is the caller graph for this function:

template<class T >
void utl::GetEqualityConstraintProjection ( const NDArray< T, 2 > &  Aeq,
const NDArray< T, 1 > &  beq,
const NDArray< T, 2 > &  QInverse,
NDArray< T, 2 > &  projMatrix,
NDArray< T, 1 > &  projVector 
)
int utl::GetFiberTractsFormat ( const std::string &  filename)
inline

Definition at line 537 of file utlDMRI.h.

References GetFileExtension(), TRACTS_TCK, TRACTS_TRK, TRACTS_UNKNOWN, TRACTS_VTK, and utlGlobalException.

Referenced by itk::FiberTractsReader::Update().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int utl::GetFiberTractsFormatFromFileExtension ( const std::string &  filename)
inline

Definition at line 520 of file utlDMRI.h.

References GetFileExtension(), TRACTS_TCK, TRACTS_TRK, TRACTS_UNKNOWN, and TRACTS_VTK.

Referenced by itk::FiberTractsWriter::Update().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void utl::GetFileExtension ( const std::string &  fileNameAbsolute,
std::string &  ext,
std::string &  fileNoExt 
)
inline

GetFileExtension("/home/dwi.hdr", ext, file) will get ext=="hdr" and file=="/home/dwi"

Definition at line 559 of file utlCore.h.

Referenced by callFunction(), GetFiberTractsFormat(), GetFiberTractsFormatFromFileExtension(), itk::IsSparseImage(), main(), itk::SamplingSchemeQSpaceWriter< TSamplingType >::Update(), itk::DWIWriter< TPixelType, VImageDimension >::WriteToConfigurationFile(), and WriteVtkPolyData().

+ Here is the caller graph for this function:

int utl::GetIndexSHj ( const int  l,
const int  m 
)
inline
std::vector<int> utl::GetIndexSHlm ( const int  j)
inline

get rank index (l,m) from given linear index j. [0, -2,-1,0,1,2, -4,-3,-2,-1,0,1,2,3,4, ...]

Definition at line 211 of file utlDMRI.h.

References IsOdd().

Referenced by itk::SphericalPolarFourierImageFilter< TInputImage, TOutputImage >::GetIndexNLM(), itk::Functor::SHCoefficientsFit< T >::Initialize(), and InitializeSHTripleIntegrationTable().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<class T >
utl::NDArray<T,2> utl::GetMeanOfRotationMatrix ( const std::vector< NDArray< T, 2 > > &  matrixVec,
const utl::NDArray< T, 1 > &  weights 
)

Mean of rotation matrices.

Reference: Rotation Averaging, International journal of computer vision, 2013

Definition at line 1151 of file utlNDArrayFunctions.h.

References utl::NDArrayBase< T, Dim >::GetTwoNorm(), utl::NDArray< T, 2 >::LogM(), ProductUtlMtM(), utl::NDArrayBase< T, Dim >::Size(), and utlSAException.

Referenced by GetMeanOfRotationMatrix().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<class T >
utl::NDArray<T,2> utl::GetMeanOfRotationMatrix ( const std::vector< NDArray< T, 2 > > &  matrixVec)

Definition at line 1183 of file utlNDArrayFunctions.h.

References GetMeanOfRotationMatrix(), and utlSAException.

+ Here is the call graph for this function:

template<class T >
void utl::GetMXArrayFromSTDVector ( const std::vector< T > *  vec,
mxArray *&  pr 
)
inline

convert a std::vector to a colume vector

Definition at line 57 of file mexSTD.h.

References CreateMatrix< double >(), and utlException.

+ Here is the call graph for this function:

template<class T >
void utl::GetMXArrayFromUtlMatrix ( const NDArray< T, 2 > *  mat,
mxArray *&  pr 
)
inline

Definition at line 50 of file utlMEX.h.

References utl::NDArray< T, 2 >::Columns(), CreateMatrix< double >(), and utl::NDArray< T, 2 >::Rows().

Referenced by callFunction().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<class T >
void utl::GetMXArrayFromUtlVector ( const NDArray< T, 1 > *  mat,
mxArray *&  pr 
)
inline

Definition at line 82 of file utlMEX.h.

References CreateMatrix< double >(), and utl::NDArrayBase< T, Dim >::Size().

+ Here is the call graph for this function:

template<class T >
void utl::GetMXArrayFromVNLMatrix ( const vnl_matrix< T > *  mat,
mxArray *&  pr 
)
inline

Definition at line 49 of file mexVNL.h.

References CreateMatrix< double >().

+ Here is the call graph for this function:

template<class T >
void utl::GetMXArrayFromVNLVector ( const vnl_vector< T > *  mat,
mxArray *&  pr 
)
inline

Definition at line 81 of file mexVNL.h.

References CreateMatrix< double >().

+ Here is the call graph for this function:

template<typename... Args>
auto utl::GetNumberOfArgs ( Args...  args) -> decltype(sizeof...(args))
inline

Get number of arguments.

Definition at line 53 of file utlCore11.h.

template<class IteratorType >
int utl::GetNumberOfNonZeroValues ( IteratorType  v,
IteratorType  v2,
const double  threshold = 1e-6 
)

Definition at line 986 of file utlCore.h.

References spams::abs().

+ Here is the call graph for this function:

void utl::GetPath ( const std::string &  fileNameAbsolute,
std::string &  path,
std::string &  file 
)
inline

path with the last "/" http://www.cplusplus.com/reference/string/string/find_last_of/ GetPath("/home/my.cpp", path, file) will get path=="/home/", file=="my.cpp"

Definition at line 550 of file utlCore.h.

Referenced by itk::DWIReader< TPixelType, VImageDimension >::ReadFromConfigurationFile(), and itk::DWIWriter< TPixelType, VImageDimension >::WriteToConfigurationFile().

+ Here is the caller graph for this function:

std::vector<int> utl::GetRange ( const int  start,
const int  end,
const int  space = 1 
)
inline

Definition at line 1642 of file utlCore.h.

Referenced by itk::SHCoefficientsRotation< T >::GetRotatedSHCoefficients().

+ Here is the caller graph for this function:

template<class T >
void utl::getri_UtlMatrix ( const utl::NDArray< T, 2 > &  mat,
utl::NDArray< T, 2 > &  result 
)
inline

geev_UtlMatrix calculate inverse of a general matrix via LU decomposition.

template <class T> inline void getri_UtlMatrix(const NDArray<T,2>& mat, NDArray<T,2>& result);

Definition at line 487 of file utlNDArrayFunctions.h.

Referenced by InverseMatrix().

+ Here is the caller graph for this function:

template<class T = double>
std::function<T(T)> utl::GetScalarFunctionFromString ( const std::string &  funcStr)
inline

convert a string to std::function which maps T to T. Example: "cos(x)+ 2*x+ x^3", "if (x>3) 2; else 1;"

NOTE: it is slow if it is called for many times. It is better to put symbol_table, expression, and parser definition outside of the loop.

Definition at line 29 of file utlExprtk.h.

template<class T >
std::vector<T> utl::GetScalarsByName ( const std::vector< T > &  vec,
const std::vector< std::string > &  nameVec,
const std::string &  name 
)
inline

Get scalar vector by its name. The name-dimention map is in vectorNameDimMap

Definition at line 115 of file utlDMRI.h.

References GetScalarsDimentionByName().

+ Here is the call graph for this function:

int utl::GetScalarsDimentionByName ( const std::string &  name)
inline

We define a name of scalar vector with its dimension, if the dimension is not 1. For example, the name "frame_9" means a frame with 9 dimensions. The name "orientational order" means a scalar value with 1 dimension. It is used to determine the dimension of scalars in a fiber track.

Definition at line 93 of file utlDMRI.h.

References IsInt().

Referenced by itk::GetDimensionOfProperties(), itk::GetDimensionOfScalars(), GetScalarsByName(), RemoveScalarsByName(), and SetScalarsByName().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<typename T >
T utl::GetScalarStruct ( const mxArray *  pr_struct,
const char *  name 
)
inline

get a scalar from a struct

Definition at line 252 of file mexutils.h.

template<typename T >
T utl::GetScalarStructDef ( const mxArray *  pr_struct,
const char *  name,
const T  def 
)
inline

get a scalar from a struct and provide a default value

Definition at line 314 of file mexutils.h.

template<>
std::string utl::GetScalarStructDef ( const mxArray *  pr_struct,
const char *  name,
const std::string  def 
)
inline

Definition at line 324 of file mexutils.h.

References GetString().

+ Here is the call graph for this function:

std::string utl::GetSequentialFileName ( const std::string &  filePrefix,
const unsigned int  iteration,
const std::string &  fileExtension,
const unsigned int  paddedLength = 6 
)
inline

getSequentialFileName("dwi", 3, "hdr") will generate dwi_000003.hdr

Definition at line 595 of file utlCore.h.

References ZeroPad().

+ Here is the call graph for this function:

template<class T >
void utl::GetSTDVectorFromMXArray ( const mxArray *  pr,
std::vector< T > *  vec 
)
inline

Definition at line 30 of file mexSTD.h.

References utlException.

Referenced by callFunction().

+ Here is the caller graph for this function:

void utl::GetString ( const mxArray *  pr,
std::string &  str 
)
inline

Definition at line 275 of file mexutils.h.

Referenced by callFunction(), GetScalarStructDef(), and mexFunction().

+ Here is the caller graph for this function:

std::string utl::GetString ( const mxArray *  pr)
inline

Definition at line 287 of file mexutils.h.

void utl::GetStringStruct ( const mxArray *  pr_struct,
const char *  name,
char *  field,
const mwSize  length 
)
inline

get a scalar from a struct

Definition at line 264 of file mexutils.h.

template<class TVectorType >
double utl::GetSumOfVector ( const TVectorType &  vec,
const int  NSize 
)
inline

Definition at line 909 of file utlCore.h.

template<class T >
void utl::GetUtlMatrixFromMXArray ( const mxArray *  pr,
NDArray< T, 2 > *  mat 
)
inline

Definition at line 33 of file utlMEX.h.

References utl::NDArray< T, 2 >::Columns(), utl::NDArray< T, 2 >::ReSize(), and utl::NDArray< T, 2 >::Rows().

Referenced by callFunction().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<class T >
void utl::GetUtlVectorFromMXArray ( const mxArray *  pr,
NDArray< T, 1 > *  mat 
)
inline

Definition at line 64 of file utlMEX.h.

References max(), utl::NDArray< T, 1 >::ReSize(), utl::NDArrayBase< T, Dim >::Size(), and utlException.

+ Here is the call graph for this function:

template<class T = double>
std::function<T(std::vector<T>)> utl::GetVectorFunctionFromString ( const std::string &  funcStr)
inline

convert a string to std::function which maps std::vector<T> to T. Example: "cos(x[0])+ 2*x[1]", "max(x[0], x[1])", "if (x[0]>1.0) 1.0; else x[1]" "x[0]>x[1]"

NOTE: it is slow if it is called for many times. It is better to put symbol_table, expression, and parser definition outside of the loop.

Definition at line 60 of file utlExprtk.h.

template<class VectorType >
VectorType utl::GetVectorLinspace ( const double  valueMin,
const double  valueMax,
const int  num 
)
inline

Definition at line 1627 of file utlCore.h.

template<class VectorType >
VectorType utl::GetVectorShrinkage ( const VectorType &  vec,
const int  N,
const double  kappa 
)
inline

Definition at line 1664 of file utlCore.h.

References VectorShrinkage().

+ Here is the call graph for this function:

template<class T >
void utl::GetVNLMatrixFromMXArray ( const mxArray *  pr,
vnl_matrix< T > *  mat 
)
inline

Definition at line 32 of file mexVNL.h.

template<class T >
void utl::GetVNLVectorFromMXArray ( const mxArray *  pr,
vnl_vector< T > *  mat 
)
inline

Definition at line 63 of file mexVNL.h.

References max(), and utlException.

+ Here is the call graph for this function:

template<class T >
bool utl::gevm_UtlVectorTimesMatrix ( const bool  bATrans,
const T  alpha,
const utl::NDArray< T, 1 > &  X,
const utl::NDArray< T, 2 > &  A,
const T  beta,
utl::NDArray< T, 1 > &  Y 
)
inline

$ Y = alpha X^T * A + beta * Y $

Note
: Y should be pre-allocated

define several functions.

template <class T> inline bool gemm_UtlVectorTimesMatrix(const bool bATrans, const T alpha, const utl::NDArray<T,1>& X, const utl::NDArray<T,2>& A, const T beta, utl::NDArray<T,1>& Y);

$ Y = alpha * b * A + beta * Y $
template <class T> inline void ProductUtlvM(const utl::NDArray<T,1>& b, const utl::NDArray<T,2>& A, utl::NDArray<T,1>& c, const double alpha=1.0, const double beta=0.0);

$ Y = alpha * b * A^T + beta * Y $
template <class T> inline void ProductUtlvMt(const utl::NDArray<T,1>& b, const utl::NDArray<T,2>& A, utl::NDArray<T,1>& c, const double alpha=1.0, const double beta=0.0);

Definition at line 381 of file utlNDArrayFunctions.h.

template<class T >
void utl::hash_combine ( std::vcl_size_t &  seed,
T const &  v 
)
inline

using boost::hash_combine template <class t>="">

Definition at line 70 of file utlSTDHeaders.h.

Referenced by std::hash< std::vector< T > >::operator()().

+ Here is the caller graph for this function:

template<class T , unsigned Dim>
NDArray<T, Dim> utl::Imag ( const NDArray< std::complex< T >, Dim > &  mat)

Definition at line 1077 of file utlNDArrayFunctions.h.

static int utl::InitializeMKL ( const int  numThreads)
inlinestatic

Definition at line 297 of file utl.h.

References min(), and UTL_MAX_THREADS.

Referenced by InitializeThreadedLibraries().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static int utl::InitializeOpenMP ( const int  numThreads)
inlinestatic

Definition at line 312 of file utl.h.

References min(), and UTL_MAX_THREADS.

Referenced by InitializeThreadedLibraries().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void utl::InitializeSHTripleIntegrationTable ( const int  rank0 = -1,
const int  rank1 = -1,
const int  rank2 = -1,
const bool  useExactSize = false 
)
inline

Initialize SH3IntegralTable with 3 dimensional sizes from 3 SH rank arguments.

Parameters
useExactSizeIf it is false, SH3IntegralTable may have larger size than the input three ranks based on pre-computed table. If it is true, the size is determined by the input SH ranks.

Definition at line 111 of file itkSphericalHarmonicsGenerator.h.

References GetIndexSHlm(), itk::IsImageEmpty(), RankToDimSH(), SH3IntegralTable(), and SH3Itegralhdr.

Referenced by itk::SHCoefficientsPowerImageFilter< TInputImage, TOutputImage >::BeforeThreadedGenerateData(), and itk::SphericalHarmonicsGenerator< PreciseType >::RealTripleIntegration().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void utl::InitializeThreadedLibraries ( const int  numThreads)
inlinestatic
template<class T , unsigned int Dim>
T utl::InnerProduct ( const NDArrayBase< T, Dim > &  v1,
const NDArrayBase< T, Dim > &  v2 
)
inline

If value type is std::complex<double>, then utl::InnerProduct provides $ \sum_i \text{Conj}(v1_i) v2_i $. For real values, the result is the same as utl::DotProduct

Definition at line 674 of file utlNDArrayFunctions.h.

References utl::NDArrayBase< T, Dim >::GetData(), utl::NDArrayBase< T, Dim >::Size(), and utlSAException.

+ Here is the call graph for this function:

template<class T >
void utl::InnerProduct ( const NDArray< T, 2 > &  mat,
const NDArray< T, 1 > &  vec,
NDArray< T, 1 > &  result 
)
inline

Definition at line 701 of file utlNDArrayFunctions.h.

References utl::NDArray< T, 2 >::Cols(), ProductUtlMv(), utl::NDArrayBase< T, Dim >::Size(), and utlSAException.

+ Here is the call graph for this function:

template<class T >
void utl::InnerProduct ( const NDArray< T, 1 > &  vec,
const NDArray< T, 2 > &  mat,
NDArray< T, 1 > &  result 
)
inline

Definition at line 709 of file utlNDArrayFunctions.h.

References ProductUtlvM(), utl::NDArray< T, 2 >::Rows(), utl::NDArrayBase< T, Dim >::Size(), and utlSAException.

+ Here is the call graph for this function:

template<class T >
void utl::InnerProduct ( const NDArray< T, 4 > &  tensor,
const NDArray< T, 2 > &  matrix,
NDArray< T, 2 > &  result 
)
inline
template<class T >
void utl::InnerProduct ( const NDArray< T, 2 > &  matrix,
const NDArray< T, 4 > &  tensor,
NDArray< T, 2 > &  result 
)
inline

Definition at line 741 of file utlNDArrayFunctions.h.

References utl::NDArrayBase< T, Dim >::GetShape(), utl::NDArray< T, 2 >::ReSize(), and utlSAException.

+ Here is the call graph for this function:

template<class T >
NDArray<T,2> utl::InverseMatrix ( const NDArray< T, 2 > &  mat,
const double  eps = 1e-10 
)
inline

inverse of a general matrix (non-singular), by using LU decomposition. If the matrix is singular, it stop with an error. It is fast than PInverseVnlMatrix, but only works for non-singular matrix.

Definition at line 908 of file utlNDArrayFunctions.h.

References utl::NDArray< T, 2 >::Cols(), getri_UtlMatrix(), InverseSmallMatrix(), utl::NDArray< T, 2 >::Rows(), utlException, and utlSAException.

Referenced by utl::NDArray< T, 2 >::InverseMatrix(), and InverseSymmericMatrix().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<class T >
NDArray<T,2> utl::InverseSymmericMatrix ( const NDArray< T, 2 > &  mat,
const double  eps = 1e-10 
)
inline

inverse of a symmetric matrix (non-singular), by using LU decomposition. If the matrix is singular, it stop with an error. It is fast than PInverseVnlMatrix, but only works for non-singular matrix.

Definition at line 929 of file utlNDArrayFunctions.h.

References utl::NDArray< T, 2 >::Cols(), utl::NDArrayBase< T, Dim >::GetData(), InverseMatrix(), utl::NDArray< T, 2 >::Rows(), utlGlobalException, and utlSAException.

Referenced by itk::Functor::SHCoefficientsFit< T >::Initialize(), and utl::NDArray< T, 2 >::InverseSymmericMatrix().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<class VectorType >
bool utl::IsContainsNaN ( const VectorType &  a,
const int  size 
)
inline

Definition at line 833 of file utlCore.h.

bool utl::IsEndingWith ( const std::string &  fullString,
const std::string &  ending 
)
inline

Test if fullString is ending with ending

Definition at line 537 of file utlCore.h.

Referenced by itk::GetImageType(), and main().

+ Here is the caller graph for this function:

bool utl::IsEven ( const int  value)
inline
bool utl::IsFileExist ( const std::string &  file)
inline
template<class Parent , class Object >
bool utl::IsInstanceOf ( const Object &  o)
inline

Definition at line 169 of file utlCore.h.

Referenced by itk::GetImageType().

+ Here is the caller graph for this function:

bool utl::IsInt ( const std::string &  input,
const double  epss = 1e-10 
)
inline
bool utl::IsInt ( const double  dd,
const double  epss = 1e-10 
)
inline

Definition at line 805 of file utlCore.h.

bool utl::IsInt ( const float  dd,
const double  epss = 1e-10 
)
inline

Definition at line 812 of file utlCore.h.

template<class VectorType , class T >
bool utl::IsInVector ( const VectorType &  vec,
const int  size,
const T &  num,
const double  eps = 1e-10 
)
inline

Definition at line 1394 of file utlCore.h.

Referenced by itk::DWIReader< TPixelType, VImageDimension >::ReadFromConfigurationFile().

+ Here is the caller graph for this function:

template<typename T >
bool utl::IsInVector ( const std::vector< T > &  vec,
const T &  num,
const double  eps = 1e-10 
)
inline

Definition at line 1406 of file utlCore.h.

bool utl::IsLogAll ( const int  level = utl::LogLevel)
inline

Definition at line 221 of file utlCoreMacro.h.

References LOG_ALL.

bool utl::IsLogDebug ( const int  level = utl::LogLevel)
inline
bool utl::IsLogLarge ( const int  level = utl::LogLevel)
inline

Definition at line 217 of file utlCoreMacro.h.

References LOG_LARGE.

bool utl::IsLogMute ( const int  level = utl::LogLevel)
inline

Definition at line 205 of file utlCoreMacro.h.

References LOG_MUTE.

bool utl::IsLogNormal ( const int  level = utl::LogLevel)
inline

Definition at line 209 of file utlCoreMacro.h.

References LOG_NORMAL.

Referenced by itk::ReadFibers(), itk::ReadImage(), itk::SaveFibers(), and itk::SaveImage().

+ Here is the caller graph for this function:

bool utl::IsNumber ( const std::string &  input)
inline

test if a string means a number

Definition at line 726 of file utlCore.h.

Referenced by BinaryOPImage(), main(), and itk::DWIReader< TPixelType, VImageDimension >::ReadFromConfigurationFile().

+ Here is the caller graph for this function:

bool utl::IsOdd ( const int  value)
inline

Definition at line 825 of file utlCore.h.

References IsEven().

Referenced by GetIndexSHlm().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<class T >
bool utl::IsSame ( const T &  value,
const T &  v0,
const double  eps = 1e-10 
)
inline

Definition at line 1337 of file utlCore.h.

Referenced by ComputeOrientationalOrderFromSymmetricTensor(), utl::NDArray< T, 4 >::IsMajorSymmetric(), and utl::NDArray< T, 4 >::IsMinorSymmetric().

+ Here is the caller graph for this function:

template<>
bool utl::IsSame< char > ( const char &  value,
const char &  v0,
const double   
)
inline

Definition at line 1358 of file utlCore.h.

template<>
bool utl::IsSame< int > ( const int &  value,
const int &  v0,
const double   
)
inline

Definition at line 1344 of file utlCore.h.

template<>
bool utl::IsSame< std::string > ( const std::string &  value,
const std::string &  v0,
const double   
)
inline

Definition at line 1351 of file utlCore.h.

template<class T , vcl_size_t N1, vcl_size_t N2>
bool utl::IsSameArray ( const T(&)  a1[N1],
const T(&)  a2[N2],
const double  eps = 1e-10 
)
inline

Definition at line 1380 of file utlCore.h.

template<class T1 , class T2 , unsigned Dim1, unsigned Dim2>
bool utl::IsSameShape ( const NDArray< T1, Dim1 > &  arr1,
const NDArray< T2, Dim2 > &  arr2 
)
inline

return true only if two arrays have the same dimension and same shape.

Definition at line 42 of file utlNDArrayFunctions.h.

References utl::NDArrayBase< T, Dim >::IsSameShape().

Referenced by ComplexCombine().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<class T >
bool utl::IsSameVector ( const std::vector< T > &  vec1,
const std::vector< T > &  vec2,
const double  eps = 1e-10 
)
inline

Definition at line 1365 of file utlCore.h.

Referenced by PrintImage().

+ Here is the caller graph for this function:

template<class T >
void utl::MatchBVectorAndGradientMatrix ( const T &  br,
std::vector< T > &  vec,
const NDArray< T, 2 > &  grad 
)

Definition at line 480 of file utlDMRI.h.

References utl::NDArray< T, 2 >::Rows(), and utlException.

Referenced by itk::MeshFromDiscreteFiberODFImageFilter< TInputImage, TOutputMesh >::ComputeBasisMatrix(), main(), and MatchBVectorAndGradientMatrix().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<class T >
void utl::MatchBVectorAndGradientMatrix ( std::vector< T > &  vec,
NDArray< T, 2 > &  grad 
)

Definition at line 488 of file utlDMRI.h.

References utl::NDArray< T, 2 >::Columns(), MatchBVectorAndGradientMatrix(), utl::NDArray< T, 2 >::Rows(), and utlException.

+ Here is the call graph for this function:

template<class T1 , class T2 >
void utl::MatrixToMatrix ( const T1 &  mat1,
T2 &  mat2,
const int  NRows,
const int  NColumns 
)

copy a matrix to another matrix with different type.

Definition at line 1708 of file utlCore.h.

template<typename T >
const T& utl::max ( const T &  a,
const T &  b 
)
inline
template<typename T >
const T& utl::max ( const T &  a,
const T &  b,
const T &  c 
)
inline

Return the maximum between a,b and c.

Definition at line 265 of file utlCore.h.

References max().

+ Here is the call graph for this function:

template<typename T >
const T& utl::max ( const T &  a,
const T &  b,
const T &  c,
const T &  d 
)
inline

Return the maximum between a,b,c and d.

Definition at line 267 of file utlCore.h.

References max().

+ Here is the call graph for this function:

const unsigned int utl::max ( const unsigned int  a,
const vcl_size_t  b 
)
inline

Definition at line 275 of file utlCore.h.

const unsigned int utl::max ( const vcl_size_t  a,
const unsigned int  b 
)
inline

Definition at line 275 of file utlCore.h.

const int utl::max ( const unsigned int  a,
const int  b 
)
inline

Definition at line 276 of file utlCore.h.

const int utl::max ( const int  a,
const unsigned int  b 
)
inline

Definition at line 276 of file utlCore.h.

const int utl::max ( const int  a,
const vcl_size_t  b 
)
inline

Definition at line 277 of file utlCore.h.

const int utl::max ( const vcl_size_t  a,
const int  b 
)
inline

Definition at line 277 of file utlCore.h.

const double utl::max ( const double  a,
const float  b 
)
inline

Definition at line 278 of file utlCore.h.

const double utl::max ( const float  a,
const double  b 
)
inline

Definition at line 278 of file utlCore.h.

const double utl::max ( const double  a,
const int  b 
)
inline

Definition at line 279 of file utlCore.h.

const double utl::max ( const int  a,
const double  b 
)
inline

Definition at line 279 of file utlCore.h.

const double utl::max ( const float  a,
const int  b 
)
inline

Definition at line 280 of file utlCore.h.

const double utl::max ( const int  a,
const float  b 
)
inline

Definition at line 280 of file utlCore.h.

Referenced by argmax2(), ArgmaxMatrix(), ArgmaxSymmetricMatrix(), ArgminMatrix(), ArgminSymmetricMatrix(), NormalizeMax(), NormalizeMinMax(), and TicToc().

+ Here is the caller graph for this function:

template<class T >
T utl::max_element ( const std::vector< T > &  v)
inline
template<class T >
utl::NDArray<T,1> utl::MeanDirector ( const std::vector< utl::NDArray< T, 1 > > &  dirVec,
const bool  isUnitNorm = true 
)
template<typename T >
T utl::median_element ( std::vector< T >  values)
inline

Definition at line 190 of file utlCore.h.

template<typename T >
bool utl::mexCheckType ( const mxArray *  array)

Check the type of an array.

template<>
bool utl::mexCheckType< bool > ( const mxArray *  array)
inline

Check the type of an array (int)

Definition at line 62 of file mexutils.h.

template<>
bool utl::mexCheckType< double > ( const mxArray *  array)
inline

Check the type of an array (double)

Definition at line 47 of file mexutils.h.

template<>
bool utl::mexCheckType< float > ( const mxArray *  array)
inline

Check the type of an array (float)

Definition at line 52 of file mexutils.h.

template<>
bool utl::mexCheckType< int > ( const mxArray *  array)
inline

Check the type of an array (int)

Definition at line 57 of file mexutils.h.

template<>
bool utl::mexCheckType< std::complex< double > > ( const mxArray *  array)
inline

Check the type of an array (complex double)

Definition at line 67 of file mexutils.h.

template<>
bool utl::mexCheckType< std::complex< float > > ( const mxArray *  array)
inline

Check the type of an array (complex float)

Definition at line 72 of file mexutils.h.

template<typename T >
const T& utl::min ( const T &  a,
const T &  b 
)
inline
template<typename T >
const T& utl::min ( const T &  a,
const T &  b,
const T &  c 
)
inline

Return the minimum between a,b and c.

Definition at line 259 of file utlCore.h.

References min().

+ Here is the call graph for this function:

template<typename T >
const T& utl::min ( const T &  a,
const T &  b,
const T &  c,
const T &  d 
)
inline

Return the minimum between a,b,c and d.

Definition at line 261 of file utlCore.h.

References min().

+ Here is the call graph for this function:

const unsigned int utl::min ( const unsigned int  a,
const vcl_size_t  b 
)
inline

Definition at line 275 of file utlCore.h.

const unsigned int utl::min ( const vcl_size_t  a,
const unsigned int  b 
)
inline

Definition at line 275 of file utlCore.h.

const int utl::min ( const unsigned int  a,
const int  b 
)
inline

Definition at line 276 of file utlCore.h.

const int utl::min ( const int  a,
const unsigned int  b 
)
inline

Definition at line 276 of file utlCore.h.

const int utl::min ( const int  a,
const vcl_size_t  b 
)
inline

Definition at line 277 of file utlCore.h.

const int utl::min ( const vcl_size_t  a,
const int  b 
)
inline

Definition at line 277 of file utlCore.h.

const double utl::min ( const double  a,
const float  b 
)
inline

Definition at line 278 of file utlCore.h.

const double utl::min ( const float  a,
const double  b 
)
inline

Definition at line 278 of file utlCore.h.

const double utl::min ( const double  a,
const int  b 
)
inline

Definition at line 279 of file utlCore.h.

const double utl::min ( const int  a,
const double  b 
)
inline

Definition at line 279 of file utlCore.h.

const double utl::min ( const float  a,
const int  b 
)
inline

Definition at line 280 of file utlCore.h.

const double utl::min ( const int  a,
const float  b 
)
inline

Definition at line 280 of file utlCore.h.

template<class T >
T utl::min_element ( const std::vector< T > &  v)
inline

Definition at line 199 of file utlCore.h.

Referenced by utl::NDArrayBase< T, 4 >::ArgAbsoluteMax(), argmin(), and cblas_iamin().

+ Here is the caller graph for this function:

template<class T >
void utl::NormalizeGrad ( const utl::NDArray< T, 2 > &  grad)
inline
template<class VectorType >
VectorType utl::NormalizeMax ( const VectorType &  v,
const int  nSize 
)
inline

normalize values using the maximal value

Definition at line 697 of file utlCore.h.

References max().

+ Here is the call graph for this function:

template<typename T >
std::vector<T> utl::NormalizeMax ( const std::vector< T > &  v)
inline

Definition at line 719 of file utlCore.h.

template<class VectorType >
VectorType utl::NormalizeMinMax ( const VectorType &  v,
const int  nSize 
)
inline

Normalize values into [0,1] using the minimal value and the maximal value

Definition at line 637 of file utlCore.h.

References max(), and min().

Referenced by NormalizeMinMax().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<typename T >
std::vector<T> utl::NormalizeMinMax ( std::vector< T > &  v)
inline

Definition at line 664 of file utlCore.h.

template<class VectorType >
VectorType utl::NormalizeUnitNorm ( const VectorType &  v,
const int  nSize 
)
inline

normalize values using L2 norm

Definition at line 672 of file utlCore.h.

Referenced by ReadGrad().

+ Here is the caller graph for this function:

template<typename T >
std::vector<T> utl::NormalizeUnitNorm ( const std::vector< T > &  v)
inline

Definition at line 689 of file utlCore.h.

template<class T = double>
utl::NDArray<T,1> utl::Ones ( const int  n)

Definition at line 296 of file utlNDArrayFunctions.h.

References utl::NDArrayBase< T, Dim >::Fill().

+ Here is the call graph for this function:

template<class T = double>
utl::NDArray<T,2> utl::Ones ( const int  n,
const int  m 
)

Definition at line 305 of file utlNDArrayFunctions.h.

References utl::NDArrayBase< T, Dim >::Fill().

+ Here is the call graph for this function:

template<typename T >
NDArray<T,2> utl::operator* ( const NDArray< T, 2 > &  mat1,
const NDArray< T, 2 > &  mat2 
)
inline

Definition at line 846 of file utlNDArrayFunctions.h.

References utl::NDArray< T, 2 >::Cols(), ProductUtlMM(), utl::NDArray< T, 2 >::Rows(), and utlSAException.

+ Here is the call graph for this function:

template<typename T >
NDArray<std::complex<T>,2> utl::operator* ( const NDArray< T, 2 > &  mat1,
const NDArray< std::complex< T >, 2 > &  mat2 
)
inline

Definition at line 856 of file utlNDArrayFunctions.h.

References utl::NDArray< T, 2 >::Cols(), ProductUtlMM(), and utlSAException.

+ Here is the call graph for this function:

template<typename T >
NDArray<std::complex<T>,2> utl::operator* ( const NDArray< std::complex< T >, 2 > &  mat1,
const NDArray< T, 2 > &  mat2 
)
inline

Definition at line 867 of file utlNDArrayFunctions.h.

References ProductUtlMM(), utl::NDArray< T, 2 >::Rows(), and utlSAException.

+ Here is the call graph for this function:

template<typename T >
NDArray<T,1> utl::operator* ( const NDArray< T, 2 > &  mat,
const NDArray< T, 1 > &  vec 
)
inline

Definition at line 878 of file utlNDArrayFunctions.h.

References utl::NDArray< T, 2 >::Cols(), ProductUtlMv(), utl::NDArrayBase< T, Dim >::Size(), and utlSAException.

+ Here is the call graph for this function:

template<typename T >
NDArray<T,1> utl::operator* ( const NDArray< T, 1 > &  vec,
const NDArray< T, 2 > &  mat 
)
inline

Definition at line 888 of file utlNDArrayFunctions.h.

References ProductUtlvM(), utl::NDArray< T, 2 >::Rows(), utl::NDArrayBase< T, Dim >::Size(), and utlSAException.

+ Here is the call graph for this function:

template<typename T , typename EType >
NDArray<T,1> utl::operator* ( const NDArray< T, 1 > &  vec,
const Expr< EType, typename EType::ValueType > &  expr 
)
inline

Definition at line 898 of file utlNDArrayFunctions.h.

template<typename T , unsigned int Dim>
std::ostream& utl::operator<< ( std::ostream &  os,
const NDArray< T, Dim > &  arr 
)

Definition at line 314 of file utlNDArrayFunctions.h.

References utl::NDArrayBase< T, Dim >::Print().

+ Here is the call graph for this function:

template<typename T >
std::ostream& utl::operator<< ( std::ostream &  os,
const NDArray< T, 1 > &  arr 
)

Definition at line 322 of file utlNDArrayFunctions.h.

References PrintContainer().

+ Here is the call graph for this function:

template<typename T >
std::ostream& utl::operator<< ( std::ostream &  os,
const NDArray< T, 2 > &  arr 
)

Definition at line 330 of file utlNDArrayFunctions.h.

References PrintUtlMatrix().

+ Here is the call graph for this function:

template<class T >
void utl::OuterProduct ( const NDArrayBase< T, 2 > &  mat1,
const NDArrayBase< T, 2 > &  mat2,
NDArray< T, 4 > &  tensor 
)
inline

Definition at line 771 of file utlNDArrayFunctions.h.

References utl::NDArrayBase< T, Dim >::GetShape(), and utl::NDArray< T, 4 >::ReSize().

+ Here is the call graph for this function:

template<class T >
void utl::OuterProduct ( const NDArray< T, 1 > &  v1,
const NDArray< T, 1 > &  v2,
NDArray< T, 2 > &  mat 
)

Definition at line 803 of file utlNDArrayFunctions.h.

References utl::NDArray< T, 2 >::ReSize(), and utl::NDArrayBase< T, Dim >::Size().

+ Here is the call graph for this function:

template<class T >
NDArray<T,2> utl::PInverseMatrix ( const NDArray< T, 2 > &  mat,
const double  eps = 1e-10 
)
inline

pseudo-inverse of a general matrix, by using SVD

Definition at line 998 of file utlNDArrayFunctions.h.

References spams::abs(), ProductUtlMM(), ProductUtlMMt(), utl::NDArrayBase< T, Dim >::Size(), and utl::NDArray< T, 2 >::SVD().

Referenced by itk::SHCoefficientsPowerImageFilter< TInputImage, TOutputImage >::BeforeThreadedGenerateData(), itk::SHCoefficientsRotation< T >::Initialize(), and utl::NDArray< T, 2 >::PInverseMatrix().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<class T >
NDArray<T,2> utl::PInverseSymmericMatrix ( const NDArray< T, 2 > &  mat,
const double  eps = 1e-10 
)
inline

pseudo-inverse of a symmetric matrix which can be singular, by using eigen-decomposition. If the matrix is not singular, it returns the inverse.

Definition at line 975 of file utlNDArrayFunctions.h.

References spams::abs(), utl::NDArray< T, 2 >::Cols(), utl::NDArray< T, 2 >::EigenDecompositionSymmetricMatrix(), ProductUtlMM(), ProductUtlMtM(), utl::NDArray< T, 2 >::Rows(), and utlSAException.

Referenced by GetEqualityConstraintProjection(), and utl::NDArray< T, 2 >::PInverseSymmericMatrix().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<class PointsContainer , class VnlValueType >
void utl::PointsContainerToUtlMatrix ( const PointsContainer &  points,
utl::NDArray< VnlValueType, 2 > &  matrix 
)

Definition at line 247 of file utl.h.

References utl::NDArrayBase< T, Dim >::Clear(), and utl::NDArrayBase< T, Dim >::ReSize().

+ Here is the call graph for this function:

template<class IteratorType >
void utl::PowerVector ( IteratorType  v1,
IteratorType  v2,
const double  poww 
)
inline
template<typename... Args>
void utl::Print ( Args...  args)
inline

Print variable number of arguments.

Definition at line 87 of file utlCore11.h.

References PrintOS().

Referenced by itk::SphericalPolarFourierEstimationImageFilter< TInputImage, TOutputImage >::BeforeThreadedGenerateData(), itk::Functor::SHCoefficientsFit< T >::Print(), and utl::Functor::Shred< TVector, TOutput >::Print().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<class IteratorType >
void utl::PrintContainer ( IteratorType  v1,
IteratorType  v2,
const std::string &  str = "",
const char *  separate = " ",
std::ostream &  os = std::cout,
bool  showStats = true 
)
inline

Definition at line 1068 of file utlCore.h.

References GetContainerStats().

Referenced by operator<<(), PrintUtlVector(), PrintVnlVector(), and utl::NDArrayBase< T, 4 >::PrintWithIndex().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<class TMatrixType >
void utl::PrintMatrix ( const TMatrixType &  matrix,
const int  NumberRows,
const int  NumberColumns,
const std::string &  str = "",
const char *  separate = " ",
std::ostream &  os = std::cout,
bool  showStats = true 
)

Definition at line 1730 of file utlCore.h.

References GetContainerStats().

+ Here is the call graph for this function:

template<class TMatrixType >
void utl::PrintMatrixStats ( const TMatrixType &  matrix,
const int  NumberRows,
const int  NumberColumns,
const std::string &  str = "",
const char *  separate = " ",
std::ostream &  os = std::cout 
)

print statistics from a matrix

Definition at line 1718 of file utlCore.h.

References GetContainerStats().

+ Here is the call graph for this function:

template<typename... Args>
void utl::PrintOS ( std::ostream &  os,
Args...  args 
)
inline

Print variable number of arguments.

Definition at line 78 of file utlCore11.h.

Referenced by Print().

+ Here is the caller graph for this function:

template<class Tuple , vcl_size_t Pos>
std::ostream& utl::PrintTuple ( std::ostream &  os,
const Tuple &  t,
Int_< Pos >   
)
inline

Definition at line 28 of file utlCore11.h.

Referenced by std::operator<<().

+ Here is the caller graph for this function:

template<class Tuple >
std::ostream& utl::PrintTuple ( std::ostream &  os,
const Tuple &  t,
Int_< 1 >   
)
inline

print tuple

Definition at line 37 of file utlCore11.h.

template<class... Args>
void utl::PrintTuple ( const std::tuple< Args... > &  t,
const std::string &  str = "",
std::ostream &  os = std::cout 
)

Definition at line 45 of file utlCore11.h.

template<class T >
void utl::PrintUtlMatrix ( const NDArray< T, 2 > &  mat,
const std::string &  str = "",
const char *  separate = " ",
std::ostream &  os = std::cout 
)
inline

Definition at line 265 of file utlNDArrayFunctions.h.

References utl::NDArray< T, 2 >::Rows().

Referenced by itk::SphericalPolarFourierImageFilter< TInputImage, TOutputImage >::BeforeThreadedGenerateData(), itk::MeshFromContinuousSphericalFunctionImageFilter< TInputImage, TOutputMesh >::BeforeThreadedGenerateData(), itk::GeneralizedHighOrderTensorImageFilter< TInputImage, TOutputImage >::ComputeBasisMatrix(), itk::SphericalPolarFourierImageFilter< TInputImage, TOutputImage >::ComputeBasisMatrix(), itk::GeneralizedHighOrderTensorImageFilter< TInputImage, TOutputImage >::ComputeRadialMatrix(), itk::SphericalPolarFourierImageFilter< TInputImage, TOutputImage >::ComputeRadialMatrix(), itk::SphericalPolarFourierImageFilter< TInputImage, TOutputImage >::ComputeRegularizationWeight(), itk::DiffusionModelEstimationInSphericalCoordinateImageFilter< TInputImage, TOutputImage >::ComputeSHMatrix(), itk::Functor::SHCoefficientsFit< T >::Initialize(), main(), operator<<(), itk::Functor::SHCoefficientsFit< T >::Print(), itk::DiscreteBasisMatrixGenerator< TElement >::PrintSelf(), itk::DiffusionModelEstimationImageFilter< TInputImage, TOutputImage >::PrintSelf(), itk::DiffusionModelEstimationInSphericalCoordinateImageFilter< TInputImage, TOutputImage >::PrintSelf(), itk::L2RegularizedLeastSquaresSolver< TPrecision >::PrintSelf(), itk::DWISingleVoxelGenerator< TOutputImage, TScalarImage >::PrintSelf(), itk::MeshFromSphericalFunctionImageFilter< TInputImage, TOutputMesh >::PrintSelf(), itk::FeaturesFromSPFImageFilter< TInputImage, TOutputImage >::PrintSelf(), itk::SHCoefficientsRotation< T >::PrintSelf(), itk::MeshFromContinuousSphericalFunctionImageFilter< TInputImage, TOutputMesh >::PrintSelf(), itk::L1RegularizedLeastSquaresFISTASolver< TPrecision >::PrintSelf(), itk::BasisMatrixGenerator< TElement >::PrintSelf(), itk::MeshFromSphericalFunctionTessellatedSamplesImageFilter< TInputImage, TOutputMesh >::PrintSelf(), itk::SpamsWeightedLassoSolver< TPrecision >::PrintSelf(), itk::SphericalPolarFourierEstimationImageFilter< TInputImage, TOutputImage >::PrintSelf(), itk::SamplingScheme3D< TPixelType >::PrintSelf(), and itk::SphericalPolarFourierImageFilter< TInputImage, TOutputImage >::ThreadedGenerateData().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<class T , unsigned int Dim>
void utl::PrintUtlNDArray ( const NDArrayBase< T, Dim > &  arr,
const std::string &  str = "",
const char *  separate = " ",
std::ostream &  os = std::cout 
)
inline

Definition at line 279 of file utlNDArrayFunctions.h.

References utl::NDArrayBase< T, Dim >::Print().

+ Here is the call graph for this function:

template<class T >
void utl::PrintUtlVector ( const NDArray< T, 1 > &  vec,
const std::string &  str = "",
const char *  separate = " ",
std::ostream &  os = std::cout,
bool  showStats = true 
)
inline
template<typename T >
void utl::PrintVector ( const std::vector< T > &  vec,
const std::string &  str = "",
const char *  separate = " ",
std::ostream &  os = std::cout,
bool  showStats = true 
)
inline
template<class VectorType >
void utl::PrintVector ( const VectorType &  vec,
const int  NSize,
const std::string &  str = "",
const char *  separate = " ",
std::ostream &  os = std::cout,
bool  showStats = true 
)
inline

Definition at line 1044 of file utlCore.h.

References GetContainerStats().

+ Here is the call graph for this function:

template<>
void utl::PrintVector< std::string > ( const std::vector< std::string > &  vec,
const std::string &  str,
const char *  separate,
std::ostream &  os,
bool  showStats 
)
inline

Definition at line 1026 of file utlCore.h.

template<class T >
void utl::ProductUtlMM ( const utl::NDArray< T, 2 > &  A1,
const utl::NDArray< T, 2 > &  A2,
const utl::NDArray< T, 2 > &  A3,
const utl::NDArray< T, 2 > &  A4,
utl::NDArray< T, 2 > &  C 
)
inline

Definition at line 423 of file utlNDArrayFunctions.h.

template<class T >
void utl::ProductUtlMM ( const utl::NDArray< T, 2 > &  A1,
const utl::NDArray< T, 2 > &  A2,
const utl::NDArray< T, 2 > &  A3,
utl::NDArray< T, 2 > &  C 
)
inline

Definition at line 423 of file utlNDArrayFunctions.h.

template<class T >
void utl::ProductUtlMM ( const utl::NDArray< T, 2 > &  A,
const utl::NDArray< T, 2 > &  B,
utl::NDArray< T, 2 > &  C,
const double  alpha = 1.0,
const double  beta = 0.0 
)
inline
template<class T >
void utl::ProductUtlMM ( const utl::NDArray< T, 2 > &  A1,
const utl::NDArray< T, 2 > &  A2,
const utl::NDArray< T, 2 > &  A3,
const utl::NDArray< T, 2 > &  A4,
const utl::NDArray< T, 2 > &  A5,
utl::NDArray< T, 2 > &  C 
)
inline

Definition at line 423 of file utlNDArrayFunctions.h.

template<class T >
void utl::ProductUtlMMt ( const utl::NDArray< T, 2 > &  A,
const utl::NDArray< T, 2 > &  B,
utl::NDArray< T, 2 > &  C,
const double  alpha = 1.0,
const double  beta = 0.0 
)
inline
template<class T >
void utl::ProductUtlMtM ( const utl::NDArray< T, 2 > &  A,
const utl::NDArray< T, 2 > &  B,
utl::NDArray< T, 2 > &  C,
const double  alpha = 1.0,
const double  beta = 0.0 
)
inline

Definition at line 423 of file utlNDArrayFunctions.h.

Referenced by GetMeanOfRotationMatrix(), and PInverseSymmericMatrix().

+ Here is the caller graph for this function:

template<class T >
void utl::ProductUtlMtMt ( const utl::NDArray< T, 2 > &  A,
const utl::NDArray< T, 2 > &  B,
utl::NDArray< T, 2 > &  C,
const double  alpha = 1.0,
const double  beta = 0.0 
)
inline

Definition at line 423 of file utlNDArrayFunctions.h.

template<class T >
void utl::ProductUtlMtv ( const utl::NDArray< T, 2 > &  A,
const utl::NDArray< T, 1 > &  b,
utl::NDArray< T, 1 > &  c,
const double  alpha = 1.0,
const double  beta = 0.0 
)
inline

Definition at line 360 of file utlNDArrayFunctions.h.

template<class T >
void utl::ProductUtlMv ( const utl::NDArray< T, 2 > &  A,
const utl::NDArray< T, 1 > &  b,
utl::NDArray< T, 1 > &  c,
const double  alpha = 1.0,
const double  beta = 0.0 
)
inline
template<class T >
void utl::ProductUtlvM ( const utl::NDArray< T, 1 > &  b,
const utl::NDArray< T, 2 > &  A,
utl::NDArray< T, 1 > &  c,
const double  alpha = 1.0,
const double  beta = 0.0 
)
inline
template<class T >
void utl::ProductUtlvMt ( const utl::NDArray< T, 1 > &  b,
const utl::NDArray< T, 2 > &  A,
utl::NDArray< T, 1 > &  c,
const double  alpha = 1.0,
const double  beta = 0.0 
)
inline

Definition at line 381 of file utlNDArrayFunctions.h.

template<class T >
void utl::ProductUtlXtX ( const utl::NDArray< T, 2 > &  A,
utl::NDArray< T, 2 > &  C,
const double  alpha = 1.0,
const double  beta = 0.0 
)
template<class T >
void utl::ProductUtlXXt ( const utl::NDArray< T, 2 > &  A,
utl::NDArray< T, 2 > &  C,
const double  alpha = 1.0,
const double  beta = 0.0 
)

Definition at line 448 of file utlNDArrayFunctions.h.

template<typename T >
T utl::Random ( const T  d1 = T(0.0),
const T  d2 = T(1.0) 
)
inline

generate random float value in [d1,d2]

Definition at line 1415 of file utlCore.h.

References utlAssert.

Referenced by RandomPointInSphere().

+ Here is the caller graph for this function:

long utl::RandomInt ( const long  d1 = 0,
const long  d2 = 1 
)
inline

generate random int value in [d1,d2]

Definition at line 1430 of file utlCore.h.

References utlAssert.

Referenced by RandomVec().

+ Here is the caller graph for this function:

std::vector<double> utl::RandomPointInSphere ( const bool  hemis)
inline

generate random point in sphere. http://mathworld.wolfram.com/SpherePointPicking.html

Definition at line 1489 of file utlCore.h.

References M_PI, and Random().

Referenced by itk::DWISingleVoxelGenerator< TOutputImage, TScalarImage >::GenerateData(), and itk::SamplingScheme3D< TPixelType >::GenerateFromRandomPoints().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<typename T >
std::vector<T> utl::RandomVec ( const std::vector< T > &  vec,
const int  num,
std::vector< int > &  result_index 
)
inline

Definition at line 1448 of file utlCore.h.

References RandomInt(), and utlAssert.

+ Here is the call graph for this function:

int utl::RankToDimSH ( const int  shRank)
inline
template<class T >
std::shared_ptr<NDArray<T,2> > utl::ReadGrad ( const int  tess,
const int  NoSymmetricDuple = DIRECTION_NODUPLICATE,
const int  mode = CARTESIAN_TO_SPHERICAL,
const int  flipx = DIRECTION_NOFLIP,
const int  flipy = DIRECTION_NOFLIP,
const int  flipz = DIRECTION_NOFLIP,
const bool  need_normalize = true 
)
inline

Definition at line 189 of file utlDMRIStoredTables.h.

References utl::GradientTable< T >::GetGrad(), and utl::GradientTable< T >::Initialize().

+ Here is the call graph for this function:

template<class T >
std::shared_ptr<NDArray<T,2> > utl::ReadGrad ( const std::string &  grad_str,
const int  NoSymmetricDuple = DIRECTION_NODUPLICATE,
const int  mode = CARTESIAN_TO_SPHERICAL,
const int  flipx = DIRECTION_NOFLIP,
const int  flipy = DIRECTION_NOFLIP,
const int  flipz = DIRECTION_NOFLIP,
const bool  need_normalize = true 
)
inline
template<>
std::shared_ptr<NDArray<float,2> > utl::ReadGrad< float > ( const int  tess,
const int  NoSymmetricDuple,
const int  mode,
const int  flipx,
const int  flipy,
const int  flipz,
const bool  need_normalize 
)
inline

Definition at line 199 of file utlDMRIStoredTables.h.

template<class T >
std::shared_ptr<NDArray<T,2> > utl::ReadGradElectricRepulsion ( const int  num,
const int  NoSymmetricDuple = DIRECTION_NODUPLICATE,
const int  mode = CARTESIAN_TO_SPHERICAL,
const int  flipx = DIRECTION_NOFLIP,
const int  flipy = DIRECTION_NOFLIP,
const int  flipz = DIRECTION_NOFLIP,
const bool  need_normalize = true 
)
inline

Definition at line 210 of file utlDMRIStoredTables.h.

References CreateExpandedPath(), and GradientsElec.

+ Here is the call graph for this function:

void utl::ReadLines ( const std::string &  filename,
std::vector< std::vector< std::string > > &  strVec,
const char *  cc = " " 
)
inline

Read a file, put all strings into a string 2D vector, i.e. vector<vector<string> >

Definition at line 862 of file utlCore.h.

References SplitString(), and utlGlobalAssert.

Referenced by itk::DWIGenerator< TOutputImage, TScalarImage >::GenerateData(), main(), ReadLinesFirstlineCheck(), and ReadMatrix().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void utl::ReadLinesFirstlineCheck ( const std::string &  filename,
std::vector< std::vector< std::string > > &  strVec,
const char *  cc = " " 
)
inline

same with ReadLines(), ignore the first line if it is shows the number of rows.

Definition at line 890 of file utlCore.h.

References IsInt(), and ReadLines().

Referenced by main(), itk::DWIReader< TPixelType, VImageDimension >::ReadFromConfigurationFile(), ReadGrad(), ReadVector(), and ReadVector< std::string >().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<class TMatrixType >
void utl::ReadMatFileToMatrix ( const std::string  fileName,
const std::string  varibleName,
TMatrixType &  matrix 
)

Definition at line 375 of file mexutils.h.

References utlGlobalException.

template<class T >
void utl::ReadMatFileToVNLMatrix ( const std::string  fileName,
const std::string  varibleName,
vnl_matrix< T > *  mat 
)
inline

Definition at line 100 of file mexVNL.h.

References utlGlobalException.

template<class TMatrixType >
void utl::ReadMatrix ( const std::string &  file,
TMatrixType &  matrix 
)

Definition at line 1897 of file utlCore.h.

References ReadLines(), and utlException.

Referenced by itk::SphericalPolarFourierImageFilter< TInputImage, TOutputImage >::BeforeThreadedGenerateData(), and itk::SphericalPolarFourierImageFilter< TInputImage, TOutputImage >::ComputeRegularizationWeight().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<class T >
void utl::ReadVector ( const std::string &  vectorStr,
std::vector< T > &  vec,
const char *  cc = " " 
)
inline

Definition at line 1159 of file utlCore.h.

References ReadLinesFirstlineCheck(), and utlException.

Referenced by itk::SphericalPolarFourierImageFilter< TInputImage, TOutputImage >::ComputeRegularizationWeight(), main(), and itk::DWIReader< TPixelType, VImageDimension >::ReadFromConfigurationFile().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<>
void utl::ReadVector< std::string > ( const std::string &  vectorStr,
std::vector< std::string > &  vec,
const char *  cc 
)
inline

Definition at line 1186 of file utlCore.h.

References ReadLinesFirstlineCheck(), and utlException.

+ Here is the call graph for this function:

template<class T , unsigned Dim>
NDArray<T, Dim> utl::Real ( const NDArray< std::complex< T >, Dim > &  mat)

Definition at line 1067 of file utlNDArrayFunctions.h.

template<class T >
void utl::RemoveScalarsByName ( std::vector< T > &  vec,
const std::vector< std::string > &  nameVec,
const std::string &  name 
)
inline

Definition at line 153 of file utlDMRI.h.

References GetScalarsDimentionByName().

Referenced by itk::Fiber< TValue >::RemovePropertiesByName(), and itk::Fiber< TValue >::RemoveScalarsByName().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void utl::ReplaceString ( std::string &  source,
const char *  replace,
const char *  with 
)
inline

Definition at line 319 of file utlCore.h.

Referenced by ConvertToUnixSlashes().

+ Here is the caller graph for this function:

void utl::RGBToIndex ( double  R,
double  G,
double  B,
double &  index 
)
inline

Definition at line 617 of file utlDMRI.h.

References max(), and min().

Referenced by itk::MeshFromTensorImageFilter< TInputImage, TOutputMesh >::GetScalarCodeFromTensor().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<typename T >
T utl::RicianRand ( const T  value,
const double  sigma 
)
inline

Generate random value from Rician distribution.

Definition at line 1526 of file utlCore.h.

References GaussRand().

Referenced by AddNoise().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<class T >
void utl::RotationMatrixToAxisAngle ( const NDArray< T, 2 > &  rotMat,
NDArray< T, 1 > &  axis,
double &  theta 
)
template<class T >
int utl::RoundNumber ( const T  x)
inline

Definition at line 785 of file utlCore.h.

Referenced by itk::DWIWriter< TPixelType, VImageDimension >::WriteToConfigurationFile().

+ Here is the caller graph for this function:

template<typename Vector2D >
void utl::Save2DVector ( const Vector2D &  vv,
std::ostream &  out = std::cout 
)

Definition at line 1850 of file utlCore.h.

Referenced by main(), and Save2DVector().

+ Here is the caller graph for this function:

template<typename Vector2D >
void utl::Save2DVector ( const Vector2D &  vv,
const std::string &  file 
)

Definition at line 1868 of file utlCore.h.

References Save2DVector(), and utlException.

+ Here is the call graph for this function:

template<class TMatrixType >
void utl::SaveMatrix ( const TMatrixType &  matrix,
const int  NumberRows,
const int  NumberColumns,
const std::string &  file 
)

Definition at line 1880 of file utlCore.h.

References utlException.

template<class TMatrixType >
void utl::SaveMatrixToMatFile ( const TMatrixType &  matrix,
const int  NumberRows,
const int  NumberColumns,
const std::string  fileName,
const std::string  varibleName 
)

Definition at line 350 of file mexutils.h.

References utlGlobalException.

template<typename VectorType >
void utl::SaveVector ( const VectorType &  vv,
const int  NSize,
const std::string &  vectorStr,
const bool  is_save_number = false 
)

Definition at line 1213 of file utlCore.h.

References utlException.

Referenced by main(), itk::SamplingSchemeQSpaceWriter< TSamplingType >::Update(), and itk::DWIWriter< TPixelType, VImageDimension >::WriteToConfigurationFile().

+ Here is the caller graph for this function:

template<typename T >
void utl::SaveVector ( const std::vector< T > &  vv,
const std::string &  vectorStr,
const bool  is_save_number = false 
)

Definition at line 1228 of file utlCore.h.

template<class T >
void utl::SaveVNLMatrixToMatFile ( const vnl_matrix< T > *  mat,
const std::string  fileName,
const std::string  varibleName 
)
inline

Definition at line 93 of file mexVNL.h.

template<typename T >
std::vector<T> utl::SelectVector ( const std::vector< T > &  vec,
const std::vector< int > &  index 
)

Definition at line 1312 of file utlCore.h.

Referenced by main().

+ Here is the caller graph for this function:

template<typename T >
std::vector<T> utl::SelectVector ( const std::vector< T > &  vec,
const int  startIndex,
const int  numberOfElement 
)

Definition at line 1324 of file utlCore.h.

template<typename T >
std::vector<std::vector<int> > utl::SeparateVector ( const std::vector< T > &  vec,
std::vector< T > &  vec_sep,
const double  gap = 1e-9 
)

Definition at line 1262 of file utlCore.h.

References FindVector().

Referenced by main().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<class T >
void utl::SetScalarsByName ( const std::vector< T > &  vec,
const std::vector< std::string > &  nameVec,
const std::vector< T > &  scalars,
const std::string &  name 
)
inline

Definition at line 135 of file utlDMRI.h.

References GetScalarsDimentionByName(), and utlSAException.

+ Here is the call graph for this function:

template<typename T >
int utl::SetVector ( const char *  s,
std::vector< T > &  vec,
const int  least_num = 0,
const char &  c = ',' 
)

Definition at line 1115 of file utlCore.h.

References utlAssert.

Referenced by main(), and SetVector().

+ Here is the caller graph for this function:

template<typename T >
int utl::SetVector ( const std::string &  s,
std::vector< T > &  vec,
const int  least_num = 0,
const char &  c = ',' 
)

Definition at line 1152 of file utlCore.h.

References SetVector().

+ Here is the call graph for this function:

static std::shared_ptr<NDArray<double,3> > utl::SH3IntegralTable ( new NDArray< double, 3 >  )
static
template<typename T >
int utl::sign ( const T &  x)
inline
template<typename T >
void utl::spherical2Cartesian ( const T  r,
const T  theta,
const T  phi,
T &  x,
T &  y,
T &  z 
)
inline
template<typename T >
void utl::spherical2Cartesian ( T &  x,
T &  y,
T &  z 
)
inline

Definition at line 1611 of file utlCore.h.

References spherical2Cartesian().

+ Here is the call graph for this function:

template<class T >
NDArray<T,2> utl::SphericalToCartesian ( const NDArray< T, 2 > &  in)

Definition at line 114 of file utlNDArrayFunctions.h.

References utl::NDArray< T, 2 >::Columns(), utl::NDArray< T, 2 >::Rows(), spherical2Cartesian(), and utlAssert.

Referenced by itk::SamplingScheme3D< TPixelType >::GetOrientationsCartesian(), and itk::SamplingScheme3D< TPixelType >::SetOrientationsSpherical().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void utl::SplitString ( const std::string &  str,
std::vector< std::string > &  strVec,
const char *  cc = " " 
)
inline

separate a string into a string vector based on given delimit

Definition at line 845 of file utlCore.h.

Referenced by ReadLines().

+ Here is the caller graph for this function:

template<typename T >
T utl::square ( const T &  x)
inline

Definition at line 287 of file utlCore.h.

template<class T >
NDArray<T,1> utl::StdVectorToUtlVector ( const std::vector< T > &  vec)

Definition at line 103 of file utlNDArrayFunctions.h.

Referenced by itk::SphericalPolarFourierImageFilter< TInputImage, TOutputImage >::ComputeRegularizationWeight().

+ Here is the caller graph for this function:

int utl::strfind ( const char *  s,
const char  c 
)
inline

Definition at line 1098 of file utlCore.h.

bool utl::StringCompareCaseIgnored ( const std::string &  str1,
const std::string &  str2 
)
inline

compare two std::string objects, ignore case

Definition at line 311 of file utlCore.h.

References StringToLowerCase().

Referenced by callFunction().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

std::string utl::StringToLowerCase ( const std::string &  str)
inline

Definition at line 292 of file utlCore.h.

Referenced by StringCompareCaseIgnored().

+ Here is the caller graph for this function:

std::string utl::StringToUpperCase ( const std::string &  str)
inline

Definition at line 301 of file utlCore.h.

Referenced by ImageMath().

+ Here is the caller graph for this function:

void utl::super_flush ( std::ostream &  stream)
inline

Definition at line 342 of file mexutils.h.

void utl::SwapBytes ( void *  ptr,
const int  sizePerElement,
const int  count 
)
inline

SwapBytes(ptr,sizeof(short),8)

Definition at line 176 of file utlCore.h.

template<class T >
void utl::syev_UtlMatrix ( const NDArray< T, 2 > &  mat,
NDArray< T, 1 > &  eigenValues,
NDArray< T, 2 > &  eigenVectors 
)
inline

dsyev_VnlMatrix eigen-decomposition for symmetric matrix. http://www.netlib.org/lapack/explore-html/dd/d4c/dsyev_8f.html

Parameters
mata symmetric matrix (only upper triangular matrix is used)
eigenValuesEigen-values are in increasing order.
eigenVectorsEigen-vectors. each row is an eigen-vector

Definition at line 499 of file utlNDArrayFunctions.h.

References utl::NDArray< T, 2 >::Cols(), utl::NDArrayBase< T, Dim >::GetData(), utl::NDArray< T, 1 >::ReSize(), utl::NDArray< T, 2 >::Rows(), utlException, and utlGlobalException.

+ Here is the call graph for this function:

template<class T >
void utl::syevd_UtlMatrix ( const NDArray< T, 2 > &  mat,
NDArray< T, 1 > &  eigenValues,
NDArray< T, 2 > &  eigenVectors 
)
inline

dsyevd_UtlMatrix eigen-decomposition for symmetric matrix. dsyevd is faster than dsyev http://www.netlib.org/lapack/explore-html/d1/da2/dsyevd_8f.html

Parameters
mata symmetric matrix (only upper triangular matrix is used)
eigenValuesEigen-values are in increasing order.
eigenVectorsEigen-vectors. each row is an eigen-vector

Definition at line 530 of file utlNDArrayFunctions.h.

References utl::NDArray< T, 2 >::Cols(), utl::NDArrayBase< T, Dim >::GetData(), utl::NDArray< T, 1 >::ReSize(), utl::NDArray< T, 2 >::Rows(), utlException, and utlGlobalException.

+ Here is the call graph for this function:

template<class T >
void utl::syrk_UtlMatrix ( const bool  trans,
const T  alpha,
const utl::NDArray< T, 2 > &  A,
const T  beta,
utl::NDArray< T, 2 > &  C 
)
inline

syrk_UtlMatrix

define several functions.

Parameters
transIf false, then C := alpha* A*A' + beta* C; If true, then C := alpha* A'A + beta C
alpha
AMxN matrix
beta
CMxM or NxN symmetric matrix

template <class T> inline void syrk_UtlMatrix( const bool trans, const T alpha, const utl::NDArray<T,2>& A, const T beta, utl::NDArray<T,2>& C )

$ C = alpha *A*A^T + beta*C $
template <class T> void ProductUtlXXt ( const vnl_matrix<T>& A, utl::NDArray<T,2>& C, const double alpha=1.0, const double beta=0.0 )

$ C = alpha *A^T*A + beta*C $
template <class T> void ProductUtlXtX ( const vnl_matrix<T>& A, utl::NDArray<T,2>& C, const double alpha=1.0, const double beta=0.0 )

Definition at line 448 of file utlNDArrayFunctions.h.

unsigned long utl::Tic ( std::ostream &  os = std::cout)
inline

Start tic/toc timer for time measurement between code instructions.

Returns
Current value of the timer (same value as time()).

Definition at line 128 of file utlCore.h.

References TicToc().

+ Here is the call graph for this function:

unsigned long utl::TicToc ( const bool  is_tic,
std::ostream &  os = std::cout 
)
inline

Implement a tic/toc mechanism to display elapsed time of algorithms, modified from CImg

Definition at line 91 of file utlCore.h.

References max(), and Time().

Referenced by Tic(), and Toc().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

unsigned long utl::Time ( )
inline

Return the value of a system timer, with a millisecond precision.

Note
The timer does not necessarily starts from 0.

Definition at line 74 of file utlCore.h.

Referenced by TicToc().

+ Here is the caller graph for this function:

unsigned long utl::Toc ( std::ostream &  os = std::cout)
inline

End tic/toc timer and displays elapsed time from last call to tic().

Returns
Time elapsed (in ms) since last call to tic().

Definition at line 138 of file utlCore.h.

References TicToc().

+ Here is the call graph for this function:

template<class T , class EType >
std::shared_ptr< NDArray<T,2> > utl::ToMatrix ( const Expr< EType, typename EType::ValueType > &  expr)

Convert utl::Expression to utl::Matrix

Definition at line 85 of file utlNDArrayFunctions.h.

template<class T , unsigned int Dim, class EType >
std::shared_ptr< NDArray<T,Dim> > utl::ToNDArray ( const Expr< EType, typename EType::ValueType > &  expr)

Convert utl::Expression to utl::NDArray

Definition at line 67 of file utlNDArrayFunctions.h.

template<class T , class EType >
std::shared_ptr< NDArray<T,1> > utl::ToVector ( const Expr< EType, typename EType::ValueType > &  expr)

Convert utl::Expression to utl::Vector

Definition at line 76 of file utlNDArrayFunctions.h.

template<class T >
std::string utl::TypeName ( )
inline

Definition at line 121 of file utlTypeinfo.h.

References Demangle().

Referenced by itk::FunctorBaseVectorImageFilter< TInputImage, TOutputImage, utl::Functor::VectorMultiVariableFunctionWrapper<>, TMaskImage >::PrintSelf().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<class T >
std::string utl::TypeName ( const T &  )
inline

Definition at line 127 of file utlTypeinfo.h.

template<class VnlValueType , class PointsContainer >
void utl::UtlMatrixToPointsContainer ( const NDArray< VnlValueType, 2 > &  matrix,
PointsContainer &  points 
)

Definition at line 275 of file utl.h.

References utlGlobalException.

const char* utl::utlOption ( const char *const  name,
const unsigned int  argc,
char **  argv,
const char *const  defaut,
const char *const  usage = NULL 
)
inline

Definition at line 72 of file utlCommandLineParser.h.

References COLOR_BOLD, COLOR_PURPLE, COLOR_RED, and GetColoredString().

Referenced by utlOption().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

bool utl::utlOption ( const char *const  name,
const unsigned int  argc,
char **  argv,
const bool  defaut,
const char *const  usage = NULL 
)
inline

Definition at line 117 of file utlCommandLineParser.h.

References utlOption().

+ Here is the call graph for this function:

int utl::utlOption ( const char *const  name,
const unsigned int  argc,
char **  argv,
const int  defaut,
const char *const  usage = NULL 
)
inline

Definition at line 126 of file utlCommandLineParser.h.

References utlOption().

+ Here is the call graph for this function:

char utl::utlOption ( const char *const  name,
const unsigned int  argc,
char **  argv,
const char  defaut,
const char *const  usage = NULL 
)
inline

Definition at line 137 of file utlCommandLineParser.h.

References utlOption().

+ Here is the call graph for this function:

double utl::utlOption ( const char *const  name,
const unsigned int  argc,
char **  argv,
const double  defaut,
const char *const  usage = NULL 
)
inline

Definition at line 149 of file utlCommandLineParser.h.

References utlOption().

+ Here is the call graph for this function:

template<class T >
std::vector<T> utl::UtlVectorToStdVector ( const NDArray< T, 1 > &  vec)

Definition at line 93 of file utlNDArrayFunctions.h.

References utl::NDArrayBase< T, Dim >::Size().

Referenced by main().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<class T >
itk::VariableLengthVector<T> utl::UtlVectorToVariableLengthVector ( const NDArray< T, 1 > &  vec)
template<typename T >
void utl::vAbs ( int  n,
T *  vecIn,
T *  vecOut 
)
inline

interface to v*Abs

Slow implementation of vAbs.

Definition at line 321 of file utlCoreMKL.h.

References spams::abs().

Referenced by utl::NDArrayBase< T, 4 >::ElementInverse().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<typename T >
void utl::vAdd ( int  n,
T *  vecIn,
T *  vecIn2,
T *  vecOut 
)
inline

interface to v*Add

Slow implementation of vdAdd and vsAdd.

Definition at line 300 of file utlCoreMKL.h.

Referenced by spams::coreGroupIST(), spams::coreGroupISTConstrained(), spams::coreIST(), utl::NDArrayBase< T, 4 >::ElementMultiply(), and itk::L1RegularizedLeastSquaresFISTASolver< TPrecision >::Iterate().

+ Here is the caller graph for this function:

template<class T >
NDArray<T,1> utl::VariableLengthVectorToUtlVector ( const itk::VariableLengthVector< T > &  vec)
template<typename T >
void utl::vCos ( int  n,
T *  vecIn,
T *  vecOut 
)

interface to v*Cos

Referenced by utl::NDArrayBase< T, 4 >::ElementSin().

+ Here is the caller graph for this function:

template<typename T >
void utl::vDiv ( int  n,
T *  vecIn,
T *  vecIn2,
T *  vecOut 
)
inline

interface to v*Div

Slow implementation of vdDiv and vsDiv.

Definition at line 314 of file utlCoreMKL.h.

Referenced by utl::NDArrayBase< T, 4 >::GetElementExp().

+ Here is the caller graph for this function:

template<class VectorType >
void utl::VectorShrinkage ( VectorType &  vec,
const int  N,
const double  kappa 
)
inline

Definition at line 1656 of file utlCore.h.

Referenced by GetVectorShrinkage().

+ Here is the caller graph for this function:

template<class T1 , class T2 >
void utl::VectorToVector ( const T1 &  v1,
T2 &  v2,
const int  N 
)

copy a vector to another vector with different type.

Definition at line 1699 of file utlCore.h.

Referenced by main(), itk::Functor::SHCoefficientsPower< TInput, TOutput >::operator()(), PrintImage(), and itk::MeshFromFiberTractsFilter::Update().

+ Here is the caller graph for this function:

template<typename T >
void utl::vExp ( int  n,
T *  vecIn,
T *  vecOut 
)
inline

interface to v*Exp

Slow implementation of vdExp and vsExp.

Definition at line 293 of file utlCoreMKL.h.

Referenced by utl::NDArrayBase< T, 4 >::ElementCos().

+ Here is the caller graph for this function:

template<typename T >
void utl::vInv ( int  n,
T *  vecIn,
T *  vecOut 
)
inline

interface to v*Inv

Slow implementation of vdInv and vsInv.

Definition at line 286 of file utlCoreMKL.h.

Referenced by utl::NDArrayBase< T, 4 >::ElementSqrt().

+ Here is the caller graph for this function:

template<typename T >
void utl::vInvSqrt ( int  n,
T *  vecIn,
T *  vecOut 
)
inline

interface to v*InvSqrt

Definition at line 271 of file utlCoreMKL.h.

template<typename T >
void utl::vMul ( int  n,
T *  vecIn,
T *  vecIn2,
T *  vecOut 
)
inline

interface to v*Mul

Slow implementation of vdMul and vsMul.

Definition at line 307 of file utlCoreMKL.h.

Referenced by utl::NDArrayBase< T, 4 >::ElementExp(), and itk::L1RegularizedLeastSquaresFISTASolver< TPrecision >::EvaluateCostFunction().

+ Here is the caller graph for this function:

template<typename T >
void utl::vSin ( int  n,
T *  vecIn,
T *  vecOut 
)

interface to v*Sin

Referenced by utl::NDArrayBase< T, 4 >::ElementAbsolute().

+ Here is the caller graph for this function:

template<typename T >
void utl::vSqr ( int  n,
T *  vecIn,
T *  vecOut 
)
inline

interface to v*Sqr

Definition at line 259 of file utlCoreMKL.h.

Referenced by utl::NDArrayBase< T, 4 >::GetElementSquare().

+ Here is the caller graph for this function:

template<typename T >
void utl::vSqrt ( int  n,
T *  vecIn,
T *  vecOut 
)
inline

interface to v*Sqrt

Definition at line 265 of file utlCoreMKL.h.

Referenced by utl::NDArrayBase< T, 4 >::ElementSquare().

+ Here is the caller graph for this function:

template<typename T >
void utl::vSub ( int  n,
T *  vecIn,
T *  vecIn2,
T *  vecOut 
)
inline
template<typename WriterType >
void utl::WriteVTK ( vtkPolyData *  mesh,
const std::string &  filename 
)
inline

Definition at line 33 of file utlVTK.h.

void utl::WriteVtkPolyData ( vtkPolyData *  mesh,
const std::string &  filename 
)
inline

Write polydata to file

Definition at line 45 of file utlVTK.h.

References GetFileExtension().

Referenced by main().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

std::string utl::ZeroPad ( const unsigned int  number,
const unsigned int  paddedLength 
)
inline

http://www.cplusplus.com/reference/iostream/manipulators/setfill/ Convert a 'number' into a zero padded string. ZeroPad(5, 4); produces "0005"

Definition at line 586 of file utlCore.h.

Referenced by GetSequentialFileName().

+ Here is the caller graph for this function:

Variable Documentation

const std::string utl::DirectionsT1 = std::string( "/home/jcheng/.dmritool/Data/Tessellation/directions_t1.txt" )
static

gradients file for tess=1 with 6 directions

Definition at line 67 of file DMRITOOLConfigure.h.

Referenced by utl::GradientTable< T >::Initialize().

const std::string utl::DirectionsT2 = std::string( "/home/jcheng/.dmritool/Data/Tessellation/directions_t2.txt" )
static

gradients file for tess=2 with 21 directions

Definition at line 69 of file DMRITOOLConfigure.h.

Referenced by utl::GradientTable< T >::Initialize().

const std::string utl::DirectionsT3 = std::string( "/home/jcheng/.dmritool/Data/Tessellation/directions_t3.txt" )
static

gradients file for tess=3 with 81 directions

Definition at line 71 of file DMRITOOLConfigure.h.

Referenced by utl::GradientTable< T >::Initialize().

const std::string utl::DirectionsT4 = std::string( "/home/jcheng/.dmritool/Data/Tessellation/directions_t4.txt" )
static

gradients file for tess=4 with 321 directions

Definition at line 73 of file DMRITOOLConfigure.h.

Referenced by utl::GradientTable< T >::Initialize().

const std::string utl::DirectionsT5 = std::string( "/home/jcheng/.dmritool/Data/Tessellation/directions_t5.txt" )
static

gradients file for tess=5 with 1281 directions

Definition at line 75 of file DMRITOOLConfigure.h.

Referenced by utl::GradientTable< T >::Initialize().

const std::string utl::DirectionsT6 = std::string( "/home/jcheng/.dmritool/Data/Tessellation/directions_t6.txt" )
static

gradients file for tess=6 with 5121 directions

Definition at line 77 of file DMRITOOLConfigure.h.

Referenced by utl::GradientTable< T >::Initialize().

const std::string utl::DirectionsT7 = std::string( "/home/jcheng/.dmritool/Data/Tessellation/directions_t7.txt" )
static

gradients file for tess=7 with 20481 directions

Definition at line 79 of file DMRITOOLConfigure.h.

Referenced by utl::GradientTable< T >::Initialize().

const std::string utl::GradientsElec = std::string( "/home/jcheng/.dmritool/Data/ElectricRepulsion" )
static

path for the Elec gradients from CAMINO

Definition at line 82 of file DMRITOOLConfigure.h.

Referenced by ReadGradElectricRepulsion().

const std::string utl::LearnedSPFDictionary_SH8_RA4_K250 = std::string( "/home/jcheng/.dmritool/Data/PreComputedTables/SPFDictionary_sh8_ra4_eps0.0001_iter10000_online_iso2_k250_md5_fa10_mdiso10x321.txt" )
static
const std::string utl::LearnedSPFEnergy_SH8_RA4_K250 = std::string( "/home/jcheng/.dmritool/Data/PreComputedTables/SPFEnergy_sh8_ra4_eps0.0001_iter10000_online_iso2_k250_md5_fa10_mdiso10x321.txt" )
static
int utl::LogLevel =LOG_NORMAL
static

global Log verbosity level. Some class may have its own local LogLevel which override the global one.

Definition at line 203 of file utlCoreMacro.h.

Referenced by callFunction(), itk::FunctorFromStringOPImage(), ImageMath(), main(), itk::MultiVariableVectorOPImage(), and itk::UnaryVectorOPImage().

const std::string utl::SH3Itegralhdr = std::string( "/home/jcheng/.dmritool/Data/PreComputedTables/sh3integral.hdr" )
static

The table of integration of triple SH basis (real, thesis), genegrated by print_sh_integration

Definition at line 60 of file DMRITOOLConfigure.h.

Referenced by InitializeSHTripleIntegrationTable(), and itk::SphericalHarmonicsGenerator< PreciseType >::RealTripleIntegration().