Is there any documentation on Blitz ++ matrices?

Is documentation available for available Blitz ++ matrices?

I found http://www.oonumerics.org/blitz//manual/blitz01.html from Google, but this does not seem to contain documentation.

The only useful example I found is 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; } 

But this small example does not answer many of my questions:

  • Is there something like BigMatrix?
  • How to create a matrix when I do not know their size at compile time?
  • What other operations do these matrices support?

Search tinymat.h found this folder:

 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 

So, I think Matrix for large matrices. But how to multiply them? Also, this is not my favorite way to learn something about the library.

I have installed libblitz-doc - C++ template class library for scientific computing , so the documentation should be on my computer. But where should I look?

+4
source share
1 answer

Www.oonumerics.org seems broken at the moment. However, full documentation for Blitz is included in the package, which can be downloaded from this link at SourceForge.

Blitz has no special class like BigMatrix . The matrix is ​​just a two-dimensional array, so use the Array pattern. You do not need to know the size of the array / matrix at compile time. Here is a small example from the docs:

 #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; } 

If you are using a Debian-based distribution, dpkg -L libblitz-doc will show the contents of the libblitz-doc package and you will see where the documents are. On my machine, they are located in /usr/share/doc/libblitz-doc/

+3
source

All Articles