青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

牽著老婆滿街逛

嚴以律己,寬以待人. 三思而后行.
GMail/GTalk: yanglinbo#google.com;
MSN/Email: tx7do#yahoo.com.cn;
QQ: 3 0 3 3 9 6 9 2 0 .

vc.net2003下安裝和使用blitz++詳細指南

@author:armylau

@date:2004-8-12

?

一.起因

安裝和使用 blitz++ 時經常遇到問 , 查看了 ccboy 寫的《 VC++ _NET 2003 –安裝和使用 Boost 1_30 Blitz++0_6 》,但他寫的不詳細 , Blitz 的官方文檔也不清楚 , 只好自己來 , 花了不少時間才初步弄清楚。

?

二. Blitz 簡介

大家知道 Fortran 是公認的科學計算編程語言 , 大量數值計算庫都是基于 fortran , lapack. blitz++ 則為科學計算人員提供了面向對象的 C++ 的數值計算程序庫 , 速度能與 fortran77/90 匹配 .

??? 用過 matlab 的人知道 , matlab 是一種基于矩陣的第四代語言 , 它將每個變量都視作矩陣 , 賦值起來比起 c/c++/java 等主流語言起來非常方便 , blitz++ 也提供了這種矩陣的強大操作 , 而且性能比起 matlab 要快很多 , 這是因為兩種的語言特性所決定的 .

??? Blitz++ 最新的版本中提供了數組和向量 ( 即矩陣 ), 隨機數產生器 , 小向量和矩陣 .

??? 值得注意的是 , 與其它數值計算包相比較 , blitz 是非常有個性的 , 它不求高大全 , 如它并沒有提供所有的矩陣操作功能 , 如求特征向量 ,FFT 分析 . 它的特點在于面向對象、數組操作語法和模板操作( But the main focus of blitz is on array syntax   and stencil operations [4] 。矩陣操作功能,想起 STL 中的 VALARRY 了嗎? VALARRAY 中的功能這里都實現和加強了。這個在測試項目 MT1 中可以初步顯示 .

?

三.安裝與測試

1)??? 安裝 Blitz++-0.7 通用代碼

首先要安裝最原始的代碼包 , 源代碼是跨平臺的 , 只要 blitz 支持 .

http://www.oonumerics.org/blitz/ 下只有 0.6 版本的 , 最新的版本是 0.7, http://sourceforge.net/project/showfiles.php?group_id=63961 . 解壓縮 , 如到 C:\vc\Blitz++-0.7\

?

2)??? 安裝 Blitz-VS.NET1.5 -FOR vs.net2003 項目

如果想 blitz 能在 VS.net 下使用 , 就要定義相應的宏 , 使用相應的頭文件 , lib blitz++ 提供的類就行 . 而宏定義 ,Lib 的編譯項目文件 , 這些工作 Julian Cummings 已經為我們做好 . blitz++ 的主頁上查看 supported platforms, 看到 blitz for vs.net, 循提示去到 blitz sourceforge cvs 下查找 , cvs 目錄下 http://cvs.sourceforge.net/viewcvs.py/blitz/blitz , 下載兩個文件 : Blitz-VS.NET.zip README-VS.NET.txt, 我下載時的這兩個文件的最新版本分別是 1.6 1.1

?

?

blitz-VS.NET zip 解壓縮 , 它的主目錄與 C:\vc\Blitz++-0.7 的相同 , 我們假設它為 C:\vc\Blitz-VS.NET1.6 , 目錄結構如下 :

Blitz\

Blitz-Testsuite\

Blitz-Library.ncb

Blitz-Library.sln

Blitz-Library.suo

?

blitz\ 里面是 config.h, 它定義了 blitz 相關的宏變量 , BZ_HAVE_COMPLEX, BZ_HAVE_STL 等等 , 這是每個項目必須用到的 .

?

blitz 目錄里面還有一個 VC 項目文件 , 這個項目是用來生成 blitz.lib 文件的, 稍后我們將提到如何設置生成。

?

3)??? 生成 blitz.lib

啟動 vs.net2003, 設置 : 工具 -> 選項 -> 項目 ->VC++ 目錄 , 包含文件 中添加 blitz-0.7 的路徑 ( cl 中的 /I 參數 ) ,如 C:\vc\blitz 下圖為我的配置

?

include?

使用 vs.net2003 打開為 C:\vc\Blitz-VS.NET1.6\blitz\ blitz.vcproj, 如上所述 , 我們正是用這個項目來產生 blitz.lib . 它所使用的源文件就是 Blitz++-0.7\src\globals.cpp, 因為代碼原作者為了保持代碼的唯一份 , 所以沒有包括到這個 for vs.net 的壓縮包中 , 你要將原 Blitz++ 目錄下的 src 目錄拷貝到這里 . 如將 C:\vc\Blitz++-0.7\src 拷貝到 C:\vc\Blitz-VS.NET1.6\src

??? 編譯生成 blitz.lib. 編譯時會出現錯誤提示 , error PRJ0019: 工具從 ”copying blitz_d.lib..” 不必理會 , 這是 blitz BUG, DEBUG release 目錄下已經生成了我們所需的文件 ,debug 版本的為 blitz_d.lib, release 版本的為 blitz.lib.

??? 此時 , 為了以后的版本都能使用此 lib 文件 , 我們可以配置一下全局選項 :

首先在 \Blitz-VS.NET1.6\ 下新建一 lib 目錄 , blitz.lib blitz_d.lib 拷貝進去 . 在工具 -> 選項 -> 項目 ->VC++ 目錄 -> 庫文件下添加我們 lib 的路徑

?

?

?

4) 編譯和測試 blitz-testsuit

vs.net2003 打開 Blitz-Library.sln, 里面包括了 54 個測試用例 .

Blitz++-0.7 下的 testsuite 目錄拷貝到 Blitz-VS.NET1.6, 原因也是為了保持代碼的唯一性 , 據作者所說 [4] .

要確認這點 , 可以打開項目配置文件 vsproj, 用文本編輯器如 notepad 打開 , 查看

<Files>

?????? <Filter

?????????? Name="Source Files"

?????????? Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm">

?????????? <File

????????????? RelativePath="..\..\testsuite\ctors.cpp"> ?

?????????? </File>

?????? </Filter>

??? </Files>

?

? 確定項目選項輸入庫為 blitz_d.lib blitz.lib

??? 編譯 , 執行 .?

?

1) 如測試 ABA1, 這是求數組的最大值的測試

源代碼為 :

#include

BZ_USING_NAMESPACE(blitz)

int main()

{

??? Array<double,1> psiElem(3);

??? psiElem =

????? -0.121990517304243,-0.099118834514638,-0.164750336116265;

?

??? double psi_max = blitz::max(psiElem);

??? cout << "psiElem = " << psiElem << endl;

??? cout << "psi_max = " << psi_max << endl;

}

?

結果為 :

psiElem = 3

?[ -0.121991 -0.0991188? -0.16475? ]

psi_max = -0.0991188

?

2) 測試 MT1 – 主要測試矩陣賦值與操作語法 ,index 的使用等等 .

源碼 :

#include

?

BZ_USING_NAMESPACE(blitz)

?

#if 0

?

BZ_DECLARE_STENCIL2(kinEnergy,A,B)

B=Laplacian3D(A);

BZ_END_STENCIL_WITH_SHAPE(shape(-1,-1,-1),shape(1,1,1))

?

typedef complex<double> T_num;

?

typedef Array array3d;

?

int main()

{

???? const int N=5;

???? array3d A(N,N,N);

???? array3d B(N,N,N);

?

???? // Fill a three-dimensional array with a Gaussian function

???? firstIndex i;

???? secondIndex j;

???? thirdIndex k;

???? float midpoint = 15/2.;

???? float c = - 1/3.0;

???? A = exp(c * (sqr(i-midpoint) + sqr(j-midpoint)

???????? + sqr(k-midpoint)));

?

???? applyStencil(kinEnergy(), A, B);

?

???? Array out_view(B.data(),shape(N*N*N));

???? cout << out_view;

}

#endif

?

BZ_DECLARE_STENCIL2(footprint,A,B)

B = Laplacian2D4(A);

BZ_END_STENCIL_WITH_SHAPE(shape(-2,-2),shape(+2,+2))

?

int main()

{

???? int N = 9;

???? Array<double,2> A(N,N), B(N,N);

???? A = 0;

???? A(4,4) = 1;

???? applyStencil(footprint(), A, B);

???? cout << B(Range(2,6),Range(2,6)) << endl;

}

?

結果為 :

5 x 5

[???????? 0???????? 0??????? -1???????? 0???????? 0

????????? 0???????? 0??????? 16???????? 0???????? 0

???????? -1??????? 16?????? -60??????? 16??????? -1

????? ????0???????? 0??????? 16???????? 0???????? 0

????????? 0???????? 0??????? -1???????? 0???????? 0 ]

?

?

?

五.在自己的項目中使用

一個很簡單的例子 ,

新建個人項目后 , 注意以下幾件事 :

1. 添加了 lib 或正確配置了 lib 的路徑 : blitz.lib 拷貝到項目下或在項目屬性中配置好引用路徑 .

2. 添加了 config.h, 將原來我們編譯 blitz.lib 的宏定義文件拷貝過來 .

3. 使用了 using namespace blitz

4. 正確使用 blitz 的庫對象

?

#include "stdafx.h"

#include "config.h"

#include

#include

?

using namespace blitz;

?

int main()

{

???? complex<int> c(4,8);

???? cout << c << endl;

?

???? Array<int,2> ar(2,2) ;

???? ar =1,1,

???????? 2,2;

???? cout << ar <

}

?

?

?

在編譯時 , 各種配置都要非常小心 , 一不小心就會出錯 , 按照以上的步驟一步一步來 , 應該不會有太大的錯誤 , 有任何問題或建議 , 可與我聯系 armylau@163.com

?

六.參考文獻:

1.??? [blitz] blitz 官方主頁,文檔

2.??? [IBM] C C++ 的矩陣庫-評估和比較 Meschach Cooperware 矩陣和 Blitz.htm   http://www-900.ibm.com/developerWorks/cn/linux/other/matrix/index.shtml

3.??? [ccboy] ccboy 寫的 VC++ _NET 2003 –安裝和使用 Boost 1_30 Blitz++0_6

4.??? [Julian C.]emails

?

/File/DIV>

posted on 2006-07-01 13:34 楊粼波 閱讀(1680) 評論(0)  編輯 收藏 引用

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            国产精品久久久久久久午夜片| 国产精品福利av| 国产精品v片在线观看不卡 | 亚洲欧洲99久久| 一本大道久久a久久综合婷婷| 亚洲欧洲av一区二区| 国产精品视频yy9299一区| 亚洲欧美日韩国产一区二区三区| 久热精品视频在线观看| 91久久久久久久久| 一区二区三区免费网站| 欧美亚一区二区| 久久精品综合一区| 欧美二区不卡| 亚洲午夜激情网页| 午夜激情亚洲| 亚洲精品五月天| 中文在线一区| 在线视频成人| 一本一道久久综合狠狠老精东影业| 久久精品一二三| 99re成人精品视频| 午夜精品久久久久久久久| 影音先锋日韩资源| 一区二区久久久久| 激情视频亚洲| 一区二区三区欧美日韩| 国产在线日韩| 日韩视频在线观看免费| 欧美激情综合五月色丁香| 亚洲淫性视频| 浪潮色综合久久天堂| 亚洲香蕉成视频在线观看| 欧美一级专区免费大片| 夜夜精品视频| 久久久久成人网| 香蕉亚洲视频| 欧美人体xx| 免费高清在线一区| 国产欧美欧美| 亚洲伦理在线| 亚洲黄色在线看| 午夜欧美大尺度福利影院在线看| 国产精品影片在线观看| 亚洲精品乱码久久久久久蜜桃91| 久久成人精品视频| 最近中文字幕日韩精品 | 亚洲一区二区三区四区中文| 久久国产精品黑丝| 午夜精品久久久久久久| 欧美日韩一区二区三区| 亚洲国产精品久久久久| 伊人久久久大香线蕉综合直播 | 在线观看视频一区| 亚洲欧美日韩国产成人| 亚洲夜间福利| 午夜亚洲福利| 亚洲欧美精品suv| 欧美日韩亚洲综合在线| 91久久国产精品91久久性色| 在线观看亚洲视频| 久久精品免费观看| 久久久精品性| 欧美国产一区在线| 欧美电影在线播放| 亚洲电影免费观看高清完整版| 91久久精品一区| 亚洲欧洲视频在线| 免费在线一区二区| 亚洲国产日韩欧美| 国产免费成人在线视频| 亚洲午夜女主播在线直播| 亚洲欧美清纯在线制服| 久久久xxx| 久久综合九色综合欧美狠狠| 国内精品久久久久久久影视蜜臀 | 亚洲在线视频观看| 国产精品va| 午夜久久99| 久久欧美中文字幕| 亚洲国产精品一区二区第四页av| 一本色道久久综合亚洲精品小说 | 国产在线高清精品| 欧美资源在线| 欧美黄色免费网站| 99精品免费| 国产精品自在欧美一区| 久久福利一区| 亚洲激情在线观看视频免费| 在线亚洲伦理| 国产视频在线一区二区| 久久亚洲精品一区二区| 最新中文字幕一区二区三区| 香蕉久久夜色精品| 在线成人www免费观看视频| 欧美99久久| 亚洲尤物在线视频观看| 你懂的亚洲视频| 亚洲一区免费网站| 狠狠色狠狠色综合日日tαg | 美国成人直播| 亚洲一区二区三区中文字幕| 亚洲欧美美女| 亚洲永久字幕| 亚洲高清不卡一区| 国产精品国产三级国产aⅴ9色| 欧美电影电视剧在线观看| 99视频超级精品| 国产日韩欧美麻豆| 欧美日韩国产另类不卡| 欧美一区二区三区免费视| 亚洲一区免费在线观看| 狠狠色噜噜狠狠色综合久| 欧美日韩精品福利| 亚洲美女黄网| 久久蜜桃av一区精品变态类天堂| 国产午夜久久久久| 亚洲欧美欧美一区二区三区| 欧美成人一区二免费视频软件| 亚洲高清久久网| 国产精品网站在线播放| 亚洲性人人天天夜夜摸| 亚洲国产成人tv| 久久国产精品久久久久久久久久 | 欧美激情1区| 欧美一区深夜视频| 亚洲午夜精品一区二区三区他趣| 亚洲——在线| 亚洲伦理一区| 最新成人在线| 在线观看日韩欧美| 红桃av永久久久| 韩国精品久久久999| 国产欧美亚洲精品| 国产精品人人做人人爽人人添| 欧美一级淫片aaaaaaa视频| 久久精品国产在热久久| 亚洲影院免费观看| 亚洲深夜福利| 中文久久精品| 亚洲一级黄色| 一区二区三区欧美激情| 亚洲美女中文字幕| 国产精品久久久久一区| 午夜精品久久久久久久99樱桃| 久久一综合视频| 久久尤物电影视频在线观看| 久久九九热免费视频| 亚洲国内高清视频| 亚洲娇小video精品| 最新日韩av| 999在线观看精品免费不卡网站| 国产精品久久9| 国产精品人成在线观看免费| 国产麻豆精品theporn| 久久久久网站| 欧美成人免费va影院高清| 欧美/亚洲一区| 欧美日韩国产成人在线| 久久精品二区三区| av成人黄色| 亚洲视频一区二区在线观看| 美国十次成人| 午夜精品久久久久久久久久久久| 伊大人香蕉综合8在线视| 在线成人国产| 一区二区精品| 欧美一区在线视频| 欧美激情按摩| 亚洲一区二区在线免费观看| 欧美影院一区| 欧美日本精品| 国产一区二区电影在线观看| 在线看国产日韩| 在线亚洲欧美视频| 亚洲国产高清一区| 一级成人国产| 久久国产精彩视频| 国产日韩av高清| 国产乱人伦精品一区二区| 欧美电影免费| 国产精品夜夜夜| 激情视频一区二区| 一本到高清视频免费精品| 欧美在线精品免播放器视频| 亚洲国产精品黑人久久久 | 欧美日韩国产精品| 国产日韩精品一区观看| 亚洲精品乱码久久久久| 久久九九国产| 亚洲一区中文| 欧美国产91| 欧美一级二区| 欧美日韩中文在线观看| 加勒比av一区二区| 国产欧美视频一区二区三区| 亚洲精品一区在线观看香蕉| 久久国产日韩| 亚洲一二区在线| 欧美精品一区二区三区久久久竹菊|