C++科学計算ライブラリGSLとその構成

7972 ワード

C++科学コンピューティングライブラリGSLとその構成は、ある日、プログラムの中でいくつかの関数を使用する必要があります.例えば、Γ 関数、β 関数、そして普通の対数アクリルなど、あなたは何を考えて、#i ncludeでしょう?コンピュータ科学はここ数年発展して、すでに多くの優秀な科学計算の関数ライブラリがあって、いろいろな方面をカバーして、あなたがしなければならないのは、それらを導入して、パラメータを代入して、それから結果を待って、ほほほ.それを忘れるのは大きくて、遅くて、見苦しいです.操作しにくいMatLab(ソフトウェアがエンジニアリングや科学ソフトのように開発されている場合、つまり機能だけを話している場合、使用者の習慣や苦しみを顧みず、コンピュータ業界はとっくに倒産している......)次の文字は、さまざまなC++コンパイラ、特にMinGWのコマンドラインコンパイルを熟練していることをデフォルトで把握しています.もちろん、bs windowsでlinuxの下で大規模なソースコードをコンパイルしたら...
現在、科学計算をサポートする3つのライブラリがあると言われています.これらはGNUのgsl、blitz++およびMTLです.ここでは、GNUのgslを使用して科学計算を行います.gslはhttp://www.gnu.orgダウンロードしますが、binリリースではなく、自分でコンパイルしなければなりません.windowsのサポートはよくありません.ここではMingWの下で使用できるLibバージョンのgslを得ることができます.http://gnuwin32.sourceforge.net/packages/gsl.htmここで2つのファイルをダウンロードしてwindowsの下のプログラミングをサポートすることができて、それぞれgsl-1.8-binです.zipとgsl-1.8-dev.zip(バージョン番号は今後変わる可能性があります)、binにはdllが提供され、devにはヘッダファイルとlibが提供されています(ここでは.a形式のlibしかありませんので、VCはサポートされていません.MingWのみがサポートされています).ヘッダファイルはMingWのincludeディレクトリにコピーし、lib(2つの.aファイル:libgsl.aとlibgslcblas.a)をソースコードの同じディレクトリの下に置きます.そしてプログラムの中でgslの関数を呼び出すことができます!
次に例を示します
#include <iostream> 
#include <gsl/gsl_sf.h> 
int main() 
{ 
std::cout << gsl_sf_gamma_inc( 1.5, 0.5 ) << std::endl; 
std::cout << gsl_sf_gamma_inc_Q( 1.5, 0.5 ) << std::endl; 
std::cout << gsl_sf_gamma_inc_P( 1.5, 0.5 ) << std::endl; 
} 

 
VCコンパイラの下でgslを使いたい場合は、ここでlibライブラリファイルをダウンロードすることもできます.http://www6.in.tum.de/~kiss/WinGsl.htm WinGsl Windows vesrsion of the GNU Scientific Library Description     Here you will find a MS-VC++ adaptation of the GNU gsl-1.4 library. It's free in the sense of GNU licensing scheme.     You have the choice to download the complete set of source code and compile yourself or download just the divcompiled static/dynamic libraries. Versions WinGsl-1.4.xx Contain the complete set of free source code, help and samples based on gsl-1.4, necessary to compile and use the scientific library under Windows with MS-VC++ 6.0/7.0 WinGsl-1.4.01/09.07.2004 First release. ( ~3.6 MB) WinGsl-1.4.02/11.08.2004 Current version. WinGsl-Lib-1.4.xx Contains a ready-to-use set of static and dynamic libraries generated from WinGsl-1.4.xx.
WinGsl-Lib-1.4.01/09.07.2004 First release. ( ~16.8 MB, VC++ 6.0) WinGsl-Lib-1.4.02/11.08.2004 Current version ( VC++ 6.0). WinGsl-Lib-1.4.03/27.08.2004 Current version ( .NET 2003). バージョンは少し古いですが、十分なはずです.
2つの転載記事を添付し、原作者に感謝の意を表します.
1.gslのdev-c++での移植:(1)gsl-1.8をダウンロードする.exe:    http://gnuwin32.sourceforge.net/packages/gsl.htm
(2)gslをインストールします.インストール後、インストールディレクトリの下に次のディレクトリがあります.contribgsl-1.8いくつかの説明ファイルbinバイナリファイル
     libgsl.dll             gsl      (  gcc     ) 
     libgsl_d.dll           gsl      (  gcc     ) 
     libgslcblas.dll        cblas      (  gcc     ) 
     libgslcblas_d.dll      cblas      (  gcc     ) 
     gsl-histogram.exe                   
      gsl-randist.exe                        

libライブラリファイル
     libgsl.a                gsl      (  gcc     ) 
     libgsl_d.a              gsl      (  gcc     ) 
     libgslcblas.a           cblas      (  gcc     ) 
     libgslcblas_d.a         cblas      (  gcc     ) 
     libgsl_dll.a            libgsl.dll gcc    
     libgsl_d_dll.a          libgsl_d.dll gcc    
     libgslcblas_dll.a       libgslcblas.dll gcc    
     libgslcblas_d_dll.a     libgslcblas_d.dll gcc    
     libgsl.def                libgsl.dll    
     libgslcblas.def           libgslcblas.dll    

doc関連ドキュメントinfoman 1man 3各種フォーマットのgslヘルプファイルincludegslヘッダファイルgsl include files主にbin,lib,includegslの下にあるファイル
(3)dev-c++コンパイル環境を設定するには、2つの方法があります.
一、これは最も簡単で、gslをディレクトリの下のbinの下のlibgslにインストールする.dll,libgslcblas.dllはdev-c++インストールディレクトリのbinディレクトリにコピーします.lib下libgsl.a,libgslcblas.a dev-c++インストールディレクトリのlibディレクトリにコピーします.includeの下のgslフォルダ全体がdev-c++インストールディレクトリの下のincludeディレクトリにコピーされます.dev-c+、ツール-コンパイルオプション-コンパイラを開き、「コネクタコマンドラインに次のコマンドを追加」を選択し、-lgsl-lgslcblasを追加します(すなわち、接続時にlibgsl.a、libgslcblas.a、gccは接頭辞libと接尾辞を自動的に認識できます.a)
#include <stdio.h> 
#include <gsl/gsl_sf_bessel.h> 
int main(void) 
{ 
    double x = 5.0; 
    double y = gsl_sf_bessel_J0(x); 
    printf("J0(%g) = %.18en", x, y); 
    system("pause"); 
    return 0; 
} 

 
移植は正常に動作します.
二、dev-c++、ツール-コンパイルオプション-ディレクトリを開き、gslインストールディレクトリの下のlib、includeをライブラリとヘッダファイルのパスに追加します.最後に、コンパイラオプションで「コネクタコマンドラインに次のコマンドを追加」を選択し、-lgsl-lgslcblasを追加します.つまり、gslは正常に使用できます.
2.gslのVisual C++6.0での移植
(1)WinGsl-Lib-1.4.02をダウンロードする.zip : http://www6.in.tum.de/~kiss/WinGsl.htm
(2)一時ディレクトリに解凍する、WinGslのライブラリファイルの拡張子は.lib、Visual C++6.0のコンパイラに使用可能
(3)Visual C++6.0コンパイル環境を設定するには、2つの方法があります.
一、仮目次のbinのWinGsl.dllとWinGsld.dllは~Microsoft Visual StudioVC 98Binの下にコピーします.Gslディレクトリ全体を~Microsoft Visual StudioVC 98Includeの下にコピーします.libディレクトリの下のすべて.libファイルはすべて~Microsoft Visual StudioVC 98Libの下にコピーされます.gsl関数を使用する場合、新しいプロジェクトではproject-settings-linkがobject/library modulesにWinGslなどのライブラリファイルを追加します.libなどは、複数を加えてスペースで区切ることができます.       
二、VC、tools-options-directoriesを開き、解凍ディレクトリの下のlib、gslをそれぞれライブラリファイルとヘッダファイルの検索パスに追加し、WinGsl.dllとWinGsld.dllは~Microsoft Visual StudioVC 98Binにコピーします.新しいプロジェクトで使用したライブラリファイルをobject/library modulesに追加します.
----------------------------------------------------------------------------------------------------------------------------------GSLはWindows開発環境での2005-9-11 GSL(GNU Scientific Library)は非常に優れた科学計算関数ライブラリであり、当駅の前にすでに紹介されている文章があります.本文は主にWin 32プラットフォームの3つの異なる開発環境の下でどのようにこのソフトウェアライブラリを使ってまずGSL win 32のセットプログラムをダウンロードするかを紹介して、住所はgnuwin 32 GSLでBinariesとDeveloper filesをダウンロードする必要があります.ダウンロード後、ディレクトリD:tempに解凍し、次の手順に進みます.
MingW、Visual C++7.0、Borland C++Builderの3つの異なる開発環境について説明します.
一、MingWはまずD:tempの下のbinディレクトリの2つのdllダイナミックリンクライブラリ(libgsl.dllとlibgslcblas.dll)をmingwのbinディレクトリにコピーする(gccパスはPATHでなければならない)、またはC:WindowsまたはC:Windowssystem 32に直接コピーする.つまりプログラムが実行されると、この2つのダイナミックリンクライブラリを見つけることができる必要がある.D:tempinclude下gslディレクトリをmingwのincludeディレクトリに完全にコピーします.これらはすべてヘッダファイルで、開発プログラムで使用する必要があります.そしてD:templibの下のlibgsl.aとlibgslcblas.a mingwのlibディレクトリにコピーします.
すべての準備ができているので、テストプログラムをコンパイルして正常に動作しているかどうかを確認してみることができます.そうすると、開発プロセス全体がLinuxの下でGSLプログラムを開発するのと同じです.
コンパイルコマンドはgcc test.c -o text.exe -lgsl
二、Visual C++7.0
前述のように、2つのダイナミックリンクライブラリをPATHパスのディレクトリにコピーしてからD:tempincludegslディレクトリをVisual C++のIncludeディレクトリにコピーし、D:templibのlibgslをコピーする必要がある.libとlibgslcblas.libはVisual C++のlibディレクトリにコピーされます.これで準備が終わり、簡単なプログラムを持ってテストします.
コンパイルコマンドはcl testです.c/link libgsl.libがIDEを使用する場合は、この2つのlibファイルをlinkパラメータに追加する必要があります.
三、Borland C++Builderは依然として同じである.まず、その2つのダイナミックリンクライブラリをPATHパスのディレクトリの下にコピーし、D:tempincludeの下gslディレクトリをBorland C++BuilderのIncludeディレクトリの下にコピーする必要がある.
次の手順は少し面倒ですが、その2つのdllがあるディレクトリに入り、BCBが持っているimplibツールで使用するlibファイルを2つ生成します.コマンドは以下の通りです.
implib -af libgsl.lib libgsl.dll      
        implib -af libgslcblas.lib libgslcblas.dllは、この2つのlibファイルをBCBのlibディレクトリにコピーすればよい.D:temllibの下のlibgsl-bcc.libとlibgslcblas-bcc.libは私の試験を経てBCBコンパイルでは使用できません.implibで生成されたlibファイルしか使用できません.テストを開始し、コマンドをコンパイルします.
bcc32 test.c libgsl.libコマンドラインは、BCBのIDEを使用すれば、より簡単です.この2つのlibファイル名をコンパイルパラメータに追加すればいいです.
事の経過はこんなに簡単だ.次はtestです.cのソースコード
#i nclude <stdio .h> 
#i nclude <gsl /gsl_sf_bessel.h> 
int main (void) 
{ 
    double x = 5.0; 
    double y = gsl_sf_bessel_J0(x); 
    printf ("J0(%g) = %.18en", x, y); 
    return 0; 
} 

 
本住所:http://read.newbooks.com.cn/info/195035.html
vc 6にWinGslを同時に加えると.libとWinGsld.lib後、MSVCRTの問題が発生します.次は解決策です.http://hi.baidu.com/yuanqizhu/blog/item/026f187bd7f25df10bd1879e.html