Aşağıdakileri çevrimiçi araştırmalardan şu ana kadar topladım:
Armadillo'yu biraz kullandım ve arayüzü yeterince sezgisel buldum ve Ubuntu için ikili paketleri bulmak kolaydı (ve diğer Linux dağıtımlarını kabul ediyorum). Kaynaktan derlemedim, ama umudum çok zor olmayacaktı. Tasarım kriterlerimin çoğunu karşılıyor ve yoğun doğrusal cebir kullanıyor. LAPACK veya MKL rutinlerini çağırabilir. Genelde Armadillo'yu derlemeye gerek yoktur, tamamen şablon temelli bir kütüphanedir: Sadece başlığı ve BLAS / LAPACK veya MKL vb.
Eigen hakkında iyi şeyler duydum ama kullanmadım. Hızlı olduğunu iddia ediyor , şablon oluşturuyor ve yoğun doğrusal cebiri destekliyor. Bir bağımlılık olarak LAPACK veya BLAS'a sahip değildir, ancak LAPACK'in yapabileceği her şeyi yapabiliyor gibi görünmektedir (ayrıca LAPACK'in yapamadığı bazı şeyler). Birçok proje umut verici olan Eigen'i kullanıyor. Ubuntu için ikili bir pakete sahip, ancak yalnızca başlıklı bir kütüphane olarak başka yerlerde de kullanmak çok önemli.
Matris Şablon Kütüphanesi sürüm 4 de umut verici görünüyor ve şablon oluşturmayı kullanır. Hem yoğun hem de seyrek lineer cebiri destekler ve UMFPACK'i seyrek bir çözücü olarak çağırabilir . Özellikler kendi web sitesinden biraz belirsizdir. Ubuntu için, web sitelerinden indirilebilir bir ikili pakete sahiptir.
Argonne Ulusal Laboratuarında bir ekip tarafından yazılmış PETSc , seyrek ve yoğun doğrusal çözücülere erişebiliyor, bu yüzden matris kütüphanesi olarak işlev görebileceğini farz ediyorum. C ile yazılmış, ancak C ++ bağları var, sanırım (ve olmasa bile C'yi C ++ 'dan çağırmak sorun değil). Belgeler inanılmaz derecede kapsamlı. Bu paket şimdi yapmak istediklerim için biraz fazla bilgi veriyor (karma tamsayılı doğrusal programlar oluşturmak için matris çarpımı ve indeksleme), ancak gelecekte benim için veya farklı ihtiyaçları olan diğer insanlar için bir matris formatı olarak yararlı olabilir benden
Sandia Ulusal Laboratuarında bir ekip tarafından yazılan Trilinos , Epetra bileşeni ile yoğun ve seyrek matrisler için nesne yönelimli C ++ arayüzleri ve Tpetra bileşeni ile yoğun ve seyrek matrisler için şablonlanmış arayüzler sunmaktadır. Aynı zamanda doğrusal çözücü ve özverensel işlevsellik sağlayan bileşenlere sahiptir. Dokümantasyon, PETSc kadar cilalanmış veya belirgin görünmüyor; Trilinos, PETSc'in Sandia analoguna benziyor. PETSc, Trilinos çözücülerinden bazılarını arayabilir. Trilinos için Binaries Linux için kullanılabilir.
Blitz , Linux ikili dosyalarına sahip, C ++ nesne yönelimli bir kütüphanedir. Aktif olarak görünmüyor gibi görünüyor (2012-06-29: dün yeni bir versiyon ortaya çıktı!), Posta listesi aktif olsa da, onu kullanan bir topluluk var. BLAS'ın ötesinde sayısal doğrusal cebir biçiminde pek bir şey yapmıyor ve yoğun bir matris kütüphanesine benziyor. Şablonları kullanır.
Boost :: uBLAS , C ++ nesne yönelimli bir kütüphanedir ve Boost projesinin bir parçasıdır. Baştan çıkarıcı ve yoğun sayısal lineer cebiri destekler. Çok hızlı olmadığını duydum.
Şablon Sayısal Toolkit NIST tarafından geliştirilen bir C ++ nesne yönelimli kütüphanesidir. Yazarı Roldan Pozo, zaman zaman yamalara katkıda bulunuyor gibi gözüküyor, ancak artık aktif bir gelişme göstermiyor gibi görünüyor (son güncelleme 2010). Yoğun doğrusal cebir üzerine odaklanır ve bazı temel matris ayrıştırma ve özdeğer çözücü için arayüzler sağlar.
Elemental Jack Poulson tarafından geliştirilen, benzer bir tarzda yazılmış (paralel) yoğun lineer cebir yazılım paketi dağıtılmış bellek olduğunu ALEVİN . Projedeki özelliklerin ve arka planların listesi için belgelerine bakın . FLAME'ın , nesne yönelimli C ile yazılmış gibi görünen libflame adı verilen sıralı ve paylaşılan bellek yoğun doğrusal cebir için ilişkili bir kütüphanesi vardır. Libflame , LAPACK'e çok benzer, ancak hızlı sayısal gelişimi geliştirmek için algoritmaların altında daha iyi notasyona sahiptir. Doğrusal cebir daha çok bilim ve daha az siyah sanattan ibarettir.
Listeye eklenebilecek başka kütüphaneler var; eğer seyrek lineer cebir paketlerini "matris kütüphaneleri" olarak sayıyorsak , C de bildiğim en iyi ücretsiz olanı nesne yönelimli bir şekilde programlanmış olan SuiteSparse . SuiteSparse'ı kullandım ve almayı oldukça kolay buldum; seyrek problemleri birçok küçük, yoğun doğrusal cebir alt problemine parçalayan algoritmaların bazıları için BLAS ve LAPACK'e bağlıdır. Paketin baş yazarı Tim Davis inanılmaz derecede yardımsever ve harika bir adam.
Harwell Altrutin Kütüphaneler onların seyrek lineer cebir rutinleri ünlüdür ve bir form doldurarak ve indirmek istediğiniz her dosya için bir e-posta alma bu süreçte geçmek zorunda olsa da, akademik kullanıcılar için ücretsizdir. Alt rutinler genellikle bağımlılıklara sahip olduklarından, bir çözücü kullanmak beş veya altı dosyanın indirilmesini gerektirebilir ve özellikle form onayı anında olmadığından işlem biraz sıkıcı olabilir.
Başka seyrek lineer cebir çözücüler de var, fakat söyleyebildiğim kadarıyla, MUMPS ve diğer paketler çoğunlukla lineer sistemlerin çözümüne odaklanmış durumda ve lineer sistemlerin çözümü şu anda endişelerimin en küçüğü. (Belki daha sonra, bu işlevselliğe ihtiyacım olacak ve diğerleri için faydalı olabilir.)