src/Tools/isac/MathEngBasic/model-def.sml
changeset 60770 365758b39d90
parent 60769 0df0759fed26
child 60771 1b072aab8f4e
     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 **)