Si hay muchas entradas distintas de cero, no es escasa, por pequeñas que sean. Debe almacenar esas entradas y debe incluirlas en los cálculos, lo que significa que el uso de un código de matriz disperso probablemente no proporcionará una gran mejora, o incluso puede empeorar las cosas.
Dicho esto, puede ser una aproximación válida tirar las pequeñas entradas por completo y reemplazarlas con ceros, en cuyo caso terminará con una matriz dispersa. Es difícil decirlo en general, pero tenga en cuenta que la precisión de la máquina generalmente es de alrededor de 16 decimales, por lo que en la práctica 1 = 1 + 10 ^ -16. Por lo tanto, las entradas de menos de 10 ^ -16 de las más grandes probablemente se descarten de todos modos en el curso de sumar y multiplicar, y es una apuesta bastante segura descartarlas de manera preventiva. Si el cálculo completo es posible (a pesar de que puede llevar mucho tiempo), probablemente debería experimentar con diferentes umbrales para ver si arrojar valores pequeños y usar matrices dispersas acelera las cosas mientras mantiene una precisión aceptable.