// // Generic utility functions // #define UTIL_GOAL_MIN 0 #define UTIL_GOAL_MAX 1 #define UTIL_GOAL_MEET 2 #define UTIL_GOAL_AVOID 3 #define UTIL_SCALE_LIN 0 #define UTIL_SCALE_LOG 1 typedef struct utility_s * utility; utility utility_create(float _target, int _goal, int _scale); void utility_free(utility _u); float utility_evaluate(utility _u, float _x);