Re: pybombs install gr-osmosdr ........ bunch of errors

2020-01-16 Thread César MR
Hi!

Try this:
Uninstall MPIR3.0: it didn’t solve the problem you had, and it can cause 
incompatibilities

sudo apt-get update

sudo apt-get install libgmp-dev


It’s posible that you will need to install liborc-0.4 package too

Cesar.




Re: Project call this Thursday!

2020-01-16 Thread Martin Braun
Hi all,

we'll start the live stream on twitch.tv/gnuradio in a few minutes,
whoever wants to join us, please go to IRC or Slack where we'll post
the link very soon.

--M

On Mon, Jan 13, 2020 at 10:57 AM Martin Braun  wrote:
>
> Hi all,
>
> We have our monthly project call this Thursday 11AM Pacific time, 19:00 CET. 
> Please join us on IRC or slack if you like to join.
>
> See you there!
>
> Martin



Library for matrix operations? (eigenvalues, pseudoinverse)

2020-01-16 Thread Laura Arjona
Hi all,

Is there any library to use in gnuradio for algebra operations, such as
matrix eigenvalues, and pseudoinverse? Or I'd need to code them myself in
C++?

I need to integrate those operations into my OOT C++ blocks.

Thanks for your time

Best

-- 
*Laura Arjona *
Washington Research Foundation Innovation Postdoctoral Fellow in
Neuroengineering

*Paul G. Allen School of Computer Science & Engineering*
185 E Stevens Way NE
University of Washington
Seattle, WA 98195-2350


Re: Library for matrix operations? (eigenvalues, pseudoinverse)

2020-01-16 Thread Nate Temple
Hi Laura,

Armadillo is a common c++ lib for linear algebra. gr-doa makes use of it.

http://arma.sourceforge.net/
https://github.com/ettusresearch/gr-doa

Regards,
Nate Temple

On Thu, Jan 16, 2020 at 1:01 PM Laura Arjona  wrote:

> Hi all,
>
> Is there any library to use in gnuradio for algebra operations, such as
> matrix eigenvalues, and pseudoinverse? Or I'd need to code them myself in
> C++?
>
> I need to integrate those operations into my OOT C++ blocks.
>
> Thanks for your time
>
> Best
>
> --
> *Laura Arjona *
> Washington Research Foundation Innovation Postdoctoral Fellow in
> Neuroengineering
>
> *Paul G. Allen School of Computer Science & Engineering*
> 185 E Stevens Way NE
> University of Washington
> Seattle, WA 98195-2350
>


Re: Library for matrix operations? (eigenvalues, pseudoinverse)

2020-01-16 Thread CEL
So, that depends a bit on what you want to do:

These operations are classically implemented in a library called
LAPACK, which is really mature (and, it's written in Fortran90). You
use it through C++ wrappers like "IT++" or "Armadillo".

Be a bit careful though. The usual way of defining the pseudoinverse of
a martrix with lin. indep. columns is 

A⁺ = (A* A)⁻¹ A*

(with * being hermitian transposition).

One of the relatively eternal laws of numerical math seems to be

"you DON'T want to calculate that matrix inverse; it's way more work
than finding the solution to a system of linear equations directly (and
potentially much worse in terms of accuracy[2, (1.2) on p.2])"

even for relatively small (A'A). Therefore, other methods exist, which
tend to be faster, and can, under some assumptions, be more stable[1];
one is based on the singular value decomposition

   A = U𝛴V*

TL;DR: LAPACK wrapped for your language of choice, e.g. IT++ has
eigenvalue, and singular value decompositions. You should find the
Pseudoinverse through the singular value decomposition.

Best regards,
Marcus

[1]https://www.johndcook.com/blog/2018/05/05/svd/
[2] S. Rump: "Inversion of Extremely Ill-Conditioned Matrices
in Floating-Point" http://www.ti3.tuhh.de/paper/rump/Ru08a.pdf

On Thu, 2020-01-16 at 20:57 -0800, Laura Arjona wrote:
> Hi all,
> 
> Is there any library to use in gnuradio for algebra operations, such as 
> matrix eigenvalues, and pseudoinverse? Or I'd need to code them myself in C++?
> 
> I need to integrate those operations into my OOT C++ blocks.
> 
> Thanks for your time
> 
> Best
> 


smime.p7s
Description: S/MIME cryptographic signature


Re: Library for matrix operations? (eigenvalues, pseudoinverse)

2020-01-16 Thread CEL
Oh not to forget: if you really just want to use LAPACK in isolation
and not require other dependencies at runtime... there's of course also
the option of writing Fortran [1] and then just directly using it from
C++... but beware, FORTRAN matrices are column-major, whereas C/C++
tends to be row-major.

Best regards,
Marcus

[1]
https://github.com/kit-cel/gr-specest/search?q=filename%3A.f90&unscoped_q=filename%3A.f90
On Thu, 2020-01-16 at 21:31 +, Müller, Marcus (CEL) wrote:
> So, that depends a bit on what you want to do:
> 
> These operations are classically implemented in a library called
> LAPACK, which is really mature (and, it's written in Fortran90). You
> use it through C++ wrappers like "IT++" or "Armadillo".
> 
> Be a bit careful though. The usual way of defining the pseudoinverse of
> a martrix with lin. indep. columns is 
> 
> A⁺ = (A* A)⁻¹ A*
> 
> (with * being hermitian transposition).
> 
> One of the relatively eternal laws of numerical math seems to be
> 
> "you DON'T want to calculate that matrix inverse; it's way more work
> than finding the solution to a system of linear equations directly (and
> potentially much worse in terms of accuracy[2, (1.2) on p.2])"
> 
> even for relatively small (A'A). Therefore, other methods exist, which
> tend to be faster, and can, under some assumptions, be more stable[1];
> one is based on the singular value decomposition
> 
>A = U𝛴V*
> 
> TL;DR: LAPACK wrapped for your language of choice, e.g. IT++ has
> eigenvalue, and singular value decompositions. You should find the
> Pseudoinverse through the singular value decomposition.
> 
> Best regards,
> Marcus
> 
> [1]https://www.johndcook.com/blog/2018/05/05/svd/
> [2] S. Rump: "Inversion of Extremely Ill-Conditioned Matrices
> in Floating-Point" http://www.ti3.tuhh.de/paper/rump/Ru08a.pdf
> 
> On Thu, 2020-01-16 at 20:57 -0800, Laura Arjona wrote:
> > Hi all,
> > 
> > Is there any library to use in gnuradio for algebra operations, such as 
> > matrix eigenvalues, and pseudoinverse? Or I'd need to code them myself in 
> > C++?
> > 
> > I need to integrate those operations into my OOT C++ blocks.
> > 
> > Thanks for your time
> > 
> > Best
> > 


smime.p7s
Description: S/MIME cryptographic signature


Re: Library for matrix operations? (eigenvalues, pseudoinverse)

2020-01-16 Thread Christoph Mayer
Hi Laura, Marcus,

for small processors (e.g. the beaglebone, used for KiwiSDR GPS
position solutions) I have adapted an old library originally developed
by NIST,
https://github.com/hcab14/TNT_JAMA

Best regards

Christoph

On Thu, Jan 16, 2020 at 10:32 PM Müller, Marcus (CEL)  wrote:
>
> So, that depends a bit on what you want to do:
>
> These operations are classically implemented in a library called
> LAPACK, which is really mature (and, it's written in Fortran90). You
> use it through C++ wrappers like "IT++" or "Armadillo".
>
> Be a bit careful though. The usual way of defining the pseudoinverse of
> a martrix with lin. indep. columns is
>
> A⁺ = (A* A)⁻¹ A*
>
> (with * being hermitian transposition).
>
> One of the relatively eternal laws of numerical math seems to be
>
> "you DON'T want to calculate that matrix inverse; it's way more work
> than finding the solution to a system of linear equations directly (and
> potentially much worse in terms of accuracy[2, (1.2) on p.2])"
>
> even for relatively small (A'A). Therefore, other methods exist, which
> tend to be faster, and can, under some assumptions, be more stable[1];
> one is based on the singular value decomposition
>
>A = U𝛴V*
>
> TL;DR: LAPACK wrapped for your language of choice, e.g. IT++ has
> eigenvalue, and singular value decompositions. You should find the
> Pseudoinverse through the singular value decomposition.
>
> Best regards,
> Marcus
>
> [1]https://www.johndcook.com/blog/2018/05/05/svd/
> [2] S. Rump: "Inversion of Extremely Ill-Conditioned Matrices
> in Floating-Point" http://www.ti3.tuhh.de/paper/rump/Ru08a.pdf
>
> On Thu, 2020-01-16 at 20:57 -0800, Laura Arjona wrote:
> > Hi all,
> >
> > Is there any library to use in gnuradio for algebra operations, such as 
> > matrix eigenvalues, and pseudoinverse? Or I'd need to code them myself in 
> > C++?
> >
> > I need to integrate those operations into my OOT C++ blocks.
> >
> > Thanks for your time
> >
> > Best
> >



Re: Library for matrix operations? (eigenvalues, pseudoinverse)

2020-01-16 Thread Jeremy Reeve
Hi Laura,

Just to add to the suggestions, I've seen Eigen [1] used in the past.
It's a template library (headers only) and has no external
dependencies other than the standard library and that might be
something to consider given your use-case.

[1] http://eigen.tuxfamily.org/index.php?title=Main_Page

Jeremy

On Fri, 17 Jan 2020 at 10:02, Laura Arjona  wrote:
>
> Hi all,
>
> Is there any library to use in gnuradio for algebra operations, such as 
> matrix eigenvalues, and pseudoinverse? Or I'd need to code them myself in C++?
>
> I need to integrate those operations into my OOT C++ blocks.
>
> Thanks for your time
>
> Best
>
> --
> Laura Arjona
> Washington Research Foundation Innovation Postdoctoral Fellow in 
> Neuroengineering
>
> Paul G. Allen School of Computer Science & Engineering
> 185 E Stevens Way NE
> University of Washington
> Seattle, WA 98195-2350



Re: Library for matrix operations? (eigenvalues, pseudoinverse)

2020-01-16 Thread CEL
True, Eigen is pretty popular for people needing to do Matrix
operations – I wasn't aware they even have Matrix decompositions[1]!
(in hindsight... considering the library name...)
I like Eigen, but there's two caveats, I find:

1. indexing is done with () instead of [] (I guess it's made for people
who come from Matlab)
2. It's very much mathematician's software – I found (but that's about
a decade in the past, at the very least, so older compilers, older
processors, older Eigen) that things like Matrix·Matrix products were
relatively slow

I do recommend it to students that simply need some Matrix
functionality, as performance usually is of secondary concern and can
be optimized as soon as the software works.

Best regards,
Marcus

[1]
http://eigen.tuxfamily.org/dox/group__TopicLinearAlgebraDecompositions.html
On Fri, 2020-01-17 at 11:16 +1300, Jeremy Reeve wrote:
> Hi Laura,
> 
> Just to add to the suggestions, I've seen Eigen [1] used in the past.
> It's a template library (headers only) and has no external
> dependencies other than the standard library and that might be
> something to consider given your use-case.
> 
> [1] http://eigen.tuxfamily.org/index.php?title=Main_Page
> 
> Jeremy
> 
> On Fri, 17 Jan 2020 at 10:02, Laura Arjona  wrote:
> > Hi all,
> > 
> > Is there any library to use in gnuradio for algebra operations, such as 
> > matrix eigenvalues, and pseudoinverse? Or I'd need to code them myself in 
> > C++?
> > 
> > I need to integrate those operations into my OOT C++ blocks.
> > 
> > Thanks for your time
> > 
> > Best
> > 
> > --
> > Laura Arjona
> > Washington Research Foundation Innovation Postdoctoral Fellow in 
> > Neuroengineering
> > 
> > Paul G. Allen School of Computer Science & Engineering
> > 185 E Stevens Way NE
> > University of Washington
> > Seattle, WA 98195-2350


smime.p7s
Description: S/MIME cryptographic signature