C++ complex 複素数のかけ算

  • 内積を求めたかったんだけど、かけ算の演算子では求まらないようだ
  • 他の人は内積用の関数を定義している( float dot( ... )
  • ではかけ算は何をするのか、実際にやってみた
int main() {
    auto c0 = complex<double>(1, 1);
    auto c1 = complex<double>(0, 1);

    auto c2 = c0 * c1;

    p(c2.real());
    p(c2.imag());
}
-1
1
  • 答え:複素数のかけ算は回転となる
  • (1, 1)の点が複素数 i により90度回転され、(-1, 1) に移動している

追記:2021/06/27

  • 今見ると「何を当たり前のことを」感
  • 複素数の掛け算は、大きさは掛け算、角度は足し算、ですね