Estou trabalhando em um sistema de equações linear esparso grande e mal condicionado. Quero usar aritmética duplo-duplo ou aritmético quad-duplo para resolvê-los. Eu sei que existe um pacote chamado MPACK desenvolvido por Nakata, Maho, que pode executar cálculos algébricos lineares numéricos sob aritmética quádrupla. No entanto, ele é projetado para matriz densa, não matriz esparsa. Você sabe se existe algum pacote de matriz esparsa aritmética quádrupla?
sparse-matrix
matrix
condition-number
Hanyu Ye
fonte
fonte
Respostas:
A partir da versão 3.2 , o PETSc suporta cálculos esparsos de precisão quádrupla no gcc / gfortran 4.6 e mais recentes.
Você precisará de um BLAS e LAPACK de precisão quádrupla, que o PETSc pode fornecer a você (juntamente com o suporte a quádruplos) com o seguinte comando de configuração (parcial):
Consulte as Perguntas frequentes para obter mais informações.
Além disso, concordo com o nOOb , se possível, tente regularizar o sistema antes de mudar para a precisão quádrupla.
fonte
Sistemas mal condicionados são melhor resolvidos por regularização do que aumentando a precisão numérica. Procure por "regularização incorreta" para os detalhes sangrentos.
fonte
Eu poderia dar uma chance à biblioteca Trilinos. Eles modelaram bibliotecas de matriz esparsas sob o Tpetra (que deve substituir o Epetra, sua biblioteca de matriz esparsa original). Você pode modelar double, complex, quad, etc, e eles têm possivelmente a maior seleção de solucionadores (diretos e iterativos) ao lado do PETSc.
Edit: depois de ler os comentários, a utilidade imediata do Tpetra parece ser um pouco questionável em termos de precisão quad-wrt ...
fonte
__float128
ser apoiada por Tpetra, muito menos quad-double. O Tpetra não é autônomo e nem todo cabeçalho, e mesmo que fosse, coisas comostd::complex
apenas funcionam comfloat
edouble
.A caixa de ferramentas de computação multiprecisão para MATLAB oferece suporte para matrizes esparsas e especificamente otimizada para cálculos com precisão quádrupla.
Aqui estão os detalhes de tempo dos solucionadores esparsos de precisão quádrupla: Direct Solvers for Sparse Matrices
(Eu sou o autor da caixa de ferramentas).
fonte