2012-06-20 91 views
4

是否提供Blitz ++矩陣的文檔?是否提供Blitz ++矩陣的文檔?

我發現http://www.oonumerics.org/blitz//manual/blitz01.html與谷歌,但這似乎並不包含文件。

我發現的唯一有用的例子,這是一個從Rosettacode

#include <iostream> 
#include <blitz/tinymat.h> 

int main() 
{ 
    using namespace blitz; 

    TinyMatrix<double,3,3> A, B, C; 

    A = 1, 2, 3, 
     4, 5, 6, 
     7, 8, 9; 

    B = 1, 0, 0, 
     0, 1, 0, 
     0, 0, 1; 

    C = product(A, B); 

    std::cout << C << std::endl; 
} 

但這個小例子並沒有回答我的問題很多:

  • 是否像BigMatrix存在嗎?
  • 如何在編譯時不知道它們的大小時創建矩陣?
  • 這些矩陣支持哪些其他操作?

一種tinymat.h搜索發現這個文件夾:

[email protected]:/usr/include/blitz$ ls 
applics.h  matbops.h  ops.h   tinyvec-et.h vecglobs.h 
array   matdiag.h  prettyprint.h tinyvec.h  vecio.cc 
array.h  matexpr.h  promote.h  tinyvecio.cc veciter.h 
array-impl.h matgen.h  promote-old.h tinyveciter.h vecmax.cc 
array-old.h mathf2.h  rand-dunif.h traversal.cc vecmin.cc 
bench.cc  mathfunc.h rand-mt.h  traversal.h vecnorm1.cc 
benchext.cc matltri.h  rand-normal.h tuning.h  vecnorm.cc 
benchext.h  matref.h  random.h  tvcross.h  vecpick.cc 
bench.h  matrix.cc  randref.h  tvecglobs.h vecpick.h 
blitz.h  matrix.h  rand-tt800.h update.h  vecpickio.cc 
bzconfig.h  matsymm.h  rand-uniform.h vecaccum.cc vecpickiter.h 
bzdebug.h  mattoep.h  range.h   vecall.cc  vecsum.cc 
compiler.h  matuops.h  reduce.h  vecany.cc  vector.cc 
config.h  matutri.h  shapecheck.h vecbfn.cc  vector-et.h 
etbase.h  memblock.cc tau.h   vecbops.cc  vector.h 
extremum.h  memblock.h timer.h   veccount.cc vecuops.cc 
funcs.h  meta   tiny.h   vecdelta.cc vecwhere.cc 
gnu   minmax.h  tinymatexpr.h vecdot.cc  vecwhere.h 
indexexpr.h mstruct.h  tinymat.h  vecexpr.h  wrap-climits.h 
limits-hack.h numinquire.h tinymatio.cc vecexprwrap.h zero.cc 
listinit.h  numtrait.h tinyvec.cc  vecglobs.cc zero.h 

所以我想Matrix是更大的矩陣。但是,我如何增加它們呢?另外,這並不是我學習圖書館的首選方式。

我安裝了libblitz-doc - C++ template class library for scientific computing,所以文檔應該在我的電腦上。但是我必須在哪裏搜索?

回答

3

www.oonumerics.org網站似乎目前被打破。然而,Blitz的完整文檔包含在可在SourceForge上從this link下載的軟件包中。

在閃電戰中沒有像BigMatrix這樣的特殊課程。矩陣只是一個二維數組,因此請使用Array模板。您不必在編譯時知道數組/矩陣的大小。下面是從文檔的一個小例子:

#include <blitz/array.h> 

using namespace blitz; 

int main() 
{ 
    Array<int,2> A(6,6), B(3,3); 

    // Set the upper left quadrant of A to 5 
    A(Range(0,2), Range(0,2)) = 5; 

    // Set the upper right quadrant of A to an identity matrix 
    B = 1, 0, 0, 
     0, 1, 0, 
     0, 0, 1; 
    A(Range(0,2), Range(3,5)) = B; 

    // Set the fourth row to 1 
    A(3, Range::all()) = 1; 

    // Set the last two rows to 0 
    A(Range(4, Range::toEnd), Range::all()) = 0; 

    // Set the bottom right element to 8 
    A(5,5) = 8; 

    cout << "A = " << A << endl; 

    return 0; 
} 

如果您使用的是基於Debian的發行,dpkg -L libblitz-doc將揭示libblitz-doc包的內容,你可以看到該文檔的位置。在我的機器上,他們在/usr/share/doc/libblitz-doc/