## 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.

**Proposed 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