Но это не решает основной проблемы, изложенной в начале темы.
Потому что проблема, как для хранения
чисел использовать меньше, чем
ячеек памяти, не имеет решения.
То есть, если нет никакой регулярной структуры и/или повторов. В первом случае надо пользоваться явно этой структурой, во втором -- стандартными алгоритмами сжатия. А если числа "случайные", то как вы в принципе себе это представляете?
Чтобы в памяти хранилась не матрица, а её часть -- вам надо смотреть в сторону параллельных вычислений. Там именно эта проблема активно решается когда матрицу раскидывают по процессорам. Почитайте UG к какому-нибудь PBLAS.