### ナビゲーション

- 索引
- モジュール |
- 次へ |
- 前へ |
- Python 2.7ja1 documentation »
- Python/C API リファレンスマニュアル »
- 具象オブジェクト (concrete object) レイヤ »

# 浮動小数点オブジェクト (complex number object)

Python の複素数オブジェクトは、 C API 側から見ると二つの別個の型として実装されています: 一方は Python プログラムに対して公開されている Python のオブジェクトで、他方は実際の複素数値を表現する C の構造体です。 API では、これら双方を扱う関数を提供しています。

## 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` 型で返します。

## Python オブジェクトとしての複素数型

`PyComplexObject`

  この `PyObject` のサブタイプは Python の複素数オブジェクトを表現します。

PyTypeObject `PyComplex_Type`

  この `PyTypeObject` のインスタンスは Python の複素数型を表現します。 Pythonの `complex` や `types.ComplexType` と同じオブジェクトです。

int `PyComplex_Check`(PyObject *p)

  引数が `PyComplexObject` 型か `PyComplexObject` 型のサブタイプのときに真を返します。

  バージョン 2.2 で変更: サブタイプを引数にとれるようになりました.

int `PyComplex_CheckExact`(PyObject *p)

  引数が `PyComplexObject` 型で、かつ `PyComplexObject` 型のサブタイプでないときに真を返します。

  バージョン 2.2 で追加.

PyObject* `PyComplex_FromCComplex`(Py_complex v)
  Return value: New reference.

  C の `Py_complex` 型から Python の複素数値を生成します。

PyObject* `PyComplex_FromDoubles`(double real, double imag)
  Return value: New reference.

  新たな `PyComplexObject` オブジェクトを real と imag から生成します。

double `PyComplex_RealAsDouble`(PyObject *op)

  op の実数部分を C の `double` 型で返します。

double `PyComplex_ImagAsDouble`(PyObject *op)

  op の虚数部分を C の `double` 型で返します。

Py_complex `PyComplex_AsCComplex`(PyObject *op)

  複素数値 op から `Py_complex` 型を生成します。

### ナビゲーション

- 索引
- モジュール |
- 次へ |
- 前へ |
- Python 2.7ja1 documentation »
- Python/C API リファレンスマニュアル »
- 具象オブジェクト (concrete object) レイヤ »