Typedefs | Functions | Variables
Marmot::NumericalAlgorithms::Differentiation::Complex Namespace Reference

Typedefs

using scalar_to_scalar_function_type = std::function< complexDouble(const complexDouble x) >
 
using vector_to_vector_function_type = std::function< Eigen::VectorXcd(const Eigen::VectorXcd &X) >
 

Functions

double forwardDifference (const scalar_to_scalar_function_type &f, const double x)
 
std::tuple< Eigen::VectorXd, Eigen::MatrixXd > forwardDifference (const vector_to_vector_function_type &F, const Eigen::VectorXd &X)
 
Eigen::MatrixXd centralDifference (const vector_to_vector_function_type &F, const Eigen::VectorXd &X)
 
Eigen::MatrixXd fourthOrderAccurateDerivative (const vector_to_vector_function_type &F, const Eigen::VectorXd &X)
 
std::tuple< VectorXd, MatrixXd > forwardDifference (const vector_to_vector_function_type &F, const VectorXd &X)
 
MatrixXd centralDifference (const vector_to_vector_function_type &F, const VectorXd &X)
 
MatrixXd fourthOrderAccurateDerivative (const vector_to_vector_function_type &F, const VectorXd &X)
 

Variables

static const std::complex< double > imaginaryUnit = { 0, 1 }
 
static const std::complex< double > complexUnit = { 1, 1 }
 
static const std::complex< double > i_ = Marmot::Constants::sqrt2 / 2. * complexUnit
 

Typedef Documentation

◆ scalar_to_scalar_function_type

◆ vector_to_vector_function_type

using Marmot::NumericalAlgorithms::Differentiation::Complex::vector_to_vector_function_type = typedef std::function< Eigen::VectorXcd( const Eigen::VectorXcd& X ) >

Function Documentation

◆ forwardDifference() [1/3]

double Marmot::NumericalAlgorithms::Differentiation::Complex::forwardDifference ( const scalar_to_scalar_function_type f,
const double  x 
)

◆ forwardDifference() [2/3]

std::tuple< Eigen::VectorXd, Eigen::MatrixXd > Marmot::NumericalAlgorithms::Differentiation::Complex::forwardDifference ( const vector_to_vector_function_type F,
const Eigen::VectorXd &  X 
)

◆ centralDifference() [1/2]

Eigen::MatrixXd Marmot::NumericalAlgorithms::Differentiation::Complex::centralDifference ( const vector_to_vector_function_type F,
const Eigen::VectorXd &  X 
)

◆ fourthOrderAccurateDerivative() [1/2]

Eigen::MatrixXd Marmot::NumericalAlgorithms::Differentiation::Complex::fourthOrderAccurateDerivative ( const vector_to_vector_function_type F,
const Eigen::VectorXd &  X 
)

◆ forwardDifference() [3/3]

std::tuple< VectorXd, MatrixXd > Marmot::NumericalAlgorithms::Differentiation::Complex::forwardDifference ( const vector_to_vector_function_type F,
const VectorXd &  X 
)

◆ centralDifference() [2/2]

MatrixXd Marmot::NumericalAlgorithms::Differentiation::Complex::centralDifference ( const vector_to_vector_function_type F,
const VectorXd &  X 
)

◆ fourthOrderAccurateDerivative() [2/2]

MatrixXd Marmot::NumericalAlgorithms::Differentiation::Complex::fourthOrderAccurateDerivative ( const vector_to_vector_function_type F,
const VectorXd &  X 
)

Variable Documentation

◆ imaginaryUnit

const std::complex< double > Marmot::NumericalAlgorithms::Differentiation::Complex::imaginaryUnit = { 0, 1 }
static

◆ complexUnit

const std::complex< double > Marmot::NumericalAlgorithms::Differentiation::Complex::complexUnit = { 1, 1 }
static

◆ i_

const std::complex< double > Marmot::NumericalAlgorithms::Differentiation::Complex::i_ = Marmot::Constants::sqrt2 / 2. * complexUnit
static