SVD Matrix manipulation

Hi everyone,

I just got an Ardoino Uno and a bunch of sensors with it. To fuse some Data together I need to do some matrix manipulation, a singularity value decomposition of a 3x3 matrix. Unfortunately the MatrixMath library only has some simple functions, but not the SVD which I need.

Does anyone have a good idea how I can get such a function to work and from where?

I already tried implementing some open source code that solves an SVD matrix but for some reason I got very odd results. Right now I am looking at the ALGLIB open source data processing library thing on alglib.net. Is it possible to use their C++ code on my Arduino? I have tried to include the library into the IDE but I had no luck. Probably I am missing some simple things since I am not very familiar with C++ and just included a .h file as stated in their documentation but get flooded with errors when verifying empty code.

Thanks, K

Is it known by another name? Matlab knows nothing of it.

I think you would be best hard-coding your own.

diagokitty: Is it possible to use their C++ code on my Arduino? I have tried to include the library into the IDE but I had no luck

Maybe, but check how portable the code is (does it make any assumptions about the size of standard types, or the memory layout?) and how much memory and code space it uses. Anything involving recursion or dynamic memory allocation is an immediate red flag.

Hello. I am new to the forum. I am trying the same thing: to calculate the SVD inside the Atmega328 for a telescope algorithm. I found a SVD algorithm here: http://www.cs.colorado.edu/~grudic/teaching/CSCI4202/svd.c It is plain C, and I think it would be easy to simplify it more if it is for fixed dimension (3x3 matrix). The truth is I haven't tried it myself yet.