Kompleks datatype - Complex data type

Nogle programmeringssprog giver en kompleks datatype til kompleks lagring af tal og regning som en indbygget (primitiv) datatype .

I nogle programmeringsmiljøer er udtrykket kompleks datatype (i modsætning til primitive datatyper ) et synonym for den sammensatte datatype .

Kompleks talregning

En kompleks variabel eller værdi er normalt repræsenteret som et par flydende tal. Sprog, der understøtter en kompleks datatype, giver normalt en særlig syntaks til opbygning af sådanne værdier og udvider de grundlæggende aritmetiske operationer ('+', ' -', '×', '÷') til at handle på dem. Disse operationer oversættes sædvanligvis af kompilatoren til en sekvens af flydende maskininstruktioner eller til biblioteksopkald . Disse sprog kan også understøtte andre operationer, såsom formatering, lighedstest osv. Som i matematik fortolker disse sprog ofte en floating-point-værdi som ækvivalent med en kompleks værdi med en nul imaginær del.

Sprogstøtte

  • Den FORTRAN kompleks form.
  • Den C99 standarden af programmeringssproget C omfatter komplekse datatyper og kompleks-matematiske funktioner i standard biblioteket header .<complex.h>
  • Den C ++ standard biblioteket giver en complexskabelon klasse samt kompleks-matematiske funktioner i <complex>overskriften.
  • Den Go programmeringssprog har indbygget typer complex64(hver komponent er 32-bit float) og complex128(hver komponent er 64-bit float).
  • Den Perl kernemodul Math :: Complex giver støtte til komplekse tal.
  • Python leverer den indbyggede complextype. Imaginære tal bogstaver kan angives ved at tilføje et "j". Komplekse matematiske funktioner findes i standardbiblioteksmodulet cmath.
  • Ruby giver en kompleks klasse i standard biblioteket modul kompleks .
  • OCaml understøtter komplekse numre med standardbiblioteksmodulet Complex .
  • Haskell understøtter komplekse tal med standardbiblioteksmodulet Data.Complex (tidligere kaldet kompleks ).
  • Mercury giver komplicerede tal fuld understøttelse af overbelastning af operatører i ekstradistributionen ved hjælp af libcomplex_numbers .
  • Java har ikke en standard kompleks talklasse, men der findes en række inkompatible gratis implementeringer af en kompleks talklasse:
    • Den Apache Commons Math biblioteket giver komplekse tal for Java med sin Complex klasse.
    • Den JScience bibliotek har et kompleks tal klasse.
    • Den JAS Biblioteket giver mulighed for brug af komplekse tal.
    • Netlib har en kompleks talklasse til Java.
    • javafastcomplex tilføjer også kompleks talstøtte til Java
    • jcomplexnumber er et projekt om implementering af komplekst tal i Java.
    • JLinAlg indeholder komplekse tal med vilkårlig præcision.
  • Common Lisp : ANSI Common Lisp -standarden understøtter komplekse antal floats, rationaler og vilkårlige præcisionshele tal. Dens grundlæggende matematiske funktioner er defineret for komplekse tal, hvor det er relevant. F.eks. Er kvadratroden af ​​-1 et komplekst tal:
     ? (sqrt -1)
    #C(0 1)            ; the result of (sqrt -1)
    
  • Skema : Komplekse tal og funktioner (f.eks. sin) Er inkluderet i sprogspecifikationen. Implementeringen er dog valgfri i R5RS -standarden, mens i R6RS er obligatorisk.
  • Den .NET Framework giver System.Numerics.Complex siden version 4.0.
  • Den smarte BASIC til iOS understøtter naturligvis komplekse tal i notation a + bi . Enhver variabel, matematikoperation eller funktion kan acceptere både reelle og komplekse tal som argumenter og returnere reelle eller komplekse tal afhængigt af resultatet. F.eks. Er kvadratroden af ​​-4 et komplekst tal:
    PRINT SQRT(-4)
    2i
    
  • Julia inkluderer foruddefinerede typer til både komplekse og rationelle tal siden mindst version 0.3

Referencer