複素数オブジェクト¶
Python の複素数オブジェクトは、C API 側から見ると二つの別個の型として実装されています: 一方は Python プログラムに対して公開されている Python のオブジェクトで、他方は実際の複素数値を表現する C の構造体です。API では、これら双方を扱う関数を提供しています。
C 構造体としての複素数¶
複素数の C 構造体を引数として受理したり、戻り値として返したりする関数は、ポインタ渡しを行うのではなく 値渡し を行うので注意してください。これは API 全体を通して一貫しています。
-
type Py_complex¶
The C structure which corresponds to the value portion of a Python complex number object. Most of the functions for dealing with complex number objects use structures of this type as input or output values, as appropriate. It is defined as:
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 num)¶
複素数 num の符号反転 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
型で返します。divisor が null の場合は、このメソッドはゼロを返し、
errno
にEDOM
をセットします。
-
Py_complex _Py_c_pow(Py_complex num, Py_complex exp)¶
指数 exp の num 乗を C の
Py_complex
型で返します。num が null で exp が正の実数でない場合は、このメソッドはゼロを返し、
errno
にEDOM
をセットします。
Python オブジェクトとしての複素数型¶
-
PyTypeObject PyComplex_Type¶
- 次に属します: Stable ABI.
この
PyTypeObject
のインスタンスは Python の複素数型を表現します。 Pythonレイヤのcomplex
と同じオブジェクトです。
-
int PyComplex_Check(PyObject *p)¶
引数が
PyComplexObject
かPyComplexObject
のサブタイプであるときに真を返します。この関数は常に成功します。
-
int PyComplex_CheckExact(PyObject *p)¶
引数が
PyComplexObject
であるがPyComplexObject
のサブタイプでないときに真を返します。この関数は常に成功します。
-
PyObject *PyComplex_FromCComplex(Py_complex v)¶
- 戻り値: 新しい参照。
Create a new Python complex number object from a C
Py_complex
value.
-
PyObject *PyComplex_FromDoubles(double real, double imag)¶
- 戻り値: 新しい参照。 次に属します: Stable ABI.
Return a new
PyComplexObject
object from real and imag.
-
double PyComplex_RealAsDouble(PyObject *op)¶
- 次に属します: Stable ABI.
op の実数部分を C の double 型で返します。
-
double PyComplex_ImagAsDouble(PyObject *op)¶
- 次に属します: Stable ABI.
op の虚数部分を C の double 型で返します。
-
Py_complex PyComplex_AsCComplex(PyObject *op)¶
複素数値 op から
Py_complex
型を生成します。If op is not a Python complex number object but has a
__complex__()
method, this method will first be called to convert op to a Python complex number object. If__complex__()
is not defined then it falls back to__float__()
. If__float__()
is not defined then it falls back to__index__()
. Upon failure, this method returns-1.0
as a real value.バージョン 3.8 で変更: 可能であれば
__index__()
を使うようになりました。