YASK
Yet Another Stencil Kit: a software framework for creating HPC stencil code. Copyright 2014-2023 Intel Corporation.
Loading...
Searching...
No Matches
Classes | Macros
yc_solution_api.hpp File Reference
#include <cassert>
#include <map>

Go to the source code of this file.

Classes

class  yask::yc_solution_base
 A base class for defining solutions to be kept in a common registry. More...
 
class  yask::yc_solution_with_radius_base
 A base class for stencils that have a "radius" size parameter. More...
 

Macros

#define MAKE_STEP_INDEX(dim_name)   yc_index_node_ptr dim_name = new_step_index(#dim_name)
 Convenience macro for declaring a step index in a class derived from yask::yc_solution_base.
 
#define MAKE_DOMAIN_INDEX(dim_name)   yc_index_node_ptr dim_name = new_domain_index(#dim_name)
 Convenience macro for declaring a domain index in a class derived from yask::yc_solution_base.
 
#define MAKE_MISC_INDEX(dim_name)   yc_index_node_ptr dim_name = new_misc_index(#dim_name)
 Convenience macro for declaring a misc index in a class derived from yask::yc_solution_base.
 
#define MAKE_VAR(var_name, ...)    yc_var_proxy var_name = yc_var_proxy(#var_name, get_soln(), { __VA_ARGS__ }, false)
 Convenience macro for creating a yask::yc_var_proxy for an n-dimensional YASK variable.
 
#define MAKE_SCRATCH_VAR(var_name, ...)    yc_var_proxy var_name = yc_var_proxy(#var_name, get_soln(), { __VA_ARGS__ }, true)
 Convenience macro for creating a yask::yc_var_proxy for an n-dimensional YASK scratch variable.
 
#define MAKE_SCALAR_VAR(var_name)   MAKE_VAR(var_name)
 Convenience macro for creating a yask::yc_var_proxy for a scalar YASK variable.
 
#define REGISTER_SOLUTION(class_name)    static class_name class_name ## _instance
 Convenience macro for declaring an object of a type derived from yask::yc_solution_base.