3.2.6 出力とエラーメッセージ
solveLP
,solveQP
の戻り値として,nuoptResult
というオブジェクトのポインタが返ります.このオブジェクトのメンバに実行結果についての情報が格納されています.利用可能なメンバは以下の通りです.このメンバの利用の詳細は次項で解説するサンプルコードuseSolveQP.cpp
をご覧ください.このオブジェクトは利用するコード内で開放(delete
)する必要があります.
int errorCode(); |
エラーコード |
char* errorMessage(); |
エラーメッセージ |
double optValue(); |
最適値 |
double VarVal(int i); |
i番目の変数の値 |
double VarDual(int i); |
i番目の変数のdual 値
|
double FuncVal(int i); |
i番目の制約の値 |
double FuncDual(int i); |
i番目の制約のdual 値
|
上記でi
は変数,制約式のインデクスですが,0始まりであることにご注意ください(最初の変数/制約式が0番目).
エラーコードとエラーメッセージはNuorium Optimizer本体のものと同じです.「Nuorium Optimizerマニュアル」の付録Aをご参照ください.また,solveLP
,solveQP
特有のエラーとして,引数の矛盾や範囲オーバーがありますが,それは151から165のコード番号に対応します注1.意味は以下のとおりです.
コード | 意味 |
151 | n が0以下
|
152 | m が負
|
153 | 変数の下限(bL )が上限(bU )よりも大きい
|
154 | 制約式の下限(cL )が上限(cU )よりも大きい
|
155 | nAelem が負
|
156 | irowA のコンポーネントの範囲が違反
|
157 | jcolA のコンポーネントの範囲が違反
|
158 | nQelem が負
|
159 | irowQ のコンポーネントの範囲が違反
|
160 | jcolQ のコンポーネントの範囲が違反
|
161 | nQCelem が負
|
162 | ifunQC のコンポーネントの範囲が違反
|
163 | irowQC のコンポーネントの範囲が違反
|
164 | jcolQC のコンポーネントの範囲が違反
|
165 | ivtype の範囲が違反
|
エラーメッセージは
(NUOPT 156) irowA[0] = 9 should be in [1,3]
のように,実際のデータに即したより詳しい情報を含んでいます.
注1)V18からコード番号が変更となりました.
上に戻る