@@ -240,6 +240,7 @@ def fun(*args, func_str=func_str, units=None, **kwargs):
240
240
## Manipulation Functions ##
241
241
first_arg_arrays = {"broadcast_arrays" , "concat" , "stack" , "meshgrid" }
242
242
output_arrays = {"broadcast_arrays" , "unstack" , "meshgrid" }
243
+ arbitrary_num_arrays = {"broadcast_arrays" , "meshgrid" }
243
244
244
245
def get_manip_fun (func_str ):
245
246
def manip_fun (x , * args , ** kwargs ):
@@ -249,15 +250,18 @@ def manip_fun(x, *args, **kwargs):
249
250
x = asarray (x )
250
251
magnitude = xp .asarray (x .magnitude , copy = True )
251
252
units = x .units
252
- magnitude = xp_func (magnitude , * args , ** kwargs )
253
253
254
254
else :
255
255
x = [asarray (x_i ) for x_i in x ]
256
256
units = x [0 ].units
257
257
magnitude = [xp .asarray (x [0 ].magnitude , copy = True )]
258
258
for x_i in x [1 :]:
259
259
magnitude .append (x_i .m_as (units ))
260
+
261
+ if func_str in arbitrary_num_arrays :
260
262
magnitude = xp_func (* magnitude , * args , ** kwargs )
263
+ else :
264
+ magnitude = xp_func (magnitude , * args , ** kwargs )
261
265
262
266
if name in output_arrays :
263
267
return tuple (
0 commit comments