template< class T >
std::valarray<T> operator+ ( const std::valarray<T>& lhs, const std::valarray<T>& rhs );
template< class T >
std::valarray<T> operator- ( const std::valarray<T>& lhs, const std::valarray<T>& rhs );
template< class T >
std::valarray<T> operator* ( const std::valarray<T>& lhs, const std::valarray<T>& rhs );
template< class T >
std::valarray<T> operator/ ( const std::valarray<T>& lhs, const std::valarray<T>& rhs );
template< class T >
std::valarray<T> operator% ( const std::valarray<T>& lhs, const std::valarray<T>& rhs );
template< class T >
std::valarray<T> operator& ( const std::valarray<T>& lhs, const std::valarray<T>& rhs );
template< class T >
std::valarray<T> operator| ( const std::valarray<T>& lhs, const std::valarray<T>& rhs );
template< class T >
std::valarray<T> operator^ ( const std::valarray<T>& lhs, const std::valarray<T>& rhs );
template< class T >
std::valarray<T> operator<<( const std::valarray<T>& lhs, const std::valarray<T>& rhs );
template< class T >
std::valarray<T> operator>>( const std::valarray<T>& lhs, const std::valarray<T>& rhs );
template< class T >
std::valarray<bool> operator&&( const std::valarray<T>& lhs, const std::valarray<T>& rhs );
template< class T >
std::valarray<bool> operator||( const std::valarray<T>& lhs, const std::valarray<T>& rhs ); |
(1) |
|
template< class T >
std::valarray<T> operator+ ( const typename std::valarray<T>::value_type & val,
const std::valarray<T>& rhs );
template< class T >
std::valarray<T> operator- ( const typename std::valarray<T>::value_type & val,
const std::valarray<T>& rhs );
template< class T >
std::valarray<T> operator* ( const typename std::valarray<T>::value_type & val,
const std::valarray<T>& rhs );
template< class T >
std::valarray<T> operator/ ( const typename std::valarray<T>::value_type & val,
const std::valarray<T>& rhs );
template< class T >
std::valarray<T> operator% ( const typename std::valarray<T>::value_type & val,
const std::valarray<T>& rhs );
template< class T >
std::valarray<T> operator& ( const typename std::valarray<T>::value_type & val,
const std::valarray<T>& rhs );
template< class T >
std::valarray<T> operator| ( const typename std::valarray<T>::value_type & val,
const std::valarray<T>& rhs );
template< class T >
std::valarray<T> operator^ ( const typename std::valarray<T>::value_type & val,
const std::valarray<T>& rhs );
template< class T >
std::valarray<T> operator<<( const typename std::valarray<T>::value_type & val,
const std::valarray<T>& rhs );
template< class T >
std::valarray<T> operator>>( const typename std::valarray<T>::value_type & val,
const std::valarray<T>& rhs );
template< class T >
std::valarray<bool> operator&&( const typename std::valarray<T>::value_type & val,
const std::valarray<T>& rhs );
template< class T >
std::valarray<bool> operator||( const typename std::valarray<T>::value_type & val,
const std::valarray<T>& rhs ); |
(2) |
|
template< class T >
std::valarray<T> operator+ ( const std::valarray<T>& lhs,
const typename std::valarray<T>::value_type & val );
template< class T >
std::valarray<T> operator- ( const std::valarray<T>& lhs,
const typename std::valarray<T>::value_type & val );
template< class T >
std::valarray<T> operator* ( const std::valarray<T>& lhs,
const typename std::valarray<T>::value_type & val );
template< class T >
std::valarray<T> operator/ ( const std::valarray<T>& lhs,
const typename std::valarray<T>::value_type & val );
template< class T >
std::valarray<T> operator% ( const std::valarray<T>& lhs,
const typename std::valarray<T>::value_type & val );
template< class T >
std::valarray<T> operator& ( const std::valarray<T>& lhs,
const typename std::valarray<T>::value_type & val );
template< class T >
std::valarray<T> operator| ( const std::valarray<T>& lhs,
const typename std::valarray<T>::value_type & val );
template< class T >
std::valarray<T> operator^ ( const std::valarray<T>& lhs,
const typename std::valarray<T>::value_type & val );
template< class T >
std::valarray<T> operator<<( const std::valarray<T>& lhs,
const typename std::valarray<T>::value_type & val );
template< class T >
std::valarray<T> operator>>( const std::valarray<T>& lhs,
const typename std::valarray<T>::value_type & val );
template< class T >
std::valarray<bool> operator&&( const std::valarray<T>& lhs,
const typename std::valarray<T>::value_type & val );
template< class T >
std::valarray<bool> operator||( const std::valarray<T>& lhs,
const typename std::valarray<T>::value_type & val ); |
(3) |
|
| | |
2つのvalarrayの各要素、またはvalarrayと値に対して二項演算子を適用します。
1) この演算子は、同じサイズのvalarrayに対して機能し、パラメータと同じサイズのvalarrayを返します。このvalarrayには、2つの引数の各要素に演算が適用された結果が格納されます。
2,3) valarrayの各要素とスカラーの間で演算子を適用します。
[編集] パラメータ
| rhs |
-
|
数値配列 |
| lhs |
-
|
数値配列 |
| val |
-
|
型Tの値 |
[編集] 戻り値
パラメータと同じサイズのvalarray。
[編集] 注意
2つの引数が異なるサイズのvalarrayである場合、動作は未定義です。
この関数は、std::valarray とは異なる戻り値型で実装される場合があります。その場合、代替型は以下のプロパティを持ちます。
-
複数の二次方程式の実数解を見つけます。
出力
quadratic equation: root 1: root 2: b: c:
1·x² + 1·x + -1 = 0 -1.618034 0.618034 1 -1
1·x² + 2·x + -2 = 0 -2.732051 0.732051 2 -2
1·x² + 3·x + -3 = 0 -3.791288 0.791288 3 -3
1·x² + 4·x + -4 = 0 -4.828427 0.828427 4 -4
1·x² + 5·x + -5 = 0 -5.854102 0.854102 5 -5
1·x² + 6·x + -6 = 0 -6.872983 0.872983 6 -6
1·x² + 7·x + -7 = 0 -7.887482 0.887482 7 -7
1·x² + 8·x + -8 = 0 -8.898979 0.898979 8 -8
[編集] 不具合報告
以下の動作変更を伴う欠陥報告が、以前に公開されたC++標準に遡って適用されました。
| DR |
適用対象 |
公開された動作 |
正しい動作 |
| LWG 3074
|
C++98 |
(2,3)では、スカラーとvalarrayの両方からTが推論されるため、混合型呼び出しは許可されません。 |
valarrayからのみTを推論します。 |
[編集] 関連項目
|
|
valarrayの各要素に単項算術演算子を適用する (public member function) [編集] |
|
|
valarrayの各要素に複合代入演算子を適用する (public member function) [編集] |