Apakah ada paket matriks jarang aritmatika quad-double?

10

Saya sedang mengerjakan beberapa sistem persamaan linear besar jarang yang tidak dikondisikan. Saya ingin menggunakan aritmatika double-double atau aritmatika quad-double untuk menyelesaikannya. Saya tahu bahwa ada paket bernama MPACK yang dikembangkan oleh Nakata, Maho, yang dapat melakukan perhitungan aljabar linear numerik di bawah aritmatika quad-double. Namun, ini dirancang untuk matriks padat, bukan matriks jarang. Apakah Anda tahu apakah ada paket matriks aritmatika quad-double?

Hanyu Ye
sumber
Matriks seperti apa yang Anda kerjakan? Apakah symmetrc, Hermitian, pasti positif? Apakah Anda ingin melakukan LU jarang, atau menggunakan metode berulang?
Victor Liu

Jawaban:

3

Pada versi 3.2 , PETSc mendukung perhitungan presisi quad jarang di gcc / gfortran 4.6 dan yang lebih baru.

Anda akan membutuhkan BLAS dan LAPACK quad-precision, yang dapat disediakan PETSc kepada Anda (bersama dengan dukungan quad) dengan perintah konfigurasi (parsial) berikut:

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

Lihat FAQ untuk informasi lebih lanjut.

Juga, saya setuju dengan nOOb , jika memungkinkan, cobalah untuk mengatur sistem sebelum beralih ke quad-precision.

Aron Ahmadia
sumber
1
Ini adalah presisi quad (real 128-bit), bukan quad-double (real 256-bit). Yang mengatakan, presisi quad biasanya banyak untuk memahami masalah stabilitas yang dihadapi dengan presisi ganda, dan biasanya Anda ingin skala sistem dan diskritisasi sehingga presisi ganda cukup untuk produksi.
Jed Brown
2

Sistem yang dikondisikan buruk lebih baik diselesaikan dengan regularisasi daripada dengan meningkatkan presisi numerik. Cari "regularisasi ill-posed" untuk detail berdarah.

n00b
sumber
2

Saya mungkin akan mencoba perpustakaan Trilinos. Mereka telah mem-templar perpustakaan matriks jarang di bawah Tpetra (yang seharusnya menggantikan Epetra, perpustakaan matriks jarang asli mereka). Anda dapat templat ganda, kompleks, quad, dll, dan mereka mungkin memiliki pilihan solver terbesar (baik langsung dan berulang) di sebelah PETSc.

Sunting: setelah membaca komentar, kegunaan langsung Tpetra tampaknya agak dipertanyakan presisi wrt quad ...

Jesse Chan
sumber
Mayoritas pemecah masalah belum bekerja dengan Tpetra, sayangnya :-(
Wolfgang Bangerth
Sangat disayangkan. Saya berharap tetapi tidak yakin seberapa jauh perkembangan Tpetra telah terjadi (karenanya "seharusnya menggantikan Epetra": P). Saya pikir setidaknya perpustakaan Belos (yaitu pemecah Trilinos tidak berdasarkan pembungkus di sekitar kode pihak ketiga) mendukung Tpetra?
Jesse Chan
Saya pikir ada Belos2. Yang pasti, proyek Trilinos menempatkan sumber daya mereka di belakang Tpetra dan itu akan menjadi paket standar di masa depan. Saya pikir mereka belum sampai di sana.
Wolfgang Bangerth
Saya bahkan tidak sadar __float128didukung oleh Tpetra, apalagi quad-double. Tpetra tidak berdiri sendiri dan tidak semua header, dan bahkan jika itu, hal-hal seperti std::complexhanya bekerja dengan floatdan double.
Jed Brown