`
fly_hyp
  • 浏览: 302614 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
社区版块
存档分类
最新评论

C++各大有名科学计算库

阅读更多
C++各大有名科学计算库
2008年10月13日 星期一 上午 11:29
在 C++中,库的地位是非常高的。C++之父 Bjarne Stroustrup先生多次表示了设计库来扩充功能要好过设计更多的语法的言论。现实中,C++的库门类繁多,解决的问题也是极其广泛,库从轻量级到重 量级的都有。不少都是让人眼界大开,亦或是望而生叹的思维杰作。由于库的数量非常庞大,而且限于笔者水平,其中很多并不了解。所以文中所提的一些库都是比 较著名的大型库。

C++各大有名库的介绍——科学计算

1、Blitz++

参考网站:http://www.oonumerics.org/blitz

   Blitz++ 是一个高效率的数值计算函数库,它的设计目的是希望建立一套既具像C++ 一样方便,同时又比Fortran速度更快的数值计算环境。通常,用C++所写出的数值程序,比 Fortran慢20%左右,因此Blitz++正是要改掉这个缺点。方法是利用C++的template技术,程序执行甚至可以比Fortran更快。

  Blitz++目前仍在发展中,对于常见的SVD,FFTs,QMRES等常见的线性代数方法并不提供,不过使用者可以很容易地利用Blitz++所提供的函数来构建。

2、POOMA

参考网站:http://www.codesourcery.com/pooma/pooma

  POOMA是一个免费的高性能的C++库,用于处理并行式科学计算。POOMA的面向对象设计方便了快速的程序开发,对并行机器进行了优化以达到最高的效率,方便在工业和研究环境中使用。

3、MTL

参考网站:http://www.osl.iu.edu/research/mtl

  Matrix Template Library(MTL)是一个高性能的泛型组件库,提供了各种格式矩阵的大量线性代数方面的功能。在某些应用使用高性能编译器的情况下,比如Intel的编译器,从产生的汇编代码可以看出其与手写几乎没有两样的效能。

4、CGAL

参考网站:www.cgal.org

  Computational Geometry Algorithms Library的目的是把在计算几何方面的大部分重要的解决方案和方法以C++库的形式提供给工业和学术界的用户。

 

Intel Math Kernel Library
1.基本线形代数运算(BLAS) 向量与向量、向量与矩阵、矩阵与矩阵的运算
2.稀疏线形代数运算
3.快速傅立叶变换(单精度/双精度)(fftw)
4.LAPACK(求解线形方程组、最小方差、特征值、Sylvester方程等)
5.向量数学库(VML)
6.向量统计学库(VSL)
7.高级离散傅立叶变换

IMSL
软件名称 IMSL C Numerical Library(不兼容vc6编译器)
程序设计语言 C, Forton, C#, Java
资源网址 http://www.vni.com/
功 能概述 分为统计库和数学库两部分. 数学库包含应用数学和特殊函数.IMSL 程序库 - 已成为数值分析解决方案的工业标准。 IMSL 程序库提供最完整与最值得信赖的函数库。 IMSL 数值程序库提供目前世界上最广泛被使用的 IMSL 算法,有超过 370 验证过、最正确与 thread-safe 的数学与统计程序。 IMSL FORTRAN 程序库提供新一代以 FORTRAN 90 为程序库基础的程序,能展现出最佳化的演算法能力应用于多处理器与其它高效能运算系统。

lapack
软件名称 Linear Algebra Package
程序设计语言 Fortran 77
资源网址 http://www.netlib.org/lapack
功能概述 线性代数计算子程序包

lapack++
软件名称 Linear Algebra Package in c++
程序设计语言 c++
资源网址 http://math.nist.gov/lapack++/
功能概述 c++版的线性代数计算子程序包

BLAS
软件名称 Basic Linear Algebra Subroutines
程序设计语言 Fortran 77
主要开发者 Kagstrom B. ,Ling P. ,Van Loan C.
资源网址 http://www.netlib.org/blas
功能概述 Blas是执行向量和矩阵运算的子程序集合。

uBLAS
BLAS in C++ with expression templates. 表达式模版形式的 C++中的BLAS ,

gsl
软件名称 GNU Scientific Library (linux)
程序设计语言 C , C++ compable
资源网址 http://www.gnu.org/software/gsl/
功能概述 范围广泛, 包括数值分析的常见内容

Blitz++
软件名称 Blitz++ (不兼容vc6编译器)
资源网址 http://sourceforge.net/project/showfiles.php?group_id=63961
功 能概述 The current versions provide dense arrays and vectors, random number generators, and small vectors and matrices.是一个高效率的数值计算函数库,它的设计目的是希望建立一套既具像 C++ 一样方便,同时又比 Fortran 速度更快的数值计算环境。通常,用 C++ 所写出的数值程序,比 Fortran 慢 20% 左右,因此Blitz++ 正是要改掉这个缺点。方法是利用 C++ 的 template 技术,程序执行甚至可以比 Fortran 更快。

MTL
软件名称 Matrix Template Library(兼容vc6编译器)
资源网址 http://www.osl.iu.edu/research/mtl/
功 能概述 The Matrix Template Library (MTL) is a high-performance generic component library that provides comprehensive linear algebra functionality for a wide variety of matrix formats. MTL专注于线性代数相关的计算任务,如各种形式矩阵的生成(对角,共轭,稀疏,对称等),相关的计算,变换,以及与一维向量的运算。

分享到:
评论

相关推荐

    GNU Scientific Library (GSL)C++科学计算库

    在C++中使用GSL,可以极大地提升科学计算的效率和准确性。GSL库包含了以下关键模块: 1. **线性代数**:GSL提供了矩阵和向量操作的功能,包括矩阵的乘法、求逆、特征值和特征向量计算,以及QR分解和Cholesky分解等...

    C++实现的科学运算函数库

    总结来说,C++实现的科学运算函数库极大地丰富了C++在科学计算领域的应用,使得开发者能够更高效地进行数值模拟、数据分析和算法实现。通过合理选择和使用这些库,可以显著提升项目开发的效率和代码的可靠性,同时...

    C++数值计算核心库 Zero

    Zero是一个功能丰富的C++数值计算核心库,不仅可取代clapack或者cblas, 还具备求根,拟合,插值,积分,随机数,统计,全局和局部的约束以及无约束优化,常微分方程求解等多项功能。 在线性计算方面: 可取代clapack或者cblas...

    C++ 大整数运算库(附源码)

    用于运算、输出大整数的C++库,使用简便,即下即用,已重载各类运算符,支持ostream(cout)输出和字符串输出、字符串构造、最大公约数和最小公倍数计算。 具体用法、函数说明可以在文件夹中的README.txt中找到

    矩阵计算库matrix(标准C++编写,不使用第三的库)

    《矩阵计算库matrix——基于标准C++实现》 在计算机科学和工程领域,矩阵运算扮演着至关重要的角色,尤其在图形学、机器学习、线性代数等领域。本项目名为"matrix",是一个完全用标准C++编写的矩阵计算库,不依赖...

    强大的C++科学计算器

    本项目"强大的C++科学计算器"旨在实现一个高级功能的计算器,它不仅支持基本的算术运算,如加、减、乘、除,还能够处理更复杂的科学计算,例如正弦(sin)、余弦(cos)等函数。这个计算器应用程序对于学习C++编程、...

    科学计算库numpy

    NumPy是一个开源的Python科学计算基础库,包含: - 一个强大的N维数组对象 ndarray - 广播功能函数 - 整合C/C++/Fortran代码的工具 - 线性代数、傅里叶变换、随机数生成等功能

    - C++ and Object-Oriented 科学计算

    5. **STL(Standard Template Library)**:STL是C++标准库的一部分,包含容器(如vector、list和map)、迭代器、算法和函数对象,是科学计算中常用的工具。例如,vector可以高效地存储和操作动态数组,而算法库提供...

    如何开始C++科学计算之旅.docx

    科学计算通常涉及数值分析、线性代数、概率统计等,而C++由于其性能优势和丰富的库支持,是进行这类计算的理想选择。 在描述中并未提供具体的内容,但从标签“c++”我们可以推断,文档将主要围绕C++编程语言,特别...

    GSL科学计算库(GSL--GNU Scientific Library)

    GNU科学计算库 GNU Scientific Library是一个跨平台的科学计算库。可以满足日常科学计算的大部分需要。它包含了矩阵运算、数值计算,傅里叶分析,小波分析、统计分析、最优化等数学需要的方方面面的知识。 包含两个...

    C++ Eigen库计算矩阵特征值及特征向量

    本文主要讲解利用Eigen库计算矩阵的特征值及特征向量并与Matlab计算结果进行比较。 C++Eigen库代码 #include #include #include using namespace Eigen; using namespace std; void Eig() { Matrix3d A; A &lt...

    C++著名程序库的比较和学习经验

    科学计算领域,BLAS(基础线性代数子程序)和LAPACK(线性代数包)是不可或缺的,它们提供了高效的数值计算算法。对于游戏开发,有许多库如SDL(Simple DirectMedia Layer)、SFML(Simple and Fast Multimedia ...

    C++开源程序库 C++开源程序库

    这主要归功于template技术的高级应用,使得C++在科学计算的性能方面取得了巨大的进步,一大批优秀的C++科学计算库涌现出来。比如Blitz++、POOMA、MTL、Boost::uBLAS。而这其中,MTL就功能丰富程度、性能、开发支持和...

    c++ HTTP协议库 httplib

    2. 跨平台:httplib库支持多种操作系统,包括Windows、Linux、Mac OS X等,这得益于它的轻量级设计和标准C++的实现。 3. 支持SSL/TLS:库内集成了对HTTPS的支持,可以安全地进行加密通信。 4. 高效:httplib库的...

    C++C++C++C++C++C++C++

    C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++

    常用的矩阵库--C++用作数值计算的解决方案

    "常用的矩阵库--C++用作数值计算的解决方案"这一主题,探讨了如何在C++中利用矩阵库进行数值计算,并结合Matlab和OpenGL进行数据可视化。 1. **矩阵库的选择与使用**: - **Eigen**:一个轻量级且高效的C++模板库...

    C++AMP用Visual C++ 加速大规模并行计算

    C++ AMP 并行计算,很好的一本书,中文版,想要学习并行计算的可以看看

    C++ AMP_用VISUAL C++加速大规模并行计算

    6. **实践案例**:书中提供了丰富的实例,展示如何使用C++ AMP解决实际问题,如科学计算、物理模拟、图像处理等领域的应用。 7. **与其他并行计算框架的比较**:可能还会讨论C++ AMP与OpenMP、CUDA等其他并行计算...

    matlab调用C++ 动态库实例

    在IT领域,跨语言编程是常见的需求,特别是在数据分析和科学计算中,MATLAB与C++的结合使用可以发挥各自的优势。本实例展示了如何利用MATLAB调用C++编写的动态链接库(DLL),以实现高性能计算。下面我们将详细探讨...

    潮流计算C++程序

    C++具有良好的性能和丰富的库支持,使得复杂计算任务的实现更为高效。 至于压缩包内的“潮流上机程序”,可能包含以下组成部分: 1. 主程序:核心代码,实现了潮流计算的算法,如牛顿-拉弗森法或高斯-塞德尔迭代法...

Global site tag (gtag.js) - Google Analytics