Merge lp:~logan/ubuntu/trusty/suitesparse/4.2.1-3ubuntu1 into lp:ubuntu/trusty/suitesparse

Proposed by Logan Rosen
Status: Needs review
Proposed branch: lp:~logan/ubuntu/trusty/suitesparse/4.2.1-3ubuntu1
Merge into: lp:ubuntu/trusty/suitesparse
Diff against target: 178439 lines (+77955/-59290)
1823 files modified
.pc/.quilt_patches (+1/-0)
.pc/.quilt_series (+1/-0)
.pc/.version (+1/-0)
AMD/Demo/Makefile (+6/-5)
AMD/Demo/amd_demo.c (+3/-4)
AMD/Demo/amd_demo.out (+3/-3)
AMD/Demo/amd_demo2.c (+1/-2)
AMD/Demo/amd_demo2.out (+2/-2)
AMD/Demo/amd_f77cross.f (+2/-3)
AMD/Demo/amd_f77demo.f (+2/-3)
AMD/Demo/amd_f77simple.f (+2/-3)
AMD/Demo/amd_f77wrapper.c (+1/-2)
AMD/Demo/amd_l_demo.c (+7/-8)
AMD/Demo/amd_l_demo.out (+3/-3)
AMD/Demo/amd_simple.c (+1/-2)
AMD/Doc/AMD_UserGuide.tex (+13/-436)
AMD/Doc/ChangeLog (+24/-0)
AMD/Doc/License (+1/-1)
AMD/Doc/Makefile (+6/-3)
AMD/Include/amd.h (+183/-184)
AMD/Include/amd_internal.h (+27/-30)
AMD/Lib/GNUmakefile (+15/-15)
AMD/Lib/Makefile (+6/-5)
AMD/MATLAB/Contents.m (+1/-2)
AMD/MATLAB/Makefile (+0/-34)
AMD/MATLAB/amd2.m (+1/-5)
AMD/MATLAB/amd_demo.m (+1/-4)
AMD/MATLAB/amd_install.m (+1/-2)
AMD/MATLAB/amd_make.m (+3/-4)
AMD/MATLAB/amd_mex.c (+6/-7)
AMD/Makefile (+26/-20)
AMD/README.txt (+15/-17)
AMD/Source/amd_1.c (+1/-2)
AMD/Source/amd_2.c (+7/-7)
AMD/Source/amd_aat.c (+1/-2)
AMD/Source/amd_control.c (+1/-2)
AMD/Source/amd_defaults.c (+1/-2)
AMD/Source/amd_dump.c (+1/-2)
AMD/Source/amd_global.c (+1/-2)
AMD/Source/amd_info.c (+1/-2)
AMD/Source/amd_order.c (+1/-2)
AMD/Source/amd_post_tree.c (+1/-2)
AMD/Source/amd_postorder.c (+1/-2)
AMD/Source/amd_preprocess.c (+1/-2)
AMD/Source/amd_valid.c (+1/-2)
BTF/Doc/ChangeLog (+16/-0)
BTF/Include/btf.h (+15/-11)
BTF/Include/btf_internal.h (+3/-3)
BTF/Lib/Makefile (+5/-5)
BTF/MATLAB/Contents.m (+1/-1)
BTF/MATLAB/Makefile (+0/-37)
BTF/MATLAB/Test/btf_test.m (+1/-1)
BTF/MATLAB/Test/checkbtf.m (+1/-1)
BTF/MATLAB/Test/test1.m (+2/-2)
BTF/MATLAB/Test/test2.m (+2/-3)
BTF/MATLAB/Test/test3.m (+1/-4)
BTF/MATLAB/Test/test4.m (+1/-1)
BTF/MATLAB/Test/test5.m (+1/-1)
BTF/MATLAB/Test/test6.m (+1/-1)
BTF/MATLAB/btf.c (+9/-8)
BTF/MATLAB/btf.m (+1/-1)
BTF/MATLAB/btf_demo.m (+1/-2)
BTF/MATLAB/btf_install.m (+1/-1)
BTF/MATLAB/btf_make.m (+2/-2)
BTF/MATLAB/drawbtf.m (+1/-1)
BTF/MATLAB/maxtrans.c (+7/-6)
BTF/MATLAB/maxtrans.m (+1/-1)
BTF/MATLAB/strongcomp.c (+10/-9)
BTF/MATLAB/strongcomp.m (+1/-1)
BTF/Makefile (+23/-5)
BTF/README.txt (+5/-5)
BTF/Source/btf_maxtrans.c (+1/-1)
BTF/Source/btf_order.c (+1/-1)
BTF/Source/btf_strongcomp.c (+1/-1)
CAMD/Demo/Makefile (+6/-7)
CAMD/Demo/camd_demo.c (+1/-2)
CAMD/Demo/camd_demo.out (+2/-2)
CAMD/Demo/camd_demo2.c (+1/-2)
CAMD/Demo/camd_demo2.out (+1/-1)
CAMD/Demo/camd_l_demo.c (+6/-9)
CAMD/Demo/camd_l_demo.out (+2/-2)
CAMD/Demo/camd_simple.c (+1/-2)
CAMD/Doc/CAMD_UserGuide.tex (+13/-438)
CAMD/Doc/ChangeLog (+24/-0)
CAMD/Doc/License (+1/-1)
CAMD/Doc/Makefile (+8/-4)
CAMD/Include/camd.h (+186/-187)
CAMD/Include/camd_internal.h (+27/-30)
CAMD/Lib/GNUmakefile (+5/-6)
CAMD/Lib/Makefile (+4/-3)
CAMD/MATLAB/Contents.m (+1/-2)
CAMD/MATLAB/Makefile (+0/-34)
CAMD/MATLAB/camd.m (+1/-2)
CAMD/MATLAB/camd_demo.m (+1/-3)
CAMD/MATLAB/camd_make.m (+3/-4)
CAMD/MATLAB/camd_mex.c (+8/-9)
CAMD/Makefile (+27/-21)
CAMD/README.txt (+14/-15)
CAMD/Source/camd_1.c (+1/-2)
CAMD/Source/camd_2.c (+1/-2)
CAMD/Source/camd_aat.c (+1/-2)
CAMD/Source/camd_control.c (+1/-2)
CAMD/Source/camd_defaults.c (+1/-2)
CAMD/Source/camd_dump.c (+1/-2)
CAMD/Source/camd_global.c (+1/-2)
CAMD/Source/camd_info.c (+1/-2)
CAMD/Source/camd_order.c (+1/-2)
CAMD/Source/camd_postorder.c (+1/-2)
CAMD/Source/camd_preprocess.c (+1/-2)
CAMD/Source/camd_valid.c (+1/-2)
CCOLAMD/Demo/Makefile (+7/-6)
CCOLAMD/Demo/ccolamd_example.c (+0/-1)
CCOLAMD/Demo/ccolamd_example.out (+2/-2)
CCOLAMD/Demo/ccolamd_l_example.c (+8/-13)
CCOLAMD/Demo/ccolamd_l_example.out (+2/-2)
CCOLAMD/Doc/ChangeLog (+17/-0)
CCOLAMD/Include/ccolamd.h (+68/-70)
CCOLAMD/Lib/Makefile (+10/-9)
CCOLAMD/MATLAB/Makefile (+0/-35)
CCOLAMD/MATLAB/ccolamd_demo.m (+12/-17)
CCOLAMD/MATLAB/ccolamd_make.m (+2/-1)
CCOLAMD/MATLAB/ccolamd_test.m (+2/-1)
CCOLAMD/MATLAB/ccolamdmex.c (+25/-26)
CCOLAMD/MATLAB/ccolamdtestmex.c (+33/-34)
CCOLAMD/MATLAB/csymamd.m (+2/-2)
CCOLAMD/MATLAB/csymamdmex.c (+22/-23)
CCOLAMD/MATLAB/csymamdtestmex.c (+32/-33)
CCOLAMD/Makefile (+25/-18)
CCOLAMD/README.txt (+10/-19)
CCOLAMD/Source/ccolamd.c (+27/-31)
CCOLAMD/Source/ccolamd_global.c (+0/-1)
CHOLMOD/Check/License.txt (+1/-1)
CHOLMOD/Check/cholmod_check.c (+96/-35)
CHOLMOD/Check/cholmod_read.c (+0/-1)
CHOLMOD/Cholesky/License.txt (+1/-1)
CHOLMOD/Cholesky/cholmod_amd.c (+0/-1)
CHOLMOD/Cholesky/cholmod_analyze.c (+16/-4)
CHOLMOD/Cholesky/cholmod_colamd.c (+0/-1)
CHOLMOD/Cholesky/cholmod_etree.c (+0/-1)
CHOLMOD/Cholesky/cholmod_factorize.c (+0/-1)
CHOLMOD/Cholesky/cholmod_postorder.c (+1/-2)
CHOLMOD/Cholesky/cholmod_rcond.c (+0/-1)
CHOLMOD/Cholesky/cholmod_resymbol.c (+0/-1)
CHOLMOD/Cholesky/cholmod_rowcolcounts.c (+0/-1)
CHOLMOD/Cholesky/cholmod_rowfac.c (+82/-26)
CHOLMOD/Cholesky/cholmod_solve.c (+577/-93)
CHOLMOD/Cholesky/cholmod_spsolve.c (+0/-1)
CHOLMOD/Cholesky/t_cholmod_lsolve.c (+56/-49)
CHOLMOD/Cholesky/t_cholmod_ltsolve.c (+58/-50)
CHOLMOD/Cholesky/t_cholmod_rowfac.c (+0/-1)
CHOLMOD/Cholesky/t_cholmod_solve.c (+32/-19)
CHOLMOD/Core/License.txt (+1/-1)
CHOLMOD/Core/cholmod_aat.c (+0/-1)
CHOLMOD/Core/cholmod_add.c (+0/-1)
CHOLMOD/Core/cholmod_band.c (+6/-7)
CHOLMOD/Core/cholmod_change_factor.c (+0/-1)
CHOLMOD/Core/cholmod_common.c (+32/-3)
CHOLMOD/Core/cholmod_complex.c (+0/-1)
CHOLMOD/Core/cholmod_copy.c (+0/-1)
CHOLMOD/Core/cholmod_dense.c (+63/-2)
CHOLMOD/Core/cholmod_error.c (+0/-1)
CHOLMOD/Core/cholmod_factor.c (+3/-2)
CHOLMOD/Core/cholmod_memory.c (+61/-49)
CHOLMOD/Core/cholmod_sparse.c (+1/-2)
CHOLMOD/Core/cholmod_transpose.c (+0/-1)
CHOLMOD/Core/cholmod_triplet.c (+0/-1)
CHOLMOD/Core/cholmod_version.c (+37/-0)
CHOLMOD/Core/t_cholmod_change_factor.c (+0/-1)
CHOLMOD/Core/t_cholmod_dense.c (+0/-1)
CHOLMOD/Core/t_cholmod_transpose.c (+0/-1)
CHOLMOD/Core/t_cholmod_triplet.c (+0/-1)
CHOLMOD/Demo/License.txt (+1/-1)
CHOLMOD/Demo/Makefile (+62/-21)
CHOLMOD/Demo/Matrix/two.tri (+5/-0)
CHOLMOD/Demo/cholmod_demo.c (+319/-99)
CHOLMOD/Demo/cholmod_demo.h (+4/-3)
CHOLMOD/Demo/cholmod_l_demo.c (+318/-102)
CHOLMOD/Demo/cholmod_simple.c (+0/-1)
CHOLMOD/Demo/lperf.m (+56/-0)
CHOLMOD/Demo/make.out (+0/-213)
CHOLMOD/Doc/ChangeLog (+59/-0)
CHOLMOD/Doc/Makefile (+10/-4)
CHOLMOD/Doc/UserGuide.tex (+225/-80)
CHOLMOD/Include/License.txt (+0/-1)
CHOLMOD/Include/README.txt (+1/-1)
CHOLMOD/Include/cholmod.h (+10/-7)
CHOLMOD/Include/cholmod_blas.h (+43/-45)
CHOLMOD/Include/cholmod_camd.h (+102/-0)
CHOLMOD/Include/cholmod_check.h (+19/-10)
CHOLMOD/Include/cholmod_cholesky.h (+75/-27)
CHOLMOD/Include/cholmod_config.h (+4/-2)
CHOLMOD/Include/cholmod_core.h (+180/-75)
CHOLMOD/Include/cholmod_internal.h (+50/-45)
CHOLMOD/Include/cholmod_io64.h (+1/-2)
CHOLMOD/Include/cholmod_matrixops.h (+9/-7)
CHOLMOD/Include/cholmod_modify.h (+11/-9)
CHOLMOD/Include/cholmod_partition.h (+25/-92)
CHOLMOD/Include/cholmod_supernodal.h (+4/-4)
CHOLMOD/Lib/Makefile (+56/-11)
CHOLMOD/MATLAB/Contents.m (+1/-2)
CHOLMOD/MATLAB/License.txt (+1/-1)
CHOLMOD/MATLAB/Makefile (+0/-700)
CHOLMOD/MATLAB/README.txt (+4/-3)
CHOLMOD/MATLAB/Test/Contents.m (+4/-1)
CHOLMOD/MATLAB/Test/cholmod_test.m (+40/-33)
CHOLMOD/MATLAB/Test/cholmod_test_11-May-2007_13-29-15.txt (+0/-12324)
CHOLMOD/MATLAB/Test/dg.m (+1/-3)
CHOLMOD/MATLAB/Test/ltest.m (+70/-0)
CHOLMOD/MATLAB/Test/ltest2.m (+112/-0)
CHOLMOD/MATLAB/Test/lxtest.m (+82/-0)
CHOLMOD/MATLAB/Test/n2.m (+1/-1)
CHOLMOD/MATLAB/Test/nn.m (+1/-1)
CHOLMOD/MATLAB/Test/test0.m (+3/-4)
CHOLMOD/MATLAB/Test/test1.m (+1/-1)
CHOLMOD/MATLAB/Test/test10.m (+1/-1)
CHOLMOD/MATLAB/Test/test11.m (+2/-2)
CHOLMOD/MATLAB/Test/test11results.m (+1/-2)
CHOLMOD/MATLAB/Test/test12.m (+1/-1)
CHOLMOD/MATLAB/Test/test13.m (+1/-1)
CHOLMOD/MATLAB/Test/test14.m (+1/-1)
CHOLMOD/MATLAB/Test/test15.m (+1/-1)
CHOLMOD/MATLAB/Test/test16.m (+1/-2)
CHOLMOD/MATLAB/Test/test17.m (+1/-1)
CHOLMOD/MATLAB/Test/test18.m (+1/-1)
CHOLMOD/MATLAB/Test/test19.m (+1/-1)
CHOLMOD/MATLAB/Test/test2.m (+1/-1)
CHOLMOD/MATLAB/Test/test20.m (+1/-1)
CHOLMOD/MATLAB/Test/test21.m (+1/-1)
CHOLMOD/MATLAB/Test/test22.m (+1/-1)
CHOLMOD/MATLAB/Test/test23.m (+1/-1)
CHOLMOD/MATLAB/Test/test24.m (+1/-1)
CHOLMOD/MATLAB/Test/test25.m (+1/-1)
CHOLMOD/MATLAB/Test/test26.m (+1/-1)
CHOLMOD/MATLAB/Test/test27.m (+1/-1)
CHOLMOD/MATLAB/Test/test28.m (+1/-1)
CHOLMOD/MATLAB/Test/test3.m (+1/-1)
CHOLMOD/MATLAB/Test/test4.m (+1/-1)
CHOLMOD/MATLAB/Test/test5.m (+1/-1)
CHOLMOD/MATLAB/Test/test6.m (+1/-1)
CHOLMOD/MATLAB/Test/test7.m (+1/-1)
CHOLMOD/MATLAB/Test/test8.m (+1/-1)
CHOLMOD/MATLAB/Test/test9.m (+1/-3)
CHOLMOD/MATLAB/Test/testmm.m (+1/-1)
CHOLMOD/MATLAB/Test/testsolve.m (+1/-1)
CHOLMOD/MATLAB/Windows/README.txt (+2/-0)
CHOLMOD/MATLAB/analyze.c (+2/-2)
CHOLMOD/MATLAB/analyze.m (+1/-2)
CHOLMOD/MATLAB/bisect.c (+5/-5)
CHOLMOD/MATLAB/bisect.m (+1/-2)
CHOLMOD/MATLAB/chol2.c (+2/-2)
CHOLMOD/MATLAB/chol2.m (+2/-3)
CHOLMOD/MATLAB/cholmod2.c (+4/-4)
CHOLMOD/MATLAB/cholmod2.m (+1/-2)
CHOLMOD/MATLAB/cholmod_demo.m (+3/-11)
CHOLMOD/MATLAB/cholmod_make.m (+117/-129)
CHOLMOD/MATLAB/cholmod_matlab.c (+95/-95)
CHOLMOD/MATLAB/cholmod_matlab.h (+60/-60)
CHOLMOD/MATLAB/etree2.c (+8/-8)
CHOLMOD/MATLAB/etree2.m (+1/-2)
CHOLMOD/MATLAB/graph_demo.m (+2/-6)
CHOLMOD/MATLAB/lchol.c (+2/-2)
CHOLMOD/MATLAB/lchol.m (+2/-3)
CHOLMOD/MATLAB/ldl_normest.m (+1/-7)
CHOLMOD/MATLAB/ldlchol.c (+2/-2)
CHOLMOD/MATLAB/ldlchol.m (+1/-3)
CHOLMOD/MATLAB/ldlsolve.c (+6/-6)
CHOLMOD/MATLAB/ldlsolve.m (+1/-2)
CHOLMOD/MATLAB/ldlsplit.m (+1/-2)
CHOLMOD/MATLAB/ldlupdate.c (+6/-6)
CHOLMOD/MATLAB/ldlupdate.m (+1/-2)
CHOLMOD/MATLAB/lsubsolve.c (+247/-0)
CHOLMOD/MATLAB/lxbpattern.c (+150/-0)
CHOLMOD/MATLAB/metis.c (+5/-5)
CHOLMOD/MATLAB/metis.m (+1/-2)
CHOLMOD/MATLAB/mread.c (+3/-3)
CHOLMOD/MATLAB/mread.m (+1/-2)
CHOLMOD/MATLAB/mwrite.c (+1/-1)
CHOLMOD/MATLAB/nesdis.c (+9/-9)
CHOLMOD/MATLAB/nesdis.m (+1/-2)
CHOLMOD/MATLAB/rename.h (+0/-10)
CHOLMOD/MATLAB/resymbol.c (+5/-5)
CHOLMOD/MATLAB/resymbol.m (+1/-2)
CHOLMOD/MATLAB/sdmult.c (+2/-2)
CHOLMOD/MATLAB/sdmult.m (+1/-2)
CHOLMOD/MATLAB/septree.c (+7/-7)
CHOLMOD/MATLAB/septree.m (+1/-2)
CHOLMOD/MATLAB/sparse2.m (+1/-2)
CHOLMOD/MATLAB/spsym.c (+2/-2)
CHOLMOD/MATLAB/spsym.m (+1/-2)
CHOLMOD/MATLAB/symbfact2.c (+13/-13)
CHOLMOD/MATLAB/symbfact2.m (+1/-2)
CHOLMOD/Makefile (+27/-11)
CHOLMOD/MatrixOps/License.txt (+1/-1)
CHOLMOD/MatrixOps/cholmod_drop.c (+1/-1)
CHOLMOD/MatrixOps/cholmod_horzcat.c (+1/-1)
CHOLMOD/MatrixOps/cholmod_norm.c (+1/-1)
CHOLMOD/MatrixOps/cholmod_scale.c (+1/-1)
CHOLMOD/MatrixOps/cholmod_sdmult.c (+1/-1)
CHOLMOD/MatrixOps/cholmod_ssmult.c (+1/-1)
CHOLMOD/MatrixOps/cholmod_submatrix.c (+3/-3)
CHOLMOD/MatrixOps/cholmod_symmetry.c (+1/-1)
CHOLMOD/MatrixOps/cholmod_vertcat.c (+1/-1)
CHOLMOD/MatrixOps/t_cholmod_sdmult.c (+1/-1)
CHOLMOD/Modify/License.txt (+1/-1)
CHOLMOD/Modify/cholmod_rowadd.c (+1/-1)
CHOLMOD/Modify/cholmod_rowdel.c (+1/-1)
CHOLMOD/Modify/cholmod_updown.c (+1/-1)
CHOLMOD/Modify/t_cholmod_updown.c (+1/-1)
CHOLMOD/Modify/t_cholmod_updown_numkr.c (+1/-1)
CHOLMOD/Partition/License.txt (+1/-1)
CHOLMOD/Partition/cholmod_camd.c (+4/-4)
CHOLMOD/Partition/cholmod_ccolamd.c (+3/-4)
CHOLMOD/Partition/cholmod_csymamd.c (+3/-4)
CHOLMOD/Partition/cholmod_metis.c (+4/-5)
CHOLMOD/Partition/cholmod_nesdis.c (+6/-6)
CHOLMOD/README.txt (+13/-16)
CHOLMOD/Supernodal/License.txt (+1/-1)
CHOLMOD/Supernodal/cholmod_super_numeric.c (+11/-2)
CHOLMOD/Supernodal/cholmod_super_solve.c (+1/-1)
CHOLMOD/Supernodal/cholmod_super_symbolic.c (+1/-1)
CHOLMOD/Supernodal/t_cholmod_gpu.c (+972/-0)
CHOLMOD/Supernodal/t_cholmod_super_numeric.c (+234/-94)
CHOLMOD/Supernodal/t_cholmod_super_solve.c (+1/-1)
CHOLMOD/Tcov/License.txt (+1/-1)
CHOLMOD/Tcov/Make.inc (+1/-1)
CHOLMOD/Tcov/Makefile (+71/-27)
CHOLMOD/Tcov/Matrix/rename.h (+0/-10)
CHOLMOD/Tcov/README.txt (+16/-0)
CHOLMOD/Tcov/amdtest.c (+2/-2)
CHOLMOD/Tcov/aug.c (+1/-1)
CHOLMOD/Tcov/camdtest.c (+3/-3)
CHOLMOD/Tcov/cctest.c (+3/-3)
CHOLMOD/Tcov/cm.c (+13/-5)
CHOLMOD/Tcov/cm.h (+4/-3)
CHOLMOD/Tcov/cmread.c (+2/-2)
CHOLMOD/Tcov/covs (+3/-3)
CHOLMOD/Tcov/ctest.c (+1/-1)
CHOLMOD/Tcov/huge.c (+4/-4)
CHOLMOD/Tcov/leak.c (+1/-1)
CHOLMOD/Tcov/lpdemo.c (+1/-1)
CHOLMOD/Tcov/memory.c (+2/-2)
CHOLMOD/Tcov/null.c (+13/-6)
CHOLMOD/Tcov/null2.c (+34/-17)
CHOLMOD/Tcov/raw_factor.c (+3/-3)
CHOLMOD/Tcov/solve.c (+383/-18)
CHOLMOD/Tcov/test_ops.c (+7/-6)
CHOLMOD/Tcov/unpack.c (+1/-1)
CHOLMOD/Valgrind/License.txt (+1/-1)
CHOLMOD/Valgrind/Make.inc (+1/-1)
CHOLMOD/Valgrind/README.txt (+1/-0)
COLAMD/Demo/Makefile (+7/-6)
COLAMD/Demo/colamd_example.c (+1/-2)
COLAMD/Demo/colamd_example.out (+2/-2)
COLAMD/Demo/colamd_l_example.c (+9/-12)
COLAMD/Demo/colamd_l_example.out (+2/-2)
COLAMD/Doc/ChangeLog (+16/-0)
COLAMD/Include/colamd.h (+26/-30)
COLAMD/Lib/Makefile (+10/-9)
COLAMD/MATLAB/Makefile (+0/-35)
COLAMD/MATLAB/colamd_demo.m (+1/-2)
COLAMD/MATLAB/colamd_make.m (+2/-1)
COLAMD/MATLAB/colamd_test.m (+2/-1)
COLAMD/MATLAB/colamdmex.c (+24/-32)
COLAMD/MATLAB/colamdtestmex.c (+46/-54)
COLAMD/MATLAB/symamdmex.c (+22/-29)
COLAMD/MATLAB/symamdtestmex.c (+43/-51)
COLAMD/Makefile (+25/-18)
COLAMD/README.txt (+10/-19)
COLAMD/Source/colamd.c (+23/-30)
COLAMD/Source/colamd_global.c (+1/-1)
CSparse/Demo/Makefile (+6/-8)
CSparse/Demo/README.txt (+2/-0)
CSparse/Demo/cs_demo.c (+25/-22)
CSparse/Demo/cs_demo.h (+3/-3)
CSparse/Demo/cs_demo.out (+21/-21)
CSparse/Demo/cs_demo1.c (+1/-1)
CSparse/Doc/ChangeLog (+37/-0)
CSparse/Doc/License.txt (+1/-1)
CSparse/Include/cs.h (+88/-79)
CSparse/Lib/Makefile (+8/-10)
CSparse/MATLAB/CSparse/Contents.m (+1/-2)
CSparse/MATLAB/CSparse/Makefile (+0/-259)
CSparse/MATLAB/CSparse/README.txt (+2/-0)
CSparse/MATLAB/CSparse/ccspy.m (+1/-2)
CSparse/MATLAB/CSparse/cs_add.m (+1/-2)
CSparse/MATLAB/CSparse/cs_amd.m (+1/-2)
CSparse/MATLAB/CSparse/cs_amd_mex.c (+1/-1)
CSparse/MATLAB/CSparse/cs_chol.m (+1/-2)
CSparse/MATLAB/CSparse/cs_chol_mex.c (+1/-1)
CSparse/MATLAB/CSparse/cs_cholsol.m (+1/-2)
CSparse/MATLAB/CSparse/cs_cholsol_mex.c (+1/-1)
CSparse/MATLAB/CSparse/cs_counts.m (+1/-2)
CSparse/MATLAB/CSparse/cs_counts_mex.c (+1/-1)
CSparse/MATLAB/CSparse/cs_dmperm.m (+1/-2)
CSparse/MATLAB/CSparse/cs_dmperm_mex.c (+1/-1)
CSparse/MATLAB/CSparse/cs_dmsol.m (+1/-2)
CSparse/MATLAB/CSparse/cs_dmspy.m (+1/-2)
CSparse/MATLAB/CSparse/cs_droptol.m (+1/-2)
CSparse/MATLAB/CSparse/cs_droptol_mex.c (+1/-1)
CSparse/MATLAB/CSparse/cs_esep.m (+1/-2)
CSparse/MATLAB/CSparse/cs_etree.m (+1/-2)
CSparse/MATLAB/CSparse/cs_etree_mex.c (+1/-1)
CSparse/MATLAB/CSparse/cs_gaxpy.m (+1/-2)
CSparse/MATLAB/CSparse/cs_lsolve.m (+1/-2)
CSparse/MATLAB/CSparse/cs_lsolve_mex.c (+2/-2)
CSparse/MATLAB/CSparse/cs_ltsolve.m (+1/-2)
CSparse/MATLAB/CSparse/cs_lu.m (+1/-2)
CSparse/MATLAB/CSparse/cs_lu_mex.c (+1/-1)
CSparse/MATLAB/CSparse/cs_lusol.m (+1/-2)
CSparse/MATLAB/CSparse/cs_lusol_mex.c (+1/-1)
CSparse/MATLAB/CSparse/cs_make.m (+54/-23)
CSparse/MATLAB/CSparse/cs_mex.c (+16/-16)
CSparse/MATLAB/CSparse/cs_mex.h (+6/-6)
CSparse/MATLAB/CSparse/cs_multiply.m (+1/-2)
CSparse/MATLAB/CSparse/cs_must_compile.m (+1/-2)
CSparse/MATLAB/CSparse/cs_nd.m (+1/-2)
CSparse/MATLAB/CSparse/cs_nsep.m (+1/-2)
CSparse/MATLAB/CSparse/cs_permute.m (+1/-2)
CSparse/MATLAB/CSparse/cs_permute_mex.c (+1/-1)
CSparse/MATLAB/CSparse/cs_print.m (+1/-2)
CSparse/MATLAB/CSparse/cs_print_mex.c (+1/-1)
CSparse/MATLAB/CSparse/cs_qleft.m (+1/-2)
CSparse/MATLAB/CSparse/cs_qr.m (+1/-2)
CSparse/MATLAB/CSparse/cs_qr_mex.c (+1/-1)
CSparse/MATLAB/CSparse/cs_qright.m (+1/-2)
CSparse/MATLAB/CSparse/cs_qrsol.m (+1/-2)
CSparse/MATLAB/CSparse/cs_qrsol_mex.c (+1/-1)
CSparse/MATLAB/CSparse/cs_randperm.m (+1/-2)
CSparse/MATLAB/CSparse/cs_randperm_mex.c (+1/-1)
CSparse/MATLAB/CSparse/cs_scc.m (+1/-2)
CSparse/MATLAB/CSparse/cs_scc2.m (+1/-2)
CSparse/MATLAB/CSparse/cs_scc_mex.c (+2/-2)
CSparse/MATLAB/CSparse/cs_sep.m (+1/-2)
CSparse/MATLAB/CSparse/cs_sparse.m (+1/-2)
CSparse/MATLAB/CSparse/cs_sqr.m (+2/-3)
CSparse/MATLAB/CSparse/cs_sqr_mex.c (+1/-1)
CSparse/MATLAB/CSparse/cs_symperm.m (+1/-2)
CSparse/MATLAB/CSparse/cs_symperm_mex.c (+1/-1)
CSparse/MATLAB/CSparse/cs_thumb_mex.c (+4/-4)
CSparse/MATLAB/CSparse/cs_transpose.m (+1/-2)
CSparse/MATLAB/CSparse/cs_updown.m (+1/-2)
CSparse/MATLAB/CSparse/cs_updown_mex.c (+1/-1)
CSparse/MATLAB/CSparse/cs_usolve.m (+1/-2)
CSparse/MATLAB/CSparse/cs_usolve_mex.c (+2/-2)
CSparse/MATLAB/CSparse/cs_utsolve.m (+1/-2)
CSparse/MATLAB/CSparse/cspy.m (+1/-2)
CSparse/MATLAB/CSparse/private/drawbox.m (+1/-2)
CSparse/MATLAB/CSparse/private/drawboxes.m (+1/-2)
CSparse/MATLAB/Demo/README.txt (+2/-0)
CSparse/MATLAB/Demo/cs_demo.m (+1/-3)
CSparse/MATLAB/Demo/cs_demo1.m (+2/-3)
CSparse/MATLAB/Demo/cs_demo2.m (+2/-3)
CSparse/MATLAB/Demo/cs_demo3.m (+2/-3)
CSparse/MATLAB/Demo/private/demo2.m (+1/-2)
CSparse/MATLAB/Demo/private/demo3.m (+1/-3)
CSparse/MATLAB/Demo/private/ex2.m (+1/-2)
CSparse/MATLAB/Demo/private/ex3.m (+1/-2)
CSparse/MATLAB/Demo/private/ex_1.m (+1/-2)
CSparse/MATLAB/Demo/private/frand.m (+2/-2)
CSparse/MATLAB/Demo/private/get_problem.m (+1/-4)
CSparse/MATLAB/Demo/private/is_sym.m (+1/-2)
CSparse/MATLAB/Demo/private/mesh2d1.m (+1/-2)
CSparse/MATLAB/Demo/private/mesh2d2.m (+1/-2)
CSparse/MATLAB/Demo/private/mesh3d1.m (+1/-2)
CSparse/MATLAB/Demo/private/mesh3d2.m (+1/-2)
CSparse/MATLAB/Demo/private/print_order.m (+1/-2)
CSparse/MATLAB/Demo/private/print_resid.m (+1/-2)
CSparse/MATLAB/Demo/private/rhs.m (+1/-2)
CSparse/MATLAB/Makefile (+0/-14)
CSparse/MATLAB/README.txt (+2/-0)
CSparse/MATLAB/Test/Makefile (+0/-51)
CSparse/MATLAB/Test/README.txt (+2/-0)
CSparse/MATLAB/Test/another_colormap.m (+1/-3)
CSparse/MATLAB/Test/check_if_same.m (+1/-2)
CSparse/MATLAB/Test/chol_downdate.m (+1/-2)
CSparse/MATLAB/Test/chol_example.m (+1/-3)
CSparse/MATLAB/Test/chol_left.m (+1/-2)
CSparse/MATLAB/Test/chol_left2.m (+1/-2)
CSparse/MATLAB/Test/chol_right.m (+1/-2)
CSparse/MATLAB/Test/chol_super.m (+1/-2)
CSparse/MATLAB/Test/chol_up.m (+1/-2)
CSparse/MATLAB/Test/chol_update.m (+1/-2)
CSparse/MATLAB/Test/chol_updown.m (+1/-2)
CSparse/MATLAB/Test/choldn.m (+1/-2)
CSparse/MATLAB/Test/cholup.m (+1/-2)
CSparse/MATLAB/Test/cholupdown.m (+1/-3)
CSparse/MATLAB/Test/cond1est.m (+1/-2)
CSparse/MATLAB/Test/cs_fiedler.m (+1/-2)
CSparse/MATLAB/Test/cs_frand.m (+1/-2)
CSparse/MATLAB/Test/cs_frand_mex.c (+4/-4)
CSparse/MATLAB/Test/cs_ipvec.m (+1/-2)
CSparse/MATLAB/Test/cs_ipvec_mex.c (+2/-2)
CSparse/MATLAB/Test/cs_maxtransr.m (+1/-2)
CSparse/MATLAB/Test/cs_maxtransr_mex.c (+10/-10)
CSparse/MATLAB/Test/cs_pvec.m (+1/-2)
CSparse/MATLAB/Test/cs_pvec_mex.c (+2/-2)
CSparse/MATLAB/Test/cs_q1.m (+1/-2)
CSparse/MATLAB/Test/cs_reach.m (+1/-2)
CSparse/MATLAB/Test/cs_reach_mex.c (+3/-3)
CSparse/MATLAB/Test/cs_reachr.m (+1/-2)
CSparse/MATLAB/Test/cs_reachr_mex.c (+7/-7)
CSparse/MATLAB/Test/cs_rowcnt.m (+1/-3)
CSparse/MATLAB/Test/cs_rowcnt_mex.c (+7/-7)
CSparse/MATLAB/Test/cs_sparse2.m (+1/-3)
CSparse/MATLAB/Test/cs_sparse2_mex.c (+1/-1)
CSparse/MATLAB/Test/cs_test_make.m (+31/-5)
CSparse/MATLAB/Test/cspy_test.m (+1/-2)
CSparse/MATLAB/Test/dmperm_test.m (+1/-2)
CSparse/MATLAB/Test/dmspy_test.m (+1/-3)
CSparse/MATLAB/Test/etree_sample.m (+1/-2)
CSparse/MATLAB/Test/givens2.m (+1/-2)
CSparse/MATLAB/Test/gqr3.m (+1/-3)
CSparse/MATLAB/Test/happly.m (+1/-3)
CSparse/MATLAB/Test/hmake1.m (+1/-2)
CSparse/MATLAB/Test/house.m (+1/-2)
CSparse/MATLAB/Test/lu_left.m (+1/-2)
CSparse/MATLAB/Test/lu_right.m (+1/-2)
CSparse/MATLAB/Test/lu_rightp.m (+1/-2)
CSparse/MATLAB/Test/lu_rightpr.m (+1/-2)
CSparse/MATLAB/Test/lu_rightr.m (+1/-2)
CSparse/MATLAB/Test/mynormest1.m (+1/-3)
CSparse/MATLAB/Test/myqr.m (+1/-3)
CSparse/MATLAB/Test/norm1est.m (+1/-2)
CSparse/MATLAB/Test/qr2.m (+1/-2)
CSparse/MATLAB/Test/qr_givens.m (+1/-2)
CSparse/MATLAB/Test/qr_givens_full.m (+1/-2)
CSparse/MATLAB/Test/qr_left.m (+1/-2)
CSparse/MATLAB/Test/qr_right.m (+1/-2)
CSparse/MATLAB/Test/sample_colormap.m (+1/-3)
CSparse/MATLAB/Test/signum.m (+1/-2)
CSparse/MATLAB/Test/sqr_example.m (+1/-2)
CSparse/MATLAB/Test/test1.m (+8/-3)
CSparse/MATLAB/Test/test10.m (+1/-4)
CSparse/MATLAB/Test/test11.m (+1/-2)
CSparse/MATLAB/Test/test12.m (+1/-2)
CSparse/MATLAB/Test/test13.m (+1/-3)
CSparse/MATLAB/Test/test14.m (+1/-3)
CSparse/MATLAB/Test/test15.m (+1/-3)
CSparse/MATLAB/Test/test16.m (+1/-2)
CSparse/MATLAB/Test/test17.m (+1/-3)
CSparse/MATLAB/Test/test18.m (+1/-3)
CSparse/MATLAB/Test/test19.m (+1/-3)
CSparse/MATLAB/Test/test2.m (+1/-2)
CSparse/MATLAB/Test/test20.m (+1/-3)
CSparse/MATLAB/Test/test21.m (+1/-3)
CSparse/MATLAB/Test/test22.m (+1/-3)
CSparse/MATLAB/Test/test23.m (+1/-2)
CSparse/MATLAB/Test/test24.m (+1/-3)
CSparse/MATLAB/Test/test25.m (+1/-3)
CSparse/MATLAB/Test/test26.m (+1/-3)
CSparse/MATLAB/Test/test27.m (+1/-4)
CSparse/MATLAB/Test/test28.m (+1/-2)
CSparse/MATLAB/Test/test3.m (+1/-2)
CSparse/MATLAB/Test/test4.m (+1/-3)
CSparse/MATLAB/Test/test5.m (+1/-3)
CSparse/MATLAB/Test/test6.m (+4/-3)
CSparse/MATLAB/Test/test7.m (+1/-2)
CSparse/MATLAB/Test/test8.m (+2/-2)
CSparse/MATLAB/Test/test9.m (+1/-2)
CSparse/MATLAB/Test/test_qr.m (+1/-2)
CSparse/MATLAB/Test/test_qr1.m (+1/-3)
CSparse/MATLAB/Test/test_qrsol.m (+1/-2)
CSparse/MATLAB/Test/test_randperms.m (+1/-2)
CSparse/MATLAB/Test/test_sep.m (+1/-3)
CSparse/MATLAB/Test/testall.m (+2/-2)
CSparse/MATLAB/Test/testh.m (+1/-3)
CSparse/MATLAB/UFget/Contents.m (+3/-1)
CSparse/MATLAB/UFget/Makefile (+7/-0)
CSparse/MATLAB/UFget/README.txt (+116/-65)
CSparse/MATLAB/UFget/UFget.m (+32/-6)
CSparse/MATLAB/UFget/UFget_defaults.m (+56/-28)
CSparse/MATLAB/UFget/UFget_example.m (+1/-1)
CSparse/MATLAB/UFget/UFget_lookup.m (+1/-1)
CSparse/MATLAB/UFget/UFgrep.m (+1/-1)
CSparse/MATLAB/UFget/UFgui.java (+2589/-0)
CSparse/MATLAB/UFget/UFhelp.html (+545/-0)
CSparse/MATLAB/UFget/UFkinds.m (+71/-0)
CSparse/MATLAB/UFget/UFsettings.txt (+6/-0)
CSparse/MATLAB/UFget/UFsvd.m (+54/-0)
CSparse/MATLAB/UFget/UFweb.m (+3/-14)
CSparse/MATLAB/UFget/matrices/UFstats.csv (+2652/-0)
CSparse/MATLAB/cs_install.m (+6/-18)
CSparse/Makefile (+15/-5)
CSparse/README.txt (+3/-2)
CSparse/Source/README.txt (+2/-0)
CSparse/Source/cs_add.c (+2/-2)
CSparse/Source/cs_amd.c (+9/-9)
CSparse/Source/cs_chol.c (+2/-2)
CSparse/Source/cs_cholsol.c (+2/-2)
CSparse/Source/cs_compress.c (+2/-2)
CSparse/Source/cs_counts.c (+6/-6)
CSparse/Source/cs_cumsum.c (+3/-3)
CSparse/Source/cs_dfs.c (+2/-2)
CSparse/Source/cs_dmperm.c (+13/-13)
CSparse/Source/cs_droptol.c (+2/-2)
CSparse/Source/cs_dropzeros.c (+2/-2)
CSparse/Source/cs_dupl.c (+3/-3)
CSparse/Source/cs_entry.c (+1/-1)
CSparse/Source/cs_ereach.c (+2/-2)
CSparse/Source/cs_etree.c (+4/-4)
CSparse/Source/cs_fkeep.c (+2/-2)
CSparse/Source/cs_gaxpy.c (+2/-2)
CSparse/Source/cs_happly.c (+2/-2)
CSparse/Source/cs_house.c (+2/-2)
CSparse/Source/cs_ipvec.c (+2/-2)
CSparse/Source/cs_leaf.c (+3/-3)
CSparse/Source/cs_load.c (+3/-3)
CSparse/Source/cs_lsolve.c (+2/-2)
CSparse/Source/cs_ltsolve.c (+2/-2)
CSparse/Source/cs_lu.c (+3/-3)
CSparse/Source/cs_lusol.c (+2/-2)
CSparse/Source/cs_malloc.c (+3/-3)
CSparse/Source/cs_maxtrans.c (+7/-7)
CSparse/Source/cs_multiply.c (+2/-2)
CSparse/Source/cs_norm.c (+1/-1)
CSparse/Source/cs_permute.c (+2/-2)
CSparse/Source/cs_pinv.c (+3/-3)
CSparse/Source/cs_post.c (+4/-4)
CSparse/Source/cs_print.c (+12/-9)
CSparse/Source/cs_pvec.c (+2/-2)
CSparse/Source/cs_qr.c (+2/-2)
CSparse/Source/cs_qrsol.c (+2/-2)
CSparse/Source/cs_randperm.c (+4/-4)
CSparse/Source/cs_reach.c (+2/-2)
CSparse/Source/cs_scatter.c (+3/-3)
CSparse/Source/cs_scc.c (+2/-2)
CSparse/Source/cs_schol.c (+3/-3)
CSparse/Source/cs_spsolve.c (+3/-3)
CSparse/Source/cs_sqr.c (+7/-8)
CSparse/Source/cs_symperm.c (+3/-3)
CSparse/Source/cs_tdfs.c (+2/-2)
CSparse/Source/cs_transpose.c (+3/-3)
CSparse/Source/cs_updown.c (+2/-2)
CSparse/Source/cs_usolve.c (+2/-2)
CSparse/Source/cs_util.c (+22/-22)
CSparse/Source/cs_utsolve.c (+2/-2)
CSparse/Tcov/Makefile (+4/-4)
CSparse/Tcov/README.txt (+2/-0)
CSparse/Tcov/cstcov_malloc_test.c (+4/-4)
CSparse/Tcov/cstcov_malloc_test.h (+1/-1)
CSparse/Tcov/cstcov_test.c (+2/-2)
CSparse_to_CXSparse (+45/-44)
CXSparse/Demo/Makefile (+27/-27)
CXSparse/Demo/README.txt (+2/-0)
CXSparse/Demo/cs_ci_demo.c (+9/-6)
CXSparse/Demo/cs_cl_demo.c (+25/-22)
CXSparse/Demo/cs_cl_demo.h (+3/-3)
CXSparse/Demo/cs_cl_demo1.c (+1/-1)
CXSparse/Demo/cs_demo.c (+9/-6)
CXSparse/Demo/cs_demo.out (+119/-119)
CXSparse/Demo/cs_di_demo.c (+9/-6)
CXSparse/Demo/cs_dl_demo.c (+25/-22)
CXSparse/Demo/cs_dl_demo.h (+3/-3)
CXSparse/Demo/cs_dl_demo1.c (+1/-1)
CXSparse/Demo/cs_ldemo.c (+1/-1)
CXSparse/Doc/ChangeLog (+37/-0)
CXSparse/Doc/License.txt (+1/-1)
CXSparse/Include/cs.h (+182/-180)
CXSparse/Lib/Makefile (+13/-16)
CXSparse/MATLAB/CSparse/Contents.m (+1/-2)
CXSparse/MATLAB/CSparse/Makefile (+0/-171)
CXSparse/MATLAB/CSparse/README.txt (+2/-0)
CXSparse/MATLAB/CSparse/ccspy.m (+1/-2)
CXSparse/MATLAB/CSparse/cs_add.m (+1/-2)
CXSparse/MATLAB/CSparse/cs_amd.m (+1/-2)
CXSparse/MATLAB/CSparse/cs_chol.m (+1/-2)
CXSparse/MATLAB/CSparse/cs_cholsol.m (+1/-2)
CXSparse/MATLAB/CSparse/cs_counts.m (+1/-2)
CXSparse/MATLAB/CSparse/cs_dmperm.m (+1/-2)
CXSparse/MATLAB/CSparse/cs_dmsol.m (+1/-2)
CXSparse/MATLAB/CSparse/cs_dmspy.m (+1/-2)
CXSparse/MATLAB/CSparse/cs_droptol.m (+1/-2)
CXSparse/MATLAB/CSparse/cs_esep.m (+1/-2)
CXSparse/MATLAB/CSparse/cs_etree.m (+1/-2)
CXSparse/MATLAB/CSparse/cs_gaxpy.m (+1/-2)
CXSparse/MATLAB/CSparse/cs_lsolve.m (+1/-2)
CXSparse/MATLAB/CSparse/cs_ltsolve.m (+1/-2)
CXSparse/MATLAB/CSparse/cs_lu.m (+1/-2)
CXSparse/MATLAB/CSparse/cs_lusol.m (+1/-2)
CXSparse/MATLAB/CSparse/cs_make.m (+3/-3)
CXSparse/MATLAB/CSparse/cs_multiply.m (+1/-2)
CXSparse/MATLAB/CSparse/cs_must_compile.m (+1/-2)
CXSparse/MATLAB/CSparse/cs_nd.m (+1/-2)
CXSparse/MATLAB/CSparse/cs_nsep.m (+1/-2)
CXSparse/MATLAB/CSparse/cs_permute.m (+1/-2)
CXSparse/MATLAB/CSparse/cs_print.m (+1/-2)
CXSparse/MATLAB/CSparse/cs_qleft.m (+1/-2)
CXSparse/MATLAB/CSparse/cs_qr.m (+1/-2)
CXSparse/MATLAB/CSparse/cs_qright.m (+1/-2)
CXSparse/MATLAB/CSparse/cs_qrsol.m (+1/-2)
CXSparse/MATLAB/CSparse/cs_randperm.m (+1/-2)
CXSparse/MATLAB/CSparse/cs_scc.m (+1/-2)
CXSparse/MATLAB/CSparse/cs_scc2.m (+1/-2)
CXSparse/MATLAB/CSparse/cs_sep.m (+1/-2)
CXSparse/MATLAB/CSparse/cs_sparse.m (+1/-2)
CXSparse/MATLAB/CSparse/cs_sqr.m (+2/-3)
CXSparse/MATLAB/CSparse/cs_symperm.m (+1/-2)
CXSparse/MATLAB/CSparse/cs_transpose.m (+1/-2)
CXSparse/MATLAB/CSparse/cs_updown.m (+1/-2)
CXSparse/MATLAB/CSparse/cs_usolve.m (+1/-2)
CXSparse/MATLAB/CSparse/cs_utsolve.m (+1/-2)
CXSparse/MATLAB/CSparse/cspy.m (+1/-2)
CXSparse/MATLAB/CSparse/private/cs_make_helper.m (+33/-9)
CXSparse/MATLAB/CSparse/private/drawbox.m (+1/-2)
CXSparse/MATLAB/CSparse/private/drawboxes.m (+1/-2)
CXSparse/MATLAB/Demo/README.txt (+2/-0)
CXSparse/MATLAB/Demo/cs_demo.m (+1/-3)
CXSparse/MATLAB/Demo/cs_demo1.m (+2/-3)
CXSparse/MATLAB/Demo/cs_demo2.m (+2/-3)
CXSparse/MATLAB/Demo/cs_demo3.m (+2/-3)
CXSparse/MATLAB/Demo/private/demo2.m (+1/-2)
CXSparse/MATLAB/Demo/private/demo3.m (+1/-3)
CXSparse/MATLAB/Demo/private/ex2.m (+1/-2)
CXSparse/MATLAB/Demo/private/ex3.m (+1/-2)
CXSparse/MATLAB/Demo/private/ex_1.m (+1/-2)
CXSparse/MATLAB/Demo/private/frand.m (+2/-2)
CXSparse/MATLAB/Demo/private/get_problem.m (+1/-4)
CXSparse/MATLAB/Demo/private/is_sym.m (+1/-2)
CXSparse/MATLAB/Demo/private/mesh2d1.m (+1/-2)
CXSparse/MATLAB/Demo/private/mesh2d2.m (+1/-2)
CXSparse/MATLAB/Demo/private/mesh3d1.m (+1/-2)
CXSparse/MATLAB/Demo/private/mesh3d2.m (+1/-2)
CXSparse/MATLAB/Demo/private/print_order.m (+1/-2)
CXSparse/MATLAB/Demo/private/print_resid.m (+1/-2)
CXSparse/MATLAB/Demo/private/rhs.m (+1/-2)
CXSparse/MATLAB/Makefile (+0/-14)
CXSparse/MATLAB/README.txt (+2/-0)
CXSparse/MATLAB/Test/Makefile (+0/-53)
CXSparse/MATLAB/Test/README.txt (+2/-0)
CXSparse/MATLAB/Test/another_colormap.m (+1/-3)
CXSparse/MATLAB/Test/check_if_same.m (+1/-2)
CXSparse/MATLAB/Test/chol_downdate.m (+1/-2)
CXSparse/MATLAB/Test/chol_example.m (+1/-3)
CXSparse/MATLAB/Test/chol_left.m (+1/-2)
CXSparse/MATLAB/Test/chol_left2.m (+1/-2)
CXSparse/MATLAB/Test/chol_right.m (+1/-2)
CXSparse/MATLAB/Test/chol_super.m (+1/-2)
CXSparse/MATLAB/Test/chol_up.m (+1/-2)
CXSparse/MATLAB/Test/chol_update.m (+1/-2)
CXSparse/MATLAB/Test/chol_updown.m (+1/-2)
CXSparse/MATLAB/Test/chol_updown2.m (+1/-2)
CXSparse/MATLAB/Test/choldn.m (+1/-2)
CXSparse/MATLAB/Test/cholup.m (+1/-2)
CXSparse/MATLAB/Test/cholupdown.m (+1/-3)
CXSparse/MATLAB/Test/cond1est.m (+1/-2)
CXSparse/MATLAB/Test/cs_fiedler.m (+1/-2)
CXSparse/MATLAB/Test/cs_frand.m (+1/-2)
CXSparse/MATLAB/Test/cs_ipvec.m (+1/-2)
CXSparse/MATLAB/Test/cs_maxtransr.m (+1/-2)
CXSparse/MATLAB/Test/cs_pvec.m (+1/-2)
CXSparse/MATLAB/Test/cs_q1.m (+1/-2)
CXSparse/MATLAB/Test/cs_reach.m (+1/-2)
CXSparse/MATLAB/Test/cs_reachr.m (+1/-2)
CXSparse/MATLAB/Test/cs_rowcnt.m (+1/-3)
CXSparse/MATLAB/Test/cs_sparse2.m (+1/-3)
CXSparse/MATLAB/Test/cs_test_make.m (+4/-6)
CXSparse/MATLAB/Test/cspy_test.m (+1/-2)
CXSparse/MATLAB/Test/dmperm_test.m (+1/-2)
CXSparse/MATLAB/Test/dmspy_test.m (+1/-3)
CXSparse/MATLAB/Test/etree_sample.m (+1/-2)
CXSparse/MATLAB/Test/givens2.m (+1/-2)
CXSparse/MATLAB/Test/gqr3.m (+1/-3)
CXSparse/MATLAB/Test/happly.m (+1/-3)
CXSparse/MATLAB/Test/hmake1.m (+1/-2)
CXSparse/MATLAB/Test/house.m (+1/-2)
CXSparse/MATLAB/Test/lu_left.m (+1/-2)
CXSparse/MATLAB/Test/lu_right.m (+1/-2)
CXSparse/MATLAB/Test/lu_rightp.m (+1/-2)
CXSparse/MATLAB/Test/lu_rightpr.m (+1/-2)
CXSparse/MATLAB/Test/lu_rightr.m (+1/-2)
CXSparse/MATLAB/Test/mynormest1.m (+1/-3)
CXSparse/MATLAB/Test/myqr.m (+1/-3)
CXSparse/MATLAB/Test/norm1est.m (+1/-2)
CXSparse/MATLAB/Test/qr2.m (+1/-2)
CXSparse/MATLAB/Test/qr_givens.m (+1/-2)
CXSparse/MATLAB/Test/qr_givens_full.m (+1/-2)
CXSparse/MATLAB/Test/qr_left.m (+1/-2)
CXSparse/MATLAB/Test/qr_right.m (+1/-2)
CXSparse/MATLAB/Test/sample_colormap.m (+1/-3)
CXSparse/MATLAB/Test/signum.m (+1/-2)
CXSparse/MATLAB/Test/sqr_example.m (+1/-2)
CXSparse/MATLAB/Test/test1.m (+8/-3)
CXSparse/MATLAB/Test/test10.m (+1/-4)
CXSparse/MATLAB/Test/test11.m (+1/-2)
CXSparse/MATLAB/Test/test12.m (+1/-2)
CXSparse/MATLAB/Test/test13.m (+1/-3)
CXSparse/MATLAB/Test/test14.m (+1/-3)
CXSparse/MATLAB/Test/test15.m (+1/-3)
CXSparse/MATLAB/Test/test16.m (+1/-2)
CXSparse/MATLAB/Test/test17.m (+1/-3)
CXSparse/MATLAB/Test/test18.m (+1/-3)
CXSparse/MATLAB/Test/test19.m (+1/-3)
CXSparse/MATLAB/Test/test2.m (+1/-2)
CXSparse/MATLAB/Test/test20.m (+1/-3)
CXSparse/MATLAB/Test/test21.m (+1/-3)
CXSparse/MATLAB/Test/test22.m (+1/-3)
CXSparse/MATLAB/Test/test23.m (+1/-2)
CXSparse/MATLAB/Test/test24.m (+1/-3)
CXSparse/MATLAB/Test/test25.m (+1/-3)
CXSparse/MATLAB/Test/test26.m (+1/-3)
CXSparse/MATLAB/Test/test27.m (+1/-4)
CXSparse/MATLAB/Test/test28.m (+1/-2)
CXSparse/MATLAB/Test/test3.m (+1/-2)
CXSparse/MATLAB/Test/test4.m (+1/-3)
CXSparse/MATLAB/Test/test5.m (+1/-3)
CXSparse/MATLAB/Test/test6.m (+6/-2)
CXSparse/MATLAB/Test/test7.m (+1/-2)
CXSparse/MATLAB/Test/test8.m (+1/-2)
CXSparse/MATLAB/Test/test9.m (+1/-2)
CXSparse/MATLAB/Test/test_qr.m (+1/-2)
CXSparse/MATLAB/Test/test_qr1.m (+1/-3)
CXSparse/MATLAB/Test/test_qrsol.m (+1/-2)
CXSparse/MATLAB/Test/test_randperms.m (+1/-2)
CXSparse/MATLAB/Test/test_sep.m (+1/-3)
CXSparse/MATLAB/Test/testall.m (+2/-2)
CXSparse/MATLAB/Test/testh.m (+1/-3)
CXSparse/MATLAB/UFget/Contents.m (+3/-1)
CXSparse/MATLAB/UFget/Makefile (+7/-0)
CXSparse/MATLAB/UFget/README.txt (+116/-65)
CXSparse/MATLAB/UFget/UFget.m (+32/-6)
CXSparse/MATLAB/UFget/UFget_defaults.m (+56/-28)
CXSparse/MATLAB/UFget/UFget_example.m (+1/-1)
CXSparse/MATLAB/UFget/UFget_lookup.m (+1/-1)
CXSparse/MATLAB/UFget/UFgrep.m (+1/-1)
CXSparse/MATLAB/UFget/UFgui.java (+2589/-0)
CXSparse/MATLAB/UFget/UFhelp.html (+545/-0)
CXSparse/MATLAB/UFget/UFkinds.m (+71/-0)
CXSparse/MATLAB/UFget/UFsettings.txt (+6/-0)
CXSparse/MATLAB/UFget/UFsvd.m (+54/-0)
CXSparse/MATLAB/UFget/UFweb.m (+3/-14)
CXSparse/MATLAB/UFget/matrices/UFstats.csv (+2652/-0)
CXSparse/MATLAB/cs_install.m (+6/-14)
CXSparse/Makefile (+27/-6)
CXSparse/README.txt (+38/-24)
CXSparse/Source/README.txt (+2/-0)
CXSparse/Source/cs_amd.c (+2/-2)
CXSparse/Source/cs_convert.c (+6/-6)
CXSparse/Source/cs_load.c (+5/-5)
CXSparse/Source/cs_print.c (+16/-11)
CXSparse/Source/cs_randperm.c (+1/-1)
CXSparse/Source/cs_sqr.c (+0/-1)
CXSparse/Source/cs_util.c (+5/-5)
CXSparse/Tcov/Makefile (+36/-32)
CXSparse/Tcov/README.txt (+2/-0)
CXSparse/Tcov/cstcov_test.c (+2/-2)
CXSparse_newfiles/Demo/Makefile (+27/-27)
CXSparse_newfiles/Demo/README.txt (+2/-0)
CXSparse_newfiles/Demo/cs_ldemo.c (+1/-1)
CXSparse_newfiles/Doc/License.txt (+1/-1)
CXSparse_newfiles/Include/cs.h (+182/-180)
CXSparse_newfiles/Lib/Makefile (+13/-16)
CXSparse_newfiles/MATLAB/CSparse/Contents.m (+1/-2)
CXSparse_newfiles/MATLAB/CSparse/Makefile (+0/-171)
CXSparse_newfiles/MATLAB/CSparse/README.txt (+2/-0)
CXSparse_newfiles/MATLAB/CSparse/cs_esep.m (+1/-2)
CXSparse_newfiles/MATLAB/CSparse/cs_make.m (+3/-3)
CXSparse_newfiles/MATLAB/CSparse/cs_transpose.m (+1/-2)
CXSparse_newfiles/MATLAB/CSparse/private/cs_make_helper.m (+33/-9)
CXSparse_newfiles/MATLAB/Demo/README.txt (+2/-0)
CXSparse_newfiles/MATLAB/Demo/cs_demo.m (+1/-3)
CXSparse_newfiles/MATLAB/README.txt (+2/-0)
CXSparse_newfiles/MATLAB/Test/Makefile (+0/-53)
CXSparse_newfiles/MATLAB/Test/README.txt (+2/-0)
CXSparse_newfiles/MATLAB/Test/chol_updown2.m (+1/-2)
CXSparse_newfiles/MATLAB/Test/cholupdown.m (+1/-3)
CXSparse_newfiles/MATLAB/Test/cs_fiedler.m (+1/-2)
CXSparse_newfiles/MATLAB/Test/cs_test_make.m (+4/-6)
CXSparse_newfiles/MATLAB/Test/house.m (+1/-2)
CXSparse_newfiles/MATLAB/Test/norm1est.m (+1/-2)
CXSparse_newfiles/MATLAB/Test/test1.m (+8/-3)
CXSparse_newfiles/MATLAB/Test/test10.m (+1/-4)
CXSparse_newfiles/MATLAB/Test/test11.m (+1/-2)
CXSparse_newfiles/MATLAB/Test/test12.m (+1/-2)
CXSparse_newfiles/MATLAB/Test/test13.m (+1/-3)
CXSparse_newfiles/MATLAB/Test/test14.m (+1/-3)
CXSparse_newfiles/MATLAB/Test/test15.m (+1/-3)
CXSparse_newfiles/MATLAB/Test/test16.m (+1/-2)
CXSparse_newfiles/MATLAB/Test/test17.m (+1/-3)
CXSparse_newfiles/MATLAB/Test/test18.m (+1/-3)
CXSparse_newfiles/MATLAB/Test/test19.m (+1/-3)
CXSparse_newfiles/MATLAB/Test/test2.m (+1/-2)
CXSparse_newfiles/MATLAB/Test/test20.m (+1/-3)
CXSparse_newfiles/MATLAB/Test/test21.m (+1/-3)
CXSparse_newfiles/MATLAB/Test/test22.m (+1/-3)
CXSparse_newfiles/MATLAB/Test/test23.m (+1/-2)
CXSparse_newfiles/MATLAB/Test/test24.m (+1/-3)
CXSparse_newfiles/MATLAB/Test/test25.m (+1/-3)
CXSparse_newfiles/MATLAB/Test/test26.m (+1/-3)
CXSparse_newfiles/MATLAB/Test/test27.m (+1/-4)
CXSparse_newfiles/MATLAB/Test/test28.m (+1/-2)
CXSparse_newfiles/MATLAB/Test/test3.m (+1/-2)
CXSparse_newfiles/MATLAB/Test/test4.m (+1/-3)
CXSparse_newfiles/MATLAB/Test/test5.m (+1/-3)
CXSparse_newfiles/MATLAB/Test/test6.m (+6/-2)
CXSparse_newfiles/MATLAB/Test/test7.m (+1/-2)
CXSparse_newfiles/MATLAB/Test/test8.m (+1/-2)
CXSparse_newfiles/MATLAB/Test/test9.m (+1/-2)
CXSparse_newfiles/MATLAB/Test/testall.m (+2/-2)
CXSparse_newfiles/MATLAB/Test/testh.m (+1/-3)
CXSparse_newfiles/MATLAB/cs_install.m (+6/-14)
CXSparse_newfiles/Makefile (+51/-0)
CXSparse_newfiles/README.txt (+38/-24)
CXSparse_newfiles/Source/README.txt (+2/-0)
CXSparse_newfiles/Source/cs_convert.c (+6/-6)
CXSparse_newfiles/Source/cs_load.c (+26/-0)
CXSparse_newfiles/Source/cs_print.c (+51/-0)
CXSparse_newfiles/Tcov/Makefile (+36/-32)
CXSparse_newfiles/Tcov/README.txt (+2/-0)
Contents.m (+16/-9)
KLU/Demo/Makefile (+18/-13)
KLU/Demo/kludemo.out (+12/-12)
KLU/Demo/kluldemo.c (+12/-12)
KLU/Doc/ChangeLog (+26/-0)
KLU/Doc/KLU_UserGuide.bib (+22/-2)
KLU/Doc/KLU_UserGuide.tex (+53/-52)
KLU/Doc/Makefile (+2/-2)
KLU/Include/klu.h (+81/-70)
KLU/Include/klu_internal.h (+1/-1)
KLU/Include/klu_version.h (+3/-3)
KLU/Lib/Makefile (+6/-6)
KLU/MATLAB/Contents.m (+1/-1)
KLU/MATLAB/Makefile (+0/-699)
KLU/MATLAB/Makefile_no_CHOLMOD (+0/-263)
KLU/MATLAB/Test/klu_test.m (+2/-3)
KLU/MATLAB/Test/test1.m (+18/-21)
KLU/MATLAB/Test/test2.m (+10/-21)
KLU/MATLAB/Test/test3.m (+12/-12)
KLU/MATLAB/Test/test4.m (+9/-17)
KLU/MATLAB/Test/test5.m (+21/-27)
KLU/MATLAB/klu.m (+2/-2)
KLU/MATLAB/klu_demo.m (+1/-1)
KLU/MATLAB/klu_install.m (+5/-6)
KLU/MATLAB/klu_make.m (+129/-127)
KLU/MATLAB/klu_mex.c (+29/-28)
KLU/Makefile (+35/-8)
KLU/README.txt (+10/-10)
KLU/Source/klu.c (+1/-1)
KLU/Source/klu_memory.c (+2/-2)
KLU/Tcov/Makefile (+15/-12)
KLU/Tcov/README.txt (+2/-0)
KLU/Tcov/klutest.c (+12/-12)
KLU/User/Makefile (+9/-6)
KLU/User/README.txt (+2/-0)
KLU/User/klu_cholmod.h (+2/-3)
KLU/User/klu_l_cholmod.c (+8/-8)
LDL/Demo/Makefile (+6/-5)
LDL/Demo/ldlamd.out (+202/-172)
LDL/Demo/ldllamd.out (+202/-172)
LDL/Demo/ldllmain.out (+364/-0)
LDL/Demo/ldllsimple.c (+5/-4)
LDL/Demo/ldllsimple.out (+11/-0)
LDL/Demo/ldlmain.c (+49/-34)
LDL/Demo/ldlmain.out (+266/-236)
LDL/Demo/ldlsimple.c (+2/-2)
LDL/Doc/ChangeLog (+17/-0)
LDL/Doc/Makefile (+1/-1)
LDL/Doc/ldl_userguide.tex (+5/-7)
LDL/Include/ldl.h (+38/-30)
LDL/Lib/Makefile (+6/-6)
LDL/MATLAB/Contents.m (+1/-5)
LDL/MATLAB/Makefile (+0/-27)
LDL/MATLAB/ldl_install.m (+1/-1)
LDL/MATLAB/ldl_make.m (+3/-3)
LDL/MATLAB/ldldemo.m (+1/-2)
LDL/MATLAB/ldlmain2.m (+3/-2)
LDL/MATLAB/ldlmex.c (+19/-18)
LDL/MATLAB/ldlrow.m (+1/-1)
LDL/MATLAB/ldlsparse.m (+1/-1)
LDL/MATLAB/ldlsymbol.m (+1/-1)
LDL/MATLAB/ldlsymbolmex.c (+15/-14)
LDL/MATLAB/ldltest.m (+1/-2)
LDL/Makefile (+24/-16)
LDL/Matrix/A25 (+4/-2)
LDL/README.txt (+7/-5)
LDL/Source/ldl.c (+4/-5)
LINFACTOR/Contents.m (+0/-22)
LINFACTOR/README.txt (+0/-60)
LINFACTOR/linfactor.m (+0/-187)
LINFACTOR/lintest.m (+0/-153)
LINFACTOR/lintests.m (+0/-69)
MATLAB_Tools/Contents.m (+6/-1)
MATLAB_Tools/Factorize/@factorize/Contents.m (+0/-24)
MATLAB_Tools/Factorize/@factorize/disp.m (+0/-87)
MATLAB_Tools/Factorize/@factorize/double.m (+0/-18)
MATLAB_Tools/Factorize/@factorize/end.m (+0/-18)
MATLAB_Tools/Factorize/@factorize/factorize.m (+0/-157)
MATLAB_Tools/Factorize/@factorize/inverse.m (+0/-14)
MATLAB_Tools/Factorize/@factorize/minus.m (+0/-21)
MATLAB_Tools/Factorize/@factorize/mldivide.m (+0/-119)
MATLAB_Tools/Factorize/@factorize/mrdivide.m (+0/-123)
MATLAB_Tools/Factorize/@factorize/mtimes.m (+0/-25)
MATLAB_Tools/Factorize/@factorize/plus.m (+0/-20)
MATLAB_Tools/Factorize/@factorize/size.m (+0/-35)
MATLAB_Tools/Factorize/@factorize/subsref.m (+0/-108)
MATLAB_Tools/Factorize/Contents.m (+43/-15)
MATLAB_Tools/Factorize/Demo/factorize_demo.m (+335/-0)
MATLAB_Tools/Factorize/Demo/fdemo.m (+2/-0)
MATLAB_Tools/Factorize/Doc/factorize_demo.html (+633/-0)
MATLAB_Tools/Factorize/Doc/factorize_demo.tex (+590/-0)
MATLAB_Tools/Factorize/Doc/license.txt (+27/-0)
MATLAB_Tools/Factorize/README.txt (+15/-37)
MATLAB_Tools/Factorize/Test/Contents.m (+22/-0)
MATLAB_Tools/Factorize/Test/README.txt (+4/-0)
MATLAB_Tools/Factorize/Test/reset_rand.m (+15/-0)
MATLAB_Tools/Factorize/Test/test_accuracy.m (+105/-42)
MATLAB_Tools/Factorize/Test/test_all.m (+22/-12)
MATLAB_Tools/Factorize/Test/test_all.txt (+1187/-0)
MATLAB_Tools/Factorize/Test/test_all_cod.m (+30/-0)
MATLAB_Tools/Factorize/Test/test_all_svd.m (+77/-0)
MATLAB_Tools/Factorize/Test/test_cod.m (+121/-0)
MATLAB_Tools/Factorize/Test/test_disp.m (+160/-199)
MATLAB_Tools/Factorize/Test/test_errors.m (+290/-89)
MATLAB_Tools/Factorize/Test/test_factorize.m (+328/-180)
MATLAB_Tools/Factorize/Test/test_function.m (+317/-0)
MATLAB_Tools/Factorize/Test/test_functions.m (+63/-0)
MATLAB_Tools/Factorize/Test/test_performance.m (+72/-113)
MATLAB_Tools/Factorize/Test/test_svd.m (+214/-0)
MATLAB_Tools/Factorize/cod.m (+69/-0)
MATLAB_Tools/Factorize/cod_qmult.m (+46/-0)
MATLAB_Tools/Factorize/cod_sparse.m (+177/-0)
MATLAB_Tools/Factorize/factorization.m (+650/-0)
MATLAB_Tools/Factorize/factorization_chol_dense.m (+77/-0)
MATLAB_Tools/Factorize/factorization_chol_sparse.m (+40/-0)
MATLAB_Tools/Factorize/factorization_cod_dense.m (+50/-0)
MATLAB_Tools/Factorize/factorization_cod_sparse.m (+62/-0)
MATLAB_Tools/Factorize/factorization_ldl_dense.m (+62/-0)
MATLAB_Tools/Factorize/factorization_ldl_sparse.m (+43/-0)
MATLAB_Tools/Factorize/factorization_lu_dense.m (+59/-0)
MATLAB_Tools/Factorize/factorization_lu_sparse.m (+54/-0)
MATLAB_Tools/Factorize/factorization_qr_dense.m (+56/-0)
MATLAB_Tools/Factorize/factorization_qr_sparse.m (+54/-0)
MATLAB_Tools/Factorize/factorization_qrt_dense.m (+56/-0)
MATLAB_Tools/Factorize/factorization_qrt_sparse.m (+54/-0)
MATLAB_Tools/Factorize/factorization_svd.m (+211/-0)
MATLAB_Tools/Factorize/factorize.m (+369/-0)
MATLAB_Tools/Factorize/factorize1.m (+0/-201)
MATLAB_Tools/Factorize/factorize_demo.m (+0/-331)
MATLAB_Tools/Factorize/fdemo.m (+0/-2)
MATLAB_Tools/Factorize/html/factorize_demo.html (+0/-759)
MATLAB_Tools/Factorize/html/factorize_demo.tex (+0/-514)
MATLAB_Tools/Factorize/inverse.m (+19/-15)
MATLAB_Tools/Factorize/private/cheap_condest.m (+41/-0)
MATLAB_Tools/Factorize/private/get_diag.m (+15/-0)
MATLAB_Tools/Factorize/private/rank_est.m (+8/-0)
MATLAB_Tools/Factorize/rq.m (+175/-0)
MATLAB_Tools/GEE/Contents.m (+1/-6)
MATLAB_Tools/GEE/gee_its_short.m (+1/-2)
MATLAB_Tools/GEE/gee_its_simple.m (+1/-2)
MATLAB_Tools/GEE/gee_its_simple_backsolve.m (+1/-2)
MATLAB_Tools/GEE/gee_its_simple_factorize.m (+1/-2)
MATLAB_Tools/GEE/gee_its_simple_forwardsolve.m (+1/-2)
MATLAB_Tools/GEE/gee_its_simple_resid.m (+1/-2)
MATLAB_Tools/GEE/gee_its_simple_test.m (+1/-2)
MATLAB_Tools/GEE/gee_its_sweet.m (+2/-3)
MATLAB_Tools/GEE/gee_its_too_short.m (+1/-2)
MATLAB_Tools/GEE/private/gee_its_simple_check.m (+1/-2)
MATLAB_Tools/LINFACTOR/Contents.m (+22/-0)
MATLAB_Tools/LINFACTOR/README.txt (+61/-0)
MATLAB_Tools/LINFACTOR/linfactor.m (+186/-0)
MATLAB_Tools/LINFACTOR/lintest.m (+153/-0)
MATLAB_Tools/LINFACTOR/lintests.m (+69/-0)
MATLAB_Tools/MESHND/Contents.m (+25/-0)
MATLAB_Tools/MESHND/README.txt (+25/-0)
MATLAB_Tools/MESHND/meshnd.m (+114/-0)
MATLAB_Tools/MESHND/meshnd_example.m (+106/-0)
MATLAB_Tools/MESHND/meshnd_quality.m (+158/-0)
MATLAB_Tools/MESHND/meshnd_quality_out.txt (+890/-0)
MATLAB_Tools/MESHND/meshsparse.m (+144/-0)
MATLAB_Tools/SFMULT/Contents.m (+16/-0)
MATLAB_Tools/SFMULT/Makefile (+55/-0)
MATLAB_Tools/SFMULT/sfmult.c (+198/-0)
MATLAB_Tools/SFMULT/sfmult.h (+551/-0)
MATLAB_Tools/SFMULT/sfmult.m (+28/-0)
MATLAB_Tools/SFMULT/sfmult_anxnyn.c (+169/-0)
MATLAB_Tools/SFMULT/sfmult_anxnyt.c (+161/-0)
MATLAB_Tools/SFMULT/sfmult_anxnyt_k.c (+206/-0)
MATLAB_Tools/SFMULT/sfmult_anxtyn.c (+168/-0)
MATLAB_Tools/SFMULT/sfmult_anxtyt.c (+183/-0)
MATLAB_Tools/SFMULT/sfmult_anxtyt_k.c (+213/-0)
MATLAB_Tools/SFMULT/sfmult_atxnyn.c (+144/-0)
MATLAB_Tools/SFMULT/sfmult_atxnyt.c (+144/-0)
MATLAB_Tools/SFMULT/sfmult_atxtyn.c (+161/-0)
MATLAB_Tools/SFMULT/sfmult_atxtyn_k.c (+197/-0)
MATLAB_Tools/SFMULT/sfmult_atxtyt.c (+168/-0)
MATLAB_Tools/SFMULT/sfmult_atxtyt_k.c (+200/-0)
MATLAB_Tools/SFMULT/sfmult_atxtyt_k.s (+512/-0)
MATLAB_Tools/SFMULT/sfmult_mex.c (+65/-0)
MATLAB_Tools/SFMULT/sfmult_vector_1.c (+122/-0)
MATLAB_Tools/SFMULT/sfmult_vector_k.c (+124/-0)
MATLAB_Tools/SFMULT/sfmult_xA.c (+70/-0)
MATLAB_Tools/SFMULT/ssmult_transpose.c (+140/-0)
MATLAB_Tools/SSMULT/ChangeLog (+8/-0)
MATLAB_Tools/SSMULT/Contents.m (+18/-0)
MATLAB_Tools/SSMULT/README.txt (+92/-0)
MATLAB_Tools/SSMULT/Results/s2.m (+43/-0)
MATLAB_Tools/SSMULT/gpl.txt (+340/-0)
MATLAB_Tools/SSMULT/sptranspose.c (+42/-0)
MATLAB_Tools/SSMULT/sptranspose.m (+16/-0)
MATLAB_Tools/SSMULT/ssmult.c (+188/-0)
MATLAB_Tools/SSMULT/ssmult.h (+66/-0)
MATLAB_Tools/SSMULT/ssmult.m (+36/-0)
MATLAB_Tools/SSMULT/ssmult_demo.m (+18/-0)
MATLAB_Tools/SSMULT/ssmult_dot.c (+291/-0)
MATLAB_Tools/SSMULT/ssmult_install.m (+74/-0)
MATLAB_Tools/SSMULT/ssmult_mex.c (+44/-0)
MATLAB_Tools/SSMULT/ssmult_saxpy.c (+555/-0)
MATLAB_Tools/SSMULT/ssmult_template.c (+421/-0)
MATLAB_Tools/SSMULT/ssmult_test.m (+124/-0)
MATLAB_Tools/SSMULT/ssmult_transpose.c (+169/-0)
MATLAB_Tools/SSMULT/ssmultsym.c (+150/-0)
MATLAB_Tools/SSMULT/ssmultsym.m (+41/-0)
MATLAB_Tools/SSMULT/sstest.m (+174/-0)
MATLAB_Tools/SSMULT/sstest2.m (+164/-0)
MATLAB_Tools/SSMULT/sstest3.m (+627/-0)
MATLAB_Tools/UFcollection/Contents.m (+39/-0)
MATLAB_Tools/UFcollection/Doc/ChangeLog (+52/-0)
MATLAB_Tools/UFcollection/Doc/License.txt (+22/-0)
MATLAB_Tools/UFcollection/Doc/gpl.txt (+340/-0)
MATLAB_Tools/UFcollection/README.txt (+230/-0)
MATLAB_Tools/UFcollection/UFallpages.m (+20/-0)
MATLAB_Tools/UFcollection/UFcollection_install.m (+29/-0)
MATLAB_Tools/UFcollection/UFexport.m (+101/-0)
MATLAB_Tools/UFcollection/UFfull_read.m (+65/-0)
MATLAB_Tools/UFcollection/UFfull_write.c (+164/-0)
MATLAB_Tools/UFcollection/UFfull_write.m (+29/-0)
MATLAB_Tools/UFcollection/UFgplot.m (+133/-0)
MATLAB_Tools/UFcollection/UFindex.m (+393/-0)
MATLAB_Tools/UFcollection/UFint.m (+40/-0)
MATLAB_Tools/UFcollection/UFlist.m (+360/-0)
MATLAB_Tools/UFcollection/UFlists.m (+115/-0)
MATLAB_Tools/UFcollection/UFlocation.m (+14/-0)
MATLAB_Tools/UFcollection/UFpage.m (+703/-0)
MATLAB_Tools/UFcollection/UFpages.m (+30/-0)
MATLAB_Tools/UFcollection/UFread.m (+449/-0)
MATLAB_Tools/UFcollection/UFstats.m (+387/-0)
MATLAB_Tools/UFcollection/UFwrite.m (+439/-0)
MATLAB_Tools/UFcollection/dsxy2figxy.m (+57/-0)
MATLAB_Tools/dimacs10/Contents.m (+8/-0)
MATLAB_Tools/dimacs10/adjnoun.graph (+113/-0)
MATLAB_Tools/dimacs10/bad1.graph (+9/-0)
MATLAB_Tools/dimacs10/bad2.graph (+9/-0)
MATLAB_Tools/dimacs10/bad3.graph (+10/-0)
MATLAB_Tools/dimacs10/bad4.graph (+9/-0)
MATLAB_Tools/dimacs10/bad5.graph (+9/-0)
MATLAB_Tools/dimacs10/bad6.graph (+2/-0)
MATLAB_Tools/dimacs10/bad7.graph (+9/-0)
MATLAB_Tools/dimacs10/bad8.graph (+9/-0)
MATLAB_Tools/dimacs10/bad9.graph (+9/-0)
MATLAB_Tools/dimacs10/dimacs10.m (+654/-0)
MATLAB_Tools/dimacs10/dimacs10_convert_to_graph.c (+76/-0)
MATLAB_Tools/dimacs10/dimacs10_demo.m (+65/-0)
MATLAB_Tools/dimacs10/dimacs10_install.m (+38/-0)
MATLAB_Tools/dimacs10/fig8a.graph (+9/-0)
MATLAB_Tools/dimacs10/fig8b.graph (+10/-0)
MATLAB_Tools/dimacs10/fig8c.graph (+9/-0)
MATLAB_Tools/dimacs10/fig8d.graph (+10/-0)
MATLAB_Tools/dimacs10/ilp_test.graph (+8/-0)
MATLAB_Tools/dimacs10/metis_graph_read.m (+137/-0)
MATLAB_Tools/dimacs10/metis_graph_read_mex.c (+352/-0)
MATLAB_Tools/dimacs10/metis_graph_test.m (+125/-0)
MATLAB_Tools/dimacs10/multi.graph (+9/-0)
MATLAB_Tools/find_components/Contents.m (+1/-1)
MATLAB_Tools/find_components/find_components.m (+1/-1)
MATLAB_Tools/find_components/find_components_example.m (+5/-3)
MATLAB_Tools/find_components/largest_component.m (+1/-1)
MATLAB_Tools/getversion.m (+12/-3)
MATLAB_Tools/gipper.m (+5/-5)
MATLAB_Tools/pagerankdemo.m (+1/-1)
MATLAB_Tools/shellgui/Contents.m (+1/-1)
MATLAB_Tools/shellgui/seashell.m (+2/-2)
MATLAB_Tools/shellgui/shellgui.m (+1/-1)
MATLAB_Tools/sparseinv/Contents.m (+15/-0)
MATLAB_Tools/sparseinv/sparseinv.c (+167/-0)
MATLAB_Tools/sparseinv/sparseinv.h (+38/-0)
MATLAB_Tools/sparseinv/sparseinv.m (+122/-0)
MATLAB_Tools/sparseinv/sparseinv_install.m (+21/-0)
MATLAB_Tools/sparseinv/sparseinv_mex.c (+117/-0)
MATLAB_Tools/sparseinv/sparseinv_test.m (+149/-0)
MATLAB_Tools/spok/Contents.m (+1/-1)
MATLAB_Tools/spok/spok.h (+2/-2)
MATLAB_Tools/spok/spok.m (+1/-1)
MATLAB_Tools/spok/spok_install.m (+11/-9)
MATLAB_Tools/spok/spok_mex.c (+2/-2)
MATLAB_Tools/spok/spok_test.m (+10/-2)
MATLAB_Tools/spqr_rank/Contents.m (+43/-0)
MATLAB_Tools/spqr_rank/README.txt (+55/-0)
MATLAB_Tools/spqr_rank/SJget/Contents.m (+31/-0)
MATLAB_Tools/spqr_rank/SJget/README.txt (+84/-0)
MATLAB_Tools/spqr_rank/SJget/SJget.m (+205/-0)
MATLAB_Tools/spqr_rank/SJget/SJget_defaults.m (+44/-0)
MATLAB_Tools/spqr_rank/SJget/SJget_example.m (+46/-0)
MATLAB_Tools/spqr_rank/SJget/SJget_install.m (+47/-0)
MATLAB_Tools/spqr_rank/SJget/SJget_lookup.m (+85/-0)
MATLAB_Tools/spqr_rank/SJget/SJgrep.m (+54/-0)
MATLAB_Tools/spqr_rank/SJget/SJplot.m (+430/-0)
MATLAB_Tools/spqr_rank/SJget/SJrank.m (+113/-0)
MATLAB_Tools/spqr_rank/SJget/SJweb.m (+136/-0)
MATLAB_Tools/spqr_rank/demo_spqr_rank.m (+1280/-0)
MATLAB_Tools/spqr_rank/private/Contents.m (+16/-0)
MATLAB_Tools/spqr_rank/private/install_SJget.m (+40/-0)
MATLAB_Tools/spqr_rank/private/spqr_failure.m (+17/-0)
MATLAB_Tools/spqr_rank/private/spqr_rank_assign_stats.m (+151/-0)
MATLAB_Tools/spqr_rank/private/spqr_rank_deflation.m (+95/-0)
MATLAB_Tools/spqr_rank/private/spqr_rank_form_basis.m (+235/-0)
MATLAB_Tools/spqr_rank/private/spqr_rank_get_inputs.m (+325/-0)
MATLAB_Tools/spqr_rank/private/spqr_rank_order_fields.m (+55/-0)
MATLAB_Tools/spqr_rank/private/spqr_repeatable.m (+29/-0)
MATLAB_Tools/spqr_rank/private/spqr_wrapper.m (+57/-0)
MATLAB_Tools/spqr_rank/private/test_spqr_coverage.txt (+2814/-0)
MATLAB_Tools/spqr_rank/private/tol_is_default.m (+8/-0)
MATLAB_Tools/spqr_rank/quickdemo_spqr_rank.m (+113/-0)
MATLAB_Tools/spqr_rank/spqr_basic.m (+253/-0)
MATLAB_Tools/spqr_rank/spqr_cod.m (+333/-0)
MATLAB_Tools/spqr_rank/spqr_explicit_basis.m (+34/-0)
MATLAB_Tools/spqr_rank/spqr_null.m (+127/-0)
MATLAB_Tools/spqr_rank/spqr_null_mult.m (+253/-0)
MATLAB_Tools/spqr_rank/spqr_pinv.m (+245/-0)
MATLAB_Tools/spqr_rank/spqr_rank_opts.m (+357/-0)
MATLAB_Tools/spqr_rank/spqr_rank_stats.m (+808/-0)
MATLAB_Tools/spqr_rank/spqr_ssi.m (+583/-0)
MATLAB_Tools/spqr_rank/spqr_ssp.m (+322/-0)
MATLAB_Tools/spqr_rank/test_spqr_coverage.m (+589/-0)
MATLAB_Tools/spqr_rank/test_spqr_rank.m (+118/-0)
MATLAB_Tools/waitmex/README.txt (+1/-3)
MATLAB_Tools/waitmex/waitmex.c (+1/-1)
MESHND/Contents.m (+0/-26)
MESHND/README.txt (+0/-26)
MESHND/meshnd.m (+0/-114)
MESHND/meshnd_example.m (+0/-106)
MESHND/meshnd_quality.m (+0/-159)
MESHND/meshnd_quality_out.txt (+0/-890)
MESHND/meshsparse.m (+0/-144)
Makefile (+121/-81)
RBio/Contents.m (+0/-24)
RBio/Demo/Makefile (+37/-0)
RBio/Demo/RBdemo.c (+252/-0)
RBio/Demo/RBdemo.out (+19/-0)
RBio/Doc/ChangeLog (+28/-0)
RBio/Doc/License.txt (+2/-2)
RBio/Doc/dodiff (+0/-15)
RBio/Include/RBio.h (+314/-0)
RBio/Lib/Makefile (+63/-0)
RBio/Makefile (+64/-0)
RBio/RBcread_32.f (+0/-255)
RBio/RBcread_64.f (+0/-255)
RBio/RBcsplit_32.f (+0/-25)
RBio/RBcsplit_64.f (+0/-25)
RBio/RBfix.m (+0/-135)
RBio/RBinstall.m (+0/-29)
RBio/RBio/Contents.m (+24/-0)
RBio/RBio/RBerror.c (+82/-0)
RBio/RBio/RBfix.m (+135/-0)
RBio/RBio/RBinstall.m (+41/-0)
RBio/RBio/RBmake.m (+53/-0)
RBio/RBio/RBraw.c (+157/-0)
RBio/RBio/RBraw.m (+32/-0)
RBio/RBio/RBread.c (+146/-0)
RBio/RBio/RBread.m (+27/-0)
RBio/RBio/RBreade.m (+136/-0)
RBio/RBio/RBtype.c (+106/-0)
RBio/RBio/RBtype.m (+39/-0)
RBio/RBio/RBwrite.c (+172/-0)
RBio/RBio/RBwrite.m (+36/-0)
RBio/RBio/mywest (+601/-0)
RBio/RBio/private/bcsstk01.rb (+72/-0)
RBio/RBio/private/farm.rb (+10/-0)
RBio/RBio/private/lap_25.pse (+10/-0)
RBio/RBio/private/lap_25.rb (+9/-0)
RBio/RBio/private/testRB1.m (+77/-0)
RBio/RBio/private/testRB2.m (+76/-0)
RBio/RBio/private/testRB3.m (+64/-0)
RBio/RBio/private/west0479.rb (+512/-0)
RBio/RBio/private/west0479.rua (+721/-0)
RBio/RBmake.m (+0/-40)
RBio/RBraw.m (+0/-32)
RBio/RBraw_mex_32.f (+0/-214)
RBio/RBraw_mex_64.f (+0/-214)
RBio/RBread.m (+0/-27)
RBio/RBread_32.f (+0/-464)
RBio/RBread_64.f (+0/-464)
RBio/RBread_mex_32.f (+0/-239)
RBio/RBread_mex_64.f (+0/-239)
RBio/RBreade.m (+0/-136)
RBio/RBrread_32.f (+0/-299)
RBio/RBrread_64.f (+0/-299)
RBio/RBtype.m (+0/-39)
RBio/RBtype_mex_32.f (+0/-128)
RBio/RBtype_mex_64.f (+0/-128)
RBio/RBwrite.m (+0/-36)
RBio/RBwrite_32.f (+0/-713)
RBio/RBwrite_64.f (+0/-713)
RBio/RBwrite_mex_32.f (+0/-324)
RBio/RBwrite_mex_64.f (+0/-324)
RBio/README.txt (+78/-41)
RBio/Source/RBio.c (+2936/-0)
RBio/Tcov/Makefile (+94/-0)
RBio/Tcov/RBtest.c (+285/-0)
RBio/Tcov/README.txt (+5/-0)
RBio/Tcov/mangled/1.rb (+5/-0)
RBio/Tcov/mangled/10.rb (+7/-0)
RBio/Tcov/mangled/11.rb (+5/-0)
RBio/Tcov/mangled/12.rb (+7/-0)
RBio/Tcov/mangled/13.rb (+7/-0)
RBio/Tcov/mangled/14.rb (+7/-0)
RBio/Tcov/mangled/15.rb (+7/-0)
RBio/Tcov/mangled/2.rb (+7/-0)
RBio/Tcov/mangled/3.rb (+7/-0)
RBio/Tcov/mangled/4.rb (+6/-0)
RBio/Tcov/mangled/5.rb (+7/-0)
RBio/Tcov/mangled/6.rb (+7/-0)
RBio/Tcov/mangled/7.rb (+7/-0)
RBio/Tcov/mangled/8.rb (+7/-0)
RBio/Tcov/mangled/9.rb (+7/-0)
RBio/Tcov/matrices/m4.rb (+7/-0)
RBio/Tcov/matrices/m4b.rb (+8/-0)
RBio/Tcov/matrices/s4.rb (+7/-0)
RBio/Test/bcsstk01.rb (+0/-72)
RBio/Test/farm.rb (+0/-10)
RBio/Test/lap_25.pse (+0/-10)
RBio/Test/lap_25.rb (+0/-9)
RBio/Test/testRB1.m (+0/-65)
RBio/Test/testRB2.m (+0/-60)
RBio/Test/west0479.rb (+0/-512)
RBio/Test/west0479.rua (+0/-721)
README.txt (+58/-69)
SPQR/Demo/Makefile (+60/-13)
SPQR/Demo/README.txt (+1/-0)
SPQR/Demo/qrdemo.cpp (+107/-30)
SPQR/Demo/qrdemo.m (+1/-2)
SPQR/Demo/qrdemo_out.txt (+106/-31)
SPQR/Demo/qrdemoc.c (+6/-5)
SPQR/Demo/qrdemoc_out.txt (+16/-16)
SPQR/Doc/ChangeLog (+40/-0)
SPQR/Doc/Makefile (+2/-1)
SPQR/Doc/README.txt (+3/-2)
SPQR/Doc/spqr_user_guide.tex (+19/-21)
SPQR/Include/SuiteSparseQR.hpp (+129/-136)
SPQR/Include/SuiteSparseQR_C.h (+11/-13)
SPQR/Include/SuiteSparseQR_definitions.h (+4/-4)
SPQR/Include/spqr.hpp (+198/-192)
SPQR/Lib/Makefile (+29/-6)
SPQR/MATLAB/Contents.m (+1/-1)
SPQR/MATLAB/Makefile (+0/-275)
SPQR/MATLAB/spqr.cpp (+20/-8)
SPQR/MATLAB/spqr.m (+65/-59)
SPQR/MATLAB/spqr_demo.m (+8/-9)
SPQR/MATLAB/spqr_install.m (+7/-13)
SPQR/MATLAB/spqr_make.m (+106/-136)
SPQR/MATLAB/spqr_mx.cpp (+161/-35)
SPQR/MATLAB/spqr_mx.hpp (+22/-13)
SPQR/MATLAB/spqr_qmult.cpp (+6/-6)
SPQR/MATLAB/spqr_qmult.m (+1/-2)
SPQR/MATLAB/spqr_singletons.cpp (+7/-7)
SPQR/MATLAB/spqr_singletons.m (+4/-5)
SPQR/MATLAB/spqr_solve.cpp (+7/-106)
SPQR/MATLAB/spqr_solve.m (+1/-2)
SPQR/Makefile (+35/-8)
SPQR/Matrix/README.txt (+2/-0)
SPQR/README.txt (+4/-3)
SPQR/Source/SuiteSparseQR.cpp (+99/-103)
SPQR/Source/SuiteSparseQR_C.cpp (+7/-7)
SPQR/Source/SuiteSparseQR_expert.cpp (+65/-76)
SPQR/Source/SuiteSparseQR_qmult.cpp (+29/-29)
SPQR/Source/spqr_1colamd.cpp (+61/-54)
SPQR/Source/spqr_1factor.cpp (+32/-40)
SPQR/Source/spqr_1fixed.cpp (+30/-30)
SPQR/Source/spqr_analyze.cpp (+74/-58)
SPQR/Source/spqr_append.cpp (+11/-11)
SPQR/Source/spqr_assemble.cpp (+54/-54)
SPQR/Source/spqr_cpack.cpp (+16/-16)
SPQR/Source/spqr_csize.cpp (+7/-7)
SPQR/Source/spqr_cumsum.cpp (+5/-5)
SPQR/Source/spqr_debug.cpp (+38/-57)
SPQR/Source/spqr_factorize.cpp (+83/-51)
SPQR/Source/spqr_fcsize.cpp (+7/-7)
SPQR/Source/spqr_freefac.cpp (+8/-8)
SPQR/Source/spqr_freenum.cpp (+8/-8)
SPQR/Source/spqr_freesym.cpp (+21/-21)
SPQR/Source/spqr_front.cpp (+69/-34)
SPQR/Source/spqr_fsize.cpp (+12/-12)
SPQR/Source/spqr_happly.cpp (+41/-41)
SPQR/Source/spqr_happly_work.cpp (+10/-10)
SPQR/Source/spqr_hpinv.cpp (+6/-6)
SPQR/Source/spqr_kernel.cpp (+69/-60)
SPQR/Source/spqr_larftb.cpp (+24/-23)
SPQR/Source/spqr_maxcolnorm.cpp (+4/-4)
SPQR/Source/spqr_panel.cpp (+19/-19)
SPQR/Source/spqr_parallel.cpp (+12/-12)
SPQR/Source/spqr_rconvert.cpp (+29/-29)
SPQR/Source/spqr_rcount.cpp (+23/-23)
SPQR/Source/spqr_rhpack.cpp (+19/-19)
SPQR/Source/spqr_rmap.cpp (+4/-4)
SPQR/Source/spqr_rsolve.cpp (+19/-19)
SPQR/Source/spqr_shift.cpp (+3/-3)
SPQR/Source/spqr_stranspose1.cpp (+9/-9)
SPQR/Source/spqr_stranspose2.cpp (+15/-15)
SPQR/Source/spqr_trapezoidal.cpp (+35/-35)
SPQR/Tcov/Makefile (+46/-18)
SPQR/Tcov/README.txt (+2/-0)
SPQR/Tcov/qrtest.cpp (+174/-168)
SPQR/Tcov/qrtestc.c (+2/-2)
SSMULT/Contents.m (+0/-15)
SSMULT/Makefile (+0/-27)
SSMULT/README.txt (+0/-93)
SSMULT/Results/s2.m (+0/-43)
SSMULT/gpl.txt (+0/-340)
SSMULT/sptranspose.c (+0/-42)
SSMULT/sptranspose.m (+0/-16)
SSMULT/ssmult.c (+0/-188)
SSMULT/ssmult.h (+0/-66)
SSMULT/ssmult.m (+0/-36)
SSMULT/ssmult_demo.m (+0/-18)
SSMULT/ssmult_dot.c (+0/-291)
SSMULT/ssmult_install.m (+0/-199)
SSMULT/ssmult_mex.c (+0/-44)
SSMULT/ssmult_saxpy.c (+0/-555)
SSMULT/ssmult_template.c (+0/-421)
SSMULT/ssmult_transpose.c (+0/-169)
SSMULT/ssmultsym.c (+0/-150)
SSMULT/ssmultsym.m (+0/-41)
SSMULT/sstest.m (+0/-177)
SSMULT/sstest2.m (+0/-165)
SSMULT/sstest3.m (+0/-629)
SuiteSparse_config/Makefile (+43/-0)
SuiteSparse_config/README.txt (+48/-0)
SuiteSparse_config/SuiteSparse_config.c (+191/-0)
SuiteSparse_config/SuiteSparse_config.h (+202/-0)
SuiteSparse_config/SuiteSparse_config.mk (+393/-0)
SuiteSparse_config/SuiteSparse_config_GPU.mk (+393/-0)
SuiteSparse_config/SuiteSparse_config_Mac.mk (+395/-0)
SuiteSparse_config/xerbla/Makefile (+33/-0)
SuiteSparse_config/xerbla/xerbla.c (+12/-0)
SuiteSparse_config/xerbla/xerbla.f (+46/-0)
SuiteSparse_config/xerbla/xerbla.h (+2/-0)
SuiteSparse_demo.m (+99/-46)
SuiteSparse_install.m (+177/-185)
SuiteSparse_test.m (+94/-53)
UFcollection/Contents.m (+0/-39)
UFcollection/Doc/ChangeLog (+0/-24)
UFcollection/Doc/License.txt (+0/-22)
UFcollection/Doc/gpl.txt (+0/-340)
UFcollection/README.txt (+0/-176)
UFcollection/UFallpages.m (+0/-20)
UFcollection/UFcollection_install.m (+0/-29)
UFcollection/UFexport.m (+0/-80)
UFcollection/UFfull_read.m (+0/-65)
UFcollection/UFfull_write.c (+0/-164)
UFcollection/UFfull_write.m (+0/-29)
UFcollection/UFgplot.m (+0/-133)
UFcollection/UFindex.m (+0/-404)
UFcollection/UFint.m (+0/-40)
UFcollection/UFlist.m (+0/-358)
UFcollection/UFlists.m (+0/-113)
UFcollection/UFlocation.m (+0/-17)
UFcollection/UFpage.m (+0/-623)
UFcollection/UFpages.m (+0/-30)
UFcollection/UFread.m (+0/-449)
UFcollection/UFstats.m (+0/-620)
UFcollection/UFwrite.m (+0/-444)
UFcollection/dsxy2figxy.m (+0/-57)
UFconfig/README.txt (+0/-35)
UFconfig/UFconfig.h (+0/-118)
UFconfig/UFconfig.mk (+0/-354)
UFconfig/xerbla/Makefile (+0/-31)
UFconfig/xerbla/xerbla.c (+0/-12)
UFconfig/xerbla/xerbla.f (+0/-46)
UFconfig/xerbla/xerbla.h (+0/-2)
UMFPACK/Demo/Makefile (+80/-17)
UMFPACK/Demo/dodefault (+2/-2)
UMFPACK/Demo/dospd (+2/-2)
UMFPACK/Demo/readhb.f (+3/-3)
UMFPACK/Demo/readhb_nozeros.f (+3/-3)
UMFPACK/Demo/readhb_size.f (+3/-3)
UMFPACK/Demo/simple_compile (+1/-2)
UMFPACK/Demo/umf4.c (+43/-45)
UMFPACK/Demo/umf4.out (+266/-299)
UMFPACK/Demo/umf4_f77wrapper.c (+14/-13)
UMFPACK/Demo/umf4_f77zwrapper.c (+8/-8)
UMFPACK/Demo/umf4hb.f (+3/-3)
UMFPACK/Demo/umf4hb.out (+41/-44)
UMFPACK/Demo/umf4hb64.f (+3/-3)
UMFPACK/Demo/umf4hb64.out (+43/-46)
UMFPACK/Demo/umf4zhb.f (+3/-3)
UMFPACK/Demo/umf4zhb.out (+36/-39)
UMFPACK/Demo/umfpack_di_demo.c (+4/-4)
UMFPACK/Demo/umfpack_di_demo.out (+97/-116)
UMFPACK/Demo/umfpack_dl_demo.c (+35/-35)
UMFPACK/Demo/umfpack_dl_demo.out (+132/-151)
UMFPACK/Demo/umfpack_dl_demo.sed (+1/-1)
UMFPACK/Demo/umfpack_simple.c (+3/-3)
UMFPACK/Demo/umfpack_xx_demo.c (+7/-7)
UMFPACK/Demo/umfpack_zi_demo.c (+1/-7)
UMFPACK/Demo/umfpack_zi_demo.out (+112/-133)
UMFPACK/Demo/umfpack_zl_demo.c (+32/-39)
UMFPACK/Demo/umfpack_zl_demo.out (+142/-161)
UMFPACK/Demo/umfpack_zl_demo.sed (+1/-1)
UMFPACK/Doc/ChangeLog (+38/-0)
UMFPACK/Doc/License (+2/-2)
UMFPACK/Doc/Makefile (+1/-1)
UMFPACK/Doc/QuickStart.tex (+40/-39)
UMFPACK/Doc/UserGuide.bib (+0/-39)
UMFPACK/Doc/UserGuide.stex (+195/-116)
UMFPACK/Include/umfpack.h (+33/-37)
UMFPACK/Include/umfpack_col_to_triplet.h (+14/-15)
UMFPACK/Include/umfpack_defaults.h (+4/-5)
UMFPACK/Include/umfpack_free_numeric.h (+4/-5)
UMFPACK/Include/umfpack_free_symbolic.h (+4/-5)
UMFPACK/Include/umfpack_get_determinant.h (+7/-9)
UMFPACK/Include/umfpack_get_lunz.h (+18/-19)
UMFPACK/Include/umfpack_get_numeric.h (+23/-24)
UMFPACK/Include/umfpack_get_symbolic.h (+42/-45)
UMFPACK/Include/umfpack_global.h (+2/-3)
UMFPACK/Include/umfpack_load_numeric.h (+8/-9)
UMFPACK/Include/umfpack_load_symbolic.h (+8/-9)
UMFPACK/Include/umfpack_numeric.h (+15/-16)
UMFPACK/Include/umfpack_qsymbolic.h (+109/-24)
UMFPACK/Include/umfpack_report_control.h (+4/-5)
UMFPACK/Include/umfpack_report_info.h (+4/-5)
UMFPACK/Include/umfpack_report_matrix.h (+18/-19)
UMFPACK/Include/umfpack_report_numeric.h (+8/-9)
UMFPACK/Include/umfpack_report_perm.h (+12/-13)
UMFPACK/Include/umfpack_report_status.h (+8/-9)
UMFPACK/Include/umfpack_report_symbolic.h (+8/-9)
UMFPACK/Include/umfpack_report_triplet.h (+18/-19)
UMFPACK/Include/umfpack_report_vector.h (+10/-11)
UMFPACK/Include/umfpack_save_numeric.h (+8/-9)
UMFPACK/Include/umfpack_save_symbolic.h (+8/-9)
UMFPACK/Include/umfpack_scale.h (+6/-7)
UMFPACK/Include/umfpack_solve.h (+14/-15)
UMFPACK/Include/umfpack_symbolic.h (+46/-41)
UMFPACK/Include/umfpack_tictoc.h (+7/-22)
UMFPACK/Include/umfpack_timer.h (+3/-16)
UMFPACK/Include/umfpack_transpose.h (+25/-26)
UMFPACK/Include/umfpack_triplet_to_col.h (+24/-25)
UMFPACK/Include/umfpack_wsolve.h (+16/-17)
UMFPACK/Lib/GNUmakefile (+31/-21)
UMFPACK/Lib/Makefile (+15/-14)
UMFPACK/Lib/libumfpack.def (+4/-0)
UMFPACK/MATLAB/Contents.m (+1/-1)
UMFPACK/MATLAB/GNUmakefile (+0/-240)
UMFPACK/MATLAB/Makefile (+6/-433)
UMFPACK/MATLAB/lu_normest.m (+1/-6)
UMFPACK/MATLAB/luflop.m (+1/-1)
UMFPACK/MATLAB/luflopmex.c (+12/-14)
UMFPACK/MATLAB/umfpack2.m (+20/-1)
UMFPACK/MATLAB/umfpack_btf.m (+8/-7)
UMFPACK/MATLAB/umfpack_demo.m (+3/-9)
UMFPACK/MATLAB/umfpack_demo.m.out (+6/-12)
UMFPACK/MATLAB/umfpack_details.m (+5/-5)
UMFPACK/MATLAB/umfpack_make.m (+243/-89)
UMFPACK/MATLAB/umfpack_report.m (+9/-307)
UMFPACK/MATLAB/umfpack_simple.m (+1/-3)
UMFPACK/MATLAB/umfpack_solve.m (+3/-6)
UMFPACK/MATLAB/umfpack_test.m (+21/-22)
UMFPACK/MATLAB/umfpack_test2.m (+52/-0)
UMFPACK/MATLAB/umfpackmex.c (+856/-265)
UMFPACK/Makefile (+27/-29)
UMFPACK/README.txt (+35/-29)
UMFPACK/Source/cholmod_blas.h (+73/-77)
UMFPACK/Source/umf_2by2.c (+0/-866)
UMFPACK/Source/umf_2by2.h (+0/-36)
UMFPACK/Source/umf_analyze.c (+6/-7)
UMFPACK/Source/umf_analyze.h (+2/-3)
UMFPACK/Source/umf_apply_order.c (+2/-3)
UMFPACK/Source/umf_apply_order.h (+2/-3)
UMFPACK/Source/umf_assemble.c (+4/-5)
UMFPACK/Source/umf_assemble.h (+2/-3)
UMFPACK/Source/umf_blas3_update.c (+2/-3)
UMFPACK/Source/umf_blas3_update.h (+2/-3)
UMFPACK/Source/umf_build_tuples.c (+2/-3)
UMFPACK/Source/umf_build_tuples.h (+2/-3)
UMFPACK/Source/umf_cholmod.c (+239/-0)
UMFPACK/Source/umf_cholmod.h (+37/-0)
UMFPACK/Source/umf_colamd.c (+6/-9)
UMFPACK/Source/umf_colamd.h (+4/-5)
UMFPACK/Source/umf_config.h (+8/-53)
UMFPACK/Source/umf_create_element.c (+2/-3)
UMFPACK/Source/umf_create_element.h (+2/-3)
UMFPACK/Source/umf_dump.c (+18/-17)
UMFPACK/Source/umf_dump.h (+2/-3)
UMFPACK/Source/umf_extend_front.c (+2/-3)
UMFPACK/Source/umf_extend_front.h (+2/-3)
UMFPACK/Source/umf_free.c (+2/-3)
UMFPACK/Source/umf_free.h (+2/-3)
UMFPACK/Source/umf_fsize.c (+2/-3)
UMFPACK/Source/umf_fsize.h (+2/-3)
UMFPACK/Source/umf_garbage_collection.c (+2/-3)
UMFPACK/Source/umf_garbage_collection.h (+2/-3)
UMFPACK/Source/umf_get_memory.c (+2/-3)
UMFPACK/Source/umf_get_memory.h (+2/-3)
UMFPACK/Source/umf_grow_front.c (+2/-3)
UMFPACK/Source/umf_grow_front.h (+2/-3)
UMFPACK/Source/umf_init_front.c (+3/-4)
UMFPACK/Source/umf_init_front.h (+2/-3)
UMFPACK/Source/umf_internal.h (+9/-6)
UMFPACK/Source/umf_is_permutation.c (+2/-3)
UMFPACK/Source/umf_is_permutation.h (+2/-3)
UMFPACK/Source/umf_kernel.c (+2/-3)
UMFPACK/Source/umf_kernel.h (+2/-3)
UMFPACK/Source/umf_kernel_init.c (+2/-6)
UMFPACK/Source/umf_kernel_init.h (+2/-3)
UMFPACK/Source/umf_kernel_wrapup.c (+2/-3)
UMFPACK/Source/umf_kernel_wrapup.h (+2/-3)
UMFPACK/Source/umf_local_search.c (+2/-3)
UMFPACK/Source/umf_local_search.h (+2/-3)
UMFPACK/Source/umf_lsolve.c (+2/-3)
UMFPACK/Source/umf_lsolve.h (+2/-3)
UMFPACK/Source/umf_ltsolve.c (+2/-3)
UMFPACK/Source/umf_ltsolve.h (+2/-3)
UMFPACK/Source/umf_malloc.c (+2/-3)
UMFPACK/Source/umf_malloc.h (+2/-3)
UMFPACK/Source/umf_mem_alloc_element.c (+2/-3)
UMFPACK/Source/umf_mem_alloc_element.h (+2/-3)
UMFPACK/Source/umf_mem_alloc_head_block.c (+2/-3)
UMFPACK/Source/umf_mem_alloc_head_block.h (+2/-3)
UMFPACK/Source/umf_mem_alloc_tail_block.c (+2/-3)
UMFPACK/Source/umf_mem_alloc_tail_block.h (+2/-3)
UMFPACK/Source/umf_mem_free_tail_block.c (+2/-3)
UMFPACK/Source/umf_mem_free_tail_block.h (+2/-3)
UMFPACK/Source/umf_mem_init_memoryspace.c (+2/-3)
UMFPACK/Source/umf_mem_init_memoryspace.h (+2/-3)
UMFPACK/Source/umf_multicompile.c (+2/-3)
UMFPACK/Source/umf_realloc.c (+2/-3)
UMFPACK/Source/umf_realloc.h (+2/-3)
UMFPACK/Source/umf_report_perm.c (+2/-3)
UMFPACK/Source/umf_report_perm.h (+2/-3)
UMFPACK/Source/umf_report_vector.c (+2/-3)
UMFPACK/Source/umf_report_vector.h (+2/-3)
UMFPACK/Source/umf_row_search.c (+2/-3)
UMFPACK/Source/umf_row_search.h (+2/-3)
UMFPACK/Source/umf_scale.c (+2/-3)
UMFPACK/Source/umf_scale.h (+2/-3)
UMFPACK/Source/umf_scale_column.c (+2/-3)
UMFPACK/Source/umf_scale_column.h (+2/-3)
UMFPACK/Source/umf_set_stats.c (+2/-3)
UMFPACK/Source/umf_set_stats.h (+2/-3)
UMFPACK/Source/umf_singletons.c (+11/-4)
UMFPACK/Source/umf_singletons.h (+3/-3)
UMFPACK/Source/umf_solve.c (+2/-3)
UMFPACK/Source/umf_solve.h (+2/-3)
UMFPACK/Source/umf_start_front.c (+2/-3)
UMFPACK/Source/umf_start_front.h (+2/-3)
UMFPACK/Source/umf_store_lu.c (+2/-3)
UMFPACK/Source/umf_store_lu.h (+2/-3)
UMFPACK/Source/umf_symbolic_usage.c (+2/-3)
UMFPACK/Source/umf_symbolic_usage.h (+2/-3)
UMFPACK/Source/umf_transpose.c (+2/-3)
UMFPACK/Source/umf_transpose.h (+2/-3)
UMFPACK/Source/umf_triplet.c (+2/-3)
UMFPACK/Source/umf_triplet.h (+2/-3)
UMFPACK/Source/umf_tuple_lengths.c (+2/-3)
UMFPACK/Source/umf_tuple_lengths.h (+2/-3)
UMFPACK/Source/umf_usolve.c (+2/-3)
UMFPACK/Source/umf_usolve.h (+2/-3)
UMFPACK/Source/umf_utsolve.c (+2/-3)
UMFPACK/Source/umf_utsolve.h (+2/-3)
UMFPACK/Source/umf_valid_numeric.c (+2/-3)
UMFPACK/Source/umf_valid_numeric.h (+2/-3)
UMFPACK/Source/umf_valid_symbolic.c (+2/-3)
UMFPACK/Source/umf_valid_symbolic.h (+2/-3)
UMFPACK/Source/umf_version.h (+15/-12)
UMFPACK/Source/umfpack_col_to_triplet.c (+2/-3)
UMFPACK/Source/umfpack_defaults.c (+4/-48)
UMFPACK/Source/umfpack_free_numeric.c (+2/-3)
UMFPACK/Source/umfpack_free_symbolic.c (+2/-3)
UMFPACK/Source/umfpack_get_determinant.c (+4/-4)
UMFPACK/Source/umfpack_get_lunz.c (+2/-3)
UMFPACK/Source/umfpack_get_numeric.c (+2/-3)
UMFPACK/Source/umfpack_get_symbolic.c (+2/-3)
UMFPACK/Source/umfpack_global.c (+3/-4)
UMFPACK/Source/umfpack_load_numeric.c (+2/-3)
UMFPACK/Source/umfpack_load_symbolic.c (+2/-3)
UMFPACK/Source/umfpack_numeric.c (+5/-5)
UMFPACK/Source/umfpack_qsymbolic.c (+719/-425)
UMFPACK/Source/umfpack_report_control.c (+72/-65)
UMFPACK/Source/umfpack_report_info.c (+68/-115)
UMFPACK/Source/umfpack_report_matrix.c (+16/-15)
UMFPACK/Source/umfpack_report_numeric.c (+2/-3)
UMFPACK/Source/umfpack_report_perm.c (+2/-3)
UMFPACK/Source/umfpack_report_status.c (+8/-4)
UMFPACK/Source/umfpack_report_symbolic.c (+38/-26)
UMFPACK/Source/umfpack_report_triplet.c (+2/-3)
UMFPACK/Source/umfpack_report_vector.c (+2/-3)
UMFPACK/Source/umfpack_save_numeric.c (+6/-3)
UMFPACK/Source/umfpack_save_symbolic.c (+3/-3)
UMFPACK/Source/umfpack_scale.c (+2/-3)
UMFPACK/Source/umfpack_solve.c (+2/-3)
UMFPACK/Source/umfpack_symbolic.c (+4/-6)
UMFPACK/Source/umfpack_tictoc.c (+19/-106)
UMFPACK/Source/umfpack_timer.c (+8/-85)
UMFPACK/Source/umfpack_transpose.c (+2/-3)
UMFPACK/Source/umfpack_triplet_to_col.c (+2/-3)
UMFPACK/Tcov/AMD_Demo_Makefile (+6/-5)
UMFPACK/Tcov/DO (+26/-39)
UMFPACK/Tcov/DO.all (+54/-0)
UMFPACK/Tcov/DO.linux (+0/-55)
UMFPACK/Tcov/DO.linux.Jan24 (+0/-465)
UMFPACK/Tcov/DO.linux.out (+0/-475)
UMFPACK/Tcov/DO.linux.out2 (+0/-428)
UMFPACK/Tcov/DO.linux2 (+0/-108)
UMFPACK/Tcov/DO.solaris (+0/-47)
UMFPACK/Tcov/DO2 (+0/-9)
UMFPACK/Tcov/DO678 (+0/-17)
UMFPACK/Tcov/DOsol (+0/-6)
UMFPACK/Tcov/DOsol2 (+0/-57)
UMFPACK/Tcov/Demo_Makefile (+37/-14)
UMFPACK/Tcov/GNUmakefile.di (+6/-6)
UMFPACK/Tcov/GNUmakefile.dl (+7/-6)
UMFPACK/Tcov/GNUmakefile.zi (+7/-6)
UMFPACK/Tcov/GNUmakefile.zl (+7/-6)
UMFPACK/Tcov/Make.1 (+4/-6)
UMFPACK/Tcov/Make.1g (+0/-18)
UMFPACK/Tcov/Make.1i (+0/-21)
UMFPACK/Tcov/Make.1n (+0/-21)
UMFPACK/Tcov/Make.2 (+4/-6)
UMFPACK/Tcov/Make.2g (+0/-18)
UMFPACK/Tcov/Make.2i (+0/-20)
UMFPACK/Tcov/Make.2n (+0/-20)
UMFPACK/Tcov/Make.3 (+5/-7)
UMFPACK/Tcov/Make.3g (+0/-18)
UMFPACK/Tcov/Make.3i (+0/-20)
UMFPACK/Tcov/Make.3n (+0/-20)
UMFPACK/Tcov/Make.4 (+4/-7)
UMFPACK/Tcov/Make.4g (+0/-18)
UMFPACK/Tcov/Make.4i (+0/-20)
UMFPACK/Tcov/Make.4n (+0/-20)
UMFPACK/Tcov/Make.5 (+4/-6)
UMFPACK/Tcov/Make.6 (+4/-6)
UMFPACK/Tcov/Make.7 (+4/-6)
UMFPACK/Tcov/Make.8 (+4/-6)
UMFPACK/Tcov/Make.n1 (+0/-18)
UMFPACK/Tcov/Make.n2 (+0/-18)
UMFPACK/Tcov/Make.n3 (+0/-18)
UMFPACK/Tcov/Make.n4 (+0/-18)
UMFPACK/Tcov/Make.s1 (+0/-18)
UMFPACK/Tcov/Make.s2 (+0/-18)
UMFPACK/Tcov/Make.s3 (+0/-18)
UMFPACK/Tcov/Make.s4 (+0/-18)
UMFPACK/Tcov/Make.s5 (+0/-18)
UMFPACK/Tcov/Make_file (+0/-24)
UMFPACK/Tcov/Makefile (+5/-7)
UMFPACK/Tcov/README.txt (+89/-62)
UMFPACK/Tcov/Top_Makefile (+1/-1)
UMFPACK/Tcov/covall (+2/-2)
UMFPACK/Tcov/cover.out (+0/-527)
UMFPACK/Tcov/cover.out_May5 (+0/-536)
UMFPACK/Tcov/ss.awk (+0/-3)
UMFPACK/Tcov/ucov.di (+1/-1)
UMFPACK/Tcov/ucov.dl (+1/-1)
UMFPACK/Tcov/ucov.zi (+1/-1)
UMFPACK/Tcov/ucov.zl (+1/-1)
UMFPACK/Tcov/ut.c (+176/-28)
debian/NEWS (+1/-1)
debian/README.Debian (+12/-10)
debian/README.source (+0/-8)
debian/changelog (+83/-0)
debian/compat (+1/-1)
debian/control (+86/-45)
debian/control.in (+53/-12)
debian/copyright (+9/-10)
debian/install/AMD (+3/-1)
debian/install/BTF (+3/-1)
debian/install/CAMD (+3/-1)
debian/install/CCOLAMD (+3/-1)
debian/install/CHOLMOD (+3/-1)
debian/install/COLAMD (+3/-1)
debian/install/CSparse (+3/-1)
debian/install/CXSparse (+3/-1)
debian/install/KLU (+3/-1)
debian/install/LDL (+3/-1)
debian/install/SPQR (+3/-0)
debian/install/UMFPACK (+3/-1)
debian/library-soname.pl (+12/-11)
debian/libsuitesparse-dev.install (+28/-24)
debian/libsuitesparse-doc.doc-base.camd (+11/-0)
debian/libsuitesparse-doc.doc-base.klu (+14/-0)
debian/libsuitesparse-doc.doc-base.ldl (+16/-0)
debian/libsuitesparse-doc.doc-base.spqr (+14/-0)
debian/libsuitesparse-doc.install (+2/-0)
debian/patches/01-Makefile.diff (+0/-20)
debian/patches/02-AMD_Lib_GNUmakefile.diff (+0/-67)
debian/patches/03-CAMD_Lib_GNUmakefile.diff (+0/-66)
debian/patches/04-CCOLAMD_Lib_Makefile.diff (+0/-41)
debian/patches/05-COLAMD_Lib_Makefile.diff (+0/-41)
debian/patches/06-BTF_Lib_Makefile.diff (+0/-74)
debian/patches/07-KLU_Lib_Makefile.diff (+0/-370)
debian/patches/08-LDL_Lib_Makefile.diff (+0/-39)
debian/patches/09-CSparse_Lib_Makefile.diff (+0/-57)
debian/patches/10-CXSparse_Lib_Makefile.diff (+0/-94)
debian/patches/11-UMFPACK_Lib_GNUmakefile.diff (+0/-304)
debian/patches/12-CHOLMOD_Lib_Makefile.diff (+0/-676)
debian/patches/13-UFconfig_UFconfig.mk.diff (+0/-56)
debian/patches/AMD_Lib_GNUmakefile.diff (+66/-0)
debian/patches/BTF_Lib_Makefile.diff (+75/-0)
debian/patches/CAMD_Lib_GNUmakefile.diff (+65/-0)
debian/patches/CCOLAMD_Lib_Makefile.diff (+40/-0)
debian/patches/CHOLMOD_Lib_Makefile.diff (+683/-0)
debian/patches/COLAMD_Lib_Makefile.diff (+40/-0)
debian/patches/CSparse_Lib_Makefile.diff (+51/-0)
debian/patches/CXSparse_Lib_Makefile.diff (+94/-0)
debian/patches/KLU_Demo_Makefile.diff (+22/-0)
debian/patches/KLU_Lib_Makefile.diff (+361/-0)
debian/patches/LDL_Lib_Makefile.diff (+38/-0)
debian/patches/SPQR_Lib_Makefile.diff (+245/-0)
debian/patches/SuiteSparse_config_SuiteSparse_config_mk.diff (+46/-0)
debian/patches/Suitesparse_config_Makefile.diff (+33/-0)
debian/patches/UMFPACK_Lib_GNUmakefile.diff (+289/-0)
debian/patches/buildflags.diff (+45/-0)
debian/patches/parallel-build.diff (+22/-0)
debian/patches/series (+20/-13)
debian/rules (+15/-18)
debian/source/format (+1/-0)
debian/symbols/AMD (+0/-28)
debian/symbols/BTF (+0/-7)
debian/symbols/CAMD (+0/-28)
debian/symbols/CCOLAMD (+0/-24)
debian/symbols/CHOLMOD (+0/-259)
debian/symbols/COLAMD (+0/-14)
debian/symbols/CSparse (+0/-65)
debian/symbols/CXSparse (+0/-261)
debian/symbols/KLU (+0/-93)
debian/symbols/LDL (+0/-19)
debian/symbols/UMFPACK (+0/-318)
To merge this branch: bzr merge lp:~logan/ubuntu/trusty/suitesparse/4.2.1-3ubuntu1
Reviewer Review Type Date Requested Status
Daniel Holbach (community) Approve
Review via email: mp+198169@code.launchpad.net
To post a comment you must log in.
Revision history for this message
Daniel Holbach (dholbach) wrote :

Thanks. Uploaded.

review: Approve

Unmerged revisions

12. By Logan Rosen

* Merge from Debian unstable. Remaining changes:
  - debian/control: Demote libatlas-doc from Recommends to Suggests, as it
    is not in main.
* Upload to unstable.
* Register user guides for KLU, CAMD, SPQR and LDL in doc-base.
* Really fix BLAS/LAPACK dependencies of libsuitesparse-dev
  - remove obsolete ATLAS specialized libraries (Closes: #645846)
  - add virtual package libblas.so as a BLAS alternative (Closes: #645844)
* Remove Daniel Rus Morales from Uploaders, with his consent. Thanks
  Daniel for your work!
* d/rules: do not regenerate d/control automatically, this is
  forbidden
* d/rules: fix get-orig-source rule
* d/control: use canonical URLs for Vcs-* fields
* Mark debug package as Multi-Arch: same
* Ship libsuitesparseconfig.a in the -dev package.
* Bump Standards-Version to 3.9.5, no changes needed.
* New upstream release (Closes: #706709)
  - debian/library-soname.pl: update soversion numbers
* debian/rules: recreate d/control when d/library-sonames.pl is
  modified
* New upstream release (Closes: #653660, #687282)
  - Renamed UFconfig to SuiteSparse_config
  - Update patches to new release
  - debian/library-soname.pl: update soversion numbers

* debian/control.in:
  - fix Maintainer field (Closes: #674266, #674268, #674270, #674271, #674272,
    #674273, #674274, #674275, #674276, #674277, #674278, #674279, #674280,
    #674281)
  - add myself to Uploaders
  - remove obsolete DM-Upload-Allowed flag
* Remove obsolete README.source
* debian/rules: clean *.oo files
* Bump to debhelper compat level 9
* Update debian/copyright
* Remove symbols files: they are useless since we bump the soversion
  at every new upstream release
* Clean up build flags
  - make sure to inject flags from dpkg-buildflags
  - buildflags.diff: new patch to remove spurious flags in upstream build
    system
  - remove -m64 flag on amd64 CPUs (Closes: #701654)
* Fix version in NEWS.Debian, to make lintian happy
* parallel-build.diff: new patch, fixes parallel build
* Multiarchify the package
* Fix BLAS/LAPACK dependencies of libsuitesparse-dev:
  - remove obsolete ATLAS specialized libraries (Closes: #645846)
  - add libopenblas-dev as a BLAS alternative (Closes: #645844)
* Bump to Standards-Version 3.9.4, no changes needed
* Suitesparse_config_Makefile.diff: new patch, creates a PIC version
  of the (small) config code, for embedding in other shared libs
* KLU_Demo_Makefile.diff: new patch, needed for creating the right
  dependencies between shared libraries
* Create a new shared library package for SPQR (Closes: #589296)
* Update README.Debian

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== added directory '.pc'
2=== added file '.pc/.quilt_patches'
3--- .pc/.quilt_patches 1970-01-01 00:00:00 +0000
4+++ .pc/.quilt_patches 2013-12-08 03:08:50 +0000
5@@ -0,0 +1,1 @@
6+debian/patches
7
8=== added file '.pc/.quilt_series'
9--- .pc/.quilt_series 1970-01-01 00:00:00 +0000
10+++ .pc/.quilt_series 2013-12-08 03:08:50 +0000
11@@ -0,0 +1,1 @@
12+series
13
14=== added file '.pc/.version'
15--- .pc/.version 1970-01-01 00:00:00 +0000
16+++ .pc/.version 2013-12-08 03:08:50 +0000
17@@ -0,0 +1,1 @@
18+2
19
20=== modified file 'AMD/Demo/Makefile'
21--- AMD/Demo/Makefile 2007-05-29 09:36:29 +0000
22+++ AMD/Demo/Makefile 2013-12-08 03:08:50 +0000
23@@ -4,11 +4,11 @@
24
25 default: amd_simple amd_demo amd_demo2 amd_l_demo
26
27-include ../../UFconfig/UFconfig.mk
28-
29-C = $(CC) $(CFLAGS) -I../Include -I../../UFconfig
30-
31-INC = ../Include/amd.h ../../UFconfig/UFconfig.h
32+include ../../SuiteSparse_config/SuiteSparse_config.mk
33+
34+C = $(CC) $(CF) -I../Include -I../../SuiteSparse_config
35+
36+INC = ../Include/amd.h ../../SuiteSparse_config/SuiteSparse_config.h
37
38 library:
39 ( cd ../Lib ; $(MAKE) )
40@@ -88,3 +88,4 @@
41 - $(RM) amd_f77demo my_amd_f77demo.out
42 - $(RM) amd_f77simple my_amd_f77simple.out
43 - $(RM) amd_f77cross my_amd_f77cross.out
44+ - $(RM) -r *.dSYM
45
46=== modified file 'AMD/Demo/amd_demo.c'
47--- AMD/Demo/amd_demo.c 2007-05-29 09:36:29 +0000
48+++ AMD/Demo/amd_demo.c 2013-12-08 03:08:50 +0000
49@@ -5,8 +5,7 @@
50 /* ------------------------------------------------------------------------- */
51 /* AMD Copyright (c) by Timothy A. Davis, */
52 /* Patrick R. Amestoy, and Iain S. Duff. See ../README.txt for License. */
53-/* email: davis at cise.ufl.edu CISE Department, Univ. of Florida. */
54-/* web: http://www.cise.ufl.edu/research/sparse/amd */
55+/* DrTimothyAldenDavis@gmail.com, http://www.suitesparse.com */
56 /* ------------------------------------------------------------------------- */
57
58 /* A simple C main program that illustrates the use of the ANSI C interface
59@@ -58,8 +57,8 @@
60 /* here is an example of how to use AMD_VERSION. This code will work in
61 * any version of AMD. */
62 #if defined(AMD_VERSION) && (AMD_VERSION >= AMD_VERSION_CODE(1,2))
63- printf ("AMD version %d.%d, date: %s\n", AMD_MAIN_VERSION, AMD_SUB_VERSION,
64- AMD_DATE) ;
65+ printf ("AMD version %d.%d.%d, date: %s\n",
66+ AMD_MAIN_VERSION, AMD_SUB_VERSION, AMD_SUBSUB_VERSION, AMD_DATE) ;
67 #else
68 printf ("AMD version: 1.1 or earlier\n") ;
69 #endif
70
71=== modified file 'AMD/Demo/amd_demo.out'
72--- AMD/Demo/amd_demo.out 2007-05-29 09:36:29 +0000
73+++ AMD/Demo/amd_demo.out 2013-12-08 03:08:50 +0000
74@@ -1,7 +1,7 @@
75-AMD version 2.2, date: May 31, 2007
76+AMD version 2.3.0, date: Jun 1, 2012
77 AMD demo, with the 24-by-24 Harwell/Boeing matrix, can_24:
78
79-AMD version 2.2.0, May 31, 2007: approximate minimum degree ordering
80+AMD version 2.3.0, Jun 1, 2012: approximate minimum degree ordering
81 dense row parameter: 10
82 (rows with more than max (10 * sqrt (n), 16) entries are
83 considered "dense", and placed last in output permutation)
84@@ -115,7 +115,7 @@
85 23: . . . . . . X . . . . X X . . . . . . . . . . X
86 return value from amd_order: 0 (should be 0)
87
88-AMD version 2.2.0, May 31, 2007, results:
89+AMD version 2.3.0, Jun 1, 2012, results:
90 status: OK
91 n, dimension of A: 24
92 nz, number of nonzeros in A: 160
93
94=== modified file 'AMD/Demo/amd_demo2.c'
95--- AMD/Demo/amd_demo2.c 2007-05-29 09:36:29 +0000
96+++ AMD/Demo/amd_demo2.c 2013-12-08 03:08:50 +0000
97@@ -5,8 +5,7 @@
98 /* ------------------------------------------------------------------------- */
99 /* AMD Copyright (c) by Timothy A. Davis, */
100 /* Patrick R. Amestoy, and Iain S. Duff. See ../README.txt for License. */
101-/* email: davis at cise.ufl.edu CISE Department, Univ. of Florida. */
102-/* web: http://www.cise.ufl.edu/research/sparse/amd */
103+/* DrTimothyAldenDavis@gmail.com, http://www.suitesparse.com */
104 /* ------------------------------------------------------------------------- */
105
106 /* A simple C main program that illustrates the use of the ANSI C interface
107
108=== modified file 'AMD/Demo/amd_demo2.out'
109--- AMD/Demo/amd_demo2.out 2007-05-29 09:36:29 +0000
110+++ AMD/Demo/amd_demo2.out 2013-12-08 03:08:50 +0000
111@@ -1,7 +1,7 @@
112 AMD demo, with a jumbled version of the 24-by-24
113 Harwell/Boeing matrix, can_24:
114
115-AMD version 2.2.0, May 31, 2007: approximate minimum degree ordering
116+AMD version 2.3.0, Jun 1, 2012: approximate minimum degree ordering
117 dense row parameter: 10
118 (rows with more than max (10 * sqrt (n), 16) entries are
119 considered "dense", and placed last in output permutation)
120@@ -144,7 +144,7 @@
121 23: . . . . . . X . . . . X X . . . . . . . . . . X
122 return value from amd_order: 1 (should be 1)
123
124-AMD version 2.2.0, May 31, 2007, results:
125+AMD version 2.3.0, Jun 1, 2012, results:
126 status: OK, but jumbled
127 n, dimension of A: 24
128 nz, number of nonzeros in A: 102
129
130=== modified file 'AMD/Demo/amd_f77cross.f'
131--- AMD/Demo/amd_f77cross.f 2007-05-29 09:36:29 +0000
132+++ AMD/Demo/amd_f77cross.f 2013-12-08 03:08:50 +0000
133@@ -4,9 +4,8 @@
134
135 C ----------------------------------------------------------------------
136 C AMD, Copyright (c) by Timothy A. Davis, Patrick R.
137-C Amestoy, and Iain S. Duff. See ../README.txt for
138-C License. email: davis at cise.ufl.edu CISE Department, Univ. of
139-C Florida. web: http://www.cise.ufl.edu/research/sparse/amd
140+C Amestoy, and Iain S. Duff. See ../README.txt for License.
141+C email: DrTimothyAldenDavis@gmail.com
142 C ----------------------------------------------------------------------
143
144 C This program provides an example of how to call the C version of AMD
145
146=== modified file 'AMD/Demo/amd_f77demo.f'
147--- AMD/Demo/amd_f77demo.f 2007-05-29 09:36:29 +0000
148+++ AMD/Demo/amd_f77demo.f 2013-12-08 03:08:50 +0000
149@@ -4,9 +4,8 @@
150
151 C ----------------------------------------------------------------------
152 C AMD, Copyright (c) by Timothy A. Davis, Patrick R.
153-C Amestoy, and Iain S. Duff. See ../README.txt for
154-C License. email: davis at cise.ufl.edu CISE Department, Univ. of
155-C Florida. web: http://www.cise.ufl.edu/research/sparse/amd
156+C Amestoy, and Iain S. Duff. See ../README.txt for License.
157+C email: DrTimothyAldenDavis@gmail.com
158 C ----------------------------------------------------------------------
159
160 C A simple Fortran 77 main program that illustrates the use of the
161
162=== modified file 'AMD/Demo/amd_f77simple.f'
163--- AMD/Demo/amd_f77simple.f 2007-05-29 09:36:29 +0000
164+++ AMD/Demo/amd_f77simple.f 2013-12-08 03:08:50 +0000
165@@ -1,8 +1,7 @@
166 C ----------------------------------------------------------------------
167 C AMD, Copyright (c) by Timothy A. Davis, Patrick R.
168-C Amestoy, and Iain S. Duff. See ../README.txt for
169-C License. email: davis at cise.ufl.edu CISE Department, Univ. of
170-C Florida. web: http://www.cise.ufl.edu/research/sparse/amd
171+C Amestoy, and Iain S. Duff. See ../README.txt for License.
172+C email: DrTimothyAldenDavis@gmail.com
173 C ----------------------------------------------------------------------
174
175 C This program provides an example of how to call the Fortran version
176
177=== modified file 'AMD/Demo/amd_f77wrapper.c'
178--- AMD/Demo/amd_f77wrapper.c 2007-05-29 09:36:29 +0000
179+++ AMD/Demo/amd_f77wrapper.c 2013-12-08 03:08:50 +0000
180@@ -5,8 +5,7 @@
181 /* ------------------------------------------------------------------------- */
182 /* AMD Copyright (c) by Timothy A. Davis, */
183 /* Patrick R. Amestoy, and Iain S. Duff. See ../README.txt for License. */
184-/* email: davis at cise.ufl.edu CISE Department, Univ. of Florida. */
185-/* web: http://www.cise.ufl.edu/research/sparse/amd */
186+/* email: DrTimothyAldenDavis@gmail.com */
187 /* ------------------------------------------------------------------------- */
188
189 /* Fortran interface for the C-callable AMD library (int version only). This
190
191=== modified file 'AMD/Demo/amd_l_demo.c'
192--- AMD/Demo/amd_l_demo.c 2007-05-29 09:36:29 +0000
193+++ AMD/Demo/amd_l_demo.c 2013-12-08 03:08:50 +0000
194@@ -1,12 +1,11 @@
195 /* ========================================================================= */
196-/* === AMD demo main program (UF_long integer version) ===================== */
197+/* === AMD demo main program (long integer version) ======================== */
198 /* ========================================================================= */
199
200 /* ------------------------------------------------------------------------- */
201 /* AMD Copyright (c) by Timothy A. Davis, */
202 /* Patrick R. Amestoy, and Iain S. Duff. See ../README.txt for License. */
203-/* email: davis at cise.ufl.edu CISE Department, Univ. of Florida. */
204-/* web: http://www.cise.ufl.edu/research/sparse/amd */
205+/* email: DrTimothyAldenDavis@gmail.com */
206 /* ------------------------------------------------------------------------- */
207
208 /* A simple C main program that illustrates the use of the ANSI C interface
209@@ -16,14 +15,14 @@
210 #include "amd.h"
211 #include <stdio.h>
212 #include <stdlib.h>
213-#include "UFconfig.h"
214+#define Long SuiteSparse_long
215
216 int main (void)
217 {
218 /* The symmetric can_24 Harwell/Boeing matrix, including upper and lower
219 * triangular parts, and the diagonal entries. Note that this matrix is
220 * 0-based, with row and column indices in the range 0 to n-1. */
221- UF_long n = 24, nz,
222+ Long n = 24, nz,
223 Ap [ ] = { 0, 9, 15, 21, 27, 33, 39, 48, 57, 61, 70, 76, 82, 88, 94, 100,
224 106, 110, 119, 128, 137, 143, 152, 156, 160 },
225 Ai [ ] = {
226@@ -52,15 +51,15 @@
227 /* column 22: */ 2, 20, 21, 22,
228 /* column 23: */ 6, 11, 12, 23 } ;
229
230- UF_long P [24], Pinv [24], i, j, k, jnew, p, inew, result ;
231+ Long P [24], Pinv [24], i, j, k, jnew, p, inew, result ;
232 double Control [AMD_CONTROL], Info [AMD_INFO] ;
233 char A [24][24] ;
234
235 /* here is an example of how to use AMD_VERSION. This code will work in
236 * any version of AMD. */
237 #if defined(AMD_VERSION) && (AMD_VERSION >= AMD_VERSION_CODE(1,2))
238- printf ("AMD version %d.%d, date: %s\n", AMD_MAIN_VERSION, AMD_SUB_VERSION,
239- AMD_DATE) ;
240+ printf ("AMD version %d.%d.%d, date: %s\n",
241+ AMD_MAIN_VERSION, AMD_SUB_VERSION, AMD_SUBSUB_VERSION, AMD_DATE) ;
242 #else
243 printf ("AMD version: 1.1 or earlier\n") ;
244 #endif
245
246=== modified file 'AMD/Demo/amd_l_demo.out'
247--- AMD/Demo/amd_l_demo.out 2007-05-29 09:36:29 +0000
248+++ AMD/Demo/amd_l_demo.out 2013-12-08 03:08:50 +0000
249@@ -1,7 +1,7 @@
250-AMD version 2.2, date: May 31, 2007
251+AMD version 2.3.0, date: Jun 1, 2012
252 AMD demo, with the 24-by-24 Harwell/Boeing matrix, can_24:
253
254-AMD version 2.2.0, May 31, 2007: approximate minimum degree ordering
255+AMD version 2.3.0, Jun 1, 2012: approximate minimum degree ordering
256 dense row parameter: 10
257 (rows with more than max (10 * sqrt (n), 16) entries are
258 considered "dense", and placed last in output permutation)
259@@ -115,7 +115,7 @@
260 23: . . . . . . X . . . . X X . . . . . . . . . . X
261 return value from amd_l_order: 0 (should be 0)
262
263-AMD version 2.2.0, May 31, 2007, results:
264+AMD version 2.3.0, Jun 1, 2012, results:
265 status: OK
266 n, dimension of A: 24
267 nz, number of nonzeros in A: 160
268
269=== modified file 'AMD/Demo/amd_simple.c'
270--- AMD/Demo/amd_simple.c 2007-05-29 09:36:29 +0000
271+++ AMD/Demo/amd_simple.c 2013-12-08 03:08:50 +0000
272@@ -1,8 +1,7 @@
273 /* ------------------------------------------------------------------------- */
274 /* AMD Copyright (c) by Timothy A. Davis, */
275 /* Patrick R. Amestoy, and Iain S. Duff. See ../README.txt for License. */
276-/* email: davis at cise.ufl.edu CISE Department, Univ. of Florida. */
277-/* web: http://www.cise.ufl.edu/research/sparse/amd */
278+/* email: DrTimothyAldenDavis@gmail.com */
279 /* ------------------------------------------------------------------------- */
280
281 #include <stdio.h>
282
283=== modified file 'AMD/Doc/AMD_UserGuide.pdf'
284Binary files AMD/Doc/AMD_UserGuide.pdf 2007-05-29 09:36:29 +0000 and AMD/Doc/AMD_UserGuide.pdf 2013-12-08 03:08:50 +0000 differ
285=== modified file 'AMD/Doc/AMD_UserGuide.tex'
286--- AMD/Doc/AMD_UserGuide.tex 2007-05-29 09:36:29 +0000
287+++ AMD/Doc/AMD_UserGuide.tex 2013-12-08 03:08:50 +0000
288@@ -13,15 +13,13 @@
289 \begin{document}
290 %------------------------------------------------------------------------------
291
292-\title{AMD Version 2.2 User Guide}
293+\title{AMD User Guide}
294 \author{Patrick R. Amestoy\thanks{ENSEEIHT-IRIT,
295 2 rue Camichel 31017 Toulouse, France.
296 email: amestoy@enseeiht.fr. http://www.enseeiht.fr/$\sim$amestoy.}
297 \and Timothy A. Davis\thanks{
298-Dept.~of Computer and Information Science and Engineering,
299-Univ.~of Florida, Gainesville, FL, USA.
300-email: davis@cise.ufl.edu.
301-http://www.cise.ufl.edu/$\sim$davis.
302+email: DrTimothyAldenDavis@gmail.com,
303+http://www.suitesparse.com.
304 This work was supported by the National
305 Science Foundation, under grants ASC-9111263, DMS-9223088, and CCR-0203270.
306 Portions of the work were done while on sabbatical at Stanford University
307@@ -34,7 +32,7 @@
308 This work was supported by the EPSRC under grant GR/R46441.
309 }}
310
311-\date{May 31, 2007}
312+\date{VERSION 2.3.1, Jun 20, 2012}
313 \maketitle
314
315 %------------------------------------------------------------------------------
316@@ -47,10 +45,7 @@
317 \end{abstract}
318 %------------------------------------------------------------------------------
319
320-Technical report TR-04-002 (revised), CISE Department, University of Florida,
321-Gainesville, FL, 2007.
322-
323-AMD Version 2.2, Copyright\copyright 2007 by Timothy A.
324+AMD Copyright\copyright 2011 by Timothy A.
325 Davis, Patrick R. Amestoy, and Iain S. Duff. All Rights Reserved.
326 AMD is available under alternate licences; contact T. Davis for details.
327
328@@ -84,7 +79,7 @@
329 and a notice that the code was modified is included.
330
331 {\bf Availability:}
332- http://www.cise.ufl.edu/research/sparse/amd
333+ http://www.suitesparse.com
334
335 {\bf Acknowledgments:}
336
337@@ -174,7 +169,7 @@
338 %------------------------------------------------------------------------------
339
340 In addition to appearing as a Collected Algorithm of the ACM, \newline
341-AMD is available at http://www.cise.ufl.edu/research/sparse.
342+AMD is available at http://www.suitesparse.com.
343 The Fortran version is available as the routine {\tt MC47} in HSL
344 (formerly the Harwell Subroutine Library) \cite{hsl:2002}.
345
346@@ -212,7 +207,7 @@
347 uses several strategies, including a symmetric pivoting strategy, and
348 will give you better results if you want to factorize an unsymmetric matrix
349 of this type. Refer to the UMFPACK User Guide for more details, at
350-http://www.cise.ufl.edu/research/sparse/umfpack.
351+http://www.suitesparse.com.
352
353 The AMD mexFunction is much faster than the built-in MATLAB symmetric minimum
354 degree ordering methods, SYMAMD and SYMMMD. Its ordering quality is
355@@ -690,7 +685,8 @@
356 The following discussion assumes you have the {\tt make} program, either in
357 Unix, or in Windows with Cygwin.
358
359-System-dependent configurations are in the {\tt ../UFconfig/UFconfig.mk}
360+System-dependent configurations are in the
361+{\tt ../SuiteSparse\_config/SuiteSparse\_config.mk}
362 file. You can edit that file to customize the compilation. The default
363 settings will work on most systems.
364 Sample configuration files are provided
365@@ -713,7 +709,8 @@
366 Typing {\tt make clean} will remove all but the final compiled libraries
367 and demo programs. Typing {\tt make purge} or {\tt make distclean}
368 removes all files not in the original distribution.
369-If you compile AMD and then later change the {\tt ../UFconfig/UFconfig.mk} file
370+If you compile AMD and then later change the
371+{\tt ../SuiteSparse\_config/SuiteSparse\_config.mk} file
372 then you should type {\tt make purge} and then {\tt make} to recompile.
373
374 When you compile your program that uses the C-callable AMD library,
375@@ -731,11 +728,6 @@
376 Alternately, type {\tt make} in the {\tt AMD/MATLAB} directory,
377 or just use the built-in {\tt amd} in MATLAB 7.3 or later.
378
379-If you have MATLAB 7.2 or earlier, you must first edit UFconfig/UFconfig.h to
380-remove the "-largeArrayDims" option from the MEX command, prior to
381-{\tt make mex} or {\tt make} in the MATLAB directory
382-(or just use {\tt amd\_make.m} inside MATLAB.
383-
384 If you are including AMD as a subset of a larger library and do not want
385 to link the C standard I/O library, or if you simply do not need to use
386 them, you can safely remove the {\tt amd\_control.c} and {\tt amd\_info.c}
387@@ -776,422 +768,7 @@
388 and gives details on their use.
389
390 {\footnotesize
391-\begin{verbatim}
392-
393-/* ========================================================================= */
394-/* === AMD: approximate minimum degree ordering =========================== */
395-/* ========================================================================= */
396-
397-/* ------------------------------------------------------------------------- */
398-/* AMD Version 2.2, Copyright (c) 2007 by Timothy A. Davis, */
399-/* Patrick R. Amestoy, and Iain S. Duff. See ../README.txt for License. */
400-/* email: davis at cise.ufl.edu CISE Department, Univ. of Florida. */
401-/* web: http://www.cise.ufl.edu/research/sparse/amd */
402-/* ------------------------------------------------------------------------- */
403-
404-/* AMD finds a symmetric ordering P of a matrix A so that the Cholesky
405- * factorization of P*A*P' has fewer nonzeros and takes less work than the
406- * Cholesky factorization of A. If A is not symmetric, then it performs its
407- * ordering on the matrix A+A'. Two sets of user-callable routines are
408- * provided, one for int integers and the other for UF_long integers.
409- *
410- * The method is based on the approximate minimum degree algorithm, discussed
411- * in Amestoy, Davis, and Duff, "An approximate degree ordering algorithm",
412- * SIAM Journal of Matrix Analysis and Applications, vol. 17, no. 4, pp.
413- * 886-905, 1996. This package can perform both the AMD ordering (with
414- * aggressive absorption), and the AMDBAR ordering (without aggressive
415- * absorption) discussed in the above paper. This package differs from the
416- * Fortran codes discussed in the paper:
417- *
418- * (1) it can ignore "dense" rows and columns, leading to faster run times
419- * (2) it computes the ordering of A+A' if A is not symmetric
420- * (3) it is followed by a depth-first post-ordering of the assembly tree
421- * (or supernodal elimination tree)
422- *
423- * For historical reasons, the Fortran versions, amd.f and amdbar.f, have
424- * been left (nearly) unchanged. They compute the identical ordering as
425- * described in the above paper.
426- */
427-
428-#ifndef AMD_H
429-#define AMD_H
430-
431-/* make it easy for C++ programs to include AMD */
432-#ifdef __cplusplus
433-extern "C" {
434-#endif
435-
436-/* get the definition of size_t: */
437-#include <stddef.h>
438-
439-/* define UF_long */
440-#include "UFconfig.h"
441-
442-int amd_order /* returns AMD_OK, AMD_OK_BUT_JUMBLED,
443- * AMD_INVALID, or AMD_OUT_OF_MEMORY */
444-(
445- int n, /* A is n-by-n. n must be >= 0. */
446- const int Ap [ ], /* column pointers for A, of size n+1 */
447- const int Ai [ ], /* row indices of A, of size nz = Ap [n] */
448- int P [ ], /* output permutation, of size n */
449- double Control [ ], /* input Control settings, of size AMD_CONTROL */
450- double Info [ ] /* output Info statistics, of size AMD_INFO */
451-) ;
452-
453-UF_long amd_l_order /* see above for description of arguments */
454-(
455- UF_long n,
456- const UF_long Ap [ ],
457- const UF_long Ai [ ],
458- UF_long P [ ],
459- double Control [ ],
460- double Info [ ]
461-) ;
462-
463-/* Input arguments (not modified):
464- *
465- * n: the matrix A is n-by-n.
466- * Ap: an int/UF_long array of size n+1, containing column pointers of A.
467- * Ai: an int/UF_long array of size nz, containing the row indices of A,
468- * where nz = Ap [n].
469- * Control: a double array of size AMD_CONTROL, containing control
470- * parameters. Defaults are used if Control is NULL.
471- *
472- * Output arguments (not defined on input):
473- *
474- * P: an int/UF_long array of size n, containing the output permutation. If
475- * row i is the kth pivot row, then P [k] = i. In MATLAB notation,
476- * the reordered matrix is A (P,P).
477- * Info: a double array of size AMD_INFO, containing statistical
478- * information. Ignored if Info is NULL.
479- *
480- * On input, the matrix A is stored in column-oriented form. The row indices
481- * of nonzero entries in column j are stored in Ai [Ap [j] ... Ap [j+1]-1].
482- *
483- * If the row indices appear in ascending order in each column, and there
484- * are no duplicate entries, then amd_order is slightly more efficient in
485- * terms of time and memory usage. If this condition does not hold, a copy
486- * of the matrix is created (where these conditions do hold), and the copy is
487- * ordered. This feature is new to v2.0 (v1.2 and earlier required this
488- * condition to hold for the input matrix).
489- *
490- * Row indices must be in the range 0 to
491- * n-1. Ap [0] must be zero, and thus nz = Ap [n] is the number of nonzeros
492- * in A. The array Ap is of size n+1, and the array Ai is of size nz = Ap [n].
493- * The matrix does not need to be symmetric, and the diagonal does not need to
494- * be present (if diagonal entries are present, they are ignored except for
495- * the output statistic Info [AMD_NZDIAG]). The arrays Ai and Ap are not
496- * modified. This form of the Ap and Ai arrays to represent the nonzero
497- * pattern of the matrix A is the same as that used internally by MATLAB.
498- * If you wish to use a more flexible input structure, please see the
499- * umfpack_*_triplet_to_col routines in the UMFPACK package, at
500- * http://www.cise.ufl.edu/research/sparse/umfpack.
501- *
502- * Restrictions: n >= 0. Ap [0] = 0. Ap [j] <= Ap [j+1] for all j in the
503- * range 0 to n-1. nz = Ap [n] >= 0. Ai [0..nz-1] must be in the range 0
504- * to n-1. Finally, Ai, Ap, and P must not be NULL. If any of these
505- * restrictions are not met, AMD returns AMD_INVALID.
506- *
507- * AMD returns:
508- *
509- * AMD_OK if the matrix is valid and sufficient memory can be allocated to
510- * perform the ordering.
511- *
512- * AMD_OUT_OF_MEMORY if not enough memory can be allocated.
513- *
514- * AMD_INVALID if the input arguments n, Ap, Ai are invalid, or if P is
515- * NULL.
516- *
517- * AMD_OK_BUT_JUMBLED if the matrix had unsorted columns, and/or duplicate
518- * entries, but was otherwise valid.
519- *
520- * The AMD routine first forms the pattern of the matrix A+A', and then
521- * computes a fill-reducing ordering, P. If P [k] = i, then row/column i of
522- * the original is the kth pivotal row. In MATLAB notation, the permuted
523- * matrix is A (P,P), except that 0-based indexing is used instead of the
524- * 1-based indexing in MATLAB.
525- *
526- * The Control array is used to set various parameters for AMD. If a NULL
527- * pointer is passed, default values are used. The Control array is not
528- * modified.
529- *
530- * Control [AMD_DENSE]: controls the threshold for "dense" rows/columns.
531- * A dense row/column in A+A' can cause AMD to spend a lot of time in
532- * ordering the matrix. If Control [AMD_DENSE] >= 0, rows/columns
533- * with more than Control [AMD_DENSE] * sqrt (n) entries are ignored
534- * during the ordering, and placed last in the output order. The
535- * default value of Control [AMD_DENSE] is 10. If negative, no
536- * rows/columns are treated as "dense". Rows/columns with 16 or
537- * fewer off-diagonal entries are never considered "dense".
538- *
539- * Control [AMD_AGGRESSIVE]: controls whether or not to use aggressive
540- * absorption, in which a prior element is absorbed into the current
541- * element if is a subset of the current element, even if it is not
542- * adjacent to the current pivot element (refer to Amestoy, Davis,
543- * & Duff, 1996, for more details). The default value is nonzero,
544- * which means to perform aggressive absorption. This nearly always
545- * leads to a better ordering (because the approximate degrees are
546- * more accurate) and a lower execution time. There are cases where
547- * it can lead to a slightly worse ordering, however. To turn it off,
548- * set Control [AMD_AGGRESSIVE] to 0.
549- *
550- * Control [2..4] are not used in the current version, but may be used in
551- * future versions.
552- *
553- * The Info array provides statistics about the ordering on output. If it is
554- * not present, the statistics are not returned. This is not an error
555- * condition.
556- *
557- * Info [AMD_STATUS]: the return value of AMD, either AMD_OK,
558- * AMD_OK_BUT_JUMBLED, AMD_OUT_OF_MEMORY, or AMD_INVALID.
559- *
560- * Info [AMD_N]: n, the size of the input matrix
561- *
562- * Info [AMD_NZ]: the number of nonzeros in A, nz = Ap [n]
563- *
564- * Info [AMD_SYMMETRY]: the symmetry of the matrix A. It is the number
565- * of "matched" off-diagonal entries divided by the total number of
566- * off-diagonal entries. An entry A(i,j) is matched if A(j,i) is also
567- * an entry, for any pair (i,j) for which i != j. In MATLAB notation,
568- * S = spones (A) ;
569- * B = tril (S, -1) + triu (S, 1) ;
570- * symmetry = nnz (B & B') / nnz (B) ;
571- *
572- * Info [AMD_NZDIAG]: the number of entries on the diagonal of A.
573- *
574- * Info [AMD_NZ_A_PLUS_AT]: the number of nonzeros in A+A', excluding the
575- * diagonal. If A is perfectly symmetric (Info [AMD_SYMMETRY] = 1)
576- * with a fully nonzero diagonal, then Info [AMD_NZ_A_PLUS_AT] = nz-n
577- * (the smallest possible value). If A is perfectly unsymmetric
578- * (Info [AMD_SYMMETRY] = 0, for an upper triangular matrix, for
579- * example) with no diagonal, then Info [AMD_NZ_A_PLUS_AT] = 2*nz
580- * (the largest possible value).
581- *
582- * Info [AMD_NDENSE]: the number of "dense" rows/columns of A+A' that were
583- * removed from A prior to ordering. These are placed last in the
584- * output order P.
585- *
586- * Info [AMD_MEMORY]: the amount of memory used by AMD, in bytes. In the
587- * current version, this is 1.2 * Info [AMD_NZ_A_PLUS_AT] + 9*n
588- * times the size of an integer. This is at most 2.4nz + 9n. This
589- * excludes the size of the input arguments Ai, Ap, and P, which have
590- * a total size of nz + 2*n + 1 integers.
591- *
592- * Info [AMD_NCMPA]: the number of garbage collections performed.
593- *
594- * Info [AMD_LNZ]: the number of nonzeros in L (excluding the diagonal).
595- * This is a slight upper bound because mass elimination is combined
596- * with the approximate degree update. It is a rough upper bound if
597- * there are many "dense" rows/columns. The rest of the statistics,
598- * below, are also slight or rough upper bounds, for the same reasons.
599- * The post-ordering of the assembly tree might also not exactly
600- * correspond to a true elimination tree postordering.
601- *
602- * Info [AMD_NDIV]: the number of divide operations for a subsequent LDL'
603- * or LU factorization of the permuted matrix A (P,P).
604- *
605- * Info [AMD_NMULTSUBS_LDL]: the number of multiply-subtract pairs for a
606- * subsequent LDL' factorization of A (P,P).
607- *
608- * Info [AMD_NMULTSUBS_LU]: the number of multiply-subtract pairs for a
609- * subsequent LU factorization of A (P,P), assuming that no numerical
610- * pivoting is required.
611- *
612- * Info [AMD_DMAX]: the maximum number of nonzeros in any column of L,
613- * including the diagonal.
614- *
615- * Info [14..19] are not used in the current version, but may be used in
616- * future versions.
617- */
618-
619-/* ------------------------------------------------------------------------- */
620-/* direct interface to AMD */
621-/* ------------------------------------------------------------------------- */
622-
623-/* amd_2 is the primary AMD ordering routine. It is not meant to be
624- * user-callable because of its restrictive inputs and because it destroys
625- * the user's input matrix. It does not check its inputs for errors, either.
626- * However, if you can work with these restrictions it can be faster than
627- * amd_order and use less memory (assuming that you can create your own copy
628- * of the matrix for AMD to destroy). Refer to AMD/Source/amd_2.c for a
629- * description of each parameter. */
630-
631-void amd_2
632-(
633- int n,
634- int Pe [ ],
635- int Iw [ ],
636- int Len [ ],
637- int iwlen,
638- int pfree,
639- int Nv [ ],
640- int Next [ ],
641- int Last [ ],
642- int Head [ ],
643- int Elen [ ],
644- int Degree [ ],
645- int W [ ],
646- double Control [ ],
647- double Info [ ]
648-) ;
649-
650-void amd_l2
651-(
652- UF_long n,
653- UF_long Pe [ ],
654- UF_long Iw [ ],
655- UF_long Len [ ],
656- UF_long iwlen,
657- UF_long pfree,
658- UF_long Nv [ ],
659- UF_long Next [ ],
660- UF_long Last [ ],
661- UF_long Head [ ],
662- UF_long Elen [ ],
663- UF_long Degree [ ],
664- UF_long W [ ],
665- double Control [ ],
666- double Info [ ]
667-) ;
668-
669-/* ------------------------------------------------------------------------- */
670-/* amd_valid */
671-/* ------------------------------------------------------------------------- */
672-
673-/* Returns AMD_OK or AMD_OK_BUT_JUMBLED if the matrix is valid as input to
674- * amd_order; the latter is returned if the matrix has unsorted and/or
675- * duplicate row indices in one or more columns. Returns AMD_INVALID if the
676- * matrix cannot be passed to amd_order. For amd_order, the matrix must also
677- * be square. The first two arguments are the number of rows and the number
678- * of columns of the matrix. For its use in AMD, these must both equal n.
679- *
680- * NOTE: this routine returned TRUE/FALSE in v1.2 and earlier.
681- */
682-
683-int amd_valid
684-(
685- int n_row, /* # of rows */
686- int n_col, /* # of columns */
687- const int Ap [ ], /* column pointers, of size n_col+1 */
688- const int Ai [ ] /* row indices, of size Ap [n_col] */
689-) ;
690-
691-UF_long amd_l_valid
692-(
693- UF_long n_row,
694- UF_long n_col,
695- const UF_long Ap [ ],
696- const UF_long Ai [ ]
697-) ;
698-
699-/* ------------------------------------------------------------------------- */
700-/* AMD memory manager and printf routines */
701-/* ------------------------------------------------------------------------- */
702-
703-/* The user can redefine these to change the malloc, free, and printf routines
704- * that AMD uses. */
705-
706-#ifndef EXTERN
707-#define EXTERN extern
708-#endif
709-
710-EXTERN void *(*amd_malloc) (size_t) ; /* pointer to malloc */
711-EXTERN void (*amd_free) (void *) ; /* pointer to free */
712-EXTERN void *(*amd_realloc) (void *, size_t) ; /* pointer to realloc */
713-EXTERN void *(*amd_calloc) (size_t, size_t) ; /* pointer to calloc */
714-EXTERN int (*amd_printf) (const char *, ...) ; /* pointer to printf */
715-
716-/* ------------------------------------------------------------------------- */
717-/* AMD Control and Info arrays */
718-/* ------------------------------------------------------------------------- */
719-
720-/* amd_defaults: sets the default control settings */
721-void amd_defaults (double Control [ ]) ;
722-void amd_l_defaults (double Control [ ]) ;
723-
724-/* amd_control: prints the control settings */
725-void amd_control (double Control [ ]) ;
726-void amd_l_control (double Control [ ]) ;
727-
728-/* amd_info: prints the statistics */
729-void amd_info (double Info [ ]) ;
730-void amd_l_info (double Info [ ]) ;
731-
732-#define AMD_CONTROL 5 /* size of Control array */
733-#define AMD_INFO 20 /* size of Info array */
734-
735-/* contents of Control */
736-#define AMD_DENSE 0 /* "dense" if degree > Control [0] * sqrt (n) */
737-#define AMD_AGGRESSIVE 1 /* do aggressive absorption if Control [1] != 0 */
738-
739-/* default Control settings */
740-#define AMD_DEFAULT_DENSE 10.0 /* default "dense" degree 10*sqrt(n) */
741-#define AMD_DEFAULT_AGGRESSIVE 1 /* do aggressive absorption by default */
742-
743-/* contents of Info */
744-#define AMD_STATUS 0 /* return value of amd_order and amd_l_order */
745-#define AMD_N 1 /* A is n-by-n */
746-#define AMD_NZ 2 /* number of nonzeros in A */
747-#define AMD_SYMMETRY 3 /* symmetry of pattern (1 is sym., 0 is unsym.) */
748-#define AMD_NZDIAG 4 /* # of entries on diagonal */
749-#define AMD_NZ_A_PLUS_AT 5 /* nz in A+A' */
750-#define AMD_NDENSE 6 /* number of "dense" rows/columns in A */
751-#define AMD_MEMORY 7 /* amount of memory used by AMD */
752-#define AMD_NCMPA 8 /* number of garbage collections in AMD */
753-#define AMD_LNZ 9 /* approx. nz in L, excluding the diagonal */
754-#define AMD_NDIV 10 /* number of fl. point divides for LU and LDL' */
755-#define AMD_NMULTSUBS_LDL 11 /* number of fl. point (*,-) pairs for LDL' */
756-#define AMD_NMULTSUBS_LU 12 /* number of fl. point (*,-) pairs for LU */
757-#define AMD_DMAX 13 /* max nz. in any column of L, incl. diagonal */
758-
759-/* ------------------------------------------------------------------------- */
760-/* return values of AMD */
761-/* ------------------------------------------------------------------------- */
762-
763-#define AMD_OK 0 /* success */
764-#define AMD_OUT_OF_MEMORY -1 /* malloc failed, or problem too large */
765-#define AMD_INVALID -2 /* input arguments are not valid */
766-#define AMD_OK_BUT_JUMBLED 1 /* input matrix is OK for amd_order, but
767- * columns were not sorted, and/or duplicate entries were present. AMD had
768- * to do extra work before ordering the matrix. This is a warning, not an
769- * error. */
770-
771-/* ========================================================================== */
772-/* === AMD version ========================================================== */
773-/* ========================================================================== */
774-
775-/* AMD Version 1.2 and later include the following definitions.
776- * As an example, to test if the version you are using is 1.2 or later:
777- *
778- * #ifdef AMD_VERSION
779- * if (AMD_VERSION >= AMD_VERSION_CODE (1,2)) ...
780- * #endif
781- *
782- * This also works during compile-time:
783- *
784- * #if defined(AMD_VERSION) && (AMD_VERSION >= AMD_VERSION_CODE (1,2))
785- * printf ("This is version 1.2 or later\n") ;
786- * #else
787- * printf ("This is an early version\n") ;
788- * #endif
789- *
790- * Versions 1.1 and earlier of AMD do not include a #define'd version number.
791- */
792-
793-#define AMD_DATE "May 31, 2007"
794-#define AMD_VERSION_CODE(main,sub) ((main) * 1000 + (sub))
795-#define AMD_MAIN_VERSION 2
796-#define AMD_SUB_VERSION 2
797-#define AMD_SUBSUB_VERSION 0
798-#define AMD_VERSION AMD_VERSION_CODE(AMD_MAIN_VERSION,AMD_SUB_VERSION)
799-
800-#ifdef __cplusplus
801-}
802-#endif
803-
804-#endif
805-#endif
806-\end{verbatim}
807+\input{amd_h.tex}
808 }
809
810
811
812=== modified file 'AMD/Doc/ChangeLog'
813--- AMD/Doc/ChangeLog 2007-05-29 09:36:29 +0000
814+++ AMD/Doc/ChangeLog 2013-12-08 03:08:50 +0000
815@@ -1,3 +1,27 @@
816+Jun 20, 2012: verison 2.3.1
817+
818+ * minor update for Windows (removed filesep)
819+
820+Jun 1, 2012: version 2.3.0
821+
822+ * changed from UFconfig to SuiteSparse_config
823+
824+May 15, 2011: version 2.2.4
825+
826+ * minor fix to SIZE_T_MAX definition (finicky compiler workaround)
827+
828+Dec 7, 2011: version 2.2.3
829+
830+ * fixed the Makefile to better align with CFLAGS and other standards
831+
832+Jan 25, 2011: version 2.2.2
833+
834+ * minor fix to "make install"
835+
836+Nov 30, 2009: version 2.2.1
837+
838+ * added "make install" and "make uninstall"
839+
840 May 31, 2007: version 2.2.0
841
842 * port to 64-bit MATLAB
843
844=== modified file 'AMD/Doc/License'
845--- AMD/Doc/License 2007-05-29 09:36:29 +0000
846+++ AMD/Doc/License 2013-12-08 03:08:50 +0000
847@@ -34,6 +34,6 @@
848
849 Availability:
850
851- http://www.cise.ufl.edu/research/sparse/amd
852+ http://www.suitesparse.com
853
854 -------------------------------------------------------------------------------
855
856=== modified file 'AMD/Doc/Makefile'
857--- AMD/Doc/Makefile 2006-12-22 10:16:15 +0000
858+++ AMD/Doc/Makefile 2013-12-08 03:08:50 +0000
859@@ -4,7 +4,7 @@
860
861 default: dist
862
863-include ../../UFconfig/UFconfig.mk
864+include ../../SuiteSparse_config/SuiteSparse_config.mk
865
866 #------------------------------------------------------------------------------
867 # Remove all but the files in the original distribution
868@@ -22,12 +22,15 @@
869 # Create the User Guide and Quick Start Guide
870 #------------------------------------------------------------------------------
871
872-AMD_UserGuide.pdf: AMD_UserGuide.tex AMD_UserGuide.bib
873+AMD_UserGuide.pdf: AMD_UserGuide.tex AMD_UserGuide.bib ../Include/amd.h
874+ echo '\\begin{verbatim}' > amd_h.tex
875+ expand -8 ../Include/amd.h >> amd_h.tex
876+ echo '\end{verbatim}' >> amd_h.tex
877 pdflatex AMD_UserGuide
878 bibtex AMD_UserGuide
879 pdflatex AMD_UserGuide
880 pdflatex AMD_UserGuide
881
882 dist: AMD_UserGuide.pdf
883- - $(RM) *.aux *.bbl *.blg *.log *.toc
884+ - $(RM) *.aux *.bbl *.blg *.log *.toc amd_h.tex
885
886
887=== modified file 'AMD/Include/amd.h'
888--- AMD/Include/amd.h 2007-05-29 09:36:29 +0000
889+++ AMD/Include/amd.h 2013-12-08 03:08:50 +0000
890@@ -5,15 +5,14 @@
891 /* ------------------------------------------------------------------------- */
892 /* AMD Version 2.2, Copyright (c) 2007 by Timothy A. Davis, */
893 /* Patrick R. Amestoy, and Iain S. Duff. See ../README.txt for License. */
894-/* email: davis at cise.ufl.edu CISE Department, Univ. of Florida. */
895-/* web: http://www.cise.ufl.edu/research/sparse/amd */
896+/* email: DrTimothyAldenDavis@gmail.com */
897 /* ------------------------------------------------------------------------- */
898
899 /* AMD finds a symmetric ordering P of a matrix A so that the Cholesky
900 * factorization of P*A*P' has fewer nonzeros and takes less work than the
901 * Cholesky factorization of A. If A is not symmetric, then it performs its
902 * ordering on the matrix A+A'. Two sets of user-callable routines are
903- * provided, one for int integers and the other for UF_long integers.
904+ * provided, one for int integers and the other for SuiteSparse_long integers.
905 *
906 * The method is based on the approximate minimum degree algorithm, discussed
907 * in Amestoy, Davis, and Duff, "An approximate degree ordering algorithm",
908@@ -23,10 +22,10 @@
909 * absorption) discussed in the above paper. This package differs from the
910 * Fortran codes discussed in the paper:
911 *
912- * (1) it can ignore "dense" rows and columns, leading to faster run times
913- * (2) it computes the ordering of A+A' if A is not symmetric
914- * (3) it is followed by a depth-first post-ordering of the assembly tree
915- * (or supernodal elimination tree)
916+ * (1) it can ignore "dense" rows and columns, leading to faster run times
917+ * (2) it computes the ordering of A+A' if A is not symmetric
918+ * (3) it is followed by a depth-first post-ordering of the assembly tree
919+ * (or supernodal elimination tree)
920 *
921 * For historical reasons, the Fortran versions, amd.f and amdbar.f, have
922 * been left (nearly) unchanged. They compute the identical ordering as
923@@ -44,46 +43,46 @@
924 /* get the definition of size_t: */
925 #include <stddef.h>
926
927-/* define UF_long */
928-#include "UFconfig.h"
929+#include "SuiteSparse_config.h"
930
931-int amd_order /* returns AMD_OK, AMD_OK_BUT_JUMBLED,
932- * AMD_INVALID, or AMD_OUT_OF_MEMORY */
933+int amd_order /* returns AMD_OK, AMD_OK_BUT_JUMBLED,
934+ * AMD_INVALID, or AMD_OUT_OF_MEMORY */
935 (
936- int n, /* A is n-by-n. n must be >= 0. */
937- const int Ap [ ], /* column pointers for A, of size n+1 */
938- const int Ai [ ], /* row indices of A, of size nz = Ap [n] */
939- int P [ ], /* output permutation, of size n */
940- double Control [ ], /* input Control settings, of size AMD_CONTROL */
941- double Info [ ] /* output Info statistics, of size AMD_INFO */
942+ int n, /* A is n-by-n. n must be >= 0. */
943+ const int Ap [ ], /* column pointers for A, of size n+1 */
944+ const int Ai [ ], /* row indices of A, of size nz = Ap [n] */
945+ int P [ ], /* output permutation, of size n */
946+ double Control [ ], /* input Control settings, of size AMD_CONTROL */
947+ double Info [ ] /* output Info statistics, of size AMD_INFO */
948 ) ;
949
950-UF_long amd_l_order /* see above for description of arguments */
951+SuiteSparse_long amd_l_order /* see above for description of arguments */
952 (
953- UF_long n,
954- const UF_long Ap [ ],
955- const UF_long Ai [ ],
956- UF_long P [ ],
957+ SuiteSparse_long n,
958+ const SuiteSparse_long Ap [ ],
959+ const SuiteSparse_long Ai [ ],
960+ SuiteSparse_long P [ ],
961 double Control [ ],
962 double Info [ ]
963 ) ;
964
965 /* Input arguments (not modified):
966 *
967- * n: the matrix A is n-by-n.
968- * Ap: an int/UF_long array of size n+1, containing column pointers of A.
969- * Ai: an int/UF_long array of size nz, containing the row indices of A,
970- * where nz = Ap [n].
971- * Control: a double array of size AMD_CONTROL, containing control
972- * parameters. Defaults are used if Control is NULL.
973+ * n: the matrix A is n-by-n.
974+ * Ap: an int/SuiteSparse_long array of size n+1, containing column
975+ * pointers of A.
976+ * Ai: an int/SuiteSparse_long array of size nz, containing the row
977+ * indices of A, where nz = Ap [n].
978+ * Control: a double array of size AMD_CONTROL, containing control
979+ * parameters. Defaults are used if Control is NULL.
980 *
981 * Output arguments (not defined on input):
982 *
983- * P: an int/UF_long array of size n, containing the output permutation. If
984- * row i is the kth pivot row, then P [k] = i. In MATLAB notation,
985- * the reordered matrix is A (P,P).
986- * Info: a double array of size AMD_INFO, containing statistical
987- * information. Ignored if Info is NULL.
988+ * P: an int/SuiteSparse_long array of size n, containing the output
989+ * permutation. If row i is the kth pivot row, then P [k] = i. In
990+ * MATLAB notation, the reordered matrix is A (P,P).
991+ * Info: a double array of size AMD_INFO, containing statistical
992+ * information. Ignored if Info is NULL.
993 *
994 * On input, the matrix A is stored in column-oriented form. The row indices
995 * of nonzero entries in column j are stored in Ai [Ap [j] ... Ap [j+1]-1].
996@@ -105,25 +104,25 @@
997 * pattern of the matrix A is the same as that used internally by MATLAB.
998 * If you wish to use a more flexible input structure, please see the
999 * umfpack_*_triplet_to_col routines in the UMFPACK package, at
1000- * http://www.cise.ufl.edu/research/sparse/umfpack.
1001+ * http://www.suitesparse.com.
1002 *
1003 * Restrictions: n >= 0. Ap [0] = 0. Ap [j] <= Ap [j+1] for all j in the
1004- * range 0 to n-1. nz = Ap [n] >= 0. Ai [0..nz-1] must be in the range 0
1005- * to n-1. Finally, Ai, Ap, and P must not be NULL. If any of these
1006- * restrictions are not met, AMD returns AMD_INVALID.
1007+ * range 0 to n-1. nz = Ap [n] >= 0. Ai [0..nz-1] must be in the range 0
1008+ * to n-1. Finally, Ai, Ap, and P must not be NULL. If any of these
1009+ * restrictions are not met, AMD returns AMD_INVALID.
1010 *
1011 * AMD returns:
1012 *
1013- * AMD_OK if the matrix is valid and sufficient memory can be allocated to
1014- * perform the ordering.
1015- *
1016- * AMD_OUT_OF_MEMORY if not enough memory can be allocated.
1017- *
1018- * AMD_INVALID if the input arguments n, Ap, Ai are invalid, or if P is
1019- * NULL.
1020- *
1021- * AMD_OK_BUT_JUMBLED if the matrix had unsorted columns, and/or duplicate
1022- * entries, but was otherwise valid.
1023+ * AMD_OK if the matrix is valid and sufficient memory can be allocated to
1024+ * perform the ordering.
1025+ *
1026+ * AMD_OUT_OF_MEMORY if not enough memory can be allocated.
1027+ *
1028+ * AMD_INVALID if the input arguments n, Ap, Ai are invalid, or if P is
1029+ * NULL.
1030+ *
1031+ * AMD_OK_BUT_JUMBLED if the matrix had unsorted columns, and/or duplicate
1032+ * entries, but was otherwise valid.
1033 *
1034 * The AMD routine first forms the pattern of the matrix A+A', and then
1035 * computes a fill-reducing ordering, P. If P [k] = i, then row/column i of
1036@@ -135,93 +134,93 @@
1037 * pointer is passed, default values are used. The Control array is not
1038 * modified.
1039 *
1040- * Control [AMD_DENSE]: controls the threshold for "dense" rows/columns.
1041- * A dense row/column in A+A' can cause AMD to spend a lot of time in
1042- * ordering the matrix. If Control [AMD_DENSE] >= 0, rows/columns
1043- * with more than Control [AMD_DENSE] * sqrt (n) entries are ignored
1044- * during the ordering, and placed last in the output order. The
1045- * default value of Control [AMD_DENSE] is 10. If negative, no
1046- * rows/columns are treated as "dense". Rows/columns with 16 or
1047- * fewer off-diagonal entries are never considered "dense".
1048- *
1049- * Control [AMD_AGGRESSIVE]: controls whether or not to use aggressive
1050- * absorption, in which a prior element is absorbed into the current
1051- * element if is a subset of the current element, even if it is not
1052- * adjacent to the current pivot element (refer to Amestoy, Davis,
1053- * & Duff, 1996, for more details). The default value is nonzero,
1054- * which means to perform aggressive absorption. This nearly always
1055- * leads to a better ordering (because the approximate degrees are
1056- * more accurate) and a lower execution time. There are cases where
1057- * it can lead to a slightly worse ordering, however. To turn it off,
1058- * set Control [AMD_AGGRESSIVE] to 0.
1059- *
1060- * Control [2..4] are not used in the current version, but may be used in
1061- * future versions.
1062+ * Control [AMD_DENSE]: controls the threshold for "dense" rows/columns.
1063+ * A dense row/column in A+A' can cause AMD to spend a lot of time in
1064+ * ordering the matrix. If Control [AMD_DENSE] >= 0, rows/columns
1065+ * with more than Control [AMD_DENSE] * sqrt (n) entries are ignored
1066+ * during the ordering, and placed last in the output order. The
1067+ * default value of Control [AMD_DENSE] is 10. If negative, no
1068+ * rows/columns are treated as "dense". Rows/columns with 16 or
1069+ * fewer off-diagonal entries are never considered "dense".
1070+ *
1071+ * Control [AMD_AGGRESSIVE]: controls whether or not to use aggressive
1072+ * absorption, in which a prior element is absorbed into the current
1073+ * element if is a subset of the current element, even if it is not
1074+ * adjacent to the current pivot element (refer to Amestoy, Davis,
1075+ * & Duff, 1996, for more details). The default value is nonzero,
1076+ * which means to perform aggressive absorption. This nearly always
1077+ * leads to a better ordering (because the approximate degrees are
1078+ * more accurate) and a lower execution time. There are cases where
1079+ * it can lead to a slightly worse ordering, however. To turn it off,
1080+ * set Control [AMD_AGGRESSIVE] to 0.
1081+ *
1082+ * Control [2..4] are not used in the current version, but may be used in
1083+ * future versions.
1084 *
1085 * The Info array provides statistics about the ordering on output. If it is
1086 * not present, the statistics are not returned. This is not an error
1087 * condition.
1088 *
1089- * Info [AMD_STATUS]: the return value of AMD, either AMD_OK,
1090- * AMD_OK_BUT_JUMBLED, AMD_OUT_OF_MEMORY, or AMD_INVALID.
1091- *
1092- * Info [AMD_N]: n, the size of the input matrix
1093- *
1094- * Info [AMD_NZ]: the number of nonzeros in A, nz = Ap [n]
1095- *
1096- * Info [AMD_SYMMETRY]: the symmetry of the matrix A. It is the number
1097- * of "matched" off-diagonal entries divided by the total number of
1098- * off-diagonal entries. An entry A(i,j) is matched if A(j,i) is also
1099- * an entry, for any pair (i,j) for which i != j. In MATLAB notation,
1100- * S = spones (A) ;
1101- * B = tril (S, -1) + triu (S, 1) ;
1102- * symmetry = nnz (B & B') / nnz (B) ;
1103- *
1104- * Info [AMD_NZDIAG]: the number of entries on the diagonal of A.
1105- *
1106- * Info [AMD_NZ_A_PLUS_AT]: the number of nonzeros in A+A', excluding the
1107- * diagonal. If A is perfectly symmetric (Info [AMD_SYMMETRY] = 1)
1108- * with a fully nonzero diagonal, then Info [AMD_NZ_A_PLUS_AT] = nz-n
1109- * (the smallest possible value). If A is perfectly unsymmetric
1110- * (Info [AMD_SYMMETRY] = 0, for an upper triangular matrix, for
1111- * example) with no diagonal, then Info [AMD_NZ_A_PLUS_AT] = 2*nz
1112- * (the largest possible value).
1113- *
1114- * Info [AMD_NDENSE]: the number of "dense" rows/columns of A+A' that were
1115- * removed from A prior to ordering. These are placed last in the
1116- * output order P.
1117- *
1118- * Info [AMD_MEMORY]: the amount of memory used by AMD, in bytes. In the
1119- * current version, this is 1.2 * Info [AMD_NZ_A_PLUS_AT] + 9*n
1120- * times the size of an integer. This is at most 2.4nz + 9n. This
1121- * excludes the size of the input arguments Ai, Ap, and P, which have
1122- * a total size of nz + 2*n + 1 integers.
1123- *
1124- * Info [AMD_NCMPA]: the number of garbage collections performed.
1125- *
1126- * Info [AMD_LNZ]: the number of nonzeros in L (excluding the diagonal).
1127- * This is a slight upper bound because mass elimination is combined
1128- * with the approximate degree update. It is a rough upper bound if
1129- * there are many "dense" rows/columns. The rest of the statistics,
1130- * below, are also slight or rough upper bounds, for the same reasons.
1131- * The post-ordering of the assembly tree might also not exactly
1132- * correspond to a true elimination tree postordering.
1133- *
1134- * Info [AMD_NDIV]: the number of divide operations for a subsequent LDL'
1135- * or LU factorization of the permuted matrix A (P,P).
1136- *
1137- * Info [AMD_NMULTSUBS_LDL]: the number of multiply-subtract pairs for a
1138- * subsequent LDL' factorization of A (P,P).
1139- *
1140- * Info [AMD_NMULTSUBS_LU]: the number of multiply-subtract pairs for a
1141- * subsequent LU factorization of A (P,P), assuming that no numerical
1142- * pivoting is required.
1143- *
1144- * Info [AMD_DMAX]: the maximum number of nonzeros in any column of L,
1145- * including the diagonal.
1146- *
1147- * Info [14..19] are not used in the current version, but may be used in
1148- * future versions.
1149+ * Info [AMD_STATUS]: the return value of AMD, either AMD_OK,
1150+ * AMD_OK_BUT_JUMBLED, AMD_OUT_OF_MEMORY, or AMD_INVALID.
1151+ *
1152+ * Info [AMD_N]: n, the size of the input matrix
1153+ *
1154+ * Info [AMD_NZ]: the number of nonzeros in A, nz = Ap [n]
1155+ *
1156+ * Info [AMD_SYMMETRY]: the symmetry of the matrix A. It is the number
1157+ * of "matched" off-diagonal entries divided by the total number of
1158+ * off-diagonal entries. An entry A(i,j) is matched if A(j,i) is also
1159+ * an entry, for any pair (i,j) for which i != j. In MATLAB notation,
1160+ * S = spones (A) ;
1161+ * B = tril (S, -1) + triu (S, 1) ;
1162+ * symmetry = nnz (B & B') / nnz (B) ;
1163+ *
1164+ * Info [AMD_NZDIAG]: the number of entries on the diagonal of A.
1165+ *
1166+ * Info [AMD_NZ_A_PLUS_AT]: the number of nonzeros in A+A', excluding the
1167+ * diagonal. If A is perfectly symmetric (Info [AMD_SYMMETRY] = 1)
1168+ * with a fully nonzero diagonal, then Info [AMD_NZ_A_PLUS_AT] = nz-n
1169+ * (the smallest possible value). If A is perfectly unsymmetric
1170+ * (Info [AMD_SYMMETRY] = 0, for an upper triangular matrix, for
1171+ * example) with no diagonal, then Info [AMD_NZ_A_PLUS_AT] = 2*nz
1172+ * (the largest possible value).
1173+ *
1174+ * Info [AMD_NDENSE]: the number of "dense" rows/columns of A+A' that were
1175+ * removed from A prior to ordering. These are placed last in the
1176+ * output order P.
1177+ *
1178+ * Info [AMD_MEMORY]: the amount of memory used by AMD, in bytes. In the
1179+ * current version, this is 1.2 * Info [AMD_NZ_A_PLUS_AT] + 9*n
1180+ * times the size of an integer. This is at most 2.4nz + 9n. This
1181+ * excludes the size of the input arguments Ai, Ap, and P, which have
1182+ * a total size of nz + 2*n + 1 integers.
1183+ *
1184+ * Info [AMD_NCMPA]: the number of garbage collections performed.
1185+ *
1186+ * Info [AMD_LNZ]: the number of nonzeros in L (excluding the diagonal).
1187+ * This is a slight upper bound because mass elimination is combined
1188+ * with the approximate degree update. It is a rough upper bound if
1189+ * there are many "dense" rows/columns. The rest of the statistics,
1190+ * below, are also slight or rough upper bounds, for the same reasons.
1191+ * The post-ordering of the assembly tree might also not exactly
1192+ * correspond to a true elimination tree postordering.
1193+ *
1194+ * Info [AMD_NDIV]: the number of divide operations for a subsequent LDL'
1195+ * or LU factorization of the permuted matrix A (P,P).
1196+ *
1197+ * Info [AMD_NMULTSUBS_LDL]: the number of multiply-subtract pairs for a
1198+ * subsequent LDL' factorization of A (P,P).
1199+ *
1200+ * Info [AMD_NMULTSUBS_LU]: the number of multiply-subtract pairs for a
1201+ * subsequent LU factorization of A (P,P), assuming that no numerical
1202+ * pivoting is required.
1203+ *
1204+ * Info [AMD_DMAX]: the maximum number of nonzeros in any column of L,
1205+ * including the diagonal.
1206+ *
1207+ * Info [14..19] are not used in the current version, but may be used in
1208+ * future versions.
1209 */
1210
1211 /* ------------------------------------------------------------------------- */
1212@@ -257,19 +256,19 @@
1213
1214 void amd_l2
1215 (
1216- UF_long n,
1217- UF_long Pe [ ],
1218- UF_long Iw [ ],
1219- UF_long Len [ ],
1220- UF_long iwlen,
1221- UF_long pfree,
1222- UF_long Nv [ ],
1223- UF_long Next [ ],
1224- UF_long Last [ ],
1225- UF_long Head [ ],
1226- UF_long Elen [ ],
1227- UF_long Degree [ ],
1228- UF_long W [ ],
1229+ SuiteSparse_long n,
1230+ SuiteSparse_long Pe [ ],
1231+ SuiteSparse_long Iw [ ],
1232+ SuiteSparse_long Len [ ],
1233+ SuiteSparse_long iwlen,
1234+ SuiteSparse_long pfree,
1235+ SuiteSparse_long Nv [ ],
1236+ SuiteSparse_long Next [ ],
1237+ SuiteSparse_long Last [ ],
1238+ SuiteSparse_long Head [ ],
1239+ SuiteSparse_long Elen [ ],
1240+ SuiteSparse_long Degree [ ],
1241+ SuiteSparse_long W [ ],
1242 double Control [ ],
1243 double Info [ ]
1244 ) ;
1245@@ -290,18 +289,18 @@
1246
1247 int amd_valid
1248 (
1249- int n_row, /* # of rows */
1250- int n_col, /* # of columns */
1251- const int Ap [ ], /* column pointers, of size n_col+1 */
1252- const int Ai [ ] /* row indices, of size Ap [n_col] */
1253+ int n_row, /* # of rows */
1254+ int n_col, /* # of columns */
1255+ const int Ap [ ], /* column pointers, of size n_col+1 */
1256+ const int Ai [ ] /* row indices, of size Ap [n_col] */
1257 ) ;
1258
1259-UF_long amd_l_valid
1260+SuiteSparse_long amd_l_valid
1261 (
1262- UF_long n_row,
1263- UF_long n_col,
1264- const UF_long Ap [ ],
1265- const UF_long Ai [ ]
1266+ SuiteSparse_long n_row,
1267+ SuiteSparse_long n_col,
1268+ const SuiteSparse_long Ap [ ],
1269+ const SuiteSparse_long Ai [ ]
1270 ) ;
1271
1272 /* ------------------------------------------------------------------------- */
1273@@ -315,11 +314,11 @@
1274 #define EXTERN extern
1275 #endif
1276
1277-EXTERN void *(*amd_malloc) (size_t) ; /* pointer to malloc */
1278-EXTERN void (*amd_free) (void *) ; /* pointer to free */
1279-EXTERN void *(*amd_realloc) (void *, size_t) ; /* pointer to realloc */
1280-EXTERN void *(*amd_calloc) (size_t, size_t) ; /* pointer to calloc */
1281-EXTERN int (*amd_printf) (const char *, ...) ; /* pointer to printf */
1282+EXTERN void *(*amd_malloc) (size_t) ; /* pointer to malloc */
1283+EXTERN void (*amd_free) (void *) ; /* pointer to free */
1284+EXTERN void *(*amd_realloc) (void *, size_t) ; /* pointer to realloc */
1285+EXTERN void *(*amd_calloc) (size_t, size_t) ; /* pointer to calloc */
1286+EXTERN int (*amd_printf) (const char *, ...) ; /* pointer to printf */
1287
1288 /* ------------------------------------------------------------------------- */
1289 /* AMD Control and Info arrays */
1290@@ -337,41 +336,41 @@
1291 void amd_info (double Info [ ]) ;
1292 void amd_l_info (double Info [ ]) ;
1293
1294-#define AMD_CONTROL 5 /* size of Control array */
1295-#define AMD_INFO 20 /* size of Info array */
1296+#define AMD_CONTROL 5 /* size of Control array */
1297+#define AMD_INFO 20 /* size of Info array */
1298
1299 /* contents of Control */
1300-#define AMD_DENSE 0 /* "dense" if degree > Control [0] * sqrt (n) */
1301+#define AMD_DENSE 0 /* "dense" if degree > Control [0] * sqrt (n) */
1302 #define AMD_AGGRESSIVE 1 /* do aggressive absorption if Control [1] != 0 */
1303
1304 /* default Control settings */
1305-#define AMD_DEFAULT_DENSE 10.0 /* default "dense" degree 10*sqrt(n) */
1306+#define AMD_DEFAULT_DENSE 10.0 /* default "dense" degree 10*sqrt(n) */
1307 #define AMD_DEFAULT_AGGRESSIVE 1 /* do aggressive absorption by default */
1308
1309 /* contents of Info */
1310-#define AMD_STATUS 0 /* return value of amd_order and amd_l_order */
1311-#define AMD_N 1 /* A is n-by-n */
1312-#define AMD_NZ 2 /* number of nonzeros in A */
1313-#define AMD_SYMMETRY 3 /* symmetry of pattern (1 is sym., 0 is unsym.) */
1314-#define AMD_NZDIAG 4 /* # of entries on diagonal */
1315+#define AMD_STATUS 0 /* return value of amd_order and amd_l_order */
1316+#define AMD_N 1 /* A is n-by-n */
1317+#define AMD_NZ 2 /* number of nonzeros in A */
1318+#define AMD_SYMMETRY 3 /* symmetry of pattern (1 is sym., 0 is unsym.) */
1319+#define AMD_NZDIAG 4 /* # of entries on diagonal */
1320 #define AMD_NZ_A_PLUS_AT 5 /* nz in A+A' */
1321-#define AMD_NDENSE 6 /* number of "dense" rows/columns in A */
1322-#define AMD_MEMORY 7 /* amount of memory used by AMD */
1323-#define AMD_NCMPA 8 /* number of garbage collections in AMD */
1324-#define AMD_LNZ 9 /* approx. nz in L, excluding the diagonal */
1325-#define AMD_NDIV 10 /* number of fl. point divides for LU and LDL' */
1326+#define AMD_NDENSE 6 /* number of "dense" rows/columns in A */
1327+#define AMD_MEMORY 7 /* amount of memory used by AMD */
1328+#define AMD_NCMPA 8 /* number of garbage collections in AMD */
1329+#define AMD_LNZ 9 /* approx. nz in L, excluding the diagonal */
1330+#define AMD_NDIV 10 /* number of fl. point divides for LU and LDL' */
1331 #define AMD_NMULTSUBS_LDL 11 /* number of fl. point (*,-) pairs for LDL' */
1332 #define AMD_NMULTSUBS_LU 12 /* number of fl. point (*,-) pairs for LU */
1333-#define AMD_DMAX 13 /* max nz. in any column of L, incl. diagonal */
1334+#define AMD_DMAX 13 /* max nz. in any column of L, incl. diagonal */
1335
1336 /* ------------------------------------------------------------------------- */
1337 /* return values of AMD */
1338 /* ------------------------------------------------------------------------- */
1339
1340-#define AMD_OK 0 /* success */
1341-#define AMD_OUT_OF_MEMORY -1 /* malloc failed, or problem too large */
1342-#define AMD_INVALID -2 /* input arguments are not valid */
1343-#define AMD_OK_BUT_JUMBLED 1 /* input matrix is OK for amd_order, but
1344+#define AMD_OK 0 /* success */
1345+#define AMD_OUT_OF_MEMORY -1 /* malloc failed, or problem too large */
1346+#define AMD_INVALID -2 /* input arguments are not valid */
1347+#define AMD_OK_BUT_JUMBLED 1 /* input matrix is OK for amd_order, but
1348 * columns were not sorted, and/or duplicate entries were present. AMD had
1349 * to do extra work before ordering the matrix. This is a warning, not an
1350 * error. */
1351@@ -384,25 +383,25 @@
1352 * As an example, to test if the version you are using is 1.2 or later:
1353 *
1354 * #ifdef AMD_VERSION
1355- * if (AMD_VERSION >= AMD_VERSION_CODE (1,2)) ...
1356+ * if (AMD_VERSION >= AMD_VERSION_CODE (1,2)) ...
1357 * #endif
1358 *
1359 * This also works during compile-time:
1360 *
1361- * #if defined(AMD_VERSION) && (AMD_VERSION >= AMD_VERSION_CODE (1,2))
1362- * printf ("This is version 1.2 or later\n") ;
1363- * #else
1364- * printf ("This is an early version\n") ;
1365- * #endif
1366+ * #if defined(AMD_VERSION) && (AMD_VERSION >= AMD_VERSION_CODE (1,2))
1367+ * printf ("This is version 1.2 or later\n") ;
1368+ * #else
1369+ * printf ("This is an early version\n") ;
1370+ * #endif
1371 *
1372 * Versions 1.1 and earlier of AMD do not include a #define'd version number.
1373 */
1374
1375-#define AMD_DATE "May 31, 2007"
1376+#define AMD_DATE "Jun 20, 2012"
1377 #define AMD_VERSION_CODE(main,sub) ((main) * 1000 + (sub))
1378 #define AMD_MAIN_VERSION 2
1379-#define AMD_SUB_VERSION 2
1380-#define AMD_SUBSUB_VERSION 0
1381+#define AMD_SUB_VERSION 3
1382+#define AMD_SUBSUB_VERSION 1
1383 #define AMD_VERSION AMD_VERSION_CODE(AMD_MAIN_VERSION,AMD_SUB_VERSION)
1384
1385 #ifdef __cplusplus
1386
1387=== modified file 'AMD/Include/amd_internal.h'
1388--- AMD/Include/amd_internal.h 2007-05-29 09:36:29 +0000
1389+++ AMD/Include/amd_internal.h 2013-12-08 03:08:50 +0000
1390@@ -3,10 +3,9 @@
1391 /* ========================================================================= */
1392
1393 /* ------------------------------------------------------------------------- */
1394-/* AMD, Copyright (c) Timothy A. Davis, */
1395+/* AMD, Copyright (c) Timothy A. Davis, */
1396 /* Patrick R. Amestoy, and Iain S. Duff. See ../README.txt for License. */
1397-/* email: davis at cise.ufl.edu CISE Department, Univ. of Florida. */
1398-/* web: http://www.cise.ufl.edu/research/sparse/amd */
1399+/* email: DrTimothyAldenDavis@gmail.com */
1400 /* ------------------------------------------------------------------------- */
1401
1402 /* This file is for internal use in AMD itself, and does not normally need to
1403@@ -15,17 +14,17 @@
1404 *
1405 * The following compile-time definitions affect how AMD is compiled.
1406 *
1407- * -DNPRINT
1408- *
1409- * Disable all printing. stdio.h will not be included. Printing can
1410- * be re-enabled at run-time by setting the global pointer amd_printf
1411- * to printf (or mexPrintf for a MATLAB mexFunction).
1412- *
1413- * -DNMALLOC
1414- *
1415- * No memory manager is defined at compile-time. You MUST define the
1416- * function pointers amd_malloc, amd_free, amd_realloc, and
1417- * amd_calloc at run-time for AMD to work properly.
1418+ * -DNPRINT
1419+ *
1420+ * Disable all printing. stdio.h will not be included. Printing can
1421+ * be re-enabled at run-time by setting the global pointer amd_printf
1422+ * to printf (or mexPrintf for a MATLAB mexFunction).
1423+ *
1424+ * -DNMALLOC
1425+ *
1426+ * No memory manager is defined at compile-time. You MUST define the
1427+ * function pointers amd_malloc, amd_free, amd_realloc, and
1428+ * amd_calloc at run-time for AMD to work properly.
1429 */
1430
1431 /* ========================================================================= */
1432@@ -154,21 +153,25 @@
1433
1434 /* largest value of size_t */
1435 #ifndef SIZE_T_MAX
1436+#ifdef SIZE_MAX
1437+/* C99 only */
1438+#define SIZE_T_MAX SIZE_MAX
1439+#else
1440 #define SIZE_T_MAX ((size_t) (-1))
1441 #endif
1442-
1443-/* ------------------------------------------------------------------------- */
1444-/* integer type for AMD: int or UF_long */
1445-/* ------------------------------------------------------------------------- */
1446-
1447-/* define UF_long */
1448-#include "UFconfig.h"
1449+#endif
1450+
1451+/* ------------------------------------------------------------------------- */
1452+/* integer type for AMD: int or SuiteSparse_long */
1453+/* ------------------------------------------------------------------------- */
1454+
1455+#include "amd.h"
1456
1457 #if defined (DLONG) || defined (ZLONG)
1458
1459-#define Int UF_long
1460-#define ID UF_long_id
1461-#define Int_MAX UF_long_max
1462+#define Int SuiteSparse_long
1463+#define ID SuiteSparse_long_id
1464+#define Int_MAX SuiteSparse_long_max
1465
1466 #define AMD_order amd_l_order
1467 #define AMD_defaults amd_l_defaults
1468@@ -216,12 +219,6 @@
1469 #define PRINTF(params) { if (amd_printf != NULL) (void) amd_printf params ; }
1470
1471 /* ------------------------------------------------------------------------- */
1472-/* AMD routine definitions (user-callable) */
1473-/* ------------------------------------------------------------------------- */
1474-
1475-#include "amd.h"
1476-
1477-/* ------------------------------------------------------------------------- */
1478 /* AMD routine definitions (not user-callable) */
1479 /* ------------------------------------------------------------------------- */
1480
1481
1482=== modified file 'AMD/Lib/GNUmakefile'
1483--- AMD/Lib/GNUmakefile 2007-05-29 09:36:29 +0000
1484+++ AMD/Lib/GNUmakefile 2013-12-08 03:08:50 +0000
1485@@ -2,11 +2,11 @@
1486 # AMD Makefile for compiling on Unix systems (for GNU make only)
1487 #-------------------------------------------------------------------------------
1488
1489-default: ../Lib/libamd.a
1490-
1491-include ../../UFconfig/UFconfig.mk
1492-
1493-C = $(CC) $(CFLAGS) $(CONFIG) -I../Include -I../../UFconfig
1494+default: libamd.a
1495+
1496+include ../../SuiteSparse_config/SuiteSparse_config.mk
1497+
1498+C = $(CC) $(CF) -I../Include -I../../SuiteSparse_config
1499
1500 #-------------------------------------------------------------------------------
1501 # source files
1502@@ -15,9 +15,9 @@
1503 AMD = amd_aat amd_1 amd_2 amd_dump amd_postorder amd_post_tree amd_defaults \
1504 amd_order amd_control amd_info amd_valid amd_preprocess
1505
1506-UFCONFIG = ../../UFconfig/UFconfig.h
1507+CONFIG = ../../SuiteSparse_config/SuiteSparse_config.h
1508
1509-INC = ../Include/amd.h ../Include/amd_internal.h $(UFCONFIG)
1510+INC = ../Include/amd.h ../Include/amd_internal.h $(CONFIG)
1511
1512 #-------------------------------------------------------------------------------
1513 # object files for each version
1514@@ -43,15 +43,15 @@
1515 # Create the libamd.a library (C versions only)
1516 #-------------------------------------------------------------------------------
1517
1518-../Lib/libamd.a: amd_global.o $(AMDI) $(AMDL)
1519- $(AR) ../Lib/libamd.a $^
1520- - $(RANLIB) ../Lib/libamd.a
1521+libamd.a: amd_global.o $(AMDI) $(AMDL)
1522+ $(ARCHIVE) libamd.a $^
1523+ - $(RANLIB) libamd.a
1524
1525 #-------------------------------------------------------------------------------
1526 # compile the Fortran versions and the libamdf77.a library
1527 #-------------------------------------------------------------------------------
1528
1529-fortran: ../Lib/libamdf77.a
1530+fortran: libamdf77.a
1531
1532 AMDF77 = amd.o amdbar.o
1533
1534@@ -61,9 +61,9 @@
1535 amdbar.o: ../Source/amdbar.f
1536 $(F77) $(F77FLAGS) -c ../Source/amdbar.f -o amdbar.o
1537
1538-../Lib/libamdf77.a: $(AMDF77)
1539- $(AR) ../Lib/libamdf77.a $^
1540- - $(RANLIB) ../Lib/libamdf77.a
1541+libamdf77.a: $(AMDF77)
1542+ $(ARCHIVE) libamdf77.a $^
1543+ - $(RANLIB) libamdf77.a
1544
1545 #-------------------------------------------------------------------------------
1546 # Remove all but the files in the original distribution
1547@@ -75,4 +75,4 @@
1548 purge: distclean
1549
1550 distclean: clean
1551- - $(RM) ../Lib/libamd.a ../Lib/libamdf77.a
1552+ - $(RM) libamd.a libamdf77.a
1553
1554=== modified file 'AMD/Lib/Makefile'
1555--- AMD/Lib/Makefile 2007-05-29 09:36:29 +0000
1556+++ AMD/Lib/Makefile 2013-12-08 03:08:50 +0000
1557@@ -8,9 +8,9 @@
1558
1559 default: everything
1560
1561-include ../../UFconfig/UFconfig.mk
1562+include ../../SuiteSparse_config/SuiteSparse_config.mk
1563
1564-C = $(CC) $(CFLAGS) $(CONFIG) -I../Include -I../../UFconfig
1565+C = $(CC) $(CF) -I../Include -I../../SuiteSparse_config
1566
1567 everything:
1568 $(C) -DDINT -c ../Source/amd_aat.c -o amd_i_aat.o
1569@@ -26,7 +26,7 @@
1570 $(C) -DDINT -c ../Source/amd_valid.c -o amd_i_valid.o
1571 $(C) -DDINT -c ../Source/amd_preprocess.c -o amd_i_preprocess.o
1572 $(C) -DDLONG -c ../Source/amd_aat.c -o amd_l_aat.o
1573- $(C) -DDLONG -c ../Source/amd_1.c -o ../Source/amd_l_1.o
1574+ $(C) -DDLONG -c ../Source/amd_1.c -o amd_l_1.o
1575 $(C) -DDLONG -c ../Source/amd_2.c -o amd_l_2.o
1576 $(C) -DDLONG -c ../Source/amd_dump.c -o amd_l_dump.o
1577 $(C) -DDLONG -c ../Source/amd_postorder.c -o amd_l_postorder.o
1578@@ -38,7 +38,8 @@
1579 $(C) -DDLONG -c ../Source/amd_valid.c -o amd_l_valid.o
1580 $(C) -DDLONG -c ../Source/amd_preprocess.c -o amd_l_preprocess.o
1581 $(C) -c ../Source/amd_global.c
1582- $(AR) ../Lib/libamd.a amd_i_aat.o amd_i_1.o amd_i_2.o amd_i_dump.o \
1583+ $(ARCHIVE) ../Lib/libamd.a \
1584+ amd_i_aat.o amd_i_1.o amd_i_2.o amd_i_dump.o \
1585 amd_i_postorder.o amd_i_post_tree.o amd_i_defaults.o amd_i_order.o \
1586 amd_i_control.o amd_i_info.o amd_i_valid.o amd_l_aat.o amd_l_1.o \
1587 amd_l_2.o amd_l_dump.o amd_l_postorder.o amd_l_post_tree.o \
1588@@ -53,7 +54,7 @@
1589 fortran:
1590 $(F77) $(F77FLAGS) -c ../Source/amd.f -o amd.o
1591 $(F77) $(F77FLAGS) -c ../Source/amdbar.f -o amdbar.o
1592- $(AR) ../Lib/libamdf77.a amd.o amdbar.o
1593+ $(ARCHIVE) ../Lib/libamdf77.a amd.o amdbar.o
1594 - $(RANLIB) ../Lib/libamdf77.a
1595
1596 #-------------------------------------------------------------------------------
1597
1598=== modified file 'AMD/MATLAB/Contents.m'
1599--- AMD/MATLAB/Contents.m 2007-05-29 09:36:29 +0000
1600+++ AMD/MATLAB/Contents.m 2013-12-08 03:08:50 +0000
1601@@ -13,7 +13,6 @@
1602 % Example:
1603 % p = amd2 (A) ;
1604
1605-% Copyright 1994-2007, Tim Davis, University of Florida,
1606-% Patrick R. Amestoy, and Iain S. Duff.
1607+% Copyright 1994-2007, Tim Davis, Patrick R. Amestoy, and Iain S. Duff.
1608
1609 help Contents
1610
1611=== removed file 'AMD/MATLAB/Makefile'
1612--- AMD/MATLAB/Makefile 2007-05-29 09:36:29 +0000
1613+++ AMD/MATLAB/Makefile 1970-01-01 00:00:00 +0000
1614@@ -1,34 +0,0 @@
1615-#------------------------------------------------------------------------------
1616-# Makefile for the AMD MATLAB mexFunction
1617-#------------------------------------------------------------------------------
1618-
1619-default: amd2
1620-
1621-include ../../UFconfig/UFconfig.mk
1622-
1623-AMD = ../Lib/libamd.a
1624-
1625-I = -I../Include -I../../UFconfig
1626-
1627-INC = ../Include/amd.h ../Include/amd_internal.h ../../UFconfig/UFconfig.h
1628-
1629-SRC = ../Source/amd_1.c ../Source/amd_2.c ../Source/amd_aat.c \
1630- ../Source/amd_control.c ../Source/amd_defaults.c ../Source/amd_dump.c \
1631- ../Source/amd_global.c ../Source/amd_info.c ../Source/amd_order.c \
1632- ../Source/amd_postorder.c ../Source/amd_post_tree.c \
1633- ../Source/amd_preprocess.c ../Source/amd_valid.c
1634-
1635-amd2: $(SRC) $(INC) amd_mex.c
1636- $(MEX) -DDLONG $(I) -output amd2 amd_mex.c $(SRC)
1637-
1638-#------------------------------------------------------------------------------
1639-# Remove all but the files in the original distribution
1640-#------------------------------------------------------------------------------
1641-
1642-clean:
1643- - $(RM) $(CLEAN)
1644-
1645-purge: distclean
1646-
1647-distclean: clean
1648- - $(RM) amd2.mex*
1649
1650=== modified file 'AMD/MATLAB/amd2.m'
1651--- AMD/MATLAB/amd2.m 2007-05-29 09:36:29 +0000
1652+++ AMD/MATLAB/amd2.m 2013-12-08 03:08:50 +0000
1653@@ -63,12 +63,8 @@
1654 %
1655 % See also AMD, COLMMD, COLAMD, COLPERM, SYMAMD, SYMMMD, SYMRCM.
1656
1657-% --------------------------------------------------------------------------
1658-% Copyright 1994-2007, Tim Davis, University of Florida
1659+% Copyright 1994-2012, Timothy A. Davis, http://www.suitesparse.com,
1660 % Patrick R. Amestoy, and Iain S. Duff. See ../README.txt for License.
1661-% email: davis at cise.ufl.edu CISE Department, Univ. of Florida.
1662-% web: http://www.cise.ufl.edu/research/sparse/amd
1663-% --------------------------------------------------------------------------
1664 %
1665 % Acknowledgements: This work was supported by the National Science
1666 % Foundation, under grants ASC-9111263, DMS-9223088, and CCR-0203270.
1667
1668=== modified file 'AMD/MATLAB/amd_demo.m'
1669--- AMD/MATLAB/amd_demo.m 2007-05-29 09:36:29 +0000
1670+++ AMD/MATLAB/amd_demo.m 2013-12-08 03:08:50 +0000
1671@@ -8,8 +8,7 @@
1672 %
1673 % See also: amd, amd2, amd_make
1674
1675-% Copyright 1994-2007, Tim Davis, University of Florida,
1676-% Patrick R. Amestoy, and Iain S. Duff.
1677+% Copyright 1994-2007, Tim Davis, Patrick R. Amestoy, and Iain S. Duff.
1678
1679 % This orders the same matrix as the ANSI C demo, amd_demo.c. It includes an
1680 % additional analysis of the matrix via MATLAB's symbfact routine.
1681@@ -24,9 +23,7 @@
1682
1683 n = size (A,1) ;
1684
1685-figure (1)
1686 clf
1687-hold off
1688 subplot (2,2,1) ;
1689 spy (A)
1690 title ('HB/can24 matrix') ;
1691
1692=== modified file 'AMD/MATLAB/amd_install.m'
1693--- AMD/MATLAB/amd_install.m 2007-05-29 09:36:29 +0000
1694+++ AMD/MATLAB/amd_install.m 2013-12-08 03:08:50 +0000
1695@@ -7,8 +7,7 @@
1696 %
1697 % See also amd, amd2.
1698
1699-% Copyright 1994-2007, Tim Davis, University of Florida,
1700-% Patrick R. Amestoy, and Iain S. Duff.
1701+% Copyright 1994-2007, Tim Davis, Patrick R. Amestoy, and Iain S. Duff.
1702
1703 % This orders the same matrix as the ANSI C demo, amd_demo.c. It includes an
1704
1705
1706=== modified file 'AMD/MATLAB/amd_make.m'
1707--- AMD/MATLAB/amd_make.m 2007-05-29 09:36:29 +0000
1708+++ AMD/MATLAB/amd_make.m 2013-12-08 03:08:50 +0000
1709@@ -6,8 +6,7 @@
1710 %
1711 % See also amd, amd2.
1712
1713-% Copyright 1994-2007, Tim Davis, University of Florida,
1714-% Patrick R. Amestoy, and Iain S. Duff.
1715+% Copyright 1994-2007, Tim Davis, Patrick R. Amestoy, and Iain S. Duff.
1716
1717 details = 0 ; % 1 if details of each command are to be printed
1718
1719@@ -16,13 +15,13 @@
1720 d = '-largeArrayDims' ;
1721 end
1722
1723-i = sprintf ('-I..%sInclude -I..%s..%sUFconfig', filesep, filesep, filesep) ;
1724+i = sprintf ('-I../Include -I../../SuiteSparse_config') ;
1725 cmd = sprintf ('mex -O %s -DDLONG -output amd2 %s amd_mex.c', d, i) ;
1726 files = {'amd_order', 'amd_dump', 'amd_postorder', 'amd_post_tree', ...
1727 'amd_aat', 'amd_2', 'amd_1', 'amd_defaults', 'amd_control', ...
1728 'amd_info', 'amd_valid', 'amd_global', 'amd_preprocess' } ;
1729 for i = 1 : length (files)
1730- cmd = sprintf ('%s ..%sSource%s%s.c', cmd, filesep, filesep, files {i}) ;
1731+ cmd = sprintf ('%s ../Source/%s.c', cmd, files {i}) ;
1732 end
1733 if (details)
1734 fprintf ('%s\n', cmd) ;
1735
1736=== modified file 'AMD/MATLAB/amd_mex.c'
1737--- AMD/MATLAB/amd_mex.c 2007-05-29 09:36:29 +0000
1738+++ AMD/MATLAB/amd_mex.c 2013-12-08 03:08:50 +0000
1739@@ -5,8 +5,7 @@
1740 /* ------------------------------------------------------------------------- */
1741 /* AMD, Copyright (c) Timothy A. Davis, */
1742 /* Patrick R. Amestoy, and Iain S. Duff. See ../README.txt for License. */
1743-/* email: davis at cise.ufl.edu CISE Department, Univ. of Florida. */
1744-/* web: http://www.cise.ufl.edu/research/sparse/amd */
1745+/* email: DrTimothyAldenDavis@gmail.com */
1746 /* ------------------------------------------------------------------------- */
1747
1748 /*
1749@@ -30,7 +29,7 @@
1750 #include "amd.h"
1751 #include "mex.h"
1752 #include "matrix.h"
1753-#include "UFconfig.h"
1754+#define Long SuiteSparse_long
1755
1756 void mexFunction
1757 (
1758@@ -40,7 +39,7 @@
1759 const mxArray *pargin [ ]
1760 )
1761 {
1762- UF_long i, m, n, *Ap, *Ai, *P, nc, result, spumoni, full ;
1763+ Long i, m, n, *Ap, *Ai, *P, nc, result, spumoni, full ;
1764 double *Pout, *InfoOut, Control [AMD_CONTROL], Info [AMD_INFO], *ControlIn ;
1765 mxArray *A ;
1766
1767@@ -113,7 +112,7 @@
1768 /* allocate workspace for output permutation */
1769 /* --------------------------------------------------------------------- */
1770
1771- P = mxMalloc ((n+1) * sizeof (UF_long)) ;
1772+ P = mxMalloc ((n+1) * sizeof (Long)) ;
1773
1774 /* --------------------------------------------------------------------- */
1775 /* if A is full, convert to a sparse matrix */
1776@@ -129,8 +128,8 @@
1777 }
1778 mexCallMATLAB (1, &A, 1, (mxArray **) pargin, "sparse") ;
1779 }
1780- Ap = (UF_long *) mxGetJc (A) ;
1781- Ai = (UF_long *) mxGetIr (A) ;
1782+ Ap = (Long *) mxGetJc (A) ;
1783+ Ai = (Long *) mxGetIr (A) ;
1784 if (spumoni > 0)
1785 {
1786 mexPrintf (" input matrix A has %d nonzero entries\n", Ap [n]) ;
1787
1788=== modified file 'AMD/Makefile'
1789--- AMD/Makefile 2007-05-29 09:36:29 +0000
1790+++ AMD/Makefile 2013-12-08 03:08:50 +0000
1791@@ -2,24 +2,20 @@
1792 # AMD Makefile (for GNU Make or original make)
1793 #------------------------------------------------------------------------------
1794
1795-default: demo
1796-
1797-include ../UFconfig/UFconfig.mk
1798-
1799-# Compile all C code, including the C-callable routines.
1800-# Do not compile the FORTRAN versions, or MATLAB interface.
1801-demo:
1802- ( cd Lib ; $(MAKE) )
1803- ( cd Demo ; $(MAKE) )
1804-
1805-# Compile all C code, including the C-callable routine and the mexFunctions.
1806-# Do not compile the FORTRAN versions.
1807+VERSION = 2.3.1
1808+
1809+default: all
1810+
1811+include ../SuiteSparse_config/SuiteSparse_config.mk
1812+
1813+demos: all
1814+
1815+# Compile all C code. Do not compile the FORTRAN versions.
1816 all:
1817 ( cd Lib ; $(MAKE) )
1818 ( cd Demo ; $(MAKE) )
1819- ( cd MATLAB ; $(MAKE) )
1820
1821-# compile just the C-callable libraries (not mexFunctions or Demos)
1822+# compile just the C-callable libraries (not Demos)
1823 library:
1824 ( cd Lib ; $(MAKE) )
1825
1826@@ -37,20 +33,20 @@
1827 clean:
1828 ( cd Lib ; $(MAKE) clean )
1829 ( cd Demo ; $(MAKE) clean )
1830- ( cd MATLAB ; $(MAKE) clean )
1831+ ( cd MATLAB ; $(RM) $(CLEAN) )
1832 ( cd Doc ; $(MAKE) clean )
1833
1834 # clean, and then remove compiled programs and library archives
1835 purge:
1836 ( cd Lib ; $(MAKE) purge )
1837 ( cd Demo ; $(MAKE) purge )
1838- ( cd MATLAB ; $(MAKE) purge )
1839+ ( cd MATLAB ; $(RM) $(CLEAN) ; $(RM) *.mex* )
1840 ( cd Doc ; $(MAKE) purge )
1841
1842 distclean: purge
1843
1844 # create PDF documents for the original distribution
1845-doc:
1846+docs:
1847 ( cd Doc ; $(MAKE) )
1848
1849 # get ready for distribution
1850@@ -62,6 +58,16 @@
1851
1852 lib: library
1853
1854-# compile the MATLAB mexFunction
1855-mex:
1856- ( cd MATLAB ; $(MAKE) )
1857+# install AMD
1858+install:
1859+ $(CP) Lib/libamd.a $(INSTALL_LIB)/libamd.$(VERSION).a
1860+ ( cd $(INSTALL_LIB) ; ln -sf libamd.$(VERSION).a libamd.a )
1861+ $(CP) Include/amd.h $(INSTALL_INCLUDE)
1862+ chmod 644 $(INSTALL_LIB)/libamd*
1863+ chmod 644 $(INSTALL_INCLUDE)/amd.h
1864+
1865+# uninstall AMD
1866+uninstall:
1867+ $(RM) $(INSTALL_LIB)/libamd*.a
1868+ $(RM) $(INSTALL_INCLUDE)/amd.h
1869+
1870
1871=== modified file 'AMD/README.txt'
1872--- AMD/README.txt 2007-05-29 09:36:29 +0000
1873+++ AMD/README.txt 2013-12-08 03:08:50 +0000
1874@@ -1,32 +1,30 @@
1875-AMD Version 2.2, Copyright (c) 2007 by Timothy A.
1876-Davis, Patrick R. Amestoy, and Iain S. Duff. All Rights Reserved.
1877-AMD is available under alternate licences; contact T. Davis for details.
1878+AMD, Copyright (c) 2009-2012 by Timothy A. Davis (http://www.suitesparse.com),
1879+Patrick R. Amestoy, and Iain S. Duff. All Rights Reserved. AMD is available
1880+under alternate licences; contact T. Davis for details.
1881
1882 AMD: a set of routines for permuting sparse matrices prior to
1883 factorization. Includes a version in C, a version in Fortran, and a MATLAB
1884 mexFunction.
1885
1886-Requires UFconfig, in the ../UFconfig directory relative to this directory.
1887+Requires SuiteSparse_config, in the ../SuiteSparse_config directory relative to
1888+this directory.
1889
1890 Quick start (Unix, or Windows with Cygwin):
1891
1892 To compile, test, and install AMD, you may wish to first configure the
1893- installation by editting the ../UFconfig/UFconfig.mk file. Next, cd to this
1894- directory (AMD) and type "make" (or "make lib" if you do not have MATLAB).
1895- To compile and run a demo program for the Fortran version, type
1896- "make fortran". When done, type "make clean" to remove unused *.o files
1897- (keeps the compiled libraries and demo programs). See the User Guide
1898- (Doc/AMD_UserGuide.pdf), or ../UFconfig/UFconfig.mk for more details.
1899+ installation by editting the ../SuiteSparse_config/SuiteSparse_config.mk
1900+ file. Next, cd to this directory (AMD) and type "make" (or "make lib" if
1901+ you do not have MATLAB). To compile and run a demo program for the Fortran
1902+ version, type "make fortran". When done, type "make clean" to remove
1903+ unused *.o files (keeps the compiled libraries and demo programs). See the
1904+ User Guide (Doc/AMD_UserGuide.pdf), or
1905+ ../SuiteSparse_config/SuiteSparse_config.mk for more details.
1906
1907 Quick start (for MATLAB users);
1908
1909 To compile, test, and install the AMD mexFunction, cd to the
1910 AMD/MATLAB directory and type amd_make at the MATLAB prompt.
1911
1912-If you have MATLAB 7.2 or earlier and use "make mex", you must first edit
1913-UFconfig/UFconfig.h to remove the "-largeArrayDims" option from the MEX command
1914-(or just use amd_make.m inside MATLAB).
1915-
1916 -------------------------------------------------------------------------------
1917
1918 AMD License:
1919@@ -61,7 +59,7 @@
1920
1921 Availability:
1922
1923- http://www.cise.ufl.edu/research/sparse/amd
1924+ http://www.suitesparse.com
1925
1926 -------------------------------------------------------------------------------
1927
1928@@ -78,7 +76,7 @@
1929
1930 Authors:
1931
1932- Timothy A. Davis (davis at cise.ufl.edu), University of Florida.
1933+ Timothy A. Davis (DrTimothyAldenDavis@gmail.com)
1934 Patrick R. Amestory, ENSEEIHT, Toulouse, France.
1935 Iain S. Duff, Rutherford Appleton Laboratory, UK.
1936
1937@@ -171,7 +169,7 @@
1938 amd_demo2.c C demo program for AMD, jumbled matrix
1939 amd_demo2.out output of amd_demo2.c
1940
1941- amd_l_demo.c C demo program for AMD (UF_long version)
1942+ amd_l_demo.c C demo program for AMD (long integer version)
1943 amd_l_demo.out output of amd_l_demo.c
1944
1945 amd_simple.c simple C demo program for AMD
1946
1947=== modified file 'AMD/Source/amd_1.c'
1948--- AMD/Source/amd_1.c 2007-05-29 09:36:29 +0000
1949+++ AMD/Source/amd_1.c 2013-12-08 03:08:50 +0000
1950@@ -5,8 +5,7 @@
1951 /* ------------------------------------------------------------------------- */
1952 /* AMD, Copyright (c) Timothy A. Davis, */
1953 /* Patrick R. Amestoy, and Iain S. Duff. See ../README.txt for License. */
1954-/* email: davis at cise.ufl.edu CISE Department, Univ. of Florida. */
1955-/* web: http://www.cise.ufl.edu/research/sparse/amd */
1956+/* email: DrTimothyAldenDavis@gmail.com */
1957 /* ------------------------------------------------------------------------- */
1958
1959 /* AMD_1: Construct A+A' for a sparse matrix A and perform the AMD ordering.
1960
1961=== modified file 'AMD/Source/amd_2.c'
1962--- AMD/Source/amd_2.c 2007-05-29 09:36:29 +0000
1963+++ AMD/Source/amd_2.c 2013-12-08 03:08:50 +0000
1964@@ -5,8 +5,7 @@
1965 /* ------------------------------------------------------------------------- */
1966 /* AMD, Copyright (c) Timothy A. Davis, */
1967 /* Patrick R. Amestoy, and Iain S. Duff. See ../README.txt for License. */
1968-/* email: davis at cise.ufl.edu CISE Department, Univ. of Florida. */
1969-/* web: http://www.cise.ufl.edu/research/sparse/amd */
1970+/* email: DrTimothyAldenDavis@gmail.com */
1971 /* ------------------------------------------------------------------------- */
1972
1973 /* AMD_2: performs the AMD ordering on a symmetric sparse matrix A, followed
1974@@ -120,9 +119,9 @@
1975 * ouput. Many of these functions are also provided by the Fortran
1976 * Harwell Subroutine Library routine MC47A.
1977 *
1978- * (6) both int and UF_long versions are provided. In the descriptions below
1979- * and integer is and int or UF_long depending on which version is
1980- * being used.
1981+ * (6) both int and SuiteSparse_long versions are provided. In the
1982+ * descriptions below and integer is and int or SuiteSparse_long depending
1983+ * on which version is being used.
1984
1985 **********************************************************************
1986 ***** CAUTION: ARGUMENTS ARE NOT CHECKED FOR ERRORS ON INPUT. ******
1987@@ -495,8 +494,9 @@
1988 * nvj: the number of variables in a supervariable j (= Nv [j])
1989 * nvpiv: number of pivots in current element
1990 * slenme: number of variables in variable list of pivotal variable
1991- * wbig: = INT_MAX - n for the int version, UF_long_max - n for the
1992- * UF_long version. wflg is not allowed to be >= wbig.
1993+ * wbig: = (INT_MAX - n) for the int version, (SuiteSparse_long_max - n)
1994+ * for the SuiteSparse_long version. wflg is not allowed to
1995+ * be >= wbig.
1996 * we: W [e]
1997 * wflg: used for flagging the W array. See description of Iw.
1998 * wnvi: wflg - Nv [i]
1999
2000=== modified file 'AMD/Source/amd_aat.c'
2001--- AMD/Source/amd_aat.c 2007-05-29 09:36:29 +0000
2002+++ AMD/Source/amd_aat.c 2013-12-08 03:08:50 +0000
2003@@ -5,8 +5,7 @@
2004 /* ------------------------------------------------------------------------- */
2005 /* AMD, Copyright (c) Timothy A. Davis, */
2006 /* Patrick R. Amestoy, and Iain S. Duff. See ../README.txt for License. */
2007-/* email: davis at cise.ufl.edu CISE Department, Univ. of Florida. */
2008-/* web: http://www.cise.ufl.edu/research/sparse/amd */
2009+/* email: DrTimothyAldenDavis@gmail.com */
2010 /* ------------------------------------------------------------------------- */
2011
2012 /* AMD_aat: compute the symmetry of the pattern of A, and count the number of
2013
2014=== modified file 'AMD/Source/amd_control.c'
2015--- AMD/Source/amd_control.c 2007-05-29 09:36:29 +0000
2016+++ AMD/Source/amd_control.c 2013-12-08 03:08:50 +0000
2017@@ -5,8 +5,7 @@
2018 /* ------------------------------------------------------------------------- */
2019 /* AMD, Copyright (c) Timothy A. Davis, */
2020 /* Patrick R. Amestoy, and Iain S. Duff. See ../README.txt for License. */
2021-/* email: davis at cise.ufl.edu CISE Department, Univ. of Florida. */
2022-/* web: http://www.cise.ufl.edu/research/sparse/amd */
2023+/* email: DrTimothyAldenDavis@gmail.com */
2024 /* ------------------------------------------------------------------------- */
2025
2026 /* User-callable. Prints the control parameters for AMD. See amd.h
2027
2028=== modified file 'AMD/Source/amd_defaults.c'
2029--- AMD/Source/amd_defaults.c 2007-05-29 09:36:29 +0000
2030+++ AMD/Source/amd_defaults.c 2013-12-08 03:08:50 +0000
2031@@ -5,8 +5,7 @@
2032 /* ------------------------------------------------------------------------- */
2033 /* AMD, Copyright (c) Timothy A. Davis, */
2034 /* Patrick R. Amestoy, and Iain S. Duff. See ../README.txt for License. */
2035-/* email: davis at cise.ufl.edu CISE Department, Univ. of Florida. */
2036-/* web: http://www.cise.ufl.edu/research/sparse/amd */
2037+/* email: DrTimothyAldenDavis@gmail.com */
2038 /* ------------------------------------------------------------------------- */
2039
2040 /* User-callable. Sets default control parameters for AMD. See amd.h
2041
2042=== modified file 'AMD/Source/amd_dump.c'
2043--- AMD/Source/amd_dump.c 2007-05-29 09:36:29 +0000
2044+++ AMD/Source/amd_dump.c 2013-12-08 03:08:50 +0000
2045@@ -5,8 +5,7 @@
2046 /* ------------------------------------------------------------------------- */
2047 /* AMD, Copyright (c) Timothy A. Davis, */
2048 /* Patrick R. Amestoy, and Iain S. Duff. See ../README.txt for License. */
2049-/* email: davis at cise.ufl.edu CISE Department, Univ. of Florida. */
2050-/* web: http://www.cise.ufl.edu/research/sparse/amd */
2051+/* email: DrTimothyAldenDavis@gmail.com */
2052 /* ------------------------------------------------------------------------- */
2053
2054 /* Debugging routines for AMD. Not used if NDEBUG is not defined at compile-
2055
2056=== modified file 'AMD/Source/amd_global.c'
2057--- AMD/Source/amd_global.c 2007-05-29 09:36:29 +0000
2058+++ AMD/Source/amd_global.c 2013-12-08 03:08:50 +0000
2059@@ -5,8 +5,7 @@
2060 /* ------------------------------------------------------------------------- */
2061 /* AMD, Copyright (c) Timothy A. Davis, */
2062 /* Patrick R. Amestoy, and Iain S. Duff. See ../README.txt for License. */
2063-/* email: davis at cise.ufl.edu CISE Department, Univ. of Florida. */
2064-/* web: http://www.cise.ufl.edu/research/sparse/amd */
2065+/* email: DrTimothyAldenDavis@gmail.com */
2066 /* ------------------------------------------------------------------------- */
2067
2068 #include <stdlib.h>
2069
2070=== modified file 'AMD/Source/amd_info.c'
2071--- AMD/Source/amd_info.c 2007-05-29 09:36:29 +0000
2072+++ AMD/Source/amd_info.c 2013-12-08 03:08:50 +0000
2073@@ -5,8 +5,7 @@
2074 /* ------------------------------------------------------------------------- */
2075 /* AMD, Copyright (c) Timothy A. Davis, */
2076 /* Patrick R. Amestoy, and Iain S. Duff. See ../README.txt for License. */
2077-/* email: davis at cise.ufl.edu CISE Department, Univ. of Florida. */
2078-/* web: http://www.cise.ufl.edu/research/sparse/amd */
2079+/* email: DrTimothyAldenDavis@gmail.com */
2080 /* ------------------------------------------------------------------------- */
2081
2082 /* User-callable. Prints the output statistics for AMD. See amd.h
2083
2084=== modified file 'AMD/Source/amd_order.c'
2085--- AMD/Source/amd_order.c 2007-05-29 09:36:29 +0000
2086+++ AMD/Source/amd_order.c 2013-12-08 03:08:50 +0000
2087@@ -5,8 +5,7 @@
2088 /* ------------------------------------------------------------------------- */
2089 /* AMD, Copyright (c) Timothy A. Davis, */
2090 /* Patrick R. Amestoy, and Iain S. Duff. See ../README.txt for License. */
2091-/* email: davis at cise.ufl.edu CISE Department, Univ. of Florida. */
2092-/* web: http://www.cise.ufl.edu/research/sparse/amd */
2093+/* email: DrTimothyAldenDavis@gmail.com */
2094 /* ------------------------------------------------------------------------- */
2095
2096 /* User-callable AMD minimum degree ordering routine. See amd.h for
2097
2098=== modified file 'AMD/Source/amd_post_tree.c'
2099--- AMD/Source/amd_post_tree.c 2007-05-29 09:36:29 +0000
2100+++ AMD/Source/amd_post_tree.c 2013-12-08 03:08:50 +0000
2101@@ -5,8 +5,7 @@
2102 /* ------------------------------------------------------------------------- */
2103 /* AMD, Copyright (c) Timothy A. Davis, */
2104 /* Patrick R. Amestoy, and Iain S. Duff. See ../README.txt for License. */
2105-/* email: davis at cise.ufl.edu CISE Department, Univ. of Florida. */
2106-/* web: http://www.cise.ufl.edu/research/sparse/amd */
2107+/* email: DrTimothyAldenDavis@gmail.com */
2108 /* ------------------------------------------------------------------------- */
2109
2110 /* Post-ordering of a supernodal elimination tree. */
2111
2112=== modified file 'AMD/Source/amd_postorder.c'
2113--- AMD/Source/amd_postorder.c 2007-05-29 09:36:29 +0000
2114+++ AMD/Source/amd_postorder.c 2013-12-08 03:08:50 +0000
2115@@ -5,8 +5,7 @@
2116 /* ------------------------------------------------------------------------- */
2117 /* AMD, Copyright (c) Timothy A. Davis, */
2118 /* Patrick R. Amestoy, and Iain S. Duff. See ../README.txt for License. */
2119-/* email: davis at cise.ufl.edu CISE Department, Univ. of Florida. */
2120-/* web: http://www.cise.ufl.edu/research/sparse/amd */
2121+/* email: DrTimothyAldenDavis@gmail.com */
2122 /* ------------------------------------------------------------------------- */
2123
2124 /* Perform a postordering (via depth-first search) of an assembly tree. */
2125
2126=== modified file 'AMD/Source/amd_preprocess.c'
2127--- AMD/Source/amd_preprocess.c 2007-05-29 09:36:29 +0000
2128+++ AMD/Source/amd_preprocess.c 2013-12-08 03:08:50 +0000
2129@@ -5,8 +5,7 @@
2130 /* ------------------------------------------------------------------------- */
2131 /* AMD, Copyright (c) Timothy A. Davis, */
2132 /* Patrick R. Amestoy, and Iain S. Duff. See ../README.txt for License. */
2133-/* email: davis at cise.ufl.edu CISE Department, Univ. of Florida. */
2134-/* web: http://www.cise.ufl.edu/research/sparse/amd */
2135+/* email: DrTimothyAldenDavis@gmail.com */
2136 /* ------------------------------------------------------------------------- */
2137
2138 /* Sorts, removes duplicate entries, and transposes from the nonzero pattern of
2139
2140=== modified file 'AMD/Source/amd_valid.c'
2141--- AMD/Source/amd_valid.c 2007-05-29 09:36:29 +0000
2142+++ AMD/Source/amd_valid.c 2013-12-08 03:08:50 +0000
2143@@ -5,8 +5,7 @@
2144 /* ------------------------------------------------------------------------- */
2145 /* AMD, Copyright (c) Timothy A. Davis, */
2146 /* Patrick R. Amestoy, and Iain S. Duff. See ../README.txt for License. */
2147-/* email: davis at cise.ufl.edu CISE Department, Univ. of Florida. */
2148-/* web: http://www.cise.ufl.edu/research/sparse/amd */
2149+/* email: DrTimothyAldenDavis@gmail.com */
2150 /* ------------------------------------------------------------------------- */
2151
2152 /* Check if a column-form matrix is valid or not. The matrix A is
2153
2154=== modified file 'BTF/Doc/ChangeLog'
2155--- BTF/Doc/ChangeLog 2010-04-15 10:36:16 +0000
2156+++ BTF/Doc/ChangeLog 2013-12-08 03:08:50 +0000
2157@@ -1,3 +1,19 @@
2158+Jun 1, 2012: version 1.2.0
2159+
2160+ * changed from UFconfig to SuiteSparse_config
2161+
2162+Dec 7, 2011: version 1.1.3
2163+
2164+ * fixed the Makefile to better align with CFLAGS and other standards
2165+
2166+Jan 25, 2011: version 1.1.2
2167+
2168+ * minor fix to "make install"
2169+
2170+Nov 30, 2009: version 1.1.1
2171+
2172+ * added "make install" and "make uninstall"
2173+
2174 Mar 24, 2009: version 1.1.0
2175
2176 * tabs expanded to 8 spaces; version number updated to stay in sync with KLU
2177
2178=== modified file 'BTF/Include/btf.h'
2179--- BTF/Include/btf.h 2010-04-15 10:36:16 +0000
2180+++ BTF/Include/btf.h 2013-12-08 03:08:50 +0000
2181@@ -7,7 +7,7 @@
2182 * upper triangular form.
2183 * BTF_ORDER: do both of the above (btf_maxtrans then btf_strongcomp).
2184 *
2185- * Copyright (c) 2004-2007. Tim Davis, University of Florida,
2186+ * By Tim Davis. Copyright (c) 2004-2007, University of Florida.
2187 * with support from Sandia National Laboratories. All Rights Reserved.
2188 */
2189
2190@@ -93,7 +93,7 @@
2191 extern "C" {
2192 #endif
2193
2194-#include "UFconfig.h"
2195+#include "SuiteSparse_config.h"
2196
2197 int btf_maxtrans /* returns # of columns matched */
2198 (
2199@@ -117,9 +117,10 @@
2200 int Work [ ] /* size 5*ncol */
2201 ) ;
2202
2203-/* long integer version (all "int" parameters become "UF_long") */
2204-UF_long btf_l_maxtrans (UF_long, UF_long, UF_long *, UF_long *, double,
2205- double *, UF_long *, UF_long *) ;
2206+/* long integer version (all "int" parameters become "SuiteSparse_long") */
2207+SuiteSparse_long btf_l_maxtrans (SuiteSparse_long, SuiteSparse_long,
2208+ SuiteSparse_long *, SuiteSparse_long *, double, double *,
2209+ SuiteSparse_long *, SuiteSparse_long *) ;
2210
2211
2212 /* ========================================================================== */
2213@@ -164,8 +165,9 @@
2214 int Work [ ] /* size 4n */
2215 ) ;
2216
2217-UF_long btf_l_strongcomp (UF_long, UF_long *, UF_long *, UF_long *, UF_long *,
2218- UF_long *, UF_long *) ;
2219+SuiteSparse_long btf_l_strongcomp (SuiteSparse_long, SuiteSparse_long *,
2220+ SuiteSparse_long *, SuiteSparse_long *, SuiteSparse_long *,
2221+ SuiteSparse_long *, SuiteSparse_long *) ;
2222
2223
2224 /* ========================================================================== */
2225@@ -211,8 +213,10 @@
2226 int Work [ ] /* size 5n */
2227 ) ;
2228
2229-UF_long btf_l_order (UF_long, UF_long *, UF_long *, double , double *,
2230- UF_long *, UF_long *, UF_long *, UF_long *, UF_long *) ;
2231+SuiteSparse_long btf_l_order (SuiteSparse_long, SuiteSparse_long *,
2232+ SuiteSparse_long *, double , double *, SuiteSparse_long *,
2233+ SuiteSparse_long *, SuiteSparse_long *, SuiteSparse_long *,
2234+ SuiteSparse_long *) ;
2235
2236
2237 /* ========================================================================== */
2238@@ -250,10 +254,10 @@
2239 * #endif
2240 */
2241
2242-#define BTF_DATE "Mar 24, 2009"
2243+#define BTF_DATE "Jun 1, 2012"
2244 #define BTF_VERSION_CODE(main,sub) ((main) * 1000 + (sub))
2245 #define BTF_MAIN_VERSION 1
2246-#define BTF_SUB_VERSION 1
2247+#define BTF_SUB_VERSION 2
2248 #define BTF_SUBSUB_VERSION 0
2249 #define BTF_VERSION BTF_VERSION_CODE(BTF_MAIN_VERSION,BTF_SUB_VERSION)
2250
2251
2252=== modified file 'BTF/Include/btf_internal.h'
2253--- BTF/Include/btf_internal.h 2007-05-29 09:36:29 +0000
2254+++ BTF/Include/btf_internal.h 2013-12-08 03:08:50 +0000
2255@@ -6,15 +6,15 @@
2256 #define _BTF_INTERNAL_H
2257
2258 /*
2259- * Copyright (c) 2004-2007. Tim Davis, University of Florida,
2260+ * By Tim Davis. Copyright (c) 2004-2007, University of Florida.
2261 * with support from Sandia National Laboratories. All Rights Reserved.
2262 */
2263
2264 /* Not to be included in any user program. */
2265
2266 #ifdef DLONG
2267-#define Int UF_long
2268-#define Int_id UF_long_id
2269+#define Int SuiteSparse_long
2270+#define Int_id SuiteSparse_long_id
2271 #define BTF(name) btf_l_ ## name
2272 #else
2273 #define Int int
2274
2275=== modified file 'BTF/Lib/Makefile'
2276--- BTF/Lib/Makefile 2007-05-29 09:36:29 +0000
2277+++ BTF/Lib/Makefile 2013-12-08 03:08:50 +0000
2278@@ -2,16 +2,16 @@
2279
2280 ccode: all
2281
2282-include ../../UFconfig/UFconfig.mk
2283+include ../../SuiteSparse_config/SuiteSparse_config.mk
2284
2285 # for testing only:
2286 # TEST = -DTESTING
2287
2288-C = $(CC) $(CFLAGS)
2289+C = $(CC) $(CF)
2290
2291 INC = ../Include/btf.h ../Include/btf_internal.h
2292
2293-I = -I../Include -I../../UFconfig
2294+I = -I../Include -I../../SuiteSparse_config
2295
2296 all: library
2297
2298@@ -21,8 +21,8 @@
2299 btf_l_order.o btf_l_maxtrans.o btf_l_strongcomp.o
2300
2301 libbtf.a: $(OBJ)
2302- $(AR) libbtf.a $(OBJ)
2303- $(RANLIB) libbtf.a
2304+ $(ARCHIVE) libbtf.a $(OBJ)
2305+ - $(RANLIB) libbtf.a
2306
2307 $(OBJ): $(INC)
2308
2309
2310=== modified file 'BTF/MATLAB/Contents.m'
2311--- BTF/MATLAB/Contents.m 2007-05-29 09:36:29 +0000
2312+++ BTF/MATLAB/Contents.m 2013-12-08 03:08:50 +0000
2313@@ -17,4 +17,4 @@
2314 % [p,q,r] = btf (A)
2315 % [p,r] = strongcomp (A)
2316
2317-% Copyright 2004-2007, Tim Davis, University of Florida
2318+% Copyright 2004-2007, University of Florida
2319
2320=== removed file 'BTF/MATLAB/Makefile'
2321--- BTF/MATLAB/Makefile 2007-05-29 09:36:29 +0000
2322+++ BTF/MATLAB/Makefile 1970-01-01 00:00:00 +0000
2323@@ -1,37 +0,0 @@
2324-
2325-include ../../UFconfig/UFconfig.mk
2326-
2327-I = -I../Include -I../../UFconfig
2328-
2329-MX = $(MEX) $(I) -DDLONG
2330-
2331-all: maxtrans.mexglx strongcomp.mexglx btf.mexglx
2332-
2333-recursive: strongcomp_recursive.mexglx
2334-
2335-maxtrans.mexglx: ../Source/btf_maxtrans.c ../Include/btf.h maxtrans.c \
2336- ../Include/btf_internal.h
2337- $(MX) maxtrans.c ../Source/btf_maxtrans.c
2338-
2339-strongcomp.mexglx: ../Source/btf_strongcomp.c ../Include/btf.h \
2340- strongcomp.c ../Include/btf_internal.h
2341- $(MX) strongcomp.c ../Source/btf_strongcomp.c
2342-
2343-strongcomp_recursive.mexglx: ../Source/btf_strongcomp.c ../Include/btf.h \
2344- strongcomp.c ../Include/btf_internal.h
2345- $(MX) -DRECURSIVE -output strongcomp_recursive \
2346- ../Source/btf_strongcomp.c strongcomp.c
2347-
2348-btf.mexglx: ../Source/btf_strongcomp.c ../Include/btf.h btf.c \
2349- ../Include/btf_internal.h \
2350- ../Source/btf_maxtrans.c ../Source/btf_order.c
2351- $(MX) btf.c ../Source/btf_maxtrans.c \
2352- ../Source/btf_strongcomp.c ../Source/btf_order.c
2353-
2354-distclean: purge
2355-
2356-purge: clean
2357- - $(RM) *.o *.mex*
2358-
2359-clean:
2360- - $(RM) $(CLEAN)
2361
2362=== modified file 'BTF/MATLAB/Test/btf_test.m'
2363--- BTF/MATLAB/Test/btf_test.m 2008-02-21 14:46:50 +0000
2364+++ BTF/MATLAB/Test/btf_test.m 2013-12-08 03:08:50 +0000
2365@@ -7,7 +7,7 @@
2366 % test1, test2, test3, test4, test5, test6.
2367
2368 if (nargin < 1)
2369- nmat = 800 ;
2370+ nmat = 200 ;
2371 end
2372
2373 test1 (nmat) ;
2374
2375=== modified file 'BTF/MATLAB/Test/checkbtf.m'
2376--- BTF/MATLAB/Test/checkbtf.m 2010-04-15 10:36:16 +0000
2377+++ BTF/MATLAB/Test/checkbtf.m 2013-12-08 03:08:50 +0000
2378@@ -9,7 +9,7 @@
2379 %
2380 % See also drawbtf, maxtrans, strongcomp.
2381
2382-% Copyright 2007, Timothy A. Davis, University of Florida
2383+% Copyright 2007, Timothy A. Davis, http://www.suitesparse.com
2384
2385 [m n] = size (A) ;
2386 if (m ~= n)
2387
2388=== modified file 'BTF/MATLAB/Test/test1.m'
2389--- BTF/MATLAB/Test/test1.m 2010-04-15 10:36:16 +0000
2390+++ BTF/MATLAB/Test/test1.m 2013-12-08 03:08:50 +0000
2391@@ -6,7 +6,7 @@
2392 % See also btf, maxtrans, strongcomp, dmperm, UFget,
2393 % test1, test2, test3, test4, test5.
2394
2395-% Copyright 2007, Timothy A. Davis, University of Florida
2396+% Copyright 2007, Timothy A. Davis, http://www.suitesparse.com
2397
2398 index = UFget ;
2399 % f = find (index.sprank < min (index.nrows, index.ncols)) ;
2400@@ -29,9 +29,9 @@
2401 T0 = zeros (nmat,1) ;
2402 T1 = zeros (nmat,1) ;
2403 Anz = zeros (nmat,1) ;
2404-figure (1) ;
2405 MN = zeros (nmat, 2) ;
2406 Nzdiag = zeros (nmat,1) ;
2407+clf
2408
2409 % warmup
2410 p = maxtrans (sparse (1)) ; %#ok
2411
2412=== modified file 'BTF/MATLAB/Test/test2.m'
2413--- BTF/MATLAB/Test/test2.m 2010-04-15 10:36:16 +0000
2414+++ BTF/MATLAB/Test/test2.m 2013-12-08 03:08:50 +0000
2415@@ -6,7 +6,7 @@
2416 % See also btf, maxtrans, strongcomp, dmperm, UFget,
2417 % test1, test2, test3, test4, test5.
2418
2419-% Copyright 2007, Timothy A. Davis, University of Florida
2420+% Copyright 2007, Timothy A. Davis, http://www.suitesparse.com
2421
2422 index = UFget ;
2423 f = find (index.nrows == index.ncols) ;
2424@@ -27,10 +27,9 @@
2425 T0 = zeros (nmat,1) ;
2426 T1 = zeros (nmat,1) ;
2427 Anz = zeros (nmat,1) ;
2428-figure (1) ;
2429-clf
2430 MN = zeros (nmat, 2) ;
2431 Nzdiag = zeros (nmat,1) ;
2432+clf
2433
2434 % warmup
2435 p = maxtrans (sparse (1)) ; %#ok
2436
2437=== modified file 'BTF/MATLAB/Test/test3.m'
2438--- BTF/MATLAB/Test/test3.m 2010-04-15 10:36:16 +0000
2439+++ BTF/MATLAB/Test/test3.m 2013-12-08 03:08:50 +0000
2440@@ -6,7 +6,7 @@
2441 % See also btf, maxtrans, strongcomp, dmperm, UFget,
2442 % test1, test2, test3, test4, test5.
2443
2444-% Copyright 2007, Timothy A. Davis, Univ. of Florida
2445+% Copyright 2007, Timothy A. Davis, http://www.suitesparse.com
2446
2447 doplot = 1 ;
2448 dopause = 0 ;
2449@@ -18,8 +18,6 @@
2450 f = f (i) ;
2451 clear i
2452
2453-figure (1)
2454-
2455 % short test set: seg faults, lots of blocks, lots of work, and so on:
2456 nasty = [
2457 % --- various test matrices (no seg fault, quick run time)
2458@@ -279,7 +277,6 @@
2459 singular = s1 < n ;
2460
2461 if (doplot)
2462- % figure (1)
2463 clf
2464 subplot (2,4,1)
2465 spy (A)
2466
2467=== modified file 'BTF/MATLAB/Test/test4.m'
2468--- BTF/MATLAB/Test/test4.m 2008-02-21 14:46:50 +0000
2469+++ BTF/MATLAB/Test/test4.m 2013-12-08 03:08:50 +0000
2470@@ -6,7 +6,7 @@
2471 % See also btf, maxtrans, strongcomp, dmperm, UFget,
2472 % test1, test2, test3, test4, test5.
2473
2474-% Copyright 2007, Timothy A. Davis, University of Florida
2475+% Copyright 2007, Timothy A. Davis, http://www.suitesparse.com
2476
2477 index = UFget ;
2478 f = find (index.nrows == index.ncols) ;
2479
2480=== modified file 'BTF/MATLAB/Test/test5.m'
2481--- BTF/MATLAB/Test/test5.m 2008-02-21 14:46:50 +0000
2482+++ BTF/MATLAB/Test/test5.m 2013-12-08 03:08:50 +0000
2483@@ -6,7 +6,7 @@
2484 % See also btf, maxtrans, strongcomp, dmperm, UFget,
2485 % test1, test2, test3, test4, test5.
2486
2487-% Copyright 2007, Timothy A. Davis, University of Florida
2488+% Copyright 2007, Timothy A. Davis, http://www.suitesparse.com
2489
2490 index = UFget ;
2491
2492
2493=== modified file 'BTF/MATLAB/Test/test6.m'
2494--- BTF/MATLAB/Test/test6.m 2008-02-21 14:46:50 +0000
2495+++ BTF/MATLAB/Test/test6.m 2013-12-08 03:08:50 +0000
2496@@ -6,7 +6,7 @@
2497 % See also btf, maxtrans, strongcomp, dmperm, UFget,
2498 % test1, test2, test3, test4, test5.
2499
2500-% Copyright 2007, Timothy A. Davis, University of Florida
2501+% Copyright 2007, Timothy A. Davis, http://www.suitesparse.com
2502
2503 quick2 = [ ...
2504 1522 -272 1463 1521 460 1507 -838 1533 -1533 -1456 -1512 734 211 ...
2505
2506=== modified file 'BTF/MATLAB/btf.c'
2507--- BTF/MATLAB/btf.c 2010-04-15 10:36:16 +0000
2508+++ BTF/MATLAB/btf.c 2013-12-08 03:08:50 +0000
2509@@ -33,7 +33,7 @@
2510 * work performed, or -1 if the maximum work limit is reached (in which case
2511 * the maximum matching might not have been found).
2512 *
2513- * Copyright (c) 2004-2007. Tim Davis, University of Florida,
2514+ * By Tim Davis. Copyright (c) 2004-2007, University of Florida.
2515 * with support from Sandia National Laboratories. All Rights Reserved.
2516 *
2517 * See also maxtrans, strongcomp, dmperm
2518@@ -43,6 +43,7 @@
2519
2520 #include "mex.h"
2521 #include "btf.h"
2522+#define Long SuiteSparse_long
2523
2524 void mexFunction
2525 (
2526@@ -53,7 +54,7 @@
2527 )
2528 {
2529 double work, maxwork ;
2530- UF_long b, n, k, *Ap, *Ai, *P, *R, nblocks, *Work, *Q, nmatch ;
2531+ Long b, n, k, *Ap, *Ai, *P, *R, nblocks, *Work, *Q, nmatch ;
2532 double *Px, *Rx, *Qx, *w ;
2533
2534 /* ---------------------------------------------------------------------- */
2535@@ -71,16 +72,16 @@
2536 }
2537
2538 /* get sparse matrix A */
2539- Ap = (UF_long *) mxGetJc (pargin [0]) ;
2540- Ai = (UF_long *) mxGetIr (pargin [0]) ;
2541+ Ap = (Long *) mxGetJc (pargin [0]) ;
2542+ Ai = (Long *) mxGetIr (pargin [0]) ;
2543
2544 /* get output arrays */
2545- Q = mxMalloc (n * sizeof (UF_long)) ;
2546- P = mxMalloc (n * sizeof (UF_long)) ;
2547- R = mxMalloc ((n+1) * sizeof (UF_long)) ;
2548+ Q = mxMalloc (n * sizeof (Long)) ;
2549+ P = mxMalloc (n * sizeof (Long)) ;
2550+ R = mxMalloc ((n+1) * sizeof (Long)) ;
2551
2552 /* get workspace */
2553- Work = mxMalloc (5*n * sizeof (UF_long)) ;
2554+ Work = mxMalloc (5*n * sizeof (Long)) ;
2555
2556 maxwork = 0 ;
2557 if (nargin > 1)
2558
2559=== modified file 'BTF/MATLAB/btf.m'
2560--- BTF/MATLAB/btf.m 2010-04-15 10:36:16 +0000
2561+++ BTF/MATLAB/btf.m 2013-12-08 03:08:50 +0000
2562@@ -32,7 +32,7 @@
2563 %
2564 % See also maxtrans, strongcomp, dmperm, sprank
2565
2566-% Copyright 2004-2007, Tim Davis, University of Florida
2567+% Copyright 2004-2007, University of Florida
2568 % with support from Sandia National Laboratories. All Rights Reserved.
2569
2570 error ('btf mexFunction not found') ;
2571
2572=== modified file 'BTF/MATLAB/btf_demo.m'
2573--- BTF/MATLAB/btf_demo.m 2007-05-29 09:36:29 +0000
2574+++ BTF/MATLAB/btf_demo.m 2013-12-08 03:08:50 +0000
2575@@ -5,12 +5,11 @@
2576 %
2577 % See also btf, dmperm, strongcomp, maxtrans
2578
2579-% Copyright 2004-2007, Tim Davis, University of Florida
2580+% Copyright 2004-2007, University of Florida
2581
2582 load west0479 ;
2583 A = west0479 ;
2584
2585-figure (1)
2586 clf
2587
2588 subplot (2,3,1) ;
2589
2590=== modified file 'BTF/MATLAB/btf_install.m'
2591--- BTF/MATLAB/btf_install.m 2007-05-29 09:36:29 +0000
2592+++ BTF/MATLAB/btf_install.m 2013-12-08 03:08:50 +0000
2593@@ -7,7 +7,7 @@
2594 %
2595 % See also btf, maxtrans, stroncomp, dmperm.
2596
2597-% Copyright 2004-2007, Tim Davis, University of Florida
2598+% Copyright 2004-2007, University of Florida
2599
2600 btf_make
2601 addpath (pwd) ;
2602
2603=== modified file 'BTF/MATLAB/btf_make.m'
2604--- BTF/MATLAB/btf_make.m 2010-04-15 10:36:16 +0000
2605+++ BTF/MATLAB/btf_make.m 2013-12-08 03:08:50 +0000
2606@@ -7,11 +7,11 @@
2607 %
2608 % See also btf, maxtrans, stroncomp, dmperm.
2609
2610-% Copyright 2004-2007, Tim Davis, University of Florida
2611+% Copyright 2004-2007, University of Florida
2612
2613 details = 0 ; % if 1, print details of each command
2614
2615-mexcmd = 'mex -O -DDLONG -I../Include -I../../UFconfig ' ;
2616+mexcmd = 'mex -O -DDLONG -I../Include -I../../SuiteSparse_config ' ;
2617 if (~isempty (strfind (computer, '64')))
2618 mexcmd = [mexcmd '-largeArrayDims '] ;
2619 end
2620
2621=== modified file 'BTF/MATLAB/drawbtf.m'
2622--- BTF/MATLAB/drawbtf.m 2010-04-15 10:36:16 +0000
2623+++ BTF/MATLAB/drawbtf.m 2013-12-08 03:08:50 +0000
2624@@ -9,7 +9,7 @@
2625 %
2626 % See also btf, maxtrans, strongcomp, dmperm.
2627
2628-% Copyright 2004-2007, Tim Davis, University of Florida
2629+% Copyright 2004-2007, University of Florida
2630
2631 nblocks = length (r) - 1 ;
2632
2633
2634=== modified file 'BTF/MATLAB/maxtrans.c'
2635--- BTF/MATLAB/maxtrans.c 2010-04-15 10:36:16 +0000
2636+++ BTF/MATLAB/maxtrans.c 2013-12-08 03:08:50 +0000
2637@@ -19,7 +19,7 @@
2638 * work performed, or -1 if the maximum work limit is reached (in which case
2639 * the maximum matching might not have been found).
2640 *
2641- * Copyright (c) 2004-2007. Tim Davis, University of Florida,
2642+ * By Tim Davis. Copyright (c) 2004-2007, University of Florida.
2643 * with support from Sandia National Laboratories. All Rights Reserved.
2644 */
2645
2646@@ -27,6 +27,7 @@
2647
2648 #include "mex.h"
2649 #include "btf.h"
2650+#define Long SuiteSparse_long
2651
2652 void mexFunction
2653 (
2654@@ -37,7 +38,7 @@
2655 )
2656 {
2657 double maxwork, work ;
2658- UF_long nrow, ncol, i, *Ap, *Ai, *Match, nmatch, *Work ;
2659+ Long nrow, ncol, i, *Ap, *Ai, *Match, nmatch, *Work ;
2660 double *Matchx, *w ;
2661
2662 /* ---------------------------------------------------------------------- */
2663@@ -56,14 +57,14 @@
2664 }
2665
2666 /* get sparse matrix A */
2667- Ap = (UF_long *) mxGetJc (pargin [0]) ;
2668- Ai = (UF_long *) mxGetIr (pargin [0]) ;
2669+ Ap = (Long *) mxGetJc (pargin [0]) ;
2670+ Ai = (Long *) mxGetIr (pargin [0]) ;
2671
2672 /* get output array */
2673- Match = mxMalloc (nrow * sizeof (UF_long)) ;
2674+ Match = mxMalloc (nrow * sizeof (Long)) ;
2675
2676 /* get workspace of size 5n (recursive version needs only 2n) */
2677- Work = mxMalloc (5*ncol * sizeof (UF_long)) ;
2678+ Work = mxMalloc (5*ncol * sizeof (Long)) ;
2679
2680 maxwork = 0 ;
2681 if (nargin > 1)
2682
2683=== modified file 'BTF/MATLAB/maxtrans.m'
2684--- BTF/MATLAB/maxtrans.m 2010-04-15 10:36:16 +0000
2685+++ BTF/MATLAB/maxtrans.m 2013-12-08 03:08:50 +0000
2686@@ -25,6 +25,6 @@
2687 %
2688 % See also: btf, strongcomp, dmperm, sprank
2689
2690-% Copyright 2004-2007, Tim Davis, University of Florida
2691+% Copyright 2004-2007, University of Florida
2692
2693 error ('maxtrans mexfunction not found') ;
2694
2695=== modified file 'BTF/MATLAB/strongcomp.c'
2696--- BTF/MATLAB/strongcomp.c 2010-04-15 10:36:16 +0000
2697+++ BTF/MATLAB/strongcomp.c 2013-12-08 03:08:50 +0000
2698@@ -47,7 +47,7 @@
2699 * diagonal that is above the main diagonal; btf always returns the matching as
2700 * the main diagonal (which will thus contain zeros).
2701 *
2702- * Copyright (c) 2004-2007. Tim Davis, University of Florida,
2703+ * By Tim Davis. Copyright (c) 2004-2007, University of Florida.
2704 * with support from Sandia National Laboratories. All Rights Reserved.
2705 *
2706 * See also maxtrans, btf, dmperm
2707@@ -57,6 +57,7 @@
2708
2709 #include "mex.h"
2710 #include "btf.h"
2711+#define Long SuiteSparse_long
2712
2713 void mexFunction
2714 (
2715@@ -66,7 +67,7 @@
2716 const mxArray *pargin[]
2717 )
2718 {
2719- UF_long b, n, i, k, j, *Ap, *Ai, *P, *R, nblocks, *Work, *Q, jj ;
2720+ Long b, n, i, k, j, *Ap, *Ai, *P, *R, nblocks, *Work, *Q, jj ;
2721 double *Px, *Rx, *Qx ;
2722
2723 /* ---------------------------------------------------------------------- */
2724@@ -85,15 +86,15 @@
2725 }
2726
2727 /* get sparse matrix A */
2728- Ap = (UF_long *) mxGetJc (pargin [0]) ;
2729- Ai = (UF_long *) mxGetIr (pargin [0]) ;
2730+ Ap = (Long *) mxGetJc (pargin [0]) ;
2731+ Ai = (Long *) mxGetIr (pargin [0]) ;
2732
2733 /* get output arrays */
2734- P = mxMalloc (n * sizeof (UF_long)) ;
2735- R = mxMalloc ((n+1) * sizeof (UF_long)) ;
2736+ P = mxMalloc (n * sizeof (Long)) ;
2737+ R = mxMalloc ((n+1) * sizeof (Long)) ;
2738
2739 /* get workspace of size 4n (recursive code only needs 2n) */
2740- Work = mxMalloc (4*n * sizeof (UF_long)) ;
2741+ Work = mxMalloc (4*n * sizeof (Long)) ;
2742
2743 /* get the input column permutation Q */
2744 if (nargin == 2)
2745@@ -104,7 +105,7 @@
2746 ("strongcomp: qin must be a permutation vector of size n") ;
2747 }
2748 Qx = mxGetPr (pargin [1]) ;
2749- Q = mxMalloc (n * sizeof (UF_long)) ;
2750+ Q = mxMalloc (n * sizeof (Long)) ;
2751 /* connvert Qin to 0-based and check validity */
2752 for (i = 0 ; i < n ; i++)
2753 {
2754@@ -126,7 +127,7 @@
2755 else
2756 {
2757 /* no input column permutation */
2758- Q = (UF_long *) NULL ;
2759+ Q = (Long *) NULL ;
2760 }
2761
2762 /* ---------------------------------------------------------------------- */
2763
2764=== modified file 'BTF/MATLAB/strongcomp.m'
2765--- BTF/MATLAB/strongcomp.m 2010-04-15 10:36:16 +0000
2766+++ BTF/MATLAB/strongcomp.m 2013-12-08 03:08:50 +0000
2767@@ -40,6 +40,6 @@
2768 %
2769 % See also btf, maxtrans, dmperm
2770
2771-% Copyright 2004-2007, Tim Davis, University of Florida
2772+% Copyright 2004-2007, University of Florida
2773
2774 error ('strongcomp mexFunction not found') ;
2775
2776=== modified file 'BTF/Makefile'
2777--- BTF/Makefile 2007-05-29 09:36:29 +0000
2778+++ BTF/Makefile 2013-12-08 03:08:50 +0000
2779@@ -1,18 +1,36 @@
2780+#------------------------------------------------------------------------------
2781+# BTF Makefile
2782+#------------------------------------------------------------------------------
2783+
2784+VERSION = 1.2.0
2785+
2786 default: library
2787
2788-include ../UFconfig/UFconfig.mk
2789+include ../SuiteSparse_config/SuiteSparse_config.mk
2790
2791 library:
2792 ( cd Lib ; $(MAKE) )
2793
2794 clean:
2795 ( cd Lib ; $(MAKE) clean )
2796+ ( cd MATLAB ; $(RM) $(CLEAN) )
2797
2798 distclean:
2799 ( cd Lib ; $(MAKE) distclean )
2800- ( cd MATLAB ; $(MAKE) distclean )
2801-
2802-mex:
2803- ( cd MATLAB ; $(MAKE) )
2804+ ( cd MATLAB ; $(RM) $(CLEAN) ; $(RM) *.mex* )
2805
2806 purge: distclean
2807+
2808+# install BTF
2809+install:
2810+ $(CP) Lib/libbtf.a $(INSTALL_LIB)/libbtf.$(VERSION).a
2811+ ( cd $(INSTALL_LIB) ; ln -sf libbtf.$(VERSION).a libbtf.a )
2812+ $(CP) Include/btf.h $(INSTALL_INCLUDE)
2813+ chmod 644 $(INSTALL_LIB)/libbtf*.a
2814+ chmod 644 $(INSTALL_INCLUDE)/btf.h
2815+
2816+# uninstall BTF
2817+uninstall:
2818+ $(RM) $(INSTALL_LIB)/libbtf*.a
2819+ $(RM) $(INSTALL_INCLUDE)/btf.h
2820+
2821
2822=== modified file 'BTF/README.txt'
2823--- BTF/README.txt 2010-04-15 10:36:16 +0000
2824+++ BTF/README.txt 2013-12-08 03:08:50 +0000
2825@@ -1,7 +1,6 @@
2826-BTF Version 1.0, May 31, 2007, by Timothy A. Davis
2827-Copyright (C) 2004-2007, University of Florida
2828+BTF, by Timothy A. Davis, Copyright (C) 2004-2012, University of Florida
2829 BTF is also available under other licenses; contact the author for details.
2830-http://www.cise.ufl.edu/research/sparse
2831+http://www.suitesparse.com
2832
2833 BTF is a software package for permuting a matrix into block upper triangular
2834 form. It includes a maximum transversal algorithm, which finds a permutation
2835@@ -11,8 +10,9 @@
2836 strongly connected components of a graph. These two methods together give the
2837 permutation to block upper triangular form.
2838
2839-Requires UFconfig, in the ../UFconfig directory relative to this directory.
2840-KLU relies on this package to permute
2841+Requires SuiteSparse_config, in the ../SuiteSparse_config directory relative to
2842+this directory. KLU relies on the BTF package to permute the matrix prior to
2843+factorization.
2844
2845 To compile the libbtf.a library, type "make". The compiled library is located
2846 in BTF/Lib/libbtf.a. Compile code that uses BTF with -IBTF/Include.
2847
2848=== modified file 'BTF/Source/btf_maxtrans.c'
2849--- BTF/Source/btf_maxtrans.c 2010-04-15 10:36:16 +0000
2850+++ BTF/Source/btf_maxtrans.c 2013-12-08 03:08:50 +0000
2851@@ -41,7 +41,7 @@
2852 * are typically structurally non-singular, maxtrans is preferred. A partial
2853 * maxtrans can still be very useful when solving a sparse linear system.
2854 *
2855- * Copyright (c) 2004-2007. Tim Davis, University of Florida,
2856+ * By Tim Davis. Copyright (c) 2004-2007, University of Florida.
2857 * with support from Sandia National Laboratories. All Rights Reserved.
2858 */
2859
2860
2861=== modified file 'BTF/Source/btf_order.c'
2862--- BTF/Source/btf_order.c 2010-04-15 10:36:16 +0000
2863+++ BTF/Source/btf_order.c 2013-12-08 03:08:50 +0000
2864@@ -22,7 +22,7 @@
2865 *
2866 * See btf.h for more details.
2867 *
2868- * Copyright (c) 2004-2007. Tim Davis, University of Florida,
2869+ * By Tim Davis. Copyright (c) 2004-2007, University of Florida.
2870 * with support from Sandia National Laboratories. All Rights Reserved.
2871 */
2872
2873
2874=== modified file 'BTF/Source/btf_strongcomp.c'
2875--- BTF/Source/btf_strongcomp.c 2010-04-15 10:36:16 +0000
2876+++ BTF/Source/btf_strongcomp.c 2013-12-08 03:08:50 +0000
2877@@ -6,7 +6,7 @@
2878 * the matrix into upper block triangular form. See btf.h for more details.
2879 * Input matrix and Q are not checked on input.
2880 *
2881- * Copyright (c) 2004-2007. Tim Davis, University of Florida,
2882+ * By Tim Davis. Copyright (c) 2004-2007, University of Florida.
2883 * with support from Sandia National Laboratories. All Rights Reserved.
2884 */
2885
2886
2887=== modified file 'CAMD/Demo/Makefile'
2888--- CAMD/Demo/Makefile 2007-05-29 09:36:29 +0000
2889+++ CAMD/Demo/Makefile 2013-12-08 03:08:50 +0000
2890@@ -4,13 +4,11 @@
2891
2892 default: camd_simple camd_demo camd_demo2 camd_l_demo
2893
2894-include ../../UFconfig/UFconfig.mk
2895-
2896-C = $(CC) $(CFLAGS) $(CONFIG) -I../Include -I../../UFconfig
2897-
2898-UFCONFIG = ../../UFconfig/UFconfig.h
2899-
2900-INC = ../Include/camd.h $(UFCONFIG)
2901+include ../../SuiteSparse_config/SuiteSparse_config.mk
2902+
2903+C = $(CC) $(CF) -I../Include -I../../SuiteSparse_config
2904+
2905+INC = ../Include/camd.h ../../SuiteSparse_config/SuiteSparse_config.h
2906
2907 library:
2908 ( cd ../Lib ; $(MAKE) )
2909@@ -55,3 +53,4 @@
2910 - $(RM) camd_l_demo my_camd_l_demo.out
2911 - $(RM) camd_demo2 my_camd_demo2.out
2912 - $(RM) camd_simple my_camd_simple.out
2913+ - $(RM) -r *.dSYM
2914
2915=== modified file 'CAMD/Demo/camd_demo.c'
2916--- CAMD/Demo/camd_demo.c 2007-05-29 09:36:29 +0000
2917+++ CAMD/Demo/camd_demo.c 2013-12-08 03:08:50 +0000
2918@@ -5,8 +5,7 @@
2919 /* ------------------------------------------------------------------------- */
2920 /* CAMD, Copyright (c) Timothy A. Davis, Yanqing Chen, */
2921 /* Patrick R. Amestoy, and Iain S. Duff. See ../README.txt for License. */
2922-/* email: davis at cise.ufl.edu CISE Department, Univ. of Florida. */
2923-/* web: http://www.cise.ufl.edu/research/sparse/camd */
2924+/* email: DrTimothyAldenDavis@gmail.com */
2925 /* ------------------------------------------------------------------------- */
2926
2927 /* A simple C main program that illustrates the use of the ANSI C interface
2928
2929=== modified file 'CAMD/Demo/camd_demo.out'
2930--- CAMD/Demo/camd_demo.out 2007-05-29 09:36:29 +0000
2931+++ CAMD/Demo/camd_demo.out 2013-12-08 03:08:50 +0000
2932@@ -1,7 +1,7 @@
2933-CAMD version 2.2, date: May 31, 2007
2934+CAMD version 2.3, date: Jun 1, 2012
2935 CAMD demo, with the 24-by-24 Harwell/Boeing matrix, can_24:
2936
2937-camd version 2.2, May 31, 2007: approximate minimum degree ordering:
2938+camd version 2.3, Jun 1, 2012: approximate minimum degree ordering:
2939 dense row parameter: 10
2940 (rows with more than max (10 * sqrt (n), 16) entries are
2941 considered "dense", and placed last in output permutation)
2942
2943=== modified file 'CAMD/Demo/camd_demo2.c'
2944--- CAMD/Demo/camd_demo2.c 2007-05-29 09:36:29 +0000
2945+++ CAMD/Demo/camd_demo2.c 2013-12-08 03:08:50 +0000
2946@@ -5,8 +5,7 @@
2947 /* ------------------------------------------------------------------------- */
2948 /* CAMD, Copyright (c) Timothy A. Davis, Yanqing Chen, */
2949 /* Patrick R. Amestoy, and Iain S. Duff. See ../README.txt for License. */
2950-/* email: davis at cise.ufl.edu CISE Department, Univ. of Florida. */
2951-/* web: http://www.cise.ufl.edu/research/sparse/camd */
2952+/* email: DrTimothyAldenDavis@gmail.com */
2953 /* ------------------------------------------------------------------------- */
2954
2955 /* A simple C main program that illustrates the use of the ANSI C interface
2956
2957=== modified file 'CAMD/Demo/camd_demo2.out'
2958--- CAMD/Demo/camd_demo2.out 2007-05-29 09:36:29 +0000
2959+++ CAMD/Demo/camd_demo2.out 2013-12-08 03:08:50 +0000
2960@@ -1,7 +1,7 @@
2961 CAMD demo, with a jumbled version of the 24-by-24
2962 Harwell/Boeing matrix, can_24:
2963
2964-camd version 2.2, May 31, 2007: approximate minimum degree ordering:
2965+camd version 2.3, Jun 1, 2012: approximate minimum degree ordering:
2966 dense row parameter: 10
2967 (rows with more than max (10 * sqrt (n), 16) entries are
2968 considered "dense", and placed last in output permutation)
2969
2970=== modified file 'CAMD/Demo/camd_l_demo.c'
2971--- CAMD/Demo/camd_l_demo.c 2007-05-29 09:36:29 +0000
2972+++ CAMD/Demo/camd_l_demo.c 2013-12-08 03:08:50 +0000
2973@@ -1,12 +1,11 @@
2974 /* ========================================================================= */
2975-/* === CAMD demo main program (UF_long integer version) ==================== */
2976+/* === CAMD demo main program (long integer version) ======================= */
2977 /* ========================================================================= */
2978
2979 /* ------------------------------------------------------------------------- */
2980 /* CAMD, Copyright (c) Timothy A. Davis, Yanqing Chen, */
2981 /* Patrick R. Amestoy, and Iain S. Duff. See ../README.txt for License. */
2982-/* email: davis at cise.ufl.edu CISE Department, Univ. of Florida. */
2983-/* web: http://www.cise.ufl.edu/research/sparse/camd */
2984+/* email: DrTimothyAldenDavis@gmail.com */
2985 /* ------------------------------------------------------------------------- */
2986
2987 /* A simple C main program that illustrates the use of the ANSI C interface
2988@@ -16,16 +15,14 @@
2989 #include "camd.h"
2990 #include <stdio.h>
2991 #include <stdlib.h>
2992-
2993-/* define UF_long */
2994-#include "UFconfig.h"
2995+#define Long SuiteSparse_long
2996
2997 int main (void)
2998 {
2999 /* The symmetric can_24 Harwell/Boeing matrix, including upper and lower
3000 * triangular parts, and the diagonal entries. Note that this matrix is
3001 * 0-based, with row and column indices in the range 0 to n-1. */
3002- UF_long n = 24, nz,
3003+ Long n = 24, nz,
3004 Ap [ ] = { 0, 9, 15, 21, 27, 33, 39, 48, 57, 61, 70, 76, 82, 88, 94, 100,
3005 106, 110, 119, 128, 137, 143, 152, 156, 160 },
3006 Ai [ ] = {
3007@@ -54,10 +51,10 @@
3008 /* column 22: */ 2, 20, 21, 22,
3009 /* column 23: */ 6, 11, 12, 23 } ;
3010
3011- UF_long P [24], Pinv [24], i, j, k, jnew, p, inew, result ;
3012+ Long P [24], Pinv [24], i, j, k, jnew, p, inew, result ;
3013 double Control [CAMD_CONTROL], Info [CAMD_INFO] ;
3014 char A [24][24] ;
3015- UF_long C [ ] = { 0, 0, 4, 0, 1, 0, 2, 2, 1, 1, 3, 4, 5, 5, 3, 4,
3016+ Long C [ ] = { 0, 0, 4, 0, 1, 0, 2, 2, 1, 1, 3, 4, 5, 5, 3, 4,
3017 5, 2, 5, 3, 4, 2, 1, 0 };
3018
3019 printf ("CAMD version %d.%d, date: %s\n", CAMD_MAIN_VERSION,
3020
3021=== modified file 'CAMD/Demo/camd_l_demo.out'
3022--- CAMD/Demo/camd_l_demo.out 2007-05-29 09:36:29 +0000
3023+++ CAMD/Demo/camd_l_demo.out 2013-12-08 03:08:50 +0000
3024@@ -1,7 +1,7 @@
3025-CAMD version 2.2, date: May 31, 2007
3026+CAMD version 2.3, date: Jun 1, 2012
3027 CAMD demo, with the 24-by-24 Harwell/Boeing matrix, can_24:
3028
3029-camd version 2.2, May 31, 2007: approximate minimum degree ordering:
3030+camd version 2.3, Jun 1, 2012: approximate minimum degree ordering:
3031 dense row parameter: 10
3032 (rows with more than max (10 * sqrt (n), 16) entries are
3033 considered "dense", and placed last in output permutation)
3034
3035=== modified file 'CAMD/Demo/camd_simple.c'
3036--- CAMD/Demo/camd_simple.c 2007-05-29 09:36:29 +0000
3037+++ CAMD/Demo/camd_simple.c 2013-12-08 03:08:50 +0000
3038@@ -1,8 +1,7 @@
3039 /* ------------------------------------------------------------------------- */
3040 /* CAMD, Copyright (c) Timothy A. Davis, Yanqing Chen, */
3041 /* Patrick R. Amestoy, and Iain S. Duff. See ../README.txt for License. */
3042-/* email: davis at cise.ufl.edu CISE Department, Univ. of Florida. */
3043-/* web: http://www.cise.ufl.edu/research/sparse/camd */
3044+/* email: DrTimothyAldenDavis@gmail.com */
3045 /* ------------------------------------------------------------------------- */
3046
3047 #include <stdio.h>
3048
3049=== modified file 'CAMD/Doc/CAMD_UserGuide.pdf'
3050Binary files CAMD/Doc/CAMD_UserGuide.pdf 2007-05-29 09:36:29 +0000 and CAMD/Doc/CAMD_UserGuide.pdf 2013-12-08 03:08:50 +0000 differ
3051=== modified file 'CAMD/Doc/CAMD_UserGuide.tex'
3052--- CAMD/Doc/CAMD_UserGuide.tex 2007-05-29 09:36:29 +0000
3053+++ CAMD/Doc/CAMD_UserGuide.tex 2013-12-08 03:08:50 +0000
3054@@ -13,16 +13,14 @@
3055 \begin{document}
3056 %------------------------------------------------------------------------------
3057
3058-\title{CAMD Version 2.2 User Guide}
3059+\title{CAMD User Guide}
3060 \author{Patrick R. Amestoy\thanks{ENSEEIHT-IRIT,
3061 2 rue Camichel 31017 Toulouse, France.
3062 email: amestoy@enseeiht.fr. http://www.enseeiht.fr/$\sim$amestoy.}
3063 \and Yanqing (Morris) Chen
3064 \and Timothy A. Davis\thanks{
3065-Dept.~of Computer and Information Science and Engineering,
3066-Univ.~of Florida, Gainesville, FL, USA.
3067-email: davis@cise.ufl.edu.
3068-http://www.cise.ufl.edu/$\sim$davis.
3069+email: DrTimothyAldenDavis@gmail.com,
3070+http://www.suitesparse.com.
3071 This work was supported by the National
3072 Science Foundation, under grants ASC-9111263, DMS-9223088, and CCR-0203270.
3073 Portions of the work were done while on sabbatical at Stanford University
3074@@ -36,7 +34,7 @@
3075 This work was supported by the EPSRC under grant GR/R46441.
3076 }}
3077
3078-\date{May 31, 2007}
3079+\date{VERSION 2.3.1, Jun 20, 2012}
3080 \maketitle
3081
3082 %------------------------------------------------------------------------------
3083@@ -48,7 +46,7 @@
3084 \end{abstract}
3085 %------------------------------------------------------------------------------
3086
3087-CAMD Version 2.2, Copyright\copyright 2007 by Timothy A. Davis,
3088+CAMD Copyright\copyright 2011 by Timothy A. Davis,
3089 Yanqing (Morris) Chen,
3090 Patrick R. Amestoy, and Iain S. Duff. All Rights Reserved.
3091 CAMD is available under alternate licences; contact T. Davis for details.
3092@@ -83,7 +81,7 @@
3093 and a notice that the code was modified is included.
3094
3095 {\bf Availability:}
3096- http://www.cise.ufl.edu/research/sparse/camd
3097+ http://www.suitesparse.com.
3098
3099 {\bf Acknowledgments:}
3100
3101@@ -183,7 +181,7 @@
3102 \section{Availability}
3103 %------------------------------------------------------------------------------
3104
3105-CAMD is available at http://www.cise.ufl.edu/research/sparse.
3106+CAMD is available at http://www.suitesparse.com.
3107 The Fortran version is available as the routine {\tt MC47} in HSL
3108 (formerly the Harwell Subroutine Library) \cite{hsl:2002}. {\tt MC47} does
3109 not include ordering constraints.
3110@@ -217,7 +215,7 @@
3111 uses several strategies, including a symmetric pivoting strategy, and
3112 will give you better results if you want to factorize an unsymmetric matrix
3113 of this type. Refer to the UMFPACK User Guide for more details, at
3114-http://www.cise.ufl.edu/research/sparse/umfpack.
3115+http://www.suitesparse.com.
3116
3117 The CAMD mexFunction is much faster than the built-in MATLAB symmetric minimum
3118 degree ordering methods, SYMAMD and SYMMMD. Its ordering quality is
3119@@ -539,7 +537,8 @@
3120 The following discussion assumes you have the {\tt make} program, either in
3121 Unix, or in Windows with Cygwin.
3122
3123-System-dependent configurations are in the {\tt ../UFconfig/UFconfig.mk}
3124+System-dependent configurations are in the
3125+{\tt ../SuiteSparse\_config/SuiteSparse\_config.mk}
3126 file. You can edit that file to customize the compilation. The default
3127 settings will work on most systems.
3128 Sample configuration files are provided
3129@@ -556,7 +555,8 @@
3130 Typing {\tt make clean} will remove all but the final compiled libraries
3131 and demo programs. Typing {\tt make purge} or {\tt make distclean}
3132 removes all files not in the original distribution.
3133-If you compile CAMD and then later change the {\tt ../UFconfig/UFconfig.mk} file
3134+If you compile CAMD and then later change the
3135+{\tt ../SuiteSparse\_config/SuiteSparse\_config.mk} file
3136 then you should type {\tt make purge} and then {\tt make} to recompile.
3137
3138 When you compile your program that uses the C-callable CAMD library,
3139@@ -572,11 +572,6 @@
3140 This works on any system with MATLAB, including Windows.
3141 Alternately, type {\tt make} in the {\tt CAMD/MATLAB} directory.
3142
3143-If you have MATLAB 7.2 or earlier, you must first edit UFconfig/UFconfig.h to
3144-remove the "-largeArrayDims" option from the MEX command, prior to
3145-{\tt make mex} or {\tt make} in the MATLAB directory
3146-(or just use {\tt camd\_make.m} inside MATLAB.
3147-
3148 If you are including CAMD as a subset of a larger library and do not want
3149 to link the C standard I/O library, or if you simply do not need to use
3150 them, you can safely remove the {\tt camd\_control.c} and {\tt camd\_info.c}
3151@@ -616,427 +611,7 @@
3152 and gives details on their use.
3153
3154 {\footnotesize
3155-\begin{verbatim}
3156-/* ========================================================================= */
3157-/* === CAMD: approximate minimum degree ordering ========================== */
3158-/* ========================================================================= */
3159-
3160-/* ------------------------------------------------------------------------- */
3161-/* CAMD Version 2.2, Copyright (c) 2007 by Timothy A. Davis, Yanqing Chen, */
3162-/* Patrick R. Amestoy, and Iain S. Duff. See ../README.txt for License. */
3163-/* email: davis at cise.ufl.edu CISE Department, Univ. of Florida. */
3164-/* web: http://www.cise.ufl.edu/research/sparse/camd */
3165-/* ------------------------------------------------------------------------- */
3166-
3167-/* CAMD finds a symmetric ordering P of a matrix A so that the Cholesky
3168- * factorization of P*A*P' has fewer nonzeros and takes less work than the
3169- * Cholesky factorization of A. If A is not symmetric, then it performs its
3170- * ordering on the matrix A+A'. Two sets of user-callable routines are
3171- * provided, one for int integers and the other for UF_long integers.
3172- *
3173- * The method is based on the approximate minimum degree algorithm, discussed
3174- * in Amestoy, Davis, and Duff, "An approximate degree ordering algorithm",
3175- * SIAM Journal of Matrix Analysis and Applications, vol. 17, no. 4, pp.
3176- * 886-905, 1996.
3177- */
3178-
3179-#ifndef CAMD_H
3180-#define CAMD_H
3181-
3182-/* make it easy for C++ programs to include CAMD */
3183-#ifdef __cplusplus
3184-extern "C" {
3185-#endif
3186-
3187-/* get the definition of size_t: */
3188-#include <stddef.h>
3189-
3190-/* define UF_long */
3191-#include "UFconfig.h"
3192-
3193-int camd_order /* returns CAMD_OK, CAMD_OK_BUT_JUMBLED,
3194- * CAMD_INVALID, or CAMD_OUT_OF_MEMORY */
3195-(
3196- int n, /* A is n-by-n. n must be >= 0. */
3197- const int Ap [ ], /* column pointers for A, of size n+1 */
3198- const int Ai [ ], /* row indices of A, of size nz = Ap [n] */
3199- int P [ ], /* output permutation, of size n */
3200- double Control [ ], /* input Control settings, of size CAMD_CONTROL */
3201- double Info [ ], /* output Info statistics, of size CAMD_INFO */
3202- const int C [ ] /* Constraint set of A, of size n; can be NULL */
3203-) ;
3204-
3205-UF_long camd_l_order /* see above for description of arguments */
3206-(
3207- UF_long n,
3208- const UF_long Ap [ ],
3209- const UF_long Ai [ ],
3210- UF_long P [ ],
3211- double Control [ ],
3212- double Info [ ],
3213- const UF_long C [ ]
3214-) ;
3215-
3216-/* Input arguments (not modified):
3217- *
3218- * n: the matrix A is n-by-n.
3219- * Ap: an int/UF_long array of size n+1, containing column pointers of A.
3220- * Ai: an int/UF_long array of size nz, containing the row indices of A,
3221- * where nz = Ap [n].
3222- * Control: a double array of size CAMD_CONTROL, containing control
3223- * parameters. Defaults are used if Control is NULL.
3224- *
3225- * Output arguments (not defined on input):
3226- *
3227- * P: an int/UF_long array of size n, containing the output permutation. If
3228- * row i is the kth pivot row, then P [k] = i. In MATLAB notation,
3229- * the reordered matrix is A (P,P).
3230- * Info: a double array of size CAMD_INFO, containing statistical
3231- * information. Ignored if Info is NULL.
3232- *
3233- * On input, the matrix A is stored in column-oriented form. The row indices
3234- * of nonzero entries in column j are stored in Ai [Ap [j] ... Ap [j+1]-1].
3235- *
3236- * If the row indices appear in ascending order in each column, and there
3237- * are no duplicate entries, then camd_order is slightly more efficient in
3238- * terms of time and memory usage. If this condition does not hold, a copy
3239- * of the matrix is created (where these conditions do hold), and the copy is
3240- * ordered.
3241- *
3242- * Row indices must be in the range 0 to
3243- * n-1. Ap [0] must be zero, and thus nz = Ap [n] is the number of nonzeros
3244- * in A. The array Ap is of size n+1, and the array Ai is of size nz = Ap [n].
3245- * The matrix does not need to be symmetric, and the diagonal does not need to
3246- * be present (if diagonal entries are present, they are ignored except for
3247- * the output statistic Info [CAMD_NZDIAG]). The arrays Ai and Ap are not
3248- * modified. This form of the Ap and Ai arrays to represent the nonzero
3249- * pattern of the matrix A is the same as that used internally by MATLAB.
3250- * If you wish to use a more flexible input structure, please see the
3251- * umfpack_*_triplet_to_col routines in the UMFPACK package, at
3252- * http://www.cise.ufl.edu/research/sparse/umfpack.
3253- *
3254- * Restrictions: n >= 0. Ap [0] = 0. Ap [j] <= Ap [j+1] for all j in the
3255- * range 0 to n-1. nz = Ap [n] >= 0. Ai [0..nz-1] must be in the range 0
3256- * to n-1. Finally, Ai, Ap, and P must not be NULL. If any of these
3257- * restrictions are not met, CAMD returns CAMD_INVALID.
3258- *
3259- * CAMD returns:
3260- *
3261- * CAMD_OK if the matrix is valid and sufficient memory can be allocated to
3262- * perform the ordering.
3263- *
3264- * CAMD_OUT_OF_MEMORY if not enough memory can be allocated.
3265- *
3266- * CAMD_INVALID if the input arguments n, Ap, Ai are invalid, or if P is
3267- * NULL.
3268- *
3269- * CAMD_OK_BUT_JUMBLED if the matrix had unsorted columns, and/or duplicate
3270- * entries, but was otherwise valid.
3271- *
3272- * The CAMD routine first forms the pattern of the matrix A+A', and then
3273- * computes a fill-reducing ordering, P. If P [k] = i, then row/column i of
3274- * the original is the kth pivotal row. In MATLAB notation, the permuted
3275- * matrix is A (P,P), except that 0-based indexing is used instead of the
3276- * 1-based indexing in MATLAB.
3277- *
3278- * The Control array is used to set various parameters for CAMD. If a NULL
3279- * pointer is passed, default values are used. The Control array is not
3280- * modified.
3281- *
3282- * Control [CAMD_DENSE]: controls the threshold for "dense" rows/columns.
3283- * A dense row/column in A+A' can cause CAMD to spend a lot of time in
3284- * ordering the matrix. If Control [CAMD_DENSE] >= 0, rows/columns
3285- * with more than Control [CAMD_DENSE] * sqrt (n) entries are ignored
3286- * during the ordering, and placed last in the output order. The
3287- * default value of Control [CAMD_DENSE] is 10. If negative, no
3288- * rows/columns are treated as "dense". Rows/columns with 16 or
3289- * fewer off-diagonal entries are never considered "dense".
3290- *
3291- * Control [CAMD_AGGRESSIVE]: controls whether or not to use aggressive
3292- * absorption, in which a prior element is absorbed into the current
3293- * element if is a subset of the current element, even if it is not
3294- * adjacent to the current pivot element (refer to Amestoy, Davis,
3295- * & Duff, 1996, for more details). The default value is nonzero,
3296- * which means to perform aggressive absorption. This nearly always
3297- * leads to a better ordering (because the approximate degrees are
3298- * more accurate) and a lower execution time. There are cases where
3299- * it can lead to a slightly worse ordering, however. To turn it off,
3300- * set Control [CAMD_AGGRESSIVE] to 0.
3301- *
3302- * Control [2..4] are not used in the current version, but may be used in
3303- * future versions.
3304- *
3305- * The Info array provides statistics about the ordering on output. If it is
3306- * not present, the statistics are not returned. This is not an error
3307- * condition.
3308- *
3309- * Info [CAMD_STATUS]: the return value of CAMD, either CAMD_OK,
3310- * CAMD_OK_BUT_JUMBLED, CAMD_OUT_OF_MEMORY, or CAMD_INVALID.
3311- *
3312- * Info [CAMD_N]: n, the size of the input matrix
3313- *
3314- * Info [CAMD_NZ]: the number of nonzeros in A, nz = Ap [n]
3315- *
3316- * Info [CAMD_SYMMETRY]: the symmetry of the matrix A. It is the number
3317- * of "matched" off-diagonal entries divided by the total number of
3318- * off-diagonal entries. An entry A(i,j) is matched if A(j,i) is also
3319- * an entry, for any pair (i,j) for which i != j. In MATLAB notation,
3320- * S = spones (A) ;
3321- * B = tril (S, -1) + triu (S, 1) ;
3322- * symmetry = nnz (B & B') / nnz (B) ;
3323- *
3324- * Info [CAMD_NZDIAG]: the number of entries on the diagonal of A.
3325- *
3326- * Info [CAMD_NZ_A_PLUS_AT]: the number of nonzeros in A+A', excluding the
3327- * diagonal. If A is perfectly symmetric (Info [CAMD_SYMMETRY] = 1)
3328- * with a fully nonzero diagonal, then Info [CAMD_NZ_A_PLUS_AT] = nz-n
3329- * (the smallest possible value). If A is perfectly unsymmetric
3330- * (Info [CAMD_SYMMETRY] = 0, for an upper triangular matrix, for
3331- * example) with no diagonal, then Info [CAMD_NZ_A_PLUS_AT] = 2*nz
3332- * (the largest possible value).
3333- *
3334- * Info [CAMD_NDENSE]: the number of "dense" rows/columns of A+A' that were
3335- * removed from A prior to ordering. These are placed last in the
3336- * output order P.
3337- *
3338- * Info [CAMD_MEMORY]: the amount of memory used by CAMD, in bytes. In the
3339- * current version, this is 1.2 * Info [CAMD_NZ_A_PLUS_AT] + 9*n
3340- * times the size of an integer. This is at most 2.4nz + 9n. This
3341- * excludes the size of the input arguments Ai, Ap, and P, which have
3342- * a total size of nz + 2*n + 1 integers.
3343- *
3344- * Info [CAMD_NCMPA]: the number of garbage collections performed.
3345- *
3346- * Info [CAMD_LNZ]: the number of nonzeros in L (excluding the diagonal).
3347- * This is a slight upper bound because mass elimination is combined
3348- * with the approximate degree update. It is a rough upper bound if
3349- * there are many "dense" rows/columns. The rest of the statistics,
3350- * below, are also slight or rough upper bounds, for the same reasons.
3351- * The post-ordering of the assembly tree might also not exactly
3352- * correspond to a true elimination tree postordering.
3353- *
3354- * Info [CAMD_NDIV]: the number of divide operations for a subsequent LDL'
3355- * or LU factorization of the permuted matrix A (P,P).
3356- *
3357- * Info [CAMD_NMULTSUBS_LDL]: the number of multiply-subtract pairs for a
3358- * subsequent LDL' factorization of A (P,P).
3359- *
3360- * Info [CAMD_NMULTSUBS_LU]: the number of multiply-subtract pairs for a
3361- * subsequent LU factorization of A (P,P), assuming that no numerical
3362- * pivoting is required.
3363- *
3364- * Info [CAMD_DMAX]: the maximum number of nonzeros in any column of L,
3365- * including the diagonal.
3366- *
3367- * Info [14..19] are not used in the current version, but may be used in
3368- * future versions.
3369- */
3370-
3371-/* ------------------------------------------------------------------------- */
3372-/* direct interface to CAMD */
3373-/* ------------------------------------------------------------------------- */
3374-
3375-/* camd_2 is the primary CAMD ordering routine. It is not meant to be
3376- * user-callable because of its restrictive inputs and because it destroys
3377- * the user's input matrix. It does not check its inputs for errors, either.
3378- * However, if you can work with these restrictions it can be faster than
3379- * camd_order and use less memory (assuming that you can create your own copy
3380- * of the matrix for CAMD to destroy). Refer to CAMD/Source/camd_2.c for a
3381- * description of each parameter. */
3382-
3383-void camd_2
3384-(
3385- int n,
3386- int Pe [ ],
3387- int Iw [ ],
3388- int Len [ ],
3389- int iwlen,
3390- int pfree,
3391- int Nv [ ],
3392- int Next [ ],
3393- int Last [ ],
3394- int Head [ ],
3395- int Elen [ ],
3396- int Degree [ ],
3397- int W [ ],
3398- double Control [ ],
3399- double Info [ ],
3400- const int C [ ],
3401- int BucketSet [ ]
3402-) ;
3403-
3404-void camd_l2
3405-(
3406- UF_long n,
3407- UF_long Pe [ ],
3408- UF_long Iw [ ],
3409- UF_long Len [ ],
3410- UF_long iwlen,
3411- UF_long pfree,
3412- UF_long Nv [ ],
3413- UF_long Next [ ],
3414- UF_long Last [ ],
3415- UF_long Head [ ],
3416- UF_long Elen [ ],
3417- UF_long Degree [ ],
3418- UF_long W [ ],
3419- double Control [ ],
3420- double Info [ ],
3421- const UF_long C [ ],
3422- UF_long BucketSet [ ]
3423-
3424-) ;
3425-
3426-/* ------------------------------------------------------------------------- */
3427-/* camd_valid */
3428-/* ------------------------------------------------------------------------- */
3429-
3430-/* Returns CAMD_OK or CAMD_OK_BUT_JUMBLED if the matrix is valid as input to
3431- * camd_order; the latter is returned if the matrix has unsorted and/or
3432- * duplicate row indices in one or more columns. Returns CAMD_INVALID if the
3433- * matrix cannot be passed to camd_order. For camd_order, the matrix must also
3434- * be square. The first two arguments are the number of rows and the number
3435- * of columns of the matrix. For its use in CAMD, these must both equal n.
3436- */
3437-
3438-int camd_valid
3439-(
3440- int n_row, /* # of rows */
3441- int n_col, /* # of columns */
3442- const int Ap [ ], /* column pointers, of size n_col+1 */
3443- const int Ai [ ] /* row indices, of size Ap [n_col] */
3444-) ;
3445-
3446-UF_long camd_l_valid
3447-(
3448- UF_long n_row,
3449- UF_long n_col,
3450- const UF_long Ap [ ],
3451- const UF_long Ai [ ]
3452-) ;
3453-
3454-/* ------------------------------------------------------------------------- */
3455-/* camd_cvalid */
3456-/* ------------------------------------------------------------------------- */
3457-
3458-/* Returns TRUE if the constraint set is valid as input to camd_order,
3459- * FALSE otherwise. */
3460-
3461-int camd_cvalid
3462-(
3463- int n,
3464- const int C [ ]
3465-) ;
3466-
3467-UF_long camd_l_cvalid
3468-(
3469- UF_long n,
3470- const UF_long C [ ]
3471-) ;
3472-
3473-/* ------------------------------------------------------------------------- */
3474-/* CAMD memory manager and printf routines */
3475-/* ------------------------------------------------------------------------- */
3476-
3477-/* The user can redefine these to change the malloc, free, and printf routines
3478- * that CAMD uses. */
3479-
3480-#ifndef EXTERN
3481-#define EXTERN extern
3482-#endif
3483-
3484-EXTERN void *(*camd_malloc) (size_t) ; /* pointer to malloc */
3485-EXTERN void (*camd_free) (void *) ; /* pointer to free */
3486-EXTERN void *(*camd_realloc) (void *, size_t) ; /* pointer to realloc */
3487-EXTERN void *(*camd_calloc) (size_t, size_t) ; /* pointer to calloc */
3488-EXTERN int (*camd_printf) (const char *, ...) ; /* pointer to printf */
3489-
3490-/* ------------------------------------------------------------------------- */
3491-/* CAMD Control and Info arrays */
3492-/* ------------------------------------------------------------------------- */
3493-
3494-/* camd_defaults: sets the default control settings */
3495-void camd_defaults (double Control [ ]) ;
3496-void camd_l_defaults (double Control [ ]) ;
3497-
3498-/* camd_control: prints the control settings */
3499-void camd_control (double Control [ ]) ;
3500-void camd_l_control (double Control [ ]) ;
3501-
3502-/* camd_info: prints the statistics */
3503-void camd_info (double Info [ ]) ;
3504-void camd_l_info (double Info [ ]) ;
3505-
3506-#define CAMD_CONTROL 5 /* size of Control array */
3507-#define CAMD_INFO 20 /* size of Info array */
3508-
3509-/* contents of Control */
3510-#define CAMD_DENSE 0 /* "dense" if degree > Control [0] * sqrt (n) */
3511-#define CAMD_AGGRESSIVE 1 /* do aggressive absorption if Control [1] != 0 */
3512-
3513-/* default Control settings */
3514-#define CAMD_DEFAULT_DENSE 10.0 /* default "dense" degree 10*sqrt(n) */
3515-#define CAMD_DEFAULT_AGGRESSIVE 1 /* do aggressive absorption by default */
3516-
3517-/* contents of Info */
3518-#define CAMD_STATUS 0 /* return value of camd_order and camd_l_order */
3519-#define CAMD_N 1 /* A is n-by-n */
3520-#define CAMD_NZ 2 /* number of nonzeros in A */
3521-#define CAMD_SYMMETRY 3 /* symmetry of pattern (1 is sym., 0 is unsym.) */
3522-#define CAMD_NZDIAG 4 /* # of entries on diagonal */
3523-#define CAMD_NZ_A_PLUS_AT 5 /* nz in A+A' */
3524-#define CAMD_NDENSE 6 /* number of "dense" rows/columns in A */
3525-#define CAMD_MEMORY 7 /* amount of memory used by CAMD */
3526-#define CAMD_NCMPA 8 /* number of garbage collections in CAMD */
3527-#define CAMD_LNZ 9 /* approx. nz in L, excluding the diagonal */
3528-#define CAMD_NDIV 10 /* number of fl. point divides for LU and LDL' */
3529-#define CAMD_NMULTSUBS_LDL 11 /* number of fl. point (*,-) pairs for LDL' */
3530-#define CAMD_NMULTSUBS_LU 12 /* number of fl. point (*,-) pairs for LU */
3531-#define CAMD_DMAX 13 /* max nz. in any column of L, incl. diagonal */
3532-
3533-/* ------------------------------------------------------------------------- */
3534-/* return values of CAMD */
3535-/* ------------------------------------------------------------------------- */
3536-
3537-#define CAMD_OK 0 /* success */
3538-#define CAMD_OUT_OF_MEMORY -1 /* malloc failed, or problem too large */
3539-#define CAMD_INVALID -2 /* input arguments are not valid */
3540-#define CAMD_OK_BUT_JUMBLED 1 /* input matrix is OK for camd_order, but
3541- * columns were not sorted, and/or duplicate entries were present. CAMD had
3542- * to do extra work before ordering the matrix. This is a warning, not an
3543- * error. */
3544-
3545-/* ========================================================================== */
3546-/* === CAMD version ========================================================= */
3547-/* ========================================================================== */
3548-
3549-/*
3550- * As an example, to test if the version you are using is 1.2 or later:
3551- *
3552- * if (CAMD_VERSION >= CAMD_VERSION_CODE (1,2)) ...
3553- *
3554- * This also works during compile-time:
3555- *
3556- * #if (CAMD_VERSION >= CAMD_VERSION_CODE (1,2))
3557- * printf ("This is version 1.2 or later\n") ;
3558- * #else
3559- * printf ("This is an early version\n") ;
3560- * #endif
3561- */
3562-
3563-#define CAMD_DATE "May 31, 2007"
3564-#define CAMD_VERSION_CODE(main,sub) ((main) * 1000 + (sub))
3565-#define CAMD_MAIN_VERSION 2
3566-#define CAMD_SUB_VERSION 2
3567-#define CAMD_SUBSUB_VERSION 0
3568-#define CAMD_VERSION CAMD_VERSION_CODE(CAMD_MAIN_VERSION,CAMD_SUB_VERSION)
3569-
3570-#ifdef __cplusplus
3571-}
3572-#endif
3573-
3574-#endif
3575-\end{verbatim}
3576+\input{camd_h.tex}
3577 }
3578
3579 %------------------------------------------------------------------------------
3580
3581=== modified file 'CAMD/Doc/ChangeLog'
3582--- CAMD/Doc/ChangeLog 2007-05-29 09:36:29 +0000
3583+++ CAMD/Doc/ChangeLog 2013-12-08 03:08:50 +0000
3584@@ -1,3 +1,27 @@
3585+Jun 20, 2012: verison 2.3.1
3586+
3587+ * minor update for Windows (removed filesep)
3588+
3589+Jun 1, 2012: version 2.3.0
3590+
3591+ * changed from UFconfig to SuiteSparse_config
3592+
3593+May 15, 2011: version 2.2.4
3594+
3595+ * minor fix to SIZE_T_MAX definition (finicky compiler workaround)
3596+
3597+Dec 7, 2011: version 2.2.3
3598+
3599+ * fixed the Makefile to better align with CFLAGS and other standards
3600+
3601+Jan 25, 2011: version 2.2.2
3602+
3603+ * minor fix to "make install"
3604+
3605+Nov 30, 2009: version 2.2.1
3606+
3607+ * added "make install" and "make uninstall"
3608+
3609 May 31, 2007: version 2.2.0
3610
3611 * port to 64-bit MATLAB
3612
3613=== modified file 'CAMD/Doc/License'
3614--- CAMD/Doc/License 2007-05-29 09:36:29 +0000
3615+++ CAMD/Doc/License 2013-12-08 03:08:50 +0000
3616@@ -35,6 +35,6 @@
3617
3618 Availability:
3619
3620- http://www.cise.ufl.edu/research/sparse/camd
3621+ http://www.suitesparse.com
3622
3623 -------------------------------------------------------------------------------
3624
3625=== modified file 'CAMD/Doc/Makefile'
3626--- CAMD/Doc/Makefile 2006-12-22 10:16:15 +0000
3627+++ CAMD/Doc/Makefile 2013-12-08 03:08:50 +0000
3628@@ -4,32 +4,36 @@
3629
3630 default: dist
3631
3632-include ../../UFconfig/UFconfig.mk
3633+include ../../SuiteSparse_config/SuiteSparse_config.mk
3634
3635 #------------------------------------------------------------------------------
3636 # Remove all but the files in the original distribution
3637 #------------------------------------------------------------------------------
3638
3639 clean:
3640- - $(RM) $(CLEAN)
3641+ - $(RM) -r $(CLEAN)
3642 - $(RM) camd_temp
3643
3644 purge: distclean
3645
3646 distclean: clean
3647 - $(RM) *.aux *.bbl *.blg *.log *.toc
3648+ - $(RM) -r *.dSYM
3649
3650 #------------------------------------------------------------------------------
3651 # Create the User Guide and Quick Start Guide
3652 #------------------------------------------------------------------------------
3653
3654-CAMD_UserGuide.pdf: CAMD_UserGuide.tex CAMD_UserGuide.bib
3655+CAMD_UserGuide.pdf: CAMD_UserGuide.tex CAMD_UserGuide.bib ../Include/camd.h
3656+ echo '\\begin{verbatim}' > camd_h.tex
3657+ expand -8 ../Include/camd.h >> camd_h.tex
3658+ echo '\end{verbatim}' >> camd_h.tex
3659 pdflatex CAMD_UserGuide
3660 bibtex CAMD_UserGuide
3661 pdflatex CAMD_UserGuide
3662 pdflatex CAMD_UserGuide
3663
3664 dist: CAMD_UserGuide.pdf
3665- - $(RM) *.aux *.bbl *.blg *.log *.toc
3666+ - $(RM) *.aux *.bbl *.blg *.log *.toc camd_h.tex
3667 - $(RM) camd_temp
3668
3669
3670=== modified file 'CAMD/Include/camd.h'
3671--- CAMD/Include/camd.h 2007-05-29 09:36:29 +0000
3672+++ CAMD/Include/camd.h 2013-12-08 03:08:50 +0000
3673@@ -5,15 +5,14 @@
3674 /* ------------------------------------------------------------------------- */
3675 /* CAMD Version 2.2, Copyright (c) 2007 by Timothy A. Davis, Yanqing Chen, */
3676 /* Patrick R. Amestoy, and Iain S. Duff. See ../README.txt for License. */
3677-/* email: davis at cise.ufl.edu CISE Department, Univ. of Florida. */
3678-/* web: http://www.cise.ufl.edu/research/sparse/camd */
3679+/* email: DrTimothyAldenDavis@gmail.com */
3680 /* ------------------------------------------------------------------------- */
3681
3682 /* CAMD finds a symmetric ordering P of a matrix A so that the Cholesky
3683 * factorization of P*A*P' has fewer nonzeros and takes less work than the
3684 * Cholesky factorization of A. If A is not symmetric, then it performs its
3685 * ordering on the matrix A+A'. Two sets of user-callable routines are
3686- * provided, one for int integers and the other for UF_long integers.
3687+ * provided, one for int integers and the other for SuiteSparse_long integers.
3688 *
3689 * The method is based on the approximate minimum degree algorithm, discussed
3690 * in Amestoy, Davis, and Duff, "An approximate degree ordering algorithm",
3691@@ -32,48 +31,48 @@
3692 /* get the definition of size_t: */
3693 #include <stddef.h>
3694
3695-/* define UF_long */
3696-#include "UFconfig.h"
3697+#include "SuiteSparse_config.h"
3698
3699-int camd_order /* returns CAMD_OK, CAMD_OK_BUT_JUMBLED,
3700- * CAMD_INVALID, or CAMD_OUT_OF_MEMORY */
3701+int camd_order /* returns CAMD_OK, CAMD_OK_BUT_JUMBLED,
3702+ * CAMD_INVALID, or CAMD_OUT_OF_MEMORY */
3703 (
3704- int n, /* A is n-by-n. n must be >= 0. */
3705- const int Ap [ ], /* column pointers for A, of size n+1 */
3706- const int Ai [ ], /* row indices of A, of size nz = Ap [n] */
3707- int P [ ], /* output permutation, of size n */
3708- double Control [ ], /* input Control settings, of size CAMD_CONTROL */
3709- double Info [ ], /* output Info statistics, of size CAMD_INFO */
3710- const int C [ ] /* Constraint set of A, of size n; can be NULL */
3711+ int n, /* A is n-by-n. n must be >= 0. */
3712+ const int Ap [ ], /* column pointers for A, of size n+1 */
3713+ const int Ai [ ], /* row indices of A, of size nz = Ap [n] */
3714+ int P [ ], /* output permutation, of size n */
3715+ double Control [ ], /* input Control settings, of size CAMD_CONTROL */
3716+ double Info [ ], /* output Info statistics, of size CAMD_INFO */
3717+ const int C [ ] /* Constraint set of A, of size n; can be NULL */
3718 ) ;
3719
3720-UF_long camd_l_order /* see above for description of arguments */
3721+SuiteSparse_long camd_l_order /* see above for description of arguments */
3722 (
3723- UF_long n,
3724- const UF_long Ap [ ],
3725- const UF_long Ai [ ],
3726- UF_long P [ ],
3727+ SuiteSparse_long n,
3728+ const SuiteSparse_long Ap [ ],
3729+ const SuiteSparse_long Ai [ ],
3730+ SuiteSparse_long P [ ],
3731 double Control [ ],
3732 double Info [ ],
3733- const UF_long C [ ]
3734+ const SuiteSparse_long C [ ]
3735 ) ;
3736
3737 /* Input arguments (not modified):
3738 *
3739- * n: the matrix A is n-by-n.
3740- * Ap: an int/UF_long array of size n+1, containing column pointers of A.
3741- * Ai: an int/UF_long array of size nz, containing the row indices of A,
3742- * where nz = Ap [n].
3743- * Control: a double array of size CAMD_CONTROL, containing control
3744- * parameters. Defaults are used if Control is NULL.
3745+ * n: the matrix A is n-by-n.
3746+ * Ap: an int/SuiteSparse_long array of size n+1, containing column
3747+ * pointers of A.
3748+ * Ai: an int/SuiteSparse_long array of size nz, containing the row
3749+ * indices of A, where nz = Ap [n].
3750+ * Control: a double array of size CAMD_CONTROL, containing control
3751+ * parameters. Defaults are used if Control is NULL.
3752 *
3753 * Output arguments (not defined on input):
3754 *
3755- * P: an int/UF_long array of size n, containing the output permutation. If
3756- * row i is the kth pivot row, then P [k] = i. In MATLAB notation,
3757- * the reordered matrix is A (P,P).
3758- * Info: a double array of size CAMD_INFO, containing statistical
3759- * information. Ignored if Info is NULL.
3760+ * P: an int/SuiteSparse_long array of size n, containing the output
3761+ * permutation. If row i is the kth pivot row, then P [k] = i. In
3762+ * MATLAB notation, the reordered matrix is A (P,P).
3763+ * Info: a double array of size CAMD_INFO, containing statistical
3764+ * information. Ignored if Info is NULL.
3765 *
3766 * On input, the matrix A is stored in column-oriented form. The row indices
3767 * of nonzero entries in column j are stored in Ai [Ap [j] ... Ap [j+1]-1].
3768@@ -94,25 +93,25 @@
3769 * pattern of the matrix A is the same as that used internally by MATLAB.
3770 * If you wish to use a more flexible input structure, please see the
3771 * umfpack_*_triplet_to_col routines in the UMFPACK package, at
3772- * http://www.cise.ufl.edu/research/sparse/umfpack.
3773+ * http://www.suitesparse.com.
3774 *
3775 * Restrictions: n >= 0. Ap [0] = 0. Ap [j] <= Ap [j+1] for all j in the
3776- * range 0 to n-1. nz = Ap [n] >= 0. Ai [0..nz-1] must be in the range 0
3777- * to n-1. Finally, Ai, Ap, and P must not be NULL. If any of these
3778- * restrictions are not met, CAMD returns CAMD_INVALID.
3779+ * range 0 to n-1. nz = Ap [n] >= 0. Ai [0..nz-1] must be in the range 0
3780+ * to n-1. Finally, Ai, Ap, and P must not be NULL. If any of these
3781+ * restrictions are not met, CAMD returns CAMD_INVALID.
3782 *
3783 * CAMD returns:
3784 *
3785- * CAMD_OK if the matrix is valid and sufficient memory can be allocated to
3786- * perform the ordering.
3787- *
3788- * CAMD_OUT_OF_MEMORY if not enough memory can be allocated.
3789- *
3790- * CAMD_INVALID if the input arguments n, Ap, Ai are invalid, or if P is
3791- * NULL.
3792- *
3793- * CAMD_OK_BUT_JUMBLED if the matrix had unsorted columns, and/or duplicate
3794- * entries, but was otherwise valid.
3795+ * CAMD_OK if the matrix is valid and sufficient memory can be allocated to
3796+ * perform the ordering.
3797+ *
3798+ * CAMD_OUT_OF_MEMORY if not enough memory can be allocated.
3799+ *
3800+ * CAMD_INVALID if the input arguments n, Ap, Ai are invalid, or if P is
3801+ * NULL.
3802+ *
3803+ * CAMD_OK_BUT_JUMBLED if the matrix had unsorted columns, and/or duplicate
3804+ * entries, but was otherwise valid.
3805 *
3806 * The CAMD routine first forms the pattern of the matrix A+A', and then
3807 * computes a fill-reducing ordering, P. If P [k] = i, then row/column i of
3808@@ -124,93 +123,93 @@
3809 * pointer is passed, default values are used. The Control array is not
3810 * modified.
3811 *
3812- * Control [CAMD_DENSE]: controls the threshold for "dense" rows/columns.
3813- * A dense row/column in A+A' can cause CAMD to spend a lot of time in
3814- * ordering the matrix. If Control [CAMD_DENSE] >= 0, rows/columns
3815- * with more than Control [CAMD_DENSE] * sqrt (n) entries are ignored
3816- * during the ordering, and placed last in the output order. The
3817- * default value of Control [CAMD_DENSE] is 10. If negative, no
3818- * rows/columns are treated as "dense". Rows/columns with 16 or
3819- * fewer off-diagonal entries are never considered "dense".
3820- *
3821- * Control [CAMD_AGGRESSIVE]: controls whether or not to use aggressive
3822- * absorption, in which a prior element is absorbed into the current
3823- * element if is a subset of the current element, even if it is not
3824- * adjacent to the current pivot element (refer to Amestoy, Davis,
3825- * & Duff, 1996, for more details). The default value is nonzero,
3826- * which means to perform aggressive absorption. This nearly always
3827- * leads to a better ordering (because the approximate degrees are
3828- * more accurate) and a lower execution time. There are cases where
3829- * it can lead to a slightly worse ordering, however. To turn it off,
3830- * set Control [CAMD_AGGRESSIVE] to 0.
3831- *
3832- * Control [2..4] are not used in the current version, but may be used in
3833- * future versions.
3834+ * Control [CAMD_DENSE]: controls the threshold for "dense" rows/columns.
3835+ * A dense row/column in A+A' can cause CAMD to spend a lot of time in
3836+ * ordering the matrix. If Control [CAMD_DENSE] >= 0, rows/columns
3837+ * with more than Control [CAMD_DENSE] * sqrt (n) entries are ignored
3838+ * during the ordering, and placed last in the output order. The
3839+ * default value of Control [CAMD_DENSE] is 10. If negative, no
3840+ * rows/columns are treated as "dense". Rows/columns with 16 or
3841+ * fewer off-diagonal entries are never considered "dense".
3842+ *
3843+ * Control [CAMD_AGGRESSIVE]: controls whether or not to use aggressive
3844+ * absorption, in which a prior element is absorbed into the current
3845+ * element if is a subset of the current element, even if it is not
3846+ * adjacent to the current pivot element (refer to Amestoy, Davis,
3847+ * & Duff, 1996, for more details). The default value is nonzero,
3848+ * which means to perform aggressive absorption. This nearly always
3849+ * leads to a better ordering (because the approximate degrees are
3850+ * more accurate) and a lower execution time. There are cases where
3851+ * it can lead to a slightly worse ordering, however. To turn it off,
3852+ * set Control [CAMD_AGGRESSIVE] to 0.
3853+ *
3854+ * Control [2..4] are not used in the current version, but may be used in
3855+ * future versions.
3856 *
3857 * The Info array provides statistics about the ordering on output. If it is
3858 * not present, the statistics are not returned. This is not an error
3859 * condition.
3860 *
3861- * Info [CAMD_STATUS]: the return value of CAMD, either CAMD_OK,
3862- * CAMD_OK_BUT_JUMBLED, CAMD_OUT_OF_MEMORY, or CAMD_INVALID.
3863- *
3864- * Info [CAMD_N]: n, the size of the input matrix
3865- *
3866- * Info [CAMD_NZ]: the number of nonzeros in A, nz = Ap [n]
3867- *
3868- * Info [CAMD_SYMMETRY]: the symmetry of the matrix A. It is the number
3869- * of "matched" off-diagonal entries divided by the total number of
3870- * off-diagonal entries. An entry A(i,j) is matched if A(j,i) is also
3871- * an entry, for any pair (i,j) for which i != j. In MATLAB notation,
3872- * S = spones (A) ;
3873- * B = tril (S, -1) + triu (S, 1) ;
3874- * symmetry = nnz (B & B') / nnz (B) ;
3875- *
3876- * Info [CAMD_NZDIAG]: the number of entries on the diagonal of A.
3877- *
3878- * Info [CAMD_NZ_A_PLUS_AT]: the number of nonzeros in A+A', excluding the
3879- * diagonal. If A is perfectly symmetric (Info [CAMD_SYMMETRY] = 1)
3880- * with a fully nonzero diagonal, then Info [CAMD_NZ_A_PLUS_AT] = nz-n
3881- * (the smallest possible value). If A is perfectly unsymmetric
3882- * (Info [CAMD_SYMMETRY] = 0, for an upper triangular matrix, for
3883- * example) with no diagonal, then Info [CAMD_NZ_A_PLUS_AT] = 2*nz
3884- * (the largest possible value).
3885- *
3886- * Info [CAMD_NDENSE]: the number of "dense" rows/columns of A+A' that were
3887- * removed from A prior to ordering. These are placed last in the
3888- * output order P.
3889- *
3890- * Info [CAMD_MEMORY]: the amount of memory used by CAMD, in bytes. In the
3891- * current version, this is 1.2 * Info [CAMD_NZ_A_PLUS_AT] + 9*n
3892- * times the size of an integer. This is at most 2.4nz + 9n. This
3893- * excludes the size of the input arguments Ai, Ap, and P, which have
3894- * a total size of nz + 2*n + 1 integers.
3895- *
3896- * Info [CAMD_NCMPA]: the number of garbage collections performed.
3897- *
3898- * Info [CAMD_LNZ]: the number of nonzeros in L (excluding the diagonal).
3899- * This is a slight upper bound because mass elimination is combined
3900- * with the approximate degree update. It is a rough upper bound if
3901- * there are many "dense" rows/columns. The rest of the statistics,
3902- * below, are also slight or rough upper bounds, for the same reasons.
3903- * The post-ordering of the assembly tree might also not exactly
3904- * correspond to a true elimination tree postordering.
3905- *
3906- * Info [CAMD_NDIV]: the number of divide operations for a subsequent LDL'
3907- * or LU factorization of the permuted matrix A (P,P).
3908- *
3909- * Info [CAMD_NMULTSUBS_LDL]: the number of multiply-subtract pairs for a
3910- * subsequent LDL' factorization of A (P,P).
3911- *
3912- * Info [CAMD_NMULTSUBS_LU]: the number of multiply-subtract pairs for a
3913- * subsequent LU factorization of A (P,P), assuming that no numerical
3914- * pivoting is required.
3915- *
3916- * Info [CAMD_DMAX]: the maximum number of nonzeros in any column of L,
3917- * including the diagonal.
3918- *
3919- * Info [14..19] are not used in the current version, but may be used in
3920- * future versions.
3921+ * Info [CAMD_STATUS]: the return value of CAMD, either CAMD_OK,
3922+ * CAMD_OK_BUT_JUMBLED, CAMD_OUT_OF_MEMORY, or CAMD_INVALID.
3923+ *
3924+ * Info [CAMD_N]: n, the size of the input matrix
3925+ *
3926+ * Info [CAMD_NZ]: the number of nonzeros in A, nz = Ap [n]
3927+ *
3928+ * Info [CAMD_SYMMETRY]: the symmetry of the matrix A. It is the number
3929+ * of "matched" off-diagonal entries divided by the total number of
3930+ * off-diagonal entries. An entry A(i,j) is matched if A(j,i) is also
3931+ * an entry, for any pair (i,j) for which i != j. In MATLAB notation,
3932+ * S = spones (A) ;
3933+ * B = tril (S, -1) + triu (S, 1) ;
3934+ * symmetry = nnz (B & B') / nnz (B) ;
3935+ *
3936+ * Info [CAMD_NZDIAG]: the number of entries on the diagonal of A.
3937+ *
3938+ * Info [CAMD_NZ_A_PLUS_AT]: the number of nonzeros in A+A', excluding the
3939+ * diagonal. If A is perfectly symmetric (Info [CAMD_SYMMETRY] = 1)
3940+ * with a fully nonzero diagonal, then Info [CAMD_NZ_A_PLUS_AT] = nz-n
3941+ * (the smallest possible value). If A is perfectly unsymmetric
3942+ * (Info [CAMD_SYMMETRY] = 0, for an upper triangular matrix, for
3943+ * example) with no diagonal, then Info [CAMD_NZ_A_PLUS_AT] = 2*nz
3944+ * (the largest possible value).
3945+ *
3946+ * Info [CAMD_NDENSE]: the number of "dense" rows/columns of A+A' that were
3947+ * removed from A prior to ordering. These are placed last in the
3948+ * output order P.
3949+ *
3950+ * Info [CAMD_MEMORY]: the amount of memory used by CAMD, in bytes. In the
3951+ * current version, this is 1.2 * Info [CAMD_NZ_A_PLUS_AT] + 9*n
3952+ * times the size of an integer. This is at most 2.4nz + 9n. This
3953+ * excludes the size of the input arguments Ai, Ap, and P, which have
3954+ * a total size of nz + 2*n + 1 integers.
3955+ *
3956+ * Info [CAMD_NCMPA]: the number of garbage collections performed.
3957+ *
3958+ * Info [CAMD_LNZ]: the number of nonzeros in L (excluding the diagonal).
3959+ * This is a slight upper bound because mass elimination is combined
3960+ * with the approximate degree update. It is a rough upper bound if
3961+ * there are many "dense" rows/columns. The rest of the statistics,
3962+ * below, are also slight or rough upper bounds, for the same reasons.
3963+ * The post-ordering of the assembly tree might also not exactly
3964+ * correspond to a true elimination tree postordering.
3965+ *
3966+ * Info [CAMD_NDIV]: the number of divide operations for a subsequent LDL'
3967+ * or LU factorization of the permuted matrix A (P,P).
3968+ *
3969+ * Info [CAMD_NMULTSUBS_LDL]: the number of multiply-subtract pairs for a
3970+ * subsequent LDL' factorization of A (P,P).
3971+ *
3972+ * Info [CAMD_NMULTSUBS_LU]: the number of multiply-subtract pairs for a
3973+ * subsequent LU factorization of A (P,P), assuming that no numerical
3974+ * pivoting is required.
3975+ *
3976+ * Info [CAMD_DMAX]: the maximum number of nonzeros in any column of L,
3977+ * including the diagonal.
3978+ *
3979+ * Info [14..19] are not used in the current version, but may be used in
3980+ * future versions.
3981 */
3982
3983 /* ------------------------------------------------------------------------- */
3984@@ -248,23 +247,23 @@
3985
3986 void camd_l2
3987 (
3988- UF_long n,
3989- UF_long Pe [ ],
3990- UF_long Iw [ ],
3991- UF_long Len [ ],
3992- UF_long iwlen,
3993- UF_long pfree,
3994- UF_long Nv [ ],
3995- UF_long Next [ ],
3996- UF_long Last [ ],
3997- UF_long Head [ ],
3998- UF_long Elen [ ],
3999- UF_long Degree [ ],
4000- UF_long W [ ],
4001+ SuiteSparse_long n,
4002+ SuiteSparse_long Pe [ ],
4003+ SuiteSparse_long Iw [ ],
4004+ SuiteSparse_long Len [ ],
4005+ SuiteSparse_long iwlen,
4006+ SuiteSparse_long pfree,
4007+ SuiteSparse_long Nv [ ],
4008+ SuiteSparse_long Next [ ],
4009+ SuiteSparse_long Last [ ],
4010+ SuiteSparse_long Head [ ],
4011+ SuiteSparse_long Elen [ ],
4012+ SuiteSparse_long Degree [ ],
4013+ SuiteSparse_long W [ ],
4014 double Control [ ],
4015 double Info [ ],
4016- const UF_long C [ ],
4017- UF_long BucketSet [ ]
4018+ const SuiteSparse_long C [ ],
4019+ SuiteSparse_long BucketSet [ ]
4020
4021 ) ;
4022
4023@@ -282,18 +281,18 @@
4024
4025 int camd_valid
4026 (
4027- int n_row, /* # of rows */
4028- int n_col, /* # of columns */
4029- const int Ap [ ], /* column pointers, of size n_col+1 */
4030- const int Ai [ ] /* row indices, of size Ap [n_col] */
4031+ int n_row, /* # of rows */
4032+ int n_col, /* # of columns */
4033+ const int Ap [ ], /* column pointers, of size n_col+1 */
4034+ const int Ai [ ] /* row indices, of size Ap [n_col] */
4035 ) ;
4036
4037-UF_long camd_l_valid
4038+SuiteSparse_long camd_l_valid
4039 (
4040- UF_long n_row,
4041- UF_long n_col,
4042- const UF_long Ap [ ],
4043- const UF_long Ai [ ]
4044+ SuiteSparse_long n_row,
4045+ SuiteSparse_long n_col,
4046+ const SuiteSparse_long Ap [ ],
4047+ const SuiteSparse_long Ai [ ]
4048 ) ;
4049
4050 /* ------------------------------------------------------------------------- */
4051@@ -309,10 +308,10 @@
4052 const int C [ ]
4053 ) ;
4054
4055-UF_long camd_l_cvalid
4056+SuiteSparse_long camd_l_cvalid
4057 (
4058- UF_long n,
4059- const UF_long C [ ]
4060+ SuiteSparse_long n,
4061+ const SuiteSparse_long C [ ]
4062 ) ;
4063
4064 /* ------------------------------------------------------------------------- */
4065@@ -326,11 +325,11 @@
4066 #define EXTERN extern
4067 #endif
4068
4069-EXTERN void *(*camd_malloc) (size_t) ; /* pointer to malloc */
4070-EXTERN void (*camd_free) (void *) ; /* pointer to free */
4071-EXTERN void *(*camd_realloc) (void *, size_t) ; /* pointer to realloc */
4072-EXTERN void *(*camd_calloc) (size_t, size_t) ; /* pointer to calloc */
4073-EXTERN int (*camd_printf) (const char *, ...) ; /* pointer to printf */
4074+EXTERN void *(*camd_malloc) (size_t) ; /* pointer to malloc */
4075+EXTERN void (*camd_free) (void *) ; /* pointer to free */
4076+EXTERN void *(*camd_realloc) (void *, size_t) ; /* pointer to realloc */
4077+EXTERN void *(*camd_calloc) (size_t, size_t) ; /* pointer to calloc */
4078+EXTERN int (*camd_printf) (const char *, ...) ; /* pointer to printf */
4079
4080 /* ------------------------------------------------------------------------- */
4081 /* CAMD Control and Info arrays */
4082@@ -348,41 +347,41 @@
4083 void camd_info (double Info [ ]) ;
4084 void camd_l_info (double Info [ ]) ;
4085
4086-#define CAMD_CONTROL 5 /* size of Control array */
4087-#define CAMD_INFO 20 /* size of Info array */
4088+#define CAMD_CONTROL 5 /* size of Control array */
4089+#define CAMD_INFO 20 /* size of Info array */
4090
4091 /* contents of Control */
4092-#define CAMD_DENSE 0 /* "dense" if degree > Control [0] * sqrt (n) */
4093+#define CAMD_DENSE 0 /* "dense" if degree > Control [0] * sqrt (n) */
4094 #define CAMD_AGGRESSIVE 1 /* do aggressive absorption if Control [1] != 0 */
4095
4096 /* default Control settings */
4097-#define CAMD_DEFAULT_DENSE 10.0 /* default "dense" degree 10*sqrt(n) */
4098+#define CAMD_DEFAULT_DENSE 10.0 /* default "dense" degree 10*sqrt(n) */
4099 #define CAMD_DEFAULT_AGGRESSIVE 1 /* do aggressive absorption by default */
4100
4101 /* contents of Info */
4102-#define CAMD_STATUS 0 /* return value of camd_order and camd_l_order */
4103-#define CAMD_N 1 /* A is n-by-n */
4104-#define CAMD_NZ 2 /* number of nonzeros in A */
4105-#define CAMD_SYMMETRY 3 /* symmetry of pattern (1 is sym., 0 is unsym.) */
4106-#define CAMD_NZDIAG 4 /* # of entries on diagonal */
4107+#define CAMD_STATUS 0 /* return value of camd_order and camd_l_order */
4108+#define CAMD_N 1 /* A is n-by-n */
4109+#define CAMD_NZ 2 /* number of nonzeros in A */
4110+#define CAMD_SYMMETRY 3 /* symmetry of pattern (1 is sym., 0 is unsym.) */
4111+#define CAMD_NZDIAG 4 /* # of entries on diagonal */
4112 #define CAMD_NZ_A_PLUS_AT 5 /* nz in A+A' */
4113-#define CAMD_NDENSE 6 /* number of "dense" rows/columns in A */
4114-#define CAMD_MEMORY 7 /* amount of memory used by CAMD */
4115-#define CAMD_NCMPA 8 /* number of garbage collections in CAMD */
4116-#define CAMD_LNZ 9 /* approx. nz in L, excluding the diagonal */
4117-#define CAMD_NDIV 10 /* number of fl. point divides for LU and LDL' */
4118+#define CAMD_NDENSE 6 /* number of "dense" rows/columns in A */
4119+#define CAMD_MEMORY 7 /* amount of memory used by CAMD */
4120+#define CAMD_NCMPA 8 /* number of garbage collections in CAMD */
4121+#define CAMD_LNZ 9 /* approx. nz in L, excluding the diagonal */
4122+#define CAMD_NDIV 10 /* number of fl. point divides for LU and LDL' */
4123 #define CAMD_NMULTSUBS_LDL 11 /* number of fl. point (*,-) pairs for LDL' */
4124 #define CAMD_NMULTSUBS_LU 12 /* number of fl. point (*,-) pairs for LU */
4125-#define CAMD_DMAX 13 /* max nz. in any column of L, incl. diagonal */
4126+#define CAMD_DMAX 13 /* max nz. in any column of L, incl. diagonal */
4127
4128 /* ------------------------------------------------------------------------- */
4129 /* return values of CAMD */
4130 /* ------------------------------------------------------------------------- */
4131
4132-#define CAMD_OK 0 /* success */
4133-#define CAMD_OUT_OF_MEMORY -1 /* malloc failed, or problem too large */
4134-#define CAMD_INVALID -2 /* input arguments are not valid */
4135-#define CAMD_OK_BUT_JUMBLED 1 /* input matrix is OK for camd_order, but
4136+#define CAMD_OK 0 /* success */
4137+#define CAMD_OUT_OF_MEMORY -1 /* malloc failed, or problem too large */
4138+#define CAMD_INVALID -2 /* input arguments are not valid */
4139+#define CAMD_OK_BUT_JUMBLED 1 /* input matrix is OK for camd_order, but
4140 * columns were not sorted, and/or duplicate entries were present. CAMD had
4141 * to do extra work before ordering the matrix. This is a warning, not an
4142 * error. */
4143@@ -394,22 +393,22 @@
4144 /*
4145 * As an example, to test if the version you are using is 1.2 or later:
4146 *
4147- * if (CAMD_VERSION >= CAMD_VERSION_CODE (1,2)) ...
4148+ * if (CAMD_VERSION >= CAMD_VERSION_CODE (1,2)) ...
4149 *
4150 * This also works during compile-time:
4151 *
4152- * #if (CAMD_VERSION >= CAMD_VERSION_CODE (1,2))
4153- * printf ("This is version 1.2 or later\n") ;
4154- * #else
4155- * printf ("This is an early version\n") ;
4156- * #endif
4157+ * #if (CAMD_VERSION >= CAMD_VERSION_CODE (1,2))
4158+ * printf ("This is version 1.2 or later\n") ;
4159+ * #else
4160+ * printf ("This is an early version\n") ;
4161+ * #endif
4162 */
4163
4164-#define CAMD_DATE "May 31, 2007"
4165+#define CAMD_DATE "Jun 20, 2012"
4166 #define CAMD_VERSION_CODE(main,sub) ((main) * 1000 + (sub))
4167 #define CAMD_MAIN_VERSION 2
4168-#define CAMD_SUB_VERSION 2
4169-#define CAMD_SUBSUB_VERSION 0
4170+#define CAMD_SUB_VERSION 3
4171+#define CAMD_SUBSUB_VERSION 1
4172 #define CAMD_VERSION CAMD_VERSION_CODE(CAMD_MAIN_VERSION,CAMD_SUB_VERSION)
4173
4174 #ifdef __cplusplus
4175
4176=== modified file 'CAMD/Include/camd_internal.h'
4177--- CAMD/Include/camd_internal.h 2007-05-29 09:36:29 +0000
4178+++ CAMD/Include/camd_internal.h 2013-12-08 03:08:50 +0000
4179@@ -3,10 +3,9 @@
4180 /* ========================================================================= */
4181
4182 /* ------------------------------------------------------------------------- */
4183-/* CAMD, Copyright (c) Timothy A. Davis, Yanqing Chen, */
4184+/* CAMD, Copyright (c) Timothy A. Davis, Yanqing Chen, */
4185 /* Patrick R. Amestoy, and Iain S. Duff. See ../README.txt for License. */
4186-/* email: davis at cise.ufl.edu CISE Department, Univ. of Florida. */
4187-/* web: http://www.cise.ufl.edu/research/sparse/camd */
4188+/* email: DrTimothyAldenDavis@gmail.com */
4189 /* ------------------------------------------------------------------------- */
4190
4191 /* This file is for internal use in CAMD itself, and does not normally need to
4192@@ -15,17 +14,17 @@
4193 *
4194 * The following compile-time definitions affect how CAMD is compiled.
4195 *
4196- * -DNPRINT
4197- *
4198- * Disable all printing. stdio.h will not be included. Printing can
4199- * be re-enabled at run-time by setting the global pointer camd_printf
4200- * to printf (or mexPrintf for a MATLAB mexFunction).
4201- *
4202- * -DNMALLOC
4203- *
4204- * No memory manager is defined at compile-time. You MUST define the
4205- * function pointers camd_malloc, camd_free, camd_realloc, and
4206- * camd_calloc at run-time for CAMD to work properly.
4207+ * -DNPRINT
4208+ *
4209+ * Disable all printing. stdio.h will not be included. Printing can
4210+ * be re-enabled at run-time by setting the global pointer camd_printf
4211+ * to printf (or mexPrintf for a MATLAB mexFunction).
4212+ *
4213+ * -DNMALLOC
4214+ *
4215+ * No memory manager is defined at compile-time. You MUST define the
4216+ * function pointers camd_malloc, camd_free, camd_realloc, and
4217+ * camd_calloc at run-time for CAMD to work properly.
4218 */
4219
4220 /* ========================================================================= */
4221@@ -155,21 +154,25 @@
4222
4223 /* largest value of size_t */
4224 #ifndef SIZE_T_MAX
4225+#ifdef SIZE_MAX
4226+/* C99 only */
4227+#define SIZE_T_MAX SIZE_MAX
4228+#else
4229 #define SIZE_T_MAX ((size_t) (-1))
4230 #endif
4231-
4232-/* ------------------------------------------------------------------------- */
4233-/* integer type for CAMD: int or UF_long */
4234-/* ------------------------------------------------------------------------- */
4235-
4236-/* define UF_long */
4237-#include "UFconfig.h"
4238+#endif
4239+
4240+/* ------------------------------------------------------------------------- */
4241+/* integer type for CAMD: int or SuiteSparse_long */
4242+/* ------------------------------------------------------------------------- */
4243+
4244+#include "camd.h"
4245
4246 #if defined (DLONG) || defined (ZLONG)
4247
4248-#define Int UF_long
4249-#define ID UF_long_id
4250-#define Int_MAX UF_long_max
4251+#define Int SuiteSparse_long
4252+#define ID SuiteSparse_long_id
4253+#define Int_MAX SuiteSparse_long_max
4254
4255 #define CAMD_order camd_l_order
4256 #define CAMD_defaults camd_l_defaults
4257@@ -219,12 +222,6 @@
4258 #define PRINTF(params) { if (camd_printf != NULL) (void) camd_printf params ; }
4259
4260 /* ------------------------------------------------------------------------- */
4261-/* CAMD routine definitions (user-callable) */
4262-/* ------------------------------------------------------------------------- */
4263-
4264-#include "camd.h"
4265-
4266-/* ------------------------------------------------------------------------- */
4267 /* CAMD routine definitions (not user-callable) */
4268 /* ------------------------------------------------------------------------- */
4269
4270
4271=== modified file 'CAMD/Lib/GNUmakefile'
4272--- CAMD/Lib/GNUmakefile 2007-05-29 09:36:29 +0000
4273+++ CAMD/Lib/GNUmakefile 2013-12-08 03:08:50 +0000
4274@@ -4,9 +4,9 @@
4275
4276 default: libcamd.a
4277
4278-include ../../UFconfig/UFconfig.mk
4279+include ../../SuiteSparse_config/SuiteSparse_config.mk
4280
4281-C = $(CC) $(CFLAGS) $(CONFIG) -I../Include -I../../UFconfig
4282+C = $(CC) $(CF) -I../Include -I../../SuiteSparse_config
4283
4284 #-------------------------------------------------------------------------------
4285 # source files
4286@@ -15,9 +15,8 @@
4287 CAMD = camd_aat camd_1 camd_2 camd_dump camd_postorder camd_defaults \
4288 camd_order camd_control camd_info camd_valid camd_preprocess
4289
4290-UFCONFIG = ../../UFconfig/UFconfig.h
4291-
4292-INC = ../Include/camd.h ../Include/camd_internal.h $(UFCONFIG)
4293+INC = ../Include/camd.h ../Include/camd_internal.h \
4294+ ../../SuiteSparse_config/SuiteSparse_config.h
4295
4296 #-------------------------------------------------------------------------------
4297 # object files for each version
4298@@ -44,7 +43,7 @@
4299 #-------------------------------------------------------------------------------
4300
4301 libcamd.a: camd_global.o $(CAMDI) $(CAMDL)
4302- $(AR) libcamd.a $^
4303+ $(ARCHIVE) libcamd.a $^
4304 - $(RANLIB) libcamd.a
4305
4306 #-------------------------------------------------------------------------------
4307
4308=== modified file 'CAMD/Lib/Makefile'
4309--- CAMD/Lib/Makefile 2007-05-29 09:36:29 +0000
4310+++ CAMD/Lib/Makefile 2013-12-08 03:08:50 +0000
4311@@ -8,9 +8,9 @@
4312
4313 default: everything
4314
4315-include ../../UFconfig/UFconfig.mk
4316+include ../../SuiteSparse_config/SuiteSparse_config.mk
4317
4318-C = $(CC) $(CFLAGS) $(CONFIG) -I../Include -I../../UFconfig
4319+C = $(CC) $(CF) -I../Include -I../../SuiteSparse_config
4320
4321 everything:
4322 $(C) -DDINT -c ../Source/camd_aat.c -o camd_i_aat.o
4323@@ -36,7 +36,8 @@
4324 $(C) -DDLONG -c ../Source/camd_valid.c -o camd_l_valid.o
4325 $(C) -DDLONG -c ../Source/camd_preprocess.c -o camd_l_preprocess.o
4326 $(C) -c ../Source/camd_global.c
4327- $(AR) libcamd.a camd_i_aat.o camd_i_1.o camd_i_2.o camd_i_dump.o \
4328+ $(ARCHIVE) libcamd.a \
4329+ camd_i_aat.o camd_i_1.o camd_i_2.o camd_i_dump.o \
4330 camd_i_postorder.o camd_i_defaults.o camd_i_order.o \
4331 camd_i_control.o camd_i_info.o camd_i_valid.o camd_l_aat.o \
4332 camd_l_1.o camd_l_2.o camd_l_dump.o camd_l_postorder.o \
4333
4334=== modified file 'CAMD/MATLAB/Contents.m'
4335--- CAMD/MATLAB/Contents.m 2007-05-29 09:36:29 +0000
4336+++ CAMD/MATLAB/Contents.m 2013-12-08 03:08:50 +0000
4337@@ -9,7 +9,6 @@
4338 %
4339 % See also: camd, amd, colamd, symamd, colmmd, symmmd, umfpack
4340
4341-% Copyright 1994-2007, Tim Davis, University of Florida,
4342-% Patrick R. Amestoy, Iain S. Duff, and Yanqing Chen.
4343+% Copyright 1994-2007, Tim Davis, Patrick R. Amestoy, Iain S. Duff, and Y. Chen.
4344
4345 help Contents
4346
4347=== removed file 'CAMD/MATLAB/Makefile'
4348--- CAMD/MATLAB/Makefile 2007-05-29 09:36:29 +0000
4349+++ CAMD/MATLAB/Makefile 1970-01-01 00:00:00 +0000
4350@@ -1,34 +0,0 @@
4351-#------------------------------------------------------------------------------
4352-# Makefile for the CAMD MATLAB mexFunction
4353-#------------------------------------------------------------------------------
4354-
4355-default: camd
4356-
4357-include ../../UFconfig/UFconfig.mk
4358-
4359-CAMD = ../Lib/libcamd.a
4360-
4361-I = -I../Include -I../../UFconfig
4362-
4363-INC = ../Include/camd.h ../Include/camd_internal.h ../../UFconfig/UFconfig.h
4364-
4365-SRC = ../Source/camd_1.c ../Source/camd_2.c ../Source/camd_aat.c \
4366- ../Source/camd_control.c ../Source/camd_defaults.c ../Source/camd_dump.c \
4367- ../Source/camd_global.c ../Source/camd_info.c ../Source/camd_order.c \
4368- ../Source/camd_postorder.c \
4369- ../Source/camd_preprocess.c ../Source/camd_valid.c
4370-
4371-camd: $(SRC) $(INC) camd_mex.c
4372- $(MEX) -DDLONG $(I) -output camd camd_mex.c $(SRC)
4373-
4374-#------------------------------------------------------------------------------
4375-# Remove all but the files in the original distribution
4376-#------------------------------------------------------------------------------
4377-
4378-clean:
4379- - $(RM) $(CLEAN)
4380-
4381-purge: distclean
4382-
4383-distclean: clean
4384- - $(RM) camd.mex*
4385
4386=== modified file 'CAMD/MATLAB/camd.m'
4387--- CAMD/MATLAB/camd.m 2007-05-29 09:36:29 +0000
4388+++ CAMD/MATLAB/camd.m 2013-12-08 03:08:50 +0000
4389@@ -68,8 +68,7 @@
4390 % See also AMD, COLMMD, COLAMD, COLPERM, SYMAMD, SYMMMD, SYMRCM.
4391
4392
4393-% Copyright 1994-2007, Tim Davis, University of Florida,
4394-% Patrick R. Amestoy, Iain S. Duff, and Yanqing Chen.
4395+% Copyright 1994-2007, Tim Davis, Patrick R. Amestoy, Iain S. Duff, and Y. Chen.
4396 %
4397 % Acknowledgements: This work was supported by the National Science
4398 % Foundation, under grants ASC-9111263, DMS-9223088, and CCR-0203270,
4399
4400=== modified file 'CAMD/MATLAB/camd_demo.m'
4401--- CAMD/MATLAB/camd_demo.m 2007-05-29 09:36:29 +0000
4402+++ CAMD/MATLAB/camd_demo.m 2013-12-08 03:08:50 +0000
4403@@ -8,8 +8,7 @@
4404 %
4405 % See also: camd, camd_make
4406
4407-% Copyright 1994-2007, Tim Davis, University of Florida,
4408-% Patrick R. Amestoy, Iain S. Duff, and Yanqing Chen.
4409+% Copyright 1994-2007, Tim Davis, Patrick R. Amestoy, Iain S. Duff, and Y. Chen.
4410
4411 % This orders the same matrix as the ANSI C demo, camd_demo.c. It includes an
4412 % additional analysis of the matrix via MATLAB's symbfact routine.
4413@@ -27,7 +26,6 @@
4414 rand ('state', 0) ;
4415 C = irand (6, n) ;
4416
4417-figure (1)
4418 clf
4419 hold off
4420 subplot (2,2,1) ;
4421
4422=== modified file 'CAMD/MATLAB/camd_make.m'
4423--- CAMD/MATLAB/camd_make.m 2007-05-29 09:36:29 +0000
4424+++ CAMD/MATLAB/camd_make.m 2013-12-08 03:08:50 +0000
4425@@ -6,8 +6,7 @@
4426 %
4427 % See also camd.
4428
4429-% Copyright 1994-2007, Tim Davis, University of Florida,
4430-% Patrick R. Amestoy, Iain S. Duff, and Yanqing Chen.
4431+% Copyright 1994-2007, Tim Davis, Patrick R. Amestoy, Iain S. Duff, and Y. Chen.
4432
4433 details = 0 ; % 1 if details of each command are to be printed
4434
4435@@ -16,13 +15,13 @@
4436 d = '-largeArrayDims' ;
4437 end
4438
4439-i = sprintf ('-I..%sInclude -I..%s..%sUFconfig', filesep, filesep, filesep) ;
4440+i = sprintf ('-I../Include -I../../SuiteSparse_config') ;
4441 cmd = sprintf ('mex -O %s -DDLONG -output camd %s camd_mex.c', d, i) ;
4442 files = {'camd_order', 'camd_dump', 'camd_postorder', ...
4443 'camd_aat', 'camd_2', 'camd_1', 'camd_defaults', 'camd_control', ...
4444 'camd_info', 'camd_valid', 'camd_global', 'camd_preprocess' } ;
4445 for i = 1 : length (files)
4446- cmd = sprintf ('%s ..%sSource%s%s.c', cmd, filesep, filesep, files {i}) ;
4447+ cmd = sprintf ('%s ../Source/%s.c', cmd, files {i}) ;
4448 end
4449 if (details)
4450 fprintf ('%s\n', cmd) ;
4451
4452=== modified file 'CAMD/MATLAB/camd_mex.c'
4453--- CAMD/MATLAB/camd_mex.c 2007-05-29 09:36:29 +0000
4454+++ CAMD/MATLAB/camd_mex.c 2013-12-08 03:08:50 +0000
4455@@ -5,8 +5,7 @@
4456 /* ------------------------------------------------------------------------- */
4457 /* CAMD, Copyright (c) Timothy A. Davis, Yanqing Chen, */
4458 /* Patrick R. Amestoy, and Iain S. Duff. See ../README.txt for License. */
4459-/* email: davis at cise.ufl.edu CISE Department, Univ. of Florida. */
4460-/* web: http://www.cise.ufl.edu/research/sparse/camd */
4461+/* email: DrTimothyAldenDavis@gmail.com */
4462 /* ------------------------------------------------------------------------- */
4463
4464 /*
4465@@ -30,7 +29,7 @@
4466 #include "camd.h"
4467 #include "mex.h"
4468 #include "matrix.h"
4469-#include "UFconfig.h"
4470+#define Long SuiteSparse_long
4471
4472 void mexFunction
4473 (
4474@@ -40,7 +39,7 @@
4475 const mxArray *pargin [ ]
4476 )
4477 {
4478- UF_long i, m, n, *Ap, *Ai, *P, nc, result, spumoni, full, *C, Clen ;
4479+ Long i, m, n, *Ap, *Ai, *P, nc, result, spumoni, full, *C, Clen ;
4480 double *Pout, *InfoOut, Control [CAMD_CONTROL], Info [CAMD_INFO],
4481 *ControlIn, *Cin ;
4482 mxArray *A ;
4483@@ -103,11 +102,11 @@
4484 Clen = mxGetNumberOfElements (pargin [2]) ;
4485 if (Clen != 0)
4486 {
4487- C = (UF_long *) mxCalloc (Clen, sizeof (UF_long)) ;
4488+ C = (Long *) mxCalloc (Clen, sizeof (Long)) ;
4489 for (i = 0 ; i < Clen ; i++)
4490 {
4491 /* convert c from 1-based to 0-based */
4492- C [i] = (UF_long) Cin [i] - 1 ;
4493+ C [i] = (Long) Cin [i] - 1 ;
4494 }
4495 }
4496 }
4497@@ -133,7 +132,7 @@
4498 /* allocate workspace for output permutation */
4499 /* --------------------------------------------------------------------- */
4500
4501- P = mxMalloc ((n+1) * sizeof (UF_long)) ;
4502+ P = mxMalloc ((n+1) * sizeof (Long)) ;
4503
4504 /* --------------------------------------------------------------------- */
4505 /* if A is full, convert to a sparse matrix */
4506@@ -149,8 +148,8 @@
4507 }
4508 mexCallMATLAB (1, &A, 1, (mxArray **) pargin, "sparse") ;
4509 }
4510- Ap = (UF_long *) mxGetJc (A) ;
4511- Ai = (UF_long *) mxGetIr (A) ;
4512+ Ap = (Long *) mxGetJc (A) ;
4513+ Ai = (Long *) mxGetIr (A) ;
4514 if (spumoni > 0)
4515 {
4516 mexPrintf (" input matrix A has %d nonzero entries\n", Ap [n]) ;
4517
4518=== modified file 'CAMD/Makefile'
4519--- CAMD/Makefile 2007-05-29 09:36:29 +0000
4520+++ CAMD/Makefile 2013-12-08 03:08:50 +0000
4521@@ -1,25 +1,21 @@
4522 #------------------------------------------------------------------------------
4523-# CAMD Makefile (for GNU Make or original make)
4524+# CAMD Makefile
4525 #------------------------------------------------------------------------------
4526
4527-default: demo
4528-
4529-include ../UFconfig/UFconfig.mk
4530-
4531-# Compile all C code, including the C-callable routine and the mexFunctions.
4532-# Do not compile the FORTRAN versions, or MATLAB interface.
4533-demo:
4534- ( cd Lib ; $(MAKE) )
4535- ( cd Demo ; $(MAKE) )
4536-
4537-# Compile all C code, including the C-callable routine and the mexFunctions.
4538-# Do not compile the FORTRAN versions.
4539+VERSION = 2.3.1
4540+
4541+default: demos
4542+
4543+include ../SuiteSparse_config/SuiteSparse_config.mk
4544+
4545+demos: all
4546+
4547+# Compile all C code. Do not compile the FORTRAN versions.
4548 all:
4549 ( cd Lib ; $(MAKE) )
4550 ( cd Demo ; $(MAKE) )
4551- ( cd MATLAB ; $(MAKE) )
4552
4553-# compile just the C-callable libraries (not mexFunctions or Demos)
4554+# compile just the C-callable libraries (not Demos)
4555 library:
4556 ( cd Lib ; $(MAKE) )
4557
4558@@ -27,20 +23,20 @@
4559 clean:
4560 ( cd Lib ; $(MAKE) clean )
4561 ( cd Demo ; $(MAKE) clean )
4562- ( cd MATLAB ; $(MAKE) clean )
4563+ ( cd MATLAB ; $(RM) $(CLEAN) )
4564 ( cd Doc ; $(MAKE) clean )
4565
4566 # clean, and then remove compiled programs and library archives
4567 purge:
4568 ( cd Lib ; $(MAKE) purge )
4569 ( cd Demo ; $(MAKE) purge )
4570- ( cd MATLAB ; $(MAKE) purge )
4571+ ( cd MATLAB ; $(RM) $(CLEAN) ; $(RM) *.mex* )
4572 ( cd Doc ; $(MAKE) purge )
4573
4574 distclean: purge
4575
4576 # create PDF documents for the original distribution
4577-doc:
4578+docs:
4579 ( cd Doc ; $(MAKE) )
4580
4581 # get ready for distribution
4582@@ -52,6 +48,16 @@
4583
4584 lib: library
4585
4586-# compile the MATLAB mexFunction
4587-mex:
4588- ( cd MATLAB ; $(MAKE) )
4589+# install CAMD
4590+install:
4591+ $(CP) Lib/libcamd.a $(INSTALL_LIB)/libcamd.$(VERSION).a
4592+ ( cd $(INSTALL_LIB) ; ln -sf libcamd.$(VERSION).a libcamd.a )
4593+ $(CP) Include/camd.h $(INSTALL_INCLUDE)
4594+ chmod 644 $(INSTALL_LIB)/libcamd*.a
4595+ chmod 644 $(INSTALL_INCLUDE)/camd.h
4596+
4597+# uninstall CAMD
4598+uninstall:
4599+ $(RM) $(INSTALL_LIB)/libcamd*.a
4600+ $(RM) $(INSTALL_INCLUDE)/camd.h
4601+
4602
4603=== modified file 'CAMD/README.txt'
4604--- CAMD/README.txt 2007-05-29 09:36:29 +0000
4605+++ CAMD/README.txt 2013-12-08 03:08:50 +0000
4606@@ -1,31 +1,30 @@
4607-CAMD Version 2.2, Copyright (c) 2007 by Timothy A. Davis, Yanqing Chen,
4608-Patrick R. Amestoy, and Iain S. Duff. All Rights Reserved.
4609-CAMD is available under alternate licences; contact T. Davis for details.
4610+CAMD, Copyright (c) 2007-2012, University of Florida.
4611+Written by Timothy A. Davis (http://www.suitesparse.com), Yanqing Chen, Patrick
4612+R. Amestoy, and Iain S. Duff. All Rights Reserved. CAMD is available under
4613+alternate licences; contact T. Davis for details.
4614
4615 CAMD: a set of routines for permuting sparse matrices prior to
4616 factorization. Includes a version in C, a version in Fortran, and a MATLAB
4617 mexFunction.
4618
4619-Requires UFconfig, in the ../UFconfig directory relative to this directory.
4620+Requires SuiteSparse_config, in the ../SuiteSparse_config directory relative to
4621+this directory.
4622
4623 Quick start (Unix, or Windows with Cygwin):
4624
4625 To compile, test, and install CAMD, you may wish to first configure the
4626- installation by editting the ../UFconfig/UFconfig.mk file. Next, cd to
4627- this directory (CAMD) and type "make" (or "make lib" if you do not have
4628- MATLAB). When done, type "make clean" to remove unused *.o files
4629- (keeps the compiled libraries and demo programs). See the User Guide
4630- (Doc/CAMD_UserGuide.pdf), or ../UFconfig/UFconfig.mk for more details.
4631+ installation by editting the ../SuiteSparse_config/SuiteSparse_config.mk
4632+ file. Next, cd to this directory (CAMD) and type "make" (or "make lib" if
4633+ you do not have MATLAB). When done, type "make clean" to remove unused *.o
4634+ files (keeps the compiled libraries and demo programs). See the User Guide
4635+ (Doc/CAMD_UserGuide.pdf), or ../SuiteSparse_config/SuiteSparse_config.mk
4636+ for more details.
4637
4638 Quick start (for MATLAB users);
4639
4640 To compile, test, and install the CAMD mexFunction, cd to the
4641 CAMD/MATLAB directory and type camd_make at the MATLAB prompt.
4642
4643-If you have MATLAB 7.2 or earlier and use "make mex", you must first edit
4644-UFconfig/UFconfig.h to remove the "-largeArrayDims" option from the MEX command
4645-(or just use camd_make.m inside MATLAB).
4646-
4647 -------------------------------------------------------------------------------
4648
4649 CAMD License:
4650@@ -60,7 +59,7 @@
4651
4652 Availability:
4653
4654- http://www.cise.ufl.edu/research/sparse/camd
4655+ http://www.suitesparse.com
4656
4657 -------------------------------------------------------------------------------
4658
4659@@ -77,7 +76,7 @@
4660
4661 Authors:
4662
4663- Timothy A. Davis (davis at cise.ufl.edu), University of Florida.
4664+ Timothy A. Davis (DrTimothyAldenDavis@gmail.com)
4665 Patrick R. Amestory, ENSEEIHT, Toulouse, France.
4666 Iain S. Duff, Rutherford Appleton Laboratory, UK.
4667
4668
4669=== modified file 'CAMD/Source/camd_1.c'
4670--- CAMD/Source/camd_1.c 2007-05-29 09:36:29 +0000
4671+++ CAMD/Source/camd_1.c 2013-12-08 03:08:50 +0000
4672@@ -5,8 +5,7 @@
4673 /* ------------------------------------------------------------------------- */
4674 /* CAMD, Copyright (c) Timothy A. Davis, Yanqing Chen, */
4675 /* Patrick R. Amestoy, and Iain S. Duff. See ../README.txt for License. */
4676-/* email: davis at cise.ufl.edu CISE Department, Univ. of Florida. */
4677-/* web: http://www.cise.ufl.edu/research/sparse/camd */
4678+/* email: DrTimothyAldenDavis@gmail.com */
4679 /* ------------------------------------------------------------------------- */
4680
4681 /* CAMD_1: Construct A+A' for a sparse matrix A and perform the CAMD ordering.
4682
4683=== modified file 'CAMD/Source/camd_2.c'
4684--- CAMD/Source/camd_2.c 2007-05-29 09:36:29 +0000
4685+++ CAMD/Source/camd_2.c 2013-12-08 03:08:50 +0000
4686@@ -5,8 +5,7 @@
4687 /* ------------------------------------------------------------------------- */
4688 /* CAMD, Copyright (c) Timothy A. Davis, Yanqing Chen, */
4689 /* Patrick R. Amestoy, and Iain S. Duff. See ../README.txt for License. */
4690-/* email: davis at cise.ufl.edu CISE Department, Univ. of Florida. */
4691-/* web: http://www.cise.ufl.edu/research/sparse/camd */
4692+/* email: DrTimothyAldenDavis@gmail.com */
4693 /* ------------------------------------------------------------------------- */
4694
4695 /* CAMD_2: performs the CAMD ordering on a symmetric sparse matrix A, followed
4696
4697=== modified file 'CAMD/Source/camd_aat.c'
4698--- CAMD/Source/camd_aat.c 2007-05-29 09:36:29 +0000
4699+++ CAMD/Source/camd_aat.c 2013-12-08 03:08:50 +0000
4700@@ -5,8 +5,7 @@
4701 /* ------------------------------------------------------------------------- */
4702 /* CAMD, Copyright (c) Timothy A. Davis, Yanqing Chen, */
4703 /* Patrick R. Amestoy, and Iain S. Duff. See ../README.txt for License. */
4704-/* email: davis at cise.ufl.edu CISE Department, Univ. of Florida. */
4705-/* web: http://www.cise.ufl.edu/research/sparse/camd */
4706+/* email: DrTimothyAldenDavis@gmail.com */
4707 /* ------------------------------------------------------------------------- */
4708
4709 /* CAMD_aat: compute the symmetry of the pattern of A, and count the number of
4710
4711=== modified file 'CAMD/Source/camd_control.c'
4712--- CAMD/Source/camd_control.c 2007-05-29 09:36:29 +0000
4713+++ CAMD/Source/camd_control.c 2013-12-08 03:08:50 +0000
4714@@ -5,8 +5,7 @@
4715 /* ------------------------------------------------------------------------- */
4716 /* CAMD, Copyright (c) Timothy A. Davis, Yanqing Chen, */
4717 /* Patrick R. Amestoy, and Iain S. Duff. See ../README.txt for License. */
4718-/* email: davis at cise.ufl.edu CISE Department, Univ. of Florida. */
4719-/* web: http://www.cise.ufl.edu/research/sparse/camd */
4720+/* email: DrTimothyAldenDavis@gmail.com */
4721 /* ------------------------------------------------------------------------- */
4722
4723 /* User-callable. Prints the control parameters for CAMD. See camd.h
4724
4725=== modified file 'CAMD/Source/camd_defaults.c'
4726--- CAMD/Source/camd_defaults.c 2007-05-29 09:36:29 +0000
4727+++ CAMD/Source/camd_defaults.c 2013-12-08 03:08:50 +0000
4728@@ -5,8 +5,7 @@
4729 /* ------------------------------------------------------------------------- */
4730 /* CAMD, Copyright (c) Timothy A. Davis, Yanqing Chen, */
4731 /* Patrick R. Amestoy, and Iain S. Duff. See ../README.txt for License. */
4732-/* email: davis at cise.ufl.edu CISE Department, Univ. of Florida. */
4733-/* web: http://www.cise.ufl.edu/research/sparse/camd */
4734+/* email: DrTimothyAldenDavis@gmail.com */
4735 /* ------------------------------------------------------------------------- */
4736
4737 /* User-callable. Sets default control parameters for CAMD. See camd.h
4738
4739=== modified file 'CAMD/Source/camd_dump.c'
4740--- CAMD/Source/camd_dump.c 2007-05-29 09:36:29 +0000
4741+++ CAMD/Source/camd_dump.c 2013-12-08 03:08:50 +0000
4742@@ -5,8 +5,7 @@
4743 /* ------------------------------------------------------------------------- */
4744 /* CAMD, Copyright (c) Timothy A. Davis, Yanqing Chen, */
4745 /* Patrick R. Amestoy, and Iain S. Duff. See ../README.txt for License. */
4746-/* email: davis at cise.ufl.edu CISE Department, Univ. of Florida. */
4747-/* web: http://www.cise.ufl.edu/research/sparse/camd */
4748+/* email: DrTimothyAldenDavis@gmail.com */
4749 /* ------------------------------------------------------------------------- */
4750
4751 /* Debugging routines for CAMD. Not used if NDEBUG is not defined at compile-
4752
4753=== modified file 'CAMD/Source/camd_global.c'
4754--- CAMD/Source/camd_global.c 2007-05-29 09:36:29 +0000
4755+++ CAMD/Source/camd_global.c 2013-12-08 03:08:50 +0000
4756@@ -5,8 +5,7 @@
4757 /* ------------------------------------------------------------------------- */
4758 /* CAMD, Copyright (c) Timothy A. Davis, Yanqing Chen, */
4759 /* Patrick R. Amestoy, and Iain S. Duff. See ../README.txt for License. */
4760-/* email: davis at cise.ufl.edu CISE Department, Univ. of Florida. */
4761-/* web: http://www.cise.ufl.edu/research/sparse/camd */
4762+/* email: DrTimothyAldenDavis@gmail.com */
4763 /* ------------------------------------------------------------------------- */
4764
4765 #include <stdlib.h>
4766
4767=== modified file 'CAMD/Source/camd_info.c'
4768--- CAMD/Source/camd_info.c 2007-05-29 09:36:29 +0000
4769+++ CAMD/Source/camd_info.c 2013-12-08 03:08:50 +0000
4770@@ -5,8 +5,7 @@
4771 /* ------------------------------------------------------------------------- */
4772 /* CAMD, Copyright (c) Timothy A. Davis, Yanqing Chen, */
4773 /* Patrick R. Amestoy, and Iain S. Duff. See ../README.txt for License. */
4774-/* email: davis at cise.ufl.edu CISE Department, Univ. of Florida. */
4775-/* web: http://www.cise.ufl.edu/research/sparse/camd */
4776+/* email: DrTimothyAldenDavis@gmail.com */
4777 /* ------------------------------------------------------------------------- */
4778
4779 /* User-callable. Prints the output statistics for CAMD. See camd.h
4780
4781=== modified file 'CAMD/Source/camd_order.c'
4782--- CAMD/Source/camd_order.c 2007-05-29 09:36:29 +0000
4783+++ CAMD/Source/camd_order.c 2013-12-08 03:08:50 +0000
4784@@ -5,8 +5,7 @@
4785 /* ------------------------------------------------------------------------- */
4786 /* CAMD, Copyright (c) Timothy A. Davis, Yanqing Chen, */
4787 /* Patrick R. Amestoy, and Iain S. Duff. See ../README.txt for License. */
4788-/* email: davis at cise.ufl.edu CISE Department, Univ. of Florida. */
4789-/* web: http://www.cise.ufl.edu/research/sparse/camd */
4790+/* email: DrTimothyAldenDavis@gmail.com */
4791 /* ------------------------------------------------------------------------- */
4792
4793 /* User-callable CAMD minimum degree ordering routine. See camd.h for
4794
4795=== modified file 'CAMD/Source/camd_postorder.c'
4796--- CAMD/Source/camd_postorder.c 2007-05-29 09:36:29 +0000
4797+++ CAMD/Source/camd_postorder.c 2013-12-08 03:08:50 +0000
4798@@ -5,8 +5,7 @@
4799 /* ------------------------------------------------------------------------- */
4800 /* CAMD, Copyright (c) Timothy A. Davis, Yanqing Chen, */
4801 /* Patrick R. Amestoy, and Iain S. Duff. See ../README.txt for License. */
4802-/* email: davis at cise.ufl.edu CISE Department, Univ. of Florida. */
4803-/* web: http://www.cise.ufl.edu/research/sparse/camd */
4804+/* email: DrTimothyAldenDavis@gmail.com */
4805 /* ------------------------------------------------------------------------- */
4806
4807 /* Perform a postordering (via depth-first search) of an assembly tree. */
4808
4809=== modified file 'CAMD/Source/camd_preprocess.c'
4810--- CAMD/Source/camd_preprocess.c 2007-05-29 09:36:29 +0000
4811+++ CAMD/Source/camd_preprocess.c 2013-12-08 03:08:50 +0000
4812@@ -5,8 +5,7 @@
4813 /* ------------------------------------------------------------------------- */
4814 /* CAMD, Copyright (c) Timothy A. Davis, Yanqing Chen, */
4815 /* Patrick R. Amestoy, and Iain S. Duff. See ../README.txt for License. */
4816-/* email: davis at cise.ufl.edu CISE Department, Univ. of Florida. */
4817-/* web: http://www.cise.ufl.edu/research/sparse/camd */
4818+/* email: DrTimothyAldenDavis@gmail.com */
4819 /* ------------------------------------------------------------------------- */
4820
4821 /* Sorts, removes duplicate entries, and transposes from the nonzero pattern of
4822
4823=== modified file 'CAMD/Source/camd_valid.c'
4824--- CAMD/Source/camd_valid.c 2007-05-29 09:36:29 +0000
4825+++ CAMD/Source/camd_valid.c 2013-12-08 03:08:50 +0000
4826@@ -5,8 +5,7 @@
4827 /* ------------------------------------------------------------------------- */
4828 /* CAMD, Copyright (c) Timothy A. Davis, Yanqing Chen, */
4829 /* Patrick R. Amestoy, and Iain S. Duff. See ../README.txt for License. */
4830-/* email: davis at cise.ufl.edu CISE Department, Univ. of Florida. */
4831-/* web: http://www.cise.ufl.edu/research/sparse/camd */
4832+/* email: DrTimothyAldenDavis@gmail.com */
4833 /* ------------------------------------------------------------------------- */
4834
4835 /* Check if a column-form matrix is valid or not. The matrix A is
4836
4837=== modified file 'CCOLAMD/Demo/Makefile'
4838--- CCOLAMD/Demo/Makefile 2007-05-29 09:36:29 +0000
4839+++ CCOLAMD/Demo/Makefile 2013-12-08 03:08:50 +0000
4840@@ -4,11 +4,11 @@
4841
4842 default: ccolamd_example ccolamd_l_example
4843
4844-include ../../UFconfig/UFconfig.mk
4845-
4846-I = -I../Include -I../../UFconfig
4847-
4848-C = $(CC) $(CFLAGS) $(I)
4849+include ../../SuiteSparse_config/SuiteSparse_config.mk
4850+
4851+I = -I../Include -I../../SuiteSparse_config
4852+
4853+C = $(CC) $(CF) $(I)
4854
4855 library:
4856 ( cd ../Lib ; $(MAKE) )
4857@@ -27,7 +27,7 @@
4858 ccolamd_l_example: ccolamd_l_example.c library
4859 $(C) -o ccolamd_l_example ccolamd_l_example.c ../Lib/libccolamd.a -lm
4860 - ./ccolamd_l_example > my_ccolamd_l_example.out
4861- - diff ccolamd_example.out my_ccolamd_example.out
4862+ - diff ccolamd_l_example.out my_ccolamd_l_example.out
4863
4864 #------------------------------------------------------------------------------
4865 # Remove all but the files in the original distribution
4866@@ -41,3 +41,4 @@
4867 distclean: clean
4868 - $(RM) ccolamd_example ccolamd_l_example
4869 - $(RM) my_ccolamd_example.out my_ccolamd_l_example.out
4870+ - $(RM) -r *.dSYM
4871
4872=== modified file 'CCOLAMD/Demo/ccolamd_example.c'
4873--- CCOLAMD/Demo/ccolamd_example.c 2007-05-29 09:36:29 +0000
4874+++ CCOLAMD/Demo/ccolamd_example.c 2013-12-08 03:08:50 +0000
4875@@ -6,7 +6,6 @@
4876 * CCOLAMD Copyright (C), Univ. of Florida. Authors: Timothy A. Davis,
4877 * Sivasankaran Rajamanickam, and Stefan Larimore
4878 * See License.txt for the Version 2.1 of the GNU Lesser General Public License
4879- * http://www.cise.ufl.edu/research/sparse
4880 * -------------------------------------------------------------------------- */
4881
4882 /*
4883
4884=== modified file 'CCOLAMD/Demo/ccolamd_example.out'
4885--- CCOLAMD/Demo/ccolamd_example.out 2008-02-21 14:46:50 +0000
4886+++ CCOLAMD/Demo/ccolamd_example.out 2013-12-08 03:08:50 +0000
4887@@ -15,7 +15,7 @@
4888 row 1
4889 row 3
4890
4891-ccolamd version 2.7, Nov 1, 2007: OK.
4892+ccolamd version 2.8, Jun 1, 2012: OK.
4893 ccolamd: number of dense or empty rows ignored: 0
4894 ccolamd: number of dense or empty columns ignored: 0
4895 ccolamd: number of garbage collections performed: 0
4896@@ -38,7 +38,7 @@
4897 row 4
4898 Column 4, with 0 entries:
4899
4900-csymamd version 2.7, Nov 1, 2007: OK.
4901+csymamd version 2.8, Jun 1, 2012: OK.
4902 csymamd: number of dense or empty rows ignored: 0
4903 csymamd: number of dense or empty columns ignored: 0
4904 csymamd: number of garbage collections performed: 0
4905
4906=== modified file 'CCOLAMD/Demo/ccolamd_l_example.c'
4907--- CCOLAMD/Demo/ccolamd_l_example.c 2007-05-29 09:36:29 +0000
4908+++ CCOLAMD/Demo/ccolamd_l_example.c 2013-12-08 03:08:50 +0000
4909@@ -1,12 +1,11 @@
4910 /* ========================================================================== */
4911-/* === ccolamd and csymamd example (UF_long integer version) ================ */
4912+/* === ccolamd and csymamd example (long integer version) =================== */
4913 /* ========================================================================== */
4914
4915 /* ----------------------------------------------------------------------------
4916 * CCOLAMD Copyright (C), Univ. of Florida. Authors: Timothy A. Davis,
4917 * Sivasankaran Rajamanickam, and Stefan Larimore
4918 * See License.txt for the Version 2.1 of the GNU Lesser General Public License
4919- * http://www.cise.ufl.edu/research/sparse
4920 * -------------------------------------------------------------------------- */
4921
4922 /*
4923@@ -46,9 +45,6 @@
4924 #define B_NNZ 4
4925 #define B_N 5
4926
4927-/* define UF_long */
4928-#include "UFconfig.h"
4929-
4930 int main (void)
4931 {
4932
4933@@ -56,14 +52,14 @@
4934 /* input matrix A definition */
4935 /* ====================================================================== */
4936
4937- UF_long A [ALEN] = {
4938+ SuiteSparse_long A [ALEN] = {
4939
4940 0, 1, 4, /* row indices of nonzeros in column 0 */
4941 2, 4, /* row indices of nonzeros in column 1 */
4942 0, 1, 2, 3, /* row indices of nonzeros in column 2 */
4943 1, 3} ; /* row indices of nonzeros in column 3 */
4944
4945- UF_long p [ ] = {
4946+ SuiteSparse_long p [ ] = {
4947
4948 0, /* column 0 is in A [0..2] */
4949 3, /* column 1 is in A [3..4] */
4950@@ -75,7 +71,7 @@
4951 /* input matrix B definition */
4952 /* ====================================================================== */
4953
4954- UF_long B [ ] = { /* Note: only strictly lower triangular part */
4955+ SuiteSparse_long B [ ] = { /* Note: only strictly lower triangular part */
4956 /* is included, since symamd ignores the */
4957 /* diagonal and upper triangular part of B. */
4958
4959@@ -85,7 +81,7 @@
4960 4 /* row indices of nonzeros in column 3 */
4961 } ; /* row indices of nonzeros in column 4 (none) */
4962
4963- UF_long q [ ] = {
4964+ SuiteSparse_long q [ ] = {
4965
4966 0, /* column 0 is in B [0] */
4967 1, /* column 1 is in B [1..2] */
4968@@ -98,10 +94,9 @@
4969 /* other variable definitions */
4970 /* ====================================================================== */
4971
4972- UF_long perm [B_N+1] ; /* note the size is N+1 */
4973- UF_long stats [CCOLAMD_STATS] ; /* for ccolamd and csymamd output stats */
4974-
4975- UF_long row, col, pp, length, ok ;
4976+ SuiteSparse_long perm [B_N+1] ; /* note the size is N+1 */
4977+ SuiteSparse_long stats [CCOLAMD_STATS] ; /* ccolamd/csymamd output stats */
4978+ SuiteSparse_long row, col, pp, length, ok ;
4979
4980 /* ====================================================================== */
4981 /* dump the input matrix A */
4982
4983=== modified file 'CCOLAMD/Demo/ccolamd_l_example.out'
4984--- CCOLAMD/Demo/ccolamd_l_example.out 2008-02-21 14:46:50 +0000
4985+++ CCOLAMD/Demo/ccolamd_l_example.out 2013-12-08 03:08:50 +0000
4986@@ -15,7 +15,7 @@
4987 row 1
4988 row 3
4989
4990-ccolamd version 2.7, Nov 1, 2007: OK.
4991+ccolamd version 2.8, Jun 1, 2012: OK.
4992 ccolamd: number of dense or empty rows ignored: 0
4993 ccolamd: number of dense or empty columns ignored: 0
4994 ccolamd: number of garbage collections performed: 0
4995@@ -38,7 +38,7 @@
4996 row 4
4997 Column 4, with 0 entries:
4998
4999-csymamd version 2.7, Nov 1, 2007: OK.
5000+csymamd version 2.8, Jun 1, 2012: OK.
The diff has been truncated for viewing.

Subscribers

People subscribed via source and target branches

to all changes: