本文整理汇总了C++中SmartPtr::RethrowNonIpoptException方法的典型用法代码示例。如果您正苦于以下问题:C++ SmartPtr::RethrowNonIpoptException方法的具体用法?C++ SmartPtr::RethrowNonIpoptException怎么用?C++ SmartPtr::RethrowNonIpoptException使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SmartPtr
的用法示例。
在下文中一共展示了SmartPtr::RethrowNonIpoptException方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: main
int main(int argv, char* argc[])
{
// Create a new instance of your nlp
// (use a SmartPtr, not raw)
SmartPtr<TNLP> mynlp = new HS071_NLP();
// Create a new instance of IpoptApplication
// (use a SmartPtr, not raw)
// We are using the factory, since this allows us to compile this
// example with an Ipopt Windows DLL
SmartPtr<IpoptApplication> app = IpoptApplicationFactory();
app->RethrowNonIpoptException(true);
// Change some options
// Note: The following choices are only examples, they might not be
// suitable for your optimization problem.
app->Options()->SetNumericValue("tol", 1e-7);
app->Options()->SetStringValue("mu_strategy", "adaptive");
app->Options()->SetStringValue("output_file", "ipopt.out");
// The following overwrites the default name (ipopt.opt) of the
// options file
// app->Options()->SetStringValue("option_file_name", "hs071.opt");
// Initialize the IpoptApplication and process the options
ApplicationReturnStatus status;
status = app->Initialize();
if (status != Solve_Succeeded) {
std::cout << std::endl << std::endl << "*** Error during initialization!" << std::endl;
return (int) status;
}
// Ask Ipopt to solve the problem
status = app->OptimizeTNLP(mynlp);
if (status == Solve_Succeeded) {
std::cout << std::endl << std::endl << "*** The problem solved!" << std::endl;
}
else {
std::cout << std::endl << std::endl << "*** The problem FAILED!" << std::endl;
}
// As the SmartPtrs go out of scope, the reference count
// will be decremented and the objects will automatically
// be deleted.
return (int) status;
}
示例2: loadProblem
int loadProblem(char *fname,unsigned long len ){
CheckInputArgument(pvApiCtx, 9, 9); // We need total 9 input arguments.
CheckOutputArgument(pvApiCtx, 1, 1); // Return value will be termination status (0 for no-errors and 1/non-zero for errors)
double *QItems=NULL,*PItems=NULL,*ConItems=NULL,*conUB=NULL,*conLB=NULL,*varUB=NULL,*varLB=NULL;
unsigned int nVars,nCons;
unsigned int arg = 1,temp1,temp2;
if ( !getIntFromScilab(arg,&nVars) && arg++ && !getIntFromScilab(arg,&nCons) && arg++ &&
!getDoubleMatrixFromScilab(arg,&temp1,&temp2,&QItems) && temp1 == nVars && temp2 == nVars && arg++ &&
!getDoubleMatrixFromScilab(arg,&temp1,&temp2,&PItems) && temp2 == nVars && arg++ &&
!getDoubleMatrixFromScilab(arg,&temp1,&temp2,&ConItems) && temp1 == nCons &&((nCons !=0 && temp2 == nVars)||(temp2==0)) && arg++ &&
!getDoubleMatrixFromScilab(arg,&temp1,&temp2,&conLB) && temp2 == nCons && arg++ &&
!getDoubleMatrixFromScilab(arg,&temp1,&temp2,&conUB) && temp2 == nCons && arg++ &&
!getDoubleMatrixFromScilab(arg,&temp1,&temp2,&varLB) && temp2 == nVars && arg++ &&
!getDoubleMatrixFromScilab(arg,&temp1,&temp2,&varUB) && temp2 == nVars){
using namespace Ipopt;
SmartPtr<TNLP> Prob = new QuadNLP(nVars,nCons,QItems,PItems,ConItems,conUB,conLB,varUB,varLB);
SmartPtr<IpoptApplication> app = IpoptApplicationFactory();
app->RethrowNonIpoptException(true);
// Change some options
// Note: The following choices are only examples, they might not be
// suitable for your optimization problem.
app->Options()->SetNumericValue("tol", 1e-7);
app->Options()->SetStringValue("mu_strategy", "adaptive");
app->Options()->SetStringValue("output_file", "ipopt.out");
// Indicates whether all equality constraints are linear
app->Options()->SetStringValue("jac_c_constant", "yes");
// Indicates whether all inequality constraints are linear
app->Options()->SetStringValue("jac_d_constant", "yes");
// Indicates whether the problem is a quadratic problem
app->Options()->SetStringValue("hessian_constant", "yes");
// The following overwrites the default name (ipopt.opt) of the
// options file
// app->Options()->SetStringValue("option_file_name", "hs071.opt");
// Initialize the IpoptApplication and process the options
ApplicationReturnStatus status;
status = app->Initialize();
if (status != Solve_Succeeded) {
sciprint("\n*** Error during initialization!\n");
return0toScilab();
return (int) status;
}
// Ask Ipopt to solve the problem
status = app->OptimizeTNLP(Prob);
if (status == Solve_Succeeded) {
sciprint("\n*** The problem solved!\n");
}
else {
sciprint( "\n*** The problem FAILED!\n");
}
// As the SmartPtrs go out of scope, the reference count
// will be decremented and the objects will automatically
// be deleted.
}
else {
sciprint("\nError:: check argument %d\n",arg);
return0toScilab();
return 1;
}
return0toScilab();
}
示例3: main
int main(int argc, char**args)
{
using namespace Ipopt;
SmartPtr<IpoptApplication> app = IpoptApplicationFactory();
app->RethrowNonIpoptException(false);
// Check if executable is run only to print out options documentation
if (argc == 2) {
bool print_options = false;
bool print_latex_options = false;
if (!strcmp(args[1],"--print-options")) {
print_options = true;
}
else if (!strcmp(args[1],"--print-latex-options")) {
print_options = true;
print_latex_options = true;
}
if (print_options) {
SmartPtr<OptionsList> options = app->Options();
options->SetStringValue("print_options_documentation", "yes");
if (print_latex_options) {
options->SetStringValue("print_options_latex_mode", "yes");
}
app->Initialize("");
return 0;
}
}
// Call Initialize the first time to create a journalist, but ignore
// any options file
ApplicationReturnStatus retval;
retval = app->Initialize("");
if (retval != Solve_Succeeded) {
printf("ampl_ipopt.cpp: Error in first Initialize!!!!\n");
exit(-100);
}
// Add the suffix handler for scaling
SmartPtr<AmplSuffixHandler> suffix_handler = new AmplSuffixHandler();
suffix_handler->AddAvailableSuffix("scaling_factor", AmplSuffixHandler::Variable_Source, AmplSuffixHandler::Number_Type);
suffix_handler->AddAvailableSuffix("scaling_factor", AmplSuffixHandler::Constraint_Source, AmplSuffixHandler::Number_Type);
suffix_handler->AddAvailableSuffix("scaling_factor", AmplSuffixHandler::Objective_Source, AmplSuffixHandler::Number_Type);
// Modified for warm-start from AMPL
suffix_handler->AddAvailableSuffix("ipopt_zL_out", AmplSuffixHandler::Variable_Source, AmplSuffixHandler::Number_Type);
suffix_handler->AddAvailableSuffix("ipopt_zU_out", AmplSuffixHandler::Variable_Source, AmplSuffixHandler::Number_Type);
suffix_handler->AddAvailableSuffix("ipopt_zL_in", AmplSuffixHandler::Variable_Source, AmplSuffixHandler::Number_Type);
suffix_handler->AddAvailableSuffix("ipopt_zU_in", AmplSuffixHandler::Variable_Source, AmplSuffixHandler::Number_Type);
SmartPtr<TNLP> ampl_tnlp = new AmplTNLP(ConstPtr(app->Jnlst()),
app->Options(),
args, suffix_handler);
// Call Initialize again to process output related options
retval = app->Initialize();
if (retval != Solve_Succeeded) {
printf("ampl_ipopt.cpp: Error in second Initialize!!!!\n");
exit(-101);
}
const int n_loops = 1; // make larger for profiling
for (Index i=0; i<n_loops; i++) {
retval = app->OptimizeTNLP(ampl_tnlp);
}
// finalize_solution method in AmplTNLP writes the solution file
return 0;
}