Algunos lenguajes de programación proporcionan un tipo de datos complejo para el almacenamiento de números complejos y aritmética como un tipo de datos incorporado ( primitivo ) .
Aritmética de números complejos
Una variable o valor complejo se representa generalmente como un par de números de punto flotante . Los lenguajes que admiten un tipo de datos complejo suelen proporcionar una sintaxis especial para construir dichos valores y extienden las operaciones aritméticas básicas ('+', '−', '×', '÷') para actuar sobre ellos . Estas operaciones suelen ser traducidas por el compilador en una secuencia de instrucciones de máquina de punto flotante o en llamadas de biblioteca . Esos lenguajes también pueden proporcionar soporte para otras operaciones, como formato, pruebas de igualdad, etc. Al igual que en matemáticas , esos lenguajes a menudo interpretan un valor de punto flotante como equivalente a un valor complejo con una parte imaginaria cero.
Soporte de idiomas
- El tipo FORTRAN COMPLEX. [1]
- El estándar C99 del lenguaje de programación C incluye tipos de datos complejos y funciones matemáticas complejas en el encabezado de la biblioteca estándar .
<complex.h>
- La biblioteca estándar de C++ proporciona una
complex
clase de plantilla así como funciones matemáticas complejas en el <complex>
encabezado. - El lenguaje de programación Go tiene tipos integrados
complex64
(cada componente es un número de punto flotante de 32 bits) y complex128
(cada componente es un número de punto flotante de 64 bits). Los literales numéricos imaginarios se pueden especificar añadiendo una "i". - El módulo principal de Perl Math::Complex proporciona soporte para números complejos.
- Python proporciona el tipo incorporado
complex
. Los literales numéricos imaginarios se pueden especificar añadiendo una "j". Las funciones matemáticas complejas se proporcionan en el módulo de la biblioteca estándar cmath
. [2] - Ruby proporciona una clase Complex en el módulo de biblioteca estándar complex .
- OCaml admite números complejos con el módulo de biblioteca estándar Complex .
- Haskell admite números complejos con el módulo de biblioteca estándar Data.Complex (anteriormente llamado Complex ).
- Mercury proporciona números complejos con soporte completo de sobrecarga de operadores en la distribución extras, usando libcomplex_numbers .
- Java no tiene una clase de número complejo estándar, pero existen varias implementaciones gratuitas incompatibles de una clase de número complejo:
- La biblioteca Apache Commons Math proporciona números complejos para Java con su clase Complex .
- La biblioteca JScience tiene una clase de números complejos .
- La biblioteca JAS permite el uso de números complejos.
- Netlib tiene una clase de números complejos para Java.
- javafastcomplex también agrega soporte para números complejos para Java
- jcomplexnumber es un proyecto sobre la implementación de números complejos en Java.
- JLinAlg incluye números complejos con precisión arbitraria.
- Common Lisp : el estándar ANSI Common Lisp admite números complejos de punto flotante, racionales y enteros de precisión arbitraria. Sus funciones matemáticas básicas están definidas para números complejos, cuando corresponde. Por ejemplo, la raíz cuadrada de -1 es un número complejo:
? ( sqrt -1 ) #C ( 0 1 ) ; el resultado de ( sqrt -1)
- Esquema : Los números complejos y las funciones (por ejemplo,
sin
) están incluidos en la especificación del lenguaje. Sin embargo, su implementación es opcional en el estándar R5RS, mientras que en R6RS es obligatoria. - .NET Framework proporciona System.Numerics.Complex desde la versión 4.0.
- El BASIC inteligente para iOS admite naturalmente números complejos en notación a + bi . Cualquier variable, operación matemática o función puede aceptar números reales y complejos como argumentos y devolver números reales o complejos según el resultado. Por ejemplo, la raíz cuadrada de -4 es un número complejo:
IMPRIMIR RAIZ CUADRADA ( -4 ) 2 i
- Julia incluye tipos predefinidos tanto para números complejos como racionales desde al menos la versión 0.3 [3]
- R proporciona un
complex
tipo de datos básico [4] - Swift no tiene un tipo de datos de números complejos estándar, pero Swift Numerics, mantenido por los mantenedores del lenguaje, ofrece ComplexModule.
Referencias
- ^ Guía de programación en Fortran IV Daniel D. McCracken - 1972 - 288 páginas. "La capacidad que ofrecen las operaciones complejas de Fortran supone un gran ahorro en el esfuerzo de programación en determinados problemas".
- ^ Documentación de Python v2.6.5
- ^ "Números complejos y racionales — Documentación de Julia Language 0.3.13-pre".
- ^ "Tipos de datos R". www.w3schools.com . Consultado el 26 de abril de 2022 .