⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sparse_mult_col.cc

📁 一个通用的数学库
💻 CC
字号:
#include "mtl/matrix.h"#include "mtl/mtl.h"//#include "mtl/sparse_mult.h"#include "mtl/utils.h"int random(int range) {  return rand() % (range -1) + 1;}intmain(int argc, char* argv[]){  if (argc < 2) {    std::cerr << "sparse_mult_col <N>" << std::endl;    return -1;  }  using namespace mtl;  typedef double T;  typedef matrix<T, rectangle<>,                  compressed<>,                  column_major>::type  SparseMatrix;  typedef matrix<T, rectangle<>, dense<>,                  column_major>::type  DenseMatrix;  int N = atoi(argv[1]);  SparseMatrix A(N, N);  SparseMatrix B(N, N);  SparseMatrix C(N, N, N*N); // N*N is a hint for how many nnz there will be  for (int i = 0; i < N; ++i) {    for (int j = 0; j < N/10; ++j) {      A(i, random(N)) = T(random(5));      B(i, random(N)) = T(random(5));    }  }  DenseMatrix D(N, N);  DenseMatrix E(N, N);  DenseMatrix F(N, N);  mtl::set_value(D, 0);  mtl::set_value(E, 0);  mtl::set_value(F, 0);  copy(A, D);  copy(B, E);  mult(D, E, F);    mult(A, B, C);  if (matrix_equal(C, F))    std::cout << "success" << std::endl;  else {    std::cout << "failure" << std::endl;    print_column(C);    print_column(F);  }  std::cout << "C.nnz(): " << C.nnz() << std::endl;  return 0;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -