SageMath
İlk yayınlanma | 24 Şubat 2005 | )
---|---|
Güncel sürüm | 10.4[1] (20 Temmuz 2024 ) ) |
Önizleme sürümü | 9.7.beta7 / 1 Ağustos 2022 | )
Programlama dili | Python, Cython |
İşletim sistemi | Linux, macOS, Microsoft Windows, Solaris, Android, iOS |
Platform | |
Boyut | y.. 112–3319 MB |
Tür | Bilgisayarlı cebir sistemi (CAS - Computer Algebra System) |
Lisans | GPLv3[2] |
Resmî sitesi | sagemath.org |
Kod deposu |
SageMath (daha önce Sage veya SAGE, "System for Algebra and Geometry Experimentation[3] - Cebir ve Geometri Deneyleri için Sistem"), cebir, kombinatorik, çizge teorisi, sayısal analiz, sayı teorisi, kalkülüs ve istatistik dahil olmak üzere matematiğin birçok yönünü kapsayan özelliklere sahip bir bilgisayarlı cebir sistemidir.
SageMath'in ilk sürümü 24 Şubat 2005 tarihinde GNU Genel Kamu Lisansı sürüm 2 koşulları altında özgür ve açık kaynak kodlu yazılım olarak, "Magma, Maple, Mathematica ve MATLAB'a açık kaynaklı bir alternatif" yaratma hedefiyle yayınlandı.[4] SageMath projesinin yaratıcısı ve lideri William Stein, Washington Üniversitesi'nde bir matematikçiydi.
SageMath, prosedürel, fonksiyonel ve nesne-yönelimli yapılarını destekleyen Python'a benzeyen bir söz dizimi kullanır.[5]
Geliştirme
[değiştir | kaynağı değiştir]Stein, Sage'i tasarlarken C, C++, Common Lisp, Fortran ve Python gibi farklı programlama dilleri ile yazılmış birçok açık kaynak matematik yazılım paketi olduğunu fark etmiştir.
Sage (çoğunlukla Python ve Cython dillerinde yazılmıştır), tekerleği yeniden icat etmek yerine, birçok özel CAS yazılım paketini, kullanıcının yalnızca Python bilmesi gereken ortak bir arayüze entegre eder. Ancak Sage, yeni fonksiyonlar ekleyen ve bileşenleri arasındaki arayüzleri oluşturan yüz binlerce benzersiz kod satırı içerir.[6]
SageMath, geliştirme için hem öğrencilerden hem de profesyonellerden faydalanır. SageMath'in gelişimi hem gönüllü çalışmaları hem de hibeler tarafından desteklenmektedir.[7] Ancak 2016 yılına kadar ilk tam zamanlı Sage geliştiricisi işe alınmamıştır (bir AB hibesi ile finanse edilmiştir).[8] Aynı yıl Stein, yazılım geliştirme için akademik finansman ve referans eksikliğinden duyduğu hayal kırıklığını anlatmış ve bunu yeni kurduğu SageMath, Inc. şirketinde proje üzerinde tam zamanlı çalışmak üzere kadrolu akademik pozisyonundan ayrılma kararının nedeni olarak göstermiştir.[8]
Başarılar
[değiştir | kaynağı değiştir]- 2007: özgür yazılım için uluslararası bir yarışma olan Les Trophées du Libre'nin bilimsel yazılım bölümünde birincilik ödülü.[9]
- 2012: Google Summer of Code için seçilen projelerden biri.[10]
- 2013: ACM/SIGSAM Jenks Ödülü.[11]
Performans
[değiştir | kaynağı değiştir]SageMath, hem çalıştırılabilir dosya (binary) hem de kaynak kodu indirme sayfasından temin edilebilir. SageMath kaynak koddan oluşturulursa, OpenBLAS, FLINT, GAP ve NTL gibi dahil edilen kütüphanelerin çoğu o bilgisayar için ayarlanacak ve optimize edilecektir, işlemci sayısını, önbellek boyutunu, SSE talimatları için donanım desteği olup olmadığını vb. dikkate alır.
Python kodu C'ye dönüştürüldüğü için Cython SageMath programlarının hızını artırabilir.[12]
Lisanslama ve kullanılabilirlik
[değiştir | kaynağı değiştir]SageMath özgür yazılım olup GNU Genel Kamu Lisansı sürüm 3[2] koşulları altında dağıtılmaktadır.
Microsoft, Windows işletim sistemi için SageMath'in yerel bir sürümüne sponsor olsa da, 2016'dan önce yerel bir bağlantı noktası için herhangi bir plan yoktu ve Windows kullanıcıları SageMath'i çalıştırmak için VirtualBox gibi sanallaştırma teknolojisini kullanmak zorundaydı.[13] SageMath 8.0 (Temmuz 2017), OpenDreamKit projesi tarafından finanse edilen geliştirme ile,[8] Cygwin üzerinde başarıyla derlendi ve Windows'un 64 bit sürümleri için ikili bir yükleyici (çalıştırılabilir dosya) mevcuttu.[14] SageMath 10.0 (Mayıs 2023) itibarıyla, sürüm 2'de Windows Subsystem for Linux gerektirmektedir,[15] bu da Windows'un bir Hyper-V istemcisi olarak çalışmasını gerektirir.
SageMath'in bir paket olarak mevcut olduğu Linux dağıtımları Fedora, Arch Linux, Debian, Ubuntu ve NixOS'tur. Gentoo'da, "sage-on-gentoo"[16] katmanında layman aracılığıyla kullanılabilir. NixOS tarafından kullanılan paket, paket yöneticisi Nix'in dağıtımdan bağımsız doğası nedeniyle diğer dağıtımlarda kullanılabilir.
Gentoo prefix ayrıca diğer işletim sistemlerinde Sage yazılımının kullanılmasını sağlar.
SageMath içinde bulunan yazılım paketleri
[değiştir | kaynağı değiştir]SageMath'in felsefesi, mevcut açık kaynaklı kütüphaneleri var oldukları her yerde kullanmaktır. Bu nedenle, diğer projelerden birçok kütüphane kullanır.
SageMath içinde bulunan matematik paketleri[17] | Cebir | GAP, Singular, FLINT |
---|---|---|
Cebirsel geometri | Singular | |
Keyfi hassasiyetli aritmetik | GMP, MPFR, MPFI, NTL, mpmath, Arb | |
Aritmetik geometri | PARI/GP, NTL, mwrank, ECM | |
Kalkülüs | Maxima, SymPy, GiNaC, Giac, FriCAS | |
Kombinatorik | Symmetrica, Sage-Combinat | |
Lineer cebir | ATLAS, BLAS, LAPACK, NumPy, LinBox, IML, GSL | |
Çizge teorisi | NetworkX | |
Grup teorisi | GAP | |
Nümerik hesaplama | GSL, SciPy, NumPy, ATLAS | |
Sayı teorisi | PARI/GP, FLINT, NTL | |
İstatistiksel hesaplama | R, SciPy | |
SageMath içinde bulunan | komut satırı kabuğu | IPython |
Veri tabanı | ZODB, SQLite | |
Grafik arayüz | SageMath Notebook, MathJax[18] (önceden jsMath) | |
Grafikler | matplotlib, Tachyon, GD, Jmol | |
Etkileşimli programlama dili | Python | |
Networking | Twisted | |
SageMath için kullanılabilen diğer matematik paketleri | Diferansiyel geometri ve tensör hesabı | Sage Manifolds |
Ayrıca bakınız
[değiştir | kaynağı değiştir]- CoCalc
- Sayısal analiz yazılımları karşılaştırılması
- İstatistik paketleri karşılaştırılması
- Bilgisayarlı cebir sistemleri listesi
Kaynakça
[değiştir | kaynağı değiştir]- ^ "Release 10.4". 20 Temmuz 2024. Erişim tarihi: 27 Temmuz 2024.
- ^ a b "COPYING.txt – sage.git". The Sage Repository. 14 Mart 2017 tarihinde kaynağından arşivlendi. Erişim tarihi: 4 Nisan 2017.
- ^ Stein, William. "SAGE: A Computer System for Algebra and Geometry Experimentation". 10 Şubat 2012 tarihinde kaynağından arşivlendi. Erişim tarihi: 30 Mart 2012.
- ^ Stein, William (12 Haziran 2007). "Sage Days 4" (PDF). 27 Haziran 2007 tarihinde kaynağından (PDF) arşivlendi. Erişim tarihi: 2 Ağustos 2007.
- ^ Anastassiou, George A.; Mezei, Razvan A. (2015). Numerical Analysis Using Sage. New York: Springer. ss. x1 and 1. ISBN 9783319167381.
- ^ "Sage Days 7: Combinatorics". SageWiki. 14 Kasım 2008. 11 Aralık 2013 tarihinde kaynağından arşivlendi. Erişim tarihi: 9 Aralık 2013.
- ^ "Sage – Acknowledgement to Supporters". 29 Aralık 2019 tarihinde kaynağından arşivlendi. Erişim tarihi: 6 Ocak 2017.
- ^ a b c William Stein: The origins of SageMath – creating a viable open source alternative to Magma, Maple, Mathematica, and Matlab 26 Mayıs 2023 tarihinde Wayback Machine sitesinde arşivlendi. (presentation, 11 Haziran 2016)
- ^ "Free Software Brings Affordability, Transparency To Mathematics". Science Daily. 7 Aralık 2007. 9 Kasım 2020 tarihinde kaynağından arşivlendi. Erişim tarihi: 6 Ocak 2017.
- ^ "Sage Mathematical Software System". Google Summer of Code / Code-in Archive. 7 Ocak 2017 tarihinde kaynağından arşivlendi. Erişim tarihi: 6 Ocak 2017.
- ^ "Richard Dimick Jenks Memorial Prize 2013 Award". Association for Computing Machinery – SIGSAM. 31 Mart 2017 tarihinde kaynağından arşivlendi. Erişim tarihi: 6 Ocak 2017.
- ^ Stein, William (3 Kasım 2010). "Cython, Sage, and the Need for Speed". 4 Mart 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 6 Ocak 2017.
- ^ Stein, William (16 Mart 2012). "Re: Question about Sage". 15 Haziran 2013 tarihinde kaynağından arşivlendi. Erişim tarihi: 6 Ocak 2017.
- ^ Lelievre, Samuel (18 Ağustos 2017). "SageMath 8.0 installer for Windows". 6 Ağustos 2020 tarihinde kaynağından arşivlendi. Erişim tarihi: 28 Ağustos 2017.
- ^ "Welcome to Sage Installation Guide". 1 Mayıs 2023. 29 Haziran 2023 tarihinde kaynağından arşivlendi. Erişim tarihi: 28 Temmuz 2023.
- ^ "sage-on-gentoo Wiki". GitHub. 28 Ocak 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 6 Ocak 2017.
- ^ "Standard Packages". doc.sagemath.org. 10 Aralık 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 6 Ocak 2017.
- ^ "External Packages — External Packages". 27 Nisan 2023 tarihinde kaynağından arşivlendi. Erişim tarihi: 9 Ekim 2023.