LMCAS
Lamina Computer Algebra System
载入中...
搜索中...
未找到
quantity.hpp
浏览该文件的文档.
1#pragma once
2
3#include <memory>
4#include <string>
5
7#include "symbolic.hpp"
8#include "unit.hpp"
9
10namespace LMCAS {
11
13
18
19/** Attaches a declared unit to a scalar symbolic expression. */
21 const std::shared_ptr<SymbolicExpr>& value,
22 const std::string& unit,
23 ComputationContext& context);
24
25/** Attaches a resolved unit definition. */
27 const std::shared_ptr<SymbolicExpr>& value,
28 std::string display_unit,
29 UnitDefinition definition,
30 ComputationContext& context);
31
32/** Converts a quantity to a declared unit of the same dimension. */
34 const std::shared_ptr<SymbolicExpr>& quantity,
35 const std::string& target_unit,
36 ComputationContext& context);
37
38/** Converts to a resolved unit definition. */
40 const std::shared_ptr<SymbolicExpr>& quantity,
41 std::string display_unit,
42 UnitDefinition definition,
43 ComputationContext& context);
44
45/** Removes a quantity annotation using the requested scale. */
47 const std::shared_ptr<SymbolicExpr>& quantity,
48 UnitStripMode mode,
49 ComputationContext& context);
50
51LMCAS_API Result<DimensionSignature> dimension_of(const SymbolicExpr& expression);
53 const std::shared_ptr<SymbolicExpr>& lhs,
54 const std::shared_ptr<SymbolicExpr>& rhs,
55 ComputationContext& context);
57 const std::shared_ptr<SymbolicExpr>& lhs,
58 const std::shared_ptr<SymbolicExpr>& rhs,
59 ComputationContext& context);
61 const std::shared_ptr<SymbolicExpr>& lhs,
62 const std::shared_ptr<SymbolicExpr>& rhs,
63 ComputationContext& context);
65 const std::shared_ptr<SymbolicExpr>& lhs,
66 const std::shared_ptr<SymbolicExpr>& rhs,
67 ComputationContext& context);
69 const std::shared_ptr<SymbolicExpr>& base,
70 const std::shared_ptr<SymbolicExpr>& exponent,
71 ComputationContext& context);
72
73} // namespace LMCAS
#define LMCAS_API
std::string display_unit
Result< DimensionSignature > dimension_of(const SymbolicExpr &expression)
Result< std::shared_ptr< SymbolicExpr > > QuantityResult
const std::vector< Polynomial< BigInt > > const BigInt ComputationContext & context
QuantityResult attach_unit(const std::shared_ptr< SymbolicExpr > &value, const std::string &unit, ComputationContext &context)
QuantityResult quantity_divide(const std::shared_ptr< SymbolicExpr > &lhs, const std::shared_ptr< SymbolicExpr > &rhs, ComputationContext &context)
std::string UnitDefinition definition
const ExprPtr & exponent
QuantityResult quantity_power(const std::shared_ptr< SymbolicExpr > &base, const std::shared_ptr< SymbolicExpr > &exponent, ComputationContext &context)
const std::string & unit
const std::string const ExprPtr & value
const ExprPtr & rhs
QuantityResult quantity_multiply(const std::shared_ptr< SymbolicExpr > &lhs, const std::shared_ptr< SymbolicExpr > &rhs, ComputationContext &context)
QuantityResult quantity_subtract(const std::shared_ptr< SymbolicExpr > &lhs, const std::shared_ptr< SymbolicExpr > &rhs, ComputationContext &context)
QuantityResult strip_unit(const std::shared_ptr< SymbolicExpr > &expression, UnitStripMode mode, ComputationContext &context)
QuantityResult convert_unit(const std::shared_ptr< SymbolicExpr > &expression, const std::string &target_unit, ComputationContext &context)
QuantityResult quantity_add(const std::shared_ptr< SymbolicExpr > &lhs, const std::shared_ptr< SymbolicExpr > &rhs, ComputationContext &context)
符号表达式主类 SymbolicExpr 及其工厂方法,运算接口.