MUQ  0.4.3
muq::Approximation Namespace Reference

Namespaces

 PythonBindings
 

Classes

class  ConcatenateKernel
 
class  ConstantKernel
 
struct  OptInfo
 
class  MeanFunctionBase
 
class  ZeroMean
 
class  LinearMean
 
class  LinearTransformMean
 
class  SumMean
 
class  GaussianProcess
 
class  KarhunenLoeveBase
 
class  KarhunenLoeveExpansion
 Used to compute and evaluate the Karhunen-Loeve decomposition of a zero mean Gaussian process. @sealso SeperableKarhunenLoeve. More...
 
class  KarhunenLoeveFactory
 
class  KernelBase
 Base class for all covariance kernels. More...
 
class  KernelImpl
 Base class in CRTP pattern for covariance kernels. More...
 
class  LinearTransformKernel
 
class  MaternKernel
 
class  ObservationInformation
 Class for defining linear observations of a Gaussian process. More...
 
class  DerivativeObservation
 Class that defines an observation involving linear combinations of GP derivatives. More...
 
class  ProductKernel
 
class  SeparableKarhunenLoeve
 Implements KL expansions that take advantage of separable structure in both the domain and covariance kernel. More...
 
class  SquaredExpKernel
 
class  StateSpaceGP
 
class  SumKernel
 
class  WhiteNoiseKernel
 
class  AdaptiveSmolyakPCE
 
class  PCEFactory
 Factory class for constructing a pseudo-spectral polynomial chaos approximation using a fixed quadrature rule. More...
 
class  PolynomialChaosExpansion
 A class for representing and using expansions of orthogonal multivariate polynomials. More...
 
class  SmolyakEstimator
 
class  BasisExpansion
 Class for defining expansions of basis functions defined by a MultiIndexSet and collection of IndexScalarBasis functions. More...
 
class  HermiteFunction
 A 1D hermite function based on Physicist Hermite Polynomials. More...
 
class  IndexedScalarBasis
 
class  Jacobi
 Family of Jacobi orthogonal polynomials. More...
 
class  Laguerre
 Family of Laguerre orthogonal polynomials. More...
 
class  Legendre
 Family of Legendre orthogonal polynomials. More...
 
class  Monomial
 Family of monomial polynomials, i.e. () \(1\), \(x\), \(x^2\), ect. ...) More...
 
class  OrthogonalPolynomial
 A 1D orthogonal polynomial. More...
 
class  PhysicistHermite
 
class  ProbabilistHermite
 
class  AdaptiveSmolyakQuadrature
 
class  ClenshawCurtisQuadrature
 1d Clenshaw Curtis rule More...
 
class  ExponentialGrowthQuadrature
 1d Quadrature rule with exponential growth More...
 
class  FullTensorQuadrature
 Multivariate quadrature rule defined by the tensor product of 1d rules. More...
 
class  GaussPattersonQuadrature
 1d Gauss Patterson nested quadrature rule More...
 
class  GaussQuadrature
 Class for computing Gauss Quadrature rules from an orthogonal polynomial family. More...
 
class  Quadrature
 Base class for multivariate quadrature rules. @detail An abstract class for computing nodes and weights of general quadrature rules. @seealso GaussQuadrature. More...
 
class  SmolyakQuadrature
 Computes static Smolyak quadrature rules for multivariate integration. More...
 
class  LocalRegression
 
class  Regression
 
class  MatrixBlock
 
class  ColumnSlice
 
class  VectorSlice
 

Functions

template<typename KernelType1 , typename KernelType2 >
ConcatenateKernel Concatenate (KernelType1 const &kernel1, KernelType2 const &kernel2)
 
double nlopt_obj (unsigned n, const double *x, double *nlopt_grad, void *opt_info)
 
template<typename MeanType , typename = typename std::enable_if<std::is_base_of<MeanFunctionBase, MeanType>::value, MeanType>::type>
LinearTransformMean< MeanType > operator* (Eigen::MatrixXd const &A, MeanType const &K)
 
template<typename MeanType1 , typename MeanType2 , typename = typename std::enable_if<std::is_base_of<MeanFunctionBase, MeanType1>::value, MeanType1>::type>
SumMean operator+ (MeanType1 const &mu1, MeanType2 const &mu2)
 
template<typename MeanType , typename KernelType >
GaussianProcess ConstructGP (MeanType const &mean, KernelType const &kernel)
 
template<typename KernelType >
LinearTransformKernel TransformKernel (Eigen::MatrixXd const &A, KernelType const &K)
 
template<typename KernelType , typename = typename std::enable_if<std::is_base_of<KernelBase, KernelType>::value>::type>
LinearTransformKernel operator* (Eigen::MatrixXd const &A, KernelType const &kernel)
 
template<typename KernelType1 , typename KernelType2 , typename = typename std::enable_if<std::is_base_of<KernelBase, KernelType1>::value && std::is_base_of<KernelBase, KernelType2>::value, KernelType1>::type>
ProductKernel operator* (KernelType1 const &k1, KernelType2 const &k2)
 
std::shared_ptr< ProductKerneloperator* (std::shared_ptr< KernelBase > k1, std::shared_ptr< KernelBase > k2)
 
template<typename KernelType1 , typename KernelType2 , typename = typename std::enable_if<std::is_base_of<KernelBase, KernelType1>::value && std::is_base_of<KernelBase, KernelType2>::value, KernelType1>::type>
SumKernel operator+ (KernelType1 const &k1, KernelType2 const &k2)
 
std::shared_ptr< SumKerneloperator+ (std::shared_ptr< KernelBase > k1, std::shared_ptr< KernelBase > k2)
 
template<typename MatrixType >
unsigned GetShape (MatrixType const &mat, unsigned dim)
 
template<typename ScalarType , int rows, int cols>
unsigned GetShape (Eigen::Matrix< ScalarType, rows, cols > const &mat, unsigned dim)
 
template<typename Derived >
unsigned GetShape (MatrixBlock< Derived > const &mat, unsigned dim)
 
template<typename Derived >
unsigned GetShape (Eigen::Ref< Derived > const &mat, unsigned dim)
 
template<typename VectorType1 , typename VectorType2 >
double CalcSquaredDistance (VectorType1 const &v1, VectorType2 const &v2, int startDim=0, int endDim=-1)
 Calculates the distance squared between two points defined by vectors v1 and v2. More...
 
template<typename VectorType1 , typename VectorType2 >
double CalcDistance (VectorType1 const &v1, VectorType2 const &v2)
 
template<typename MatType >
ColumnSlice< MatType > GetColumn (MatType &matrix, unsigned col)
 
template<typename MatType >
VectorSlice< MatType > GetSlice (MatType &matrix, std::vector< unsigned > const &inds)
 
template<typename MatType >
MatrixBlock< MatType > GetBlock (MatType &matrix, unsigned rowStart, unsigned colStart, unsigned numRows, unsigned numCols)
 

Function Documentation

◆ CalcDistance()

template<typename VectorType1 , typename VectorType2 >
double muq::Approximation::CalcDistance ( VectorType1 const &  v1,
VectorType2 const &  v2 
)

Calculates the distance between two points defined by vectors v1 and v2.

Definition at line 88 of file TemplatedArrayUtilities.h.

References CalcSquaredDistance(), and GetShape().

◆ CalcSquaredDistance()

template<typename VectorType1 , typename VectorType2 >
double muq::Approximation::CalcSquaredDistance ( VectorType1 const &  v1,
VectorType2 const &  v2,
int  startDim = 0,
int  endDim = -1 
)

Calculates the distance squared between two points defined by vectors v1 and v2.

Assumes the vectors are the same size and recursively compute the squared distance between them. The recursion is used for numerical accuracy.

Definition at line 56 of file TemplatedArrayUtilities.h.

References GetShape().

Referenced by CalcDistance().

◆ Concatenate()

template<typename KernelType1 , typename KernelType2 >
ConcatenateKernel muq::Approximation::Concatenate ( KernelType1 const &  kernel1,
KernelType2 const &  kernel2 
)

Definition at line 59 of file ConcatenateKernel.h.

◆ GetBlock()

template<typename MatType >
MatrixBlock<MatType> muq::Approximation::GetBlock ( MatType &  matrix,
unsigned  rowStart,
unsigned  colStart,
unsigned  numRows,
unsigned  numCols 
)

Definition at line 235 of file TemplatedArrayUtilities.h.

◆ GetColumn()

template<typename MatType >
ColumnSlice<MatType> muq::Approximation::GetColumn ( MatType &  matrix,
unsigned  col 
)

Grab a particular column of a matrix and return as an instance of the "ColumnSlice" class.

Definition at line 222 of file TemplatedArrayUtilities.h.

◆ GetShape() [1/4]

template<typename ScalarType , int rows, int cols>
unsigned muq::Approximation::GetShape ( Eigen::Matrix< ScalarType, rows, cols > const &  mat,
unsigned  dim 
)

Definition at line 30 of file TemplatedArrayUtilities.h.

◆ GetShape() [2/4]

template<typename Derived >
unsigned muq::Approximation::GetShape ( Eigen::Ref< Derived > const &  mat,
unsigned  dim 
)

Definition at line 45 of file TemplatedArrayUtilities.h.

◆ GetShape() [3/4]

template<typename Derived >
unsigned muq::Approximation::GetShape ( MatrixBlock< Derived > const &  mat,
unsigned  dim 
)

◆ GetShape() [4/4]

template<typename MatrixType >
unsigned muq::Approximation::GetShape ( MatrixType const &  mat,
unsigned  dim 
)

Templated function to get the shape of an array. In Eigen parlance, GetShape(mat,0) is the same as mat.rows() and GetShape(mat,1) is the same as mat.cols().

This function is overloaded to handle general types of arrays. Currently, Kokkos::View<double**> and Eigen matrices are supported.

Definition at line 24 of file TemplatedArrayUtilities.h.

Referenced by CalcDistance(), CalcSquaredDistance(), muq::Approximation::ColumnSlice< MatType >::dimension(), muq::Approximation::MatrixBlock< MatType >::MatrixBlock(), and muq::Approximation::ColumnSlice< MatType >::rows().

◆ GetSlice()

template<typename MatType >
VectorSlice<MatType> muq::Approximation::GetSlice ( MatType &  matrix,
std::vector< unsigned > const &  inds 
)

Definition at line 228 of file TemplatedArrayUtilities.h.

◆ nlopt_obj()

double muq::Approximation::nlopt_obj ( unsigned  n,
const double *  x,
double *  nlopt_grad,
void *  opt_info 
)

◆ operator*() [1/4]

template<typename KernelType , typename = typename std::enable_if<std::is_base_of<KernelBase, KernelType>::value>::type>
LinearTransformKernel muq::Approximation::operator* ( Eigen::MatrixXd const &  A,
KernelType const &  kernel 
)

Definition at line 77 of file LinearTransformKernel.h.

◆ operator*() [2/4]

template<typename MeanType , typename = typename std::enable_if<std::is_base_of<MeanFunctionBase, MeanType>::value, MeanType>::type>
LinearTransformMean<MeanType> muq::Approximation::operator* ( Eigen::MatrixXd const &  A,
MeanType const &  K 
)

Definition at line 224 of file GaussianProcess.h.

◆ operator*() [3/4]

template<typename KernelType1 , typename KernelType2 , typename = typename std::enable_if<std::is_base_of<KernelBase, KernelType1>::value && std::is_base_of<KernelBase, KernelType2>::value, KernelType1>::type>
ProductKernel muq::Approximation::operator* ( KernelType1 const &  k1,
KernelType2 const &  k2 
)

Definition at line 148 of file ProductKernel.h.

◆ operator*() [4/4]

std::shared_ptr< ProductKernel > muq::Approximation::operator* ( std::shared_ptr< KernelBase k1,
std::shared_ptr< KernelBase k2 
)

Definition at line 176 of file ProductKernel.cpp.

◆ operator+() [1/3]

template<typename KernelType1 , typename KernelType2 , typename = typename std::enable_if<std::is_base_of<KernelBase, KernelType1>::value && std::is_base_of<KernelBase, KernelType2>::value, KernelType1>::type>
SumKernel muq::Approximation::operator+ ( KernelType1 const &  k1,
KernelType2 const &  k2 
)

Definition at line 54 of file SumKernel.h.

◆ operator+() [2/3]

template<typename MeanType1 , typename MeanType2 , typename = typename std::enable_if<std::is_base_of<MeanFunctionBase, MeanType1>::value, MeanType1>::type>
SumMean muq::Approximation::operator+ ( MeanType1 const &  mu1,
MeanType2 const &  mu2 
)

◆ operator+() [3/3]

std::shared_ptr< SumKernel > muq::Approximation::operator+ ( std::shared_ptr< KernelBase k1,
std::shared_ptr< KernelBase k2 
)

Definition at line 80 of file SumKernel.cpp.

◆ TransformKernel()

template<typename KernelType >
LinearTransformKernel muq::Approximation::TransformKernel ( Eigen::MatrixXd const &  A,
KernelType const &  K 
)

Definition at line 70 of file LinearTransformKernel.h.