From 8ce2dafc74f83653348154cc5bc8fd0a2b08a991 Mon Sep 17 00:00:00 2001 From: liutao Date: Mon, 27 Apr 2026 17:10:57 +0800 Subject: [PATCH 1/4] modify gtest --- CMakeLists.txt | 24 +++++++++++-------- .../ATen/kernels/test/CMakeLists.txt | 4 +--- source/source_base/truncated_func.h | 6 +++++ source/source_hsolver/test/CMakeLists.txt | 14 +++++------ .../source_lcao/module_rt/test/CMakeLists.txt | 11 ++++----- 5 files changed, 33 insertions(+), 26 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 6dc0bf4b5f8..ddb21144d6b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -338,11 +338,19 @@ if (USE_DSP) endif() if (USE_SW) add_compile_definitions(__SW) + dd_compile_options(-mieee) set(SW ON) include_directories(${SW_MATH}/include) include_directories(${SW_FFT}/include) - target_link_libraries(${ABACUS_BIN_NAME} ${SW_FFT}/lib/libfftw3.a) + list(APPEND math_libs + ${SW_FFT}/lib/libfftw3.a + ${SW_MATH}/libswfft.a + ${SW_MATH}/libswscalapack.a + ${SW_MATH}/libswlapack.a + ${SW_MATH}/libswblas.a + gfortran) +>>>>>>> Stashed changes endif() find_package(Threads REQUIRED) @@ -737,6 +745,8 @@ if(DEFINED TensorFlow_DIR) endif() endif() +list(APPEND math_libs m) + add_compile_definitions(__FFTW3 __SELINV METIS) if(INFO) @@ -805,17 +815,11 @@ if(ENABLE_RAPIDJSON) target_link_libraries(${ABACUS_BIN_NAME} json_output) endif() -if (USE_SW) - target_link_libraries(${ABACUS_BIN_NAME} ${SW_MATH}/libswfft.a) - target_link_libraries(${ABACUS_BIN_NAME} ${SW_MATH}/libswscalapack.a) - target_link_libraries(${ABACUS_BIN_NAME} ${SW_MATH}/libswlapack.a) - target_link_libraries(${ABACUS_BIN_NAME} ${SW_MATH}/libswblas.a) - list(APPEND math_libs gfortran) -endif() - -list(APPEND math_libs m) +<<<<<<< Updated upstream +======= target_link_libraries(${ABACUS_BIN_NAME} ${math_libs}) +>>>>>>> Stashed changes install(PROGRAMS ${ABACUS_BIN_PATH} TYPE BIN # DESTINATION ${CMAKE_INSTALL_BINDIR} diff --git a/source/source_base/module_container/ATen/kernels/test/CMakeLists.txt b/source/source_base/module_container/ATen/kernels/test/CMakeLists.txt index 0ca3d97c26f..502737a5bad 100644 --- a/source/source_base/module_container/ATen/kernels/test/CMakeLists.txt +++ b/source/source_base/module_container/ATen/kernels/test/CMakeLists.txt @@ -1,8 +1,6 @@ AddTest( TARGET MODULE_BASE_container_kernels_uts - LIBS parameter ${math_libs} + LIBS parameter container base device ${math_libs} SOURCES blas_test.cpp lapack_test.cpp memory_test.cpp linalg_test.cpp ) - -target_link_libraries(MODULE_BASE_container_kernels_uts container base device) diff --git a/source/source_base/truncated_func.h b/source/source_base/truncated_func.h index 55ce64953ad..2e0e3a711e4 100644 --- a/source/source_base/truncated_func.h +++ b/source/source_base/truncated_func.h @@ -76,6 +76,12 @@ inline void truncated_underflow(FPTYPE& x) } } +template +inline void truncated_underflow(const FPTYPE& x) +{ + truncated_underflow(const_cast(x)); +} + template <> inline void truncated_underflow(double& x) { diff --git a/source/source_hsolver/test/CMakeLists.txt b/source/source_hsolver/test/CMakeLists.txt index 1b1529adb4a..ca32bbe2d50 100644 --- a/source/source_hsolver/test/CMakeLists.txt +++ b/source/source_hsolver/test/CMakeLists.txt @@ -10,7 +10,7 @@ if (ENABLE_MPI) ) AddTest( TARGET MODULE_HSOLVER_bpcg - LIBS parameter ${math_libs} base psi device container + LIBS parameter base psi device container ${math_libs} SOURCES diago_bpcg_test.cpp ../diago_bpcg.cpp ../para_linear_transform.cpp ../diago_iter_assist.cpp ../../source_basis/module_pw/test/test_tool.cpp ../../source_hamilt/operator.cpp @@ -18,7 +18,7 @@ if (ENABLE_MPI) ) AddTest( TARGET MODULE_HSOLVER_cg - LIBS parameter ${math_libs} base psi device container + LIBS parameter base psi device container ${math_libs} SOURCES diago_cg_test.cpp ../diago_cg.cpp ../diago_iter_assist.cpp ../diag_const_nums.cpp ../../source_basis/module_pw/test/test_tool.cpp ../../source_hamilt/operator.cpp @@ -26,7 +26,7 @@ if (ENABLE_MPI) ) AddTest( TARGET MODULE_HSOLVER_cg_float - LIBS parameter ${math_libs} base psi device container + LIBS parameter base psi device container ${math_libs} SOURCES diago_cg_float_test.cpp ../diago_cg.cpp ../diago_iter_assist.cpp ../diag_const_nums.cpp ../../source_basis/module_pw/test/test_tool.cpp ../../source_hamilt/operator.cpp @@ -51,7 +51,7 @@ if (ENABLE_MPI) if(ENABLE_LCAO) AddTest( TARGET MODULE_HSOLVER_cg_real - LIBS parameter ${math_libs} base psi device container + LIBS parameter base psi device container ${math_libs} SOURCES diago_cg_float_test.cpp ../diago_cg.cpp ../diago_iter_assist.cpp ../diag_const_nums.cpp ../../source_basis/module_pw/test/test_tool.cpp ../../source_hamilt/operator.cpp @@ -75,14 +75,14 @@ if (ENABLE_MPI) AddTest( TARGET MODULE_HSOLVER_pw - LIBS parameter ${math_libs} psi device base container + LIBS parameter psi device base container ${math_libs} SOURCES test_hsolver_pw.cpp ../hsolver_pw.cpp ../hsolver_lcaopw.cpp ../diago_bpcg.cpp ../diago_dav_subspace.cpp ../diag_const_nums.cpp ../diago_iter_assist.cpp ../para_linear_transform.cpp ../../source_estate/elecstate_tools.cpp ../../source_estate/occupy.cpp ../../source_base/module_fft/fft_bundle.cpp ../../source_base/module_fft/fft_cpu.cpp ) AddTest( TARGET MODULE_HSOLVER_sdft - LIBS parameter ${math_libs} psi device base container + LIBS parameter psi device base container ${math_libs} SOURCES test_hsolver_sdft.cpp ../hsolver_pw_sdft.cpp ../hsolver_pw.cpp ../diago_bpcg.cpp ../diago_dav_subspace.cpp ../diag_const_nums.cpp ../diago_iter_assist.cpp ../para_linear_transform.cpp ../../source_estate/elecstate_tools.cpp ../../source_estate/occupy.cpp ../../source_base/module_fft/fft_bundle.cpp ../../source_base/module_fft/fft_cpu.cpp ) @@ -197,4 +197,4 @@ if (ENABLE_MPI) ) endif() endif() -endif() \ No newline at end of file +endif() diff --git a/source/source_lcao/module_rt/test/CMakeLists.txt b/source/source_lcao/module_rt/test/CMakeLists.txt index cb24761d718..eef0a8575a5 100644 --- a/source/source_lcao/module_rt/test/CMakeLists.txt +++ b/source/source_lcao/module_rt/test/CMakeLists.txt @@ -6,31 +6,30 @@ target_link_libraries(tddft_test_lib Threads::Threads GTest::gtest_main GTest::g AddTest( TARGET MODULE_LCAO_tddft_middle_hamilt_test - LIBS parameter ${math_libs} base device tddft_test_lib + LIBS parameter base device tddft_test_lib ${math_libs} SOURCES middle_hamilt_test.cpp ../middle_hamilt.cpp ) AddTest( TARGET MODULE_LCAO_tddft_band_energy_test - LIBS parameter ${math_libs} base device tddft_test_lib + LIBS parameter base device tddft_test_lib ${math_libs} SOURCES band_energy_test.cpp ../band_energy.cpp ../../../source_basis/module_ao/parallel_orbitals.cpp ) AddTest( TARGET MODULE_LCAO_tddft_norm_psi_test - LIBS parameter ${math_libs} base device tddft_test_lib + LIBS parameter base device tddft_test_lib ${math_libs} SOURCES norm_psi_test.cpp ../norm_psi.cpp ) AddTest( TARGET MODULE_LCAO_tddft_upsi_test - LIBS parameter ${math_libs} base device tddft_test_lib + LIBS parameter base device tddft_test_lib ${math_libs} SOURCES upsi_test1.cpp upsi_test2.cpp upsi_test3.cpp ../upsi.cpp ) AddTest( TARGET MODULE_LCAO_tddft_propagator_test - LIBS parameter ${math_libs} base device tddft_test_lib + LIBS parameter base device tddft_test_lib ${math_libs} SOURCES propagator_test1.cpp propagator_test2.cpp propagator_test3.cpp ../propagator.cpp ../propagator_cn2.cpp ../propagator_taylor.cpp ../propagator_etrs.cpp ) - From e106ea0654115bab678e2b2eeb01ed161e0c362c Mon Sep 17 00:00:00 2001 From: liutao Date: Mon, 27 Apr 2026 17:12:25 +0800 Subject: [PATCH 2/4] modify cmake --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index ddb21144d6b..02c1e2da5b3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -338,7 +338,7 @@ if (USE_DSP) endif() if (USE_SW) add_compile_definitions(__SW) - dd_compile_options(-mieee) + add_compile_options(-mieee) set(SW ON) include_directories(${SW_MATH}/include) include_directories(${SW_FFT}/include) From 320b16800c949fb43ce3389c9d064862a7074146 Mon Sep 17 00:00:00 2001 From: liutao Date: Mon, 27 Apr 2026 17:33:25 +0800 Subject: [PATCH 3/4] modify cmake --- CMakeLists.txt | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 02c1e2da5b3..95d975c1199 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -350,7 +350,6 @@ if (USE_SW) ${SW_MATH}/libswlapack.a ${SW_MATH}/libswblas.a gfortran) ->>>>>>> Stashed changes endif() find_package(Threads REQUIRED) @@ -745,8 +744,6 @@ if(DEFINED TensorFlow_DIR) endif() endif() -list(APPEND math_libs m) - add_compile_definitions(__FFTW3 __SELINV METIS) if(INFO) @@ -815,11 +812,9 @@ if(ENABLE_RAPIDJSON) target_link_libraries(${ABACUS_BIN_NAME} json_output) endif() -<<<<<<< Updated upstream -======= +list(APPEND math_libs m) target_link_libraries(${ABACUS_BIN_NAME} ${math_libs}) ->>>>>>> Stashed changes install(PROGRAMS ${ABACUS_BIN_PATH} TYPE BIN # DESTINATION ${CMAKE_INSTALL_BINDIR} From d7c9b9221dba6a52d574f801b2630f16ecb1e935 Mon Sep 17 00:00:00 2001 From: liutao Date: Mon, 27 Apr 2026 19:33:18 +0800 Subject: [PATCH 4/4] update file --- CMakeLists.txt | 6 +++++- source/source_hsolver/test/CMakeLists.txt | 24 +++++++++++------------ 2 files changed, 17 insertions(+), 13 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 95d975c1199..f3a8226dedc 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -337,8 +337,12 @@ if (USE_DSP) target_link_libraries(${ABACUS_BIN_NAME} ${MT_HOST_DIR}/hthreads/lib/libhthread_host.a) endif() if (USE_SW) + include(CheckCXXCompilerFlag) + check_cxx_compiler_flag("-mieee" ABACUS_CXX_SUPPORTS_MIEEE) add_compile_definitions(__SW) - add_compile_options(-mieee) + if(ABACUS_CXX_SUPPORTS_MIEEE) + add_compile_options(-mieee) + endif() set(SW ON) include_directories(${SW_MATH}/include) include_directories(${SW_FFT}/include) diff --git a/source/source_hsolver/test/CMakeLists.txt b/source/source_hsolver/test/CMakeLists.txt index ca32bbe2d50..e43771b0044 100644 --- a/source/source_hsolver/test/CMakeLists.txt +++ b/source/source_hsolver/test/CMakeLists.txt @@ -5,7 +5,7 @@ remove_definitions(-D__EXX) if (ENABLE_MPI) AddTest( TARGET MODULE_HSOLVER_parak2d_test - LIBS parameter ${math_libs} base device MPI::MPI_CXX + LIBS parameter base device MPI::MPI_CXX ${math_libs} SOURCES parallel_k2d_test.cpp ../parallel_k2d.cpp ../../source_cell/parallel_kpoints.cpp ) AddTest( @@ -34,7 +34,7 @@ if (ENABLE_MPI) ) AddTest( TARGET MODULE_HSOLVER_dav - LIBS parameter ${math_libs} base psi device + LIBS parameter base psi device ${math_libs} SOURCES diago_david_test.cpp ../diago_david.cpp ../diago_iter_assist.cpp ../diag_const_nums.cpp ../../source_basis/module_pw/test/test_tool.cpp ../../source_hamilt/operator.cpp @@ -42,7 +42,7 @@ if (ENABLE_MPI) ) AddTest( TARGET MODULE_HSOLVER_dav_float - LIBS parameter ${math_libs} base psi device + LIBS parameter base psi device ${math_libs} SOURCES diago_david_float_test.cpp ../diago_david.cpp ../diago_iter_assist.cpp ../diag_const_nums.cpp ../../source_basis/module_pw/test/test_tool.cpp ../../source_hamilt/operator.cpp @@ -59,7 +59,7 @@ if (ENABLE_MPI) ) AddTest( TARGET MODULE_HSOLVER_dav_real - LIBS parameter ${math_libs} base psi device + LIBS parameter base psi device ${math_libs} SOURCES diago_david_real_test.cpp ../diago_david.cpp ../diago_iter_assist.cpp ../diag_const_nums.cpp ../../source_basis/module_pw/test/test_tool.cpp ../../source_hamilt/operator.cpp @@ -69,7 +69,7 @@ if (ENABLE_MPI) AddTest( TARGET MODULE_HSOLVER_base - LIBS parameter ${math_libs} psi device base + LIBS parameter psi device base ${math_libs} SOURCES test_hsolver.cpp ) @@ -91,13 +91,13 @@ if (ENABLE_MPI) if(USE_ELPA) AddTest( TARGET MODULE_HSOLVER_LCAO - LIBS parameter ${math_libs} ELPA::ELPA base genelpa psi device + LIBS parameter base genelpa psi device ELPA::ELPA ${math_libs} SOURCES diago_lcao_test.cpp ../diago_elpa.cpp ../diago_scalapack.cpp ../diago_lapack.cpp ) else() AddTest( TARGET MODULE_HSOLVER_LCAO - LIBS parameter ${math_libs} base psi device + LIBS parameter base psi device ${math_libs} SOURCES diago_lcao_test.cpp ../diago_scalapack.cpp ../diago_lapack.cpp ) endif() @@ -105,7 +105,7 @@ if (ENABLE_MPI) if (ENABLE_PEXSI) AddTest( TARGET MODULE_HSOLVER_LCAO_PEXSI - LIBS parameter ${math_libs} ${PEXSI_LIBRARY} ${SuperLU_DIST_LIBRARY} ${ParMETIS_LIBRARY} ${METIS_LIBRARY} MPI::MPI_CXX base psi device pexsi + LIBS parameter base psi device pexsi MPI::MPI_CXX ${PEXSI_LIBRARY} ${SuperLU_DIST_LIBRARY} ${ParMETIS_LIBRARY} ${METIS_LIBRARY} ${math_libs} SOURCES diago_pexsi_test.cpp ../diago_pexsi.cpp ../../source_basis/module_ao/parallel_orbitals.cpp ) endif() @@ -113,7 +113,7 @@ if (ENABLE_MPI) if (USE_CUDA) AddTest( TARGET MODULE_HSOLVER_LCAO_cusolver - LIBS parameter ${math_libs} base psi device + LIBS parameter base psi device ${math_libs} SOURCES diago_lcao_cusolver_test.cpp ../diago_cusolver.cpp ../diago_scalapack.cpp ../kernels/hegvd_op.cpp ../kernels/cuda/diag_cusolver.cu @@ -149,20 +149,20 @@ install(FILES parallel_k2d_test.sh DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) if (USE_ELPA) AddTest( TARGET MODULE_HSOLVER_diago_hs_parallel - LIBS parameter ${math_libs} ELPA::ELPA base device MPI::MPI_CXX genelpa psi + LIBS parameter base device MPI::MPI_CXX genelpa psi ELPA::ELPA ${math_libs} SOURCES test_diago_hs_para.cpp ../diag_hs_para.cpp ../diago_pxxxgvx.cpp ../diago_elpa.cpp ../diago_scalapack.cpp ) else() AddTest( TARGET MODULE_HSOLVER_diago_hs_parallel - LIBS parameter ${math_libs} base device MPI::MPI_CXX psi + LIBS parameter base device MPI::MPI_CXX psi ${math_libs} SOURCES test_diago_hs_para.cpp ../diag_hs_para.cpp ../diago_pxxxgvx.cpp ../diago_scalapack.cpp ) endif() AddTest( TARGET MODULE_HSOLVER_linear_trans - LIBS parameter ${math_libs} base device MPI::MPI_CXX + LIBS parameter base device MPI::MPI_CXX ${math_libs} SOURCES test_para_linear_trans.cpp ../para_linear_transform.cpp )