From f563d86e72b32caa296ac77b0836ce0e36a5f6ab Mon Sep 17 00:00:00 2001 From: Sebastian Walter Date: Thu, 30 Jun 2016 15:11:19 +0200 Subject: [PATCH] Problem: numpy raised TypeError: Cannot cast ufunc add output from dtype('complex128') to dtype('float64') with casting rule 'same_kind' Solution: use numpy.add(x,y,out=x, casting='unsafe') to cast from complex to float if necessary --- algopy/utpm/algorithms.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/algopy/utpm/algorithms.py b/algopy/utpm/algorithms.py index ccf7ca4..5f2651e 100644 --- a/algopy/utpm/algorithms.py +++ b/algopy/utpm/algorithms.py @@ -1190,9 +1190,9 @@ def _dot(cls, x_data, y_data, out = None): for d in range(D): for p in range(P): for c in range(d+1): - z_data[d,p,...] += numpy.dot( - x_data[c,p,...], - y_data[d-c,p,...]) + tmp = numpy.dot(x_data[c,p,...], + y_data[d-c,p,...]) + numpy.add(z_data[d,p,...], tmp, out=z_data[d,p, ...], casting='unsafe') return out