公式のユーザー ガイドラインによると、sgelsd は最小二乗問題を解くために使用されます。
min_x || b - Ax ||_2
また、行列 A を四角形でランク落ちにすることができます。また、sgelsd ソース コードのインターフェイスの記述によると、b が入出力パラメーターとして使用されます。sgelsd が終了すると、b に解が格納されます。したがって、b は m*sizeof(float) バイトを占有します。解 x には n*sizeof(float) バイトが必要ですが (A が am*n 行列で、b が am*1 ベクトルであると仮定します)。
ただし、n>m の場合、b のメモリは小さすぎて解 x を格納できません。この状況にどう対処するか?sgelsd ソース コードのコメントからはわかりませんでした。n*sizeof(float) バイトを b に割り当て、最初の m*sizeof(float) を使用して b ベクトルを格納できますか?
ありがとう。