Extension: Matrix functions
#include "dg/matrix/matrix.h"
Loading...
Searching...
No Matches
matrixfunction.h File Reference
#include <cmath>
#include <boost/math/special_functions.hpp>
#include "dg/algorithm.h"
#include "functors.h"
#include "sqrt_cauchy.h"
#include "sqrt_ode.h"

Go to the source code of this file.

Namespaces

namespace  dg
 Classes for Krylov space approximations of a Matrix-Vector product.
 
namespace  dg::mat
 

Functions

template<class UnaryOp >
auto dg::mat::make_FuncEigen_Te1 (UnaryOp f)
 Create a functor that uses Eigenvalue decomposition to compute \( f(T)\vec e_1 = E f(\Lambda) E^T \vec e_1 \) for symmetric tridiagonal T.
 
template<class value_type >
auto dg::mat::make_SqrtCauchy_Te1 (int exp, std::array< value_type, 2 > EVs, unsigned stepsCauchy)
 Create a functor that computes \( \sqrt{T^{\pm 1}} \vec e_1\) using SqrtCauchyInt.
 
template<class value_type >
auto dg::mat::make_SqrtCauchyEigen_Te1 (int exp, std::array< value_type, 2 > EVs, unsigned stepsCauchy)
 Create a functor that computes \( \sqrt{T^{\pm 1}} \vec e_1\) using either Eigen or SqrtCauchy solve based on whichever is fastest for given size.
 
template<class value_type >
auto dg::mat::make_SqrtODE_Te1 (int exp, std::string tableau, value_type rtol, value_type atol, unsigned &number)
 Create a functor that computes \( \sqrt{T^{\pm 1}} \vec e_1\) using ODE solve.
 
auto dg::mat::make_Linear_Te1 (int exp)
 Create a functor that computes \( T^{\pm 1} \vec e_1\) directly.