Defect Report #241

Previous Defect Report < - > Next Defect Report


Submitter: Fred Tydeman (US)
Submission Date: 2001-02-25
Source:
Reference Document: ISO/IEC WG14 N943
Version: 1.1
Date: 2001-10-16 09:56:00
Subject: Make the base standard and Annex F consistent for pow(0, <0).

Summary

pow(0, <0) should be considered a pole error (result is an exact infinity) in the base standard (it already is in Annex F).

Details

pow(0, <0) is inconsistent between 7.12.7.4 (domain error) and Annex F (range error via divide-by-zero).

pow(0, <0) is effectively 1/0, which is a pole or singularity error, which is a divide-by-zero exception to Annex F and a range error to 7.12.

Counter-argument: The domain error for this case is a may, not a shall. In addition, 7.12.7.4 has

A range error may occur
without any qualifications. So, an implementation is allowed to treat this case as a range error.

Suggested Technical Corrigendum

In 7.12.7.4 pow:

Split:

A domain error may occur if x is zero and y is less than or equal to zero.
into
A domain error may occur if x is zero and y is zero.
and
A range error may occur if x is zero and y is less than zero.

Technical Corrigendum

In 7.12.7.4 pow:

Split:

A domain error may occur if x is zero and y is less than or equal to zero.
into:
A domain error may occur if x is zero and y is zero.
and
A domain error or range error may occur if x is zero and y is less than zero.


Previous Defect Report < - > Next Defect Report