1.1 --- a/src/Tools/isac/MathEngBasic/model-def.sml Thu Nov 30 08:11:50 2023 +0100
1.2 +++ b/src/Tools/isac/MathEngBasic/model-def.sml Fri Dec 01 05:51:18 2023 +0100
1.3 @@ -57,6 +57,7 @@
1.4
1.5 val member_vnt: variants -> variant -> bool
1.6 val max_variants: o_model -> i_model_TEST -> variants
1.7 + val max_variants'': i_model_TEST -> variants
1.8
1.9 (*from isac_test for Minisubpbl*)
1.10 val all_variants: ('a * variants * 'c * 'd * 'e) list -> variants
1.11 @@ -220,7 +221,7 @@
1.12 if some_input feedb then 1 else 0) i_model) 0;
1.13 fun arrange_args [] _ = []
1.14 | arrange_args (sum :: ss) (cnt, all) = (sum, nth cnt all) :: (arrange_args ss (cnt + 1, all))
1.15 -fun max_variants o_model i_model =
1.16 +fun max_variants' i_model =
1.17 let
1.18 val all_variants =
1.19 map (fn (_, variants, _, _, _) => variants) i_model
1.20 @@ -234,12 +235,20 @@
1.21 val maxes = filter (fn (cnt, _) => curry op = (fst (hd max_first)) cnt) max_first
1.22 |> map snd
1.23 in
1.24 + maxes
1.25 + end
1.26 +fun max_variants o_model i_model =
1.27 + let
1.28 + val maxes = max_variants' i_model
1.29 + in
1.30 if maxes = []
1.31 then map (fn (_, variants, _, _, _) => variants) o_model
1.32 |> flat
1.33 |> distinct op =
1.34 else maxes
1.35 - end
1.36 + end
1.37 +fun max_variants'' [] = raise ERROR "Model_Def.max_variants'' NOT for i_model = []"
1.38 + | max_variants'' i_model = max_variants' i_model
1.39
1.40
1.41 (** definitions for O_Model.T **)