¿Hay algún paquete para realizar cálculos de Sparse Linear Algebra, tal vez en base a bibliotecas C rápidas y eficientes? Busqué en Hackage pero no encontré nada al respecto: hmatrix, que usa GSL, BLAS y LAPACK, es genial, pero no parece incluir algoritmos especiales para resolver sistemas lineales y problemas de valores propios/vectores con matrices dispersas . Lo que me gustaría encontrar, es algo similar al módulo sparse.linalg en scipy. Gracias!¿Algún paquete de álgebra lineal dispersa en Haskell?
Respuesta
Por lo que sé, todavía no existe ese paquete.
Hubo un artículo R. L. Winwright y M. E. Sexton. Un estudio de representaciones de matrices dispersas para resolver sistemas lineales en un lenguaje funcional. J. Functional Programming, 2 (1): 61-72, enero de 1992., donde compararon las representaciones de matrices dispersas de Quad-tree, Binary tree y run-length en Miranda. Los árboles cuádruples fueron superiour en el método CG, y la codificación de longitud de ejecución funcionó bien con SOR.
Hubo una implementación de la FEM en Haskell en 1993, Some issues in a functional implementation of a finite element algorithm. Usaron cuadrúboles también. El rendimiento logrado no fue estelar, pero fue hace mucho tiempo ... Espero que hoy Haskell pueda tener un mejor rendimiento. También hay nuevas bibliotecas de matriz para usar, que pueden dar mejores representaciones de las matrices dispersas. Hoy tenemos IntMap
, Vector
e incluso Repa
.
Aún no se ha escrito una biblioteca de los solucionadores dispersos en Haskell (o enlaces a C/solucionadores de Fortran).
scipy.sparse parece cultivar muchos de los Pesado levantando a superLU, que debe ser straightfowarard para enlazar: http://crd.lbl.gov/~xiaoye/SuperLU/, pero uno todavía necesita código para crear las representaciones de matriz dispersas para comenzar. – sclv
Sí. También hay una biblioteca UMFPACK de solucionadores directos http://www.cise.ufl.edu/research/sparse/umfpack/. No debería ser demasiado difícil interactuar con ninguno de ellos. Y también hay solucionadores iterativos que a menudo requieren menos memoria para ejecutarse. Podemos elegir interactuar con las bibliotecas existentes o implementarlas desde cero. No estoy seguro de cuál puede ser más rápido. De nuevo, hay TAUCS http://www.tau.ac.il/~stoledo/taucs/ y LASPACK http://www.mgnet.org/mgnet/Codes/laspack/ (solo secuenciales) y PETSc http: // www.mcs.anl.gov/petsc/petsc-2/ (enorme). – sastanin
SciPy.Sparse utiliza implementaciones Fortran de los métodos iterativos de http://www.netlib.org/templates/ – sastanin
- 1. Haskell álgebra lineal?
- 2. ¿Qué álgebra lineal usar para OpenGL en Haskell?
- 3. Biblioteca de Álgebra Lineal de Campo Finito para Haskell
- 4. Biblioteca lineal de álgebra para Android
- 5. Biblioteca lineal de álgebra para Javascript?
- 6. Biblioteca de álgebra lineal para Scala?
- 7. Scala LMS para escribir álgebra lineal Lib
- 8. Libros y recursos para enseñarme Álgebra lineal
- 9. biblioteca de álgebra lineal para el lenguaje de programación D
- 10. aplicación de álgebra lineal en el aprendizaje automático
- 11. Monoide conmutativo del paquete 'álgebra' en Hackage
- 12. Combinación de una biblioteca de álgebra lineal con Boost :: Unidades
- 13. Resolvador de ecuaciones lineales y no lineales de matriz dispersa
- 14. Campo finito (campo Galois) Biblioteca lineal de álgebra para C (no C++)
- 15. Definición de un módulo de álgebra usando el paquete constructivo-álgebra
- 16. Una biblioteca C++ para Arrays, Matriz, Vector y operaciones clásicas de álgebra lineal
- 17. Bignum, Álgebra Lineal y procesamiento de señal digital en el iPhone OS (iOS 4)
- 18. Solución de memoria eficiente de C++ para Ax = b Sistema de álgebra lineal
- 19. ¿Hay algún tipo 'Any' en haskell?
- 20. ¿Es el tutorial Android OpenGL de Google que enseña el álgebra lineal incorrecta?
- 21. Soporte de matriz dispersa en HDF5
- 22. biblioteca para cálculos afines de k-álgebra?
- 23. Qué paquete Haskell contiene el módulo dado
- 24. Oracle: ¿algún reemplazo para el paquete DBMS_OUTPUT?
- 25. ¿Hay algún paquete para mapeo relacional de objetos en R?
- 26. Agregado álgebra relacional (máximo)
- 27. ¿Cómo funciona `HFix` en el paquete multirres de Haskell?
- 28. Implementar marcha atrás en Haskell que se ejecuta en tiempo lineal
- 29. Selección de filas DISTINCT en álgebra relacional
- 30. álgebra relacional en lugar de SQL
Alguien en una respuesta señaló esto, que se veía bien y no sé por qué se eliminó su respuesta https://github.com/laughedelic/sparse-lin-alg – sclv