SimGrid  3.13
Versatile Simulation of Distributed Systems
maxmin.h File Reference
#include "src/internal_config.h"
#include "xbt/misc.h"
#include "xbt/asserts.h"
#include "surf/datatypes.h"
#include <math.h>

Functions

static void double_update (double *variable, double value, double precision)
 
static int double_positive (double value, double precision)
 
static int double_equals (double value1, double value2, double precision)
 
lmm_system_t lmm_system_new (int selective_update)
 Create a new Linear MaxMim system. More...
 
void lmm_system_free (lmm_system_t sys)
 Free an existing Linear MaxMin system. More...
 
lmm_constraint_t lmm_constraint_new (lmm_system_t sys, void *id, double bound_value)
 Create a new Linear MaxMin constraint. More...
 
void lmm_constraint_shared (lmm_constraint_t cnst)
 Share a constraint. More...
 
int lmm_constraint_sharing_policy (lmm_constraint_t cnst)
 Check if a constraint is shared (shared by default) More...
 
void lmm_constraint_free (lmm_system_t sys, lmm_constraint_t cnst)
 Free a constraint. More...
 
double lmm_constraint_get_usage (lmm_constraint_t cnst)
 Get the usage of the constraint after the last lmm solve. More...
 
void lmm_constraint_concurrency_limit_set (lmm_constraint_t cnst, int concurrency_limit)
 Sets the concurrency limit for this constraint. More...
 
int lmm_constraint_concurrency_limit_get (lmm_constraint_t cnst)
 Gets the concurrency limit for this constraint. More...
 
void lmm_constraint_concurrency_maximum_reset (lmm_constraint_t cnst)
 Reset the concurrency maximum for a given variable (we will update the maximum to reflect constraint evolution). More...
 
int lmm_constraint_concurrency_maximum_get (lmm_constraint_t cnst)
 Get the concurrency maximum for a given variable (which reflects constraint evolution). More...
 
lmm_variable_t lmm_variable_new (lmm_system_t sys, void *id, double weight_value, double bound, int number_of_constraints)
 Create a new Linear MaxMin variable. More...
 
void lmm_variable_free (lmm_system_t sys, lmm_variable_t var)
 Free a variable. More...
 
double lmm_variable_getvalue (lmm_variable_t var)
 Get the value of the variable after the last lmm solve. More...
 
double lmm_variable_getbound (lmm_variable_t var)
 Get the maximum value of the variable (-1.0 if no maximum value) More...
 
void lmm_variable_concurrency_share_set (lmm_variable_t var, short int concurrency_share)
 Set the concurrent share of the variable. More...
 
void lmm_shrink (lmm_system_t sys, lmm_constraint_t cnst, lmm_variable_t var)
 Remove a variable from a constraint. More...
 
void lmm_expand (lmm_system_t sys, lmm_constraint_t cnst, lmm_variable_t var, double value)
 Associate a variable to a constraint with a coefficient. More...
 
void lmm_expand_add (lmm_system_t sys, lmm_constraint_t cnst, lmm_variable_t var, double value)
 Add value to the coefficient between a constraint and a variable or create one. More...
 
lmm_constraint_t lmm_get_cnst_from_var (lmm_system_t sys, lmm_variable_t var, int num)
 Get the numth constraint associated to the variable. More...
 
double lmm_get_cnst_weight_from_var (lmm_system_t sys, lmm_variable_t var, int num)
 Get the weigth of the numth constraint associated to the variable. More...
 
int lmm_get_number_of_cnst_from_var (lmm_system_t sys, lmm_variable_t var)
 Get the number of constraint associated to a variable. More...
 
lmm_variable_t lmm_get_var_from_cnst (lmm_system_t sys, lmm_constraint_t cnst, lmm_element_t *elem)
 Get a var associated to a constraint. More...
 
lmm_variable_t lmm_get_var_from_cnst_safe (lmm_system_t, lmm_constraint_t cnst, lmm_element_t *elem, lmm_element_t *nextelem, int *numelem)
 Get a var associated to a constraint. More...
 
lmm_constraint_t lmm_get_first_active_constraint (lmm_system_t sys)
 Get the first active constraint of a system. More...
 
lmm_constraint_t lmm_get_next_active_constraint (lmm_system_t sys, lmm_constraint_t cnst)
 Get the next active constraint of a constraint in a system. More...
 
voidlmm_constraint_id (lmm_constraint_t cnst)
 Get the data associated to a constraint. More...
 
voidlmm_variable_id (lmm_variable_t var)
 Get the data associated to a variable. More...
 
void lmm_update (lmm_system_t sys, lmm_constraint_t cnst, lmm_variable_t var, double value)
 Update the value of element linking the constraint and the variable. More...
 
void lmm_update_variable_bound (lmm_system_t sys, lmm_variable_t var, double bound)
 Update the bound of a variable. More...
 
void lmm_update_variable_weight (lmm_system_t sys, lmm_variable_t var, double weight)
 Update the weight of a variable. More...
 
double lmm_get_variable_weight (lmm_variable_t var)
 Get the weight of a variable. More...
 
void lmm_update_constraint_bound (lmm_system_t sys, lmm_constraint_t cnst, double bound)
 Update a constraint bound. More...
 
int lmm_constraint_used (lmm_system_t sys, lmm_constraint_t cnst)
 [brief description] More...
 
void lmm_print (lmm_system_t sys)
 Print the lmm system. More...
 
void lmm_solve (lmm_system_t sys)
 Solve the lmm system. More...
 
void lagrange_solve (lmm_system_t sys)
 
void bottleneck_solve (lmm_system_t sys)
 
void lmm_set_default_protocol_function (double(*func_f)(lmm_variable_t var, double x), double(*func_fp)(lmm_variable_t var, double x), double(*func_fpi)(lmm_variable_t var, double x))
 Default functions associated to the chosen protocol. More...
 
double func_reno_f (lmm_variable_t var, double x)
 
double func_reno_fp (lmm_variable_t var, double x)
 
double func_reno_fpi (lmm_variable_t var, double x)
 
double func_reno2_f (lmm_variable_t var, double x)
 
double func_reno2_fp (lmm_variable_t var, double x)
 
double func_reno2_fpi (lmm_variable_t var, double x)
 
double func_vegas_f (lmm_variable_t var, double x)
 
double func_vegas_fp (lmm_variable_t var, double x)
 
double func_vegas_fpi (lmm_variable_t var, double x)
 

Variables

double sg_maxmin_precision
 
double sg_surf_precision
 

Function Documentation

static void double_update ( double *  variable,
double  value,
double  precision 
)
inlinestatic
static int double_positive ( double  value,
double  precision 
)
inlinestatic
static int double_equals ( double  value1,
double  value2,
double  precision 
)
inlinestatic

Variable Documentation

double sg_maxmin_precision
double sg_surf_precision