LMCAS
Lamina Computer Algebra System
载入中...
搜索中...
未找到
integration_definite_support.hpp
浏览该文件的文档.
1#pragma once
2
5
7using Node = std::shared_ptr<const SymbolicNode>;
10inline constexpr const char* operation = "integrate.definite";
11
12struct Boundary {
13 int infinity = 0;
15};
16
19
20template<class T>
23 "interval certificate is unavailable", operation);
24}
25
26template<class T>
29 "ordinary improper integral does not exist",
30 "integrate.definite.convergence");
31}
32
33inline bool is_undecided(const CasError& error) {
34 return error.code == CasErrc::Inconclusive ||
36}
37
38std::optional<Rational> exact_number(const Node& node);
40int infinity_sign(const Node& node);
41Result<Boundary> boundary_checked(const SymbolicExpr& expression, ComputationContext& context);
42Result<int> compare_boundaries(const Boundary& a, const Boundary& b, ComputationContext& context);
44RationalResult rational_checked(const Node& node, const std::string& var, ComputationContext& context);
47 const Boundary& a, const Boundary& b, ComputationContext& context);
49 const Boundary& a, const Boundary& b, ComputationContext& context);
50
53Result<SymbolicExpr> segment_expression_checked(const SymbolicExpr& expression,
54 const std::string& var, const SymbolicExpr& lower, const SymbolicExpr& upper,
57 const std::string& var, const SymbolicExpr& lower, const SymbolicExpr& upper,
59Result<Tribool> certify_continuity_checked(const SymbolicExpr& expression,
60 const std::string& var, const SymbolicExpr& lower, const SymbolicExpr& upper,
62Result<SymbolicExpr> definite_segment_checked(const SymbolicExpr& original,
63 const SymbolicExpr& primitive, const std::string& var,
64 const SymbolicExpr& a, const SymbolicExpr& b, ComputationContext& context);
65}
一元多项式模板类
static Result failure(CasErrc code, std::string message, std::string operation={})
Result< SymbolicExpr > segment_expression_checked(const SymbolicExpr &expression, const std::string &var, const SymbolicExpr &lower, const SymbolicExpr &upper, ComputationContext &context)
Result< SymbolicExpr > definite_segment_checked(const SymbolicExpr &original, const SymbolicExpr &primitive, const std::string &var, const SymbolicExpr &a, const SymbolicExpr &b, ComputationContext &context)
Result< int > rational_divergence_checked(RationalFunction &rational, const Boundary &a, const Boundary &b, ComputationContext &context)
Result< std::optional< RationalFunction > > RationalResult
Result< Poly > product_checked(const Poly &a, const Poly &b, ComputationContext &context)
Result< Tribool > certify_continuity_checked(const SymbolicExpr &expression, const std::string &var, const SymbolicExpr &lower, const SymbolicExpr &upper, ComputationContext &context)
std::optional< Rational > exact_number(const Node &node)
Result< std::vector< SymbolicExpr > > definite_partition_checked(const SymbolicExpr &original, const std::string &var, const SymbolicExpr &lower, const SymbolicExpr &upper, ComputationContext &context)
Result< int > compare_boundaries(const Boundary &a, const Boundary &b, ComputationContext &context)
std::shared_ptr< const SymbolicNode > Node
Result< std::optional< int > > polynomial_sign_checked(const Poly &polynomial, const Boundary &a, const Boundary &b, ComputationContext &context)
Result< Boundary > boundary_checked(const SymbolicExpr &expression, ComputationContext &context)
RationalResult rational_checked(const Node &node, const std::string &var, ComputationContext &context)
Node absolute_argument(const SymbolicNode &node)
识别绝对值节点及公共接口的平方开根表示。
Result< std::vector< Algebraic > > roots_checked(const Poly &polynomial, ComputationContext &context)
Result< AssumptionContext > real_assumptions(const std::string &var, ComputationContext &context)
const SymbolicNodePtr & node(const ::LMCAS::SymbolicExpr &expression) noexcept
std::shared_ptr< const SymbolicNode > Node
std::size_t std::size_t ComputationContext & context
__attribute__((visibility("default"))) ExprResult function(const std __attribute__((visibility("default"))) ExprResult finite_set(std ExprPtr upper
const ExprPtr & lower
const MultiPoly & b
__attribute__((visibility("default"))) VectorCalculusExprResult curve_integral_scalar_checked(const std __attribute__((visibility("default"))) VectorCalculusExprResult curve_integral_scalar_checked(const std __attribute__((visibility("default"))) std const VectorField const std::string const std::shared_ptr< SymbolicExpr > & a
int infinity_sign(const SymbolicExpr &expression, ComputationContext &context)
ExprResult rational(const Rational &value)