数学库函数

本文介绍了线性代数计算中常用的工具库BLAS、LAPACK、MKL、GotoBlas、ATLAS等的功能及特点。BLAS提供基本线性代数运算,而LAPACK在此基础上增加了更复杂的数值计算功能。MKL则是Intel提供的高性能数学库,支持多种操作系统和开发工具。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

BLAS和LAPACK是什么?

BLAS和LAPACK是专门为线性代数开发的工具库。
BLAS英文全称Basic Linear Algebra Subprograms,共有三个层次的计算

  1. 向量与向量之间的计算,比如向量的加,减,点乘
  2. 向量与矩阵之间的计算,比如乘法运算,一阶矩阵和二阶矩阵的更新
  3. 矩阵与矩阵之间的计算,比如矩阵相乘,K阶更新

LAPACK英文全称Linear Algebra Package,是一个以Fortran 编程语言写成,用于数值计算的函式集。是建立在BLAS之上的更复杂的计算程序,可用于解多元线性方程式,计算特征向量,奇异值分解等问题。
参考:走进BLAS/LAPACK

MKL是什么?

intel MKL,英文全称是intel Math Kernel Library,是英特尔核心数学库,提供高度优化和大量线程化处理的数学例子。
提供C、Fortran和Fortran 95的支持,但仅支持intel自家旗下的CPU。
核心数学函数包括BLAS、LAPACK、ScaLAPACK,稀疏矩阵解算器,FFT,矢量数学及其它函数。
支持主流的操作系统(Windows,Linux,Mac OS等),与主流的开发工具(VS、Eclipse、Xcode、GCC等)集成。
内置并行处理机制,在多核多处理器上自动获取出色的扩充性能。所有的MKL函数都是线程安全的。同时提供非线性程化顺序行MKL。
参考:
MKL相关文档链接
ScaLAPACK,Scalable LAPACK
PBLAS,Parallel Basic Linear Algebra Subprograms可并行基本代数子程序
##FFT和PDE是什么?
Fast Fourier Transform 快速傅利叶变换
PDE,Partial Differential Equations 偏微分方程

静态库和动态库

静态库:静态库是一些目标文件的集合,后缀为.o的文件,通过ar工具打包而成,命名为libxxx.a,xxx为给定的静态库文件名,例如libmkl_lapack95_lp64.a。在创建可执行程序的过程中,静态库同时被链接到程序代码,被主程序调用的函数目标文件连同主程序组合成单一的可 执行程序。静态库只在程序链接时起作用,最终执行程序脱离静态库运行。
动态库:shared library,后缀为.so,通过编译器生成,在不同平台有不同的生成方法。使用动态库创建执行程序,分为两个阶段,链接阶段,以及运行阶段。dlopen,打开动态链接库;dlsym,取函数执行地址;dlclose,关闭动态链接库;dlerror,动态库错误函数。
参考:博客

GotoBlas是什么?

GotoBlas是Kazushige Goto在TACC(Texas Advanced Computing Center)开发的一个数学库。在科学计算领域,GotoBLAS和GotoBLAS2是BLAS的开源完善博客参考
GotoBlas2的下载网址:

www.tacc.utexas.edu/tacc-projects/gotoblas2

ATLAS是什么?

ATLAS英文全称是Automatically Tuned Linear Algebra Software,是线性代数软件库,实现了BLAS的全部功能以及LAPACK的部分功能,并且对计算过程进行了优化。
参考:wiki百科 博客

为了进行某些数值计算,您是否还在不得不借助于FORTRAN(或C/C++)编译器?虽然,对于运算量特别巨大的工程,您还是需要这么做的,但是,对于众多的中小型运算,您可能早已不胜其烦。令人欣喜的是,现在有了FORCAL.DLL,您可以在软件中自由地添加各种数值计算功能,享受到一劳永逸之乐趣。 该动态库支持实数、复数整数三种类型的数学表达式,这三种表达式可以单独使用,也可同时使用,在同时使用时,允许三种表达式之间的相互调用。 该动态库中的基本函数总数达100多个,除了包括常用数学函数外,还包括数据类型函数、逻辑函数、表达式相互调用流程控制函数等等,计算速度约为FORTRAN(或C/C++)速度的50%左右。 但Forcal更为突出的特点是你可以方便地扩充这些基本函数,你可以让这些函数完成不同凡响的功能,例如:解方程、积分、微分、插值、拟、数据处理甚至是矩阵运算等等。Forcal在调用这些扩充的函数时就象调用它本身带有的函数一样,没有任何分别。这意味着,所有使用该动态库进行设计的人都可以设计满足自己或本行业需要的数值计算系统。 ★ 最新的版本中已经增加了对字符串处理的支持,进一步拓展了Forcal使用范围。 ★ 最新的版本支持常量定义。   下载地址: ☉为支持本站发展需要点击下面【Yahoo!1000兆邮箱】的广告后,才能正常下载!   点这里下载-> 江苏常州下载
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值