From ea1401279631fd9cc13bc79a49eb5b58d4ea7265 Mon Sep 17 00:00:00 2001 From: ypodlesov Date: Sun, 19 May 2024 16:04:40 +0300 Subject: [PATCH] Remove dependence from submodules. --- CMakeLists.txt | 6 +----- matrix_powers_mv/CMakeLists.txt | 3 ++- matrix_powers_mv/matrix_powers_mv.cpp | 31 +++++++++++++++++++++++++-- matrix_powers_mv/matrix_powers_mv.h | 1 + matrix_powers_mv/test.cpp | 23 -------------------- 5 files changed, 33 insertions(+), 31 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 3eaa8df..0271c09 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -28,11 +28,7 @@ function(add_if_exists name) endfunction() set(BASIC_LA_PATH ${CMAKE_CURRENT_SOURCE_DIR}/basic_la) -set(GKLIB_PATH ${CMAKE_CURRENT_SOURCE_DIR}/GKlib) -set(METIS_INCLUDE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/METIS/include) -set(METIS_COPTIONS "${METIS_COPTIONS} -DIDXTYPEWIDTH=64") -set(METIS_COPTIONS "${METIS_COPTIONS} -DREALTYPEWIDTH=64") -set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${METIS_COPTIONS}") +set(METIS_INCLUDE_PATH ~/local/include) add_if_exists(basic_la) add_if_exists(qr_decomposition) diff --git a/matrix_powers_mv/CMakeLists.txt b/matrix_powers_mv/CMakeLists.txt index b83194f..f364583 100644 --- a/matrix_powers_mv/CMakeLists.txt +++ b/matrix_powers_mv/CMakeLists.txt @@ -3,4 +3,5 @@ target_include_directories(test_matrix_powers_mv PRIVATE ${BASIC_LA_PATH}) target_link_libraries(test_matrix_powers_mv PRIVATE BASIC_LA) target_include_directories(test_matrix_powers_mv PRIVATE ${METIS_INCLUDE_PATH}) -target_link_libraries(test_matrix_powers_mv PRIVATE metis) \ No newline at end of file +target_link_libraries(test_matrix_powers_mv PRIVATE ~/local/lib/libmetis.so) +target_link_libraries(test_matrix_powers_mv PRIVATE /home/e.podlesov/local/lib/libGKlib.a) \ No newline at end of file diff --git a/matrix_powers_mv/matrix_powers_mv.cpp b/matrix_powers_mv/matrix_powers_mv.cpp index 7e7ac91..417e12d 100644 --- a/matrix_powers_mv/matrix_powers_mv.cpp +++ b/matrix_powers_mv/matrix_powers_mv.cpp @@ -1,6 +1,33 @@ #include "matrix_powers_mv.h" -void MatrixPowersMV(const SparseMatrix& /* sp_matrix */, const Vector& /* x */, const Vector*>& /* res */) { - return; +#include + +int ReorderMatrix(const SparseMatrix& sp_matrix) { + SparseMatrix a_no_diag; + sp_matrix.RemoveDiag(a_no_diag); + idx_t* perm = new idx_t[a_no_diag.row_cnt_]; + idx_t* iperm = new idx_t[a_no_diag.row_cnt_]; + idx_t options[METIS_NOPTIONS]; + METIS_SetDefaultOptions(options); + options[METIS_OPTION_NUMBERING] = 0; + int result; + { + // int METIS_NodeND(idx_t *nvtxs, idx_t *xadj, idx_t *adjncy, idx_t *vwgt, + // idx_t *options, idx_t *perm, idx_t *iperm); + + result = METIS_NodeND( + &a_no_diag.row_cnt_ + , a_no_diag.i_a_ + , a_no_diag.j_a_ + , nullptr + , options + , perm + , iperm + ); + } + if () } +void MatrixPowersMV(const SparseMatrix& /* sp_matrix */, const Vector& /* x */, const Vector*>& /* res */) { + return; +} \ No newline at end of file diff --git a/matrix_powers_mv/matrix_powers_mv.h b/matrix_powers_mv/matrix_powers_mv.h index e075feb..e08958b 100644 --- a/matrix_powers_mv/matrix_powers_mv.h +++ b/matrix_powers_mv/matrix_powers_mv.h @@ -6,4 +6,5 @@ #define IDXTYPEWIDTH 64 #define REALTYPEWIDTH 64 +int ReorderMatrix(const SparseMatrix& sp_matrix); void MatrixPowersMV(const SparseMatrix& sp_matrix, const Vector& x, const Vector*>& res); \ No newline at end of file diff --git a/matrix_powers_mv/test.cpp b/matrix_powers_mv/test.cpp index 8ab5f02..46c0583 100644 --- a/matrix_powers_mv/test.cpp +++ b/matrix_powers_mv/test.cpp @@ -4,7 +4,6 @@ #include #include #include -#include #include #include @@ -22,30 +21,8 @@ static void Test(const uint32_t n) { fstream >> a; fstream.close(); REQUIRE(a.data_); - - a.RemoveDiag(a_no_diag); } - idx_t* perm = new idx_t[a_no_diag.row_cnt_]; - idx_t* iperm = new idx_t[a_no_diag.row_cnt_]; - idx_t options[METIS_NOPTIONS]; - METIS_SetDefaultOptions(options); - options[METIS_OPTION_NUMBERING] = 0; - int result; - { - // int METIS_NodeND(idx_t *nvtxs, idx_t *xadj, idx_t *adjncy, idx_t *vwgt, - // idx_t *options, idx_t *perm, idx_t *iperm); - - result = METIS_NodeND( - &a_no_diag.row_cnt_ - , a_no_diag.i_a_ - , a_no_diag.j_a_ - , nullptr - , options - , perm - , iperm - ); - } REQUIRE(result == METIS_OK); }