Willkürliche Präzisionsexponentiation in Clojure

9

Gibt es eine Möglichkeit, in Clojure eine beliebige Genauigkeits-Exponentiation durchzuführen? Ich habe Math / pow und die EXPT-Funktion von clojure.math.numeric-tower ausprobiert, aber beide werden nur eine begrenzte Genauigkeit zurückgeben. Zum Beispiel:

%Vor%

Wie bekomme ich mehr Ziffern?

    
Lee Phillips 18.12.2012, 18:10
quelle

2 Antworten

3

Apfloat für Java bietet eine schnelle, willkürliche Präzisionsarithmetik. Sie können es leicht verwenden, indem Sie Ihrer project.clj -Datei die folgenden Abhängigkeitsinformationen hinzufügen, wenn Ihr Projekt mit Leiningen geliefert wird.

%Vor%

Sie können eine beliebige Genauigkeits-Exponentiation in Clojure mit Apfloat durchführen. Zum Beispiel:

%Vor%     
tnoda 21.12.2012, 09:23
quelle
2

math/expt ist wahrscheinlich nicht die Funktion, nach der Sie suchen, da sie in diesem Kontext einen Double-Wert anstelle eines BigDecimal-Werts zurückgibt und daher Ihre with-precision -Anweisung ignoriert:

  

Gibt eine genaue Zahl zurück, wenn die Basis eine exakte Zahl ist und die Potenz eine ganze Zahl ist, andernfalls wird ein Double zurückgegeben.

%Vor%

die Antwort auf diese Frage scheint zu zeigen, wie man aus der BigDecimalen Exponentiation eine beliebige Genauigkeit erhält. BigDecimal scheint dies nicht "out of the box" zu bieten.

    
Arthur Ulfeldt 18.12.2012 19:35
quelle

Tags und Links