Polly 19.0.0git
Classes | Typedefs | Functions | Variables
template_cpp.cc File Reference
#include <ctype.h>
#include <algorithm>
#include <iostream>
#include <set>
#include <sstream>
#include <string>
#include <unordered_map>
#include <unordered_set>
#include "template_cpp.h"
#include "isl_config.h"

Go to the source code of this file.

Classes

struct  Fixed
 
struct  ProperTupleKind
 
struct  Pair
 
struct  Signature
 
struct  larger_infix
 
struct  specialization
 
struct  specialization_printer
 
struct  template_cpp_generator::class_printer
 
struct  template_cpp_type_printer
 
struct  template_cpp_kind_type_printer
 
struct  template_cpp_arg_type_printer
 
struct  template_method_type_printer
 
struct  template_cpp_generator::method_decl_printer
 
struct  template_cpp_generator::method_impl_printer
 
struct  plain_cpp_type_printer
 
struct  template_cpp_generator::class_decl_printer
 
struct  template_cpp_generator::class_impl_printer
 

Typedefs

typedef std::map< std::string, std::vector< Signature >, larger_infixinfix_map
 
typedef std::map< std::string, infix_mapinfix_map_map
 

Functions

static TupleKindPtr apply (const TupleKindPtr tuple, const Substitution &subs)
 
static void combine (std::vector< std::string > &vec1, const std::vector< std::string > &vec2)
 
static Substitution param_renamer (const std::vector< std::string > &params, const std::string &prefix)
 
static bool contains (const std::vector< std::string > &v, const std::string &el)
 
static std::vector< std::string > intersect (const std::vector< std::string > &v1, const std::vector< std::string > &v2)
 
static Substitution shared_param_renamer (const Signature &sig, const Kind &kind)
 
static std::string drop_list (const std::string &type)
 
static std::string base_type (const std::string &type)
 
static std::vector< Kindadd_name (const std::vector< Kind > &tuples)
 
static std::vector< Kindlookup_class_tuples (const std::string &name)
 
static void print_template_arg (std::ostream &os, const std::string &arg)
 
static void print_template_arg (std::ostream &os, const TupleKindPtr &kind)
 
template<typename List >
static void print_pure_template_args (std::ostream &os, const List &args)
 
template<typename List >
static void print_template_args (std::ostream &os, const List &args)
 
static void print_template (std::ostream &os, const std::vector< std::string > &params)
 
static void print_non_empty_template (std::ostream &os, const std::vector< std::string > &params)
 
static void print_bare_template_type (std::ostream &os, const std::string &type, const Kind &kind)
 
template<typename T >
static void drop_initial (std::vector< T > &v, size_t n)
 
static int total_params (const Method &method)
 
static Signature instance_sig (const Method &method, const specialization &instance)
 
static void print_callback_args (std::ostream &os, const FunctionProtoType *callback, const cpp_type_printer &type_printer, int shift, const std::function< void(const std::string &type, const std::string &name)> &print_arg)
 
static void print_callback_lambda (std::ostream &os, ParmVarDecl *callback, const Signature &sig, int shift)
 
static void print_callback_lambdas (std::ostream &os, const Method &method, const Signature &sig)
 
static bool update_sub_base (Substitution &sub, const TupleKindPtr &general, const TupleKindPtr &specific)
 
static bool update_sub (Substitution &sub, const TupleKindPtr &general, const TupleKindPtr &specific)
 
static std::pair< bool, Substitutionspecializer (const Kind &general, const Kind &specific)
 
static bool equivalent (const Kind &kind1, const Kind &kind2)
 
static std::string plain_type (QualType type)
 
static std::string plain_return_type (const Method &method)
 
static const Kindmatching_kind (const Method &method, const Signature &sig)
 
static bool has_kind (const template_class &template_class, const Kind &kind)
 
static bool assignable (const TupleKindPtr &kind)
 
static Substitution assign (const TupleKindPtr &kind1, const TupleKindPtr &kind2)
 
static Substitution compose (const Substitution &first, const Substitution &second)
 
static Substitution compute_unifier (const TupleKindPtr &kind1, const TupleKindPtr &kind2)
 
static Substitution combine_unifiers (const TupleKindPtr &kind1, const TupleKindPtr &kind2, const Substitution &unifier)
 
static Substitution compute_pair_unifier (const TupleKindPtr &kind1, const TupleKindPtr &kind2)
 
static Substitution compute_unifier (const Kind &kind1, const Kind &kind2)
 
static std::pair< bool, Kindunify (const Kind &general, const Kind &specific)
 
static bool param_is_anon (const Method &method, int i)
 
static Signature specialize_anonymous_arg (const Signature &sig, const Kind &arg_kind, const Kind &instance_kind)
 
static Signature specialize_anonymous_args (const Signature &sig, const Method &method, const Kind &instance_kind)
 
static bool first_arg_is_ctx (const Method &method)
 
static bool first_kind_is_ctx (const Signature &sig)
 
static bool contains (const std::string &s, const std::string &sub)
 
static std::string drop_occurrence (const std::string &str, const std::string &sub)
 
static std::string drop_underscore_occurrence (const std::string &str, const std::string &sub)
 
const std::string name_without_return (const Method &method)
 
const std::string callback_name (const Method &method)
 

Variables

static TupleKindPtr Ctx {Fixed()}
 
static TupleKindPtr Integer {Fixed()}
 
static TupleKindPtr Str {Fixed()}
 
static TupleKindPtr Res {Fixed()}
 
static TupleKindPtr Anonymous ("Anonymous")
 
static TupleKindPtr Leaf ("Leaf")
 
static TupleKindPtr Domain ("Domain")
 
static TupleKindPtr Domain2 ("Domain2")
 
static TupleKindPtr Domain3 ("Domain3")
 
static TupleKindPtr Range ("Range")
 
static TupleKindPtr Range2 ("Range2")
 
static TupleKindPtr Range3 ("Range3")
 
static Signature un_params = { { }, { { } } }
 
static Signature un_set = { { Domain }, { { Domain } } }
 
static Signature un_map = { { Domain, Range }, { { Domain, Range } } }
 
static std::vector< Signatureun_op = { un_params, un_set, un_map }
 
static std::vector< Signaturefn_un_op = { un_set, un_map }
 
static Signature bin_params = { { }, { { }, { } } }
 
static Signature bin_set = { { Domain }, { { Domain }, { Domain } } }
 
static Signature bin_map
 
static std::vector< Signaturebin_op = { bin_params, bin_set, bin_map }
 
static std::vector< Signaturefn_bin_op = { bin_set, bin_map }
 
static Signature bin_set_params = { { Domain }, { { Domain }, { } } }
 
static Signature bin_map_params
 
static Signature bin_map_domain
 
static Signature bin_map_range
 
static Signature bin_map_domain_wrapped_domain
 
static Signature bin_map_range_wrapped_domain
 
static Signature bin_params_anon = { { }, { { }, { Anonymous } } }
 
static Signature bin_set_anon = { { Domain }, { { Domain }, { Anonymous } } }
 
static Signature bin_map_anon
 
static std::vector< Signaturebin_op_anon
 
static Signature ter_params_int_int
 
static Signature ter_set_int_int
 
static Signature ter_map_int_int
 
static std::vector< Signatureter_int_int
 
static Signature ter_set
 
static Signature ter_map
 
static std::vector< Signaturefn_ter_op = { ter_set, ter_map }
 
static Signature update_set = { { Domain2 }, { { Leaf }, { Anonymous } } }
 
static Signature update_domain
 
static Signature update_range
 
static std::vector< Signaturemin_max = { un_set, bin_set, un_map, bin_map }
 
static Signature to_set = { { Domain }, { { }, { Integer } } }
 
static Signature add_range = { { Domain, Range }, { { Domain }, { Integer } } }
 
static Signature to_set_named
 
static Signature add_range_named
 
static Signature set_forward = { { Range }, { { Domain }, { Domain, Range } } }
 
static Signature domain_forward
 
static Signature range_forward
 
static Signature set_backward
 
static Signature domain_backward
 
static Signature range_backward
 
static Signature domain_wrapped_domain_backward
 
static Signature bind_set = { { }, { { Domain }, { Domain } } }
 
static Signature bind_domain = { { Range }, { { Domain, Range }, { Domain } } }
 
static Signature bind_range = { { Domain }, { { Domain, Range }, { Range } } }
 
static Signature bind_domain_wrapped_domain
 
static Signature each_params = { { Res }, { { }, { Res }, { } } }
 
static Signature each_set = { { Res }, { { Domain }, { Res }, { Domain } } }
 
static Signature each_map
 
static std::vector< Signatureeach = { each_params, each_set, each_map }
 
static Signature each_scc_params
 
static Signature each_scc_set
 
static Signature each_scc_map
 
static std::vector< Signatureeach_scc
 
static Signature map_from_range_and_domain
 
static Signature map_from_domain_and_range
 
static Signature anonymous_set_from_params = { { Anonymous }, { { } } }
 
static Signature anonymous_map_from_domain
 
static std::vector< Signatureanonymous_from_domain
 
static Signature set_from_params = { { Domain }, { { }, { Domain } } }
 
static Signature anonymous_set_from_params_bin_anon
 
static Signature anonymous_map_from_domain_bin_anon
 
static std::vector< Signatureanonymous_from_domain_bin_anon
 
static Signature set_to_map = { { Domain, Domain }, { { Domain } } }
 
static Signature domain = { { Domain }, { { Domain, Range } } }
 
static Signature range = { { Range }, { { Domain, Range } } }
 
static Signature transformation_domain = { { Domain }, { { Domain, Domain } } }
 
static Signature set_params = { { }, { { Domain } } }
 
static Signature map_params = { { }, { { Domain, Range } } }
 
static std::vector< Signaturefn_domain = { domain, set_params }
 
static Signature map_reverse = { { Range, Domain }, { { Domain, Range } } }
 
static Signature map_range_reverse
 
static Signature set_product
 
static Signature map_product
 
static Signature domain_product
 
static Signature range_product
 
static Signature domain_factor_domain
 
static Signature domain_factor_range
 
static Signature range_factor_domain
 
static Signature range_factor_range
 
static Signature curry
 
static Signature uncurry
 
static Signature wrap = { { { Domain, Range } }, { { Domain, Range } } }
 
static Signature unwrap = { { Domain, Range }, { { { Domain, Range } } } }
 
static Signature domain_map
 
static Signature range_map
 
static Signature map_cmp
 
static Signature set_join
 
static Signature anonymize_nested_domain
 
static Signature anonymize_nested_range
 
static Signature replace_nested_domain
 
static Signature replace_nested_range
 
static std::vector< Signatureflatten_domain
 
static std::vector< Signatureflatten_range
 
static Signature set_at_set
 
static Signature set_at_map
 
static std::vector< Signatureset_at = { set_at_set, set_at_map }
 
static Signature to_list_set = { { Anonymous }, { { Domain } } }
 
static Signature to_list_map = { { Domain, Anonymous }, { { Domain, Range } } }
 
static Signature ctx_params = { { }, { { Ctx } } }
 
static Signature ctx_set = { { Domain }, { { Ctx } } }
 
static Signature ctx_map = { { Domain, Range }, { { Ctx } } }
 
static const infix_map_map static_methods
 
static std::vector< Signaturerange_op = { un_set, range }
 
static std::vector< Signaturebin_val = { bin_set, bin_map_range }
 
static const std::unordered_map< std::string, std::vector< Signature > > member_methods
 
static const infix_map_map special_member_methods
 
static Kind params {}
 
static Kind set_type { Domain }
 
static Kind set_anon { Anonymous }
 
static Kind map_type { Domain, Range }
 
static Kind map_anon { Domain, Anonymous }
 
static const std::unordered_map< std::string, std::vector< Kind > > base_kinds
 
static const std::unordered_set< std::string > type_prefixes
 
static std::map< Kind, Kindanon_to_named
 
static Signature from_list_set = { { Domain }, { { Domain }, { Anonymous } } }
 
static Signature from_list_map
 
static Signature params_from_str = { { }, { { Ctx }, { Str } } }
 
static Signature set_from_str = { { Domain }, { { Ctx }, { Str } } }
 
static Signature map_from_str = { { Domain, Range }, { { Ctx }, { Str } } }
 
static std::vector< Signaturefrom_str
 
static Signature int_from_si = { { Anonymous }, { { Ctx }, { Integer } } }
 
static Signature alloc_params = { { }, { { Ctx }, { Integer } } }
 
static Signature alloc_set = { { Domain }, { { Ctx }, { Integer } } }
 
static Signature alloc_map = { { Domain, Range }, { { Ctx }, { Integer } } }
 
static std::vector< Signatureconstructor_sig
 
static const std::unordered_map< std::string, std::vector< Signature > > special_constructors
 
static Signature select_set = { { Anonymous }, { { Domain }, { Integer } } }
 
static Signature select_map
 
static std::vector< Signatureat_select = { select_set, select_map }
 
static Signature bin_set_int = { { Domain }, { { Domain }, { Integer } } }
 
static Signature bin_map_int
 
static std::vector< Signatureat_keep = { bin_set_int, bin_map_int }
 

Typedef Documentation

◆ infix_map

typedef std::map<std::string, std::vector<Signature>, larger_infix> infix_map

Definition at line 735 of file template_cpp.cc.

◆ infix_map_map

typedef std::map<std::string, infix_map> infix_map_map

Definition at line 740 of file template_cpp.cc.

Function Documentation

◆ add_name()

static std::vector< Kind > add_name ( const std::vector< Kind > &  tuples)
static

Definition at line 1046 of file template_cpp.cc.

References anon_to_named, and tuple.

Referenced by lookup_class_tuples().

◆ apply()

static TupleKindPtr apply ( const TupleKindPtr  tuple,
const Substitution subs 
)
static

Definition at line 82 of file template_cpp.cc.

References tuple.

Referenced by combine_unifiers(), compose(), and MULTI().

◆ assign()

static Substitution assign ( const TupleKindPtr kind1,
const TupleKindPtr kind2 
)
static

Definition at line 2184 of file template_cpp.cc.

References assignable(), and res.

Referenced by compute_unifier().

◆ assignable()

static bool assignable ( const TupleKindPtr kind)
static

Definition at line 2172 of file template_cpp.cc.

References Anonymous, and Leaf.

Referenced by assign(), and compute_unifier().

◆ base_type()

static std::string base_type ( const std::string &  type)
static

Definition at line 1021 of file template_cpp.cc.

References base_kinds, drop_list(), pos(), type, and type_prefixes.

Referenced by lookup_class_tuples().

◆ callback_name()

const std::string callback_name ( const Method method)

◆ combine()

static void combine ( std::vector< std::string > &  vec1,
const std::vector< std::string > &  vec2 
)
static

◆ combine_unifiers()

static Substitution combine_unifiers ( const TupleKindPtr kind1,
const TupleKindPtr kind2,
const Substitution unifier 
)
static

Definition at line 2219 of file template_cpp.cc.

References apply(), compose(), and compute_unifier().

Referenced by compute_pair_unifier(), and compute_unifier().

◆ compose()

static Substitution compose ( const Substitution first,
const Substitution second 
)
static

Definition at line 2197 of file template_cpp.cc.

References apply(), and res.

Referenced by combine_unifiers().

◆ compute_pair_unifier()

static Substitution compute_pair_unifier ( const TupleKindPtr kind1,
const TupleKindPtr kind2 
)
static

Definition at line 2240 of file template_cpp.cc.

References combine_unifiers(), and compute_unifier().

Referenced by compute_unifier().

◆ compute_unifier() [1/2]

static Substitution compute_unifier ( const Kind kind1,
const Kind kind2 
)
static

Definition at line 2295 of file template_cpp.cc.

References combine_unifiers().

◆ compute_unifier() [2/2]

static Substitution compute_unifier ( const TupleKindPtr kind1,
const TupleKindPtr kind2 
)
static

◆ contains() [1/2]

static bool contains ( const std::string &  s,
const std::string &  sub 
)
static

Definition at line 2574 of file template_cpp.cc.

References sub().

◆ contains() [2/2]

static bool contains ( const std::vector< std::string > &  v,
const std::string &  el 
)
static

◆ drop_initial()

template<typename T >
static void drop_initial ( std::vector< T > &  v,
size_t  n 
)
static

◆ drop_list()

static std::string drop_list ( const std::string &  type)
static

Definition at line 1002 of file template_cpp.cc.

References pos(), and type.

Referenced by base_type().

◆ drop_occurrence()

static std::string drop_occurrence ( const std::string &  str,
const std::string &  sub 
)
static

Definition at line 2645 of file template_cpp.cc.

References pos(), res, str, and sub().

Referenced by drop_underscore_occurrence().

◆ drop_underscore_occurrence()

static std::string drop_underscore_occurrence ( const std::string &  str,
const std::string &  sub 
)
static

Definition at line 2660 of file template_cpp.cc.

References drop_occurrence(), res, str, and sub().

Referenced by name_without_return().

◆ equivalent()

static bool equivalent ( const Kind kind1,
const Kind kind2 
)
static

Definition at line 2059 of file template_cpp.cc.

References specializer().

Referenced by template_class::add_specialization().

◆ first_arg_is_ctx()

static bool first_arg_is_ctx ( const Method method)
static

◆ first_kind_is_ctx()

static bool first_kind_is_ctx ( const Signature sig)
static

Definition at line 2477 of file template_cpp.cc.

References Signature::args, and Ctx.

Referenced by template_cpp_generator::class_printer::print_matching_method().

◆ has_kind()

static bool has_kind ( const template_class template_class,
const Kind kind 
)
static

◆ instance_sig()

static Signature instance_sig ( const Method method,
const specialization instance 
)
static

◆ intersect()

static std::vector< std::string > intersect ( const std::vector< std::string > &  v1,
const std::vector< std::string > &  v2 
)
static

◆ lookup_class_tuples()

static std::vector< Kind > lookup_class_tuples ( const std::string &  name)
static

◆ matching_kind()

static const Kind & matching_kind ( const Method method,
const Signature sig 
)
static

◆ name_without_return()

const std::string name_without_return ( const Method method)

◆ param_is_anon()

static bool param_is_anon ( const Method method,
int  i 
)
static

◆ param_renamer()

static Substitution param_renamer ( const std::vector< std::string > &  params,
const std::string &  prefix 
)
static

◆ plain_return_type()

static std::string plain_return_type ( const Method method)
static

◆ plain_type()

static std::string plain_type ( QualType  type)
static

Definition at line 2103 of file template_cpp.cc.

References cpp_type_printer::param(), and type.

Referenced by callback_name(), and plain_return_type().

◆ print_bare_template_type()

static void print_bare_template_type ( std::ostream &  os,
const std::string &  type,
const Kind kind 
)
static

◆ print_callback_args()

static void print_callback_args ( std::ostream &  os,
const FunctionProtoType *  callback,
const cpp_type_printer type_printer,
int  shift,
const std::function< void(const std::string &type, const std::string &name)> &  print_arg 
)
static

Definition at line 1697 of file template_cpp.cc.

References n_arg(), name, cpp_type_printer::param(), Method::print_arg_list(), and type.

Referenced by print_callback_lambda().

◆ print_callback_lambda()

static void print_callback_lambda ( std::ostream &  os,
ParmVarDecl *  callback,
const Signature sig,
int  shift 
)
static

◆ print_callback_lambdas()

static void print_callback_lambdas ( std::ostream &  os,
const Method method,
const Signature sig 
)
static

◆ print_non_empty_template()

static void print_non_empty_template ( std::ostream &  os,
const std::vector< std::string > &  params 
)
static

◆ print_pure_template_args()

template<typename List >
static void print_pure_template_args ( std::ostream &  os,
const List &  args 
)
static

◆ print_template()

static void print_template ( std::ostream &  os,
const std::vector< std::string > &  params 
)
static

◆ print_template_arg() [1/2]

static void print_template_arg ( std::ostream &  os,
const std::string &  arg 
)
static

Definition at line 1167 of file template_cpp.cc.

References arg.

Referenced by print_pure_template_args().

◆ print_template_arg() [2/2]

static void print_template_arg ( std::ostream &  os,
const TupleKindPtr kind 
)
static

Definition at line 1175 of file template_cpp.cc.

◆ print_template_args()

template<typename List >
static void print_template_args ( std::ostream &  os,
const List &  args 
)
static

Definition at line 1197 of file template_cpp.cc.

References print_pure_template_args().

Referenced by print_bare_template_type(), and print_template().

◆ shared_param_renamer()

static Substitution shared_param_renamer ( const Signature sig,
const Kind kind 
)
static

◆ specialize_anonymous_arg()

static Signature specialize_anonymous_arg ( const Signature sig,
const Kind arg_kind,
const Kind instance_kind 
)
static

◆ specialize_anonymous_args()

static Signature specialize_anonymous_args ( const Signature sig,
const Method method,
const Kind instance_kind 
)
static

◆ specializer()

static std::pair< bool, Substitution > specializer ( const Kind general,
const Kind specific 
)
static

◆ total_params()

static int total_params ( const Method method)
static

◆ unify()

static std::pair< bool, Kind > unify ( const Kind general,
const Kind specific 
)
static

◆ update_sub()

static bool update_sub ( Substitution sub,
const TupleKindPtr general,
const TupleKindPtr specific 
)
static

Definition at line 2013 of file template_cpp.cc.

References Anonymous, Leaf, sub(), update_sub(), and update_sub_base().

Referenced by specializer(), and update_sub().

◆ update_sub_base()

static bool update_sub_base ( Substitution sub,
const TupleKindPtr general,
const TupleKindPtr specific 
)
static

Definition at line 1988 of file template_cpp.cc.

References name, and sub().

Referenced by update_sub().

Variable Documentation

◆ add_range

Signature add_range = { { Domain, Range }, { { Domain }, { Integer } } }
static

Definition at line 487 of file template_cpp.cc.

◆ add_range_named

Signature add_range_named
static
Initial value:
=
{ { Domain, Range }, { { Domain }, { Anonymous }, { Integer } } }
static TupleKindPtr Integer
static TupleKindPtr Domain("Domain")
static TupleKindPtr Range("Range")
static TupleKindPtr Anonymous("Anonymous")

Definition at line 492 of file template_cpp.cc.

◆ alloc_map

Signature alloc_map = { { Domain, Range }, { { Ctx }, { Integer } } }
static

Definition at line 1911 of file template_cpp.cc.

◆ alloc_params

Signature alloc_params = { { }, { { Ctx }, { Integer } } }
static

Definition at line 1909 of file template_cpp.cc.

◆ alloc_set

Signature alloc_set = { { Domain }, { { Ctx }, { Integer } } }
static

Definition at line 1910 of file template_cpp.cc.

◆ anon_to_named

std::map<Kind, Kind> anon_to_named
static
Initial value:
{
}
static Kind set_anon
static Kind map_anon
static Kind map_type
static Kind set_type

Definition at line 1038 of file template_cpp.cc.

Referenced by add_name().

◆ anonymize_nested_domain

Signature anonymize_nested_domain
static
Initial value:
=
{ { Anonymous, Range2 }, { { { Domain, Range }, Range2 } } }
static TupleKindPtr Range2("Range2")

Definition at line 683 of file template_cpp.cc.

◆ anonymize_nested_range

Signature anonymize_nested_range
static
Initial value:
=
{ { Domain, Anonymous }, { { Domain, { Range, Range2 } } } }

Definition at line 685 of file template_cpp.cc.

◆ Anonymous

TupleKindPtr Anonymous("Anonymous") ( "Anonymous"  )
static

◆ anonymous_from_domain

std::vector<Signature> anonymous_from_domain
static
Initial value:
=
static Signature anonymous_map_from_domain
static Signature anonymous_set_from_params

Definition at line 574 of file template_cpp.cc.

◆ anonymous_from_domain_bin_anon

std::vector<Signature> anonymous_from_domain_bin_anon
static
Initial value:
= {
}
static Signature anonymous_set_from_params_bin_anon
static Signature anonymous_map_from_domain_bin_anon

Definition at line 589 of file template_cpp.cc.

◆ anonymous_map_from_domain

Signature anonymous_map_from_domain
static
Initial value:
=
{ { Domain, Anonymous }, { { Domain } } }

Definition at line 572 of file template_cpp.cc.

◆ anonymous_map_from_domain_bin_anon

Signature anonymous_map_from_domain_bin_anon
static
Initial value:
=
{ { Domain, Anonymous }, { { Domain }, { Anonymous } } }

Definition at line 587 of file template_cpp.cc.

◆ anonymous_set_from_params

Signature anonymous_set_from_params = { { Anonymous }, { { } } }
static

Definition at line 571 of file template_cpp.cc.

◆ anonymous_set_from_params_bin_anon

Signature anonymous_set_from_params_bin_anon
static
Initial value:
=
{ { Anonymous }, { { }, { Anonymous } } }

Definition at line 585 of file template_cpp.cc.

◆ at_keep

std::vector<Signature> at_keep = { bin_set_int, bin_map_int }
static

◆ at_select

std::vector<Signature> at_select = { select_set, select_map }
static

◆ base_kinds

const std::unordered_map<std::string, std::vector<Kind> > base_kinds
static
Initial value:
{
{ "space", { params, set_type, map_type } },
{ "set", { params, set_type } },
{ "point", { params, set_type } },
{ "map", { map_type } },
{ "aff", { set_anon, map_anon } },
{ "fixed_box", { set_type, map_type } },
{ "val", { set_anon } },
{ "id", { set_anon } },
}
static Kind params

Definition at line 979 of file template_cpp.cc.

Referenced by base_type(), and lookup_class_tuples().

◆ bin_map

Signature bin_map
static
Initial value:
=
{ { Domain, Range }, { { Domain, Range }, { Domain, Range } } }

Definition at line 421 of file template_cpp.cc.

◆ bin_map_anon

Signature bin_map_anon
static
Initial value:
=
{ { Domain, Range }, { { Domain, Range }, { Anonymous } } }

Definition at line 444 of file template_cpp.cc.

◆ bin_map_domain

Signature bin_map_domain
static
Initial value:
=
{ { Domain, Range }, { { Domain, Range }, { Domain } } }

Definition at line 428 of file template_cpp.cc.

◆ bin_map_domain_wrapped_domain

Signature bin_map_domain_wrapped_domain
static
Initial value:
=
{ { { Domain, Domain2 }, Range },
{ { { Domain, Domain2 }, Range }, { Domain } } }
static TupleKindPtr Domain2("Domain2")

Definition at line 432 of file template_cpp.cc.

◆ bin_map_int

Signature bin_map_int
static
Initial value:
=
{ { Domain, Range }, { { Domain, Range }, { Integer } } }

Definition at line 2544 of file template_cpp.cc.

◆ bin_map_params

Signature bin_map_params
static
Initial value:
=
{ { Domain, Range }, { { Domain, Range }, { } } }

Definition at line 426 of file template_cpp.cc.

◆ bin_map_range

Signature bin_map_range
static
Initial value:
=
{ { Domain, Range }, { { Domain, Range }, { Range } } }

Definition at line 430 of file template_cpp.cc.

◆ bin_map_range_wrapped_domain

Signature bin_map_range_wrapped_domain
static
Initial value:
=
{ { Domain, { Range, Range2 } },
{ { Domain, { Range, Range2 } }, { Range } } }

Definition at line 435 of file template_cpp.cc.

◆ bin_op

std::vector<Signature> bin_op = { bin_params, bin_set, bin_map }
static

◆ bin_op_anon

std::vector<Signature> bin_op_anon
static
Initial value:
=
static Signature bin_params_anon
static Signature bin_set_anon
static Signature bin_map_anon

Definition at line 446 of file template_cpp.cc.

◆ bin_params

Signature bin_params = { { }, { { }, { } } }
static

Definition at line 419 of file template_cpp.cc.

◆ bin_params_anon

Signature bin_params_anon = { { }, { { }, { Anonymous } } }
static

Definition at line 442 of file template_cpp.cc.

◆ bin_set

Signature bin_set = { { Domain }, { { Domain }, { Domain } } }
static

Definition at line 420 of file template_cpp.cc.

◆ bin_set_anon

Signature bin_set_anon = { { Domain }, { { Domain }, { Anonymous } } }
static

Definition at line 443 of file template_cpp.cc.

◆ bin_set_int

Signature bin_set_int = { { Domain }, { { Domain }, { Integer } } }
static

Definition at line 2543 of file template_cpp.cc.

◆ bin_set_params

Signature bin_set_params = { { Domain }, { { Domain }, { } } }
static

Definition at line 425 of file template_cpp.cc.

◆ bin_val

std::vector<Signature> bin_val = { bin_set, bin_map_range }
static

Definition at line 779 of file template_cpp.cc.

◆ bind_domain

Signature bind_domain = { { Range }, { { Domain, Range }, { Domain } } }
static

Definition at line 521 of file template_cpp.cc.

◆ bind_domain_wrapped_domain

Signature bind_domain_wrapped_domain
static
Initial value:
=
{ { Range2, Range }, { { { Domain2, Range2 }, Range }, { Domain2 } } }

Definition at line 523 of file template_cpp.cc.

◆ bind_range

Signature bind_range = { { Domain }, { { Domain, Range }, { Range } } }
static

Definition at line 522 of file template_cpp.cc.

Referenced by isl_union_map_bind_range().

◆ bind_set

Signature bind_set = { { }, { { Domain }, { Domain } } }
static

Definition at line 520 of file template_cpp.cc.

◆ constructor_sig

std::vector<Signature> constructor_sig
static
Initial value:
= {
}
static Signature un_map
static Signature un_set
static Signature from_list_map
static Signature from_list_set
static Signature un_params

Definition at line 1927 of file template_cpp.cc.

Referenced by template_cpp_generator::class_printer::print_constructor(), and template_cpp_generator::class_printer::print_type_named_member_method().

◆ Ctx

TupleKindPtr Ctx {Fixed()}
static

◆ ctx_map

Signature ctx_map = { { Domain, Range }, { { Ctx } } }
static

Definition at line 716 of file template_cpp.cc.

◆ ctx_params

Signature ctx_params = { { }, { { Ctx } } }
static

Definition at line 714 of file template_cpp.cc.

◆ ctx_set

Signature ctx_set = { { Domain }, { { Ctx } } }
static

Definition at line 715 of file template_cpp.cc.

◆ curry

Signature curry
static
Initial value:
=
{ { Domain, { Range, Range2 } },
{ { { Domain, Range }, Range2 } } }

Definition at line 648 of file template_cpp.cc.

◆ Domain

TupleKindPtr Domain("Domain") ( "Domain"  )
static

◆ domain

Signature domain = { { Domain }, { { Domain, Range } } }
static

Definition at line 602 of file template_cpp.cc.

Referenced by add_node(), after_in_band(), after_in_context(), at_most_one_non_fixed(), box_closure(), build_ast_from_domain(), check_band_schedule_total_on_instances(), collect_domain(), compute_atomic_domain(), compute_class_domains(), compute_domains(), compute_max_row(), compute_partial_domains(), compute_separate_domain(), construct_component(), construct_component_executed(), construct_shifted_executed(), count_sink_source(), create_node(), create_node_scaled(), do_unroll(), eliminate_non_fixed(), exact_bound(), expand(), explicit_bounds(), extension_from_domain(), extract_disjunction(), find_unroll_lower_bound(), first_offset(), FN(), foreach_iteration(), generate_code_in_space(), generate_component(), generate_domain(), generate_shift_component(), generate_shifted_component_from_list(), generate_shifted_component_tree(), generate_shifted_component_tree_base(), generate_shifted_component_tree_part(), generate_shifted_component_tree_separate(), generate_shifted_component_tree_unroll(), group_ancestor(), group_band(), group_context(), group_domain(), group_expansion(), has_pure_outer_disjunction(), implicit_bounds(), init_merge_graph(), initial_domain(), initial_domain_from_children(), isl::basic_set::insert_domain(), isl::point::insert_domain(), isl::set::insert_domain(), insert_dummy_tags(), insert_extension(), is_disjoint_extension(), isl_aff_reset_space_and_domain(), isl_ast_build_eliminate(), isl_ast_build_expr_from_set_internal(), isl_ast_build_from_multi_pw_aff_member(), isl_ast_build_get_option_domain(), isl_basic_map_deltas_map(), isl_basic_map_domain_map(), isl_basic_map_from_domain_and_range(), isl_map_from_domain_and_range(), isl_map_intersect_domain_wrapped_domain(), isl_map_intersect_range_wrapped_domain(), isl_multi_pw_aff_apply_pw_aff_aligned(), isl_multi_union_pw_aff_apply_pw_aff(), isl_multi_union_pw_aff_intersect_range(), isl_multi_union_pw_aff_multi_aff_on_domain(), isl_multi_union_pw_aff_multi_val_on_domain(), isl_multi_union_pw_aff_multi_val_on_domain_aligned(), isl_multi_union_pw_aff_pw_multi_aff_on_domain(), isl_multi_union_pw_aff_pw_multi_aff_on_domain_aligned(), isl_pw_aff_param_on_domain_id(), isl_pw_aff_val_on_domain(), isl_pw_multi_aff_multi_val_on_domain(), isl_pw_multi_aff_product(), isl_qpolynomial_cst_on_domain(), isl_qpolynomial_fold_reset_space_and_domain(), isl_qpolynomial_infty_on_domain(), isl_qpolynomial_nan_on_domain(), isl_qpolynomial_neginfty_on_domain(), isl_qpolynomial_one_on_domain(), isl_qpolynomial_rat_cst_on_domain(), isl_qpolynomial_reset_space_and_domain(), isl_qpolynomial_val_on_domain(), isl_qpolynomial_var_on_domain(), isl_qpolynomial_var_pow_on_domain(), isl_qpolynomial_zero_on_domain(), isl_sched_graph_init(), isl_schedule_band_intersect_domain(), isl_schedule_constraints_compute_schedule(), isl_schedule_constraints_on_domain(), isl_schedule_constraints_set_domain(), isl_schedule_expand(), isl_schedule_from_domain(), isl_schedule_get_space(), isl_schedule_intersect_domain(), isl_schedule_node_band_get_partial_schedule_union_map(), isl_schedule_node_domain_gist_params(), isl_schedule_node_domain_intersect_domain(), isl_schedule_node_expand(), isl_schedule_node_from_domain(), isl_schedule_node_get_subtree_contraction(), isl_schedule_node_get_subtree_expansion(), isl_schedule_node_get_subtree_schedule_union_map(), isl_schedule_node_group(), isl_schedule_pair(), isl_schedule_tree_band_intersect_domain(), isl_schedule_tree_domain_set_domain(), isl_schedule_tree_from_domain(), isl_schedule_tree_get_subtree_schedule_union_map(), isl_schedule_tree_insert_domain(), isl_set_insert_domain(), isl_set_intersect_factor_domain(), isl_set_param_pw_aff_on_domain_id(), isl_set_pw_aff_on_domain_val(), isl_set_pw_multi_aff_on_domain_multi_val(), isl_set_unbind_params_insert_domain(), isl_space_check_domain_wrapped_domain_tuples(), isl_space_domain_factor_domain(), isl_space_domain_map(), isl_space_insert_domain(), isl_space_map_from_domain_and_range(), isl_stream_read_schedule_constraints(), isl_union_map_from_domain_and_range(), isl_union_map_intersect_domain_wrapped_domain_union_set(), isl_union_map_intersect_range_wrapped_domain_union_set(), isl_union_map_is_single_valued(), isl_union_pw_aff_aff_on_domain(), isl_union_pw_aff_param_on_domain_id(), isl_union_pw_aff_pw_aff_on_domain(), isl_union_pw_aff_pw_aff_on_domain_aligned(), isl_union_pw_aff_val_on_domain(), isl_union_pw_multi_aff_from_multi_union_pw_aff_0D(), isl_union_pw_multi_aff_multi_val_on_domain(), isl_union_set_compute_schedule(), locally_covered_by_domain(), lower_bounds(), MULTI(), plain_pw_multi_aff_from_map(), print_pw_aff_c(), project_out_fixed(), pw_aff_on_domain(), pw_aff_val_on_domain(), pw_multi_aff_multi_val_on_domain(), range_factor_domain(), read_domain(), refine_generic(), refine_generic_bounds(), refine_generic_split(), remove_redundant_lower_bounds(), separate_domain(), set_universe(), steal_from_cst(), subtree_schedule_extend(), test_schedule_tree(), isl::basic_set::unbind_params_insert_domain(), isl::point::unbind_params_insert_domain(), isl::set::unbind_params_insert_domain(), upper_bounds(), and use_upper_bound_list().

◆ Domain2

TupleKindPtr Domain2("Domain2") ( "Domain2"  )
static

◆ Domain3

TupleKindPtr Domain3("Domain3") ( "Domain3"  )
static

◆ domain_backward

Signature domain_backward
static
Initial value:
=
{ { Domain2, Range }, { { Domain, Range }, { Domain2, Domain } } }

Definition at line 509 of file template_cpp.cc.

◆ domain_factor_domain

Signature domain_factor_domain
static
Initial value:
=
{ { Domain, Range }, { { { Domain, Domain2 }, Range } } }

Definition at line 637 of file template_cpp.cc.

◆ domain_factor_range

Signature domain_factor_range
static
Initial value:
=
{ { Domain2, Range }, { { { Domain, Domain2 }, Range } } }

Definition at line 639 of file template_cpp.cc.

◆ domain_forward

Signature domain_forward
static
Initial value:
=
{ { Domain2, Range }, { { Domain, Range }, { Domain, Domain2 } } }

Definition at line 499 of file template_cpp.cc.

◆ domain_map

Signature domain_map
static
Initial value:
=
{ { { Domain, Range }, Domain }, { { Domain, Range } } }

Definition at line 663 of file template_cpp.cc.

◆ domain_product

Signature domain_product
static
Initial value:
=
{ { { Domain, Domain2 }, Range },
{ { Domain, Range }, { Domain2, Range } } }

Definition at line 628 of file template_cpp.cc.

Referenced by isl::map::domain_product().

◆ domain_wrapped_domain_backward

Signature domain_wrapped_domain_backward
static
Initial value:
=
{ { { Domain3, Domain2 }, Range },
{ { { Domain, Domain2 }, Range }, { Domain3, Domain } } }
static TupleKindPtr Domain3("Domain3")

Definition at line 513 of file template_cpp.cc.

◆ each

std::vector<Signature> each = { each_params, each_set, each_map }
static

Definition at line 536 of file template_cpp.cc.

◆ each_map

Signature each_map
static
Initial value:
=
{ { Res }, { { Domain, Range }, { Res }, { Domain, Range } } }
static TupleKindPtr Res

Definition at line 534 of file template_cpp.cc.

◆ each_params

Signature each_params = { { Res }, { { }, { Res }, { } } }
static

Definition at line 532 of file template_cpp.cc.

◆ each_scc

std::vector<Signature> each_scc
static
Initial value:
=
static Signature each_scc_params
static Signature each_scc_set
static Signature each_scc_map

Definition at line 553 of file template_cpp.cc.

◆ each_scc_map

Signature each_scc_map
static
Initial value:
=
{ { Res }, { { Domain, Range },
{ Res }, { Domain, Range }, { Domain, Range },
{ Res }, { Domain, Range } } }

Definition at line 549 of file template_cpp.cc.

◆ each_scc_params

Signature each_scc_params
static
Initial value:
=
{ { Res }, { { }, { Res }, { }, { }, { Res }, { } } }

Definition at line 543 of file template_cpp.cc.

◆ each_scc_set

Signature each_scc_set
static
Initial value:
=
{ { Res }, { { Domain },
{ Res }, { Domain }, { Domain },
{ Res }, { Domain } } }

Definition at line 545 of file template_cpp.cc.

◆ each_set

Signature each_set = { { Res }, { { Domain }, { Res }, { Domain } } }
static

Definition at line 533 of file template_cpp.cc.

◆ flatten_domain

std::vector<Signature> flatten_domain
static
Initial value:
=
static Signature replace_nested_domain
static Signature anonymize_nested_domain

Definition at line 692 of file template_cpp.cc.

◆ flatten_range

std::vector<Signature> flatten_range
static
Initial value:
=
static Signature anonymize_nested_range
static Signature replace_nested_range

Definition at line 694 of file template_cpp.cc.

◆ fn_bin_op

std::vector<Signature> fn_bin_op = { bin_set, bin_map }
static

Definition at line 424 of file template_cpp.cc.

◆ fn_domain

std::vector<Signature> fn_domain = { domain, set_params }
static

Definition at line 613 of file template_cpp.cc.

◆ fn_ter_op

std::vector<Signature> fn_ter_op = { ter_set, ter_map }
static

Definition at line 468 of file template_cpp.cc.

◆ fn_un_op

std::vector<Signature> fn_un_op = { un_set, un_map }
static

Definition at line 413 of file template_cpp.cc.

◆ from_list_map

Signature from_list_map
static
Initial value:
=
{ { Domain, Range }, { { Domain, Range }, { Domain, Anonymous } } }

Definition at line 1891 of file template_cpp.cc.

◆ from_list_set

Signature from_list_set = { { Domain }, { { Domain }, { Anonymous } } }
static

Definition at line 1890 of file template_cpp.cc.

◆ from_str

std::vector<Signature> from_str
static
Initial value:
=
static Signature map_from_str
static Signature set_from_str
static Signature params_from_str

Definition at line 1899 of file template_cpp.cc.

◆ int_from_si

Signature int_from_si = { { Anonymous }, { { Ctx }, { Integer } } }
static

Definition at line 1904 of file template_cpp.cc.

◆ Integer

TupleKindPtr Integer {Fixed()}
static

Definition at line 123 of file template_cpp.cc.

◆ Leaf

TupleKindPtr Leaf("Leaf") ( "Leaf"  )
static

◆ map_anon

Kind map_anon { Domain, Anonymous }
static

Definition at line 962 of file template_cpp.cc.

◆ map_cmp

Signature map_cmp
static
Initial value:
=
{ { Domain, Domain }, { { Domain, Domain }, { Domain, Range } } }

Definition at line 671 of file template_cpp.cc.

◆ map_from_domain_and_range

Signature map_from_domain_and_range
static
Initial value:
=
{ { Domain, Range }, { { Domain }, { Range } } }

Definition at line 565 of file template_cpp.cc.

◆ map_from_range_and_domain

Signature map_from_range_and_domain
static
Initial value:
=
{ { Domain, Range }, { { Range }, { Domain } } }

Definition at line 559 of file template_cpp.cc.

◆ map_from_str

Signature map_from_str = { { Domain, Range }, { { Ctx }, { Str } } }
static

Definition at line 1898 of file template_cpp.cc.

◆ map_params

Signature map_params = { { }, { { Domain, Range } } }
static

Definition at line 609 of file template_cpp.cc.

◆ map_product

Signature map_product
static
Initial value:
=
{ { { Domain, Domain2 }, { Range, Range2 } },
{ { Domain, Range }, { Domain2, Range2 } } }

Definition at line 625 of file template_cpp.cc.

Referenced by isl_map_domain_product(), isl_map_product(), and isl_map_range_product().

◆ map_range_reverse

Signature map_range_reverse
static
Initial value:
=
{ { Domain, { Range2, Range } }, { { Domain, { Range, Range2 } } } }

Definition at line 618 of file template_cpp.cc.

◆ map_reverse

Signature map_reverse = { { Range, Domain }, { { Domain, Range } } }
static

Definition at line 617 of file template_cpp.cc.

◆ map_type

Kind map_type { Domain, Range }
static

Definition at line 961 of file template_cpp.cc.

Referenced by options_insert_dim().

◆ member_methods

const std::unordered_map<std::string, std::vector<Signature> > member_methods
static

◆ min_max

std::vector<Signature> min_max = { un_set, bin_set, un_map, bin_map }
static

Definition at line 482 of file template_cpp.cc.

Referenced by test_ast_expr().

◆ params

Kind params {}
static

◆ params_from_str

Signature params_from_str = { { }, { { Ctx }, { Str } } }
static

Definition at line 1896 of file template_cpp.cc.

◆ Range

TupleKindPtr Range("Range") ( "Range"  )
static

◆ range

Signature range = { { Range }, { { Domain, Range } } }
static

◆ Range2

TupleKindPtr Range2("Range2") ( "Range2"  )
static

◆ Range3

TupleKindPtr Range3("Range3") ( "Range3"  )
static

◆ range_backward

Signature range_backward
static
Initial value:
=
{ { Domain, Range2 }, { { Domain, Range }, { Range2, Range } } }

Definition at line 511 of file template_cpp.cc.

◆ range_factor_domain

Signature range_factor_domain
static
Initial value:
=
{ { Domain, Range }, { { Domain, { Range, Range2 } } } }

Definition at line 641 of file template_cpp.cc.

Referenced by isl_space_range_factor_domain(), and set_factor_domain().

◆ range_factor_range

Signature range_factor_range
static
Initial value:
=
{ { Domain, Range2 }, { { Domain, { Range, Range2 } } } }

Definition at line 643 of file template_cpp.cc.

Referenced by isl_space_range_factor_range(), and set_factor_range().

◆ range_forward

Signature range_forward
static
Initial value:
=
{ { Domain, Range2 }, { { Domain, Range }, { Range, Range2 } } }

Definition at line 501 of file template_cpp.cc.

◆ range_map

Signature range_map
static
Initial value:
=
{ { { Domain, Range }, Range }, { { Domain, Range } } }

Definition at line 665 of file template_cpp.cc.

Referenced by pw_multi_aff_from_map_stride().

◆ range_op

std::vector<Signature> range_op = { un_set, range }
static

Definition at line 774 of file template_cpp.cc.

◆ range_product

Signature range_product
static

◆ replace_nested_domain

Signature replace_nested_domain
static
Initial value:
=
{ { Domain2, Range2 },
{ { { Domain, Range }, Range2 }, { Anonymous} } }

Definition at line 687 of file template_cpp.cc.

◆ replace_nested_range

Signature replace_nested_range
static
Initial value:
=
{ { Domain, Range3 }, { { Domain, { Range, Range2 } }, { Anonymous} } }
static TupleKindPtr Range3("Range3")

Definition at line 690 of file template_cpp.cc.

◆ Res

TupleKindPtr Res {Fixed()}
static

◆ select_map

Signature select_map
static
Initial value:
=
{ { Domain, Anonymous }, { { Domain, Range }, { Integer } } }

Definition at line 2536 of file template_cpp.cc.

◆ select_set

Signature select_set = { { Anonymous }, { { Domain }, { Integer } } }
static

Definition at line 2535 of file template_cpp.cc.

◆ set_anon

Kind set_anon { Anonymous }
static

Definition at line 960 of file template_cpp.cc.

◆ set_at

std::vector<Signature> set_at = { set_at_set, set_at_map }
static

Definition at line 704 of file template_cpp.cc.

Referenced by isl::multi_id::set_at(), and isl::multi_val::set_at().

◆ set_at_map

Signature set_at_map
static
Initial value:
=
{ { Domain, Range },
{ { Domain, Range }, { Integer }, { Domain, Anonymous } } }

Definition at line 701 of file template_cpp.cc.

◆ set_at_set

Signature set_at_set
static
Initial value:
=
{ { Domain }, { { Domain }, { Integer }, { Anonymous } } }

Definition at line 699 of file template_cpp.cc.

◆ set_backward

Signature set_backward
static
Initial value:
=
{ { Domain2 }, { { Domain }, { Domain2, Domain } } }

Definition at line 507 of file template_cpp.cc.

◆ set_forward

Signature set_forward = { { Range }, { { Domain }, { Domain, Range } } }
static

Definition at line 498 of file template_cpp.cc.

◆ set_from_params

Signature set_from_params = { { Domain }, { { }, { Domain } } }
static

Definition at line 580 of file template_cpp.cc.

◆ set_from_str

Signature set_from_str = { { Domain }, { { Ctx }, { Str } } }
static

Definition at line 1897 of file template_cpp.cc.

◆ set_join

Signature set_join
static
Initial value:
=
{ { Domain }, { { Domain, Range }, { Domain, Range } } }

Definition at line 677 of file template_cpp.cc.

◆ set_params

Signature set_params = { { }, { { Domain } } }
static

Definition at line 608 of file template_cpp.cc.

◆ set_product

Signature set_product
static
Initial value:
=
{ { { Domain, Range } }, { { Domain }, { Range } } }

Definition at line 623 of file template_cpp.cc.

◆ set_to_map

Signature set_to_map = { { Domain, Domain }, { { Domain } } }
static

Definition at line 597 of file template_cpp.cc.

Referenced by compute_divs(), FN(), isl_map_compatible_domain(), isl_map_compatible_range(), isl_map_from_range(), isl_map_set_has_equal_params(), isl_map_set_tuple_is_equal(), isl_printer_print_set(), isl_set_add_basic_set(), isl_set_add_dims(), isl_set_affine_hull(), isl_set_align_divs(), isl_set_basic_set_check_equal_space(), isl_set_check_range(), isl_set_coalesce(), isl_set_compute_divs(), isl_set_contains_point(), isl_set_convex_hull(), isl_set_detect_equalities(), isl_set_dim(), isl_set_dim_is_bounded(), isl_set_drop(), isl_set_drop_unused_params(), isl_set_eliminate(), isl_set_fix(), isl_set_fix_dim_si(), isl_set_fix_si(), isl_set_flatten(), isl_set_get_hash(), isl_set_gist(), isl_set_gist_basic_set(), isl_set_grow(), isl_set_has_equal_space(), isl_set_intersect(), isl_set_intersect_factor_domain(), isl_set_intersect_factor_range(), isl_set_is_empty(), isl_set_is_equal(), isl_set_is_singleton(), isl_set_is_strict_subset(), isl_set_is_subset(), isl_set_lift(), isl_set_lower_bound_si(), isl_set_lower_bound_val(), isl_set_make_disjoint(), isl_set_move_dims(), isl_set_neg(), isl_set_normalize(), isl_set_params(), isl_set_partial_lexmax(), isl_set_partial_lexmin(), isl_set_peek_space(), isl_set_plain_gist_basic_set(), isl_set_plain_is_disjoint(), isl_set_plain_is_equal(), isl_set_plain_is_universe(), isl_set_polyhedral_hull(), isl_set_print_polylib(), isl_set_project_out(), isl_set_project_out_all_params(), isl_set_project_out_param_id(), isl_set_project_out_param_id_list(), isl_set_realign(), isl_set_remove_dims(), isl_set_remove_divs_involving_dims(), isl_set_remove_empty_parts(), isl_set_remove_unknown_divs(), isl_set_reset_space(), isl_set_sample(), isl_set_set_dim_name(), isl_set_set_tuple_name(), isl_set_simple_hull(), isl_set_solve_lp(), isl_set_space_has_equal_params(), isl_set_subtract(), isl_set_sum(), isl_set_union(), isl_set_union_disjoint(), isl_set_upper_bound_val(), isl_union_set_add_set(), isl_union_set_from_set(), print_body_pw_qpolynomial(), print_body_pw_qpolynomial_fold(), print_disjuncts_set(), set_bound_multi_val(), and unbind_params_insert_domain().

◆ set_type

Kind set_type { Domain }
static

◆ special_constructors

const std::unordered_map<std::string, std::vector<Signature> > special_constructors
static
Initial value:
{
{ "alloc", { alloc_params, alloc_set, alloc_map } },
{ "int_from_si", { int_from_si } },
{ "read_from_str", from_str },
}
static Signature alloc_set
static Signature alloc_params
static std::vector< Signature > from_str
static Signature alloc_map
static Signature int_from_si

Definition at line 1939 of file template_cpp.cc.

Referenced by template_cpp_generator::class_printer::print_constructor().

◆ special_member_methods

const infix_map_map special_member_methods
static
Initial value:
{
{ "gist",
{ { "aff", { bin_set_params, bin_map_domain } } }
},
{ "size",
{ { "fixed_box", range_op } },
},
{ "space",
{
{ "multi_union", range_op },
{ "union", { un_params, set_params, map_params } },
}
},
}
static std::vector< Signature > range_op
static Signature bin_set_params
static Signature set_params
static Signature bin_map_domain
static Signature map_params

Definition at line 940 of file template_cpp.cc.

Referenced by template_cpp_generator::class_printer::print_special_member_method().

◆ static_methods

const infix_map_map static_methods
static
Initial value:
{
{ "unit",
{ { "space", { ctx_params } } }
},
{ "empty",
{
{ "union_set", { ctx_params, ctx_set } },
{ "union_map", { ctx_map } },
{ "union_pw_multi_aff", { ctx_set, ctx_map } },
}
},
{ "universe",
{
{ "set", { un_params, un_set } },
{ "map", { un_map } },
}
},
}
static Signature ctx_map
static Signature ctx_set
static Signature ctx_params

Definition at line 751 of file template_cpp.cc.

Referenced by template_cpp_generator::class_printer::print_static_method().

◆ Str

TupleKindPtr Str {Fixed()}
static

◆ ter_int_int

std::vector<Signature> ter_int_int
static
Initial value:
=
static Signature ter_set_int_int
static Signature ter_params_int_int
static Signature ter_map_int_int

Definition at line 457 of file template_cpp.cc.

◆ ter_map

Signature ter_map
static
Initial value:
=
{ { Domain, Range },
{ { Domain, Range }, { Domain, Range }, { Domain, Range } } }

Definition at line 465 of file template_cpp.cc.

◆ ter_map_int_int

Signature ter_map_int_int
static
Initial value:
=
{ { Domain, Range }, { { Domain, Range }, { Integer }, { Integer } } }

Definition at line 455 of file template_cpp.cc.

◆ ter_params_int_int

Signature ter_params_int_int
static
Initial value:
=
{ { }, { { }, { Integer }, { Integer } } }

Definition at line 451 of file template_cpp.cc.

◆ ter_set

Signature ter_set
static
Initial value:
=
{ { Domain }, { { Domain }, { Domain }, { Domain } } }

Definition at line 463 of file template_cpp.cc.

◆ ter_set_int_int

Signature ter_set_int_int
static
Initial value:
=
{ { Domain }, { { Domain }, { Integer }, { Integer } } }

Definition at line 453 of file template_cpp.cc.

◆ to_list_map

Signature to_list_map = { { Domain, Anonymous }, { { Domain, Range } } }
static

Definition at line 710 of file template_cpp.cc.

◆ to_list_set

Signature to_list_set = { { Anonymous }, { { Domain } } }
static

Definition at line 709 of file template_cpp.cc.

◆ to_set

Signature to_set = { { Domain }, { { }, { Integer } } }
static

Definition at line 486 of file template_cpp.cc.

◆ to_set_named

Signature to_set_named
static
Initial value:
=
{ { Domain }, { { }, { Anonymous }, { Integer } } }

Definition at line 490 of file template_cpp.cc.

◆ transformation_domain

Signature transformation_domain = { { Domain }, { { Domain, Domain } } }
static

Definition at line 604 of file template_cpp.cc.

◆ type_prefixes

const std::unordered_set<std::string> type_prefixes
static
Initial value:
{
"basic",
"multi",
"pw",
"union",
}

Definition at line 992 of file template_cpp.cc.

Referenced by base_type().

◆ un_map

Signature un_map = { { Domain, Range }, { { Domain, Range } } }
static

Definition at line 411 of file template_cpp.cc.

◆ un_op

std::vector<Signature> un_op = { un_params, un_set, un_map }
static

◆ un_params

Signature un_params = { { }, { { } } }
static

Definition at line 409 of file template_cpp.cc.

◆ un_set

Signature un_set = { { Domain }, { { Domain } } }
static

Definition at line 410 of file template_cpp.cc.

◆ uncurry

Signature uncurry
static
Initial value:
=
{ { { Domain, Range }, Range2 },
{ { Domain, { Range, Range2 } } } }

Definition at line 651 of file template_cpp.cc.

◆ unwrap

Signature unwrap = { { Domain, Range }, { { { Domain, Range } } } }
static

Definition at line 658 of file template_cpp.cc.

Referenced by isl_space_unwrap().

◆ update_domain

Signature update_domain
static
Initial value:
=
{ { Domain2, Range }, { { Leaf, Range }, { Anonymous } } }
static TupleKindPtr Leaf("Leaf")

Definition at line 474 of file template_cpp.cc.

◆ update_range

Signature update_range
static
Initial value:
=
{ { Domain, Range2 }, { { Domain, Leaf }, { Anonymous } } }

Definition at line 476 of file template_cpp.cc.

◆ update_set

Signature update_set = { { Domain2 }, { { Leaf }, { Anonymous } } }
static

Definition at line 473 of file template_cpp.cc.

◆ wrap

Signature wrap = { { { Domain, Range } }, { { Domain, Range } } }
static

Definition at line 657 of file template_cpp.cc.

Referenced by collect_inter_validity(), and isl_space_wrap().