Arithmetik doppelter Genauigkeit. R2 Funktionen.Gibt es einen Divisionsbaustein?

Begonnen von Fanta-Er, 08. März 2010, 21:51:33

Vorheriges Thema - Nächstes Thema

0 Mitglieder und 1 Gast betrachten dieses Thema.

Fanta-Er

Hiho@all

Ich habe das Problem, dass ich mit 21bit Analogwerten arbeiten muss. Ob Sinn oder Unsinn möchte ich hier nicht diskutieren. Ich muss auf jedefall damit rechnen.
Ich habe in der lib die "Arithmetik doppelter Genauigkeit" Funktionen gefunden. R2_ABS, R2_ADD, R2_ADD2, R2_MUL und R2_SET.

Meine Frage ist nun, hat wer R2_DIV?
Gibt es einen Baustein der Division mit R2 kann?

Bin dankbar für JEDE Antwort.  ;)

MfG
Fanta

hugo

benötigst du eine division vom typ r2 / r2 oder r2 / r (r steht für real und r2 für double real)

die division durch einen einfachen real kannst du mit multiplikation mit dem kehrwert ersetzen.

also x2 / y  ersetzt mit r2_mul(x2, 1/Y)

die multiplikation oder division mit zwei doppeöt genauen argumenten ist nicht trivial



Fanta-Er

Am einfachsten wäre R2/R2. Dann kann ich meine Berechnungen durchführen und am ende wieder in ein "normales" zahlenformat wechseln bzw es in einem String darstellen.
Hast du so etwas? Ich glaube auch das es eine gute Ergänzung zur lib wäre. Somit hat man dann alle Grundrechenarten.

P.S. R2/R kann ich mit dem Baustein R2/R2 auch realisieren.


hugo

die multiplikation und die division mit zwei doppelt real zahlen ist nicht trivial, es scheitert daran das ich keinen verifizirten algorithmus dafür habe.

bei der multiplikation mit einer einfachen real zahl geht das ganz einfach, es werden die beiden teile minor and major jeweils mit der gleichen mulktipliziert.

2 doppelte zahlen multiplizieren geht eben nicht mehr so einfach, es fahlt mit definitiv am passenden algorithmus


shooter

hugo
ein idee gibts es bei mir.

benutze R2_MUL und check ob es zu hoch oder runter ist.
und dan mit succesive approximation zum endeffect gehen.

oder mach es mit alten arithmetik wie mathcad es macht also mit einem string.

die 21 bit ist das real oder Integer.


Fanta-Er

ist nen analogwert also int genauer dint.

danke dir...werde mal googel belästigen wie du das meinst und versuchen es zu verstehen^^.