Je travaille sur un grand système d'équations linéaire clairsemé et mal conditionné. Je veux utiliser l'arithmétique double-double ou l'arithmétique quad-double pour les résoudre. Je sais qu'il existe un package nommé MPACK développé par Nakata, Maho, qui peut effectuer des calculs algébriques linéaires numériques sous arithmétique quadruple double. Cependant, il est conçu pour une matrice dense, pas une matrice clairsemée. Savez-vous s'il existe un package matriciel arithmétique quadruple double?
sparse-matrix
matrix
condition-number
Hanyu Ye
la source
la source
Réponses:
À partir de la version 3.2 , PETSc prend en charge les calculs de précision quadruple clairsemés sur gcc / gfortran 4.6 et plus récent.
Vous aurez besoin d'un BLAS et d'un LAPACK à quadruple précision, que PETSc peut vous fournir (avec le support du quad) avec la commande de configuration (partielle) suivante:
Voir la FAQ pour un peu plus d'informations.
De plus, je suis d'accord avec nOOb , si possible, essayez de régulariser le système avant de passer en quad-précision.
la source
Les systèmes mal conditionnés sont mieux résolus par la régularisation qu'en augmentant la précision numérique. Recherchez "régularisation mal posée" pour les détails sanglants.
la source
Je pourrais essayer la bibliothèque Trilinos. Ils ont des bibliothèques de matrice clairsemée sous Tpetra (qui est censé remplacer Epetra, leur bibliothèque de matrice clairsemée originale). Vous pouvez créer des modèles doubles, complexes, quadruples, etc., et ils ont probablement la plus grande sélection de solveurs (directs et itératifs) à côté de PETSc.
Edit: après lecture des commentaires, l'utilité immédiate de Tpetra semble être un peu douteuse par rapport à la précision quad ...
la source
__float128
être soutenu par Tpetra, et encore moins quad-double. Tpetra n'est pas autonome et pas entièrement en-tête, et même si c'était le cas, des choses commestd::complex
ne fonctionnent qu'avecfloat
etdouble
.La boîte à outils de calcul multiprécision pour MATLAB prend en charge les matrices clairsemées et est spécifiquement optimisée pour les calculs avec une précision quadruple.
Voici les détails de synchronisation pour les solveurs clairsemés à quadruple précision: Solveurs directs pour les matrices creuses
(Je suis l'auteur de la boîte à outils).
la source