diff liboctave/bsxfun-defs.cc @ 13012:15eefbd9d4e8

Implement a few missing automatic bsxfun power operators * bsxfun-decl.h: Declare mixed integer-float bsxfun power operators. * int8NDArray.h: Ditto. * int16NDArray.h: Ditto. * int32NDArray.h: Ditto. * int64NDArray.h: Ditto. * uint8NDArray.h: Ditto. * uint16NDArray.h: Ditto. * uint32NDArray.h: Ditto. * uint64NDArray.h: Ditto. * bsxfun-defs.cc: Define mixed integer-float bsxfun power operators. * int8NDArray.cc: Ditto. * int16NDArray.cc: Ditto. * int32NDArray.cc: Ditto. * int64NDArray.cc: Ditto. * uint8NDArray.cc: Ditto. * uint16NDArray.cc: Ditto. * uint32NDArray.cc: Ditto. * uint64NDArray.cc: Ditto. * fNDArray.h: Declare mixed float-complex bsxfun power operators. * fNDArray.cc: Define mixed float-complex bsxfun power operators. * oct-inttypes.cc: Declare overloaded pow(integer, float) functions. * oct-inttypes.cc: Define and instantiate overloaded pow(integer, float) functions. * op-int.h: Remove casts so that mixed-type bsxfun_pow functions are called now. * xpow.cc: Cast to complex arrays if pow returns non-real; call bsxfun on a few missing functions
author Jordi Gutiérrez Hermoso <jordigh@gmail.com>
date Fri, 26 Aug 2011 21:57:23 -0500
parents 12df7854fa7c
children aa4a23337a0f
line wrap: on
line diff
--- a/liboctave/bsxfun-defs.cc	Fri Aug 26 09:33:52 2011 -0400
+++ b/liboctave/bsxfun-defs.cc	Fri Aug 26 21:57:23 2011 -0500
@@ -174,4 +174,11 @@
   BSXFUN_REL_DEF_MXLOOP (gt, ARRAY, mx_inline_gt) \
   BSXFUN_REL_DEF_MXLOOP (ge, ARRAY, mx_inline_ge)
 
+//For bsxfun power with mixed integer/float types
+#define BSXFUN_POW_MIXED_MXLOOP(INT_TYPE)                              \
+  BSXFUN_OP2_DEF_MXLOOP (pow, INT_TYPE, INT_TYPE, NDArray, mx_inline_pow) \
+  BSXFUN_OP2_DEF_MXLOOP (pow, INT_TYPE, INT_TYPE, FloatNDArray, mx_inline_pow)\
+  BSXFUN_OP2_DEF_MXLOOP (pow, INT_TYPE, NDArray, INT_TYPE,  mx_inline_pow) \
+  BSXFUN_OP2_DEF_MXLOOP (pow, INT_TYPE, FloatNDArray, INT_TYPE, mx_inline_pow)
+
 #endif