Shamrock 2025.10.0
Astrophysical Code
Loading...
Searching...
No Matches
Namespaces | Functions
matrix_exponential.hpp File Reference
#include "shambase/aliases_int.hpp"
#include "shambase/type_traits.hpp"
#include "matrix_op.hpp"
#include "shambackends/sycl.hpp"
+ 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

Author
Léodasce Sewanou (leoda.nosp@m.sce..nosp@m.sewan.nosp@m.ou@e.nosp@m.ns-ly.nosp@m.on.f.nosp@m.r)
Timothée David–Cléris (tim.s.nosp@m.hamr.nosp@m.ock@p.nosp@m.roto.nosp@m.n.me)

Definition in file matrix_exponential.hpp.