int Types.coord ->
('a -> 'a -> float) ->
(float -> 'a -> 'a -> 'a) ->
(int Types.coord -> 'a) ->
object ('b)
val mutable alpha : float
val mutable alpha_policy : (int -> float) option
val dist : 'a -> 'a -> float
val mutable generation : int
val move : float -> 'a -> 'a -> 'a
val nodes : 'a Som.node array array
val mutable radius : int
val mutable radius_policy : (int -> int) option
val size : int Types.coord
method dump : (int -> int -> 'a -> unit) -> (unit -> unit) -> unit
method find_node : 'a -> int Types.coord
method get_alpha : float option
method get_alpha_policy : (int -> float) option
method get_radius : int option
method get_radius_policy : (int -> int) option
method get_value : int Types.coord -> 'a
method learn : ('b -> 'a option) -> unit
method move_node : int -> int -> float -> 'a -> unit
method set_alpha : float -> unit
method set_alpha_policy : (int -> float) -> unit
method set_radius : int -> unit
method set_radius_policy : (int -> int) -> unit
method train : 'a -> unit
end