uBLAS——Boost 线性代数基础程序库

uBLAS:Basic Linear Algebra Subprograms,基于 Boost 的 C++ 模板类库。

  • (1)其在 Boost 位于的命名空间(namespace)为:

    boost::numeric::ublas
    为了保证命名空间的简洁性:

    namespace ublas = boost::numeric::ublas;

matrix

#include <boost\numeric\ublas\matrix.hpp>

The templated class matrix <T, L, A> is the base container adaptor for dense matrices.

  • T: The type of object stored in the matrix.
  • L: Functor describing the storage organization,默认为row_major

    ublas::row_major;
    ublas::column_major;
  • A: The type of the Storage array,默认为 unbounder_array<T>

For a Mm×n and 0i<m,0j<n every element Mi,j is mapped to the i×n+j -th element ofthe container for row major orientation(行序优先) or the (i+j×m) -th element of the container for column major orientation(列序优先).

核心成员函数:

  • (1)size1(),size2()

    • size1():返回行数
    • size2():返回列数
  • (2)三个参数的构造函数

    分别表示:行数、列数、初始化的值,默认不进行初始化

    ublas::matrix<double> M(3, 3, 1);
                    // 33 列,全部 entry 初始化为 1

特殊矩阵:

  • (1)单位矩阵

    ublas::identity_matrix<double> I(3);
  • (2)全零矩阵

    ublas::zero_matrix<double> Z(3);
  • (3)全1矩阵(未必为方阵,其构造也接受两个参数)

    ublas::scalar_matrix<double> S(3, 3);

其他头文件介绍

  • (1)支持 std::cout(标准控制台) 输出:

    
    #include <boost\numeric\ublas\io.hpp>
    
  • (2)

References

[1] Basic Linear Algebra Library

你可能感兴趣的:(uBLAS——Boost 线性代数基础程序库)