同步操作将从 Gitee 极速下载/NumCpp 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
#include "catch.hpp"#include <numcpp.h>#include <numcpp/sparse.h>#include <numcpp/solvers.h>using namespace numcpp;TEST_CASE( "numcpp/sparse/sparseMatrix", "Sparse matrix test" ){{auto data = randn<double>(3);auto index = array<size_t>({ 0, 1, 2 });auto ptr = array<size_t>({ 0, 1, 2, 3 });SparseMatrixCRS<double> A(data, index, ptr, 3, 3);Array<double> x = ones(3);auto y = dot(A, x);auto r = cgnr(A, y, 3);REQUIRE( norm(x - r) < 1e-6 );}{auto data = randn<double>(3);auto index = array<size_t>({ 0, 1, 2 });auto ptr = array<size_t>({ 0, 1, 2, 3 });SparseMatrixCRS<double> A(data, index, ptr, 3, 3);Array<double> x = ones(3);auto y = dot(A, x);auto r = kaczmarz(A, y, 100);REQUIRE( norm(x - r) < 1e-6 );}{auto A = Array<double>({0, 1, 0,2, 0, 4,1, 0, 0}, 3, 3);Array<double> x = ones(3);auto y = dot(A, x);//print(y);SparseMatrixCRS<double> B(A, 0.1);auto z = dot(B, x);//print(z);REQUIRE( norm(y - z) < 1e-6 );//std::cout << "norm(x,y) = " << norm( B(1,full) ) << std::endl;}}TEST_CASE( "numcpp/sparse/sparseVector", "Sparse vector test" ){{auto data = array<double>({1, 3, 5});auto index = array<size_t>({ 0, 2, 3 });SparseVector<double> x(data, index, 6);Array<double> y = 2*ones(5);Array<double> z = ones(6);z = 2*x;std::cout << z;//std::cout << "dot(x,y) = " << dot(x, y) << std::endl;//std::cout << "norm(x,y) = " << norm(x) << std::endl;}}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。