Некоторые языки программирования предоставляют сложный тип данных для хранения комплексных чисел и арифметики как встроенный ( примитивный ) тип данных .
Арифметика комплексных чисел
Комплексная переменная или значение обычно представляется в виде пары чисел с плавающей точкой . Языки, которые поддерживают комплексный тип данных, обычно предоставляют специальный синтаксис для построения таких значений и расширяют основные арифметические операции ('+', '−', '×', '÷') для работы с ними . Эти операции обычно транслируются компилятором в последовательность машинных инструкций с плавающей точкой или в библиотечные вызовы. Эти языки также могут предоставлять поддержку других операций, таких как форматирование, проверка равенства и т. д. Как и в математике , эти языки часто интерпретируют значение с плавающей точкой как эквивалент комплексного значения с нулевой мнимой частью.
Языковая поддержка
- Тип FORTRAN COMPLEX. [1]
- Стандарт C99 языка программирования C включает в себя сложные типы данных и функции сложной математики в заголовке стандартной библиотеки .
<complex.h>
- Стандартная библиотека C++ предоставляет
complex
шаблонный класс, а также функции сложной математики в <complex>
заголовке. - Язык программирования Go имеет встроенные типы
complex64
(каждый компонент — 32-битное число с плавающей точкой) и complex128
(каждый компонент — 64-битное число с плавающей точкой). Литералы мнимых чисел можно указать, добавив «i». - Основной модуль Perl Math::Complex обеспечивает поддержку комплексных чисел.
- Python предоставляет встроенный
complex
тип. Литералы мнимых чисел можно указать, добавив "j". Функции комплексной математики предоставляются в стандартном библиотечном модуле cmath
. [2] - Ruby предоставляет класс Complex в стандартном библиотечном модуле complex .
- OCaml поддерживает комплексные числа с помощью стандартного библиотечного модуля Complex .
- Haskell поддерживает комплексные числа с помощью стандартного библиотечного модуля Data.Complex (ранее называвшегося Complex ).
- Mercury предоставляет комплексные числа с полной поддержкой перегрузки операторов в дистрибутиве extras с помощью libcomplex_numbers .
- В Java нет стандартного класса комплексных чисел, но существует ряд несовместимых свободных реализаций класса комплексных чисел:
- Библиотека Apache Commons Math предоставляет комплексные числа для Java с помощью класса Complex .
- В библиотеке JScience есть класс комплексных чисел.
- Библиотека JAS позволяет использовать комплексные числа.
- В Netlib имеется класс комплексных чисел для Java.
- javafastcomplex также добавляет поддержку комплексных чисел для Java
- jcomplexnumber — проект по реализации комплексных чисел на Java.
- JLinAlg включает комплексные числа с произвольной точностью.
- Common Lisp : Стандарт ANSI Common Lisp поддерживает комплексные числа с плавающей точкой, рациональные числа и целые числа произвольной точности. Его основные математические функции определены для комплексных чисел, где это применимо. Например, квадратный корень из -1 является комплексным числом:
? ( sqrt -1 ) #C ( 0 1 ) ; результат (sqrt -1)
- Схема : Комплексные числа и функции (например
sin
, ) включены в спецификацию языка. Однако их реализация является необязательной в стандарте R5RS, тогда как в R6RS она обязательна. - .NET Framework предоставляет System.Numerics.Complex начиная с версии 4.0.
- Умный BASIC для iOS естественным образом поддерживает комплексные числа в нотации a + bi . Любая переменная, математическая операция или функция может принимать как действительные, так и комплексные числа в качестве аргументов и возвращать действительные или комплексные числа в зависимости от результата. Например, квадратный корень из -4 является комплексным числом:
- Julia включает предопределенные типы как для комплексных, так и для рациональных чисел, начиная с версии 0.3 [3]
- R предоставляет
complex
базовый тип данных [4] - В Swift нет стандартного типа данных комплексных чисел, но Swift Numerics, поддерживаемый разработчиками языка, предлагает ComplexModule.
Ссылки
- ^ Руководство по программированию на языке Fortran IV Дэниел Д. Маккракен - 1972 - 288 страниц. "Возможность, предоставляемая сложными операциями на языке Fortran, - это большая экономия усилий по программированию в определенных задачах".
- ^ Документация Python v2.6.5
- ^ «Комплексные и рациональные числа — документация Julia Language 0.3.13-pre».
- ^ "Типы данных R". www.w3schools.com . Получено 2022-04-26 .