50 enum agm_ent_type type;
55 enum agm_use_type type;
60 enum agm_bdry_type type;
64 struct agm* agm_new(
void);
65 void agm_free(
struct agm* m);
67 void agm_free_tags(
struct agm* m);
69 struct agm_ent agm_add_ent(struct agm* m,
enum agm_ent_type t);
70 struct agm_bdry agm_add_bdry(struct agm* m,
struct agm_ent e);
71 struct agm_use agm_add_use(struct agm* m,
struct agm_bdry b, struct agm_ent of);
73 void agm_reserve(
struct agm* m,
enum agm_ent_type t,
int n);
75 int agm_ent_count(
struct agm* m,
enum agm_ent_type t);
76 int agm_use_count(
struct agm* m,
enum agm_use_type t);
77 int agm_bdry_count(
struct agm* m,
enum agm_bdry_type t);
79 struct agm_ent agm_first_ent(struct agm* m,
enum agm_ent_type t);
80 struct agm_ent agm_next_ent(struct agm* m,
struct agm_ent e);
82 int agm_ent_null(
struct agm_ent e);
83 int agm_ent_eq(
struct agm_ent a,
struct agm_ent b);
84 int agm_use_null(
struct agm_use u);
85 int agm_use_eq(
struct agm_use a,
struct agm_use b);
86 int agm_bdry_null(
struct agm_bdry b);
87 int agm_bdry_eq(
struct agm_bdry a,
struct agm_bdry b);
89 struct agm_use agm_first_use_of(struct agm* m,
struct agm_ent e);
90 struct agm_use agm_next_use_of(struct agm* m,
struct agm_use u);
91 struct agm_use agm_first_use_by(struct agm* m,
struct agm_bdry b);
92 struct agm_use agm_next_use_by(struct agm* m,
struct agm_use u);
93 struct agm_ent agm_used(struct agm* m,
struct agm_use u);
94 struct agm_bdry agm_user(struct agm* m,
struct agm_use u);
95 struct agm_ent agm_bounds(struct agm* m,
struct agm_bdry b);
96 struct agm_bdry agm_first_bdry_of(struct agm* m,
struct agm_ent e);
97 struct agm_bdry agm_next_bdry_of(struct agm* m,
struct agm_bdry b);
99 int agm_use_count_of(
struct agm* m,
struct agm_ent e);
100 int agm_use_count_by(
struct agm* m,
struct agm_bdry b);
101 int agm_bdry_count_of(
struct agm* m,
struct agm_ent e);
102 int agm_down_count(
struct agm* m,
struct agm_ent e);
106 struct agm_tag* agm_new_tag(
struct agm* m,
int bytes);
107 void* agm_tag_at(
struct agm_tag* t,
enum agm_obj_type o,
108 int subtype,
int index);
110 enum agm_ent_type agm_type_from_dim(
int dim);
111 int agm_dim_from_type(
enum agm_ent_type t);
113 struct agm_use agm_find_use_by_bdry(struct agm* m,
struct agm_ent of,
115 struct agm_use agm_find_use_by_ent(struct agm* m,
struct agm_ent of,
117 int agm_find_path(
struct agm* m,
struct agm_ent from,
struct agm_ent to,
118 struct agm_use path[4]);