1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91
|
(****************************************************************************)
(* the diy toolsuite *)
(* *)
(* Jade Alglave, University College London, UK. *)
(* Luc Maranget, INRIA Paris-Rocquencourt, France. *)
(* *)
(* Copyright 2010-present Institut National de Recherche en Informatique et *)
(* en Automatique and the authors. All rights reserved. *)
(* *)
(* This software is governed by the CeCILL-B license under French law and *)
(* abiding by the rules of distribution of free software. You can use, *)
(* modify and/ or redistribute the software under the terms of the CeCILL-B *)
(* license as circulated by CEA, CNRS and INRIA at the following URL *)
(* "http://www.cecill.info". We also give a copy in LICENSE.txt. *)
(****************************************************************************)
(* Tool on matrices for compare. A code sharing attemp in 'mcompare' mess *)
(* cells are lists of their lines *)
type cell = string list
type column = cell array
type matrix = column list
module type Config = sig
val mode : OutMode.t
val chan : out_channel
val verbose : int
val show_empty_rows : bool
val kinds : LogState.kind TblRename.t
val conds : LogConstr.cond TblRename.t
val orders : unit TblRename.t
end
(*****************)
(* Simple Build *)
(*****************)
module type I = sig
type info
(*
Build information matrix from test result matrix.
Arguments:
+ log (ie column in log underlying matrix)
+ info (attached to row in log underlying matrix)
+ test result itself
*)
val fmt_cell : LogState.t -> info -> LogState.test -> cell
(* Add function *)
type v
val add : v -> LogState.test -> v
end
module NoAdd : sig
type v
val add : v -> LogState.test -> v
end
module Build (I:I) : sig
type key = I.info Key.t
(* Build a column *)
val extract :
LogState.t -> key array -> LogState.test array -> column
(* Build a matrix *)
val build : key array -> LogState.t list -> matrix
(* Sum columns *)
val sum : key array -> I.v list -> LogState.t list -> I.v list
end
(*******************)
(* Final formating *)
(*******************)
module Dump(Opt:Config) :
sig
val dump :
string (* legend *) ->
bool (* horiz *) ->
(int * string) list (* first row, 'header' *)->
string list (* last row, 'sum' *) ->
'a Key.t array -> (* First column *)
?col2:column -> (* Second column *)
matrix -> (* matrix proper *)
unit
end
|