Я бы посоветовал взглянуть на LAPACK . Это довольно зрелая библиотека линейной алгебры, хотя взаимодействие с ней может быть немного сложнее, поскольку написано на фортране. Это нормально, так как Fortran совместим с ABI с C, если вы правильно сделали прототипы своих функций.
[Редактировать] При дальнейшем рассмотрении выясняется, что LAPACK не поддерживает разреженные матрицы. Для некоторых целей он может обрабатывать полосчатые матрицы, но для линейной задачи наименьших квадратов он поддерживает только общие матрицы.