Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WIP: Linear Algebra bikeshedding #2212

Closed
wants to merge 13 commits into from
Closed

WIP: Linear Algebra bikeshedding #2212

wants to merge 13 commits into from

Commits on Feb 4, 2013

  1. Reinstate all the commits from #2069.

    Relevant comments are in #2062.
    ViralBShah committed Feb 4, 2013
    Configuration menu
    Copy the full SHA
    df8f86e View commit details
    Browse the repository at this point in the history

Commits on Feb 6, 2013

  1. Configuration menu
    Copy the full SHA
    bc7dec7 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    fe13a03 View commit details
    Browse the repository at this point in the history
  3. Improve UMFpack interface

    - use lud and lud! methods for the decomposition
    - allocate umf_conf and umf_info and use them throughout
    - preserve the pointers to the symbolic and numeric factorizations in
      the UmfpackLU object.  Also keep around the decremented
      index/pointer vectors.
    dmbates committed Feb 6, 2013
    Configuration menu
    Copy the full SHA
    ccf2024 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    b96e9c2 View commit details
    Browse the repository at this point in the history

Commits on Feb 7, 2013

  1. Configuration menu
    Copy the full SHA
    c5b0fe0 View commit details
    Browse the repository at this point in the history
  2. Rename QRPDense to QRDensePivoted. Use qr and qrpivot instead of qrd …

    …and qrpd.
    
    Update docs for qr.
    ViralBShah committed Feb 7, 2013
    Configuration menu
    Copy the full SHA
    2fe3c04 View commit details
    Browse the repository at this point in the history
  3. 2 Configuration menu
    Copy the full SHA
    b259333 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    bf427cd View commit details
    Browse the repository at this point in the history
  5. Merge branch 'master' into vs/linalg2

    Conflicts:
    	base/deprecated.jl
    	test/Makefile
    ViralBShah committed Feb 7, 2013
    Configuration menu
    Copy the full SHA
    1187918 View commit details
    Browse the repository at this point in the history
  6. Got the basic CHOLMOD functions associated with a dense matrix workin…

    …g by defining a Julia type
    
    Well, working on a 64-bit system and these are only the calls to
    cholmod_check_dense and cholmod_print_dense, as in
    
    julia> aa = randn(10,2)
    10x2 Float64 Array:
     -1.1131     -0.276926
     -1.18138    -2.17424
      0.615017   -0.341257
      0.0714101  -0.0933698
     -0.493773   -0.520607
      0.989568   -0.0106482
      1.33313    -0.204813
     -0.199893   -0.983869
      0.934582   -0.0652311
      0.792507   -0.369899
    
    julia> cda = CholmodDense(aa)
    CholmodDense{Float64}(10,2,20,10,Ptr{Float64} @0x0000000003186070,Ptr{Void} @0x0000000000000000,1,0,10x2 Float64 Array:
     -1.1131     -0.276926
     -1.18138    -2.17424
      0.615017   -0.341257
      0.0714101  -0.0933698
     -0.493773   -0.520607
      0.989568   -0.0106482
      1.33313    -0.204813
     -0.199893   -0.983869
      0.934582   -0.0652311
      0.792507   -0.369899 ,false)
    
    julia> SuiteSparse.chm_chk_dn(cda)
    1
    
    julia> SuiteSparse.chm_prt_dn(cda)
    
    CHOLMOD dense:   :  10-by-2,
      leading dimension 10, nzmax 20, real, double
      col 0:
             0: -1.1131
             1: -1.1814
             2: 0.61502
             3: 0.07141
             4: -0.49377
             5: 0.98957
             6: 1.3331
             7: -0.19989
        ...
      col 1:
             0: -0.27693
             1: -2.1742
             2: -0.34126
             3: -0.09337
        ...
             6: -0.20481
             7: -0.98387
             8: -0.065231
             9: -0.3699
      OK
    
    4-element Uint8 Array:
     0x03
     0x00
     0x00
     0x00
    
    Not exactly earth-shattering but at least it is a proof-of-concept for
    using a Julia type to pass a pointer to a struct to one of the CHOLMOD
    functions.
    dmbates committed Feb 7, 2013
    7 Configuration menu
    Copy the full SHA
    5ddf16b View commit details
    Browse the repository at this point in the history
  7. Defined a CholmodSparse type

    but my external constructor from a SparseMatrix{Tv,Ti} is not working
    as hoped.  I'm pushing this commit in case someone can try
    ```julia
    require("suitesparse")
    using SuiteSparse
    A = sprand(8,4,0.25);
    ca = CholmodSparse(A)
    ```
    and tell me why I get a no method error.
    dmbates committed Feb 7, 2013
    Configuration menu
    Copy the full SHA
    2ce6abc View commit details
    Browse the repository at this point in the history

Commits on Feb 8, 2013

  1. Incorporate suggestion from Jameson on keeping pointer contents alive

    Defined types c_CholmodDense which mirrors the cholmod_dense C struct and a wrapper
    type CholmodDense that retains the Julia matrix when constructed from one and retains
    the pointer itself when constructed from *cholmod_dense returned from C.
    
    Still need to add a finalizer for the CholmodDense type and create
    similar types for CholmodSparse, CholmodFactor and CholmodTriplet.
    dmbates committed Feb 8, 2013
    Configuration menu
    Copy the full SHA
    614530e View commit details
    Browse the repository at this point in the history