跳到内容

拉弗南德斯/盖特

文件夹和文件

姓名姓名
上次提交消息
上次提交日期

最新提交

 
 
 
 
 
 
 
 
 
 
 
 
 

存储库文件导航

GATL:几何代数模板库

GATL是一个C++库,用于欧几里德、同质/投影、Mikowski/时空、共形和任意几何代数.

几何代数是一个包含许多数学概念的强大数学系统(例如,复数,四元数代数,格拉斯曼-凯利代数、和普吕克坐标)在相同的框架下。几何代数主要基于称为克利福德代数,但强烈强调几何解释。在几何代数中,子空间被视为用于计算的基元。因此,它是物理、化学、工程和计算机科学中建模和解决几何问题的合适数学工具。

GATL使用模板元编程来实现惰性评估战略。这样,GATL就能够在编译时对程序执行一些优化。换言之,GATL设计用于在用户描述的过程中使用几何代数操作自动执行低级代数操作,从而实现更高效的程序。

请引用本书的这一章如果您在研究中使用GATL:

@收集{费尔南德斯-SEMA-13-2021,title={探索有效几何代数计算的惰性求值和编译时简化},author={Fernandes,Leandro A.F.},章节={6},页面={111-131},booktitle={几何演算的系统、模式和数据工程},editor={Xambó-Descamps,S.},体积={13},系列={SEMA SIMAI Springer系列},publisher={Springer,Cham},doi={https://doi.org/10.1007/978-3-030-74486-16},isbn={978-3-030-74485-4},e-isbn={978-3-030-74486-1},url={https://github.com/laffernandes/gatl},年份={2021},}

如果你想为这个项目做出贡献,请告诉我。在这里你会找到我的联系方式。

内容:

  1. 要求
  2. 如何“安装”GATL
  3. 编译示例
  4. 编译和运行单元测试
  5. 文档
  6. 相关项目
  7. 许可证

1.要求

在尝试使用GATL之前,请确保您具有以下工具。

所需工具:

  • 你最喜欢的C++17编译器。

可选工具:

  • C制动器自动化安装以及构建和运行示例和单元测试。

GATL除了C++标准库.

2.如何“安装”GATL

GATL是在标题中定义的纯模板库。因此,如果您想使用GATL,您可以立即使用头文件。没有要链接的二进制库,也没有配置的头文件。

使用git克隆命令下载项目,其中<网关目录>必须替换为要放置GATL源代码的目录,或将其删除<网关目录>从命令行将项目下载到./gatl公司目录:

git克隆https://github.com/laffernandes/gatl.git<网关目录>

目录<gatl-dir>/cpp/include必须在程序的包含路径中,,您必须使用-I<gatl-dir>/cpp/include编译程序时的选项标志。或者,您可以使用CMake将GATL的头文件复制到系统中的公共包含目录(例如,/usr/local/include(usr/local/include),在Linux中)以避免使用-I<gatl-dir>/cpp/include选项标志。使用CMake安装GATL的基本步骤如下:

光盘 <网关目录>/中央处理器mkdir构建光盘建造cmake。。

如果您正在使用CMake处理程序的构建,则强烈建议使用上述命令安装GATL。安装后,CMake将使用以下命令查找GATL查找包(GATL)(请参见CMake文档详细信息)。此外,您将能够使用网关_INCLUDE_DIRS中的变量C制作列表.txt定义项目或目标的include目录时。

3.编写示例

配置和构建GATL示例的基本步骤如下所示:

光盘 <网关目录>/cpp/工具/示例mkdir构建光盘建造cmake。。cmake—构建.--config发布

回想一下<网关目录>是放置GATL源代码的目录。

最后一个命令生成的可执行文件以开头gatl示例_.

4.编译和运行单元测试

单元测试正在建设中。请不要试图构建它们。

5.文件

在这里,您可以找到可供用户使用的名称空间、宏、类、函数、过程和运算符的简要描述。详细文档尚未准备好。

根据GATL公约,在以下定义中,左侧(lhs)相对湿度是二进制过程的左侧参数和右侧参数的非正式缩写。此外地铁参数必须是metric_space<…>类,而所有其他参数可以是clifford_expression<…>类或其他数字类型(例如,双重的,浮动,整数,或第三方类的实例)。GATL使用标量功能。

内容:

命名空间

命名空间是声明性区域,为类型、函数、变量、,等。GATL定义了以下命名空间。

命名空间 描述
加仑 包含所有GATL实现的主命名空间
盖伊,ga2e,砷化镓,ga4e,ga5e R的欧几里德几何代数的名称空间n个
伽马射线,乙炔,砷化镓,4加仑小时 R的齐次/射影几何代数的名称空间d日(n个=d日+ 1)
ga1p公司,ga2p,砷化镓,四氧化二砷 R的基于平面的几何代数的名称空间d日(n个=d日+ 1)
100万加仑,200万加仑,300万加仑 Mikowski的命名空间/R的时空代数d日(n个=d日+ 2)
ga1c公司,ga2c公司,ga3c公司 R的共形几何代数的名称空间d日(n个=d日+ 2)

特定几何代数的名称空间(例如,砷化镓,砷化镓,300万加仑、和ga3c公司)已使用加仑命名空间。此外,通过设置地铁根据各自的空格进行论证。

上述所有名称空间都声明了一个嵌套的细节命名空间。这就是神奇发生的命名空间。别碰它!

根据GATL约定,程序中包含的头文件的根目录是关卡文件夹。此外,每个名称空间的头文件是其名称,后跟.hpp(马力)扩展。把这两个公约放在一起,我们gatl/ga.hpp,gatl/ga3e.hpp,gatl/ga3h.hpp,gatl/ga3m.hpp,gatl/ga3c.hpp等等。

或者,在程序中包含GATL标头之前设置以下宏,以更改库的某些约定。

等级 描述
GA默认加载点类型 定义库默认的浮点类型(默认为标准::double_t)
GA_DEFAULT_INTEGRAL_TYPE公司 定义库默认的有符号整数类型(默认为标准::int64_t)
GA_MAX_基底向量_索引 定义执行代数操作和设置位集大小时假定的最大基向量数(默认值为63)

类和数据类型

定义以下基本数据类型是为了给常规类型赋值,如双重的,整数等等。

基本类型 描述
默认浮动点 库默认的浮点类型(请参见GA默认加载点类型)
默认_集成_t 库假定为默认的有符号整数类型(请参见GA_DEFAULT_INTEGRAL_TYPE公司)
位集_t 库使用的位集类型(使用GA_MAX_基底向量_索引选择能够满足实现要求的最小无符号整数类型)
等级_t 用于表示等级值的带符号整数类型(与默认_集成_t)
索引(t) 用于表示基向量索引的无符号整数类型(设置为标准::uint64_t)
ndims_t标准 用于表示向量空间维数的无符号整数类型(与索引(t))
associative_container_t<值类型> The associative container class used by theclifford_expression<…>类来存储多向量的组件(设置为标准::映射<bitset_t,ValueType>)
sequence_container_t<条目类型,大小> The sequence container class used by theclifford_expression<…>类来存储多向量的组件(设置为标准::数组<EntryType,Size>)

以下类别对应于GATL最重要的结构。

等级 描述
clifford_expression<系数类型,表达式> 克利福德的表情
grade_result<值> 一个类,用于对等级功能
lazy_context<输入类型…> 为Clifford表达式的惰性计算定义惰性参数的类
metric_space<度量空间类型> 基本度量空间类
异常类 描述
错误检查副本异常 当检查的副本失败时,将引发此类型的异常
未执行错误 报告与未实现功能相关的错误的例外

为了简单起见,GATL提供了以下一组类别名和辅助元函数来帮助定义类型。然而,强烈建议使用汽车占位符类型说明符(请参阅C++规范详细信息)。

类别名 描述
常数<系数类型,积分值> 系数在编译时已知的常量标量Clifford表达式的别名
scalar_clifford_expression<系数类型,系数> 标量Clifford表达式的别名
实用类型定义的助手 描述
full_multivector_t<系数类型,向量空间维度[,FirstGrade[,LastGrade]]> 用于定义Clifford表达式的帮助器,该表达式表示在运行时定义的系数n个-维向量空间
full_derived_multivector_t<系数类型,表达式> 用于定义Clifford表达式的帮助器,该表达式表示在给定Cliffort表达式的所有组件中具有运行时定义的系数的通用多重向量
full_kvector_t<系数类型,矢量空间尺寸,等级> 用于定义表示k个-带运行时定义系数的向量n个-维向量空间
full_vector_t<系数类型,向量空间维度> 用于定义Clifford表达式的帮助器,该表达式表示在运行时定义系数的向量n个-维向量空间
scaled_constant_basis_blade_t<系数类型,指数…> 用于定义Clifford表达式的帮助器,该表达式表示缩放编译时定义的基片
scaled_constant_basis_vector_t<系数类型,索引> 用于定义表示缩放编译时定义的基向量的Clifford表达式的帮助器
scaled_basis_blade_t<系数类型,第一可能等级[,最后可能等级]> 用于定义Clifford表达式的帮助程序,该表达式表示缩放的运行时定义的基本刀片
scaled_basis_vector_t<系数类型> 用于定义表示缩放的运行时定义的基向量的Clifford表达式的帮助器
scaled_scalar_t<系数类型> 用于定义Clifford表达式的帮助程序,该表达式表示编译时系数未知的标量值
scaled_pseudoscalar_t<系数类型,N> 用于定义表示缩放编译时定义的伪标量的Clifford表达式的帮助器
unit_constant_basis_blade_t<索引…> 用于定义表示单元编译时定义的基片的Clifford表达式的帮助程序
unit_constant_basis_vector_t<索引> 用于定义表示单元编译时定义的基向量的Clifford表达式的帮助器
unit_basis_blade_t<第一个可能等级[,最后一个可能等级]> 用于定义表示单元运行时定义的基刀片的Clifford表达式的帮助程序
单位基准向量 用于定义表示单位运行时定义的基向量的Clifford表达式的帮助程序
单元_假警报_t<N> 用于定义表示单元编译时定义的伪标量的Clifford表达式的帮助器

实用程序常量和函数

在这里,您可以找到一些有用的元常量和函数来帮助您实现程序。

常量 描述
c<积分值[,系数类型]> 定义一个常数标量Clifford表达式,其系数在编译时已知
功能 描述
make_lazy_context(输入…) 创建一个lazy_context<输入类型…>对象
make_lazy_context_tuple(输入…) 创建一个标准::元组对象由K+1公司条目,其中第一个是lazy_context<输入类型…>对象和下一个K(K)条目是惰性输入参数
e(索引) 返回运行时定义的单位基向量(可以使用c<积分值>
标量(arg) 将给定的数值转换为标量Clifford表达式
伪标量([mtr]) 返回给定度量空间的编译时定义的单位伪标量
向量([mtr,]坐标…) 使用给定的坐标集生成向量(坐标值可以使用c<积分值>
向量([mtr,]开始,结束) 使用迭代器访问的坐标集生成向量

产品和基本操作

下表显示了几何代数的一组基本乘积和运算。

产品 描述
cp(lhs,rhs[,mtr]) 换向器产品
dp(lhs,rhs[,tol][,mtr]) Delta产品
点(lhs,rhs[,mtr]) 点积
gp(lhs,rhs[,mtr]) 几何/克利福德产品
髋关节(左侧、右侧[,mtr]) Hestenes内积
igp(lhs,rhs[,mtr]) 逆几何/Clifford积(参数相对湿度必须是动词)
lcont(lhs,rhs[,mtr]) 左收缩
操作(lhs,rhs[,mtr]) 外部/楔形产品
rp(左侧,右侧[,右侧]) 回归产品
rcont(lhs,rhs[,mtr]) 右收缩
sp(lhs,rhs[,mtr]) 标量产品
Sign-Change操作 描述
共轭(arg) 克利福德共轭
渐开线(arg) 年级内卷
反向(arg) 逆转
双重化操作 描述
对偶(arg[,伪标量[,mtr]]) 双重化操作
波形(arg[,伪标量[,mtr]]) 基础化操作
基于规范的操作 描述
rnorm_sqr(参数[,mtr]) 平方反转范数
rnorm(参数[,mtr]) 反向规范
发票(arg[,mtr]) 使用平方反模求给定versor的逆
单位(arg[,mtr]) 单位处于反向标准
转换操作 描述
apply_even_versor(versor,arg[,mtr]) 返回使用三明治产品由偶数versor转换的参数
应用_odd_versor(versor,arg[,mtr]) 返回奇数versor使用三明治乘积转换的参数
apply_rotor(转子,arg[,mtr]) 返回转子使用三明治产品转换的参数
铲刀操作 描述
快速连接(lhs,rhs[,tol][,mtr]) 使用由开发的算法返回给定叶片对的联接Fontijne(2008)
快速会议和加入(lhs,rhs[,tol][,mtr]) 返回一个标准::元组<T1,T2>结构,其中T1类是会议和T2段是使用由Fontijne(2008)
快速弓箭步(左侧,右侧[,左侧][,右侧]) 返回给定叶片对的插入值,如所述Dorst等人(2007),并使用快速加入功能
meet_and_join(lhs,rhs[,tol][,mtr]) 返回一个标准::元组<T1,T2>结构,其中T1类是会议和T2段是使用下面描述的算法连接给定的一对叶片Dorst等人(2007)
下降(lhs,rhs[,tol][,mtr]) 返回给定叶片对的插入值,如所述Dorst等人(2007),并使用会议和加入功能
其他操作 描述
等级(arg[,tol]) 返回一个grade_result<值>编码给定参数等级的结构
最大等级(arg[,tol]) 返回参数中具有最大等级部分的标量表达式,因此它不是
take_grade(参数,k) 返回k个-论点的等级部分
take_largest_grade(arg[,tol]) 返回参数中具有最大等级的部分

操作员过载

GATL重载了一些C++操作符,使源代码的编写更接近于使用几何代数编写数学表达式。

值得注意的是,C++运算符的优先级和结合性与数学函数中假定的不同。例如,人们会认为外部/楔形产品^将在以下表达式中的加法操作之前计算a+b^c因为在数学中乘积先于加法。然而,在C++中,加法运算符(+)位于按位XOR运算符之前(^),导致在执行数学程序时可能出现错误(请参阅C++规范详细信息)。因此,本例中的结果表达式为(a+b)^c。强烈建议使用括号,以避免这些错误。通过重写示例,a+(b^c)将保证预期的行为。

算术运算符 描述
+相对湿度 一元+
-相对湿度 一元减去
~rhs(相对湿度) 逆转(与反向(rhs))
lhs+重组人血清 添加
左侧-右侧 减法
左侧*右侧 几何/Clifford产品(与糖蛋白(lhs,rhs))
左侧/右侧 逆几何/Clifford乘积(与igp(lhs、rhs))
小时 外部/楔形产品(与op(左侧,右侧))
lhs<rhs 左构造(与lcont(lhs,rhs))
左侧>右侧 权利结构(与rcond(左手侧,右手侧))
lhs|rhs 点积(与点(左侧,右侧))
输入/输出运算符 描述
操作系统<<参数 插入格式化输出(它使用功能)

数学函数过载

下表显示了GATL重载的C++数学函数,以接受Clifford表达式作为输入。

三角函数 描述
cos(参数) 标量参数的余弦(弧度)
sin(arg) 标量参数的正弦(弧度)
棕色(arg) 标量参数的切线(以弧度为单位)
双曲线函数 描述
余弦(arg) 标量参数的双曲余弦(弧度)
正弦(arg) 标量参数的双曲正弦(弧度)
坦(arg) 标量参数的双曲正切(以弧度为单位)
指数函数和对数函数 描述
exp(arg[,tol][,mtr]) 底座-e(电子)偶数叶片参数的指数函数
日志(arg) 标量参数的自然对数
电源功能 描述
pow(基数,指数) 标量参数基础提升到标量幂参数指数
cbrt(参数) 标量参数的立方根
平方码(arg) 标量参数的平方根
其他功能 描述
abs(参数) 标量参数的绝对值

工具

GATL包含一组有用的函数、过程和元函数,帮助开发人员编写程序。

功能 描述
默认公差<值类型>() 返回标准公差值托尔假定为给定值类型
对于_ each_basis_vector(arg,f) 应用给定的函数对象(f)对由单个分量组成的给定Clifford表达式中的每个基向量进行解引用的结果
用于每个组件(arg,f) 应用给定的函数对象(f)取消引用给定Clifford表达式中每个组件的结果
写(os,表达式,basis_vectors) 将给定的Clifford表达式写入输出流操作系统使用给定的基向量集
测试功能 描述
is_null(参数[,tol][,mtr]) 返回给定参数是否为空多向量
is_unit(arg[,tol][,mtr]) 返回给定参数是否为单位多向量
为零(arg[,tol]) 返回给定参数是否等于
复制过程 描述
checked_trivil_copy(输入,结果,[,tol]) 复制输入争论到结果参数,当可以执行运行时检查的琐碎复制时
trivial_copy(输入,结果,[,tol]) 复制输入争论到结果当可以执行普通复制时的参数
元功能 描述
largest_possible_grade_v<表达式> 帮助推断给定中可能的最大等级值表达式从Clifford表达式中提取的参数
smallest_possible_grade_v<表达式> 帮助推导给定中可能的最小等级值表达式从Clifford表达式中提取的参数
测试元功能 描述
is_clifford_expression_v<类型> 返回给定类型是否为Clifford表达式
is_metric_space_v<类型> 返回给定类型是否为度量空间类型
is_general_metric_space_v<度量空间类型> 返回给定度量空间是否通用
is_orthogonal_metric_space_v<度量空间类型> 返回给定度量空间是否正交

代数特定声明

在下面的小节中,您可以找到特定于各个几何代数的声明。

签名

R的符号几何代数的类和常数p、 q、r.

等级 描述
signed_metric_space<P,Q,R> 带签名的正交度量空间(第页,q个,第页) (n个=第页+q个+第页)
常量值 描述
_0,_1,_2个 ,、和,分别(与c<0>,c<1>、和c<2>
单位伪标量(与伪标量())
空间 具有签名的正交度量空间类的一个实例(第页,q个,第页)

欧几里得的

R的欧几里德几何代数的类、常数、函数和运算n个。它们在以下命名空间中可用:盖伊,ga2e,砷化镓,ga4e、和ga5e.

等级 描述
欧氏计量空间 欧几里德度量空间
常量值 描述
_0,_1,_2个 ,、和,分别(与c<0>,c<1>、和c<2>
第1页,第2页。。。,电子鼻 欧氏基向量(与e(c<1>),e(c<2>)。。。,e(c<N>))
单位伪标量(与伪标量())
向量空间欧氏部分的单位伪标量(与)
空间 欧几里德度量空间类的一个实例
功能 描述
欧氏向量([mtr,]坐标…) 使用给定的坐标集生成欧几里德向量(坐标值可以使用c<积分值>
欧氏向量([mtr,]开始,结束) 使用迭代器访问的坐标集生成欧几里德向量
操作 描述
项目(lhs,rhs[,mtr]) 叶片的正交投影左侧(lhs)在叶片上相对湿度
拒绝(lhs,rhs[,mtr]) 叶片拒收左侧(lhs)通过刀片相对湿度

同质/投影

R的齐次/射影几何代数的类、常数、函数和运算d日(n个=d日+ 1). 它们在以下命名空间中可用:伽马射线,乙炔,砷化镓、和4加仑小时.

等级 描述
同质_metric_space 齐次/投影度量空间
常量值 描述
_0,_1,_2个 ,、和,分别(与c<0>,c<1>、和c<2>
第1页,第2页。。。,预计起飞时间 欧氏基向量(与e(c<1>),e(c<2>)。。。,e(c<D>))
电动自行车 正的额外基向量被解释为原点处的点(与e(c<D+1>))
单位伪标量(与伪标量())
向量空间欧氏部分的单位伪标量(与rcont(I,ep))
空间 齐次/射影度量空间类的一个实例
功能 描述
欧氏向量([mtr,]坐标…) 使用给定的坐标集生成欧几里德向量(坐标值可以使用c<积分值>
欧氏向量([mtr,]开始,结束) 使用迭代器访问的坐标集生成欧几里德向量
点([mtr,]坐标…) 使用给定的一组坐标(可以使用c<积分值>
点([mtr,]开始,结束) 使用迭代器访问的坐标集生成单位点
参数函数 描述
平面方向(平面[,mtr]) 给定平面的方向参数
平矩(平[,mtr]) 给定平面的力矩参数
平面支持向量(平面[,mtr]) 给定平面的支持向量参数
扁平单元支撑点(扁平[,mtr]) 给定平面的单元支撑点参数
转换操作 描述
平移(方向,平面[,mtr]) 将给定平面平移到给定方向

基于平面

R的平面几何代数的类、常数、函数和运算d日(n个=d日+ 1). 它们在以下命名空间中可用:ga1p公司,ga2p,砷化镓、和四氧化二砷.

等级 描述
平面_基准_度量_空间<D> 基于平面的几何代数度量空间
常量值 描述
_0,_1,_2个 ,、和,分别(与c<0>,c<1>、和c<2>
第1页,第2页。。。,预计起飞时间 欧氏基向量(与e(c<1>),e(c<2>)。。。,e(c<D>))
e0 空的额外基向量(与e(c<D+1>))
单位伪标量(与伪标量())
空间 基于平面的几何代数度量空间类的一个实例
功能 描述
欧氏向量([mtr,]坐标…) 使用给定的坐标集生成欧几里德向量(坐标值可以使用c<积分值>
欧氏向量([mtr,]开始,结束) 使用迭代器访问的坐标集生成欧几里德向量

Mikowski/时空

R的Mikowski/时空几何代数的类、常数、函数和运算d日(n个=d日+ 2). 它们在以下命名空间中可用:100万加仑,200万加仑、和300万加仑.

等级 描述
minkowski度量空间 闵可夫斯基/时空度量空间
常量值 描述
_0,_1,_2个 ,、和,分别(与c<0>,c<1>、和c<2>
第1页,第2页。。。,预计起飞时间 欧氏基向量(与e(c<1>),e(c<2>)。。。,e(c<D>))
电动自行车 正额外基向量(与e(c<D+1>))
相对长度单位 负额外基向量(与e(c<D+2>))
零矢量解释为原点处的点(与(em-ep)/c<2>)
零矢量解释为无穷远点(与电子束+电子束)
单位伪标量(与伪标量())
向量空间欧氏部分的单位伪标量(与rcont(我,ep^em))
空间 Minkowski/spacetime度量空间类的一个实例
功能 描述
欧氏向量([mtr,]坐标…) 使用给定的坐标集生成欧几里德向量(坐标值可以使用c<积分值>
欧氏向量([mtr,]开始,结束) 使用迭代器访问的坐标集生成欧几里德向量
点([mtr,]坐标…) 使用给定的一组坐标(可以使用c<积分值>
点([mtr,]开始,结束) 使用迭代器访问的坐标集生成单位点
参数函数 描述
主平面方向(主平面[,mtr]),双平面方向(双平面[,mtr]) 给定原始/对偶平面的方向参数
主平面位置(主平面[,mtr]),双平面位置(主平面[,mtr]) 给定原始/对偶平面的位置参数
主圆方向(主圆[,mtr]),双向(primar_round[,mtr]) 给定原/对偶圆的方向参数
primal_round_location(primar_round[,mtr]),双环绕位置(双环绕[,mtr]) 给定原始/对偶轮次的位置参数
primal_round_size_sqr(primar_round[,mtr]),双圆尺寸(主圆[,mtr]) 给定原始/对偶圆的平方大小参数
主切线方向(主切线[,mtr]),双切线方向(主切线[,mtr]) 给定原/对偶切线的方向参数
主切线位置(主切线[,mtr]),双切线位置(双切线[,mtr]) 给定原/对偶切线的位置参数

保角的

R的共形几何代数的类、常数、函数和运算d日(n个=d日+ 2). 它们在以下命名空间中可用:ga1c公司,ga2c公司、和ga3c公司.

等级 描述
保形度量空间 共形度量空间
常量值 描述
_0,_1,_2个 ,、和,分别(与c<0>,c<1>、和c<2>
第1页,第2页。。。,预计起飞时间 欧氏基向量(与e(c<1>),e(c<2>)。。。,e(c<D>))
零矢量解释为原点处的点(与e(c<D+1>))
零矢量解释为无穷远点(与e(c<D+2>))
电动自行车 正额外基向量(与(ni/c<2>)-否)
相对长度单位 负额外基向量(与(镍/碳<2>)+否)
单位伪标量(与伪标量())
向量空间欧氏部分的单位伪标量(与rcont(我,没有^ni))
空间 共形度量空间类的一个实例
功能 描述
欧氏向量([mtr,]坐标…) 使用给定的坐标集生成欧几里德向量(坐标值可以使用c<积分值>
欧氏向量([mtr,]开始,结束) 使用迭代器访问的坐标集生成欧几里德向量
点([mtr,]坐标…) 使用给定的一组坐标(可以使用c<积分值>
点([mtr,]开始,结束) 使用迭代器访问的坐标集生成单位点
参数函数 描述
主平面方向(主平面[,mtr]),双平面方向(双平面[,mtr]) 给定原始/对偶平面的方向参数
主平面位置(主平面[,mtr]),双平面位置(主平面[,mtr]) 给定原始/对偶平面的位置参数
主圆方向(主圆[,mtr]),双向(primar_round[,mtr]) 给定原/对偶圆的方向参数
primal_round_location(primar_round[,mtr]),双环绕位置(双环绕[,mtr]) 给定原始/对偶轮次的位置参数
primal_round_size_sqr(primar_round[,mtr]),双圆尺寸(主圆[,mtr]) 给定原始/对偶圆的平方大小参数
主切线方向(主切线[,mtr]),双切线方向(主切线[,mtr]) 给定原/对偶切线的方向参数
主切线位置(主切线[,mtr]),双切线位置(双切线[,mtr]) 给定原/对偶切线的位置参数

概述

定义的一般几何代数的类、常数、函数和运算。可通过以下方式获得gatl/ga.hppgatl/ga/model/general.hpp.

等级 描述
general_metric_space<度量矩阵条目…> 通用公制空间
实用类型定义的助手 描述
constant_general_metric_space_t<度量矩阵值…> 使用由常量整数值组成的度量矩阵定义通用几何代数模型的帮助器

6.相关项目

请访问GitHub存储库ga-基准项目用于比较几何代数中最流行的库、库生成器和代码优化器的基准。

7.许可

此软件根据GNU通用公共许可证v3.0进行许可。请参阅许可证文件以获取详细信息。