[Cfp-interest] type-generic cbrt for decimal

Rajan Bhakta rbhakta at ca.ibm.com
Tue Dec 11 12:50:09 PST 2012


I know you said that this one argument example is not needed, however I 
think examples are usually very useful when reading any spec, and having 
even this simple case in the message below would be useful. I agree we 
shouldn't go further than the one argument example though.

Regards,

Rajan Bhakta
z/OS XL C/C++ Compiler Technical Architect
ISO C Standards Representative for Canada
C Compiler Development
Contact: rbhakta at ca.ibm.com, Rajan Bhakta/Toronto/IBM
Telephone: (905) 413-3995



From:
Jim Thomas <jaswthomas at sbcglobal.net>
To:
CFP <cfp-interest at ucbtest.org>, 
Date:
12/11/2012 02:07 PM
Subject:
[Cfp-interest] type-generic cbrt for decimal
Sent by:
cfp-interest-bounces at oakapple.net



Regarding 

ISSUE 7: We intend to add an example showing how generic selection can be 
used to define cbrt for tgmath to handle decimal as well as generic FP 
types.
in Part 2, I'm wondering if providing the example is really desirable. 
An implementation that supports Parts 1 and 2 might implement the cbrt 
type-generic macro as:
#ifdef __STDC_WANT_IEC_00000_EXT2
#define cbrt(X)  _Generic((X),   \
                                         _Decimal128: cbrtd128(X),      \
                                         _Decimal64: cbrtd64(X),    \
                                         _Decimal32: cbrtd32(X),    \
                                         long double: cbrtl(X),   \
                                         default: _Roundwise_cbrt(X),  \
                                         float: cbrtf(X)         \
                                         )
#else
#define cbrt(X)  _Generic((X),   \
                                         long double: cbrtl(X),   \
                                         default: _Roundwise_cbrt(X),  \
                                         float: cbrtf(X)         \
                                         )
#endif
 
where _Roundwise_cbrt() is equivalent to cbrt() invoked without 
macro-replacement suppression.

However, implementing a 2 or 3 argument function using _Generic, which is 
already prohibitively cumbersome with just C11, would become even worse 
with decimal types. It's difficult to imagine an implementation would do 
it, even without decimal types.

If the example is just for programmers writing type-generic macros for 
their own 1-argument functions, then this straightforward example isn't 
really needed.

Your thoughts?

-Jim

_______________________________________________
Cfp-interest mailing list
Cfp-interest at oakapple.net
http://mailman.oakapple.net/mailman/listinfo/cfp-interest


-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.oakapple.net/pipermail/cfp-interest/attachments/20121211/2e1fe76e/attachment.html 


More information about the Cfp-interest mailing list