 	    (instance? ComplexArray m) (.imag ^ComplexArray m)
 	    (instance? Complex m) (.getImaginary ^Complex m)
 	    (number? m) 0.0
-	    (and (m/array? m) (m/numerical? m)) (mp/broadcast-coerce m 0.0) 
+	    (and (m/array? m) (m/numerical? m)) (mp/coerce-param m (mp/broadcast-like m 0.0)) 
 	    :else (error "Unable to get imaginary part of object: " m))))
 
 

    (get-nd [m indexes]
      (c/complex-number (double (mp/get-nd (.real m) indexes))
                        (double (mp/get-nd (.imag m) indexes))))
  
   java.lang.Object 
     (toString [m]
       (str "(" (str (.real m)) ", " (str (.imag m)) ")]"))
  
   clojure.lang.Seqable
     (seq [m]

    (dimension-count [m x]
      (mp/dimension-count (.real m) x))
    
   mp/PIndexedAccess
    (get-1d [m x]
      (c/complex-number (double (mp/get-1d (.real m) x))
                        (double (mp/get-1d (.imag m) x))))
