LMCAS
Lamina Computer Algebra System
载入中...
搜索中...
未找到
symbolic_geometry_vector.hpp
浏览该文件的文档.
1#pragma once
3#include "result.hpp"
4#include "symbolic.hpp"
5#include <memory>
6#include <string>
7#include <vector>
8
9namespace LMCAS {
10
14
15/**
16 * @brief 计算两个符号向量的点积。
17 * @param a 向量 a 的各分量。
18 * @param b 向量 b 的各分量。
19 * @return 点积的符号表达式。
20 */
22 const std::vector<std::shared_ptr<SymbolicExpr>>& a,
23 const std::vector<std::shared_ptr<SymbolicExpr>>& b,
25);
26
28 const std::vector<std::shared_ptr<SymbolicExpr>>& a,
29 const std::vector<std::shared_ptr<SymbolicExpr>>& b
30);
31
32LMCAS_API std::shared_ptr<SymbolicExpr> vector_dot(
33 const std::vector<std::shared_ptr<SymbolicExpr>>& a,
34 const std::vector<std::shared_ptr<SymbolicExpr>>& b
35);
36
37/**
38 * @brief 计算两个三维符号向量的叉积。
39 * @param a 向量 a 的各分量。
40 * @param b 向量 b 的各分量。
41 * @return 叉积向量的各分量。
42 */
44 const std::vector<std::shared_ptr<SymbolicExpr>>& a,
45 const std::vector<std::shared_ptr<SymbolicExpr>>& b,
47);
48
50 const std::vector<std::shared_ptr<SymbolicExpr>>& a,
51 const std::vector<std::shared_ptr<SymbolicExpr>>& b
52);
53
54LMCAS_API std::vector<std::shared_ptr<SymbolicExpr>> vector_cross(
55 const std::vector<std::shared_ptr<SymbolicExpr>>& a,
56 const std::vector<std::shared_ptr<SymbolicExpr>>& b
57);
58
59/**
60 * @brief 分别按向量尺度归一化,计算两个有限数值向量的夹角(弧度)。
61 * 缩放范数与补偿点积控制中间溢出及相消误差。
62 * 零向量返回 `CasErrc::DomainError`;非数值或非有限分量返回数值错误。
63 * @param a 向量 a 的各分量。
64 * @param b 向量 b 的各分量。
65 * @return `[0,pi]` 内的有限夹角。
66 */
68 const std::vector<std::shared_ptr<SymbolicExpr>>& a,
69 const std::vector<std::shared_ptr<SymbolicExpr>>& b,
71);
72
74 const std::vector<std::shared_ptr<SymbolicExpr>>& a,
75 const std::vector<std::shared_ptr<SymbolicExpr>>& b
76);
77
78}
#define LMCAS_API
VectorExprListResult vector_cross_checked(const std::vector< std::shared_ptr< SymbolicExpr > > &a, const std::vector< std::shared_ptr< SymbolicExpr > > &b, ComputationContext &context)
std::shared_ptr< SymbolicExpr > vector_dot(const std::vector< std::shared_ptr< SymbolicExpr > > &a, const std::vector< std::shared_ptr< SymbolicExpr > > &b)
const std::vector< Polynomial< BigInt > > const BigInt ComputationContext & context
std::vector< std::shared_ptr< SymbolicExpr > > vector_cross(const std::vector< std::shared_ptr< SymbolicExpr > > &a, const std::vector< std::shared_ptr< SymbolicExpr > > &b)
Result< double > VectorAngleResult
const MultiPoly & b
Result< std::shared_ptr< SymbolicExpr > > ExpressionResult
Result of an operation that produces a symbolic expression.
__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
Result< std::string > VectorStringResult
VectorAngleResult vector_angle_checked(const std::vector< std::shared_ptr< SymbolicExpr > > &a, const std::vector< std::shared_ptr< SymbolicExpr > > &b, ComputationContext &context)
Result< std::vector< std::shared_ptr< SymbolicExpr > > > VectorExprListResult
ExpressionResult vector_dot_checked(const std::vector< std::shared_ptr< SymbolicExpr > > &a, const std::vector< std::shared_ptr< SymbolicExpr > > &b, ComputationContext &context)
符号表达式主类 SymbolicExpr 及其工厂方法,运算接口.