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

牽著老婆滿街逛

嚴以律己,寬以待人. 三思而后行.
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>
            亚洲国产精品久久人人爱蜜臀| 亚洲精品久久7777| 久久精品91| 久久av一区二区三区亚洲| 欧美一级专区免费大片| 欧美一级网站| 久久一区亚洲| 欧美经典一区二区| 欧美日韩三级视频| 欧美午夜宅男影院| 国产欧美一区二区精品性色| 尹人成人综合网| 日韩午夜在线播放| 午夜精品久久久久久久久久久久| 欧美区视频在线观看| 欧美三级黄美女| 国产综合色一区二区三区| 亚洲国产日韩欧美综合久久 | 亚洲日本成人女熟在线观看| 日韩午夜视频在线观看| 欧美在线国产| 欧美激情国产日韩| 亚洲深夜福利视频| 久久一区二区三区超碰国产精品| 欧美日韩99| 一区二区在线视频观看| 亚洲少妇诱惑| 欧美激情一区三区| 欧美一区二区三区四区在线 | 宅男噜噜噜66一区二区66| 欧美在线视频一区二区| 欧美人妖在线观看| 亚洲国产另类久久精品| 久久av二区| 亚洲精品免费一二三区| 久久精品一区| 国产欧美精品日韩精品| 一区二区三区高清在线| 欧美va亚洲va日韩∨a综合色| 日韩视频免费观看| 欧美激情二区三区| 精品成人国产在线观看男人呻吟| 亚洲一区激情| 国内精品免费午夜毛片| 在线午夜精品自拍| 亚洲国产日韩欧美一区二区三区| 久久精品伊人| 国内综合精品午夜久久资源| 亚洲一区二区在线免费观看视频| 亚洲人成在线播放网站岛国| 久久一区二区三区国产精品| 国产亚洲一区二区三区在线播放| 亚洲免费视频网站| 99视频在线观看一区三区| 欧美紧缚bdsm在线视频| 亚洲日本欧美在线| 欧美激情无毛| 欧美成人按摩| 日韩午夜av| 亚洲免费成人av| 欧美日韩亚洲一区二区| 一区二区三区日韩精品视频| 亚洲精品看片| 欧美日韩在线综合| 亚洲欧美一区二区激情| 亚洲一区免费在线观看| 国产伦精品一区二区三| 久久精品91久久久久久再现| 欧美在线一区二区| 亚洲国产精品专区久久| 亚洲精品视频免费在线观看| 国产精品成人一区| 久久激情五月丁香伊人| 久久国产一区二区| 亚洲福利一区| 亚洲精品视频一区| 国产欧美日本一区二区三区| 久久精品亚洲| 久久伊人亚洲| 中文亚洲欧美| 亚洲一区免费| 在线色欧美三级视频| 亚洲人成7777| 国产精品国产三级国产专区53| 亚洲欧美国产精品va在线观看 | 欧美一级二区| 欧美在线资源| 亚洲免费观看高清完整版在线观看熊| 亚洲美女在线看| 国产日韩综合一区二区性色av| 久久综合色播五月| 欧美日韩精品欧美日韩精品一| 性视频1819p久久| 久久免费精品日本久久中文字幕| 亚洲欧洲综合另类| 一区二区三区日韩欧美精品| 好吊色欧美一区二区三区视频| 欧美激情第一页xxx| 国产精品羞羞答答| 亚洲电影免费观看高清完整版在线观看 | 亚洲午夜在线观看| 国产精品系列在线播放| 欧美 日韩 国产在线| 欧美日韩在线播| 麻豆freexxxx性91精品| 国产精品黄色在线观看| 麻豆精品一区二区综合av| 国产精品成人免费| 亚洲激情女人| 在线观看欧美一区| 亚洲欧美日韩中文视频| 99亚洲视频| 美日韩丰满少妇在线观看| 欧美在线视频免费播放| 欧美性猛片xxxx免费看久爱| 亚洲国产精品一区二区三区| 国内不卡一区二区三区| 亚洲宅男天堂在线观看无病毒| 99在线精品观看| 欧美成人在线免费视频| 免费视频久久| 精品成人在线观看| 先锋资源久久| 性刺激综合网| 国产精品乱人伦中文| 日韩西西人体444www| 亚洲精选国产| 欧美黄色网络| 亚洲黄色成人| 亚洲毛片一区二区| 欧美激情综合色综合啪啪| 亚洲国产精品久久久久| 亚洲国产精品电影| 美脚丝袜一区二区三区在线观看 | 亚洲黄色免费电影| 久久一二三国产| 美女黄毛**国产精品啪啪| 国内精品久久久久久 | 美日韩丰满少妇在线观看| 国产一区二区三区四区五区美女| 亚洲综合国产激情另类一区| 欧美亚洲免费在线| 国产一区二区三区电影在线观看| 欧美亚洲综合在线| 久久人人爽人人爽| 亚洲第一精品夜夜躁人人躁| 欧美a级片网站| 99国产精品一区| 欧美一区二区成人| 激情婷婷欧美| 欧美大片免费看| 亚洲精品中文字幕在线观看| 亚洲一区二区视频在线| 国产精品欧美日韩一区| 欧美一区二区三区啪啪| 欧美h视频在线| 日韩一级在线观看| 国产精品日日摸夜夜添夜夜av | 亚洲区一区二区三区| 亚洲一区精品电影| 狠狠色综合网| 久久精品最新地址| 亚洲片在线观看| 久久久综合精品| 欧美福利影院| 亚洲婷婷综合久久一本伊一区| 国产精品chinese| 西西裸体人体做爰大胆久久久| 麻豆九一精品爱看视频在线观看免费| 亚洲第一主播视频| 欧美午夜精品伦理| 久久免费视频在线观看| 日韩视频在线一区二区| 久久精品免费看| 日韩一级在线观看| 国产一区二区你懂的| 欧美另类综合| 久久久久久久97| 一个色综合导航| 欧美肥婆bbw| 欧美在线亚洲在线| 亚洲肉体裸体xxxx137| 国产日韩欧美高清| 欧美日韩一区二区欧美激情| 久久精品男女| 午夜久久久久| 夜夜夜精品看看| 亚洲大胆视频| 久久久久久穴| 欧美一区二区三区久久精品| 亚洲美女一区| 亚洲国产精品视频一区| 国产中文一区| 国产九区一区在线| 欧美视频在线观看一区| 欧美大学生性色视频| 久久女同精品一区二区| 欧美在线亚洲综合一区| 亚洲自拍16p| 一区二区三区视频在线播放|