Tipul de date complexe - Complex data type
Unele limbaje de programare oferă un tip de date complex pentru stocarea numerelor complexe și aritmetica ca tip de date încorporat (primitiv) .
În unele medii de programare, termenul de tip de date complex (spre deosebire de tipurile de date primitive ) este un sinonim pentru tipul de date compuse .
Aritmetica numărului complex
O variabilă sau o valoare complexă este de obicei reprezentată ca o pereche de numere în virgulă mobilă . Limbile care acceptă un tip de date complex oferă de obicei sintaxă specială pentru construirea unor astfel de valori și extind operațiile aritmetice de bază („+”, „-”, „×”, „÷”) pentru a acționa asupra lor. Aceste operațiuni sunt de obicei traduse de compilator într-o secvență de instrucțiuni ale mașinii în virgulă mobilă sau în apeluri de bibliotecă . Aceste limbi pot oferi, de asemenea, suport pentru alte operații, cum ar fi formatarea, testarea egalității, etc. La fel ca în matematică , aceste limbi interpretează adesea o valoare în virgulă mobilă echivalentă cu o valoare complexă cu o parte imaginară zero.
Suport lingvistic
- Tipul FORTRAN COMPLEX.
- Standardul C99 al limbajului de programare C include tipuri de date complexe și funcții complexe de matematică în antetul bibliotecii standard .
<complex.h> - C ++ biblioteca standard oferă o
complexclasă de șablon precum și funcții complexe matematice în<complex>antet. - Go limbaj de programare a construit-in tipuri
complex64(fiecare componentă este pe 32 de biți float) șicomplex128(fiecare component este de 64-bit float). - Perl modul de bază Math :: Complexul oferă suport pentru numere complexe.
-
Python oferă tipul încorporat
complex. Literalele numărului imaginar pot fi specificate prin adăugarea unui „j”. Funcțiile de matematică complexă sunt furnizate în modulul de bibliotecă standardcmath. - Ruby oferă o clasă Complex în complexul modulului de bibliotecă standard .
- OCaml acceptă numere complexe cu modulul de bibliotecă standard Complex .
- Haskell acceptă numere complexe cu modulul de bibliotecă standard Data.Complex (denumit anterior Complex ).
- Mercur oferă numere complexe cu suport complet de supraîncărcare a operatorului în distribuția extras, utilizând libcomplex_numbers .
-
Java nu are o clasă de numere complexe standard, dar există o serie de implementări libere incompatibile ale unei clase de numere complexe:
- Biblioteca Apache Commons Math oferă numere complexe pentru Java cu clasa sa Complexă .
- JScience Biblioteca dispune de un complex de clasă număr.
- JAS Biblioteca permite utilizarea numerelor complexe.
- Netlib are o clasă de număr complexă pentru Java.
- javafastcomplex adaugă, de asemenea, suport pentru număr complex pentru Java
- jcomplexnumber este un proiect privind implementarea numărului complex în Java.
- JLinAlg include numere complexe cu precizie arbitrară.
-
Common Lisp : Standardul ANSI Common Lisp acceptă numere complexe de flotante, raționale și numere întregi de precizie arbitrare. Funcțiile sale matematice de bază sunt definite pentru numere complexe, acolo unde este cazul. De exemplu, rădăcina pătrată a -1 este un număr complex:
? (sqrt -1) #C(0 1) ; the result of (sqrt -1)
-
Schemă : numerele și funcțiile complexe (de exemplu
sin) sunt incluse în specificația limbii. Implementarea lor este totuși opțională în standardul R5RS, în timp ce în R6RS este obligatorie. - .NET Framework oferă System.Numerics.Complex începând cu versiunea 4.0.
- Inteligent BASIC pentru iOS sprijină în mod natural numere complexe în notație a + bi . Orice variabilă, operație sau funcție matematică poate accepta numerele reale și complexe ca argumente și poate returna numere reale sau complexe în funcție de rezultat. De exemplu, rădăcina pătrată a lui -4 este un număr complex:
PRINT SQRT(-4) 2i
- Julia include tipuri predefinite atât pentru numerele complexe, cât și pentru cele raționale, din cel puțin versiunea 0.3