LMCAS
Lamina Computer Algebra System
Toggle main menu visibility
载入中...
搜索中...
未找到
exact_sturm.hpp
浏览该文件的文档.
1
#pragma once
2
3
#include "
computation_context.hpp
"
4
#include "
polynomial.hpp
"
5
#include "
result.hpp
"
6
7
#include <string>
8
#include <utility>
9
#include <vector>
10
11
namespace
LMCAS::detail
{
12
13
using
RationalInterval
= std::pair<Rational, Rational>;
14
inline
Rational
strict_cauchy_root_bound
(
15
const
Polynomial<Rational>
& polynomial) {
16
Rational maximum(0);
17
const
Rational leading = polynomial.
lead_coeff
().abs();
18
for
(
int
degree = 0; degree < polynomial.
degree
(); ++degree) {
19
const
Rational ratio =
20
polynomial.
coeffs
[
static_cast<
std::size_t
>
(degree)].
abs
() / leading;
21
if
(maximum < ratio) maximum = ratio;
22
}
23
return
Rational(2) + maximum;
24
}
25
26
27
Result<std::vector<RationalInterval>
>
isolate_real_roots_exact
(
28
const
Polynomial<Rational>
& polynomial,
29
ComputationContext
&
context
,
30
const
std::string&
operation
);
31
32
Result<std::size_t>
count_real_roots_exact
(
33
const
Polynomial<Rational>
& polynomial,
34
const
Rational&
lower
,
35
const
Rational&
upper
,
36
ComputationContext
&
context
,
37
const
std::string&
operation
);
38
39
}
LMCAS::ComputationContext
定义
computation_context.hpp:99
LMCAS::Polynomial
一元多项式模板类
定义
polynomial.hpp:52
LMCAS::Polynomial::coeffs
std::vector< CoeffType > coeffs
系数数组,coeffs[i] 为 x^i 的系数
定义
polynomial.hpp:55
LMCAS::Polynomial::lead_coeff
CoeffType lead_coeff() const
获取首项系数
定义
polynomial.hpp:109
LMCAS::Polynomial::degree
int degree() const
获取多项式的次数
定义
polynomial.hpp:100
LMCAS::Result
定义
result.hpp:39
computation_context.hpp
LMCAS::detail
多元 Hensel 提升(单变量步)
定义
assumption_context.hpp:31
LMCAS::detail::isolate_real_roots_exact
Result< std::vector< RationalInterval > > isolate_real_roots_exact(const Polynomial< Rational > &polynomial, ComputationContext &context, const std::string &operation)
定义
exact_sturm.cpp:285
LMCAS::detail::count_real_roots_exact
Result< std::size_t > count_real_roots_exact(const Polynomial< Rational > &polynomial, const Rational &lower, const Rational &upper, ComputationContext &context, const std::string &operation)
定义
exact_sturm.cpp:242
LMCAS::detail::operation
ComputationContext const std::string & operation
定义
exact_algebraic.hpp:32
LMCAS::detail::RationalInterval
std::pair< Rational, Rational > RationalInterval
定义
exact_sturm.hpp:13
LMCAS::detail::strict_cauchy_root_bound
Rational strict_cauchy_root_bound(const Polynomial< Rational > &polynomial)
定义
exact_sturm.hpp:14
LMCAS::upper
__attribute__((visibility("default"))) ExprResult function(const std __attribute__((visibility("default"))) ExprResult finite_set(std ExprPtr upper
定义
expr.hpp:148
LMCAS::context
const std::vector< Polynomial< BigInt > > const BigInt ComputationContext & context
定义
exact_factorization.hpp:65
LMCAS::lower
const ExprPtr & lower
定义
expr.hpp:255
LMCAS::abs
ExprResult abs(const ExprPtr &expression, ComputationContext &context)
定义
expr_arithmetic.cpp:128
polynomial.hpp
一元多项式模板类 Polynomial<T>,支持四则运算,GCD,求导,求值.
result.hpp
src
internal
exact_sturm.hpp
生成于
, 为 LMCAS使用
1.18.0