Spec-Zone.ru › Python 3.8

Объекты комплексных чисел

Объекты комплексных чисел Python реализуются как два различных типа, если рассматривать их с точки зрения C API: один — это объект Python, доступный программам Python, а другой — структура C, которая представляет фактическое значение комплексного числа. API предоставляет функции для работы с обоими.

Комплексные числа как структуры C

Обратите внимание, что функции, принимающие эти структуры в качестве параметров и возвращающие их в качестве результатов, делают это по значению, а не ссылаясь на них через указатели. Это соответствует всей API.

Py_complex

Структура C, соответствующая значению части объекта комплексного числа Python. Большинство функций для работы с объектами комплексных чисел используют структуры этого типа в качестве входных или выходных значений, в зависимости от ситуации. Она определяется как:

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.

Если divisor равно нулю, этот метод возвращает ноль и устанавливает errno в EDOM.

Py_complex _Py_c_pow(Py_complex num, Py_complex exp)

Возвращает возведение num в степень exp, используя представление C Py_complex.

Если num равно нулю, а exp не является положительным вещественным числом, этот метод возвращает ноль и устанавливает errno в EDOM.

Комплексные числа как объекты Python

PyComplexObject

Этот подтип PyObject представляет собой объект комплексного числа Python.

PyTypeObject PyComplex_Type

Этот экземпляр PyTypeObject представляет тип комплексного числа Python. Он совпадает с объектом complex на уровне Python.

int PyComplex_Check(PyObject *p)

Возвращает истину, если аргумент является PyComplexObject или подтипом PyComplexObject.

int PyComplex_CheckExact(PyObject *p)

Возвращает истину, если аргумент является PyComplexObject, но не является подтипом PyComplexObject.

PyObject* PyComplex_FromCComplex(Py_complex v)
Значение возврата: Новая ссылка.

Создает новый объект комплексного числа Python из значения C Py_complex.

PyObject* PyComplex_FromDoubles(double real, double imag)
Значение возврата: Новая ссылка.

Возвращает новый объект 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)

Возвращает значение Py_complex комплексного числа op.

Если op не является объектом комплексного числа Python, но имеет метод __complex__(), этот метод будет вызван для преобразования op в объект комплексного числа Python. Если __complex__() не определен, используется __float__(). Если __float__() не определен, используется __index__(). В случае неудачи этот метод возвращает -1.0 как вещественное значение.

Изменено в версии 3.8: Используется __index__(), если он доступен.

© 2001–2022 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.8/c-api/complex.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API