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

Поделись знанием:
Перейти к: навигация, поиск

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





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

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

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

  • FORTRAN, тип COMPLEX поддерживается начиная с FORTRAN IV. В FORTRAN II существовала поддержка с иным синтаксисом и возможностями.[1]
  • Язык Си, начиная со стандарта 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 поддерживает [msdn.microsoft.com/en-us/library/system.numerics.complex.aspx System.Numerics.Complex] с версии 4.0.

История

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


Напишите отзыв о статье "Комплексный тип данных"

Примечания

  1. books.google.com/books?id=3gYNAQAAIAAJ&pg=PA32&dq=fortran+complex&hl=en&ei=jokTToOwNsbLsga69OTTDg "FORTRAN II complex ... capabilities are expressed differently and are more limited than the FORTRAN IV"
  2. [docs.python.org/library/stdtypes.html Python v2.6.5 documentation]
  3. [books.google.com/books?id=aNhWAAAAMAAJ&q=fortran+complex A guide to Fortran IV programming] Daniel D. McCracken — 1972—288 pages. "The capability provided by Fortran complex operations is a great savings in programming effort in certain problems. "


Отрывок, характеризующий Комплексный тип данных

Представить счастливо себе,
Что некто есть еще на свете,
Кто думает и о тебе!
Что и она, рукой прекрасной,
По арфе золотой бродя,
Своей гармониею страстной
Зовет к себе, зовет тебя!
Еще день, два, и рай настанет…
Но ах! твой друг не доживет!
И он не допел еще последних слов, когда в зале молодежь приготовилась к танцам и на хорах застучали ногами и закашляли музыканты.

Пьер сидел в гостиной, где Шиншин, как с приезжим из за границы, завел с ним скучный для Пьера политический разговор, к которому присоединились и другие. Когда заиграла музыка, Наташа вошла в гостиную и, подойдя прямо к Пьеру, смеясь и краснея, сказала:
– Мама велела вас просить танцовать.
– Я боюсь спутать фигуры, – сказал Пьер, – но ежели вы хотите быть моим учителем…
И он подал свою толстую руку, низко опуская ее, тоненькой девочке.
Пока расстанавливались пары и строили музыканты, Пьер сел с своей маленькой дамой. Наташа была совершенно счастлива; она танцовала с большим , с приехавшим из за границы . Она сидела на виду у всех и разговаривала с ним, как большая. У нее в руке был веер, который ей дала подержать одна барышня. И, приняв самую светскую позу (Бог знает, где и когда она этому научилась), она, обмахиваясь веером и улыбаясь через веер, говорила с своим кавалером.
– Какова, какова? Смотрите, смотрите, – сказала старая графиня, проходя через залу и указывая на Наташу.
Наташа покраснела и засмеялась.
– Ну, что вы, мама? Ну, что вам за охота? Что ж тут удивительного?

В середине третьего экосеза зашевелились стулья в гостиной, где играли граф и Марья Дмитриевна, и большая часть почетных гостей и старички, потягиваясь после долгого сиденья и укладывая в карманы бумажники и кошельки, выходили в двери залы. Впереди шла Марья Дмитриевна с графом – оба с веселыми лицами. Граф с шутливою вежливостью, как то по балетному, подал округленную руку Марье Дмитриевне. Он выпрямился, и лицо его озарилось особенною молодецки хитрою улыбкой, и как только дотанцовали последнюю фигуру экосеза, он ударил в ладоши музыкантам и закричал на хоры, обращаясь к первой скрипке:
– Семен! Данилу Купора знаешь?
Это был любимый танец графа, танцованный им еще в молодости. (Данило Купор была собственно одна фигура англеза .)
– Смотрите на папа, – закричала на всю залу Наташа (совершенно забыв, что она танцует с большим), пригибая к коленам свою кудрявую головку и заливаясь своим звонким смехом по всей зале.
Действительно, всё, что только было в зале, с улыбкою радости смотрело на веселого старичка, который рядом с своею сановитою дамой, Марьей Дмитриевной, бывшей выше его ростом, округлял руки, в такт потряхивая ими, расправлял плечи, вывертывал ноги, слегка притопывая, и всё более и более распускавшеюся улыбкой на своем круглом лице приготовлял зрителей к тому, что будет. Как только заслышались веселые, вызывающие звуки Данилы Купора, похожие на развеселого трепачка, все двери залы вдруг заставились с одной стороны мужскими, с другой – женскими улыбающимися лицами дворовых, вышедших посмотреть на веселящегося барина.