Re: pybombs install gr-osmosdr ........ bunch of errors
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!
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)
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)
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)
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)
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)
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)
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)
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