diff --git a/third_party/suitesparse.BUILD b/third_party/suitesparse.BUILD index 46ef5f6..a75a6e9 100644 --- a/third_party/suitesparse.BUILD +++ b/third_party/suitesparse.BUILD @@ -1,5 +1,5 @@ """ -suitesparse@7.1.0 +suitesparse@7.5.1 """ package(default_visibility = ["//visibility:public"]) @@ -429,22 +429,75 @@ cc_library( "CHOLMOD/Cholesky/cholmod_l_rowfac.c", "CHOLMOD/Cholesky/cholmod_l_solve.c", "CHOLMOD/Cholesky/cholmod_l_spsolve.c", - ## Core - "CHOLMOD/Core/cholmod_l_aat.c", - "CHOLMOD/Core/cholmod_l_add.c", - "CHOLMOD/Core/cholmod_l_band.c", - "CHOLMOD/Core/cholmod_l_change_factor.c", - "CHOLMOD/Core/cholmod_l_common.c", - "CHOLMOD/Core/cholmod_l_complex.c", - "CHOLMOD/Core/cholmod_l_copy.c", - "CHOLMOD/Core/cholmod_l_dense.c", - "CHOLMOD/Core/cholmod_l_error.c", - "CHOLMOD/Core/cholmod_l_factor.c", - "CHOLMOD/Core/cholmod_l_memory.c", - "CHOLMOD/Core/cholmod_l_sparse.c", - "CHOLMOD/Core/cholmod_l_transpose.c", - "CHOLMOD/Core/cholmod_l_triplet.c", - "CHOLMOD/Core/cholmod_l_version.c", + ## Utility + "CHOLMOD/Utility/cholmod_l_aat.c", + "CHOLMOD/Utility/cholmod_l_add.c", + "CHOLMOD/Utility/cholmod_l_add_size_t.c", + "CHOLMOD/Utility/cholmod_l_alloc_factor.c", + "CHOLMOD/Utility/cholmod_l_alloc_work.c", + "CHOLMOD/Utility/cholmod_l_allocate_dense.c", + "CHOLMOD/Utility/cholmod_l_allocate_factor.c", + "CHOLMOD/Utility/cholmod_l_allocate_sparse.c", + "CHOLMOD/Utility/cholmod_l_allocate_triplet.c", + "CHOLMOD/Utility/cholmod_l_allocate_work.c", + "CHOLMOD/Utility/cholmod_l_band.c", + "CHOLMOD/Utility/cholmod_l_band_nnz.c", + "CHOLMOD/Utility/cholmod_l_calloc.c", + "CHOLMOD/Utility/cholmod_l_change_factor.c", + "CHOLMOD/Utility/cholmod_l_clear_flag.c", + "CHOLMOD/Utility/cholmod_l_copy.c", + "CHOLMOD/Utility/cholmod_l_copy_dense.c", + "CHOLMOD/Utility/cholmod_l_copy_dense2.c", + "CHOLMOD/Utility/cholmod_l_copy_factor.c", + "CHOLMOD/Utility/cholmod_l_copy_sparse.c", + "CHOLMOD/Utility/cholmod_l_copy_triplet.c", + "CHOLMOD/Utility/cholmod_l_cumsum.c", + "CHOLMOD/Utility/cholmod_l_dbound.c", + "CHOLMOD/Utility/cholmod_l_defaults.c", + "CHOLMOD/Utility/cholmod_l_dense_nnz.c", + "CHOLMOD/Utility/cholmod_l_dense_to_sparse.c", + "CHOLMOD/Utility/cholmod_l_divcomplex.c", + "CHOLMOD/Utility/cholmod_l_ensure_dense.c", + "CHOLMOD/Utility/cholmod_l_error.c", + "CHOLMOD/Utility/cholmod_l_eye.c", + "CHOLMOD/Utility/cholmod_l_factor_to_sparse.c", + "CHOLMOD/Utility/cholmod_l_finish.c", + "CHOLMOD/Utility/cholmod_l_free.c", + "CHOLMOD/Utility/cholmod_l_free_dense.c", + "CHOLMOD/Utility/cholmod_l_free_factor.c", + "CHOLMOD/Utility/cholmod_l_free_sparse.c", + "CHOLMOD/Utility/cholmod_l_free_triplet.c", + "CHOLMOD/Utility/cholmod_l_free_work.c", + "CHOLMOD/Utility/cholmod_l_hypot.c", + "CHOLMOD/Utility/cholmod_l_malloc.c", + "CHOLMOD/Utility/cholmod_l_maxrank.c", + "CHOLMOD/Utility/cholmod_l_mult_size_t.c", + "CHOLMOD/Utility/cholmod_l_nnz.c", + "CHOLMOD/Utility/cholmod_l_ones.c", + "CHOLMOD/Utility/cholmod_l_pack_factor.c", + "CHOLMOD/Utility/cholmod_l_ptranspose.c", + "CHOLMOD/Utility/cholmod_l_realloc.c", + "CHOLMOD/Utility/cholmod_l_realloc_multiple.c", + "CHOLMOD/Utility/cholmod_l_reallocate_column.c", + "CHOLMOD/Utility/cholmod_l_reallocate_factor.c", + "CHOLMOD/Utility/cholmod_l_reallocate_sparse.c", + "CHOLMOD/Utility/cholmod_l_reallocate_triplet.c", + "CHOLMOD/Utility/cholmod_l_sbound.c", + "CHOLMOD/Utility/cholmod_l_score_comp.c", + "CHOLMOD/Utility/cholmod_l_set_empty.c", + "CHOLMOD/Utility/cholmod_l_sort.c", + "CHOLMOD/Utility/cholmod_l_sparse_to_dense.c", + "CHOLMOD/Utility/cholmod_l_sparse_to_triplet.c", + "CHOLMOD/Utility/cholmod_l_speye.c", + "CHOLMOD/Utility/cholmod_l_spzeros.c", + "CHOLMOD/Utility/cholmod_l_start.c", + "CHOLMOD/Utility/cholmod_l_transpose.c", + "CHOLMOD/Utility/cholmod_l_transpose_sym.c", + "CHOLMOD/Utility/cholmod_l_transpose_unsym.c", + "CHOLMOD/Utility/cholmod_l_triplet_to_sparse.c", + "CHOLMOD/Utility/cholmod_l_version.c", + "CHOLMOD/Utility/cholmod_l_xtype.c", + "CHOLMOD/Utility/cholmod_l_zeros.c", ## MatrixOps "CHOLMOD/MatrixOps/cholmod_l_drop.c", "CHOLMOD/MatrixOps/cholmod_l_horzcat.c", @@ -476,6 +529,7 @@ cc_library( "CHOLMOD/Include/cholmod.h", "CHOLMOD/Include/cholmod_internal.h", "CHOLMOD/Include/cholmod_template.h", + "CHOLMOD/Include/cholmod_types.h", ], copts = [ "-Iexternal/suitesparse/CHOLMOD/Cholesky", @@ -483,6 +537,7 @@ cc_library( "-Iexternal/suitesparse/CHOLMOD/Modify", "-Iexternal/suitesparse/CHOLMOD/Partition", "-Iexternal/suitesparse/CHOLMOD/Supernodal", + "-Iexternal/suitesparse/CHOLMOD/Utility", # The following include paths seem to be needed -- some # CHOLMOD code directly #includes internal libmetis/GKlib # files. @@ -523,21 +578,76 @@ cc_library( "CHOLMOD/Cholesky/cholmod_rowfac.c", "CHOLMOD/Cholesky/cholmod_solve.c", "CHOLMOD/Cholesky/cholmod_spsolve.c", - "CHOLMOD/Core/cholmod_aat.c", - "CHOLMOD/Core/cholmod_add.c", - "CHOLMOD/Core/cholmod_band.c", - "CHOLMOD/Core/cholmod_change_factor.c", - "CHOLMOD/Core/cholmod_common.c", - "CHOLMOD/Core/cholmod_complex.c", - "CHOLMOD/Core/cholmod_copy.c", - "CHOLMOD/Core/cholmod_dense.c", - "CHOLMOD/Core/cholmod_error.c", - "CHOLMOD/Core/cholmod_factor.c", - "CHOLMOD/Core/cholmod_memory.c", - "CHOLMOD/Core/cholmod_sparse.c", - "CHOLMOD/Core/cholmod_transpose.c", - "CHOLMOD/Core/cholmod_triplet.c", - "CHOLMOD/Core/cholmod_version.c", + "CHOLMOD/Utility/cholmod_aat.c", + "CHOLMOD/Utility/cholmod_add.c", + "CHOLMOD/Utility/cholmod_add_size_t.c", + "CHOLMOD/Utility/cholmod_alloc_factor.c", + "CHOLMOD/Utility/cholmod_alloc_work.c", + "CHOLMOD/Utility/cholmod_allocate_dense.c", + "CHOLMOD/Utility/cholmod_allocate_factor.c", + "CHOLMOD/Utility/cholmod_allocate_sparse.c", + "CHOLMOD/Utility/cholmod_allocate_triplet.c", + "CHOLMOD/Utility/cholmod_allocate_work.c", + "CHOLMOD/Utility/cholmod_band.c", + "CHOLMOD/Utility/cholmod_band_nnz.c", + "CHOLMOD/Utility/cholmod_calloc.c", + "CHOLMOD/Utility/cholmod_change_factor.c", + "CHOLMOD/Utility/cholmod_clear_flag.c", + "CHOLMOD/Utility/cholmod_copy.c", + "CHOLMOD/Utility/cholmod_copy_dense.c", + "CHOLMOD/Utility/cholmod_copy_dense2.c", + "CHOLMOD/Utility/cholmod_copy_factor.c", + "CHOLMOD/Utility/cholmod_copy_sparse.c", + "CHOLMOD/Utility/cholmod_copy_triplet.c", + "CHOLMOD/Utility/cholmod_cumsum.c", + "CHOLMOD/Utility/cholmod_dbound.c", + "CHOLMOD/Utility/cholmod_defaults.c", + "CHOLMOD/Utility/cholmod_dense_nnz.c", + "CHOLMOD/Utility/cholmod_dense_to_sparse.c", + "CHOLMOD/Utility/cholmod_divcomplex.c", + "CHOLMOD/Utility/cholmod_ensure_dense.c", + "CHOLMOD/Utility/cholmod_error.c", + "CHOLMOD/Utility/cholmod_eye.c", + "CHOLMOD/Utility/cholmod_factor_to_sparse.c", + "CHOLMOD/Utility/cholmod_finish.c", + "CHOLMOD/Utility/cholmod_free.c", + "CHOLMOD/Utility/cholmod_free_dense.c", + "CHOLMOD/Utility/cholmod_free_factor.c", + "CHOLMOD/Utility/cholmod_free_sparse.c", + "CHOLMOD/Utility/cholmod_free_triplet.c", + "CHOLMOD/Utility/cholmod_free_work.c", + "CHOLMOD/Utility/cholmod_hypot.c", + "CHOLMOD/Utility/cholmod_malloc.c", + "CHOLMOD/Utility/cholmod_maxrank.c", + "CHOLMOD/Utility/cholmod_memdebug.c", + "CHOLMOD/Utility/cholmod_mult_size_t.c", + "CHOLMOD/Utility/cholmod_mult_uint64_t.c", + "CHOLMOD/Utility/cholmod_nnz.c", + "CHOLMOD/Utility/cholmod_ones.c", + "CHOLMOD/Utility/cholmod_pack_factor.c", + "CHOLMOD/Utility/cholmod_ptranspose.c", + "CHOLMOD/Utility/cholmod_realloc.c", + "CHOLMOD/Utility/cholmod_realloc_multiple.c", + "CHOLMOD/Utility/cholmod_reallocate_column.c", + "CHOLMOD/Utility/cholmod_reallocate_factor.c", + "CHOLMOD/Utility/cholmod_reallocate_sparse.c", + "CHOLMOD/Utility/cholmod_reallocate_triplet.c", + "CHOLMOD/Utility/cholmod_sbound.c", + "CHOLMOD/Utility/cholmod_score_comp.c", + "CHOLMOD/Utility/cholmod_set_empty.c", + "CHOLMOD/Utility/cholmod_sort.c", + "CHOLMOD/Utility/cholmod_sparse_to_dense.c", + "CHOLMOD/Utility/cholmod_sparse_to_triplet.c", + "CHOLMOD/Utility/cholmod_speye.c", + "CHOLMOD/Utility/cholmod_spzeros.c", + "CHOLMOD/Utility/cholmod_start.c", + "CHOLMOD/Utility/cholmod_transpose.c", + "CHOLMOD/Utility/cholmod_transpose_sym.c", + "CHOLMOD/Utility/cholmod_transpose_unsym.c", + "CHOLMOD/Utility/cholmod_triplet_to_sparse.c", + "CHOLMOD/Utility/cholmod_version.c", + "CHOLMOD/Utility/cholmod_xtype.c", + "CHOLMOD/Utility/cholmod_zeros.c", "CHOLMOD/MatrixOps/cholmod_drop.c", "CHOLMOD/MatrixOps/cholmod_horzcat.c", "CHOLMOD/MatrixOps/cholmod_norm.c", @@ -547,6 +657,11 @@ cc_library( "CHOLMOD/MatrixOps/cholmod_submatrix.c", "CHOLMOD/MatrixOps/cholmod_symmetry.c", "CHOLMOD/MatrixOps/cholmod_vertcat.c", + "CHOLMOD/Modify/t_cholmod_rowadd_worker.c", + "CHOLMOD/Modify/t_cholmod_rowdel_worker.c", + "CHOLMOD/Modify/t_cholmod_updown_numkr.c", + "CHOLMOD/Modify/t_cholmod_updown_wdim.c", + "CHOLMOD/Modify/t_cholmod_updown_worker.c", "CHOLMOD/Modify/cholmod_rowadd.c", "CHOLMOD/Modify/cholmod_rowdel.c", "CHOLMOD/Modify/cholmod_updown.c", @@ -558,19 +673,116 @@ cc_library( "CHOLMOD/Supernodal/cholmod_super_numeric.c", "CHOLMOD/Supernodal/cholmod_super_solve.c", "CHOLMOD/Supernodal/cholmod_super_symbolic.c", - "CHOLMOD/Cholesky/t_cholmod_lsolve.c", - "CHOLMOD/Cholesky/t_cholmod_ltsolve.c", - "CHOLMOD/Cholesky/t_cholmod_rowfac.c", - "CHOLMOD/Cholesky/t_cholmod_solve.c", - "CHOLMOD/Core/t_cholmod_change_factor.c", - "CHOLMOD/Core/t_cholmod_dense.c", - "CHOLMOD/Core/t_cholmod_transpose.c", - "CHOLMOD/Core/t_cholmod_triplet.c", - "CHOLMOD/MatrixOps/t_cholmod_sdmult.c", - "CHOLMOD/Modify/t_cholmod_updown.c", - "CHOLMOD/Modify/t_cholmod_updown_numkr.c", - "CHOLMOD/Supernodal/t_cholmod_super_numeric.c", - "CHOLMOD/Supernodal/t_cholmod_super_solve.c", + "CHOLMOD/Supernodal/t_cholmod_super_numeric_worker.c", + "CHOLMOD/Supernodal/t_cholmod_super_solve_worker.c", + "CHOLMOD/Cholesky/t_cholmod_lsolve_template.c", + "CHOLMOD/Cholesky/t_cholmod_ltsolve_template.c", + "CHOLMOD/Cholesky/t_cholmod_rcond_worker.c", + "CHOLMOD/Cholesky/t_cholmod_resymbol_worker.c", + "CHOLMOD/Cholesky/t_cholmod_rowfac_worker.c", + "CHOLMOD/Cholesky/t_cholmod_solve_worker.c", + "CHOLMOD/Cholesky/t_cholmod_psolve_worker.c", + "CHOLMOD/Cholesky/t_cholmod_spsolve_worker.c", + "CHOLMOD/MatrixOps/t_cholmod_drop_worker.c", + "CHOLMOD/MatrixOps/t_cholmod_horzcat_worker.c", + "CHOLMOD/MatrixOps/t_cholmod_norm_worker.c", + "CHOLMOD/MatrixOps/t_cholmod_scale_worker.c", + "CHOLMOD/MatrixOps/t_cholmod_sdmult_worker.c", + "CHOLMOD/MatrixOps/t_cholmod_ssmult_worker.c", + "CHOLMOD/MatrixOps/t_cholmod_submatrix_worker.c", + "CHOLMOD/MatrixOps/t_cholmod_vertcat_worker.c", + "CHOLMOD/Utility/t_cholmod_aat.c", + "CHOLMOD/Utility/t_cholmod_aat_worker.c", + "CHOLMOD/Utility/t_cholmod_add.c", + "CHOLMOD/Utility/t_cholmod_add_size_t.c", + "CHOLMOD/Utility/t_cholmod_add_worker.c", + "CHOLMOD/Utility/t_cholmod_alloc_factor.c", + "CHOLMOD/Utility/t_cholmod_alloc_work.c", + "CHOLMOD/Utility/t_cholmod_allocate_dense.c", + "CHOLMOD/Utility/t_cholmod_allocate_sparse.c", + "CHOLMOD/Utility/t_cholmod_allocate_triplet.c", + "CHOLMOD/Utility/t_cholmod_band.c", + "CHOLMOD/Utility/t_cholmod_band_nnz.c", + "CHOLMOD/Utility/t_cholmod_band_worker.c", + "CHOLMOD/Utility/t_cholmod_bound.c", + "CHOLMOD/Utility/t_cholmod_change_factor.c", + "CHOLMOD/Utility/t_cholmod_change_factor_1_worker.c", + "CHOLMOD/Utility/t_cholmod_change_factor_2_template.c", + "CHOLMOD/Utility/t_cholmod_change_factor_2_worker.c", + "CHOLMOD/Utility/t_cholmod_change_factor_3_template.c", + "CHOLMOD/Utility/t_cholmod_change_factor_3_worker.c", + "CHOLMOD/Utility/t_cholmod_change_xdtype.c", + "CHOLMOD/Utility/t_cholmod_change_xdtype_template.c", + "CHOLMOD/Utility/t_cholmod_clear_flag.c", + "CHOLMOD/Utility/t_cholmod_copy.c", + "CHOLMOD/Utility/t_cholmod_copy_dense.c", + "CHOLMOD/Utility/t_cholmod_copy_dense2.c", + "CHOLMOD/Utility/t_cholmod_copy_dense2_worker.c", + "CHOLMOD/Utility/t_cholmod_copy_factor.c", + "CHOLMOD/Utility/t_cholmod_copy_factor_worker.c", + "CHOLMOD/Utility/t_cholmod_copy_sparse.c", + "CHOLMOD/Utility/t_cholmod_copy_sparse_worker.c", + "CHOLMOD/Utility/t_cholmod_copy_triplet.c", + "CHOLMOD/Utility/t_cholmod_copy_worker.c", + "CHOLMOD/Utility/t_cholmod_cumsum.c", + "CHOLMOD/Utility/t_cholmod_defaults.c", + "CHOLMOD/Utility/t_cholmod_dense_nnz.c", + "CHOLMOD/Utility/t_cholmod_dense_nnz_worker.c", + "CHOLMOD/Utility/t_cholmod_dense_to_sparse.c", + "CHOLMOD/Utility/t_cholmod_dense_to_sparse_worker.c", + "CHOLMOD/Utility/t_cholmod_ensure_dense.c", + "CHOLMOD/Utility/t_cholmod_error.c", + "CHOLMOD/Utility/t_cholmod_eye.c", + "CHOLMOD/Utility/t_cholmod_eye_worker.c", + "CHOLMOD/Utility/t_cholmod_factor_to_sparse.c", + "CHOLMOD/Utility/t_cholmod_finish.c", + "CHOLMOD/Utility/t_cholmod_free.c", + "CHOLMOD/Utility/t_cholmod_free_dense.c", + "CHOLMOD/Utility/t_cholmod_free_factor.c", + "CHOLMOD/Utility/t_cholmod_free_sparse.c", + "CHOLMOD/Utility/t_cholmod_free_triplet.c", + "CHOLMOD/Utility/t_cholmod_free_work.c", + "CHOLMOD/Utility/t_cholmod_malloc.c", + "CHOLMOD/Utility/t_cholmod_maxrank.c", + "CHOLMOD/Utility/t_cholmod_mult_size_t.c", + "CHOLMOD/Utility/t_cholmod_nnz.c", + "CHOLMOD/Utility/t_cholmod_ones.c", + "CHOLMOD/Utility/t_cholmod_ones_worker.c", + "CHOLMOD/Utility/t_cholmod_pack_factor.c", + "CHOLMOD/Utility/t_cholmod_pack_factor_worker.c", + "CHOLMOD/Utility/t_cholmod_ptranspose.c", + "CHOLMOD/Utility/t_cholmod_realloc.c", + "CHOLMOD/Utility/t_cholmod_realloc_multiple.c", + "CHOLMOD/Utility/t_cholmod_reallocate_column.c", + "CHOLMOD/Utility/t_cholmod_reallocate_column_worker.c", + "CHOLMOD/Utility/t_cholmod_reallocate_factor.c", + "CHOLMOD/Utility/t_cholmod_reallocate_sparse.c", + "CHOLMOD/Utility/t_cholmod_reallocate_triplet.c", + "CHOLMOD/Utility/t_cholmod_score_comp.c", + "CHOLMOD/Utility/t_cholmod_set_empty.c", + "CHOLMOD/Utility/t_cholmod_sort.c", + "CHOLMOD/Utility/t_cholmod_sort_worker.c", + "CHOLMOD/Utility/t_cholmod_sparse_to_dense.c", + "CHOLMOD/Utility/t_cholmod_sparse_to_dense_worker.c", + "CHOLMOD/Utility/t_cholmod_sparse_to_triplet.c", + "CHOLMOD/Utility/t_cholmod_sparse_to_triplet_worker.c", + "CHOLMOD/Utility/t_cholmod_speye.c", + "CHOLMOD/Utility/t_cholmod_speye_worker.c", + "CHOLMOD/Utility/t_cholmod_spzeros.c", + "CHOLMOD/Utility/t_cholmod_start.c", + "CHOLMOD/Utility/t_cholmod_transpose.c", + "CHOLMOD/Utility/t_cholmod_transpose_sym.c", + "CHOLMOD/Utility/t_cholmod_transpose_sym_permuted.c", + "CHOLMOD/Utility/t_cholmod_transpose_sym_template.c", + "CHOLMOD/Utility/t_cholmod_transpose_sym_unpermuted.c", + "CHOLMOD/Utility/t_cholmod_transpose_sym_worker.c", + "CHOLMOD/Utility/t_cholmod_transpose_unsym.c", + "CHOLMOD/Utility/t_cholmod_transpose_unsym_template.c", + "CHOLMOD/Utility/t_cholmod_transpose_unsym_worker.c", + "CHOLMOD/Utility/t_cholmod_triplet_to_sparse.c", + "CHOLMOD/Utility/t_cholmod_triplet_to_sparse_worker.c", + "CHOLMOD/Utility/t_cholmod_version.c", + "CHOLMOD/Utility/t_cholmod_zeros.c", # There may be a better way to make these available to # #include in this library's code. # @@ -643,6 +855,7 @@ cc_library( "SPQR/Source/spqr_analyze.cpp", "SPQR/Source/spqr_append.cpp", "SPQR/Source/spqr_assemble.cpp", + "SPQR/Source/spqr_cholmod_wrappers.cpp", "SPQR/Source/spqr_cpack.cpp", "SPQR/Source/spqr_csize.cpp", "SPQR/Source/spqr_cumsum.cpp", @@ -675,6 +888,8 @@ cc_library( "SPQR/Source/spqr_type.cpp", ], hdrs = [ + "SPQR/Include/spqr_cholmod_wrappers.hpp", + "SPQR/Include/spqrgpu.hpp", "SPQR/Include/SuiteSparseQR.hpp", "SPQR/Include/SuiteSparseQR_C.h", "SPQR/Include/SuiteSparseQR_definitions.h",