Estoy optimizando el código que depende en gran medida de una biblioteca Matrix personalizada (que no se excluirá del proyecto porque está en todas partes. Esto no es bueno, pero es un hecho. ..) muchos cálculos se hacen con las matrices de 10-20 filas y columnas, muchos cálculos incluyen una forma cuadrática comoAlgoritmo para multiplicación matricial de matriz cuadrática con matriz dispersa
C = A*B*A'
me di cuenta de que a menudo a es escasa y me gustaría hacer uso de este hecho. Así que estoy buscando un algoritmo que pueda manejar este caso. La estabilidad numérica es importante. ¿Hay algo que pueda usar? (No escribí nuestra biblioteca, así que no sé si hay algún inconveniente que deba tener en cuenta)
Como "nuestro" método simple de multiplicación O (n^3) se ejecuta más rápido que Eigen 3 en la plataforma objetivo, como necesito estabilidad numérica y las matrices no son muy grandes, creo que el algoritmo de Strassen y el algoritmo Coppersmith-Winograd no son lo que estoy buscando. En cambio, es simplemente la multiplicación de la forma cuadrática de una manera que me permite verificar fácilmente los ceros en A.
¡Gracias por cualquier sugerencia!
Me pregunto que votaron esto para "cerrar"? Encuentro esta pregunta perfectamente válida y relacionada con la programación. – nacho4d
No estoy seguro de que obtendrás un gran beneficio explotando la escasez con matrices tan pequeñas. –