SageMath (anteriormente Sage o SAGE , "Sistema para experimentación en álgebra y geometría" [3] ) es un sistema de álgebra computacional (CAS) con características que cubren muchos aspectos de las matemáticas , incluyendo álgebra , combinatoria , teoría de grafos , teoría de grupos , variedades diferenciables , análisis numérico , teoría de números , cálculo y estadística .
La primera versión de SageMath fue lanzada el 24 de febrero de 2005 como software libre y de código abierto bajo los términos de la Licencia Pública General GNU versión 2, con los objetivos iniciales de crear una "alternativa de código abierto a Magma , Maple , Mathematica y MATLAB ". [4] El creador y líder del proyecto SageMath, William Stein , fue un matemático de la Universidad de Washington .
SageMath utiliza una sintaxis similar a la de Python , [5] admitiendo construcciones procedimentales , funcionales y orientadas a objetos .
Al diseñar Sage, Stein se dio cuenta de que ya existían muchos paquetes de software de matemáticas de código abierto escritos en diferentes lenguajes , a saber, C , C++ , Common Lisp , Fortran y Python .
En lugar de reinventar la rueda , Sage (que está escrito principalmente en Python y Cython ) integra muchos paquetes de software CAS especializados en una interfaz común, para la cual un usuario solo necesita saber Python. Sin embargo, Sage contiene cientos de miles de líneas de código únicas que agregan nuevas funciones y crean las interfaces entre sus componentes. [6]
SageMath utiliza tanto a estudiantes como a profesionales para el desarrollo. El desarrollo de SageMath se apoya tanto en trabajo voluntario como en subvenciones . [7] Sin embargo, no fue hasta 2016 cuando se contrató al primer desarrollador de Sage a tiempo completo (financiado por una subvención de la UE ). [8] El mismo año, Stein describió su decepción por la falta de financiación académica y de credenciales para el desarrollo de software, citando esto como la razón de su decisión de dejar su puesto académico titular para trabajar a tiempo completo en el proyecto en una empresa recién fundada, SageMath, Inc. [8]
Tanto los binarios como el código fuente están disponibles para SageMath en la página de descarga. Si SageMath se crea a partir del código fuente, muchas de las bibliotecas incluidas, como OpenBLAS , FLINT , GAP (sistema de álgebra computacional) y NTL , se ajustarán y optimizarán para esa computadora, teniendo en cuenta la cantidad de procesadores , el tamaño de sus cachés , si existe soporte de hardware para instrucciones SSE , etc.
Cython puede aumentar la velocidad de los programas SageMath, ya que el código Python se convierte a C. [12]
SageMath es un software libre , distribuido bajo los términos de la Licencia Pública General GNU versión 3. [2]
SageMath 10.0 (mayo de 2023) requiere el Subsistema de Windows para Linux en la versión 2, [13] que a su vez requiere que Windows se ejecute como un cliente Hyper-V . SageMath 8.0 (julio de 2017), con desarrollo financiado por el proyecto OpenDreamKit, [8] se creó con éxito en Cygwin y estaba disponible un instalador binario para versiones de 64 bits de Windows. [14] Aunque Microsoft patrocinaba una versión de SageMath para Windows, antes de 2016 los usuarios de Windows tenían que usar tecnología de virtualización como VirtualBox para ejecutar SageMath. [15]
Las distribuciones Linux en las que SageMath está disponible como paquete son Fedora , Arch Linux , Debian , Ubuntu y NixOS . En Gentoo , está disponible a través de layman en la superposición "sage-on-gentoo" [16] . El paquete utilizado por NixOS está disponible para su uso en otras distribuciones, debido a la naturaleza agnóstica de distribución de su administrador de paquetes, Nix .
El prefijo Gentoo también proporciona Sage en otros sistemas operativos.
La filosofía de SageMath es utilizar bibliotecas de código abierto existentes allí donde existan. Por lo tanto, utiliza muchas bibliotecas de otros proyectos.