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

牽著老婆滿街逛

嚴以律己,寬以待人. 三思而后行.
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>
            久久精品视频亚洲| 99精品国产一区二区青青牛奶| 亚洲一区二区黄| 国产一区视频在线看| 日韩小视频在线观看专区| 亚洲电影免费观看高清完整版在线 | 国产午夜久久| 国产日韩在线一区| 亚洲大胆女人| 99精品欧美一区二区蜜桃免费| 在线亚洲美日韩| 久久精品电影| 亚洲国产成人一区| 亚洲蜜桃精久久久久久久| 久久在线视频| 欧美久久一区| 国产精品一级二级三级| 国产日韩在线视频| 亚洲国产欧美另类丝袜| 99视频精品全国免费| 性欧美激情精品| 欧美成人性网| 亚洲私人影院在线观看| 久久久亚洲午夜电影| 欧美视频在线观看免费网址| 国产亚洲欧美aaaa| 蜜桃伊人久久| 国产精品自拍网站| 欧美日韩免费| 极品少妇一区二区三区精品视频| 亚洲黄色一区| 久久本道综合色狠狠五月| 免费观看在线综合色| 亚洲美女视频在线免费观看| 性欧美8khd高清极品| 欧美福利视频在线观看| 国产美女一区二区| 亚洲社区在线观看| 亚洲第一中文字幕在线观看| 亚洲午夜久久久| 欧美黄色日本| 亚洲福利视频一区二区| 欧美在线影院在线视频| 亚洲精品一区二| 欧美a级一区| 伊人久久av导航| 日韩午夜在线观看视频| 亚洲伊人色欲综合网| 牛牛精品成人免费视频| 欧美一区二区三区视频在线| 欧美日本免费| 99re6热在线精品视频播放速度| 另类天堂av| 欧美中在线观看| 国产亚洲亚洲| 久久精品国产99精品国产亚洲性色 | 国产欧美日韩视频一区二区| 宅男噜噜噜66国产日韩在线观看| 欧美成人一区二免费视频软件| 先锋影音一区二区三区| 国产精品免费一区二区三区观看| 一本色道久久88综合亚洲精品ⅰ | 国产精品亚洲不卡a| aa日韩免费精品视频一| 亚洲精品国产精品久久清纯直播 | 欧美自拍偷拍| 1000部国产精品成人观看| 久久手机精品视频| 久久综合九色综合欧美狠狠| 在线视频国内自拍亚洲视频| 蜜桃av噜噜一区| 另类激情亚洲| 香港成人在线视频| 久久精品99国产精品日本| 久久免费视频在线观看| 国产亚洲精品aa| 美日韩精品视频免费看| 久久亚洲精品一区二区| 亚洲高清激情| 亚洲精品资源| 国产精品美女久久久久久2018 | 一区二区视频欧美| 欧美国产另类| 欧美午夜精品久久久| 性伦欧美刺激片在线观看| 午夜精品视频在线观看| 影音先锋日韩精品| 最新国产成人av网站网址麻豆| 欧美三区视频| 蜜臀av一级做a爰片久久| 欧美电影免费观看网站| 亚洲欧美一区二区三区久久| 久久成人在线| 一本大道av伊人久久综合| 亚洲综合精品四区| 亚洲国产精品传媒在线观看| 99视频热这里只有精品免费| 国产亚洲欧美日韩在线一区| 免费中文字幕日韩欧美| 欧美午夜精品一区二区三区| 另类亚洲自拍| 欧美午夜精品久久久久久孕妇| 久久亚洲视频| 国产精品乱码久久久久久| 欧美成人免费大片| 国产欧美三级| 一区二区日韩| 日韩天堂在线观看| 久久野战av| 久久精品系列| 国产精品免费网站在线观看| 欧美大片在线观看一区| 国产毛片一区| 亚洲视频免费在线| 99国产精品久久久久久久| 久久国内精品自在自线400部| 亚洲一区二区三区精品在线观看| 蜜桃精品一区二区三区 | 久久综合亚州| 国产情人节一区| 艳妇臀荡乳欲伦亚洲一区| 亚洲日本va在线观看| 久久久久欧美精品| 久久精品国产亚洲一区二区| 欧美三区在线视频| 日韩视频免费在线| 一本色道久久99精品综合| 欧美成人免费一级人片100| 久久亚裔精品欧美| 激情亚洲网站| 久久久久久亚洲精品杨幂换脸| 欧美专区一区二区三区| 国产精品久久久久久影视| 久久成人资源| 亚洲影院免费| 欧美日韩国内自拍| 亚洲精品一区二区网址 | 国产欧美日韩| 午夜精品久久久久久久99水蜜桃| 亚洲与欧洲av电影| 国产精品久久久久久影院8一贰佰 国产精品久久久久久影视 | 麻豆av一区二区三区久久| 国产亚洲亚洲| 久久久国产精品一区| 免费成人小视频| 在线欧美一区| 欧美精品尤物在线| 一区二区三区 在线观看视频| 一区二区三区视频观看| 欧美性久久久| 欧美一区二区三区免费观看视频| 欧美综合激情网| 一区二区三区在线视频观看| 久久亚洲国产精品一区二区| 免费试看一区| 夜久久久久久| 国产欧美精品日韩| 久久久亚洲欧洲日产国码αv| 欧美成va人片在线观看| 亚洲精品小视频在线观看| 欧美日韩一区二区免费视频| 亚洲午夜黄色| 欧美成人乱码一区二区三区| a4yy欧美一区二区三区| 国产精品视频免费观看www| 久久国产精品99精品国产| 欧美岛国激情| 性欧美18~19sex高清播放| 在线观看久久av| 亚洲视频999| 91久久午夜| 中文欧美在线视频| 国产日韩一区二区三区| 久久精品日韩欧美| 日韩午夜剧场| 久久久亚洲精品一区二区三区| 亚洲国产婷婷综合在线精品| 欧美日韩免费视频| 久久精品国产精品亚洲综合| 亚洲国产精品精华液2区45 | 国内精品视频久久| 欧美日韩精品在线视频| 欧美一区二区三区视频在线| 欧美国产在线电影| 久久er99精品| 日韩一级欧洲| 一区在线免费| 国产麻豆精品在线观看| 亚洲精选视频免费看| 欧美色道久久88综合亚洲精品| 亚洲视频大全| 亚洲电影第1页| 亚洲视频一二三| 国产亚洲高清视频| 欧美色图首页| 欧美第十八页| 久久久国产午夜精品| 午夜免费日韩视频| 一本色道久久综合亚洲精品不| 麻豆成人综合网|