Beliebige Genauigkeit für Nicht-Ganzzahlen

8

Haskell verfügt über einen integrierten Integer -Typ, der Ganzzahlen mit beliebiger Genauigkeit verarbeitet. Es gibt auch Rational , was ein Bruch mit beliebiger Genauigkeit ist. Aber die Berechnung solcher Dinge erfordert, einen gemeinsamen Nenner zu finden und dann das Ergebnis auf den kleinsten Nenner zu reduzieren.

Was, wenn ich Gleitkommaarithmetik mit (sagen wir) 100 Bits Genauigkeit in der Mantisse machen wollte? Wie würde ich das tun?

Ich sehe, dass es ein Modul Data.Fixed gibt, aber das scheint eine Handvoll individuell geschriebener Typen mit fester Genauigkeit zu liefern. Was ich möchte, ist etwas, bei dem ich die Präzision zur Laufzeit dynamisch erhöhen oder verringern kann, je nachdem, wie viel Genauigkeit für jede Aufgabe erforderlich ist.

PS. Ich suche nicht nach dezimalen Arithmetik, obwohl ich denke, es wäre interessant zu wissen, ob das irgendwo verfügbar ist ...

    
MathematicalOrchid 19.03.2014, 08:39
quelle

2 Antworten

4

Probieren Sie Data.Number.CReal aus dem Paket Nummern aus. Es gibt Ihnen die Genauigkeit, die Sie beim Konvertieren in eine Zeichenfolge benötigen.

    
augustss 19.03.2014 09:33
quelle
0

Wie wäre es mit Ссылка ? In diesem BigFloat-Datentyp wählen Sie die Präzision selbst aus. Ich weiß, dass es Dezimal ist, aber vielleicht können Sie es einfach in Binär

ändern     
user3374972 19.03.2014 08:58
quelle

Tags und Links