On Mon, Jun 13, 2016 at 11:25 AM, Antoine Pitrou <solip...@pitrou.net> wrote:
> On Mon, 13 Jun 2016 10:49:44 -0400 > josef.p...@gmail.com wrote: > > > > My argument is that `**` is like integer division and sqrt where the > domain > > where integer return are the correct numbers is too small to avoid > > headaches by users. > > float64 has less integer precision than int64: > > >>> math.pow(3, 39) == 3**39 > False > >>> np.int64(3)**39 == 3**39 > True > but if a user does this, then ??? (headaches or head scratching) >>> np.array([3])**39 RuntimeWarning: invalid value encountered in power array([-2147483648], dtype=int32) Josef > > > (as a sidenote, np.float64's equality operator seems to be slightly > broken: > > >>> np.float64(3)**39 == 3**39 > True > >>> int(np.float64(3)**39) == 3**39 > False > >>> float(np.float64(3)**39) == 3**39 > False > ) > > Regards > > Antoine. > > > _______________________________________________ > NumPy-Discussion mailing list > NumPy-Discussion@scipy.org > https://mail.scipy.org/mailman/listinfo/numpy-discussion >
_______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org https://mail.scipy.org/mailman/listinfo/numpy-discussion