### 1 C 構造体としての複素数

複素数の C 構造体を引数として受理したり、戻り値として返したりする 関数は、ポインタ渡しを行うのではなく 値渡し を行うので 注意してください。これは API 全体を通して一貫しています。

`Py_complex`
  Python 複素数オブジェクトの値の部分に対応する C の構造体です。 複素数オブジェクトを扱うほとんどの関数は、この型の構造体を 場合に応じて入力や出力として使います。構造体は以下のように 定義されています:

      typedef struct {
         double real;
         double imag;
      } Py_complex;

Py_complex `_Py_c_sum`( | Py_complex left, Py_complex right)

  二つの複素数の和を C の `Py_complex` 型で返します。

Py_complex `_Py_c_diff`( | Py_complex left, Py_complex right)

  二つの複素数の差を C の `Py_complex` 型で返します。

Py_complex `_Py_c_neg`( | Py_complex complex)

  複素数 complex の符号反転 C の `Py_complex` 型で返します。

Py_complex `_Py_c_prod`( | Py_complex left, Py_complex right)

  二つの複素数の積を C の `Py_complex` 型で返します。

Py_complex `_Py_c_quot`( | Py_complex dividend, Py_complex divisor)

  二つの複素数の商を C の `Py_complex` 型で返します。

Py_complex `_Py_c_pow`( | Py_complex num, Py_complex exp)

  指数 exp の num 乗を C の `Py_complex` 型で返します。