In https://github.com/numpy/numpy/issues/6428, la causa principale del bug sembra essere che a simd.inc.src:543
, un compilatore ottimizza a tmp != 0.
.I casi in cui float == e! = Non sono opposti diretti
A comment dice che questi "non sono esattamente la stessa cosa". Ma non specifica alcun dettaglio. I NaN sono menzionati più avanti, ma un test mostra che un NaN è paragonabile a 0.
il modo previsto.
Quali sono i casi in cui ==
e !=
possono entrambi restituire vero/falso?
Oppure la discrepanza è in un altro campo - ad es. restituendo valori che hanno lo stesso valore di verità ma sono diversi come ints (ma il test mostra anche che questo non sembra il caso) ?
Se 'f' può essere' NaN', non è un 'int'. –
Nan non può diventare 0. Poiché 0 è un numero e NaN significa non un numero. quindi stai dicendo se lo fai "int a = 0;" a è un NaN? – amanuel2
Scusami se mi manca qualcosa di ovvio, ma: dove in quel thread lo identificano come la causa principale? Il riferimento più vicino che vedo inizia con "Ho intenzione di indovinare"! Comunque, questo bug collegato sembra più vicino: https://github.com/numpy/numpy/pull/6438 –