LMCAS
Lamina Computer Algebra System
载入中...
搜索中...
未找到
exact_root.hpp
浏览该文件的文档.
1#pragma once
2
5#include "numeric_value.hpp"
6#include "result.hpp"
7
8#include <variant>
9#include <vector>
10
11namespace LMCAS::detail {
12
16
25
26using RootIsolation = std::variant<RealIsolation, ComplexIsolation>;
27
32
34 Polynomial<Rational> polynomial,
35 std::size_t index,
37 const std::string& operation = "rootof.construct");
38
40 const Polynomial<Rational>& polynomial,
42 const std::string& operation = "rootof.isolate");
43
45 const ExactRootId& root,
47 const std::string& operation = "rootof.isolate");
48
50 const Polynomial<Rational>& polynomial,
51 ComplexIsolation& isolation,
54 const std::string& operation = "rootof.refine_complex");
55
57 const ExactRootId& root,
60
62 const ExactRootId& root,
65
66}
一元多项式模板类
多元 Hensel 提升(单变量步)
std::variant< RealIsolation, ComplexIsolation > RootIsolation
Result< RootIsolation > isolate_exact_root(const ExactRootId &root, ComputationContext &context, const std::string &operation)
Result< ExactRootId > make_exact_root_id(Polynomial< Rational > polynomial, std::size_t index, ComputationContext &context, const std::string &operation)
Result< std::vector< RootIsolation > > isolate_exact_roots(const Polynomial< Rational > &input, ComputationContext &context, const std::string &operation)
ComputationContext const std::string & operation
Result< ApproxComplex > evaluate_root_complex(const ExactRootId &root, const NumericEvaluationOptions &options, ComputationContext &context)
Result< ApproxReal > evaluate_root_real(const ExactRootId &root, const NumericEvaluationOptions &options, ComputationContext &context)
std::size_t std::size_t ComputationContext & context
Result< void > refine_complex_isolation(const Polynomial< Rational > &, ComplexIsolation &isolation, const NumericEvaluationOptions &options, ComputationContext &context, const std::string &operation)
ExprResult e()
const std::string ComputationContext const SolveOptions & options