Tipo de datos complejo

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 complexclase 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 complextipo 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

  1. ^ 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".
  2. ^ Documentación de Python v2.6.5
  3. ^ "Números complejos y racionales — Documentación de Julia Language 0.3.13-pre".
  4. ^ "Tipos de datos R". www.w3schools.com . Consultado el 26 de abril de 2022 .
Obtenido de "https://es.wikipedia.org/w/index.php?title=Tipo_de_datos_complejos&oldid=1251851938"