Я пишу программу для численного моделирования на C. Частью моделирования являются пространственно фиксированные узлы, которые имеют некоторое значение с плавающей точкой для каждого другого узла. Это как ориентированный граф. Однако, если два узла находятся слишком далеко, (дальше, чем некоторая длина отсечки a), это значение равно 0.
Чтобы представить все эти "корреляции" или значения с плавающей точкой, я попытался использовать двумерный массив, но, поскольку у меня 100 000 и более узлов, это будет соответствовать 40 ГБ памяти или около того.
Теперь я пытаюсь придумать разные решения этой проблемы. Я не хочу сохранять все эти значения на жестком диске. Я также не хочу рассчитывать их на лету. Одной из идей была какая-то разреженная матрица, например та, которую можно использовать в Matlab.
Есть ли у вас другие идеи, как хранить эти значения?
Я новичок в C, поэтому, пожалуйста, не ожидайте слишком много опыта.
Спасибо и всего наилучшего,
Ян Оливер