Сложный тип данных - Complex data type

Немного языки программирования обеспечить сложный тип данных за комплексное число память и арифметика как встроенные (примитивные) тип данных.

В некоторых средах программирования термин сложный тип данных (в отличие от примитивные типы данных ) является синонимом составной тип данных.[1][2]

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

Сложная переменная или значение обычно представляется в виде пары плавающая точка числа. Языки, поддерживающие сложный тип данных, обычно предоставляют специальный синтаксис для построения таких значений и расширяют базовые арифметические операции ('+', '-', '×', '÷'), чтобы воздействовать на них. Эти операции обычно переводятся компилятор в последовательность с плавающей запятой машинные инструкции или в библиотека звонки. Эти языки могут также обеспечивать поддержку других операций, таких как форматирование, проверка равенства и т. Д. Как и в математика эти языки часто интерпретируют значение с плавающей запятой как эквивалент сложного значения с нулевой мнимой частью.

Языковая поддержка

  • В FORTRAN СЛОЖНЫЙ тип
  • В C99 стандарт языка программирования C включает сложные типы данных и сложные математические функции в заголовок стандартной библиотеки <complex.h >
  • В C ++ стандартная библиотека предоставляет сложный шаблонный класс, а также сложные математические функции в <complex> заголовок
  • В Идти язык программирования имеет встроенные типы сложный64 (каждый компонент 32-битный с плавающей запятой) и сложный128 (каждый компонент 64-битный с плавающей точкой)
  • В Perl основной модуль Математика :: Комплекс обеспечивает поддержку комплексных чисел
  • Python обеспечивает встроенный сложный тип. Литералы мнимых чисел могут быть указаны путем добавления буквы «j». Сложные математические функции представлены в стандартном библиотечном модуле. cmath [3]
  • Рубин обеспечивает Сложный класс в модуле стандартной библиотеки сложный
  • OCaml поддерживает комплексные числа с помощью стандартного библиотечного модуля Сложный
  • Haskell поддерживает комплексные числа с помощью стандартного библиотечного модуля Data.Complex (ранее назывался Сложный)
  • Меркурий предоставляет комплексные числа с полной поддержкой перегрузки оператора в дополнительном распределении, используя libcomplex_numbers.
  • Ява не имеет стандартного класса комплексных чисел, но существует ряд несовместимых бесплатных реализаций класса комплексных чисел:
    • В Apache Commons Математическая библиотека предоставляет комплексные числа для Java с ее Сложный учебный класс
    • В JScience библиотека имеет Сложный числовой класс
    • В JAS библиотека позволяет использовать комплексные числа.
    • Netlib имеет класс комплексных чисел для Java
    • javafastcomplex также добавляет поддержку сложных чисел для Java
    • jcomplexnumber это проект по реализации комплексного числа на Java
    • JLinAlg включает комплексные числа с произвольной точностью.
  • Common Lisp: Стандарт ANSI Common Lisp поддерживает комплексные числа с плавающей запятой, рациональные числа и целые числа произвольной точности. Его основные математические функции определены для комплексных чисел, где это применимо. Например, квадратный корень из -1 - это комплексное число:
     ? (sqrt -1)#C(0 1)            ; результат (sqrt -1)
  • Схема: Комплексные числа и функции (например, грех) включены в языковую спецификацию. Однако их реализация в стандарте R5RS является необязательной, а в R6RS - обязательной.
  • В .NET Framework обеспечивает System.Numerics.Complex начиная с версии 4.0.
  • В smart BASIC за iOS естественно поддерживает комплексные числа в обозначениях а + би. Любая переменная, математическая операция или функция может принимать как действительные, так и комплексные числа в качестве аргументов и возвращать действительные или комплексные числа в зависимости от результата. Например, квадратный корень из -4 - это комплексное число:
    ПЕЧАТЬ SQRT (-4)

2i

История

В СЛОЖНЫЙ тип данных был предоставлен в FORTRAN IV.[4]


Рекомендации

  1. ^ Руководство по проектированию и внедрению базы данных IBM Informix
  2. ^ «Документация по Flash 8». Архивировано из оригинал на 2009-04-27. Получено 2009-05-11.
  3. ^ Документация Python v2.6.5
  4. ^ Руководство по программированию на Fortran IV Дэниел Д. Маккракен - 1972 - 288 страниц. «Возможности, предоставляемые сложными операциями Fortran, позволяют значительно сэкономить на программировании при решении определенных проблем».