Kappa_site_graphs.Edges
Concrete graph implementation
val empty : with_connected_components:bool -> t
val add_agent : ?id:int -> Signature.s -> int -> t -> int * t
add_agent ?id sigs agent_type graph
add_link ag1 s1 ag2 s2 t
Some (i,j) as second returned element means cc j is now merged into cc i
Some (i,j) as second returned element means separate "new" cc j from cc i
val is_agent_id : int -> t -> bool
is_agent_id agent_id graph
val is_free : int -> int -> t -> bool
is_free agent_id site graph
val is_internal : int -> int -> int -> t -> bool
is_internal internal_state agent_id site graph
val link_exists : int -> int -> int -> int -> t -> bool
link_exists ag1_id site1 ag2_id site2 graph
val exists_fresh : int -> int -> int -> int -> t -> int option
exists_fresh ag1 site1 type_of_ag2 site2 graph
val get_internal : int -> int -> t -> int
get_internal ag site graph
val get_sites : int -> t -> int
val get_sort : int -> t -> int
val get_connected_component : int -> t -> int option
val in_same_connected_component : int -> int -> t -> bool
iter_neighbors f ag graph
calls function f
on all direct neighbors of agent ag
in graph
.
val all_agents_where :
(Agent.t -> bool) ->
t ->
Kappa_data_structures.IntCollection.t
val empty_path : path
val print_path : ?sigs:Signature.s -> Stdlib.Format.formatter -> path -> unit
are_connected ?max_distance graph nodes_x nodes_y
val species :
debug_mode:bool ->
Signature.s ->
int ->
t ->
User_graph.connected_component
val build_snapshot : raw:bool -> Signature.s -> t -> Snapshot.t
val build_user_snapshot :
debug_mode:bool ->
raw:bool ->
Signature.s ->
t ->
(int * User_graph.connected_component) list
val debug_print : Stdlib.Format.formatter -> t -> unit