Yahoo Groups archive

AVR-Chat

Index last updated: 2026-04-28 22:41 UTC

Message

Re: [AVR-Chat] µMFPU

2008-01-24 by Tom Becker

> ... I can do 50,000 fp mults or fp adds with a 16mhz avr...

FWIW, I did some Kalman work with the µMFPU v3.1 on a ZX-24 last year 
and found it is very useful - and fast if you keep your work on the FPU, 
i.e. keeping vars on the FPU and using user-defined functions instead of 
single FPU instructions (which would need to transfer data both ways).  
50,000 32-bit float multiplies per second sounds pretty fast, but try to 
do a 3x3 multiplicitive matrix inversion, something of a benchmark.

Although the FPU now offers a single instruction for small matrix 
inversions (it did not when I did this work), I wrote what was 
apparently the quickest FPU code to do that then, in 465µS.  The new 
instruction is faster.

Here is µMFPU v3.1 function code that executes a 3x3 inversion.  How 
fast can a 16MHz AVR do this?

' F0=1/(MB3a*MA3a)-(-MB3d*MA3b)+(MB3g*MA3c) '1/determinant sum of 3 
cofactors
 #asm
 left
 fset, 14
 fmul, 5
 fmac, 17, 6
 fmac, 20, 7
 finv
 right
 #endasm




Tom

Attachments

Move to quarantaine

This moves the raw source file on disk only. The archive index is not changed automatically, so you still need to run a manual refresh afterward.