# Speed up matrix multiplication with permuted vector

**URL:** <https://discourse.julialang.org/t/speed-up-matrix-multiplication-with-permuted-vector/67491>\
**Category:** Performance\
**Tags:** linearalgebra, sparse\
**Created:** [September 1, 2021, 10:55am UTC](https://discourse.julialang.org/t/speed-up-matrix-multiplication-with-permuted-vector/67491 "2021-09-01T10:55:22Z")\
**Posts on this page:** 1\
**Showing post:** 6

<div class="post-metadata">

**Author:** ![Thomas](https://avatars.discourse-cdn.com/v4/letter/t/e36b37/32.png) [@Thomas](https://discourse.julialang.org/u/Thomas)\
**Post date:** [September 1, 2021, 11:24am UTC](https://discourse.julialang.org/t/speed-up-matrix-multiplication-with-permuted-vector/67491/6 "2021-09-01T11:24:51Z")

</div>

I checked just compute `x[QR.prow]` is also slow.

> [@Sukera](#):
>
> n’t the suggestion at the end of the post you linked do

Thanks for your suggestion. The suggested method works for full-rank case but I am developing an algorithm for rank-deficient case which requires the former method. I think `A\x` dispatch to `qr(A)\x` which computes a basic least square solution (not for rank-deficient case).

Also in some case `A::Adjoint{<:Any, <:AbstractSparseMatrix}` and due to memory issue I cannot materialize the adjoint ([OutOfMemoryError with sparse A'\*A](https://discourse.julialang.org/t/outofmemoryerror-with-sparse-a-a/65911)) and has to work with orthogonal projection via `A.parent`.

---

_[View the full topic](https://discourse.julialang.org/t/speed-up-matrix-multiplication-with-permuted-vector/67491)._
