Knihovna tříd pro čísla - Class Library for Numbers
Vývojáři | Bruno Haible a Richard B. Kreckel |
---|---|
Stabilní uvolnění | 1.3.6 / 5. prosince 2019 |
Napsáno | C ++ 11 |
Operační systém | Cross-platform |
Typ | Matematický software |
Licence | GPL |
webová stránka | http://www.ginac.de/CLN/ |
CLN je volný, uvolnit knihovna pro aritmetika s libovolnou přesností. Funguje na podepsané celá čísla, racionální čísla, plovoucí bod čísla, komplexní čísla, modulární čísla a univariate polynomy. Jeho implementace programovací jazyk je C ++.
CLN používá objektově orientovaný techniky a přetížení operátora dosáhnout přirozeného algebraický syntaxe: Součet X dvou proměnných A a b je psán jako X = A + b, na rozdíl od funkčního součtu (&X, A, b).
CLN používá třídní dědičnost modelovat přirozené podmnožiny z dostupných typů čísel: např. celočíselná třída je podtypem racionální třídy, stejně jako celá čísla jsou podmnožinou racionálních čísel. Složitá čísla a všechny jejich podtypy se chovají přesně jako typy čísel známé Společný Lisp jazyk, což dává CLN další význam: stává se zkratkou Společná čísla Lisp. Z tohoto důvodu lze CLN použít a používá se k implementaci Common Lispu, jiných interpretovaných jazyků nebo systémy počítačové algebry.
Implementace je efektivní. Může být nakonfigurován pro použití GNU Multi-Precision Library jako jádro pro rychlostní kritiku vnitřní smyčky a implementuje pokročilé algoritmy jako Násobení Schönhage – Strassen, binární rozdělení a další. Všechny objekty CLN jsou buď okamžité, nebo reference započítána, zajišťující nepřerušovaný provoz odvoz odpadu bez zátěže hlavní aplikace.