Init
This commit is contained in:
61
cppdraft/complex/numbers/general.md
Normal file
61
cppdraft/complex/numbers/general.md
Normal file
@@ -0,0 +1,61 @@
|
||||
[complex.numbers.general]
|
||||
|
||||
# 29 Numerics library [[numerics]](./#numerics)
|
||||
|
||||
## 29.4 Complex numbers [[complex.numbers]](complex.numbers#general)
|
||||
|
||||
### 29.4.1 General [complex.numbers.general]
|
||||
|
||||
[1](#1)
|
||||
|
||||
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/numerics.tex#L180)
|
||||
|
||||
The header [<complex>](complex.syn#header:%3ccomplex%3e "29.4.2 Header <complex> synopsis [complex.syn]") defines a class template,
|
||||
and numerous functions for representing and manipulating complex numbers[.](#1.sentence-1)
|
||||
|
||||
[2](#2)
|
||||
|
||||
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/numerics.tex#L184)
|
||||
|
||||
The effect of instantiating the primary template of complex for any type
|
||||
that is not a cv-unqualified floating-point type ([[basic.fundamental]](basic.fundamental "6.9.2 Fundamental types"))
|
||||
is unspecified[.](#2.sentence-1)
|
||||
|
||||
Specializations of complex for cv-unqualified floating-point types
|
||||
are trivially copyable literal types ([[basic.types.general]](basic.types.general#term.literal.type "6.9.1 General"))[.](#2.sentence-2)
|
||||
|
||||
[3](#3)
|
||||
|
||||
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/numerics.tex#L191)
|
||||
|
||||
If the result of a function is not mathematically defined or not in
|
||||
the range of representable values for its type, the behavior is
|
||||
undefined[.](#3.sentence-1)
|
||||
|
||||
[4](#4)
|
||||
|
||||
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/numerics.tex#L196)
|
||||
|
||||
If z is an lvalue of type cv complex<T> then:
|
||||
|
||||
- [(4.1)](#4.1)
|
||||
|
||||
the expression reinterpret_cast<cv T(&)[2]>(z) is well-formed,
|
||||
|
||||
- [(4.2)](#4.2)
|
||||
|
||||
reinterpret_cast<cv T(&)[2]>(z)[0] designates the real part of z, and
|
||||
|
||||
- [(4.3)](#4.3)
|
||||
|
||||
reinterpret_cast<cv T(&)[2]>(z)[1] designates the imaginary part of z[.](#4.sentence-1)
|
||||
|
||||
Moreover, if a is an expression of type cv complex<T>* and the expression a[i] is well-defined for an integer expression i, then:
|
||||
|
||||
- [(4.4)](#4.4)
|
||||
|
||||
reinterpret_cast<cv T*>(a)[2 * i] designates the real part of a[i], and
|
||||
|
||||
- [(4.5)](#4.5)
|
||||
|
||||
reinterpret_cast<cv T*>(a)[2 * i + 1] designates the imaginary part of a[i][.](#4.sentence-2)
|
||||
Reference in New Issue
Block a user