名前空間
変種
操作

std::conj(std::complex)

From cppreference.com
< cpp‎ | numeric‎ | complex
 
 
 
 
ヘッダ <complex> で定義
(1)
template< class T >
std::complex<T> conj( const std::complex<T>& z );
(C++20まで)
template< class T >
constexpr std::complex<T> conj( const std::complex<T>& z );
(C++20以降)
ヘッダ <complex> で定義
(A)
std::complex<float>       conj( float f );

std::complex<double>      conj( double f );

std::complex<long double> conj( long double f );
(C++20まで)
constexpr std::complex<float>       conj( float f );

constexpr std::complex<double>      conj( double f );

constexpr std::complex<long double> conj( long double f );
(C++20以降)
(C++23まで)
template< class FloatingPoint >
constexpr std::complex<FloatingPoint> conj( FloatingPoint f );
(C++23から)
(B)
template< class Integer >
constexpr std::complex<double> conj( Integer i );
(C++20まで)
template< class Integer >
constexpr std::complex<double> conj( Integer i );
(C++20以降)
1) z の虚部 の符号を反転させることで、複素共役を計算します。
A,B) すべての整数型および浮動小数点型に対する追加のオーバーロードが提供されます。これらは虚部がゼロの複素数として扱われます。
(C++11以降)

目次

[edit] パラメータ

z - complex value
f - floating-point value
i - 整数値

[edit] 戻り値

1) z の複素共役。
A) std::complex(f)
B) std::complex<double>(i)

[edit] 注記

追加のオーバーロードは、(A,B) とまったく同じように提供される必要はありません。引数 num に対して十分であればよいです。

  • もし num が標準の浮動小数点数型 `T` を持つ場合、std::conj(num)std::conj(std::complex<T>(num)) と同じ効果を持ちます (C++23 まで(C++23 まで))。
  • それ以外の場合、もし num が整数型を持つ場合、std::conj(num)std::conj(std::complex<double>(num)) と同じ効果を持ちます。

[edit]

#include <complex>
#include <iostream>
 
int main()
{
    std::complex<double> z(1.0, 2.0);
    std::cout << "The conjugate of " << z << " is " << std::conj(z) << '\n'
              << "Their product is " << z * std::conj(z) << '\n';
}

出力

The conjugate of (1,2) is (1,-2)
Their product is (5,0)

[edit] 関連項目

複素数の大きさを返す
(関数テンプレート) [編集]
大きさの2乗を返す
(関数テンプレート) [編集]
大きさと偏角から複素数を構築する
(関数テンプレート) [編集]
English 日本語 中文(简体) 中文(繁體)