146 | MaSh_kNN_Ext |
146 | MaSh_kNN_Ext |
147 |
147 |
148 fun mash_engine () = |
148 fun mash_engine () = |
149 let val flag1 = Options.default_string @{system_option MaSh} in |
149 let val flag1 = Options.default_string @{system_option MaSh} in |
150 (case if flag1 <> "none" (* default *) then flag1 else getenv "MASH" of |
150 (case if flag1 <> "none" (* default *) then flag1 else getenv "MASH" of |
151 "yes" => SOME MaSh_NB |
151 "yes" => SOME MaSh_NB_kNN |
152 | "sml" => SOME MaSh_NB |
152 | "sml" => SOME MaSh_NB_kNN |
153 | "nb" => SOME MaSh_NB |
153 | "nb" => SOME MaSh_NB |
154 | "knn" => SOME MaSh_kNN |
154 | "knn" => SOME MaSh_kNN |
155 | "nb_knn" => SOME MaSh_NB_kNN |
155 | "nb_knn" => SOME MaSh_NB_kNN |
156 | "nb_ext" => SOME MaSh_NB_Ext |
156 | "nb_ext" => SOME MaSh_NB_Ext |
157 | "knn_ext" => SOME MaSh_kNN_Ext |
157 | "knn_ext" => SOME MaSh_kNN_Ext |
158 | _ => NONE) |
158 | engine => (warning ("Unknown MaSh engine: " ^ quote engine ^ "."); NONE)) |
159 end |
159 end |
160 |
160 |
161 val is_mash_enabled = is_some o mash_engine |
161 val is_mash_enabled = is_some o mash_engine |
162 val the_mash_engine = the_default MaSh_NB o mash_engine |
162 val the_mash_engine = the_default MaSh_NB_kNN o mash_engine |
163 |
163 |
164 fun scaled_avg [] = 0 |
164 fun scaled_avg [] = 0 |
165 | scaled_avg xs = Real.ceil (100000000.0 * fold (curry (op +)) xs 0.0) div length xs |
165 | scaled_avg xs = Real.ceil (100000000.0 * fold (curry (op +)) xs 0.0) div length xs |
166 |
166 |
167 fun avg [] = 0.0 |
167 fun avg [] = 0.0 |