| 
|   | send_recv (std::string iteration_domain_str, tiramisu::computation *producer, tiramisu::expr rhs, xfer_prop prop, bool schedule_this_computation, std::vector< expr > dims, tiramisu::function *fct) | 
|   | 
| virtual bool  | is_send_recv () const  override | 
|   | 
|   | communicator (std::string iteration_domain_str, tiramisu::expr rhs, bool schedule_this_computation, tiramisu::primitive_t data_type, tiramisu::function *fct) | 
|   | 
|   | communicator (std::string iteration_domain_str, tiramisu::expr rhs, bool schedule_this_computation, tiramisu::primitive_t, tiramisu::xfer_prop prop, tiramisu::function *fct) | 
|   | 
| xfer_prop  | get_xfer_props () const  | 
|   | 
| tiramisu::expr  | get_num_elements () const  | 
|   | 
| void  | add_dim (tiramisu::expr size) | 
|   | 
| std::vector< communicator * >  | collapse (int level, tiramisu::expr collapse_from_iter, tiramisu::expr collapse_until_iter, tiramisu::expr num_collapsed) | 
|   | Collapse a loop level.  More...
  | 
|   | 
| void  | collapse_many (std::vector< collapse_group > collapse_each) | 
|   | Collapse several consecutive loop levels (must collapse from innermost towards outermost).  More...
  | 
|   | 
|   | computation (std::string iteration_domain, tiramisu::expr e, bool schedule_this_computation, tiramisu::primitive_t t, tiramisu::function *fct) | 
|   | Constructor for computations.  More...
  | 
|   | 
|   | computation (std::string name, std::vector< var > iterator_variables, tiramisu::expr e, bool schedule_this_computation) | 
|   | Constructor for computations.  More...
  | 
|   | 
|   | computation (std::vector< var > iterator_variables, tiramisu::expr e) | 
|   | This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.  More...
  | 
|   | 
|   | computation (std::string name, std::vector< var > iterator_variables, tiramisu::expr e) | 
|   | Constructor for computations.  More...
  | 
|   | 
|   | computation (std::vector< var > iterator_variables, tiramisu::expr e, bool schedule_this_computation) | 
|   | This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.  More...
  | 
|   | 
|   | computation (std::string name, std::vector< var > iterator_variables, primitive_t t) | 
|   | This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.t is the type of the computation, i.e.  More...
  | 
|   | 
|   | computation (std::vector< var > iterator_variables, primitive_t t) | 
|   | This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.  More...
  | 
|   | 
| virtual bool  | is_send () const  | 
|   | 
| virtual bool  | is_recv () const  | 
|   | 
| virtual bool  | is_wait () const  | 
|   | 
| void  | add_associated_let_stmt (std::string access_name, tiramisu::expr e) | 
|   | Add a let statement that is associated to this computation.  More...
  | 
|   | 
| void  | unschedule_this_computation () | 
|   | Don't scheduled a previously scheduled computation.  More...
  | 
|   | 
| virtual void  | add_definitions (std::string iteration_domain_str, tiramisu::expr e, bool schedule_this_computation, tiramisu::primitive_t t, tiramisu::function *fct) | 
|   | Add definitions of computations that have the same name as this computation.  More...
  | 
|   | 
| void  | add_predicate (tiramisu::expr predicate) | 
|   | Add a predicate (condition) on the computation.  More...
  | 
|   | 
| void  | after (computation &comp, tiramisu::var iterator) | 
|   | Schedule this computation to run after the computation comp.  More...
  | 
|   | 
| void  | after (computation &comp, int level) | 
|   | This function is equivalent to void after(computation &comp, tiramisu::var iterator); except that it uses loop level numbers (0, 1, 2, ...) instead of using loop variables (tiramisu::var).  More...
  | 
|   | 
| void  | allocate_and_map_buffer_automatically (tiramisu::argument_t type=tiramisu::a_temporary) | 
|   | 
| void  | apply_transformation_on_schedule (std::string map_str) | 
|   | Apply a transformation on the schedule.  More...
  | 
|   | 
| void  | between (computation &before_comp, tiramisu::var before_l, computation &after_comp, tiramisu::var after_l) | 
|   | Schedule this computation to run after before_comp at the loop level before_l, and before after_comp at loop level after_l.  More...
  | 
|   | 
| tiramisu::buffer *  | get_automatically_allocated_buffer () | 
|   | Return the buffer that was allocated automatically using high level data mapping functions.  More...
  | 
|   | 
| void  | interchange (tiramisu::var L0, tiramisu::var L1) | 
|   | Interchange (swap) the two loop levels L0 and L1.  More...
  | 
|   | 
| void  | interchange (int L0, int L1) | 
|   | Identical to void interchange(tiramisu::var L0, tiramisu::var L1);.  More...
  | 
|   | 
| void  | mark_as_let_statement () | 
|   | Mark this statement as a let statement.  More...
  | 
|   | 
| void  | mark_as_library_call () | 
|   | Mark this statement as a library call.  More...
  | 
|   | 
| void  | parallelize (tiramisu::var L) | 
|   | Tag the loop level L to be parallelized.  More...
  | 
|   | 
| void  | set_wait_access (std::string access_str) | 
|   | 
| void  | set_wait_access (isl_map *access) | 
|   | 
| void  | set_expression (const tiramisu::expr &e) | 
|   | Set the expression of the computation.  More...
  | 
|   | 
| void  | set_inline (bool is_inline=true) | 
|   | Sets whether the computation is inline or not, based on the value of is_inline.  More...
  | 
|   | 
| const bool  | is_inline_computation () const  | 
|   | Returns true if and only if the computation is inline.  More...
  | 
|   | 
| void  | shift (tiramisu::var L0, int n) | 
|   | Shift the loop level L0 of the iteration space by n iterations.  More...
  | 
|   | 
| void  | skew (tiramisu::var i, tiramisu::var j, int f, tiramisu::var ni, tiramisu::var nj) | 
|   | Apply loop skewing on the loop levels i and j with a skewing factor of f.  More...
  | 
|   | 
| void  | skew (tiramisu::var i, tiramisu::var j, tiramisu::var k, int factor, tiramisu::var ni, tiramisu::var nj, tiramisu::var nk) | 
|   | Apply loop skewing on the loop levels i, j and k with a skewing factor of f.  More...
  | 
|   | 
| void  | skew (tiramisu::var i, tiramisu::var j, tiramisu::var k, tiramisu::var l, int factor, tiramisu::var ni, tiramisu::var nj, tiramisu::var nk, tiramisu::var nl) | 
|   | Apply loop skewing on the loop levels i, j, k, l with a skewing factor of f.  More...
  | 
|   | 
| void  | skew (tiramisu::var i, tiramisu::var j, int factor) | 
|   | This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.  More...
  | 
|   | 
| void  | skew (tiramisu::var i, tiramisu::var j, tiramisu::var k, int factor) | 
|   | This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.  More...
  | 
|   | 
| void  | skew (tiramisu::var i, tiramisu::var j, tiramisu::var k, tiramisu::var l, int factor) | 
|   | This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.  More...
  | 
|   | 
| void  | skew (int i, int j, int factor) | 
|   | This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.  More...
  | 
|   | 
| void  | skew (int i, int j, int k, int factor) | 
|   | This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.  More...
  | 
|   | 
| void  | skew (int i, int j, int k, int l, int factor) | 
|   | This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.  More...
  | 
|   | 
| void  | split (int L0, int sizeX) | 
|   | Identical to void split(tiramisu::var L0, int sizeX);.  More...
  | 
|   | 
| void  | storage_fold (tiramisu::var dim, int f) | 
|   | Fold the storage of the computation.  More...
  | 
|   | 
| tiramisu::computation *  | store_at (tiramisu::computation &comp, tiramisu::var L0) | 
|   | Allocate the storage of this computation in the loop level L0.  More...
  | 
|   | 
| void  | tag_parallel_level (tiramisu::var L) | 
|   | Tag the loop level L to be parallelized.  More...
  | 
|   | 
| void  | tag_parallel_level (int L) | 
|   | Identical to void tag_parallel_level(int L);.  More...
  | 
|   | 
| void  | tag_vector_level (tiramisu::var L, int len) | 
|   | Tag the loop level L to be vectorized.  More...
  | 
|   | 
| void  | tag_vector_level (int L, int len) | 
|   | Identical to void tag_vector_level(tiramisu::var L, int len);.  More...
  | 
|   | 
| void  | tag_unroll_level (tiramisu::var L) | 
|   | Tag the loop level L to be unrolled.  More...
  | 
|   | 
| void  | tag_unroll_level (int L) | 
|   | Identical to void tag_unroll_level(tiramisu::var L);.  More...
  | 
|   | 
| template<typename... Args>  | 
| tiramisu::expr  | operator() (Args...args) | 
|   | Access operator: C0(i,j) represents an access to the element (i,j) of the computation C0.  More...
  | 
|   | 
|   | operator expr () | 
|   | 
| void  | after_low_level (computation &comp, int level) | 
|   | Schedule this computation to run after the computation comp.  More...
  | 
|   | 
| void  | after_low_level (computation &comp, std::vector< int > levels) | 
|   | Schedule this computation to run after the computation comp.  More...
  | 
|   | 
| void  | before (computation &consumer, tiramisu::var L) | 
|   | Schedule this computation to run before the computation consumer at the loop level L.  More...
  | 
|   | 
| void  | store_in (buffer *buff) | 
|   | Store this computation in buff.  More...
  | 
|   | 
| void  | store_in (buffer *buff, std::vector< expr > iterators) | 
|   | Store this computation in buff.  More...
  | 
|   | 
| void  | compute_at (computation &consumer, tiramisu::var L) | 
|   | This function assumes that consumer consumes values produced by this computation (which is the producer).  More...
  | 
|   | 
| void  | compute_at (computation &consumer, int L) | 
|   | Store this computation in buff.  More...
  | 
|   | 
| int  | compute_maximal_AST_depth () | 
|   | Generates the time-space domain and construct an AST that scans that time-space domain, then compute the depth of this AST.  More...
  | 
|   | 
| void  | dump_iteration_domain () const  | 
|   | Dump the iteration domain of the computation.  More...
  | 
|   | 
| void  | dump_schedule () const  | 
|   | Dump the schedule of the computation.  More...
  | 
|   | 
| void  | dump () const  | 
|   | Dump the computation on stdout.  More...
  | 
|   | 
| void  | fuse_after (tiramisu::var lev, computation &comp) | 
|   | Fuse this computation with the computation passed as argument in the same loop.  More...
  | 
|   | 
| void  | gen_time_space_domain () | 
|   | Generate the time-space domain of the computation.  More...
  | 
|   | 
| void  | drop_rank_iter (var level) | 
|   | Specify that the rank loop iterator should be removed from linearization.  More...
  | 
|   | 
| tiramisu::primitive_t  | get_data_type () const  | 
|   | Get the data type of the computation.  More...
  | 
|   | 
| const tiramisu::expr &  | get_expr () const  | 
|   | Return the Tiramisu expression associated with the computation.  More...
  | 
|   | 
| isl_set *  | get_iteration_domain () const  | 
|   | Return the iteration domain of the computation.  More...
  | 
|   | 
| tiramisu::computation &  | get_last_update () | 
|   | Get the last update of a computation.  More...
  | 
|   | 
| int  | get_loop_level_number_from_dimension_name (std::string dim_name) | 
|   | Search the time-space domain (the range of the schedule) and return the loop level number that correspond to the dimension named dim.  More...
  | 
|   | 
| const std::string &  | get_name () const  | 
|   | Return the name of the computation.  More...
  | 
|   | 
| computation *  | get_predecessor () | 
|   | Returns a pointer to the computation scheduled immediately before this computation, or a null pointer if none exist.  More...
  | 
|   | 
| tiramisu::computation &  | get_update (int index) | 
|   | Returns the index update that has been added to this computation such that:  More...
  | 
|   | 
| isl_map *  | get_schedule () const  | 
|   | Get the schedule of the computation.  More...
  | 
|   | 
| void  | gpu_tile (tiramisu::var L0, tiramisu::var L1, int sizeX, int sizeY) | 
|   | Tile the computation and then tag the outermost tile dimension to be mapped to GPU blocks and tag the innermost tile dimensions to be mapped to GPU threads.  More...
  | 
|   | 
| void  | gpu_tile (tiramisu::var L0, tiramisu::var L1, int sizeX, int sizeY, tiramisu::var L0_outer, tiramisu::var L1_outer, tiramisu::var L0_inner, tiramisu::var L1_inner) | 
|   | Store this computation in buff.  More...
  | 
|   | 
| void  | gpu_tile (tiramisu::var L0, tiramisu::var L1, tiramisu::var L2, int sizeX, int sizeY, int sizeZ) | 
|   | Store this computation in buff.  More...
  | 
|   | 
| void  | gpu_tile (tiramisu::var L0, tiramisu::var L1, tiramisu::var L2, int sizeX, int sizeY, int sizeZ, tiramisu::var L0_outer, tiramisu::var L1_outer, tiramisu::var L2_outer, tiramisu::var L0_inner, tiramisu::var L1_inner, tiramisu::var L2_inner) | 
|   | Store this computation in buff.  More...
  | 
|   | 
| void  | set_access (std::string access_str) | 
|   | Set the access relation of the computation.  More...
  | 
|   | 
| void  | set_access (isl_map *access) | 
|   | Set the access relation of the computation.  More...
  | 
|   | 
| void  | set_low_level_schedule (isl_map *map) | 
|   | Set the schedule indicated by map.  More...
  | 
|   | 
| void  | set_low_level_schedule (std::string map_str) | 
|   | Set the schedule indicated by map.  More...
  | 
|   | 
| void  | split (tiramisu::var L0, int sizeX) | 
|   | Split the loop level L0 of the iteration space into two new loop levels.  More...
  | 
|   | 
| void  | split (tiramisu::var L0, int sizeX, tiramisu::var L0_outer, tiramisu::var L0_inner) | 
|   | Split the loop level L0 of the iteration space into two new loop levels.  More...
  | 
|   | 
| void  | tag_gpu_level (tiramisu::var L0, tiramisu::var L1) | 
|   | Tag the loop level L0 and L1 to be mapped to GPU.  More...
  | 
|   | 
| void  | tag_gpu_level (tiramisu::var L0, tiramisu::var L1, tiramisu::var L2, tiramisu::var L3) | 
|   | Tag the loop level L0 and L1 to be mapped to GPU.  More...
  | 
|   | 
| void  | tag_gpu_level (tiramisu::var L0, tiramisu::var L1, tiramisu::var L2, tiramisu::var L3, tiramisu::var L4, tiramisu::var L5) | 
|   | Tag the loop level L0 and L1 to be mapped to GPU.  More...
  | 
|   | 
| void  | tag_distribute_level (tiramisu::var L) | 
|   | Tag the loop level L to be distributed.  More...
  | 
|   | 
| void  | tag_distribute_level (int L) | 
|   | Tag the loop level L to be distributed.  More...
  | 
|   | 
| computation &  | then (computation &next_computation, tiramisu::var L) | 
|   | Schedule this computation to run before the computation next_computation at the loop level L and return next_computation.  More...
  | 
|   | 
| void  | tile (tiramisu::var L0, tiramisu::var L1, int sizeX, int sizeY) | 
|   | Tile the two loop levels L0 and L1 with rectangular tiling.  More...
  | 
|   | 
| void  | tile (tiramisu::var L0, tiramisu::var L1, int sizeX, int sizeY, tiramisu::var L0_outer, tiramisu::var L1_outer, tiramisu::var L0_inner, tiramisu::var L1_inner) | 
|   | Tile the two loop levels L0 and L1 with rectangular tiling.  More...
  | 
|   | 
| void  | tile (tiramisu::var L0, tiramisu::var L1, tiramisu::var L2, int sizeX, int sizeY, int sizeZ) | 
|   | Tile the two loop levels L0 and L1 with rectangular tiling.  More...
  | 
|   | 
| void  | tile (tiramisu::var L0, tiramisu::var L1, tiramisu::var L2, int sizeX, int sizeY, int sizeZ, tiramisu::var L0_outer, tiramisu::var L1_outer, tiramisu::var L2_outer, tiramisu::var L0_inner, tiramisu::var L1_inner, tiramisu::var L2_inner) | 
|   | Tile the two loop levels L0 and L1 with rectangular tiling.  More...
  | 
|   | 
| void  | tile (int L0, int L1, int sizeX, int sizeY) | 
|   | Tile the two loop levels L0 and L1 with rectangular tiling.  More...
  | 
|   | 
| void  | tile (int L0, int L1, int L2, int sizeX, int sizeY, int sizeZ) | 
|   | Tile the two loop levels L0 and L1 with rectangular tiling.  More...
  | 
|   | 
| void  | unroll (tiramisu::var L, int fac) | 
|   | Unroll the loop level L with an unrolling factor fac.  More...
  | 
|   | 
| void  | unroll (tiramisu::var L, int fac, tiramisu::var L_outer, tiramisu::var L_inner) | 
|   | Unroll the loop level L with an unrolling factor fac.  More...
  | 
|   | 
| void  | vectorize (tiramisu::var L, int v) | 
|   | Vectorize the loop level L.  More...
  | 
|   | 
| void  | vectorize (tiramisu::var L, int v, tiramisu::var L_outer, tiramisu::var L_inner) | 
|   | Vectorize the loop level L.  More...
  | 
|   |