LMCAS
Lamina Computer Algebra System
载入中...
搜索中...
未找到
matrix_decomposition_support.hpp
浏览该文件的文档.
2#pragma once
3
6
7#include <optional>
8
10
12 const std::shared_ptr<SymbolicExpr>& A, bool require_square,
13 ComputationContext& context, const std::string& operation);
15 const std::shared_ptr<SymbolicExpr>& expr,
16 const std::string& name, const std::string& operation);
17std::optional<Rational> exact_rational_expr(
18 const std::shared_ptr<const SymbolicNode>& node);
19std::optional<Rational> exact_rational_expr(
20 const std::shared_ptr<SymbolicExpr>& expr, ComputationContext& context);
21std::shared_ptr<SymbolicExpr> exact_number_expr(const Rational& value);
22std::optional<std::vector<std::vector<Rational>>> exact_rational_matrix(
23 const std::shared_ptr<const MatrixNode>& matrix, ComputationContext& context);
24std::shared_ptr<SymbolicExpr> identity_matrix_expr(std::size_t n);
25std::optional<std::vector<Rational>> exact_rectangular_diagonal_entries(
26 const std::shared_ptr<const MatrixNode>& matrix, ComputationContext& context);
27std::optional<std::vector<Rational>> exact_diagonal_entries(
28 const std::shared_ptr<const MatrixNode>& matrix, ComputationContext& context);
29std::shared_ptr<SymbolicExpr> rectangular_diagonal_expr(
30 std::size_t rows, std::size_t cols, const std::vector<Rational>& diagonal);
31
32}
矩阵高级分解算法:LU、QR、Cholesky、SVD、特征分解及矩阵指数。
std::shared_ptr< SymbolicExpr > identity_matrix_expr(std::size_t n)
std::shared_ptr< SymbolicExpr > exact_number_expr(const Rational &value)
std::optional< Rational > exact_rational_expr(const std::shared_ptr< const SymbolicNode > &node)
std::optional< std::vector< Rational > > exact_diagonal_entries(const std::shared_ptr< const MatrixNode > &matrix, ComputationContext &context)
std::shared_ptr< SymbolicExpr > rectangular_diagonal_expr(std::size_t rows, std::size_t cols, const std::vector< Rational > &diagonal)
Result< std::shared_ptr< const MatrixNode > > validate_decomposition_matrix(const std::shared_ptr< SymbolicExpr > &A, bool require_square, ComputationContext &context, const std::string &operation)
std::optional< std::vector< Rational > > exact_rectangular_diagonal_entries(const std::shared_ptr< const MatrixNode > &matrix, ComputationContext &context)
Result< void > validate_decomposition_output(const std::shared_ptr< SymbolicExpr > &expr, const std::string &name, const std::string &operation)
std::optional< std::vector< std::vector< Rational > > > exact_rational_matrix(const std::shared_ptr< const MatrixNode > &matrix, ComputationContext &context)
const SymbolicNodePtr & node(const ::LMCAS::SymbolicExpr &expression) noexcept
ComputationContext const std::string & operation
std::size_t std::size_t ComputationContext & context
const std::string const ExprPtr & value
__attribute__((visibility("default"))) Result< EqvProfile > eqv_profile_from_name(const std const std::string & name
内部 AST 定义。