# Cholmod In-place Solvers

**URL:** https://discourse.julialang.org/t/cholmod-in-place-solvers/740
**Category:** General Usage
**Created:** [December 5, 2016, 3:19pm UTC](https://discourse.julialang.org/t/cholmod-in-place-solvers/740 "2016-12-05T15:19:11Z")
**Posts on this page:** 5
**Page:** 1

<div class="post-metadata">

### Author: ![cortner](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/cortner/32/204_2.png) [@cortner](https://discourse.julialang.org/u/cortner)
#### Post date: [December 5, 2016, 3:19pm UTC](https://discourse.julialang.org/t/cholmod-in-place-solvers/740/1 "2016-12-05T15:19:11Z")

</div>

I noticed that `Base.SparseArrays.CHOLMOD` define

```julia
(\), A_mul_Bc, A_mul_Bt, Ac_ldiv_B, Ac_mul_B, At_ldiv_B, At_mul_B

```

but none of the in-place variants. Does the `CHOLMOD` package not support in-place?

It would be nice to hove in-place variants since in some cases, when the sparse factors are very simple, the allocation is actually more overhead than the solve. (but I need _many_, hence the concern)

---

<div class="post-metadata">

### Author: ![Stephen\_Vavasis](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/stephen_vavasis/32/3389_2.png) [@Stephen\_Vavasis](https://discourse.julialang.org/u/Stephen_Vavasis)
#### Post date: [December 6, 2016, 2:57am UTC](https://discourse.julialang.org/t/cholmod-in-place-solvers/740/2 "2016-12-06T02:57:15Z")

</div>

This is not exactly what you requested, but I wrote some in-place forward/backward substitution routines that can be used with the Cholesky factorization from SparseSuite. I also wrote a sparse rank-determination routine based on the SparseSuite “squeezed QR factorization.” I’m not really supporting this code, since it is for my personal use, but you are welcome to grab anything helpful from it (MIT License): [StephenVavasis’s gists · GitHub](https://gist.github.com/StephenVavasis/)

---

<div class="post-metadata">

### Author: ![cortner](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/cortner/32/204_2.png) [@cortner](https://discourse.julialang.org/u/cortner)
#### Post date: [December 6, 2016, 8:50am UTC](https://discourse.julialang.org/t/cholmod-in-place-solvers/740/3 "2016-12-06T08:50:36Z")

</div>

thanks for this, I’ll try it out. But as you wrote your own, it seems to confirm that no in-place solvers are available in CHOLMOD?

---

<div class="post-metadata">

### Author: ![Stephen\_Vavasis](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/stephen_vavasis/32/3389_2.png) [@Stephen\_Vavasis](https://discourse.julialang.org/u/Stephen_Vavasis)
#### Post date: [December 7, 2016, 5:13am UTC](https://discourse.julialang.org/t/cholmod-in-place-solvers/740/4 "2016-12-07T05:13:16Z")

</div>

Since none of the core Julia developers have answered this thread, I’ll give you my impression of the state of affairs. Right now Julia exposes and documents a few of the most useful capabilities of SuiteSparse. The remaining capabilities, also quite useful, are available via low-level wrappers that require reading the SuiteSparse documentation or even the code. The core developers seem to agree that it would be useful to have more of the capabilities of SuiteSparse wrapped in a user-friendly way and documented in Julia, but this task is not a high priority for inclusion in 0.6.

---

<div class="post-metadata">

### Author: ![cortner](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/cortner/32/204_2.png) [@cortner](https://discourse.julialang.org/u/cortner)
#### Post date: [December 7, 2016, 10:29am UTC](https://discourse.julialang.org/t/cholmod-in-place-solvers/740/5 "2016-12-07T10:29:38Z")

</div>

Where is this though on the priority list compared with re-implementing those factorisations in pure Julia?
