Složitý datový typ - Complex data type
Nějaký programovací jazyky poskytnout a komplexní datový typ pro komplexní číslo úložiště a aritmetika jako vestavěný (primitivní) datový typ.
V některých programovacích prostředích termín komplexní datový typ (na rozdíl od primitivní datové typy ) je synonymem pro složený datový typ.[1][2]
Aritmetika komplexního čísla
Složitá proměnná nebo hodnota je obvykle představována jako dvojice plovoucí bod čísla. Jazyky, které podporují komplexní datový typ, obvykle poskytují speciální syntaxi pro vytváření takových hodnot a rozšiřují základní aritmetické operace ('+', '-', '×', '÷'), aby na ně mohly působit. Tyto operace jsou obvykle přeloženy překladač do posloupnosti s plovoucí desetinnou čárkou pokyny ke stroji nebo do knihovna hovory. Tyto jazyky mohou také poskytovat podporu pro další operace, jako je formátování, testování rovnosti atd. Stejně jako v matematika, tyto jazyky často interpretují hodnotu s plovoucí desetinnou čárkou jako ekvivalent komplexní hodnoty s nulovou imaginární částí.
Jazyková podpora
- The FORTRAN KOMPLEXNÍ typ
- The C99 Standard programovacího jazyka C zahrnuje komplexní datové typy a složité matematické funkce v záhlaví standardní knihovny
<komplex.h >
- The C ++ standardní knihovna poskytuje a
komplex
třída šablon stejně jako složité matematické funkce v<complex>
záhlaví - The Jít programovací jazyk má vestavěné typy
komplex64
(každá složka je 32bitová float) akomplex128
(každá složka je 64bitová float) - The Perl základní modul Matematika :: Složité poskytuje podporu pro komplexní čísla
- Krajta poskytuje vestavěný
komplex
typ. Imaginární číselné literály lze určit přidáním písmene „j“. Ve standardním knihovním modulu jsou k dispozici komplexní matematické funkcecmath
[3] - Rubín poskytuje a Komplex třídy ve standardním modulu knihovny komplex
- OCaml podporuje komplexní čísla se standardním modulem knihovny Komplex
- Haskell podporuje komplexní čísla se standardním modulem knihovny Data.Complex (dříve volané Komplex)
- Rtuť poskytuje komplexní čísla s plnou podporou přetížení operátora v distribuci doplňků pomocí libcomplex_numbers.
- Jáva nemá standardní třídu komplexních čísel, ale existuje řada nekompatibilních bezplatných implementací třídy komplexních čísel:
- The Apache Commons Matematická knihovna poskytuje komplexní čísla pro Javu Komplex třída
- The JScience knihovna má Komplex číselná třída
- The JAS knihovna umožňuje použití komplexních čísel.
- Netlib má složitou číselnou třídu pro Javu
- javafastcomplex také přidává podporu komplexních čísel pro Javu
- jcomplexnumber je projekt implementace komplexního čísla v Javě
- JLinAlg zahrnuje komplexní čísla s libovolnou přesností.
- Společný Lisp: Standard ANSI Common Lisp podporuje komplexní počet plováků, racionálních hodnot a celých čísel s libovolnou přesností. Jeho základní matematické funkce jsou případně definovány pro komplexní čísla. Například druhá odmocnina -1 je komplexní číslo:
? (čtv -1)#C(0 1) ; výsledek (sqrt -1)
- Systém: Komplexní čísla a funkce (např.
hřích
) jsou obsaženy ve specifikaci jazyka. Jejich implementace je však ve standardu R5RS volitelná, zatímco v R6RS je povinná. - The .NET Framework poskytuje System.Numerics.Complex od verze 4.0.
- The smart BASIC pro iOS přirozeně podporuje komplexní čísla v notaci a + bi. Jakákoli proměnná, matematická operace nebo funkce může přijmout reálná i komplexní čísla jako argumenty a vrátit reálná nebo komplexní čísla v závislosti na výsledku. Například druhá odmocnina z -4 je komplexní číslo:
TISK SQRT (-4)
2i
Dějiny
![]() | Tato sekce potřebuje expanzi. Můžete pomoci přidávat k tomu. (Listopad 2015) |
The KOMPLEX
datový typ byl poskytnut v FORTRAN IV.[4]
Reference
- ^ Příručka pro návrh a implementaci databáze IBM Informix
- ^ „Dokumentace Flash 8“. Archivovány od originál dne 2009-04-27. Citováno 2009-05-11.
- ^ Dokumentace k Pythonu v2.6.5
- ^ Průvodce programováním ve Fortranu IV Daniel D. McCracken - 1972-288 stran. „Schopnost poskytovaná komplexními operacemi Fortranu představuje velkou úsporu programovacího úsilí při určitých problémech.“