LMCAS
Lamina Computer Algebra System
载入中...
搜索中...
未找到
interval_endpoint.hpp
浏览该文件的文档.
1#pragma once
2
3#include "interval.hpp"
5#include <optional>
6#include <utility>
7
8namespace LMCAS::detail {
9
11 int infinity = 0;
12 Rational rational{};
14 Rational radicand{};
15 std::optional<LMCAS::detail::ExactRealAlgebraic> algebraic;
16
17 ComparableEndpoint(int infinity_value = 0,
18 Rational rational_value = {},
19 Rational coefficient_value = {},
20 Rational radicand_value = {})
21 : infinity(infinity_value),
22 rational(std::move(rational_value)),
23 radical_coefficient(std::move(coefficient_value)),
24 radicand(std::move(radicand_value)) {}
25};
26
32
34 const std::string& operation);
36 const Endpoint& endpoint, ComputationContext& context,
37 const std::string& operation);
41
42}
区间与区间并集 IntervalUnion,用于不等式解集表示。
多元 Hensel 提升(单变量步)
Result< ComparableEndpoint > comparable_endpoint(const Endpoint &endpoint, ComputationContext &context, const std::string &operation)
Result< Rational > exact_double_rational(double value, ComputationContext &context, const std::string &operation)
ComputationContext const std::string & operation
std::size_t std::size_t ComputationContext & context
Result< int > compare_comparable(const ComparableEndpoint &left, const ComparableEndpoint &right, ComputationContext &context)
const ExprPtr & right
const std::string const ExprPtr & value
ComparableEndpoint(int infinity_value=0, Rational rational_value={}, Rational coefficient_value={}, Rational radicand_value={})
ComparableEndpoint(int infinity_value=0, Rational rational_value={}, Rational coefficient_value={}, Rational radicand_value={})
std::optional< LMCAS::detail::ExactRealAlgebraic > algebraic