Esiste un pacchetto per eseguire calcoli di algebra lineare sparsa, magari basato su librerie C veloci ed efficienti? Ho cercato su Hackage ma non ho trovato nulla al riguardo: hmatrix, che usa GSL, BLAS e LAPACK, è ottimo, ma non sembra includere algoritmi speciali per risolvere sistemi lineari e problemi di autovalori/vettori con matrici sparse . Quello che mi piacerebbe trovare, è qualcosa di simile al modulo sparse.linalg in scipy. Grazie!Qualsiasi pacchetto di Algebra lineare sparsa in Haskell?
risposta
Per quanto ne so, non esiste ancora un pacchetto simile.
C'era un articolo R. L. Winwright e M. E. Sexton. Uno studio di rappresentazioni sparse di matrici per risolvere sistemi lineari in un linguaggio funzionale. J. Functional Programming, 2 (1): 61-72, Jan. 1992., dove hanno confrontato rappresentazioni sparse di matrici quadruple, ad albero binario e codifica run-length in Miranda. I quad erano superiour nel metodo CG e la codifica run-length andava bene con SOR.
C'è stata un'implementazione del FEM in Haskell nel 1993, Some issues in a functional implementation of a finite element algorithm. Hanno usato anche quad-tree. Le prestazioni ottenute non sono state stellari, ma è stato molto tempo fa ... Mi aspetto che oggi Haskell possa fare meglio. Ci sono anche nuove librerie di array da usare, che possono dare migliori rappresentazioni delle matrici sparse. Oggi abbiamo IntMap
, Vector
e anche Repa
.
Una libreria di risolutori sparsi in Haskell (o binding a solutori C/Fortran) deve ancora essere scritta.
scipy.sparse sembra coltivare molte delle sollevare pesantemente verso superLU, che dovrebbe essere straightfowarard per legare: http://crd.lbl.gov/~xiaoye/SuperLU/, ma si ha ancora bisogno del codice per creare le rappresentazioni di matrice sparse per cominciare. – sclv
Sì. Esiste anche una libreria UMFPACK di risolutori diretti http://www.cise.ufl.edu/research/sparse/umfpack/. Non sarà troppo difficile interfacciarsi con nessuno dei due. E ci sono anche solutori iterativi che spesso richiedono meno memoria da eseguire. Possiamo scegliere di interfacciarci con le librerie esistenti o di implementarle da zero. Non sono sicuro che possa girare più velocemente. Di nuovo, ci sono TAUCS http://www.tau.ac.il/~stoledo/taucs/ e LASPACK http://www.mgnet.org/mgnet/Codes/laspack/ (solo sequenziale) e PETSc http: // www.mcs.anl.gov/petsc/petsc-2/ (enorme). – sastanin
SciPy.Sparse utilizza le implementazioni di Fortran dei metodi iterativi da http://www.netlib.org/templates/ – sastanin
- 1. Algebra lineare Haskell?
- 2. Quale algebra lineare usare per OpenGL in Haskell?
- 3. Algebra lineare su python
- 4. Libreria algebra lineare a campi finiti per Haskell
- 5. Libreria algebra lineare per Scala?
- 6. Algebra vettoriale idioma in Haskell
- 7. Libreria algebra lineare per Android
- 8. libreria di algebra lineare per il linguaggio di programmazione D
- 9. Scala LMS per scrivere algebra lineare Lib
- 10. Definizione di un modulo algebra utilizzando il pacchetto costruttivo-algebra
- 11. Algebra lineare parallela per sistema multicore
- 12. Algoritmo online lineare di Haskell
- 13. Commutativo monoide dal pacchetto 'algebra' su Hackage
- 14. Combinare una libreria algebra lineare con Boost :: Units
- 15. Soluzione di memoria C++ efficiente per Ax = b Sistema di algebra lineare
- 16. Esecuzione di altri programmi nel pacchetto di programmazione Haskell/Linear
- 17. Bignum, algebra lineare e elaborazione del segnale digitale su iPhone OS (iOS 4)
- 18. per calcoli affini k-algebra?
- 19. R: conversione matrice sparsa
- 20. Equivalente algebra relazionale di SQL "NOT IN"
- 21. algebra relazionale invece di SQL
- 22. Utilizzo di CUDA per risolvere un sistema di equazioni in modo non lineare lineare al quadrato
- 23. Algebra dinamica dinamica su Spark
- 24. Risolutore di equazioni lineari e non lineari a matrice sparsa
- 25. Javascript scorrendo matrice sparsa
- 26. Come si scala un vettore usando la libreria Haskell, Lineare?
- 27. minimo di una matrice sparsa?
- 28. Quale pacchetto Haskell ha un'unità functor/monad?
- 29. Tabella di ricerca lineare a tratti lineare
- 30. Qualsiasi pacchetto di tipo twitteR per Facebook nella programmazione R?
qualcuno in una risposta ha sottolineato questo, che sembrava soddisfacente e non so perché la loro risposta è stata cancellata https://github.com/laughedelic/sparse-lin-alg – sclv