#include #include #include #include int main() { /* octave:1> A=[3 2 -1; 2 -2 4; -1 .5 -1]; octave:2> b=[ 1; -2; 0]; octave:3> inv(A)*b ans = 1.00000 -2.00000 -2.00000 */ vnl_sparse_matrix A(3,3); std::cout << "Rows: " << A.rows() << std::endl; std::cout << "Cols: " << A.columns() << std::endl; A(0,0) = 3; A(0,1) = 2; A(0,2) = -1; A(1,0) = 2; A(1,1) = -2; A(1,2) = 4; A(2,0) = -1; A(2,1) = .5; A(2,2) = -1; vnl_vector< double > b(3); b(0) = 1; b(1) = -2; b(2) = 0; std::cout << "b = " << b << std::endl; //Ax - b = 0, solution should be x = (1 -2 -2) vnl_vector< double > x(3); vnl_sparse_lu linear_solver(A, vnl_sparse_lu::estimate_condition); linear_solver.solve(b,&x); double det = linear_solver.determinant(); double rcond = linear_solver.rcond(); double upbnd = linear_solver.max_error_bound(); std::cout << "x = " << x << std::endl; return 0; } -------------------- Project(SparseLinearSystem) FIND_PACKAGE(VXL REQUIRED) INCLUDE(${VXL_CMAKE_DIR}/UseVXL.cmake) ADD_EXECUTABLE(SparseLinearSystem SparseLinearSystem.cpp) TARGET_LINK_LIBRARIES(SparseLinearSystem vnl rrel) ------------- In file included from /media/portable/Examples/c++/src/VXL/VNL/SparseLinearSystem/SparseLinearSystem.cpp:5: /home/doriad/src/vxl/core/vnl/algo/vnl_sparse_lu.h:20:29: error: sparse/spMatrix.h: No such file or directory In file included from /media/portable/Examples/c++/src/VXL/VNL/SparseLinearSystem/SparseLinearSystem.cpp:5: /home/doriad/src/vxl/core/vnl/algo/vnl_sparse_lu.h:111: error: ‘spMatrix’ does not name a type make[2]: *** [CMakeFiles/SparseLinearSystem.dir/SparseLinearSystem.o] Error 1