Numpy geht anders mit kleinen imaginären Teilen umPython

Python-Programme
Anonymous
 Numpy geht anders mit kleinen imaginären Teilen um

Post by Anonymous »

Es gibt einen Unterschied im Verhalten unter macOS mit arm64-CPU im Vergleich zu anderem Linux mit amd64.
Für Numpy v1 auf arm64 scheint es eine interne Logik zu geben, die garantiert, dass der Imaginärteil genau 0 ist:

Code: Select all

>>> import numpy as np
>>> np.__version__
'1.26.4'
>>> x = 0.1 + 0.2j
>>> x * np.conj(x)
(0.05000000000000001+0j)
Für v2 auf arm64 ist diese Prüfung deaktiviert und der Imaginärteil schwankte erwartungsgemäß an der Grenze der doppelten Genauigkeit:

Code: Select all

>>> import numpy as np
>>> np.__version__
'2.3.5'
>>> x = 0.1 + 0.2j
>>> x * np.conj(x)
np.complex128(0.05000000000000001+1.6653345369377347e-18j)
Für v1 und v2 auf amd64 scheint die Prüfung aktiviert zu sein und der Imaginärteil ist genau 0.
Gibt es eine native Möglichkeit, diese Prüfung auf macosx-arm64 wieder zu aktivieren und Ergebnisse mit dem Imaginärteil gleich 0 zu erhalten?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post