Комплексный тип данных

Некоторые языки программирования предоставляют специальный тип данных для комплексных чисел. Наличие встроенного типа упрощает хранение комплексных величин и выполнение операций над ними.

Арифметика над комплексными числами

[править | править код]

Комплексные переменные и значения обычно хранятся как пара чисел с плавающей запятой. Языки, поддерживающие встроенный тип для комплексных величин, обычно предоставляют специальный синтаксис для инициализации комплексных переменных (например, CMPLX(R, I) в фортране) и расширяют действие основных арифметических операций ('+', '−', '×', '/'). Эти операции обычно транслируются компилятором в последовательность инструкций по обработке чисел с плавающей запятой или в вызовы функций специальной библиотеки. Иногда также предоставляются функции вывода комплексных, сравнения их на равенство и другие. Как и в математике, языки с поддержкой комплексных типов могут использовать обычные числа с плавающей запятой как комплексные с нулевой мнимой частью.

Поддержка в языках

[править | править код]
  • FORTRAN, тип COMPLEX поддерживается начиная с FORTRAN IV. В FORTRAN II существовала поддержка с иным синтаксисом и возможностями.[1]
  • Язык C, начиная со стандарта C99 включительно. Комплексный тип обозначается ключевым словом _Complex. Реализовано множество математических функций над комплексными числами. Требуется использование заголовочного файла <complex.h>
  • Язык C++ включает поддержку шаблонного класса complex и математических функций (заголовочный файл <complex>)
  • Perl предоставляет модуль Math::Complex, включённый во все поставки
  • Python поддерживает встроенный тип complex. Мнимые константы обозначаются добавлением суффикса «j». Комплексные математические функции реализованы в стандартном библиотечном модуле cmath [2]
  • Ruby поддерживает класс Complex (стандартный библиотечный модуль complex)
  • OCaml поддерживает комплексные в стандартном библиотечном модуле Complex
  • Haskell — стандартная библиотека Complex
  • Apache Commons Math предоставляет поддержку для ЯП Java, класс Complex
  • Common Lisp: Стандарт ANSI Common Lisp описывает работу с комплексными числами над типами float и над типами с произвольной точностью. Базовые математические функции определены также и для комплексных
  • .NET Framework поддерживает System.Numerics.Complex с версии 4.0.

Тип данных COMPLEX широко используется с версии FORTRAN IV[англ.].[3]


Примечания

[править | править код]
  1. https://books.google.com/books?id=3gYNAQAAIAAJ&pg=PA32&dq=fortran+complex&hl=en&ei=jokTToOwNsbLsga69OTTDg Архивная копия от 18 июня 2016 на Wayback Machine "FORTRAN II complex ... capabilities are expressed differently and are more limited than the FORTRAN IV"
  2. Python v2.6.5 documentation. Дата обращения: 5 июля 2011. Архивировано 4 июля 2011 года.
  3. A guide to Fortran IV programming Архивная копия от 7 апреля 2022 на Wayback Machine Daniel D. McCracken — 1972—288 pages. "The capability provided by Fortran complex operations is a great savings in programming effort in certain problems. "