Travis' recent change
<http://projects.scipy.org/scipy/numpy/changeset/2771> highlighted the
definitions of tMIN/tMAX macros.

Typed min/max were a subject for some heated discussion between Linux
kernel developers  many years ago
<http://lwn.net/2001/0823/kernel.php3> that resulted in the following
definitions  in the curent kernel:

"""
/*
 * min()/max() macros that also do
 * strict type-checking.. See the
 * "unnecessary" pointer comparison.
 */
#define min(x,y) ({ \
        typeof(x) _x = (x);     \
        typeof(y) _y = (y);     \
        (void) (&_x == &_y);            \
        _x < _y ? _x : _y; })

#define max(x,y) ({ \
        typeof(x) _x = (x);     \
        typeof(y) _y = (y);     \
        (void) (&_x == &_y);            \
        _x > _y ? _x : _y; })

/*
 * ..and if you can't take the strict
 * types, you can specify one yourself.
 *
 * Or not use min/max at all, of course.
 */
#define min_t(type,x,y) \
        ({ type __x = (x); type __y = (y); __x < __y ? __x: __y; })
#define max_t(type,x,y) \
        ({ type __x = (x); type __y = (y); __x > __y ? __x: __y; })
"""

The idea is to force people to use _t versions unless the types of x
and y are exactly the same.

The numpy's tMIN and tMAX are clearly addressing the same problem, but
current definitions

#define tMAX(a,b,typ) {typ _x_=(a); typ _y_=(b); _x_>_y_ ? _x_ : _y_}
#define tMIN(a,b,typ) {typ _x_=(a); typ _y_=(b); _x_<_y_ ? _x_ : _y_}

are unlikely to work with any compiler.  Linux kernel uses gcc trick
of wrapping a block in parenthesis to get an expression but I don't
think this is acceptable in numpy code.

Not surprizingly, these macros are not used anywhere.  I propose to remove them.

Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Numpy-discussion mailing list
Numpy-discussion@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/numpy-discussion

Reply via email to