LMCAS
Lamina Computer Algebra System
载入中...
搜索中...
未找到
symbolic_geometry_quadric.hpp
浏览该文件的文档.
1#pragma once
3
4namespace LMCAS {
5
6/** @brief 隐式曲面 F(x,y,z) = 0。 */
8 std::shared_ptr<SymbolicExpr> F; /**< 曲面方程左端,等于零。 */
9 std::vector<std::string> vars; /**< 坐标变量名 {x,y,z}。 */
10};
11
12/**
13 * @brief 对二次曲面进行分类。
14 * 对称特征分解将含混合项的二次型旋转到主轴,再完成平方,
15 * 依据中心常数和惯性判定实数轨迹。零空间线性分量采用逐主轴点积误差界,
16 * 使抛物方向的判定独立于其他轴的大系数;秩一非中心二次型归为抛物柱面。
17 * 非零特征值落入特征分解反向误差界时返回 `Inconclusive`,保持原秩;
18 * 空集、单点、直线和平面对按退化情形处理。
19 * @param surf 隐式曲面。
20 * @return 分类字符串:"sphere"、"ellipsoid"、"paraboloid"、"hyperboloid"、
21 * "cone"、"cylinder"、"unknown"。
22 */
23
25 const SurfaceSymbolic& surf,
27);
28
30 const SurfaceSymbolic& surf
31);
32
33}
#define LMCAS_API
const std::vector< Polynomial< BigInt > > const BigInt ComputationContext & context
VectorStringResult classify_quadric_checked(const SurfaceSymbolic &surf, ComputationContext &context)
Result< std::string > VectorStringResult
std::shared_ptr< SymbolicExpr > F
曲面方程左端,等于零。
std::vector< std::string > vars
坐标变量名 {x,y,z}。