Loading [MathJax]/extensions/tex2jax.js
 
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
PLMD::KernelFunctions Class Reference

#include <KernelFunctions.h>

Public Member Functions

 KernelFunctions (const KernelFunctions *in)
 
 KernelFunctions (const std::string &input)
 
 KernelFunctions (const std::vector< double > &at, const std::vector< double > &sig, const std::string &type, const std::string &mtype, const double &w)
 
double evaluate (const std::vector< Value * > &pos, std::vector< double > &derivatives, bool usederiv=true, bool doInt=false, double lowI_=-1, double uppI_=-1) const
 Evaluate the kernel function with constant intervals.
 
std::vector< double > getCenter () const
 Get the position of the center.
 
std::vector< double > getContinuousSupport () const
 get it in continuous form
 
double getCutoff (const double &width) const
 Get the cutoff for a kernel.
 
std::vector< unsigned > getSupport (const std::vector< double > &dx) const
 Get the support.
 
unsigned ndim () const
 Get the dimensionality of the kernel.
 
void normalize (const std::vector< Value * > &myvals)
 Normalise the function and scale the height accordingly.
 

Static Public Member Functions

static std::unique_ptr< KernelFunctionsread (IFile *ifile, const bool &cholesky, const std::vector< std::string > &valnames)
 Read a kernel function from a file.
 

Private Types

enum  {
  gaussian , truncatedgaussian , stretchedgaussian , uniform ,
  triangular
}
 What type of kernel are we using. More...
 
enum  { diagonal , multi , vonmises }
 Is the metric matrix diagonal. More...
 

Private Member Functions

Matrix< double > getMatrix () const
 Convert the width into matrix form.
 
void setData (const std::vector< double > &at, const std::vector< double > &sig, const std::string &type, const std::string &mtype, const double &w)
 Used to set all the data in the kernel during construction - avoids double coding as this has two constructors.
 

Private Attributes

std::vector< double > center
 The center of the kernel function.
 
enum PLMD::KernelFunctions:: { ... }  dtype
 Is the metric matrix diagonal.
 
double height
 The height of the kernel.
 
enum PLMD::KernelFunctions:: { ... }  ktype
 What type of kernel are we using.
 
double stretchA =1.0
 
double stretchB =0.0
 
std::vector< double > width
 The width of the kernel.
 

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
private

What type of kernel are we using.

Enumerator
gaussian 
truncatedgaussian 
stretchedgaussian 
uniform 
triangular 

◆ anonymous enum

anonymous enum
private

Is the metric matrix diagonal.

Enumerator
diagonal 
multi 
vonmises 

Constructor & Destructor Documentation

◆ KernelFunctions() [1/3]

PLMD::KernelFunctions::KernelFunctions ( const std::string & input)
explicit

◆ KernelFunctions() [2/3]

PLMD::KernelFunctions::KernelFunctions ( const std::vector< double > & at,
const std::vector< double > & sig,
const std::string & type,
const std::string & mtype,
const double & w )

◆ KernelFunctions() [3/3]

PLMD::KernelFunctions::KernelFunctions ( const KernelFunctions * in)
explicit

Member Function Documentation

◆ evaluate()

double PLMD::KernelFunctions::evaluate ( const std::vector< Value * > & pos,
std::vector< double > & derivatives,
bool usederiv = true,
bool doInt = false,
double lowI_ = -1,
double uppI_ = -1 ) const

Evaluate the kernel function with constant intervals.

◆ getCenter()

std::vector< double > PLMD::KernelFunctions::getCenter ( ) const
inline

Get the position of the center.

◆ getContinuousSupport()

std::vector< double > PLMD::KernelFunctions::getContinuousSupport ( ) const

get it in continuous form

◆ getCutoff()

double PLMD::KernelFunctions::getCutoff ( const double & width) const

Get the cutoff for a kernel.

◆ getMatrix()

Matrix< double > PLMD::KernelFunctions::getMatrix ( ) const
inlineprivate

Convert the width into matrix form.

◆ getSupport()

std::vector< unsigned > PLMD::KernelFunctions::getSupport ( const std::vector< double > & dx) const

Get the support.

◆ ndim()

unsigned PLMD::KernelFunctions::ndim ( ) const
inline

Get the dimensionality of the kernel.

◆ normalize()

void PLMD::KernelFunctions::normalize ( const std::vector< Value * > & myvals)

Normalise the function and scale the height accordingly.

◆ read()

std::unique_ptr< KernelFunctions > PLMD::KernelFunctions::read ( IFile * ifile,
const bool & cholesky,
const std::vector< std::string > & valnames )
static

Read a kernel function from a file.

◆ setData()

void PLMD::KernelFunctions::setData ( const std::vector< double > & at,
const std::vector< double > & sig,
const std::string & type,
const std::string & mtype,
const double & w )
private

Used to set all the data in the kernel during construction - avoids double coding as this has two constructors.

Member Data Documentation

◆ center

std::vector<double> PLMD::KernelFunctions::center
private

The center of the kernel function.

◆ []

enum { ... } PLMD::KernelFunctions::dtype

Is the metric matrix diagonal.

◆ height

double PLMD::KernelFunctions::height
private

The height of the kernel.

◆ []

enum { ... } PLMD::KernelFunctions::ktype

What type of kernel are we using.

◆ stretchA

double PLMD::KernelFunctions::stretchA =1.0
private

◆ stretchB

double PLMD::KernelFunctions::stretchB =0.0
private

◆ width

std::vector<double> PLMD::KernelFunctions::width
private

The width of the kernel.


The documentation for this class was generated from the following files: