equal
deleted
inserted
replaced
55 val get_descr: i_model_feedback_TEST -> descriptor |
55 val get_descr: i_model_feedback_TEST -> descriptor |
56 val descriptor_exists: descriptor -> i_model_feedback_TEST -> bool |
56 val descriptor_exists: descriptor -> i_model_feedback_TEST -> bool |
57 |
57 |
58 val member_vnt: variants -> variant -> bool |
58 val member_vnt: variants -> variant -> bool |
59 val max_variants: o_model -> i_model_TEST -> variants |
59 val max_variants: o_model -> i_model_TEST -> variants |
|
60 val max_variants'': i_model_TEST -> variants |
60 |
61 |
61 (*from isac_test for Minisubpbl*) |
62 (*from isac_test for Minisubpbl*) |
62 val all_variants: ('a * variants * 'c * 'd * 'e) list -> variants |
63 val all_variants: ('a * variants * 'c * 'd * 'e) list -> variants |
63 val filter_variants': i_model_TEST -> variant -> i_model_TEST |
64 val filter_variants': i_model_TEST -> variant -> i_model_TEST |
64 val cnt_corrects: i_model_TEST -> int |
65 val cnt_corrects: i_model_TEST -> int |
218 fun cnt_corrects i_model = |
219 fun cnt_corrects i_model = |
219 fold (curry op +) (map (fn (_, _, _, _, (feedb, _)) => |
220 fold (curry op +) (map (fn (_, _, _, _, (feedb, _)) => |
220 if some_input feedb then 1 else 0) i_model) 0; |
221 if some_input feedb then 1 else 0) i_model) 0; |
221 fun arrange_args [] _ = [] |
222 fun arrange_args [] _ = [] |
222 | arrange_args (sum :: ss) (cnt, all) = (sum, nth cnt all) :: (arrange_args ss (cnt + 1, all)) |
223 | arrange_args (sum :: ss) (cnt, all) = (sum, nth cnt all) :: (arrange_args ss (cnt + 1, all)) |
223 fun max_variants o_model i_model = |
224 fun max_variants' i_model = |
224 let |
225 let |
225 val all_variants = |
226 val all_variants = |
226 map (fn (_, variants, _, _, _) => variants) i_model |
227 map (fn (_, variants, _, _, _) => variants) i_model |
227 |> flat |
228 |> flat |
228 |> distinct op = |
229 |> distinct op = |
232 |
233 |
233 val max_first = rev (sort (fn ((i, _), (j, _)) => int_ord (i, j)) sum_variant_s) |
234 val max_first = rev (sort (fn ((i, _), (j, _)) => int_ord (i, j)) sum_variant_s) |
234 val maxes = filter (fn (cnt, _) => curry op = (fst (hd max_first)) cnt) max_first |
235 val maxes = filter (fn (cnt, _) => curry op = (fst (hd max_first)) cnt) max_first |
235 |> map snd |
236 |> map snd |
236 in |
237 in |
|
238 maxes |
|
239 end |
|
240 fun max_variants o_model i_model = |
|
241 let |
|
242 val maxes = max_variants' i_model |
|
243 in |
237 if maxes = [] |
244 if maxes = [] |
238 then map (fn (_, variants, _, _, _) => variants) o_model |
245 then map (fn (_, variants, _, _, _) => variants) o_model |
239 |> flat |
246 |> flat |
240 |> distinct op = |
247 |> distinct op = |
241 else maxes |
248 else maxes |
242 end |
249 end |
|
250 fun max_variants'' [] = raise ERROR "Model_Def.max_variants'' NOT for i_model = []" |
|
251 | max_variants'' i_model = max_variants' i_model |
243 |
252 |
244 |
253 |
245 (** definitions for O_Model.T **) |
254 (** definitions for O_Model.T **) |
246 |
255 |
247 type o_model_single = |
256 type o_model_single = |