[Numpy-discussion] C++ Example

Bryan Van de Ven bryanv@continuum...
Tue Mar 6 17:43:23 CST 2012


On 3/6/12 2:39 PM, Sturla Molden wrote:
> We can augment standard C with syntax suger for
> generics, or even NumPy arrays and Python types, using a Python script
> as meta-compiler. We don't need C++ for that.
I can only speak for myself. I do not want to be in the meta-compiler 
business, and I do want proper tool support for templating.

Moreover:

**begin repeat
  *
  * #from = BOOL, BYTE, UBYTE, SHORT, USHORT, INT, UINT, LONG, ULONG,
  *         LONGLONG, ULONGLONG, HALF, FLOAT, DOUBLE, LONGDOUBLE,
  *         CFLOAT, CDOUBLE, CLONGDOUBLE, OBJECT, DATETIME, TIMEDELTA#
  * #suff = bool, byte, ubyte, short, ushort, int, uint, long, ulong,
  *         longlong, ulonglong, half, float, double, longdouble,
  *         cfloat, cdouble, clongdouble, object, datetime, timedelta#
  * #sort = 1*18, 0*3#
  * #num = 1*15, 2*3, 1*3#
  * #fromtyp = Bool, byte, ubyte, short, ushort, int, uint, long, ulong,
  *            longlong, ulonglong, npy_half, float, double, longdouble,
  *            float, double, longdouble, PyObject *, datetime, timedelta#
  * #NAME = Bool, Byte, UByte, Short, UShort, Int, UInt, Long, ULong,
  *         LongLong, ULongLong, Half, Float, Double, LongDouble,
  *         CFloat, CDouble, CLongDouble, Object, Datetime, Timedelta#
  * #kind = GENBOOL, SIGNED, UNSIGNED, SIGNED, UNSIGNED, SIGNED, 
UNSIGNED, SIGNED, UNSIGNED,
  *         SIGNED, UNSIGNED, FLOATING, FLOATING, FLOATING, FLOATING,
  *         COMPLEX, COMPLEX, COMPLEX, OBJECT, DATETIME, TIMEDELTA#
  * #endian = |*3, =*15, |, =*2#
  * #isobject= 0*18,NPY_OBJECT_DTYPE_FLAGS,0*2#
  */

is not exactly sweet-tasting sugar. It would make more sense for all the 
various values to be bundled together by type, so that a type is 
comprehensible as whole, quickly. Instead all the values are in 
separated property lists that cut across all the types. Worse, very 
similar or identical information to what is in this list is repeated, 
without any chance of consistency or error checking, all over the place.

Bryan


More information about the NumPy-Discussion mailing list