Resolving a comment into a separate issue, that needs to be addressed:
Comment
There are two potential ways to look at this issue:
-
SVD is way slower than eg Gaussian elimination according to this benchmark. However GE is numerically unstable. Thus a reevaluation may be needed to see if GE can really become unstable for 16 bit unsigned integers. An alternative would be to look into speeding up SVD or using other rank revealing algorithms.
-
Compromise GE speed for SVD stability, but drop rank checking for every block.
Basically the idea is that once block is on disk, and at a certain depth, matrix checks may be omitted.
Resolving a comment into a separate issue, that needs to be addressed:
Comment
There are two potential ways to look at this issue:
SVD is way slower than eg Gaussian elimination according to this benchmark. However GE is numerically unstable. Thus a reevaluation may be needed to see if GE can really become unstable for 16 bit unsigned integers. An alternative would be to look into speeding up SVD or using other rank revealing algorithms.
Compromise GE speed for SVD stability, but drop rank checking for every block.
Basically the idea is that once block is on disk, and at a certain depth, matrix checks may be omitted.