3 C++

std::complex というテンプレート・ライブラリィがある。
#include <complex>
using namespace std;   // これはお好み

単精度 complex<float>
倍精度 complex<double>
?精度 complex<long double>

C の a = 1+2i; は、C++ では
 a = complex<double>(1,2);
で実現出来る。 変数定義と同時に値の設定をしたいのならば、
 complex<double> a(1,2);
とするのも良い。

test-cpp-complex-1.cpp

/*
 * test-cpp-complex-1.cpp
 *   g++ test-cpp-complex-1.cpp
 */

#include <iostream>
#include <iomanip> // setprecision()
#include <complex>
#include <math.h>

using namespace std;

int main(void)
{
  complex<double> I(0,1), z;
  cout << "i=" << I << endl;
  cout << "i^2=" << I * I << endl;
  cout << setprecision(16) << "sqrt(I)=" << sqrt(I) << endl;
  z=1.0+I;
  cout << "z=" << z << ", z^2=" << z*z << endl;
  return 0;
}

桂田 祐史
2018-06-19