Чи є якийсь чотири-подвійний арифметичний розріджений матричний пакет?


10

Я працюю над деякою погано обумовленою великою розрідженою лінійною системою рівнянь. Я хочу використовувати подвійну подвійну арифметику або квадратурну арифметику для їх вирішення. Я знаю, що існує пакет з назвою MPACK, розроблений компанією Nakata, Maho, який може виконувати чисельні лінійні алгебраїчні обчислення під квадратурною арифметикою. Однак він розроблений для щільної матриці, а не розрідженої матриці. Чи знаєте ви, чи існує чотири-подвійний арифметичний розріджений матричний пакет?


З якими матрицями ви працюєте? Це симетричний, ермітичний, позитивний певний? Ви хочете зробити рідкий LU або використовувати ітеративні методи?
Віктор Лю

Відповіді:


3

Починаючи з версії 3.2 , PETSc підтримує розріджені обчислення у квадратичній точності на gcc / gfortran 4.6 і новіших.

Вам знадобляться квадратичні BLAS та LAPACK, які PETSc може надати вам (разом із підтримкою чотирьох) із наступною (частковою) командою налаштування:

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

Див. FAQ для отримання додаткової інформації.

Також я погоджуюся з nOOb , якщо це взагалі можливо, спробуйте впорядкувати систему перед вимиканням на квадратичну точність.


1
Це квадратична точність (128-бітова реальність), а не квадра-подвійна (256-бітова реальність). Однак, квадратична точність зазвичай є достатньою для розуміння проблем стійкості, що виникають з подвійною точністю, і зазвичай потрібно масштабувати систему та дискретизувати, щоб подвійної точності було достатньо для виробництва.
Джед Браун

2

Погані кондиціонери краще вирішувати регуляризацією, ніж збільшенням числової точності. Шукайте "регуляризацію недоброзичливо" для деталей горі.


2

Я можу спробувати бібліотеку Триліноса. Вони створили шаблони розріджених матричних бібліотек під Tpetra (що, як передбачається, замінить Epetra, їх оригінальну бібліотеку розріджених матриць). Ви можете шаблонувати подвійні, складні, чотиригранні тощо, і вони, можливо, мають найбільший вибір вирішувачів (як прямих, так і ітеративних) поруч із PETSc.

Редагувати: після прочитання коментарів, негайна корисність Tpetra здається трохи сумнівною точністю WR квадратику ...


Більшість вирішувачів поки не працюють з Tpetra, на жаль :-(
Вольфганг Бангерт

Це прикро. Я сподівався, але не впевнений, наскільки далеко пішов розвиток Tpetra (звідси "передбачається замінити Епетра": P). Я думав, що принаймні бібліотека Білоса (тобто вирішувачі Trilinos, які не базуються на обгортках навколо сторонніх кодів) підтримує Tpetra, хоча?
Джессі Чан

Я думаю, що є Belos2. Напевно, проект Trilinos відкладає свої ресурси позаду Tpetra, і це буде стандартним пакетом у майбутньому. Я думаю, вони ще не зовсім там.
Вольфганг Бангерт

Мені не відомо, що мене навіть __float128підтримує Tpetra, не кажучи вже про чотиризначний. Tpetra - це не автономний і не всезаголовний характер, і навіть якби він був, такі речі, як std::complexробота лише з floatі double.
Джед Браун

1

Багатоточний обчислювальний інструментарій для MATLAB має підтримку розріджених матриць і спеціально оптимізований для обчислень з чотириразовою точністю.

Ось детальні відомості про терміни для квадроточних розріджувачів: Прямі для малих матриць

(Я автор інструментарію).

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.