Uni20
Asynchronous tensor and runtime library.
Loading...
Searching...
No Matches
Namespaces | Functions
matrix_exponential.hpp File Reference

CPU dense matrix exponential interface and dispatch adapter. More...

#include <uni20/config.hpp>
#include <uni20/common/trace.hpp>
#include <uni20/core/scalar_concepts.hpp>
#include <uni20/linalg/dispatch.hpp>
#include <uni20/linalg/operation_tags.hpp>
#include <uni20/mdspan/concepts.hpp>
#include <uni20/tensor/access.hpp>
#include <uni20/tensor/concepts.hpp>
#include <uni20/tensor/tensor.hpp>
#include <complex>
#include <concepts>
#include <type_traits>
Include dependency graph for backends/cpu/matrix_exponential.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  uni20
 
namespace  uni20::linalg
 
namespace  uni20::linalg::backends
 
namespace  uni20::linalg::backends::cpu
 

Functions

template<uni20::MutableRankedMdspecLike< 2 > OutputMdspan, uni20::RankedMdspecLike< 2 > InputMdspan, class TimeScalar >
requires uni20::HostWritableMdspec<OutputMdspan> && uni20::HostReadableMdspec<InputMdspan>
consteval auto uni20::linalg::kernel_accepts_types (CpuReferenceBackend const &, matrix_exponential_op const &, OutputMdspan &, InputMdspan &, TimeScalar const &)
 Report eligibility for host-accessible mdspec matrix exponentiation.
 
template<uni20::RealOrComplex Scalar>
uni20::DenseMatrix< uni20::complex< uni20::make_real_t< Scalar > > > uni20::linalg::backends::cpu::matrix_exponential (uni20::DenseMatrix< Scalar > const &matrix, uni20::complex< uni20::make_real_t< Scalar > > t)
 Compute a complex-coefficient matrix exponential, promoting real matrices to complex output.
 
template<uni20::RealOrComplex Scalar>
uni20::DenseMatrix< Scalar > uni20::linalg::backends::cpu::matrix_exponential (uni20::DenseMatrix< Scalar > const &matrix, uni20::make_real_t< Scalar > t)
 Compute the matrix exponential using the adaptive scaling-and-squaring algorithm.
 
template<uni20::MutableRankedMdspecLike< 2 > OutputMdspan, uni20::RankedMdspecLike< 2 > InputMdspan, class TimeScalar >
requires uni20::HostWritableMdspec<OutputMdspan> && uni20::HostReadableMdspec<InputMdspan>
KernelAttempt uni20::linalg::try_kernel (CpuReferenceBackend, matrix_exponential_op const &, OutputMdspan &output, InputMdspan &input, TimeScalar time)
 Resolve host access and compute a matrix exponential.
 

Detailed Description

CPU dense matrix exponential interface and dispatch adapter.