# Maxtrix inverse

**URL:** <https://www.ruby-forum.com/t/maxtrix-inverse/239848>\
**Category:** GNU Radio\
**Created:** [March 17, 2014, 8:52am UTC](https://www.ruby-forum.com/t/maxtrix-inverse/239848 "2014-03-17T08:52:23Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![musicdenotation](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/ea666f/32.png) [@musicdenotation](https://www.ruby-forum.com/u/musicdenotation)\
**Post date:** [March 17, 2014, 8:52am UTC](https://www.ruby-forum.com/t/maxtrix-inverse/239848/1 "2014-03-17T08:52:23Z")

</div>

hi,  
when i deal data in my block,i want to scramble the positions symbol in  
a frame,and at receiver-end descramble these symbols,get correct the  
order,for this purpose,i need to compute the inverse of 64\*64  
matrix,and when i used the eigen library ,it works slowly wnen compare  
with the deal data speed of gnuradio,anyone could give me some other  
libraries or other methods to satify my need,  
thanks ,  
BZS

---

<div class="post-metadata">

**Author:** ![casper\_the\_ghost](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/58956e/32.png) [@casper\_the\_ghost](https://www.ruby-forum.com/u/casper_the_ghost)\
**Post date:** [March 17, 2014, 11:52am UTC](https://www.ruby-forum.com/t/maxtrix-inverse/239848/2 "2014-03-17T11:52:02Z")

</div>

Hi BZS,

Eigen is a pretty good library. Other’s that might come to might is  
using blas/lapack in fortran or armadillo. I wouldn’t expect too much  
of a speedup when compared to Eigen though. For examples on how to use  
fortran or armadillo with GNU Radio look at the gr-specest out of tree  
module.

Cheers,

Moritz

---

<div class="post-metadata">

**Author:** ![casper\_the\_ghost](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/58956e/32.png) [@casper\_the\_ghost](https://www.ruby-forum.com/u/casper_the_ghost)\
**Post date:** [March 20, 2014, 12:14pm UTC](https://www.ruby-forum.com/t/maxtrix-inverse/239848/3 "2014-03-20T12:14:17Z")

</div>

Can we replace Eigen with VOLK in some extent?

- 

NE

Понедельник, 17 марта 2014, 11:50 +01:00 от Moritz Fischer  
[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid):

---

<div class="post-metadata">

**Author:** ![casper\_the\_ghost](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/58956e/32.png) [@casper\_the\_ghost](https://www.ruby-forum.com/u/casper_the_ghost)\
**Post date:** [March 20, 2014, 3:02pm UTC](https://www.ruby-forum.com/t/maxtrix-inverse/239848/4 "2014-03-20T15:02:33Z")

</div>

On Thu, Mar 20, 2014 at 7:15 AM, Moritz Fischer  
[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> Well you could implement your Matrix inversion using VOLK, of course.  
> But to my knowledge you’d have to write the necessary kernels yourself.
> 
> Cheers,
> 
> Moritz

No, but it would be nice to have a kernel for that.

The caveat is that VOLK is really meant for and designed to work with  
vectors, not matrices. So you’d have to adapt the concept to work with  
the matrix as a long vector and provide the dimensions to the kernel.

Tom

---

<div class="post-metadata">

**Author:** ![casper\_the\_ghost](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/58956e/32.png) [@casper\_the\_ghost](https://www.ruby-forum.com/u/casper_the_ghost)\
**Post date:** [March 20, 2014, 12:16pm UTC](https://www.ruby-forum.com/t/maxtrix-inverse/239848/5 "2014-03-20T12:16:38Z")

</div>

Well you could implement your Matrix inversion using VOLK, of course.  
But to my knowledge you’d have to write the necessary kernels yourself.

Cheers,

Moritz

---

<div class="post-metadata">

**Author:** ![casper\_the\_ghost](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/58956e/32.png) [@casper\_the\_ghost](https://www.ruby-forum.com/u/casper_the_ghost)\
**Post date:** [March 20, 2014, 5:26pm UTC](https://www.ruby-forum.com/t/maxtrix-inverse/239848/6 "2014-03-20T17:26:18Z")

</div>

I have had success using armadillo matrix inversions within GNURadio.  
The  
only thing you need to be careful of is that when you install the  
library  
you need to ensure that you install the hardware accelerated versions of  
BLAS and LAPACK; I have seen this result in a 200 X slowdown. For a  
64\*64  
matrix, armadillo will be able to keep up with your data fairly well.  
On  
my machine with an AMD A8 processor running Fedora 20, such an operation  
would take less than 1 ms.

Michael B.
