22 size_t * tgt_points,
size_t count,
24 int * interpolation_complete);
40 size_t * tgt_points,
size_t count,
42 int * interpolation_complete) {
44 if (*interpolation_complete)
return 0;
104 copy->
base.
vtable = config_fixed->base.vtable;
106 copy->
config = config_fixed->config;
111 void const *a_,
void const *b_) {
137 VALUE_HAS_DEFAULT = 1,
138 VALUE_IS_DEFINED = 1,
143 double const value_min = -DBL_MAX;
144 double const value_max = DBL_MAX;
151 value_min, value_max, VALUE_ALLOW_NAN, VALUE_ALLOW_INF,
159 ROOT_PARAM_ARRAY_SIZE =
160 sizeof(root_param_array) /
sizeof(root_param_array[0])
164 "fixed", root_param_array, ROOT_PARAM_ARRAY_SIZE);
178 xmalloc(
sizeof(*config_fixed));
#define YAC_INSTRUMENT_START(ID)
Enter an instrumented region.
#define YAC_INSTRUMENT_STOP(ID)
Exit an instrumented region entered with YAC_INSTRUMENT_START(ID).
struct remote_point * yac_interp_grid_get_tgt_remote_points(struct yac_interp_grid *interp_grid, size_t *tgt_points, size_t count)
@ YAC_FIXED_VALUE
Assigns a fixed value to all targets.
#define DEF_INTERP_METHOD_CONFIG_COMPARE_TYPE(TYPE)
#define CHECK_DOUBLE_NAN(FIELD)
#define DEF_INTERP_METHOD_CONFIG_TYPE(TYPE)
static enum yac_interpolation_list config_fixed_get_type()
static struct yac_interp_method_config * config_fixed_copy(const struct yac_interp_method_config *config)
static struct interp_method_vtable interp_method_fixed_vtable
static void delete_fixed(struct interp_method *method)
static struct yac_param * config_fixed_get_param(struct yac_interp_method_config const *config)
static int config_fixed_compare(void const *a_, void const *b_)
static struct interp_method * config_fixed_generate(struct yac_interp_method_config const *config)
static void config_fixed_delete(struct yac_interp_method_config *config)
static size_t do_search_fixed(struct interp_method *method, struct yac_interp_grid *interp_grid, size_t *tgt_points, size_t count, struct yac_interp_weights *weights, int *interpolation_complete)
struct yac_interp_method_config * yac_interp_method_config_default_fixed_new(void)
Creates a fixed-value interpolation method configuration with default parameters.
static struct yac_interp_method_config_vtable yac_interp_method_config_vtable_fixed
struct interp_method * yac_interp_method_fixed_new(double value)
#define YAC_INTERP_FIXED_VALUE_DEFAULT
void yac_interp_weights_add_fixed(struct yac_interp_weights *weights, struct remote_points *tgts, double fixed_value)
struct yac_param * yac_param_dble_new(const char *name, double *value_ptr, double default_value, double value_min, double value_max, int allow_nan, int allow_inf, int has_default, int is_defined)
Create a double parameter.
struct yac_param * yac_param_struct_new(const char *name, struct yac_param **subparams, size_t subparam_count)
Create a new struct parameter with a given name and subparameters.
struct interp_method_vtable * vtable
size_t(* do_search)(struct interp_method *method, struct yac_interp_grid *grid, size_t *tgt_points, size_t count, struct yac_interp_weights *weights, int *interpolation_complete)
structure containing the information (global id and location)
struct remote_point * data
Concrete implementation of yac_interp_method_config for the fixed value method.
struct yac_interp_method_fixed_config config
method-specific configuration
struct yac_interp_method_config base
base config object, must be first entry
void(* delete)(struct yac_interp_method_config *config)
struct yac_param * root_param_cache
struct yac_interp_method_config_vtable const * vtable
static struct yac_interp_method_config * config