mango.hpp File Reference
#include <mpi.h>
#include <string>

Go to the source code of this file.

Classes

struct  mango::algorithm_properties
 Some properties of each algorithm that MANGO is aware of. More...
 
class  mango::MPI_Partition
 A class for dividing the set of MPI processes into worker groups. More...
 
class  mango::Problem
 
class  mango::Least_squares_problem
 

Namespaces

 mango
 This C++ namespace contains everything related to MANGO.
 

Typedefs

typedef void(* mango::objective_function_type) (int *N_parameters, const double *state_vector, double *objective_value, int *failed, mango::Problem *problem, void *user_data)
 Format for the user-supplied subroutine that computes the objective function for a general (non least-squares) optimization problem. More...
 
typedef void(* mango::vector_function_type) (int *N_parameters, const double *state_vector, int *N_terms, double *residuals, int *failed, mango::Problem *problem, void *user_data)
 Format for the user-supplied subroutine that computes the residuals for a least-squares optimization problem. More...
 

Enumerations

enum  mango::package_type {
  mango::PACKAGE_HOPSPACK, mango::PACKAGE_MANGO, mango::PACKAGE_NLOPT, mango::PACKAGE_GSL,
  mango::PACKAGE_PETSC, mango::NUM_PACKAGES
}
 The list of packages, i.e. libraries that MANGO can call to perform optimization. More...
 
enum  mango::algorithm_type {
  mango::MANGO_LEVENBERG_MARQUARDT, mango::MANGO_IMFIL, mango::PETSC_NM, mango::PETSC_POUNDERS,
  mango::PETSC_BRGN, mango::NLOPT_GN_DIRECT, mango::NLOPT_GN_DIRECT_L, mango::NLOPT_GN_DIRECT_L_RAND,
  mango::NLOPT_GN_DIRECT_NOSCAL, mango::NLOPT_GN_DIRECT_L_NOSCAL, mango::NLOPT_GN_DIRECT_L_RAND_NOSCAL, mango::NLOPT_GN_ORIG_DIRECT,
  mango::NLOPT_GN_ORIG_DIRECT_L, mango::NLOPT_GN_CRS2_LM, mango::NLOPT_LN_COBYLA, mango::NLOPT_LN_BOBYQA,
  mango::NLOPT_LN_PRAXIS, mango::NLOPT_LN_NELDERMEAD, mango::NLOPT_LN_SBPLX, mango::NLOPT_LD_MMA,
  mango::NLOPT_LD_CCSAQ, mango::NLOPT_LD_SLSQP, mango::NLOPT_LD_LBFGS, mango::NLOPT_LD_TNEWTON_PRECOND_RESTART,
  mango::NLOPT_LD_TNEWTON_PRECOND, mango::NLOPT_LD_TNEWTON_RESTART, mango::NLOPT_LD_TNEWTON, mango::NLOPT_LD_VAR1,
  mango::NLOPT_LD_VAR2, mango::HOPSPACK, mango::GSL_LM, mango::GSL_DOGLEG,
  mango::GSL_DDOGLEG, mango::GSL_SUBSPACE2D, mango::GSL_CONJUGATE_FR, mango::GSL_CONJUGATE_PR,
  mango::GSL_BFGS, mango::GSL_NM, mango::NUM_ALGORITHMS
}
 A list of the algorithms that MANGO can potentially use. More...
 

Functions

bool mango::does_algorithm_exist (std::string algorithm_name)
 Checks whether or not a string corresponds to the name of one of the optimization algorithms known by MANGO. More...
 
bool mango::get_algorithm (std::string name, algorithm_type *algorithm_int)
 Returns the integer (enum) for an optimization algorithm associated with its string name. More...
 

Variables

const double mango::NUMBER_FOR_FAILED = 1.0e+12
 A large finite number. More...
 
const algorithm_properties mango::algorithms [NUM_ALGORITHMS]
 A database of the algorithms that MANGO is aware of, including various properties of each algorithm. More...