×

在计算机代数库的设计中使用C++模板。 (英语) Zbl 1503.68306号

Bigatti,Anna Maria(编辑)等人,《数学软件——ICMS 2020》。第七届国际会议,德国布伦瑞克,2020年7月13日至16日。诉讼程序。查姆:斯普林格。勒克特。注释计算。科学。12097, 342-352 (2020).
摘要:我们讨论了开源基本多项式代数子程序(BPAS)库的设计方面。我们建立在标准C++11模板机制的基础上,以提高易用性和可访问性。BPAS计算机代数库旨在通过封装在面向对象且用户友好的C++接口中的优化C代码,使最终用户能够更轻松高效地完成工作。该接口的两个关键方面是将代数层次结构编码为类层次结构,以及支持将代数类型组合为新类型的机制。如果要对代数层次结构进行编码,则现有库将使用运行时值检查来确定两个元素是否属于同一个环,以确定在其他静态类型的语言中是否存在错误的类型安全错误感觉。相反,我们的模板元编程机制提供了真正的编译时类型安全性和编译时代码生成。该机制的细节对最终用户是透明的,为最终用户数学家提供了一个非常自然的界面。
关于整个系列,请参见[Zbl 1496.68012号].

MSC公司:

68瓦30 符号计算和代数计算
68-04 计算机科学相关问题的软件、源代码等
68单位35 信息系统的计算方法(超文本导航、接口、决策支持等)
68版本35 数字数学图书馆和知识库
PDF格式BibTeX公司 XML格式引用
全文: 内政部

参考文献:

[1] Abbott,J.,Bigatti,A.M.:CoCoALib:用于在交换代数中进行计算的C++库。http://cocoa.dima.unige.it/cocoalib ·Zbl 1267.13048号
[2] Asadi,M.等人:基本多项式代数子程序(BPAS)(2020年)。http://bpaslib.org
[3] Asadi,M.,Brandt,A.,Moir,R.H.C.,Moreno Maza,M.:稀疏多项式算法和数据结构。数学7(5),441(2019)·doi:10.3390/路径7050441
[4] Asadi,M.、Brandt,A.、Moir,R.H.C.、Moreno Maza,M.,Xie,Y.:关于多项式系统三角分解的并行化。In:CoRR abs/1906.00039(2019)·Zbl 07300049号
[5] Bernardin,L.等人:Maple编程指南(2018年)。www.maplesoft.com/documentation_center/maple2018/编程指南.pdf
[6] Bosma,W.,Cannon,J.,Playout,C.:岩浆代数系统。I.用户语言。J.符号计算。24(3-4), 235-265 (1997). 计算代数和数论(伦敦,1993)·Zbl 0898.68039号 ·doi:10.1006/jsco.1996.0125
[7] Chen,C.,Covanov,S.,Mansouri,F.,Maza,M.M.,Xie,N.,Xia,Y.:基本多项式代数子程序。摘自:Hong,H.,Yap,C.(编辑)ICMS 2014。LNCS,第8592卷,第669-676页。斯普林格,海德堡(2014)。https://doi.org/10.1007/978-3-662-44199-2_100 ·Zbl 1435.65234号 ·doi:10.1007/978-3-662-44199-2_100
[8] Covanov,S.、Mohajerani,D.、Moreno Maza,M.、Wang,L.:多核处理器上的大素数域FFT。在:2019符号与代数计算国际研讨会论文集,第106-113页(2019)·Zbl 1467.65121号
[9] Decker,W.,Greuel,G.-M.,Pfister,G.,Schönemann,H.:奇异4-1-1-多项式计算的计算机代数系统(2018)。http://www.singular.uni-kl.de
[10] Endrikat,S.、Hanenberg,S.,Robbes,R.、Stefik,A.:API文档和静态类型如何影响API可用性?摘自:第36届国际软件工程会议记录,第632-642页。ACM(2014)
[11] Hart,W.,Johansson,F.,Pancratz,S.:FLINT:数论快速库。版本2.5.2(2015)。http://flintlib.org
[12] Jenks,R.D.,Sutor,R.S.:公理,科学计算系统(1992)·Zbl 0758.68010号
[13] Jolly,R.:在scala代数系统中作为类型类的类别。收录人:Gerdt,V.P.,Koepf,W.,Mayr,E.W.,Vorozhtsov,E.V.(编辑)CASC 2013。LNCS,第8136卷,第209-218页。查姆施普林格(2013)。https://doi.org/10.1007/978-3-319-02297-0_18 ·Zbl 1411.68211号 ·数字对象标识代码:10.1007/978-3-319-02297-0_18
[14] Shoup,V.等人:NTL:数论图书馆。网址:www.shoup.net/ntl/
[15] LinBox组。LinBox。第1.6.3节。2019.网址:http://github.com/linbox-team/linbox
[16] van der Hoeven,J.,Lecerf,G.:数学与C++的接口。摘自:2013年符号和代数计算国际研讨会论文集,第363-370页(2013)
[17] Vandevorde,D.,Josuttis,N.M.:C++模板。Addison-Wesley Longman出版公司(2002)
[18] Wolfram Research,Inc.,Mathematica,11.3版。伊利诺伊州香槟市(2018)
此参考列表基于出版商或数字数学图书馆提供的信息。其项与zbMATH标识符进行启发式匹配,可能包含数据转换错误。在某些情况下,zbMATH Open的数据对这些数据进行了补充/增强。这试图尽可能准确地反映原始论文中列出的参考文献,而不要求完整或完全匹配。