From Jason Turner

[valarray.nonmembers]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmpxai01mi5/{from.md → to.md} +120 -106
tmp/tmpxai01mi5/{from.md → to.md} RENAMED
@@ -1,170 +1,184 @@
1
  ### `valarray` non-member operations <a id="valarray.nonmembers">[[valarray.nonmembers]]</a>
2
 
3
- #### `valarray` binary operators <a id="valarray.binary">[[valarray.binary]]</a>
4
 
5
  ``` cpp
6
- template<class T> valarray<T> operator*
7
- (const valarray<T>&, const valarray<T>&);
8
- template<class T> valarray<T> operator/
9
- (const valarray<T>&, const valarray<T>&);
10
- template<class T> valarray<T> operator%
11
- (const valarray<T>&, const valarray<T>&);
12
- template<class T> valarray<T> operator+
13
- (const valarray<T>&, const valarray<T>&);
14
- template<class T> valarray<T> operator-
15
- (const valarray<T>&, const valarray<T>&);
16
- template<class T> valarray<T> operator^
17
- (const valarray<T>&, const valarray<T>&);
18
- template<class T> valarray<T> operator&
19
- (const valarray<T>&, const valarray<T>&);
20
- template<class T> valarray<T> operator|
21
- (const valarray<T>&, const valarray<T>&);
22
- template<class T> valarray<T> operator<<
23
- (const valarray<T>&, const valarray<T>&);
24
- template<class T> valarray<T> operator>>
25
- (const valarray<T>&, const valarray<T>&);
26
  ```
27
 
28
- *Requires:* Each of these operators may only be instantiated for a type
29
- `T` to which the indicated operator can be applied and for which the
30
- indicated operator returns a value which is of type `T` or which can be
31
- unambiguously implicitly converted to type `T`. The argument arrays have
32
- the same length.
33
 
34
  *Returns:* A `valarray` whose length is equal to the lengths of the
35
  argument arrays. Each element of the returned array is initialized with
36
  the result of applying the indicated operator to the corresponding
37
  elements of the argument arrays.
38
 
39
  ``` cpp
40
- template<class T> valarray<T> operator* (const valarray<T>&, const T&);
41
- template<class T> valarray<T> operator* (const T&, const valarray<T>&);
42
- template<class T> valarray<T> operator/ (const valarray<T>&, const T&);
43
- template<class T> valarray<T> operator/ (const T&, const valarray<T>&);
44
- template<class T> valarray<T> operator% (const valarray<T>&, const T&);
45
- template<class T> valarray<T> operator% (const T&, const valarray<T>&);
46
- template<class T> valarray<T> operator+ (const valarray<T>&, const T&);
47
- template<class T> valarray<T> operator+ (const T&, const valarray<T>&);
48
- template<class T> valarray<T> operator- (const valarray<T>&, const T&);
49
- template<class T> valarray<T> operator- (const T&, const valarray<T>&);
50
- template<class T> valarray<T> operator^ (const valarray<T>&, const T&);
51
- template<class T> valarray<T> operator^ (const T&, const valarray<T>&);
52
- template<class T> valarray<T> operator& (const valarray<T>&, const T&);
53
- template<class T> valarray<T> operator& (const T&, const valarray<T>&);
54
- template<class T> valarray<T> operator| (const valarray<T>&, const T&);
55
- template<class T> valarray<T> operator| (const T&, const valarray<T>&);
56
- template<class T> valarray<T> operator<<(const valarray<T>&, const T&);
57
- template<class T> valarray<T> operator<<(const T&, const valarray<T>&);
58
- template<class T> valarray<T> operator>>(const valarray<T>&, const T&);
59
- template<class T> valarray<T> operator>>(const T&, const valarray<T>&);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
60
  ```
61
 
62
- *Requires:* Each of these operators may only be instantiated for a type
63
- `T` to which the indicated operator can be applied and for which the
64
- indicated operator returns a value which is of type `T` or which can be
65
- unambiguously implicitly converted to type `T`.
66
 
67
  *Returns:* A `valarray` whose length is equal to the length of the array
68
  argument. Each element of the returned array is initialized with the
69
  result of applying the indicated operator to the corresponding element
70
  of the array argument and the non-array argument.
71
 
72
- #### `valarray` logical operators <a id="valarray.comparison">[[valarray.comparison]]</a>
73
 
74
  ``` cpp
75
- template<class T> valarray<bool> operator==
76
- (const valarray<T>&, const valarray<T>&);
77
- template<class T> valarray<bool> operator!=
78
- (const valarray<T>&, const valarray<T>&);
79
- template<class T> valarray<bool> operator<
80
- (const valarray<T>&, const valarray<T>&);
81
- template<class T> valarray<bool> operator>
82
- (const valarray<T>&, const valarray<T>&);
83
- template<class T> valarray<bool> operator<=
84
- (const valarray<T>&, const valarray<T>&);
85
- template<class T> valarray<bool> operator>=
86
- (const valarray<T>&, const valarray<T>&);
87
- template<class T> valarray<bool> operator&&
88
- (const valarray<T>&, const valarray<T>&);
89
- template<class T> valarray<bool> operator||
90
- (const valarray<T>&, const valarray<T>&);
91
  ```
92
 
93
- *Requires:* Each of these operators may only be instantiated for a type
94
- `T` to which the indicated operator can be applied and for which the
95
- indicated operator returns a value which is of type `bool` or which can
96
- be unambiguously implicitly converted to type `bool`. The two array
97
- arguments have the same length.
98
 
99
  *Returns:* A `valarray<bool>` whose length is equal to the length of the
100
  array arguments. Each element of the returned array is initialized with
101
  the result of applying the indicated operator to the corresponding
102
  elements of the argument arrays.
103
 
104
  ``` cpp
105
- template<class T> valarray<bool> operator==(const valarray<T>&, const T&);
106
- template<class T> valarray<bool> operator==(const T&, const valarray<T>&);
107
- template<class T> valarray<bool> operator!=(const valarray<T>&, const T&);
108
- template<class T> valarray<bool> operator!=(const T&, const valarray<T>&);
109
- template<class T> valarray<bool> operator< (const valarray<T>&, const T&);
110
- template<class T> valarray<bool> operator< (const T&, const valarray<T>&);
111
- template<class T> valarray<bool> operator> (const valarray<T>&, const T&);
112
- template<class T> valarray<bool> operator> (const T&, const valarray<T>&);
113
- template<class T> valarray<bool> operator<=(const valarray<T>&, const T&);
114
- template<class T> valarray<bool> operator<=(const T&, const valarray<T>&);
115
- template<class T> valarray<bool> operator>=(const valarray<T>&, const T&);
116
- template<class T> valarray<bool> operator>=(const T&, const valarray<T>&);
117
- template<class T> valarray<bool> operator&&(const valarray<T>&, const T&);
118
- template<class T> valarray<bool> operator&&(const T&, const valarray<T>&);
119
- template<class T> valarray<bool> operator||(const valarray<T>&, const T&);
120
- template<class T> valarray<bool> operator||(const T&, const valarray<T>&);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
121
  ```
122
 
123
- *Requires:* Each of these operators may only be instantiated for a type
124
- `T` to which the indicated operator can be applied and for which the
125
- indicated operator returns a value which is of type `bool` or which can
126
- be unambiguously implicitly converted to type `bool`.
127
 
128
  *Returns:* A `valarray<bool>` whose length is equal to the length of the
129
  array argument. Each element of the returned array is initialized with
130
  the result of applying the indicated operator to the corresponding
131
  element of the array and the non-array argument.
132
 
133
- #### `valarray` transcendentals <a id="valarray.transcend">[[valarray.transcend]]</a>
134
 
135
  ``` cpp
136
  template<class T> valarray<T> abs (const valarray<T>&);
137
  template<class T> valarray<T> acos (const valarray<T>&);
138
  template<class T> valarray<T> asin (const valarray<T>&);
139
  template<class T> valarray<T> atan (const valarray<T>&);
140
- template<class T> valarray<T> atan2
141
- (const valarray<T>&, const valarray<T>&);
142
- template<class T> valarray<T> atan2(const valarray<T>&, const T&);
143
- template<class T> valarray<T> atan2(const T&, const valarray<T>&);
144
  template<class T> valarray<T> cos (const valarray<T>&);
145
  template<class T> valarray<T> cosh (const valarray<T>&);
146
  template<class T> valarray<T> exp (const valarray<T>&);
147
  template<class T> valarray<T> log (const valarray<T>&);
148
  template<class T> valarray<T> log10(const valarray<T>&);
149
- template<class T> valarray<T> pow
150
- (const valarray<T>&, const valarray<T>&);
151
- template<class T> valarray<T> pow (const valarray<T>&, const T&);
152
- template<class T> valarray<T> pow (const T&, const valarray<T>&);
153
  template<class T> valarray<T> sin (const valarray<T>&);
154
  template<class T> valarray<T> sinh (const valarray<T>&);
155
  template<class T> valarray<T> sqrt (const valarray<T>&);
156
  template<class T> valarray<T> tan (const valarray<T>&);
157
  template<class T> valarray<T> tanh (const valarray<T>&);
158
  ```
159
 
160
- *Requires:* Each of these functions may only be instantiated for a type
161
- `T` to which a unique function with the indicated name can be applied
162
- (unqualified). This function shall return a value which is of type `T`
163
- or which can be unambiguously implicitly converted to type `T`.
164
 
165
- #### `valarray` specialized algorithms <a id="valarray.special">[[valarray.special]]</a>
166
 
167
  ``` cpp
168
  template<class T> void swap(valarray<T>& x, valarray<T>& y) noexcept;
169
  ```
170
 
 
1
  ### `valarray` non-member operations <a id="valarray.nonmembers">[[valarray.nonmembers]]</a>
2
 
3
+ #### Binary operators <a id="valarray.binary">[[valarray.binary]]</a>
4
 
5
  ``` cpp
6
+ template<class T> valarray<T> operator* (const valarray<T>&, const valarray<T>&);
7
+ template<class T> valarray<T> operator/ (const valarray<T>&, const valarray<T>&);
8
+ template<class T> valarray<T> operator% (const valarray<T>&, const valarray<T>&);
9
+ template<class T> valarray<T> operator+ (const valarray<T>&, const valarray<T>&);
10
+ template<class T> valarray<T> operator- (const valarray<T>&, const valarray<T>&);
11
+ template<class T> valarray<T> operator^ (const valarray<T>&, const valarray<T>&);
12
+ template<class T> valarray<T> operator& (const valarray<T>&, const valarray<T>&);
13
+ template<class T> valarray<T> operator| (const valarray<T>&, const valarray<T>&);
14
+ template<class T> valarray<T> operator<<(const valarray<T>&, const valarray<T>&);
15
+ template<class T> valarray<T> operator>>(const valarray<T>&, const valarray<T>&);
 
 
 
 
 
 
 
 
 
 
16
  ```
17
 
18
+ *Mandates:* The indicated operator can be applied to operands of type
19
+ `T` and returns a value of type `T` or which can be unambiguously
20
+ implicitly converted to `T`.
21
+
22
+ *Preconditions:* The argument arrays have the same length.
23
 
24
  *Returns:* A `valarray` whose length is equal to the lengths of the
25
  argument arrays. Each element of the returned array is initialized with
26
  the result of applying the indicated operator to the corresponding
27
  elements of the argument arrays.
28
 
29
  ``` cpp
30
+ template<class T> valarray<T> operator* (const valarray<T>&,
31
+ const typename valarray<T>::value_type&);
32
+ template<class T> valarray<T> operator* (const typename valarray<T>::value_type&,
33
+ const valarray<T>&);
34
+ template<class T> valarray<T> operator/ (const valarray<T>&,
35
+ const typename valarray<T>::value_type&);
36
+ template<class T> valarray<T> operator/ (const typename valarray<T>::value_type&,
37
+ const valarray<T>&);
38
+ template<class T> valarray<T> operator% (const valarray<T>&,
39
+ const typename valarray<T>::value_type&);
40
+ template<class T> valarray<T> operator% (const typename valarray<T>::value_type&,
41
+ const valarray<T>&);
42
+ template<class T> valarray<T> operator+ (const valarray<T>&,
43
+ const typename valarray<T>::value_type&);
44
+ template<class T> valarray<T> operator+ (const typename valarray<T>::value_type&,
45
+ const valarray<T>&);
46
+ template<class T> valarray<T> operator- (const valarray<T>&,
47
+ const typename valarray<T>::value_type&);
48
+ template<class T> valarray<T> operator- (const typename valarray<T>::value_type&,
49
+ const valarray<T>&);
50
+ template<class T> valarray<T> operator^ (const valarray<T>&,
51
+ const typename valarray<T>::value_type&);
52
+ template<class T> valarray<T> operator^ (const typename valarray<T>::value_type&,
53
+ const valarray<T>&);
54
+ template<class T> valarray<T> operator& (const valarray<T>&,
55
+ const typename valarray<T>::value_type&);
56
+ template<class T> valarray<T> operator& (const typename valarray<T>::value_type&,
57
+ const valarray<T>&);
58
+ template<class T> valarray<T> operator| (const valarray<T>&,
59
+ const typename valarray<T>::value_type&);
60
+ template<class T> valarray<T> operator| (const typename valarray<T>::value_type&,
61
+ const valarray<T>&);
62
+ template<class T> valarray<T> operator<<(const valarray<T>&,
63
+ const typename valarray<T>::value_type&);
64
+ template<class T> valarray<T> operator<<(const typename valarray<T>::value_type&,
65
+ const valarray<T>&);
66
+ template<class T> valarray<T> operator>>(const valarray<T>&,
67
+ const typename valarray<T>::value_type&);
68
+ template<class T> valarray<T> operator>>(const typename valarray<T>::value_type&,
69
+ const valarray<T>&);
70
  ```
71
 
72
+ *Mandates:* The indicated operator can be applied to operands of type
73
+ `T` and returns a value of type `T` or which can be unambiguously
74
+ implicitly converted to `T`.
 
75
 
76
  *Returns:* A `valarray` whose length is equal to the length of the array
77
  argument. Each element of the returned array is initialized with the
78
  result of applying the indicated operator to the corresponding element
79
  of the array argument and the non-array argument.
80
 
81
+ #### Logical operators <a id="valarray.comparison">[[valarray.comparison]]</a>
82
 
83
  ``` cpp
84
+ template<class T> valarray<bool> operator==(const valarray<T>&, const valarray<T>&);
85
+ template<class T> valarray<bool> operator!=(const valarray<T>&, const valarray<T>&);
86
+ template<class T> valarray<bool> operator< (const valarray<T>&, const valarray<T>&);
87
+ template<class T> valarray<bool> operator> (const valarray<T>&, const valarray<T>&);
88
+ template<class T> valarray<bool> operator<=(const valarray<T>&, const valarray<T>&);
89
+ template<class T> valarray<bool> operator>=(const valarray<T>&, const valarray<T>&);
90
+ template<class T> valarray<bool> operator&&(const valarray<T>&, const valarray<T>&);
91
+ template<class T> valarray<bool> operator||(const valarray<T>&, const valarray<T>&);
 
 
 
 
 
 
 
 
92
  ```
93
 
94
+ *Mandates:* The indicated operator can be applied to operands of type
95
+ `T` and returns a value of type `bool` or which can be unambiguously
96
+ implicitly converted to `bool`.
97
+
98
+ *Preconditions:* The two array arguments have the same length.
99
 
100
  *Returns:* A `valarray<bool>` whose length is equal to the length of the
101
  array arguments. Each element of the returned array is initialized with
102
  the result of applying the indicated operator to the corresponding
103
  elements of the argument arrays.
104
 
105
  ``` cpp
106
+ template<class T> valarray<bool> operator==(const valarray<T>&,
107
+ const typename valarray<T>::value_type&);
108
+ template<class T> valarray<bool> operator==(const typename valarray<T>::value_type&,
109
+ const valarray<T>&);
110
+ template<class T> valarray<bool> operator!=(const valarray<T>&,
111
+ const typename valarray<T>::value_type&);
112
+ template<class T> valarray<bool> operator!=(const typename valarray<T>::value_type&,
113
+ const valarray<T>&);
114
+ template<class T> valarray<bool> operator< (const valarray<T>&,
115
+ const typename valarray<T>::value_type&);
116
+ template<class T> valarray<bool> operator< (const typename valarray<T>::value_type&,
117
+ const valarray<T>&);
118
+ template<class T> valarray<bool> operator> (const valarray<T>&,
119
+ const typename valarray<T>::value_type&);
120
+ template<class T> valarray<bool> operator> (const typename valarray<T>::value_type&,
121
+ const valarray<T>&);
122
+ template<class T> valarray<bool> operator<=(const valarray<T>&,
123
+ const typename valarray<T>::value_type&);
124
+ template<class T> valarray<bool> operator<=(const typename valarray<T>::value_type&,
125
+ const valarray<T>&);
126
+ template<class T> valarray<bool> operator>=(const valarray<T>&,
127
+ const typename valarray<T>::value_type&);
128
+ template<class T> valarray<bool> operator>=(const typename valarray<T>::value_type&,
129
+ const valarray<T>&);
130
+ template<class T> valarray<bool> operator&&(const valarray<T>&,
131
+ const typename valarray<T>::value_type&);
132
+ template<class T> valarray<bool> operator&&(const typename valarray<T>::value_type&,
133
+ const valarray<T>&);
134
+ template<class T> valarray<bool> operator||(const valarray<T>&,
135
+ const typename valarray<T>::value_type&);
136
+ template<class T> valarray<bool> operator||(const typename valarray<T>::value_type&,
137
+ const valarray<T>&);
138
  ```
139
 
140
+ *Mandates:* The indicated operator can be applied to operands of type
141
+ `T` and returns a value of type `bool` or which can be unambiguously
142
+ implicitly converted to `bool`.
 
143
 
144
  *Returns:* A `valarray<bool>` whose length is equal to the length of the
145
  array argument. Each element of the returned array is initialized with
146
  the result of applying the indicated operator to the corresponding
147
  element of the array and the non-array argument.
148
 
149
+ #### Transcendentals <a id="valarray.transcend">[[valarray.transcend]]</a>
150
 
151
  ``` cpp
152
  template<class T> valarray<T> abs (const valarray<T>&);
153
  template<class T> valarray<T> acos (const valarray<T>&);
154
  template<class T> valarray<T> asin (const valarray<T>&);
155
  template<class T> valarray<T> atan (const valarray<T>&);
156
+ template<class T> valarray<T> atan2(const valarray<T>&, const valarray<T>&);
157
+ template<class T> valarray<T> atan2(const valarray<T>&, const typename valarray<T>::value_type&);
158
+ template<class T> valarray<T> atan2(const typename valarray<T>::value_type&, const valarray<T>&);
 
159
  template<class T> valarray<T> cos (const valarray<T>&);
160
  template<class T> valarray<T> cosh (const valarray<T>&);
161
  template<class T> valarray<T> exp (const valarray<T>&);
162
  template<class T> valarray<T> log (const valarray<T>&);
163
  template<class T> valarray<T> log10(const valarray<T>&);
164
+ template<class T> valarray<T> pow (const valarray<T>&, const valarray<T>&);
165
+ template<class T> valarray<T> pow (const valarray<T>&, const typename valarray<T>::value_type&);
166
+ template<class T> valarray<T> pow (const typename valarray<T>::value_type&, const valarray<T>&);
 
167
  template<class T> valarray<T> sin (const valarray<T>&);
168
  template<class T> valarray<T> sinh (const valarray<T>&);
169
  template<class T> valarray<T> sqrt (const valarray<T>&);
170
  template<class T> valarray<T> tan (const valarray<T>&);
171
  template<class T> valarray<T> tanh (const valarray<T>&);
172
  ```
173
 
174
+ *Mandates:* A unique function with the indicated name can be applied
175
+ (unqualified) to an operand of type `T`. This function returns a value
176
+ of type `T` or which can be unambiguously implicitly converted to type
177
+ `T`.
178
 
179
+ #### Specialized algorithms <a id="valarray.special">[[valarray.special]]</a>
180
 
181
  ``` cpp
182
  template<class T> void swap(valarray<T>& x, valarray<T>& y) noexcept;
183
  ```
184