projects
/
Faustine.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
MRFausti -> Faustine in Makefile.in.
[Faustine.git]
/
interpretor
/
beam.ml
diff --git
a/interpretor/beam.ml
b/interpretor/beam.ml
index
c4c3b9e
..
f9ea667
100644
(file)
--- a/
interpretor/beam.ml
+++ b/
interpretor/beam.ml
@@
-70,36
+70,47
@@
class beam : signal_type array -> beam_type =
let signal_at = fun (t : time) -> fun (s : signal_type) -> s#at t in
Array.map (signal_at t) self#get
let signal_at = fun (t : time) -> fun (s : signal_type) -> s#at t in
Array.map (signal_at t) self#get
- method output : int ->
value_type
array array =
+ method output : int ->
float array
array array =
fun (length_max : int) ->
fun (length_max : int) ->
+ let () = print_string(" Faustine -> Calculating...") in
+ let tic = Sys.time () in
+
let transpose : 'a array array -> 'a array array =
fun matrix ->
let get_element = fun i -> fun array -> array.(i) in
let get_column = fun m -> fun i -> Array.map (get_element i) m in
Array.init self#width (get_column matrix) in
let transpose : 'a array array -> 'a array array =
fun matrix ->
let get_element = fun i -> fun array -> array.(i) in
let get_column = fun m -> fun i -> Array.map (get_element i) m in
Array.init self#width (get_column matrix) in
- let value_init = new value Error in
+ let value2float = fun (v : value_type) -> v#to_float_array in
+ let init = [|0.|] in
let container = Array.make length_max
let container = Array.make length_max
- (Array.make self#width
value_
init) in
+ (Array.make self#width init) in
let index = ref 0 in
try
while !index < length_max do
let index = ref 0 in
try
while !index < length_max do
- container.(!index) <-
self#at !index
;
+ container.(!index) <-
Array.map value2float (self#at !index)
;
incr index;
done;
incr index;
done;
- transpose container
- with x ->
+ let result = transpose container in
+ let toc = Sys.time () in
+ let () = print_endline (" Done. (duration: " ^ (string_of_float (toc -. tic)) ^ "s.)") in
+ result
+ with x ->
let error_message =
match x with
| Convert_Error s -> "Convert_Error: " ^ s
| Basic_operation s -> "Basic_operation: " ^ s
| Signal_operation s -> "Signal_operation: " ^ s
| Beam_matching s -> "Beam_Matching_Error: " ^ s
let error_message =
match x with
| Convert_Error s -> "Convert_Error: " ^ s
| Basic_operation s -> "Basic_operation: " ^ s
| Signal_operation s -> "Signal_operation: " ^ s
| Beam_matching s -> "Beam_Matching_Error: " ^ s
- | _ -> "Compute finished."
+ | Invalid_argument s -> ""
+ | _ -> "Unknown error"
in
in
- let () = print_string error_message in
- transpose (Array.sub container 0 !index)
+ let () = print_string (error_message) in
+ let result = transpose (Array.sub container 0 !index) in
+ let toc = Sys.time () in
+ let () = print_endline (" Done. (duration: " ^ (string_of_float (toc -. tic)) ^ "s.)") in
+ result
method frequency : int array =
let each_rate : signal -> int =
method frequency : int array =
let each_rate : signal -> int =