數學庫函式

2021-08-19 04:10:32 字數 1626 閱讀 9621

blas和lapack是專門為線性代數開發的工具庫。

blas英文全稱basic linear algebra subprograms,共有三個層次的計算

向量與向量之間的計算,比如向量的加,減,點乘

向量與矩陣之間的計算,比如乘法運算,一階矩陣和二階矩陣的更新

矩陣與矩陣之間的計算,比如矩陣相乘,k階更新

lapack英文全稱linear algebra package,是乙個以fortran 程式語言寫成,用於數值計算的函式集。是建立在blas之上的更複雜的計算程式,可用於解多元線性方程序,計算特徵向量,奇異值分解等問題。

參考:走進blas/lapack

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工具打包而成,命名為lib***.a,***為給定的靜態庫檔名,例如libmkl_lapack95_lp64.a。在建立可執行程式的過程中,靜態庫同時被鏈結到程式**,被主程式呼叫的函式目標檔案連同主程式組合成單一的可 執行程式。靜態庫只在程式鏈結時起作用,最終執行程式脫離靜態庫執行。

動態庫:shared library,字尾為.so,通過編譯器生成,在不同平台有不同的生成方法。使用動態庫建立執行程式,分為兩個階段,鏈結階段,以及執行階段。dlopen,開啟動態鏈結庫;dlsym,取函式執行位址;dlclose,關閉動態鏈結庫;dlerror,動態庫錯誤函式。

參考:部落格

gotoblas是kazushige goto在tacc(texas advanced computing center)開發的乙個數學庫。在科學計算領域,gotoblas和gotoblas2是blas的開源完善部落格參考

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

atlas英文全稱是automatically tuned linear algebra software,是線性代數軟體庫,實現了blas的全部功能以及lapack的部分功能,並且對計算過程進行了優化。

參考:wiki百科

部落格

6 9數學庫函式

1 真正的數 算的函式定義在 usr include x86 linux gnu bits mathcalls.h 2 使用數學庫函式的時候,只需要包含math.h即可。1 庫函式 double sqrt double x undefined reference to sqrt collect2 e...

C C 數學庫函式

所在函式庫為math.h stdlib.h string.h float.h 1.絕對值 int abs int i 返回整型引數i的絕對值 double cabs struct complex znum 返回複數znum的絕對值 double fabs double x 返回雙精度引數x的絕對值 ...

Linux庫函式學習

一 檔案io類 1 open close read write基礎開關檔案 讀寫操作。2 lseek函式 在指定的檔案描述符中將檔案指標定位到相應的位置。3 fcntl函式 檔案加鎖 解鎖。4 select poll函式 實現多路io復用。5 fget 從指定的流中讀取資料。二 程序控制類 1 fo...