Ipopt Documentation  
 
Loading...
Searching...
No Matches
AmplTNLP.hpp
Go to the documentation of this file.
1// Copyright (C) 2004, 2009 International Business Machines and others.
2// All Rights Reserved.
3// This code is published under the Eclipse Public License.
4//
5// Authors: Carl Laird, Andreas Waechter IBM 2004-08-13
6
7#ifndef __IPAMPLTNLP_HPP__
8#define __IPAMPLTNLP_HPP__
9
10#include "IpUtils.hpp"
11#include "IpTNLP.hpp"
12#include "IpJournalist.hpp"
13#include "IpOptionsList.hpp"
14
15#include <map>
16#include <string>
17
18/* non Ipopt forward declaration */
19struct ASL_pfgh;
20struct SufDecl;
21struct SufDesc;
22
23namespace Ipopt
24{
25
26class IPOPTAMPLINTERFACELIB_EXPORT AmplSuffixHandler: public ReferencedObject
27{
28public:
30
32
34 {
36 Number_Type
37 };
38
46
48 const std::string& suffix_string,
49 Suffix_Source source,
50 Suffix_Type type
51 )
52 {
53 suffix_ids_.push_back(suffix_string);
54 suffix_types_.push_back(type);
55 suffix_sources_.push_back(source);
56 // suffix_values_.push_back();
57 }
58
60 const std::string& suffix_string,
61 Suffix_Source source
62 ) const;
63
65 const std::string& suffix_string,
66 Suffix_Source source
67 ) const;
68
69 std::vector<int> GetIntegerSuffixValues(
70 Index n,
71 const std::string& suffix_string,
72 Suffix_Source source
73 ) const;
74
75 std::vector<Number> GetNumberSuffixValues(
76 Index n,
77 const std::string& suffix_string,
78 Suffix_Source source
79 ) const;
80
81private:
92
93 //AmplSuffixHandler();
97 );
98
101 const AmplSuffixHandler&
102 );
104
105 mutable ASL_pfgh* asl_;
106
107 SufDecl* suftab_;
108
109 std::vector<std::string> suffix_ids_;
110 std::vector<Suffix_Type> suffix_types_;
111 std::vector<Suffix_Source> suffix_sources_;
112
115 ASL_pfgh* asl
116 );
117
119 // void RetrieveSuffixesFromAmpl(ASL_pfgh* asl);
120 friend class AmplTNLP;
121};
122
126class IPOPTAMPLINTERFACELIB_EXPORT AmplOptionsList: public ReferencedObject
127{
128public:
137
139 class IPOPTAMPLINTERFACELIB_EXPORT AmplOption: public ReferencedObject
140 {
141 public:
143 const std::string& ipopt_option_name,
144 AmplOptionType type,
145 const std::string& description);
146
148 {
149 delete[] description_;
150 }
151
152 const std::string& IpoptOptionName() const
153 {
154 return ipopt_option_name_;
155 }
157 {
158 return type_;
159 }
160 char* Description() const
161 {
162 return description_;
163 }
164 private:
175
177
180 const AmplOption&);
181
184 const AmplOption&);
186
187 const std::string ipopt_option_name_;
190 };
191
193 {
194 public:
196 const std::string& ipopt_name,
197 SmartPtr<OptionsList> options,
199 void** nerror = NULL
200 )
201 : ipopt_name_(ipopt_name),
202 options_(options),
203 jnlst_(jnlst),
204 nerror_(nerror)
205 {
206 }
207 const std::string& IpoptName() const
208 {
209 return ipopt_name_;
210 }
212 {
213 return options_;
214 }
216 {
217 return jnlst_;
218 }
219 void** NError()
220 {
221 return nerror_;
222 }
223 private:
224 const std::string ipopt_name_;
227 void** nerror_;
228 };
229
230public:
233 : keywds_(NULL),
234 nkeywds_(0)
235 { }
236
239
242 const std::string& ampl_option_name,
243 const std::string& ipopt_option_name,
245 const std::string& description
246 )
247 {
248 SmartPtr<AmplOption> new_option = new AmplOption(ipopt_option_name, type, description);
249 ampl_options_map_[ampl_option_name] = ConstPtr(new_option);
250 }
251
254 {
255 return (Index) ampl_options_map_.size();
256 }
257
259 void* Keywords(
260 const SmartPtr<OptionsList>& options,
262 void** nerror
263 );
264
265private:
276
277 //AmplOptionsList();
280 const AmplOptionsList&
281 );
282
285 const AmplOptionsList&
286 );
288
290 std::string source,
291 std::string& dest
292 ) const;
293
296 );
297
300 );
301
303 std::map<std::string, SmartPtr<const AmplOption> > ampl_options_map_;
304 // AW: I think it should be with const like in the following line
305 // but with const the AIX compiler fails
306 // std::map<const std::string, SmartPtr<const AmplOption> > ampl_options_map_;
307
309 void* keywds_;
310
313};
314
316class IPOPTAMPLINTERFACELIB_EXPORT AmplTNLP: public TNLP
317{
318public:
321
325 const SmartPtr<const Journalist>& jnlst,
326 const SmartPtr<RegisteredOptions> regoptions,
327 const SmartPtr<OptionsList> options,
328 const char* const* argv,
329 SmartPtr<AmplSuffixHandler> suffix_handler = NULL,
330 bool allow_discrete = false,
331 SmartPtr<AmplOptionsList> ampl_options_list = NULL,
332 const char* ampl_option_string = NULL,
333 const char* ampl_invokation_string = NULL,
334 const char* ampl_banner_string = NULL,
335 std::string* nl_file_content = NULL
336 );
337
344 const SmartPtr<const Journalist>& jnlst,
345 const SmartPtr<OptionsList> options,
346 char**& argv,
347 SmartPtr<AmplSuffixHandler> suffix_handler = NULL,
348 bool allow_discrete = false,
349 SmartPtr<AmplOptionsList> ampl_options_list = NULL,
350 const char* ampl_option_string = NULL,
351 const char* ampl_invokation_string = NULL,
352 const char* ampl_banner_string = NULL,
353 std::string* nl_file_content = NULL
354 );
355
357 virtual ~AmplTNLP();
359
361 DECLARE_STD_EXCEPTION(NONPOSITIVE_SCALING_FACTOR);
362
365 virtual bool get_nlp_info(
366 Index& n,
367 Index& m,
368 Index& nnz_jac_g,
369 Index& nnz_h_lag,
370 IndexStyleEnum& index_style
371 );
372
374 Index n,
375 StringMetaDataMapType& var_string_md,
376 IntegerMetaDataMapType& var_integer_md,
377 NumericMetaDataMapType& var_numeric_md,
378 Index m,
379 StringMetaDataMapType& con_string_md,
380 IntegerMetaDataMapType& con_integer_md,
381 NumericMetaDataMapType& con_numeric_md
382 );
383
385 virtual bool get_bounds_info(
386 Index n,
387 Number* x_l,
388 Number* x_u,
389 Index m,
390 Number* g_l,
391 Number* g_u
392 );
393
395 Index m,
396 LinearityType* const_types
397 );
398
399 virtual bool get_starting_point(
400 Index n,
401 bool init_x,
402 Number* x,
403 bool init_z,
404 Number* z_L,
405 Number* z_U,
406 Index m,
407 bool init_lambda,
408 Number* lambda
409 );
410
411 virtual bool eval_f(
412 Index n,
413 const Number* x,
414 bool new_x,
415 Number& obj_value
416 );
417
418 virtual bool eval_grad_f(
419 Index n,
420 const Number* x,
421 bool new_x,
422 Number* grad_f
423 );
424
425 virtual bool eval_g(
426 Index n,
427 const Number* x,
428 bool new_x,
429 Index m,
430 Number* g
431 );
432
433 virtual bool eval_jac_g(
434 Index n,
435 const Number* x,
436 bool new_x,
437 Index m,
438 Index nele_jac,
439 Index* iRow,
440 Index* jCol,
441 Number* values
442 );
443
444 virtual bool eval_h(
445 Index n,
446 const Number* x,
447 bool new_x,
448 Number obj_factor,
449 Index m,
450 const Number* lambda,
451 bool new_lambda,
452 Index nele_hess,
453 Index* iRow,
454 Index* jCol,
455 Number* values
456 );
457
459 Number& obj_scaling,
460 bool& use_x_scaling,
461 Index n,
462 Number* x_scaling,
463 bool& use_g_scaling,
464 Index m,
465 Number* g_scaling
466 );
468
471 virtual void finalize_solution(
472 SolverReturn status,
473 Index n,
474 const Number* x,
475 const Number* z_L,
476 const Number* z_U,
477 Index m,
478 const Number* g,
479 const Number* lambda,
480 Number obj_value,
481 const IpoptData* ip_data,
483 );
485
490 Index num_nonlin_vars,
491 Index* pos_nonlin_vars
492 );
494
497
499 {
500 return asl_;
501 }
502
507 // ToDo Maybe this should be at a different place, or collect the numbers itself?
509 const std::string& message
510 ) const;
511
518 Index& nlvb_,
519 Index& nlvbi_,
520 Index& nlvc_,
521 Index& nlvci_,
522 Index& nlvo_,
523 Index& nlvoi_,
524 Index& nbv_,
525 Index& niv_
526 ) const;
528
538 Index obj_no
539 );
540
547 const std::string& tag,
548 const std::vector<std::string>& meta_data
549 )
550 {
551 var_string_md_[tag] = meta_data;
552 }
553
555 const std::string& tag,
556 const std::vector<Index>& meta_data
557 )
558 {
559 var_integer_md_[tag] = meta_data;
560 }
561
563 const std::string& tag,
564 const std::vector<Number>& meta_data
565 )
566 {
567 var_numeric_md_[tag] = meta_data;
568 }
569
571 const std::string& tag,
572 const std::vector<std::string>& meta_data
573 )
574 {
575 con_string_md_[tag] = meta_data;
576 }
577
579 const std::string& tag,
580 const std::vector<Index>& meta_data
581 )
582 {
583 con_integer_md_[tag] = meta_data;
584 }
585
587 const std::string& tag,
588 const std::vector<Number>& meta_data
589 )
590 {
591 con_numeric_md_[tag] = meta_data;
592 }
594
597 {
598 return suffix_handler_;
599 }
600
601private:
612
614
617 const AmplTNLP&
618 );
619
622 const AmplTNLP&
623 );
625
627 const SmartPtr<RegisteredOptions> regoptions,
628 const SmartPtr<OptionsList> options,
629 const char* const* argv,
630 bool allow_discrete /* = false */,
631 SmartPtr<AmplOptionsList> ampl_options_list /* = NULL */,
632 const char* ampl_option_string /* = NULL */,
633 const char* ampl_invokation_string /* = NULL */,
634 const char* ampl_banner_string /* = NULL */,
635 std::string* nl_file_content /* = NULL */
636 );
637
638protected:
641
643 ASL_pfgh* asl_;
644
647
650
652 /* the rest of the problem size data is available easily through the ampl variables */
654
663
666
680
683
685 void* nerror_;
686
689
692 const Number* x,
693 Number& obj_val
694 );
695
698 const Number* x,
699 Index m,
700 Number* g = NULL
701 );
702
707 bool new_x,
708 Index n,
709 const Number* x
710 );
711
718 const SmartPtr<RegisteredOptions> regoptions,
719 const SmartPtr<OptionsList>& options,
720 SmartPtr<AmplOptionsList>& ampl_options_list,
721 const char* ampl_option_string,
722 const char* ampl_invokation_string,
723 const char* ampl_banner_string,
724 const char* const* argv
725 );
726
734 const SmartPtr<OptionsList>& options,
735 SmartPtr<AmplOptionsList>& ampl_options_list,
736 const char* ampl_option_string,
737 const char* ampl_invokation_string,
738 const char* ampl_banner_string,
739 // cppcheck-suppress constParameter
740 char**& argv
741 )
742 {
743 return get_options(NULL, options, ampl_options_list, ampl_option_string, ampl_invokation_string, ampl_banner_string, argv);
744 }
745
748 void* nerror
749 );
750
753
761};
762
763} // namespace Ipopt
764
765#endif
#define IPOPT_DEPRECATED
macro to declare symbols as deprecated
Definition IpTypes.h:25
Ampl Option class containing name, type and description for an AMPL option.
Definition AmplTNLP.hpp:140
const std::string & IpoptOptionName() const
Definition AmplTNLP.hpp:152
AmplOptionType Type() const
Definition AmplTNLP.hpp:156
AmplOption()
Default Constructor.
AmplOption(const std::string &ipopt_option_name, AmplOptionType type, const std::string &description)
const std::string ipopt_option_name_
Definition AmplTNLP.hpp:187
void operator=(const AmplOption &)
Default Assignment Operator.
AmplOption(const AmplOption &)
Copy Constructor.
const SmartPtr< OptionsList > & Options() const
Definition AmplTNLP.hpp:211
const SmartPtr< const Journalist > jnlst_
Definition AmplTNLP.hpp:226
const SmartPtr< const Journalist > & Jnlst() const
Definition AmplTNLP.hpp:215
const SmartPtr< OptionsList > options_
Definition AmplTNLP.hpp:225
const std::string & IpoptName() const
Definition AmplTNLP.hpp:207
PrivatInfo(const std::string &ipopt_name, SmartPtr< OptionsList > options, SmartPtr< const Journalist > jnlst, void **nerror=NULL)
Definition AmplTNLP.hpp:195
Class for storing a number of AMPL options that should be registered to the AMPL Solver library inter...
Definition AmplTNLP.hpp:127
void AddAmplOption(const std::string &ampl_option_name, const std::string &ipopt_option_name, AmplOptionsList::AmplOptionType type, const std::string &description)
Adding a new AMPL Option.
Definition AmplTNLP.hpp:241
void PrintLatex(SmartPtr< const Journalist > jnlst)
AmplOptionsList(const AmplOptionsList &)
Default Constructor.
void * Keywords(const SmartPtr< OptionsList > &options, SmartPtr< const Journalist > jnlst, void **nerror)
ASL keywords list for the stored options.
@ WS_Option
this is for AMPL's internal wantsol callback
Definition AmplTNLP.hpp:134
Index NumberOfAmplOptions()
Number of AMPL Options.
Definition AmplTNLP.hpp:253
void * keywds_
pointer to the keywords
Definition AmplTNLP.hpp:309
void PrintDoxygen(SmartPtr< const Journalist > jnlst)
void MakeValidLatexString(std::string source, std::string &dest) const
Index nkeywds_
Number of entries stored in keywds_.
Definition AmplTNLP.hpp:312
~AmplOptionsList()
Destructor.
void operator=(const AmplOptionsList &)
Default Assignment Operator.
std::map< std::string, SmartPtr< const AmplOption > > ampl_options_map_
map for storing registered AMPL options
Definition AmplTNLP.hpp:303
AmplOptionsList()
Default Constructor.
Definition AmplTNLP.hpp:232
const int * GetIntegerSuffixValues(const std::string &suffix_string, Suffix_Source source) const
std::vector< Number > GetNumberSuffixValues(Index n, const std::string &suffix_string, Suffix_Source source) const
std::vector< int > GetIntegerSuffixValues(Index n, const std::string &suffix_string, Suffix_Source source) const
std::vector< Suffix_Source > suffix_sources_
Definition AmplTNLP.hpp:111
std::vector< std::string > suffix_ids_
Definition AmplTNLP.hpp:109
void operator=(const AmplSuffixHandler &)
Default Assignment Operator.
const Number * GetNumberSuffixValues(const std::string &suffix_string, Suffix_Source source) const
void PrepareAmplForSuffixes(ASL_pfgh *asl)
Method called by AmplTNLP to prepare the asl for the suffixes.
void AddAvailableSuffix(const std::string &suffix_string, Suffix_Source source, Suffix_Type type)
Definition AmplTNLP.hpp:47
std::vector< Suffix_Type > suffix_types_
Definition AmplTNLP.hpp:110
AmplSuffixHandler(const AmplSuffixHandler &)
Default Constructor.
Ampl Interface, implemented as a TNLP.
Definition AmplTNLP.hpp:317
void * Oinfo_ptr_
Pointer to the Oinfo structure.
Definition AmplTNLP.hpp:682
SmartPtr< AmplSuffixHandler > get_suffix_handler()
Method for returning the suffix handler.
Definition AmplTNLP.hpp:596
virtual bool eval_jac_g(Index n, const Number *x, bool new_x, Index m, Index nele_jac, Index *iRow, Index *jCol, Number *values)
Method to request either the sparsity structure or the values of the Jacobian of the constraints.
SmartPtr< AmplSuffixHandler > suffix_handler_
Suffix Handler.
Definition AmplTNLP.hpp:688
StringMetaDataMapType con_string_md_
Definition AmplTNLP.hpp:758
void set_string_metadata_for_con(const std::string &tag, const std::vector< std::string > &meta_data)
Definition AmplTNLP.hpp:570
Number obj_sign_
Sign of the objective fn (1 for min, -1 for max)
Definition AmplTNLP.hpp:646
Number * z_L_sol_
Definition AmplTNLP.hpp:657
virtual Index get_number_of_nonlinear_variables()
Return the number of variables that appear nonlinearly in the objective function or in at least one c...
AmplTNLP(const AmplTNLP &)
Copy Constructor.
virtual bool get_nlp_info(Index &n, Index &m, Index &nnz_jac_g, Index &nnz_h_lag, IndexStyleEnum &index_style)
Method to request the initial information about the problem.
ASL_pfgh * AmplSolverObject()
Return the ampl solver object (ASL*)
Definition AmplTNLP.hpp:498
Index nz_h_full_
number of nonzeros in the full_x Hessian
Definition AmplTNLP.hpp:651
void gutsOfConstructor(const SmartPtr< RegisteredOptions > regoptions, const SmartPtr< OptionsList > options, const char *const *argv, bool allow_discrete, SmartPtr< AmplOptionsList > ampl_options_list, const char *ampl_option_string, const char *ampl_invokation_string, const char *ampl_banner_string, std::string *nl_file_content)
IntegerMetaDataMapType var_integer_md_
Definition AmplTNLP.hpp:756
DECLARE_STD_EXCEPTION(NONPOSITIVE_SCALING_FACTOR)
Exceptions.
StringMetaDataMapType var_string_md_
meta data to pass on to TNLP
Definition AmplTNLP.hpp:755
bool hesset_called_
whether we have called hesset
Definition AmplTNLP.hpp:676
bool apply_new_x(bool new_x, Index n, const Number *x)
Internal function to update the internal and ampl state if the x value changes.
AmplTNLP()
Default Constructor.
IPOPT_DEPRECATED AmplTNLP(const SmartPtr< const Journalist > &jnlst, const SmartPtr< OptionsList > options, char **&argv, SmartPtr< AmplSuffixHandler > suffix_handler=NULL, bool allow_discrete=false, SmartPtr< AmplOptionsList > ampl_options_list=NULL, const char *ampl_option_string=NULL, const char *ampl_invokation_string=NULL, const char *ampl_banner_string=NULL, std::string *nl_file_content=NULL)
Constructor without RegisteredOptions.
SmartPtr< const Journalist > jnlst_
Journalist.
Definition AmplTNLP.hpp:640
virtual void finalize_solution(SolverReturn status, Index n, const Number *x, const Number *z_L, const Number *z_U, Index m, const Number *g, const Number *lambda, Number obj_value, const IpoptData *ip_data, IpoptCalculatedQuantities *ip_cq)
This method is called when the algorithm has finished (successfully or not) so the TNLP can digest th...
Number * x_sol_
Definition AmplTNLP.hpp:656
virtual bool get_scaling_parameters(Number &obj_scaling, bool &use_x_scaling, Index n, Number *x_scaling, bool &use_g_scaling, Index m, Number *g_scaling)
Method to request scaling parameters.
virtual bool eval_g(Index n, const Number *x, bool new_x, Index m, Number *g)
Method to request the constraint values.
virtual bool eval_grad_f(Index n, const Number *x, bool new_x, Number *grad_f)
Method to request the gradient of the objective function.
NumericMetaDataMapType var_numeric_md_
Definition AmplTNLP.hpp:757
virtual bool get_list_of_nonlinear_variables(Index num_nonlin_vars, Index *pos_nonlin_vars)
Return the indices of all nonlinear variables.
virtual bool get_starting_point(Index n, bool init_x, Number *x, bool init_z, Number *z_L, Number *z_U, Index m, bool init_lambda, Number *lambda)
Method to request the starting point before iterating.
virtual bool get_constraints_linearity(Index m, LinearityType *const_types)
Method to request the constraints linearity.
NumericMetaDataMapType con_numeric_md_
Definition AmplTNLP.hpp:760
void set_numeric_metadata_for_con(const std::string &tag, const std::vector< Number > &meta_data)
Definition AmplTNLP.hpp:586
bool internal_conval(const Number *x, Index m, Number *g=NULL)
Make the constraint call to ampl.
void get_discrete_info(Index &nlvb_, Index &nlvbi_, Index &nlvc_, Index &nlvci_, Index &nlvo_, Index &nlvoi_, Index &nbv_, Index &niv_) const
Give the number of binary and integer variables.
char * get_options(const SmartPtr< RegisteredOptions > regoptions, const SmartPtr< OptionsList > &options, SmartPtr< AmplOptionsList > &ampl_options_list, const char *ampl_option_string, const char *ampl_invokation_string, const char *ampl_banner_string, const char *const *argv)
Method for obtaining the name of the NL file and the options set from AMPL.
virtual bool eval_h(Index n, const Number *x, bool new_x, Number obj_factor, Index m, const Number *lambda, bool new_lambda, Index nele_hess, Index *iRow, Index *jCol, Number *values)
Method to request either the sparsity structure or the values of the Hessian of the Lagrangian.
void set_string_metadata_for_var(const std::string &tag, const std::vector< std::string > &meta_data)
Definition AmplTNLP.hpp:546
IPOPT_DEPRECATED char * get_options(const SmartPtr< OptionsList > &options, SmartPtr< AmplOptionsList > &ampl_options_list, const char *ampl_option_string, const char *ampl_invokation_string, const char *ampl_banner_string, char **&argv)
Method for obtaining the name of the NL file and the options set from AMPL.
Definition AmplTNLP.hpp:733
virtual ~AmplTNLP()
Default destructor.
void write_solution_file(const std::string &message) const
Write the solution file.
virtual bool eval_f(Index n, const Number *x, bool new_x, Number &obj_value)
Method to request the value of the objective function.
virtual bool get_bounds_info(Index n, Number *x_l, Number *x_u, Index m, Number *g_l, Number *g_u)
returns bounds of the nlp.
bool conval_called_with_current_x_
whether the constraint values have been calculated with the current x set to false in apply_new_x,...
Definition AmplTNLP.hpp:674
Number * lambda_sol_
Definition AmplTNLP.hpp:660
void set_numeric_metadata_for_var(const std::string &tag, const std::vector< Number > &meta_data)
Definition AmplTNLP.hpp:562
void call_hesset()
calls hesset ASL function
Number * g_sol_
Definition AmplTNLP.hpp:659
void set_integer_metadata_for_var(const std::string &tag, const std::vector< Index > &meta_data)
Definition AmplTNLP.hpp:554
void * nerror_
nerror flag passed to ampl calls - set to NULL to halt on error
Definition AmplTNLP.hpp:685
Number * z_U_sol_
Definition AmplTNLP.hpp:658
bool objval_called_with_current_x_
whether the objective value has been calculated with the current x
Definition AmplTNLP.hpp:670
virtual bool get_var_con_metadata(Index n, StringMetaDataMapType &var_string_md, IntegerMetaDataMapType &var_integer_md, NumericMetaDataMapType &var_numeric_md, Index m, StringMetaDataMapType &con_string_md, IntegerMetaDataMapType &con_integer_md, NumericMetaDataMapType &con_numeric_md)
Method to request meta data for the variables and the constraints.
bool internal_objval(const Number *x, Number &obj_val)
Make the objective call to ampl.
void set_integer_metadata_for_con(const std::string &tag, const std::vector< Index > &meta_data)
Definition AmplTNLP.hpp:578
bool set_active_objective_called_
whether set_active_objective has been called
Definition AmplTNLP.hpp:678
AmplTNLP(const SmartPtr< const Journalist > &jnlst, const SmartPtr< RegisteredOptions > regoptions, const SmartPtr< OptionsList > options, const char *const *argv, SmartPtr< AmplSuffixHandler > suffix_handler=NULL, bool allow_discrete=false, SmartPtr< AmplOptionsList > ampl_options_list=NULL, const char *ampl_option_string=NULL, const char *ampl_invokation_string=NULL, const char *ampl_banner_string=NULL, std::string *nl_file_content=NULL)
Constructor.
void operator=(const AmplTNLP &)
Default Assignment Operator.
IntegerMetaDataMapType con_integer_md_
Definition AmplTNLP.hpp:759
void set_active_objective(Index obj_no)
A method for setting the index of the objective function to be considered.
bool nerror_ok(void *nerror)
whether the ampl nerror code is ok
ASL_pfgh * asl_
pointer to the main ASL structure
Definition AmplTNLP.hpp:643
Class for all IPOPT specific calculated quantities.
Class to organize all the data required by the algorithm.
Storing the reference count of all the smart pointers that currently reference it.
Template class for Smart Pointers.
Base class for all NLP's that use standard triplet matrix form and dense vectors.
Definition IpTNLP.hpp:48
std::map< std::string, std::vector< Index > > IntegerMetaDataMapType
Definition IpTNLP.hpp:71
std::map< std::string, std::vector< Number > > NumericMetaDataMapType
Definition IpTNLP.hpp:72
LinearityType
Linearity-types of variables and constraints.
Definition IpTNLP.hpp:53
std::map< std::string, std::vector< std::string > > StringMetaDataMapType
Definition IpTNLP.hpp:70
This file contains a base class for all exceptions and a set of macros to help with exceptions.
SmartPtr< const U > ConstPtr(const SmartPtr< U > &smart_ptr)
SolverReturn
enum for the return from the optimize algorithm
ipindex Index
Type of all indices of vectors, matrices etc.
Definition IpTypes.hpp:20
ipnumber Number
Type of all numbers.
Definition IpTypes.hpp:17