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からコード番号が変更となりました.
上に戻る
