static void op_O_get(const void *NOTUSED(data), scene_state_t *ss, exec_state_t *NOTUSED(es), command_state_t *cs) { int16_t min = ss->variables.o_min; int16_t max = ss->variables.o_max; int16_t wrap = ss->variables.o_wrap; // restrict current_value to (wrapped) bounds int16_t current_value = normalise_value(min, max, wrap, ss->variables.o); cs_push(cs, current_value); // calculate new value ss->variables.o = normalise_value(min, max, wrap, current_value + ss->variables.o_inc); }
static void op_DRUNK_get(const void *NOTUSED(data), scene_state_t *ss, exec_state_t *NOTUSED(es), command_state_t *cs) { int16_t min = ss->variables.drunk_min; int16_t max = ss->variables.drunk_max; int16_t wrap = ss->variables.drunk_wrap; // restrict current_value to (wrapped) bounds int16_t current_value = normalise_value(min, max, wrap, ss->variables.drunk); cs_push(cs, current_value); // calculate new value int16_t new_value = current_value + (rand() % 3) - 1; ss->variables.drunk = normalise_value(min, max, wrap, new_value); }
void normalise_dataset(Dataset* dataset, double* minima, double* maxima){ for (size_t d = 0; d < dataset->dimensionality; d++) { for (size_t i = 0; i < dataset->size; i++) { dataset->points[i]->position->scalars[d] = normalise_value(dataset->points[i]->position->scalars[d], MIN_VALUES[d], MAX_VALUES[d]); } } }