(** Module: Beam Description: beam definition and operations @author WANG Haisheng Created: 21/07/2013 Modified: 21/07/2013 *) exception Beam_matching of string;; open Signal;; class beam : signal_type array -> beam_type = fun (sa_init : signal_type array) -> object (self) val sa = sa_init val l = Array.length sa method get = sa method length = l method sub : int -> int -> beam_type = fun start -> fun len -> new beam (Array.sub self#get start len) method append : beam_type -> beam_type = fun b -> new beam (Array.append self#get b) method matching : int -> beam_type fun size -> if size = self#length then self else if size > self#length && size mod self#length = 0 then else if size < self#length && self#length mod size = 0 then else raise (Beam_matching "matching size error") end