I earlier quoted the applicable (and only) texts from the Standards themselves, particularly C++ and also the latest C Standard (2011 and C99 with all Technical Corrigenda through 2007).
No matter what is said about pow(0,0) in the C99 Rationale v5.10 Appendix F of April 2003, there are no such requirements in the Standards, including those versions that have been adopted since 2003. - Dennis PS: I mentioned cpow(0,0) because of the mathematical relationship and I was observing that is consistent with the subset that pow(x,y) supports. DETAILS The definition of domain error is that an implementation-defined value is returned *and* errno is set to EDOM. There is also the option of triggering a floating-point exception. I assume that "capable of representation" *includes* silent NaN and +infinity but for all I know those return with non-exception domain errors too. Plauger certainly prepared to encounter those in his implementation (though he also chose pow(0,0) = 1.0). The C 99 Rationale is not an ISO/IEC International Standard, regardless of the INCITS J11 and SC22 WG14 participation. It is not necessary to even know about it. In particular, "This Rationale discusses some language or library features which were not adopted into the Standard. These are usually features which are popular in some C implementations, so that a user of those implementations might question why they do not appear in the Standard." [p.5 preceding section 0.1] The Rationale doesn't address that question users might have. "**[T]his rationale is not part of the Standard**" [bottom of page 5, their emphasis] Then there is Appendix F. I have no idea what it means to have "normative" in the title. This appears to be an IEC 60559 floating-point profile from NCEC, with certain exceptions to 60559, although not even that is entirely clear. pow(+inf,0) = pow(0,0) = 1 are stated as required under Appendix F (bottom of page 180) Adding pow(NaN,0) = 1 (page 182) by taking power(x,0)=1 as settled for all x is particularly marvelous. The developers of C 2011 also didn't seem to be under any compulsion with regard to the C99 Rationale. -----Original Message----- From: Rob Weir [mailto:robw...@apache.org] Sent: Wednesday, February 20, 2013 10:14 To: dev@openoffice.apache.org Subject: Re: Solving this 0⁰ issue correctly (was Re: Calc behavior: result of 0 ^ 0) [ ... ] I'm reading a requirement for pow(x,0) to return 1 for all values of x. Are you seeing something else? Are you seeing anything that says a conforming C/C++ runtime may *return* something other than 1? Btw, the rationale for this choice is described on page 182 of this document: http://www.open-std.org/jtc1/sc22/wg14/www/C99RationaleV5.10.pdf [ ... ]