Dörtlü çift aritmetik seyrek matris paketi var mı?


10

Bazı koşulsuz büyük seyrek doğrusal denklemler sistemi üzerinde çalışıyorum. Bunları çözmek için çift-çift aritmetik veya dört-çift aritmetik kullanmak istiyorum. Nakata, Maho tarafından geliştirilen ve dörtlü çift aritmetik altında sayısal lineer cebirsel hesaplamalar yapabilen MPACK adında bir paket olduğunu biliyorum. Bununla birlikte, seyrek matris için değil, yoğun matris için tasarlanmıştır. Dörtlü çift aritmetik seyrek matris paketi olup olmadığını biliyor musunuz?


Ne tür matrislerle çalışıyorsunuz? Simetrik, Hermitiyen, pozitif tanımlı mı? Seyrek bir LU yapmak veya yinelemeli yöntemler kullanmak ister misiniz?
Victor Liu

Yanıtlar:


3

Sürüm 3.2'den itibaren PETSc, gcc / gfortran 4.6 ve daha yeni sürümlerde seyrek dört hassasiyetli hesaplamaları destekler.

PETSc'nin size (dörtlü destekle birlikte) aşağıdaki (kısmi) yapılandırma komutuyla sağlayabileceği dört hassasiyetli bir BLAS ve LAPACK gerekir:

./configure --with-precision=__float128 --download-f2cblaslapack

Daha fazla bilgi için SSS bölümüne bakın .

Ayrıca, nOOb ile hemfikirim , eğer mümkünse, dörtlü hassasiyete geçmeden önce sistemi düzenlemeye çalışın.


1
Bu, dörtlü (256 bit gerçek) değil, dört duyarlıktır (128 bit gerçek). Bununla birlikte, dört hassasiyet, çift hassasiyetle karşılaşılan istikrar sorunlarını anlamak için genellikle bol miktarda bulunur ve genellikle sistemi ölçeklendirmek ve ayrıştırmak istersiniz, böylece üretim için çift hassasiyet yeterlidir.
Jed Brown

2

Kötü koşullu sistemler, sayısal hassasiyeti arttırmaktan ziyade düzenlileştirme ile daha iyi çözülür. Kanlı detayları için "normalleştirme kötü pozlama" araması yapın.


2

Trilinos kütüphanesini deneyebilirim. Tpetra'nın altındaki seyrek matris kütüphanelerini (orijinal seyrek matris kütüphanesi olan Epetra'nın yerini alması gerekiyordu) ayarladılar. Şablon çift, karmaşık, dörtlü, vb. Olabilir ve muhtemelen PETSc'nin yanındaki en büyük çözücü seçimine (hem doğrudan hem de yinelemeli) sahiptir.

Düzenleme: yorumları okuduktan sonra, Tpetra'nın hemen kullanışlılığı dört hassaslık biraz şüpheli görünüyor ...


Çözücülerin çoğunluğu henüz Tpetra ile çalışmıyor, maalesef :-(
Wolfgang Bangerth

Bu talihsizlik. Umutluydum ama Tpetra gelişiminin ne kadar ilerlediğinden emin değildim (dolayısıyla "Epetra'nın yerini alması gerekiyordu": P). En azından Belos kütüphanesinin (yani üçüncü parti kodlarının etrafındaki sarmalayıcılara dayanmayan Trilinos çözücüleri) Tpetra'yı desteklediğini düşündüm.
Jesse Chan

Bence bir Belos2 var. Elbette, Trilinos projesi kaynaklarını Tpetra'nın arkasına koyuyor ve gelecekte standart paket olacak. Yine de henüz tam olarak orada olmadıklarını düşünüyorum.
Wolfgang Bangerth

__float128Dörtlü olsun, Tpetra tarafından desteklenmenin bile farkında değilim . Tpetra tek başına değil, tüm başlıklar değildir ve öyle olsa bile, std::complexsadece floatve ile çalışmak gibi şeyler double.
Jed Brown

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.