image image


Worknote und Thread: mpmath, Anaconda-Python und Processing.py

Von einem Leser des Schockwellenreiters wurde ich in meinen Kommentaren auf mpmath aufmerksam gemacht, einem in pure Python geschriebenen Mathematik-Paket für reale und komplexe Fließkomma-Arithmetik mit beliebig genauer Präzision. Nun schießt für meine numerischen Bedürfnisse eigentlich schon Numpy weit über das Ziel hinaus, aber wegen der von Numpy benutzten C- und FORTRAN-Pakete läßt sich diese Bibliothek nicht von Processing.py, dem Python-Mode von Processing, nutzen. Da aber mpmath aus reinem Python-Code besteht, dachte ich, daß dieses Paket doch auch mit Processing.py zusammenspielen sollte. Der Screenshot zeigt jedoch, daß dies nur halb gelang:

image

Zuerst wollte ich zu Kontrollzwecken mpmath auch in mein Anaconda-Python installieren. Hier stellte ich jedoch erfreut fest, daß dies schon Teil der Distribution war. Also testete ich im Interpreter das Beispielprogramm aus der Dokumentation zu mpmath. Da ich den Wildcard-Import from package import * wegen der damit verbundenen Namensraumverschmutzung nicht mag (und er aus diesem guten Grund auch in Processing.py nicht erlaubt ist), hatte ich es leicht abgeändert:

import mpmath as mpm
mpm.mp.dps = 50
print(mpm.mpf(2)**mpm.mpf("0.5"))
print(2*mpm.pi)

In meinem Anaconda-Python-Interpreter mit Python 3.6.5 liefen diese Zeilen ohne Probleme und zeigten genau das Verhalten, das auch in der Dokumentation angeführt war. Nun lud ich mir das Paket in der Version 1.0.0 herunter entpackte es und packte es in den Ordner meines Processing.py-Sketches, damit es von Processing auch gefunden wird. Nun passierte Seltsames: Zeile 3 ergab das gleiche Ergebnisse wie mein Anaconda-Python und die *mpmath+-Dokumentation, aber in der Folgezeile bestand Processing.py darauf, daß mpm.pi = 0.0 sei und daher auch die Multiplikation mit 2 nur 0.0 ergeben könne.

Ich muß gestehen, ich bin ratlos. Denn Processing.py findet ja offensichtlich das Paket mpmath und kann es auch nutzen. Warum wird dann die Konstante pi als 0.0 interpretiert. Solange ich dies nicht weiß, kann ich dem Paket ja schwerlich trauen. Vielleicht weiß ja einer meiner Leserinnen oder Leser eine Antwort? Still digging!


1 (Email-) Kommentar


Du warst fleissig !
Ich habe hier auch Eigenheiten von mpmath & Dein Beispiel: => leicht abgeändert
Mein Beispiel:
# mpmath_print_mpmath_pi
# "- - - - - - - - - - - - - - - -"
# Verschiede "import"
# import mpmath # => mpmath.pi / eine Art "Tupel" ? # bei "import mpmath" => mpmath.pi
# from mpmath import * # "from mpmath import *"=> mp.pi // ???
# from mpmath import mp # "from mpmath import mp" => mp.pi
# "- - - - - - - - - - - - - - - -"
from mpmath import mp
print("- - - - - - - - - - - - - - - -") # Trennzeile !
# mpmath.dps = 50 # geht ev. nicht / eine Art "Tupel" ? nicht veränderbar => bleibt 15-stellig
# mpmath.dps = 15 # nicht veränderbar ?? => bleibt 15-stellig
mp.dps = 50 # veränderbar => 50-stellig
print(‘Standardausgabe 50-stellig => mpmath.pi => mp.pi :’,mp.pi )
# Standardausgabe 50-stellig => mpmath.pi => mp.pi : 3.1415926535897932384626433832795028841971693993751
print("- - - - - - - - - - - - - - - -") # Trennzeile !
# => Dein Beispiel: => leicht abgeändert
print(mp.mpf(2)**mp.mpf("0.5"))
# => 1.4142135623730950488016887242096980785696718753769
print(2*mp.pi)
# => 6.2831853071795864769252867665590057683943387987502
print("- - - - - - - - - - - - - - - -") # Trennzeile !
Hmm ??
Achtung: eventuell mit " Namensraumverschmutzung ! "
An der Plottergeschichte kämpfe ich noch !! ( Ersatz für 2d - Ausgabe "matplotlib")
JyPlotter ( pip install JyPlotter )
Viele Grüsse aus Erdmannhausen ( Baden - Würtemberg ) an Dich und deinen " Hintergund " ( soweit möglich auch an Fellkugel " Joey" )

– Michael (Kommentieren) (#)


(Kommentieren) 

image image



Über …

Der Schockwellenreiter ist seit dem 24. April 2000 das Weblog digitale Kritzelheft von Jörg Kantel (Neuköllner, EDV-Leiter, Autor, Netzaktivist und Hundesportler — Reihenfolge rein zufällig). Hier steht, was mir gefällt. Wem es nicht gefällt, der braucht ja nicht mitzulesen. Wer aber mitliest, ist herzlich willkommen und eingeladen, mitzudiskutieren!

Alle eigenen Inhalte des Schockwellenreiters stehen unter einer Creative-Commons-Lizenz, jedoch können fremde Inhalte (speziell Videos, Photos und sonstige Bilder) unter einer anderen Lizenz stehen.

Der Besuch dieser Webseite wird aktuell von der Piwik Webanalyse erfaßt. Hier können Sie der Erfassung widersprechen.

Diese Seite verwendet keine Cookies. Warum auch? Was allerdings die iframes von Amazon, YouTube und Co. machen, entzieht sich meiner Kenntnis.


Werbung


Werbung


image  image  image
image  image  image


image