促进 C++库

……其中一个世界。 赫伯·萨特安德烈亚历山德雷斯库,C类++编码标准

这是旧版本Boost的文档。单击此处查看此页面的最新版本。

基本线性代数库

uBLAS是一个C++模板类库,它提供BLAS公司级别1、2、3密集矩阵、压缩矩阵和稀疏矩阵的功能。设计和实现通过运算符重载和通过表达式模板高效生成代码。

功能

uBLAS为稠密、单位和稀疏向量、稠密、同一、三角形、带状、,对称矩阵、厄米矩阵和稀疏矩阵。向量和矩阵的视图可以通过范围、切片、,适配器类和间接数组。该库涵盖了向量和矩阵的常用基本线性代数运算:向量和矩阵的不同范数、加减和标量、内外乘法向量乘积、矩阵向量乘积和矩阵矩阵乘积以及三角形解算器。容器、视图之间的胶水而表达式模板化操作主要是STL公司一致迭代器接口。

文档

已知限制:

更多信息

项目位置和下载

uBLAS的最新稳定版本是促进库。

文档和讨论

访问有效uBLAS公司获取最新信息和贡献的wiki。

还有一个活动的uBLAS邮件列表其中uBLAS特定用户和回答了发展问题。

uBLAS和Boost项目

还有一个活动的uBLAS邮件列表其中uBLAS特定于最新的uBLAS项目代码。你可以看法助推CVS直接存档。你会找到图书馆在这里文件和测试程序驻留在这里.

作者和学分

uBLAS最初由Joerg Walter和Mathias Koch编写。我们要感谢所有支持和为该图书馆的发展做出贡献的有:大卫·阿布拉哈姆斯、埃德·布雷、费尔南多·卡奇奥拉、胡安·何塞·戈麦斯·卡德纳斯、,Beman Dawes、Matt Davies、Bob Fletcher、Kresimir Fresl、Joachim Kessel、Patrick Kowalzick、Toon Knapen、Hendrik Kueck、,约翰·马多克(John Maddock)、延斯·莫雷尔(Jens Maurer)、阿列克谢·诺瓦科夫(Alexei Novakov)、加里·鲍威尔(Gary Powell,Michael Stevens、Benedikt Weber、Martin Weiser、Gunter Winkler、Marc Zimmermann、Marco Guazzone、Nasos Iliopoulus促进以及世界各地的所有其他贡献者。我保证我会尽力把他们的名字加入这个名单。

此库当前由维护大卫·贝洛特.

常见问题

Q: 我应该在新项目中使用uBLAS吗?
A: 在编写本报告时(2012年9月),有很多很好的矩阵库可用,例如。,MTL4级,犰狳,特征.uBLAS提供了一组稳定、测试良好的矢量和矩阵类、线性代数的典型运算和三角方程组的求解器。uBLAS提供稠密、结构化和稀疏矩阵-都使用类似的接口。最后,uBLAS提供了良好的(但并不突出)性能。另一方面,uBLAS的最后一次重大改进是在2008年,没有做出重大改变自2009年以来。因此,人们应该问自己一些问题来帮助做出决定:可利用性?uBLAS是boost的一部分因此在许多环境中都可用。易于使用?uBLAS易于用于简单的事情,但需要体面当你离开路径时,C++知识。性能?有更快的选择。前沿?uBLAS公司已经超过10年了,错过了C++11中的所有新东西。

Q: 我正在运行uBLAS密集向量和矩阵基准测试。为什么我看到显著的性能差异在本机C和库实现之间?
A: uBLAS区分调试模式(启用大小和类型一致性检查,禁用表达式模板)和发布模式(禁用大小和类型一致性检查,启用表达式模板)。请检查,如果预处理器符号NDEBUG公司属于卡塞特已定义。NDEBUG公司启用释放模式,这反过来使用表达式模板。您可以选择定义BOOST_UBLAS_NDEBUG(引导_非驱动)要禁用所有边界,请构造以及uBLAS的类似检查。

Q: 我编写了一些uBLAS测试,试图错误地分配不同的矩阵类型或溢出向量矩阵维数。为什么我得不到编译时或运行时诊断?
A: uBLAS区分调试模式(启用大小和类型一致性检查,禁用表达式模板)和版本模式(禁用大小和类型一致性检查,启用表达式模板)。请检查,如果预处理器符号NDEBUG公司属于卡塞特已定义。NDEBUG公司禁用所需的调试模式获取大小和类型一致性检查。

Q: 我编写了一些uBLAS基准测试来衡量矩阵链乘法的性能,如触头(A,触头(B、C)并看到由于使用表达式模板而导致的显著性能损失。如何禁用表达式模板?
A: 无需禁用表达式模板。请尝试使用以下任一方法重新引入临时触头(答:, 矩阵_类型 (触头(B、C))触头(A,触头<矩阵_类型 >(B、C).


版权所有(©)2000-2011 Joerg Walter,Mathias Koch,Gunter Winkler,David Bellot
使用、修改和分发受Boost软件许可证1.0版的约束。(见随附文件LICENSE_1_0.txt或复制于http://www.boost.org/LICENSE_1_0.txt).