La biblioteca de clases para números ( CLN ) es una biblioteca gratuita para aritmética de precisión arbitraria . Opera con enteros con signo , números racionales , números de punto flotante , números complejos , números modulares y polinomios univariados . Su lenguaje de programación de implementación es C++ .
Detalles
CLN utiliza técnicas orientadas a objetos y sobrecarga de operadores para lograr una sintaxis algebraica natural : la suma x de dos variables a y b se escribe como x = a + b , en contraposición a la función sum(& x , a , b ).
CLN utiliza la herencia de clases para modelar los subconjuntos naturales de los tipos numéricos disponibles: por ejemplo, la clase entero es un subtipo de la clase racional, al igual que los números enteros son un subconjunto de los números racionales. Los números complejos y todos sus subtipos se comportan exactamente como los tipos de números conocidos por el lenguaje Common Lisp , lo que le da a CLN otro significado: se convierte en una abreviatura de Common Lisp Numbers (Números de Common Lisp ). Debido a esto, CLN puede usarse, y de hecho se usa, para implementaciones de Common Lisp, otros lenguajes interpretados o sistemas de álgebra computacional .
La implementación es eficiente. Se puede configurar para usar la biblioteca GNU Multi-Precision como núcleo para bucles internos críticos en cuanto a velocidad e implementa algoritmos avanzados como la multiplicación de Schönhage-Strassen , la división binaria [ 1 ] para calcular ciertas constantes matemáticas y otros. Todos los objetos CLN son inmediatos o con contador de referencias , lo que permite una recolección de basura no intrusiva sin sobrecargar la aplicación principal.
Véase también
Referencias
Enlaces externos
- Sitio web de CLN
- Software libre programado en C++
- Bibliotecas numéricas de C++
- Software que utiliza la Licencia Pública General de GNU.
- Software relacionado con Raspberry Pi