LMCAS
Lamina Computer Algebra System
Toggle main menu visibility
载入中...
搜索中...
未找到
symbolic_geometry_surface.hpp
浏览该文件的文档.
1
#pragma once
2
#include "
symbolic_geometry_quadric.hpp
"
3
#include "
symbolic_geometry_line_plane.hpp
"
4
5
namespace
LMCAS
{
6
7
/**
8
* @brief 计算曲面在某点的单位法向量 ∇F/|∇F|。
9
*
10
* 数值梯度采用按最大分量缩放的二范数归一化,因此有限梯度的平方
11
* 即使超出 `double` 范围,只要单位方向可表示仍能返回结果。
12
* @param surf 隐式曲面
13
* @param point 曲面上的点(变量名到值的映射)
14
* @return 单位法向量分量
15
*/
16
17
LMCAS_API
VectorExprListResult
surface_normal_checked
(
18
const
SurfaceSymbolic
& surf,
19
const
std::vector<std::shared_ptr<SymbolicExpr>>&
point
,
20
ComputationContext
&
context
21
);
22
23
LMCAS_API
VectorExprListResult
surface_normal_checked
(
24
const
SurfaceSymbolic
& surf,
25
const
std::vector<std::shared_ptr<SymbolicExpr>>&
point
26
);
27
28
/**
29
* @brief 计算曲面在某点的切平面。
30
*
31
* 奇异点判断直接检查有限梯度分量,不构造可能溢出的平方和。有限数值
32
* 梯度与切点的点积存在中间溢出风险时,等比例缩放平面系数后计算常数。
33
* @param surf 隐式曲面
34
* @param point 切点
35
* @return 切平面(法向量与 ∇F(point) 同向)
36
*/
37
38
LMCAS_API
PlaneSymbolicResult
tangent_plane_checked
(
39
const
SurfaceSymbolic
& surf,
40
const
std::vector<std::shared_ptr<SymbolicExpr>>&
point
,
41
ComputationContext
&
context
42
);
43
44
LMCAS_API
PlaneSymbolicResult
tangent_plane_checked
(
45
const
SurfaceSymbolic
& surf,
46
const
std::vector<std::shared_ptr<SymbolicExpr>>&
point
47
);
48
49
}
LMCAS::ComputationContext
定义
computation_context.hpp:99
LMCAS_API
#define LMCAS_API
定义
lmcas_export.hpp:13
LMCAS
定义
assumption.hpp:11
LMCAS::point
const std::string const LimitExprPtr & point
定义
limit_result.hpp:29
LMCAS::context
const std::vector< Polynomial< BigInt > > const BigInt ComputationContext & context
定义
exact_factorization.hpp:65
LMCAS::PlaneSymbolicResult
Result< PlaneSymbolic > PlaneSymbolicResult
定义
symbolic_geometry_line_plane.hpp:20
LMCAS::surface_normal_checked
VectorExprListResult surface_normal_checked(const SurfaceSymbolic &surf, const std::vector< std::shared_ptr< SymbolicExpr > > &point, ComputationContext &context)
定义
symbolic_geometry_surface.cpp:147
LMCAS::tangent_plane_checked
PlaneSymbolicResult tangent_plane_checked(const SurfaceSymbolic &surf, const std::vector< std::shared_ptr< SymbolicExpr > > &point, ComputationContext &context)
定义
symbolic_geometry_surface.cpp:189
LMCAS::VectorExprListResult
Result< std::vector< std::shared_ptr< SymbolicExpr > > > VectorExprListResult
定义
symbolic_geometry_vector.hpp:11
LMCAS::SurfaceSymbolic
隐式曲面 F(x,y,z) = 0。
定义
symbolic_geometry_quadric.hpp:7
symbolic_geometry_line_plane.hpp
symbolic_geometry_quadric.hpp
include
symbolic_geometry_surface.hpp
生成于
, 为 LMCAS使用
1.18.0