Go to the documentation of this file.
34 if (proc0_world &&
verbose > 0) std::cout <<
"Hello world from optimize()" << std::endl;
41 return(std::numeric_limits<double>::quiet_NaN());
49 throw std::runtime_error(
"Error! An algorithm for least-squares problems was chosen, but the problem specified is not least-squares.");
54 if (!proc0_world)
return(std::numeric_limits<double>::quiet_NaN());
66 std::cout <<
"Here comes the optimal state_vector from optimize.cpp: " <<
state_vector[0];
70 std::cout << std::endl;
MPI_Comm get_comm_group_leaders()
Get the MPI communicator for MANGO's "group leaders" communicator.
virtual void optimize(Solver *)=0
double * best_state_vector
const algorithm_properties algorithms[NUM_ALGORITHMS]
A database of the algorithms that MANGO is aware of, including various properties of each algorithm.
virtual void init_optimization()
double best_objective_function
MPI_Partition * mpi_partition
virtual double optimize(MPI_Partition *)
bool get_proc0_world()
Determine whether this MPI processor has rank 0 in MANGO's world communicator.
A class for dividing the set of MPI processes into worker groups.
virtual void group_leaders_loop()