61 "ERROR(yac_interpolation_new): \"%lf\" is not a valid scaling factor",
65 "ERROR(yac_interpolation_new): \"%lf\" is not a valid scaling summand",
78 if (interp_type == NULL)
return;
109 size_t num_src_fields) {
119 size_t tgt_count,
size_t * num_src_per_tgt,
120 size_t * src_field_idx,
size_t * src_idx,
121 size_t num_src_fields, Xt_redist result_redist) {
126 interp->
collection_size, halo_redists, tgt_count, num_src_per_tgt, NULL,
127 src_field_idx, src_idx, num_src_fields, result_redist,
133 size_t * tgt_pos,
size_t tgt_count,
size_t * num_src_per_tgt,
134 size_t * src_field_idx,
size_t * src_idx,
135 size_t num_src_fields) {
140 interp->
collection_size, src_redists, tgt_pos, tgt_count, num_src_per_tgt,
141 NULL, src_field_idx, src_idx, num_src_fields,
147 size_t tgt_count,
size_t * num_src_per_tgt,
double * weights,
148 size_t * src_field_idx,
size_t * src_idx,
149 size_t num_src_fields, Xt_redist result_redist) {
155 weights, src_field_idx, src_idx, num_src_fields, result_redist,
161 size_t tgt_count,
size_t * num_src_per_tgt,
double * weights,
162 size_t * src_field_idx,
size_t * src_idx,
163 size_t num_src_fields) {
168 interp->
collection_size, src_redists, tgt_pos, tgt_count, num_src_per_tgt,
169 weights, src_field_idx, src_idx, num_src_fields,
205 double *** src_frac_masks,
double ** tgt_field) {
209 (src_frac_masks == NULL),
210 "ERROR(yac_interpolation_execute_frac): "
211 "interpolation was not built for dynamic fractional masking, "
212 "use yac_interpolation_execute instead");
216 interp->
interps[i], src_fields, src_frac_masks, tgt_field,
228 double ** tgt_field) {
232 "ERROR(yac_interpolation_execute): "
233 "interpolation was built for dynamic fractional masking, "
234 "use yac_interpolation_execute_frac instead");
247 double *** src_frac_masks) {
251 (src_frac_masks == NULL),
252 "ERROR(yac_interpolation_execute_put_frac): "
253 "interpolation was built for dynamic fractional masking, "
254 "use yac_interpolation_execute_put instead");
260 interp->
interps[i], src_fields, src_frac_masks,
273 "ERROR(yac_interpolation_execute_put): "
274 "interpolation was built for dynamic fractional masking, "
275 "use yac_interpolation_execute_put_frac instead");
308 for (
size_t i = 0; (i < interp->
interp_count) && !test; ++i)
320 for (
size_t i = 0; (i < interp->
interp_count) && !test; ++i)
347 if (interp == NULL)
return;
void yac_interpolation_add_sum_at_src(struct yac_interpolation *interp, Xt_redist *halo_redists, size_t tgt_count, size_t *num_src_per_tgt, size_t *src_field_idx, size_t *src_idx, size_t num_src_fields, Xt_redist result_redist)
struct yac_interpolation * yac_interpolation_copy(struct yac_interpolation *interp)
void yac_interpolation_inc_ref_count(struct yac_interpolation *interpolation)
void yac_interpolation_add_weight_sum_mvp_at_tgt(struct yac_interpolation *interp, Xt_redist *src_redists, size_t *tgt_pos, size_t tgt_count, size_t *num_src_per_tgt, double *weights, size_t *src_field_idx, size_t *src_idx, size_t num_src_fields)
struct yac_interpolation * yac_interpolation_new(size_t collection_size, double frac_mask_fallback_value, double scale_factor, double scale_summand)
void yac_interpolation_execute(struct yac_interpolation *interp, double ***src_fields, double **tgt_field)
int yac_interpolation_with_frac_mask(struct yac_interpolation *interpolation)
void yac_interpolation_add_direct_mf(struct yac_interpolation *interp, Xt_redist *redists, size_t num_src_fields)
void yac_interpolation_delete(struct yac_interpolation *interp)
void yac_interpolation_add_sum_at_tgt(struct yac_interpolation *interp, Xt_redist *src_redists, size_t *tgt_pos, size_t tgt_count, size_t *num_src_per_tgt, size_t *src_field_idx, size_t *src_idx, size_t num_src_fields)
int yac_interpolation_execute_put_test(struct yac_interpolation *interp)
void yac_interpolation_add_fixed(struct yac_interpolation *interp, double value, size_t count, size_t *pos)
void yac_interpolation_execute_wait(struct yac_interpolation *interp)
void yac_interpolation_execute_frac(struct yac_interpolation *interp, double ***src_fields, double ***src_frac_masks, double **tgt_field)
void yac_interpolation_execute_get(struct yac_interpolation *interp, double **tgt_field)
void yac_interpolation_execute_get_async(struct yac_interpolation *interp, double **tgt_field)
double const YAC_FRAC_MASK_UNDEF
void yac_interpolation_add_direct(struct yac_interpolation *interp, Xt_redist redist)
double yac_interpolation_get_const_frac_mask_no_value_c2f()
void yac_interpolation_execute_put_frac(struct yac_interpolation *interp, double ***src_fields, double ***src_frac_masks)
void yac_interpolation_execute_put(struct yac_interpolation *interp, double ***src_fields)
void yac_interpolation_add_weight_sum_mvp_at_src(struct yac_interpolation *interp, Xt_redist *halo_redists, size_t tgt_count, size_t *num_src_per_tgt, double *weights, size_t *src_field_idx, size_t *src_idx, size_t num_src_fields, Xt_redist result_redist)
int yac_interpolation_execute_get_test(struct yac_interpolation *interp)
double yac_interpolation_get_const_frac_mask_undef_c2f()
static void yac_interpolation_add(struct yac_interpolation *interp, struct yac_interpolation_type *interp_type)
double const YAC_FRAC_MASK_NO_VALUE
#define YAC_FRAC_MASK_VALUE_IS_VALID(value)
struct yac_interpolation_type * yac_interpolation_direct_new(size_t collection_size, Xt_redist redist_)
struct yac_interpolation_type * yac_interpolation_direct_mf_new(size_t collection_size, Xt_redist *redists, size_t num_src_fields)
struct yac_interpolation_type * yac_interpolation_fixed_new(size_t collection_size, double value, size_t count, size_t const *pos)
struct yac_interpolation_type * yac_interpolation_sum_mvp_at_src_new(size_t collection_size, Xt_redist *halo_redists, size_t tgt_count, size_t *num_src_per_tgt, double *weights, size_t *src_field_idx, size_t *src_idx, size_t num_src_fields, Xt_redist result_redist_, int with_frac_mask)
struct yac_interpolation_type * yac_interpolation_sum_mvp_at_tgt_new(size_t collection_size, Xt_redist *src_redists, size_t *tgt_pos, size_t tgt_count, size_t *num_src_per_tgt, double *weights, size_t *src_field_idx, size_t *src_idx, size_t num_src_fields, int with_frac_mask)
#define xrealloc(ptr, size)
void(* execute_put)(struct yac_interpolation_type *interp, double ***src_fields, double ***src_frac_masks, int is_target, double frac_mask_fallback_value, double scale_factor, double scale_summand)
void(* execute_wait)(struct yac_interpolation_type *interp)
int(* is_source)(struct yac_interpolation_type *interp)
void(* delete)(struct yac_interpolation_type *interp)
struct yac_interpolation_type *(* copy)(struct yac_interpolation_type *interp)
int(* execute_get_test)(struct yac_interpolation_type *interp)
void(* execute_get)(struct yac_interpolation_type *interp, double **tgt_field, double frac_mask_fallback_value, double scale_factor, double scale_summand)
void(* execute)(struct yac_interpolation_type *interp, double ***src_fields, double ***src_frac_masks, double **tgt_field, double frac_mask_fallback_value, double scale_factor, double scale_summand)
int(* is_target)(struct yac_interpolation_type *interp)
int(* execute_put_test)(struct yac_interpolation_type *interp)
void(* execute_get_async)(struct yac_interpolation_type *interp, double **tgt_field, double frac_mask_fallback_value, double scale_factor, double scale_summand)
struct yac_interpolation_type_vtable const *const vtable
double frac_mask_fallback_value
struct yac_interpolation_type ** interps
#define YAC_ASSERT_F(exp, format,...)
#define YAC_ASSERT(exp, msg)