Autor Thema: Arithmetik doppelter Genauigkeit. R2 Funktionen.Gibt es einen Divisionsbaustein?  (Gelesen 7757 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

Fanta-Er

  • Gast
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

Offline hugo

  • Global Moderator
  • *****
  • Beiträge: 2 150
    • Profil anzeigen
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


« Letzte Änderung: 08. März 2010, 23:12:48 von hugo »

Fanta-Er

  • Gast
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.


Offline hugo

  • Global Moderator
  • *****
  • Beiträge: 2 150
    • Profil anzeigen
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


Offline shooter

  • Jr. Member
  • **
  • Beiträge: 70
  • Shooting Fuzzy temperatures
    • ICQ Messenger - 60155180
    • Profil anzeigen
    • E-Mail
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

  • Gast
ist nen analogwert also int genauer dint.

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