[sf.cmath.general]

# 29 Numerics library [[numerics]](./#numerics)

## 29.7 Mathematical functions for floating-point types [[c.math]](c.math#sf.cmath.general)

### 29.7.6 Mathematical special functions [[sf.cmath]](sf.cmath#general)

#### 29.7.6.1 General [sf.cmath.general]

[1](#1)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/numerics.tex#L9947)

If any argument value
to any of the functions specified in [[sf.cmath]](sf.cmath "29.7.6 Mathematical special functions") is a NaN (Not a Number),
the function shall return a NaN
but it shall not report a domain error[.](#1.sentence-1)

Otherwise,
the function shall report a domain error
for just those argument values
for which:

- [(1.1)](#1.1)

the function description's *Returns*: element
 explicitly specifies a domain
 and those argument values fall
 outside the specified domain,
 or

- [(1.2)](#1.2)

the corresponding mathematical function value
 has a nonzero imaginary component,
 or

- [(1.3)](#1.3)

the corresponding mathematical function
 is not mathematically defined[.](#1.sentence-2)[253](#footnote-253 "A mathematical function is mathematically defined for a given set of argument values (a) if it is explicitly defined for that set of argument values, or (b) if its limiting value exists and does not depend on the direction of approach.")

[2](#2)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/numerics.tex#L9989)

Unless otherwise specified,
each function is defined
for all finite values,
for negative infinity,
and for positive infinity[.](#2.sentence-1)

[253)](#footnote-253)[253)](#footnoteref-253)

A mathematical function
 is mathematically defined
 for a given set of argument values
 (a)
 if it is explicitly defined
 for that set of argument values,
 or
 (b)
 if its limiting value exists
 and does not depend
 on the direction of approach[.](#footnote-253.sentence-1)
