2011年08月16日 星期二 11:31
在Windows平台下手动编译Scipy,如果需要高性能的稀疏矩阵处理
需要首先构建SuiteSparse + METIS库
而这两个库只提供了UNIX环境下的Makefile
于是我自己动手给这两个库搞了一个CMake构建脚本
构建过程:
1. 下载SuiteSparse-3.6.1和METIS-4.0.3的代码(注意!5.0版不能用)
解压,并将METIS-4.0.3目录树移动到SuiteSparse里,改名为metis-4.0
2. 打上后面的patch
3. 打开CMake GUI,选择输出VS2008工程
4. 用VS2008打开输出的.sln文件,编译安装,安装后得到如下文件:
- libufconfig/libamd/libcamd/libcolamd/libccolamd/libcholmod/libumfpack的头文件
- 一个holistic的libsuitesparse.{dll,lib},包含上面所有库的导出symbol
5. 可以手动编译SuiteSparse中自带的demo并运行,运行libcholmod的demo时要跟编译出的库使用
同一个CRT
注意事项:
这组脚本中没有检测BLAC/LAPACK,而是直接用了MKL
请根据自己的情况修改SuiteSparse/CMakeLists.txt
SuiteSparse-METIS-CMake.patch文件内容(也可从文件共享区下载)
======================================================================
# HG changeset patch
# User Simpson@Simpson-Laptop
# Date 1313422043 -28800
# Node ID 962f928cd6373d10a2b362b2a6015b09f87e0bb9
# Parent bd330bb9c312cd870f40dc89070d84b1346a79f3
libsuitesparse build 1, includes:
libufconfig
libamd
libcamd
libcolamd
libccolamd
libcholmod
libumfpack
diff -r bd330bb9c312 -r 962f928cd637 AMD/CMakeLists.txt
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/AMD/CMakeLists.txt Mon Aug 15 23:27:23 2011 +0800
@@ -0,0 +1,2 @@
+add_subdirectory(Include)
+add_subdirectory(Lib)
diff -r bd330bb9c312 -r 962f928cd637 AMD/Include/CMakeLists.txt
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/AMD/Include/CMakeLists.txt Mon Aug 15 23:27:23 2011 +0800
@@ -0,0 +1,1 @@
+install(FILES amd.h DESTINATION include)
diff -r bd330bb9c312 -r 962f928cd637 AMD/Lib/CMakeLists.txt
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/AMD/Lib/CMakeLists.txt Mon Aug 15 23:27:23 2011 +0800
@@ -0,0 +1,18 @@
+include_directories(../Include ${PROJECT_SOURCE_DIR}/UFconfig)
+
+set(libamd_sources
+ ../Include/amd.h ../Include/amd_internal.h
+ ../Source/amd_aat.c ../Source/amd_1.c ../Source/amd_2.c
+ ../Source/amd_dump.c ../Source/amd_postorder.c ../Source/amd_post_tree.c
+ ../Source/amd_defaults.c ../Source/amd_order.c ../Source/amd_control.c
+ ../Source/amd_info.c ../Source/amd_valid.c ../Source/amd_preprocess.c)
+
+add_library(libamd_dint STATIC EXCLUDE_FROM_ALL ${libamd_sources})
+set_target_properties(libamd_dint PROPERTIES COMPILE_DEFINITIONS "DINT")
+
+add_library(libamd_dlong STATIC EXCLUDE_FROM_ALL ${libamd_sources})
+set_target_properties(libamd_dlong PROPERTIES COMPILE_DEFINITIONS "DLONG")
+
+add_library(libamd STATIC EXCLUDE_FROM_ALL
+ ../Include/amd.h ../Include/amd_internal.h ../Source/amd_global.c)
+target_link_libraries(libamd libamd_dint libamd_dlong libufconfig)
diff -r bd330bb9c312 -r 962f928cd637 CAMD/CMakeLists.txt
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/CAMD/CMakeLists.txt Mon Aug 15 23:27:23 2011 +0800
@@ -0,0 +1,2 @@
+add_subdirectory(Include)
+add_subdirectory(Lib)
diff -r bd330bb9c312 -r 962f928cd637 CAMD/Include/CMakeLists.txt
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/CAMD/Include/CMakeLists.txt Mon Aug 15 23:27:23 2011 +0800
@@ -0,0 +1,1 @@
+install(FILES camd.h DESTINATION include)
diff -r bd330bb9c312 -r 962f928cd637 CAMD/Lib/CMakeLists.txt
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/CAMD/Lib/CMakeLists.txt Mon Aug 15 23:27:23 2011 +0800
@@ -0,0 +1,18 @@
+include_directories(../Include ${PROJECT_SOURCE_DIR}/UFconfig)
+
+set(libcamd_sources
+ ../Include/camd.h ../Include/camd_internal.h
+ ../Source/camd_aat.c ../Source/camd_1.c ../Source/camd_2.c
+ ../Source/camd_dump.c ../Source/camd_postorder.c ../Source/camd_defaults.c
+ ../Source/camd_order.c ../Source/camd_control.c ../Source/camd_info.c
+ ../Source/camd_valid.c ../Source/camd_preprocess.c)
+
+add_library(libcamd_dint STATIC EXCLUDE_FROM_ALL ${libcamd_sources})
+set_target_properties(libcamd_dint PROPERTIES COMPILE_DEFINITIONS "DINT")
+
+add_library(libcamd_dlong STATIC EXCLUDE_FROM_ALL ${libcamd_sources})
+set_target_properties(libcamd_dlong PROPERTIES COMPILE_DEFINITIONS "DLONG")
+
+add_library(libcamd STATIC EXCLUDE_FROM_ALL
+ ../Include/camd.h ../Include/camd_internal.h ../Source/camd_global.c)
+target_link_libraries(libcamd libcamd_dint libcamd_dlong libufconfig)
diff -r bd330bb9c312 -r 962f928cd637 CCOLAMD/CMakeLists.txt
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/CCOLAMD/CMakeLists.txt Mon Aug 15 23:27:23 2011 +0800
@@ -0,0 +1,2 @@
+add_subdirectory(Include)
+add_subdirectory(Lib)
diff -r bd330bb9c312 -r 962f928cd637 CCOLAMD/Include/CMakeLists.txt
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/CCOLAMD/Include/CMakeLists.txt Mon Aug 15 23:27:23 2011 +0800
@@ -0,0 +1,1 @@
+install(FILES ccolamd.h DESTINATION include)
diff -r bd330bb9c312 -r 962f928cd637 CCOLAMD/Lib/CMakeLists.txt
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/CCOLAMD/Lib/CMakeLists.txt Mon Aug 15 23:27:23 2011 +0800
@@ -0,0 +1,14 @@
+include_directories(../Include ${PROJECT_SOURCE_DIR}/UFconfig)
+
+set(libccolamd_sources
+ ../Include/ccolamd.h ../Source/ccolamd.c)
+
+add_library(libccolamd_dint STATIC EXCLUDE_FROM_ALL ${libccolamd_sources})
+set_target_properties(libccolamd_dint PROPERTIES COMPILE_DEFINITIONS "DINT")
+
+add_library(libccolamd_dlong STATIC EXCLUDE_FROM_ALL ${libccolamd_sources})
+set_target_properties(libccolamd_dlong PROPERTIES COMPILE_DEFINITIONS "DLONG")
+
+add_library(libccolamd STATIC EXCLUDE_FROM_ALL
+ ../Include/ccolamd.h ../Source/ccolamd_global.c)
+target_link_libraries(libccolamd libccolamd_dint libccolamd_dlong libufconfig)
diff -r bd330bb9c312 -r 962f928cd637 CHOLMOD/CMakeLists.txt
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/CHOLMOD/CMakeLists.txt Mon Aug 15 23:27:23 2011 +0800
@@ -0,0 +1,2 @@
+add_subdirectory(Include)
+add_subdirectory(Lib)
diff -r bd330bb9c312 -r 962f928cd637 CHOLMOD/Include/CMakeLists.txt
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/CHOLMOD/Include/CMakeLists.txt Mon Aug 15 23:27:23 2011 +0800
@@ -0,0 +1,5 @@
+install(FILES
+ cholmod.h cholmod_io64.h cholmod_config.h cholmod_core.h cholmod_check.h
+ cholmod_cholesky.h cholmod_matrixops.h cholmod_modify.h cholmod_partition.h
+ cholmod_supernodal.h
+ DESTINATION include)
diff -r bd330bb9c312 -r 962f928cd637 CHOLMOD/Lib/CMakeLists.txt
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/CHOLMOD/Lib/CMakeLists.txt Mon Aug 15 23:27:23 2011 +0800
@@ -0,0 +1,124 @@
+include_directories(../Include
+ ${PROJECT_SOURCE_DIR}/UFconfig
+ ${PROJECT_SOURCE_DIR}/AMD/Include
+ ${PROJECT_SOURCE_DIR}/CAMD/Include
+ ${PROJECT_SOURCE_DIR}/COLAMD/Include
+ ${PROJECT_SOURCE_DIR}/CCOLAMD/Include
+ ${PROJECT_SOURCE_DIR}/metis-4.0/Lib)
+
+set(libcholmod_headers
+ ../Include/cholmod.h
+ ../Include/cholmod_blas.h
+ ../Include/cholmod_check.h
+ ../Include/cholmod_cholesky.h
+ ../Include/cholmod_complexity.h
+ ../Include/cholmod_config.h
+ ../Include/cholmod_core.h
+ ../Include/cholmod_internal.h
+ ../Include/cholmod_matrixops.h
+ ../Include/cholmod_modify.h
+ ../Include/cholmod_partition.h
+ ../Include/cholmod_supernodal.h
+ ../Include/cholmod_template.h)
+
+set(libcholmod_core_sources
+ ../Core/cholmod_aat.c
+ ../Core/cholmod_add.c
+ ../Core/cholmod_band.c
+ ../Core/cholmod_change_factor.c
+ ../Core/cholmod_common.c
+ ../Core/cholmod_complex.c
+ ../Core/cholmod_copy.c
+ ../Core/cholmod_dense.c
+ ../Core/cholmod_error.c
+ ../Core/cholmod_factor.c
+ ../Core/cholmod_memory.c
+ ../Core/cholmod_sparse.c
+ ../Core/cholmod_transpose.c
+ ../Core/cholmod_triplet.c)
+
+set(libcholmod_check_sources
+ ../Check/cholmod_check.c
+ ../Check/cholmod_read.c
+ ../Check/cholmod_write.c)
+
+set(libcholmod_cholesky_sources
+ ../Cholesky/cholmod_amd.c
+ ../Cholesky/cholmod_analyze.c
+ ../Cholesky/cholmod_colamd.c
+ ../Cholesky/cholmod_etree.c
+ ../Cholesky/cholmod_factorize.c
+ ../Cholesky/cholmod_postorder.c
+ ../Cholesky/cholmod_rcond.c
+ ../Cholesky/cholmod_resymbol.c
+ ../Cholesky/cholmod_rowcolcounts.c
+ ../Cholesky/cholmod_rowfac.c
+ ../Cholesky/cholmod_solve.c
+ ../Cholesky/cholmod_spsolve.c)
+
+set(libcholmod_matrixops_sources
+ ../MatrixOps/cholmod_drop.c
+ ../MatrixOps/cholmod_horzcat.c
+ ../MatrixOps/cholmod_norm.c
+ ../MatrixOps/cholmod_scale.c
+ ../MatrixOps/cholmod_sdmult.c
+ ../MatrixOps/cholmod_ssmult.c
+ ../MatrixOps/cholmod_submatrix.c
+ ../MatrixOps/cholmod_vertcat.c
+ ../MatrixOps/cholmod_symmetry.c)
+
+set(libcholmod_partition_sources
+ ../Partition/cholmod_ccolamd.c
+ ../Partition/cholmod_csymamd.c
+ ../Partition/cholmod_metis.c
+ ../Partition/cholmod_nesdis.c
+ ../Partition/cholmod_camd.c)
+
+set(libcholmod_modify_sources
+ ../Modify/cholmod_rowadd.c
+ ../Modify/cholmod_rowdel.c
+ ../Modify/cholmod_updown.c)
+
+set(libcholmod_supernodal_sources
+ ../SuperNodal/cholmod_super_numeric.c
+ ../SuperNodal/cholmod_super_solve.c
+ ../SuperNodal/cholmod_super_symbolic.c)
+
+set(libcholmod_templates
+ ../Core/t_cholmod_change_factor.c
+ ../Core/t_cholmod_dense.c
+ ../Core/t_cholmod_transpose.c
+ ../Core/t_cholmod_triplet.c
+ ../Cholesky/t_cholmod_lsolve.c
+ ../Cholesky/t_cholmod_ltsolve.c
+ ../Cholesky/t_cholmod_rowfac.c
+ ../Cholesky/t_cholmod_solve.c
+ ../Modify/t_cholmod_updown.c
+ ../Modify/t_cholmod_updown_numkr.c
+ ../MatrixOps/t_cholmod_sdmult.c
+ ../SuperNodal/t_cholmod_super_numeric.c
+ ../SuperNodal/t_cholmod_super_solve.c)
+
+set(libcholmod_sources
+ ${libcholmod_headers}
+ ${libcholmod_core_sources}
+ ${libcholmod_check_sources}
+ ${libcholmod_cholesky_sources}
+ ${libcholmod_matrixops_sources}
+ ${libcholmod_partition_sources}
+ ${libcholmod_modify_sources}
+ ${libcholmod_supernodal_sources})
+
+add_library(libcholmod_dint STATIC EXCLUDE_FROM_ALL ${libcholmod_sources})
+set_target_properties(libcholmod_dint PROPERTIES COMPILE_DEFINITIONS "DINT")
+add_dependencies(libcholmod_dint ${libcholmod_templates})
+
+add_library(libcholmod_dlong STATIC EXCLUDE_FROM_ALL ${libcholmod_sources})
+set_target_properties(libcholmod_dlong PROPERTIES COMPILE_DEFINITIONS "DLONG")
+add_dependencies(libcholmod_dlong ${libcholmod_templates})
+
+add_library(libcholmod STATIC EXCLUDE_FROM_ALL
+ ${libcholmod_headers} dummy.c)
+target_link_libraries(libcholmod
+ libcholmod_dint libcholmod_dlong
+ libamd libcamd libcolamd libccolamd libufconfig libmetis ${MKL_LIBRARIES})
diff -r bd330bb9c312 -r 962f928cd637 CMakeLists.txt
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/CMakeLists.txt Mon Aug 15 23:27:23 2011 +0800
@@ -0,0 +1,23 @@
+cmake_minimum_required(VERSION 2.8)
+project(SuiteSparse-3.6.1)
+
+link_directories("C:/Intel/ComposerXE-2011/mkl/lib/intel64")
+set(MKL_LIBRARIES mkl_rt.lib)
+
+add_subdirectory(UFconfig)
+add_subdirectory(AMD)
+add_subdirectory(CAMD)
+add_subdirectory(COLAMD)
+add_subdirectory(CCOLAMD)
+add_subdirectory(metis-4.0)
+add_subdirectory(CHOLMOD)
+add_subdirectory(UMFPACK)
+
+add_library(libsuitesparse SHARED dummy.c libsuitesparse.def)
+target_link_libraries(libsuitesparse
+ libufconfig libamd libcamd libcolamd libccolamd libcholmod libumfpack)
+
+install(TARGETS libsuitesparse
+ RUNTIME DESTINATION bin
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib)
diff -r bd330bb9c312 -r 962f928cd637 COLAMD/CMakeLists.txt
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/COLAMD/CMakeLists.txt Mon Aug 15 23:27:23 2011 +0800
@@ -0,0 +1,2 @@
+add_subdirectory(Include)
+add_subdirectory(Lib)
diff -r bd330bb9c312 -r 962f928cd637 COLAMD/Include/CMakeLists.txt
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/COLAMD/Include/CMakeLists.txt Mon Aug 15 23:27:23 2011 +0800
@@ -0,0 +1,1 @@
+install(FILES colamd.h DESTINATION include)
diff -r bd330bb9c312 -r 962f928cd637 COLAMD/Lib/CMakeLists.txt
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/COLAMD/Lib/CMakeLists.txt Mon Aug 15 23:27:23 2011 +0800
@@ -0,0 +1,14 @@
+include_directories(../Include ${PROJECT_SOURCE_DIR}/UFconfig)
+
+set(libcolamd_sources
+ ../Include/colamd.h ../Source/colamd.c)
+
+add_library(libcolamd_dint STATIC EXCLUDE_FROM_ALL ${libcolamd_sources})
+set_target_properties(libcolamd_dint PROPERTIES COMPILE_DEFINITIONS "DINT")
+
+add_library(libcolamd_dlong STATIC EXCLUDE_FROM_ALL ${libcolamd_sources})
+set_target_properties(libcolamd_dlong PROPERTIES COMPILE_DEFINITIONS "DLONG")
+
+add_library(libcolamd STATIC EXCLUDE_FROM_ALL
+ ../Include/colamd.h ../Source/colamd_global.c)
+target_link_libraries(libcolamd libcolamd_dint libcolamd_dlong libufconfig)
diff -r bd330bb9c312 -r 962f928cd637 UFconfig/CMakeLists.txt
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/UFconfig/CMakeLists.txt Mon Aug 15 23:27:23 2011 +0800
@@ -0,0 +1,3 @@
+install(FILES UFconfig.h DESTINATION include)
+
+add_library(libufconfig STATIC EXCLUDE_FROM_ALL UFconfig.h UFconfig.c)
diff -r bd330bb9c312 -r 962f928cd637 UMFPACK/CMakeLists.txt
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/UMFPACK/CMakeLists.txt Mon Aug 15 23:27:23 2011 +0800
@@ -0,0 +1,2 @@
+add_subdirectory(Include)
+add_subdirectory(Lib)
diff -r bd330bb9c312 -r 962f928cd637 UMFPACK/Include/CMakeLists.txt
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/UMFPACK/Include/CMakeLists.txt Mon Aug 15 23:27:23 2011 +0800
@@ -0,0 +1,35 @@
+install(FILES
+ umfpack.h
+ umfpack_symbolic.h
+ umfpack_numeric.h
+ umfpack_solve.h
+ umfpack_free_symbolic.h
+ umfpack_free_numeric.h
+ umfpack_defaults.h
+ umfpack_qsymbolic.h
+ umfpack_wsolve.h
+ umfpack_triplet_to_col.h
+ umfpack_col_to_triplet.h
+ umfpack_transpose.h
+ umfpack_scale.h
+ umfpack_get_lunz.h
+ umfpack_get_numeric.h
+ umfpack_get_symbolic.h
+ umfpack_save_numeric.h
+ umfpack_load_numeric.h
+ umfpack_save_symbolic.h
+ umfpack_load_symbolic.h
+ umfpack_get_determinant.h
+ umfpack_report_status.h
+ umfpack_report_info.h
+ umfpack_report_control.h
+ umfpack_report_matrix.h
+ umfpack_report_triplet.h
+ umfpack_report_vector.h
+ umfpack_report_symbolic.h
+ umfpack_report_numeric.h
+ umfpack_report_perm.h
+ umfpack_timer.h
+ umfpack_tictoc.h
+ umfpack_global.h
+ DESTINATION include)
diff -r bd330bb9c312 -r 962f928cd637 UMFPACK/Lib/CMakeLists.txt
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/UMFPACK/Lib/CMakeLists.txt Mon Aug 15 23:27:23 2011 +0800
@@ -0,0 +1,153 @@
+include_directories(../Include
+ ${PROJECT_SOURCE_DIR}/UFconfig
+ ${PROJECT_SOURCE_DIR}/AMD/Include
+ ${PROJECT_SOURCE_DIR}/CAMD/Include
+ ${PROJECT_SOURCE_DIR}/COLAMD/Include
+ ${PROJECT_SOURCE_DIR}/CCOLAMD/Include
+ ${PROJECT_SOURCE_DIR}/CHOLMOD/Include)
+
+set(libumfpack_headers
+ ../Include/umfpack.h
+ ../Include/umfpack_symbolic.h
+ ../Include/umfpack_numeric.h
+ ../Include/umfpack_solve.h
+ ../Include/umfpack_free_symbolic.h
+ ../Include/umfpack_free_numeric.h
+ ../Include/umfpack_defaults.h
+ ../Include/umfpack_qsymbolic.h
+ ../Include/umfpack_wsolve.h
+ ../Include/umfpack_triplet_to_col.h
+ ../Include/umfpack_col_to_triplet.h
+ ../Include/umfpack_transpose.h
+ ../Include/umfpack_scale.h
+ ../Include/umfpack_get_lunz.h
+ ../Include/umfpack_get_numeric.h
+ ../Include/umfpack_get_symbolic.h
+ ../Include/umfpack_save_numeric.h
+ ../Include/umfpack_load_numeric.h
+ ../Include/umfpack_save_symbolic.h
+ ../Include/umfpack_load_symbolic.h
+ ../Include/umfpack_get_determinant.h
+ ../Include/umfpack_report_status.h
+ ../Include/umfpack_report_info.h
+ ../Include/umfpack_report_control.h
+ ../Include/umfpack_report_matrix.h
+ ../Include/umfpack_report_triplet.h
+ ../Include/umfpack_report_vector.h
+ ../Include/umfpack_report_symbolic.h
+ ../Include/umfpack_report_numeric.h
+ ../Include/umfpack_report_perm.h
+ ../Include/umfpack_timer.h
+ ../Include/umfpack_tictoc.h
+ ../Include/umfpack_global.h)
+
+set(libumfpack_sources
+ ../Source/umf_analyze.c
+ ../Source/umf_apply_order.c
+ ../Source/umf_assemble.c
+ ../Source/umf_blas3_update.c
+ ../Source/umf_build_tuples.c
+ ../Source/umf_cholmod.c
+ ../Source/umf_colamd.c
+ ../Source/umf_create_element.c
+ ../Source/umf_dump.c
+ ../Source/umf_extend_front.c
+ ../Source/umf_free.c
+ ../Source/umf_fsize.c
+ ../Source/umf_garbage_collection.c
+ ../Source/umf_get_memory.c
+ ../Source/umf_grow_front.c
+ ../Source/umf_init_front.c
+ ../Source/umf_is_permutation.c
+ ../Source/umf_kernel.c
+ ../Source/umf_kernel_init.c
+ ../Source/umf_kernel_wrapup.c
+ ../Source/umf_local_search.c
+ ../Source/umf_lsolve.c
+ ../Source/umf_ltsolve.c
+ ../Source/umf_malloc.c
+ ../Source/umf_mem_alloc_element.c
+ ../Source/umf_mem_alloc_head_block.c
+ ../Source/umf_mem_alloc_tail_block.c
+ ../Source/umf_mem_free_tail_block.c
+ ../Source/umf_mem_init_memoryspace.c
+ ../Source/umf_realloc.c
+ ../Source/umf_report_perm.c
+ ../Source/umf_report_vector.c
+ ../Source/umf_row_search.c
+ ../Source/umf_scale.c
+ ../Source/umf_scale_column.c
+ ../Source/umf_set_stats.c
+ ../Source/umf_singletons.c
+ ../Source/umf_solve.c
+ ../Source/umf_start_front.c
+ ../Source/umf_store_lu.c
+ ../Source/umf_symbolic_usage.c
+ ../Source/umf_transpose.c
+ ../Source/umf_triplet.c
+ ../Source/umf_tuple_lengths.c
+ ../Source/umf_usolve.c
+ ../Source/umf_utsolve.c
+ ../Source/umf_valid_numeric.c
+ ../Source/umf_valid_symbolic.c
+ ../Source/umfpack_col_to_triplet.c
+ ../Source/umfpack_defaults.c
+ ../Source/umfpack_free_numeric.c
+ ../Source/umfpack_free_symbolic.c
+ ../Source/umfpack_get_determinant.c
+ ../Source/umfpack_get_lunz.c
+ ../Source/umfpack_get_numeric.c
+ ../Source/umfpack_get_symbolic.c
+ ../Source/umfpack_load_numeric.c
+ ../Source/umfpack_load_symbolic.c
+ ../Source/umfpack_numeric.c
+ ../Source/umfpack_qsymbolic.c
+ ../Source/umfpack_report_control.c
+ ../Source/umfpack_report_info.c
+ ../Source/umfpack_report_matrix.c
+ ../Source/umfpack_report_numeric.c
+ ../Source/umfpack_report_perm.c
+ ../Source/umfpack_report_status.c
+ ../Source/umfpack_report_symbolic.c
+ ../Source/umfpack_report_triplet.c
+ ../Source/umfpack_report_vector.c
+ ../Source/umfpack_save_numeric.c
+ ../Source/umfpack_save_symbolic.c
+ ../Source/umfpack_scale.c
+ ../Source/umfpack_solve.c
+ ../Source/umfpack_symbolic.c
+ ../Source/umfpack_transpose.c
+ ../Source/umfpack_triplet_to_col.c
+ umf_assemble_fixq.c
+ umf_store_lu_drop.c
+ umf_triplet_m.c
+ umf_triplet_v.c
+ umf_triplet_mv.c
+ umf_lhsolve.c
+ umf_uhsolve.c
+ umfpack_wslove.c)
+
+set(libumfpack_sources
+ ${libumfpack_headers}
+ ${libumfpack_sources})
+
+add_library(libumfpack_dint STATIC EXCLUDE_FROM_ALL ${libumfpack_sources})
+set_target_properties(libumfpack_dint PROPERTIES COMPILE_DEFINITIONS "DINT")
+
+add_library(libumfpack_dlong STATIC EXCLUDE_FROM_ALL ${libumfpack_sources})
+set_target_properties(libumfpack_dlong PROPERTIES COMPILE_DEFINITIONS "DLONG")
+
+add_library(libumfpack_zint STATIC EXCLUDE_FROM_ALL ${libumfpack_sources})
+set_target_properties(libumfpack_zint PROPERTIES COMPILE_DEFINITIONS "ZINT")
+
+add_library(libumfpack_zlong STATIC EXCLUDE_FROM_ALL ${libumfpack_sources})
+set_target_properties(libumfpack_zlong PROPERTIES COMPILE_DEFINITIONS "ZLONG")
+
+add_library(libumfpack STATIC EXCLUDE_FROM_ALL
+ ${libumfpack_headers}
+ ../Source/umfpack_global.c
+ ../Source/umfpack_timer.c
+ ../Source/umfpack_tictoc.c)
+target_link_libraries(libumfpack
+ libumfpack_dint libumfpack_dlong libumfpack_zint libumfpack_zlong
+ libufconfig libamd libcamd libcolamd libccolamd libcholmod ${MKL_LIBRARIES})
diff -r bd330bb9c312 -r 962f928cd637 UMFPACK/Lib/umf_assemble_fixq.c
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/UMFPACK/Lib/umf_assemble_fixq.c Mon Aug 15 23:27:23 2011 +0800
@@ -0,0 +1,2 @@
+#define FIXQ
+#include "../Source/umf_assemble.c"
diff -r bd330bb9c312 -r 962f928cd637 UMFPACK/Lib/umf_lhsolve.c
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/UMFPACK/Lib/umf_lhsolve.c Mon Aug 15 23:27:23 2011 +0800
@@ -0,0 +1,2 @@
+#define CONJUGATE_SOLVE
+#include "../Source/umf_ltsolve.c"
diff -r bd330bb9c312 -r 962f928cd637 UMFPACK/Lib/umf_store_lu_drop.c
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/UMFPACK/Lib/umf_store_lu_drop.c Mon Aug 15 23:27:23 2011 +0800
@@ -0,0 +1,2 @@
+#define DROP
+#include "../Source/umf_store_lu.c"
diff -r bd330bb9c312 -r 962f928cd637 UMFPACK/Lib/umf_triplet_m.c
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/UMFPACK/Lib/umf_triplet_m.c Mon Aug 15 23:27:23 2011 +0800
@@ -0,0 +1,2 @@
+#define DO_MAP
+#include "../Source/umf_triplet.c"
diff -r bd330bb9c312 -r 962f928cd637 UMFPACK/Lib/umf_triplet_mv.c
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/UMFPACK/Lib/umf_triplet_mv.c Mon Aug 15 23:27:23 2011 +0800
@@ -0,0 +1,3 @@
+#define DO_MAP
+#define DO_VALUES
+#include "../Source/umf_triplet.c"
diff -r bd330bb9c312 -r 962f928cd637 UMFPACK/Lib/umf_triplet_v.c
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/UMFPACK/Lib/umf_triplet_v.c Mon Aug 15 23:27:23 2011 +0800
@@ -0,0 +1,2 @@
+#define DO_VALUES
+#include "../Source/umf_triplet.c"
diff -r bd330bb9c312 -r 962f928cd637 UMFPACK/Lib/umf_uhsolve.c
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/UMFPACK/Lib/umf_uhsolve.c Mon Aug 15 23:27:23 2011 +0800
@@ -0,0 +1,2 @@
+#define CONJUGATE_SOLVE
+#include "../Source/umf_utsolve.c"
diff -r bd330bb9c312 -r 962f928cd637 UMFPACK/Lib/umfpack_wslove.c
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/UMFPACK/Lib/umfpack_wslove.c Mon Aug 15 23:27:23 2011 +0800
@@ -0,0 +1,2 @@
+#define WSOLVE
+#include "../Source/umfpack_solve.c"
diff -r bd330bb9c312 -r 962f928cd637 libsuitesparse.def
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/libsuitesparse.def Mon Aug 15 23:27:23 2011 +0800
@@ -0,0 +1,480 @@
+LIBRARY libsuitesparse.dll
+EXPORTS
+
+UFmalloc
+UFfree
+
+amd_order
+amd_l_order
+amd_2
+amd_l2
+amd_valid
+amd_l_valid
+amd_defaults
+amd_l_defaults
+amd_control
+amd_l_control
+amd_info
+amd_l_info
+amd_malloc
+amd_free
+amd_realloc
+amd_calloc
+amd_printf
+
+camd_order
+camd_l_order
+camd_2
+camd_l2
+camd_valid
+camd_l_valid
+camd_cvalid
+camd_l_cvalid
+camd_defaults
+camd_l_defaults
+camd_control
+camd_l_control
+camd_info
+camd_l_info
+camd_malloc
+camd_free
+camd_realloc
+camd_calloc
+camd_printf
+
+colamd_recommended
+colamd_l_recommended
+colamd_set_defaults
+colamd_l_set_defaults
+colamd
+colamd_l
+colamd_report
+colamd_l_report
+symamd
+symamd_l
+symamd_report
+symamd_l_report
+colamd_printf
+
+ccolamd_recommended
+ccolamd_l_recommended
+ccolamd_set_defaults
+ccolamd_l_set_defaults
+ccolamd
+ccolamd_l
+ccolamd_report
+ccolamd_l_report
+ccolamd2
+ccolamd2_l
+ccolamd_apply_order
+ccolamd_l_apply_order
+ccolamd_fsize
+ccolamd_l_fsize
+ccolamd_postorder
+ccolamd_l_postorder
+ccolamd_post_tree
+ccolamd_l_post_tree
+csymamd
+csymamd_l
+csymamd_report
+csymamd_l_report
+ccolamd_printf
+
+cholmod_start
+cholmod_l_start
+cholmod_finish
+cholmod_l_finish
+cholmod_defaults
+cholmod_l_defaults
+cholmod_maxrank
+cholmod_l_maxrank
+cholmod_allocate_work
+cholmod_l_allocate_work
+cholmod_free_work
+cholmod_l_free_work
+cholmod_clear_flag
+cholmod_l_clear_flag
+cholmod_error
+cholmod_l_error
+cholmod_dbound
+cholmod_l_dbound
+cholmod_hypot
+cholmod_l_hypot
+cholmod_divcomplex
+cholmod_l_divcomplex
+cholmod_allocate_sparse
+cholmod_l_allocate_sparse
+cholmod_free_sparse
+cholmod_l_free_sparse
+cholmod_reallocate_sparse
+cholmod_l_reallocate_sparse
+cholmod_nnz
+cholmod_l_nnz
+cholmod_speye
+cholmod_l_speye
+cholmod_spzeros
+cholmod_l_spzeros
+cholmod_transpose
+cholmod_l_transpose
+cholmod_transpose_unsym
+cholmod_l_transpose_unsym
+cholmod_transpose_sym
+cholmod_l_transpose_sym
+cholmod_ptranspose
+cholmod_l_ptranspose
+cholmod_sort
+cholmod_l_sort
+cholmod_band
+cholmod_l_band
+cholmod_band_inplace
+cholmod_l_band_inplace
+cholmod_aat
+cholmod_l_aat
+cholmod_copy_sparse
+cholmod_l_copy_sparse
+cholmod_copy
+cholmod_l_copy
+cholmod_add
+cholmod_l_add
+cholmod_sparse_xtype
+cholmod_l_sparse_xtype
+cholmod_allocate_factor
+cholmod_l_allocate_factor
+cholmod_free_factor
+cholmod_l_free_factor
+cholmod_reallocate_factor
+cholmod_l_reallocate_factor
+cholmod_change_factor
+cholmod_l_change_factor
+cholmod_pack_factor
+cholmod_l_pack_factor
+cholmod_reallocate_column
+cholmod_l_reallocate_column
+cholmod_factor_to_sparse
+cholmod_l_factor_to_sparse
+cholmod_copy_factor
+cholmod_l_copy_factor
+cholmod_factor_xtype
+cholmod_l_factor_xtype
+cholmod_allocate_dense
+cholmod_l_allocate_dense
+cholmod_zeros
+cholmod_l_zeros
+cholmod_ones
+cholmod_l_ones
+cholmod_eye
+cholmod_l_eye
+cholmod_free_dense
+cholmod_l_free_dense
+cholmod_sparse_to_dense
+cholmod_l_sparse_to_dense
+cholmod_dense_to_sparse
+cholmod_l_dense_to_sparse
+cholmod_copy_dense
+cholmod_l_copy_dense
+cholmod_copy_dense2
+cholmod_l_copy_dense2
+cholmod_dense_xtype
+cholmod_l_dense_xtype
+cholmod_allocate_triplet
+cholmod_l_allocate_triplet
+cholmod_free_triplet
+cholmod_l_free_triplet
+cholmod_reallocate_triplet
+cholmod_l_reallocate_triplet
+cholmod_sparse_to_triplet
+cholmod_l_sparse_to_triplet
+cholmod_triplet_to_sparse
+cholmod_l_triplet_to_sparse
+cholmod_copy_triplet
+cholmod_l_copy_triplet
+cholmod_triplet_xtype
+cholmod_l_triplet_xtype
+cholmod_malloc
+cholmod_l_malloc
+cholmod_calloc
+cholmod_l_calloc
+cholmod_free
+cholmod_l_free
+cholmod_realloc
+cholmod_l_realloc
+cholmod_realloc_multiple
+cholmod_l_realloc_multiple
+cholmod_check_common
+cholmod_l_check_common
+cholmod_print_common
+cholmod_l_print_common
+cholmod_check_sparse
+cholmod_l_check_sparse
+cholmod_print_sparse
+cholmod_l_print_sparse
+cholmod_check_dense
+cholmod_l_check_dense
+cholmod_print_dense
+cholmod_l_print_dense
+cholmod_check_factor
+cholmod_l_check_factor
+cholmod_print_factor
+cholmod_l_print_factor
+cholmod_check_triplet
+cholmod_l_check_triplet
+cholmod_print_triplet
+cholmod_l_print_triplet
+cholmod_check_subset
+cholmod_l_check_subset
+cholmod_print_subset
+cholmod_l_print_subset
+cholmod_check_perm
+cholmod_l_check_perm
+cholmod_print_perm
+cholmod_l_print_perm
+cholmod_check_parent
+cholmod_l_check_parent
+cholmod_print_parent
+cholmod_l_print_parent
+cholmod_read_sparse
+cholmod_l_read_sparse
+cholmod_read_triplet
+cholmod_l_read_triplet
+cholmod_read_dense
+cholmod_l_read_dense
+cholmod_read_matrix
+cholmod_l_read_matrix
+cholmod_write_sparse
+cholmod_l_write_sparse
+cholmod_write_dense
+cholmod_l_write_dense
+cholmod_analyze
+cholmod_l_analyze
+cholmod_analyze_p
+cholmod_l_analyze_p
+cholmod_analyze_p2
+cholmod_l_analyze_p2
+cholmod_factorize
+cholmod_l_factorize
+cholmod_factorize_p
+cholmod_l_factorize_p
+cholmod_solve
+cholmod_l_solve
+cholmod_spsolve
+cholmod_l_spsolve
+cholmod_etree
+cholmod_l_etree
+cholmod_rowcolcounts
+cholmod_l_rowcolcounts
+cholmod_analyze_ordering
+cholmod_l_analyze_ordering
+cholmod_amd
+cholmod_l_amd
+cholmod_colamd
+cholmod_l_colamd
+cholmod_rowfac
+cholmod_l_rowfac
+cholmod_rowfac_mask
+cholmod_l_rowfac_mask
+cholmod_row_subtree
+cholmod_l_row_subtree
+cholmod_row_lsubtree
+cholmod_l_row_lsubtree
+cholmod_resymbol
+cholmod_l_resymbol
+cholmod_resymbol_noperm
+cholmod_l_resymbol_noperm
+cholmod_rcond
+cholmod_l_rcond
+cholmod_postorder
+cholmod_l_postorder
+cholmod_drop
+cholmod_l_drop
+cholmod_norm_dense
+cholmod_l_norm_dense
+cholmod_norm_sparse
+cholmod_l_norm_sparse
+cholmod_horzcat
+cholmod_l_horzcat
+cholmod_scale
+cholmod_l_scale
+cholmod_sdmult
+cholmod_l_sdmult
+cholmod_ssmult
+cholmod_l_ssmult
+cholmod_submatrix
+cholmod_l_submatrix
+cholmod_vertcat
+cholmod_l_vertcat
+cholmod_symmetry
+cholmod_l_symmetry
+cholmod_updown
+cholmod_l_updown
+cholmod_updown_solve
+cholmod_l_updown_solve
+cholmod_updown_mark
+cholmod_l_updown_mark
+cholmod_updown_mask
+cholmod_l_updown_mask
+cholmod_rowadd
+cholmod_l_rowadd
+cholmod_rowadd_solve
+cholmod_l_rowadd_solve
+cholmod_rowadd_mark
+cholmod_l_rowadd_mark
+cholmod_rowdel
+cholmod_l_rowdel
+cholmod_rowdel_solve
+cholmod_l_rowdel_solve
+cholmod_rowdel_mark
+cholmod_l_rowdel_mark
+cholmod_nested_dissection
+cholmod_l_nested_dissection
+cholmod_metis
+cholmod_l_metis
+cholmod_ccolamd
+cholmod_l_ccolamd
+cholmod_csymamd
+cholmod_l_csymamd
+cholmod_camd
+cholmod_l_camd
+cholmod_bisect
+cholmod_l_bisect
+cholmod_metis_bisector
+cholmod_l_metis_bisector
+cholmod_collapse_septree
+cholmod_l_collapse_septree
+cholmod_super_symbolic
+cholmod_l_super_symbolic
+cholmod_super_symbolic2
+cholmod_l_super_symbolic2
+cholmod_super_numeric
+cholmod_l_super_numeric
+cholmod_super_lsolve
+cholmod_l_super_lsolve
+cholmod_super_ltsolve
+cholmod_l_super_ltsolve
+
+umfpack_di_symbolic
+umfpack_dl_symbolic
+umfpack_zi_symbolic
+umfpack_zl_symbolic
+umfpack_di_numeric
+umfpack_dl_numeric
+umfpack_zi_numeric
+umfpack_zl_numeric
+umfpack_di_solve
+umfpack_dl_solve
+umfpack_zi_solve
+umfpack_zl_solve
+umfpack_di_free_symbolic
+umfpack_dl_free_symbolic
+umfpack_zi_free_symbolic
+umfpack_zl_free_symbolic
+umfpack_di_free_numeric
+umfpack_dl_free_numeric
+umfpack_zi_free_numeric
+umfpack_zl_free_numeric
+umfpack_di_defaults
+umfpack_dl_defaults
+umfpack_zi_defaults
+umfpack_zl_defaults
+umfpack_di_qsymbolic
+umfpack_dl_qsymbolic
+umfpack_zi_qsymbolic
+umfpack_zl_qsymbolic
+umfpack_di_fsymbolic
+umfpack_dl_fsymbolic
+umfpack_zi_fsymbolic
+umfpack_zl_fsymbolic
+umfpack_di_wsolve
+umfpack_dl_wsolve
+umfpack_zi_wsolve
+umfpack_zl_wsolve
+umfpack_di_triplet_to_col
+umfpack_dl_triplet_to_col
+umfpack_zi_triplet_to_col
+umfpack_zl_triplet_to_col
+umfpack_di_col_to_triplet
+umfpack_dl_col_to_triplet
+umfpack_zi_col_to_triplet
+umfpack_zl_col_to_triplet
+umfpack_di_transpose
+umfpack_dl_transpose
+umfpack_zi_transpose
+umfpack_zl_transpose
+umfpack_di_scale
+umfpack_dl_scale
+umfpack_zi_scale
+umfpack_zl_scale
+umfpack_di_get_lunz
+umfpack_dl_get_lunz
+umfpack_zi_get_lunz
+umfpack_zl_get_lunz
+umfpack_di_get_numeric
+umfpack_dl_get_numeric
+umfpack_zi_get_numeric
+umfpack_zl_get_numeric
+umfpack_di_get_symbolic
+umfpack_dl_get_symbolic
+umfpack_zi_get_symbolic
+umfpack_zl_get_symbolic
+umfpack_di_save_numeric
+umfpack_dl_save_numeric
+umfpack_zi_save_numeric
+umfpack_zl_save_numeric
+umfpack_di_load_numeric
+umfpack_dl_load_numeric
+umfpack_zi_load_numeric
+umfpack_zl_load_numeric
+umfpack_di_save_symbolic
+umfpack_dl_save_symbolic
+umfpack_zi_save_symbolic
+umfpack_zl_save_symbolic
+umfpack_di_load_symbolic
+umfpack_dl_load_symbolic
+umfpack_zi_load_symbolic
+umfpack_zl_load_symbolic
+umfpack_di_get_determinant
+umfpack_dl_get_determinant
+umfpack_zi_get_determinant
+umfpack_zl_get_determinant
+umfpack_di_report_status
+umfpack_dl_report_status
+umfpack_zi_report_status
+umfpack_zl_report_status
+umfpack_di_report_info
+umfpack_dl_report_info
+umfpack_zi_report_info
+umfpack_zl_report_info
+umfpack_di_report_control
+umfpack_dl_report_control
+umfpack_zi_report_control
+umfpack_zl_report_control
+umfpack_di_report_matrix
+umfpack_dl_report_matrix
+umfpack_zi_report_matrix
+umfpack_zl_report_matrix
+umfpack_di_report_triplet
+umfpack_dl_report_triplet
+umfpack_zi_report_triplet
+umfpack_zl_report_triplet
+umfpack_di_report_vector
+umfpack_dl_report_vector
+umfpack_zi_report_vector
+umfpack_zl_report_vector
+umfpack_di_report_symbolic
+umfpack_dl_report_symbolic
+umfpack_zi_report_symbolic
+umfpack_zl_report_symbolic
+umfpack_di_report_numeric
+umfpack_dl_report_numeric
+umfpack_zi_report_numeric
+umfpack_zl_report_numeric
+umfpack_di_report_perm
+umfpack_dl_report_perm
+umfpack_zi_report_perm
+umfpack_zl_report_perm
+umfpack_timer
+umfpack_tic
+umfpack_toc
+umfpack_hypot
+umfpack_divcomplex
+umf_hypot
+umf_divcomplex
diff -r bd330bb9c312 -r 962f928cd637 metis-4.0/CMakeLists.txt
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/metis-4.0/CMakeLists.txt Mon Aug 15 23:27:23 2011 +0800
@@ -0,0 +1,1 @@
+add_subdirectory(Lib)
diff -r bd330bb9c312 -r 962f928cd637 metis-4.0/Lib/CMakeLists.txt
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/metis-4.0/Lib/CMakeLists.txt Mon Aug 15 23:27:23 2011 +0800
@@ -0,0 +1,18 @@
+include_directories(.)
+
+add_library(libmetis STATIC EXCLUDE_FROM_ALL
+ metis.h defs.h struct.h macros.h rename.h proto.h
+ coarsen.c fm.c initpart.c match.c ccgraph.c memory.c
+ pmetis.c pqueue.c refine.c util.c timing.c debug.c
+ bucketsort.c graph.c stat.c kmetis.c kwayrefine.c
+ kwayfm.c balance.c ometis.c srefine.c sfm.c separator.c
+ mincover.c mmd.c mesh.c meshpart.c frename.c fortran.c
+ myqsort.c compress.c parmetis.c estmem.c
+ mpmetis.c mcoarsen.c mmatch.c minitpart.c mbalance.c
+ mrefine.c mutil.c mfm.c mkmetis.c mkwayrefine.c mkwayfmh.c
+ mrefine2.c minitpart2.c mbalance2.c mfm2.c
+ kvmetis.c kwayvolrefine.c kwayvolfm.c subdomains.c)
+
+if(MSVC)
+ set_target_properties(libmetis PROPERTIES COMPILE_DEFINITIONS __VC__)
+endif()
diff -r bd330bb9c312 -r 962f928cd637 metis-4.0/Lib/metis.h
--- a/metis-4.0/Lib/metis.h Mon Aug 15 21:29:17 2011 +0800
+++ b/metis-4.0/Lib/metis.h Mon Aug 15 23:27:23 2011 +0800
@@ -18,7 +18,7 @@
#else
#include <malloc.h>
#endif
-#include <strings.h>
+
#include <string.h>
#include <ctype.h>
#include <math.h>
@@ -29,9 +29,9 @@
#include <dmalloc.h>
#endif
-#include <defs.h>
-#include <struct.h>
-#include <macros.h>
-#include <rename.h>
-#include <proto.h>
+#include "defs.h"
+#include "struct.h"
+#include "macros.h"
+#include "rename.h"
+#include "proto.h"
Zeuux © 2024
京ICP备05028076号