20 double *** src_fields,
double *** src_frac_masks,
double ** tgt_field,
21 double frac_mask_fallback_value,
double scale_factor,
double scale_summand);
24 double *** src_fields,
double *** src_frac_masks,
25 int is_target,
double frac_mask_fallback_value,
26 double scale_factor,
double scale_summand);
29 double frac_mask_fallback_value,
double scale_factor,
double scale_summand);
32 double frac_mask_fallback_value,
double scale_factor,
double scale_summand);
70 double value,
size_t count,
size_t const * pos) {
103 size_t * restrict
pos = fixed->
pos;
108 size_t const * collection_indices =
113 size_t l_ = (collection_indices != NULL)?collection_indices[l]:l;
114 for (
size_t j = 0; j <
count; ++j) {
122 double frac_mask_fallback_value,
double scale_factor,
double scale_summand) {
124 UNUSED(frac_mask_fallback_value);
133 double frac_mask_fallback_value,
double scale_factor,
double scale_summand) {
136 interp, tgt_field, frac_mask_fallback_value, scale_factor, scale_summand);
141 double *** src_fields,
double *** src_frac_masks,
double ** tgt_field,
142 double frac_mask_fallback_value,
double scale_factor,
double scale_summand) {
146 UNUSED(frac_mask_fallback_value);
155 double *** src_fields,
double *** src_frac_masks,
156 int is_target,
double frac_mask_fallback_value,
157 double scale_factor,
double scale_summand) {
163 UNUSED(frac_mask_fallback_value);
193 if (interp == NULL)
return;
size_t yac_collection_selection_get_collection_size(struct yac_collection_selection const *collection_selection)
Get the size of the collection selection.
size_t const * yac_collection_selection_get_indices(struct yac_collection_selection const *collection_selection)
Get explicit selection indices if non-contiguous.
void yac_collection_selection_delete(struct yac_collection_selection *collection_selection)
Delete a collection selection object.
struct yac_collection_selection * yac_collection_selection_copy(const struct yac_collection_selection *collection_selection)
Selection of indices from a collection.
struct yac_interp_operator * yac_interp_operator_fixed_new(struct yac_collection_selection const *collection_selection, double value, size_t count, size_t const *pos)
Create a fixed-value interpolation operator.
Internal structures for interpolation operators (vtable-based).
static enum YAC_INTERP_TEST_STATUS yac_interp_operator_fixed_execute_test(struct yac_interp_operator *interp)
static void yac_interp_operator_fixed_execute_get_(struct yac_interp_operator *interp, double **tgt_field)
static void yac_interp_operator_fixed_execute_get(struct yac_interp_operator *interp, double **tgt_field, double frac_mask_fallback_value, double scale_factor, double scale_summand)
static void yac_interp_operator_fixed_execute_get_async(struct yac_interp_operator *interp, double **tgt_field, double frac_mask_fallback_value, double scale_factor, double scale_summand)
static void yac_interp_operator_fixed_delete(struct yac_interp_operator *interp)
static int yac_interp_operator_fixed_is_target(struct yac_interp_operator *interp)
static void yac_interp_operator_fixed_execute_put(struct yac_interp_operator *interp, double ***src_fields, double ***src_frac_masks, int is_target, double frac_mask_fallback_value, double scale_factor, double scale_summand)
static struct yac_interp_operator * yac_interp_operator_fixed_copy(struct yac_interp_operator *interp)
static void yac_interp_operator_fixed_execute_wait(struct yac_interp_operator *interp)
static struct yac_interp_operator_vtable const interpolation_fixed_vtable
static void yac_interp_operator_fixed_execute(struct yac_interp_operator *interp, double ***src_fields, double ***src_frac_masks, double **tgt_field, double frac_mask_fallback_value, double scale_factor, double scale_summand)
static int yac_interp_operator_fixed_is_source(struct yac_interp_operator *interp)
Fixed-value interpolation operator in YAC.
struct yac_collection_selection * collection_selection
struct yac_interp_operator_vtable const * vtable
Virtual function table for interpolation operators.
int(* is_source)(struct yac_interp_operator *interp)
Abstract interpolation operator type.
#define COPY_DATA(data, count)