Shamrock 2025.10.0
Astrophysical Code
Loading...
Searching...
No Matches
matrix_exponential.hpp File Reference
Include dependency graph for matrix_exponential.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  shammath
 namespace for math utility

Functions

constexpr auto shammath::sequence_mk ()
 precomputed optimal Taylor's polynomial orders
constexpr auto shammath::sequence_qk ()
 precomputed optimal Paterson-Stockmeyer intergers (it's used to compute the matrix power)
constexpr auto shammath::sequence_rk ()
 precomputed optimal Paterson-Stockmeyer polynomial degrees
constexpr auto shammath::sequence_theta_mk ()
 precomputed optimal sequence based on backward error analysis
constexpr auto shammath::sequence_nheta_mk ()
 precomputed optimal sequence based on backward error analysis
constexpr auto shammath::define_bexp_coef ()
 1/(i!)
template<class T, class Extents1, class Layout1, class Accessor1>
void shammath::order_scale (const i32 K, std::array< i32, 9 > &seq_mk, std::array< f64, 9 > &seq_theta_mk, const std::mdspan< T, Extents1, Layout1, Accessor1 > &A, const size_t size_A, i32 &k_star, i32 &m_star, i32 &s_star)
 this function compute the Taylor's polynomial order (m_star) the optimal number of matrix product during the taylor evaluation step(k_star) and the optimal scaling factor (s_star)
template<typename T, class U, class Extents1, class Extents2, class Extents3, class Extents4, class Extents5, class Layout1, class Layout2, class Layout3, class Layout4, class Layout5, class Accessor1, class Accessor2, class Accessor3, class Accessor4, class Accessor5>
void shammath::taylor_eval (const i32 r, const i32 q, std::array< f64, 30 > &bi_seq, const size_t size, const std::mdspan< T, Extents1, Layout1, Accessor1 > &A, const std::mdspan< T, Extents2, Layout2, Accessor2 > &F, const std::mdspan< T, Extents3, Layout3, Accessor3 > &B, const std::mdspan< T, Extents4, Layout4, Accessor4 > &I, const std::mdspan< T, Extents5, Layout5, Accessor5 > &Id)
 This function compute the Taylor polynomial up to order m_star.
template<typename T, class U, class Extents1, class Extents2, class Extents3, class Extents4, class Extents5, class Layout1, class Layout2, class Layout3, class Layout4, class Layout5, class Accessor1, class Accessor2, class Accessor3, class Accessor4, class Accessor5>
void shammath::mat_exp (const i32 K, const std::mdspan< T, Extents1, Layout1, Accessor1 > &A, const std::mdspan< T, Extents2, Layout2, Accessor2 > &F, const std::mdspan< T, Extents3, Layout3, Accessor3 > &B, const std::mdspan< T, Extents4, Layout4, Accessor4 > &I, const std::mdspan< T, Extents5, Layout5, Accessor5 > &Id, const size_t size_A)
 matrix scaling-squaring Talylor-based matrix exponential

Detailed Description