4

Blitz ++マトリックスのドキュメントはありますか?

Googleで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を検索すると、次のフォルダーが見つかりました。

moose@pc07:/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のコンピューターにあるはずです。しかし、どこで検索する必要がありますか?

4

1 に答える 1

3

www.oonumerics.orgのWeb サイトは現在壊れているようです。ただし、Blitz の完全なドキュメントは、SourceForgeのこのリンクからダウンロードできるパッケージに含まれています。

Blitz には のような特別なクラスはありませんBigMatrix。Matrix は単なる 2 次元配列なので、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/

于 2012-06-20T19:53:58.870 に答える