equal
deleted
inserted
replaced
242 |
242 |
243 (*timing*) |
243 (*timing*) |
244 val cond_timeit: bool -> (unit -> 'a) -> 'a |
244 val cond_timeit: bool -> (unit -> 'a) -> 'a |
245 val timeit: (unit -> 'a) -> 'a |
245 val timeit: (unit -> 'a) -> 'a |
246 val timeap: ('a -> 'b) -> 'a -> 'b |
246 val timeap: ('a -> 'b) -> 'a -> 'b |
|
247 val timing: bool ref |
247 |
248 |
248 (*misc*) |
249 (*misc*) |
249 val make_keylist: ('a -> 'b) -> 'a list -> ('a * 'b) list |
250 val make_keylist: ('a -> 'b) -> 'a list -> ('a * 'b) list |
250 val keyfilter: ('a * ''b) list -> ''b -> 'a list |
251 val keyfilter: ('a * ''b) list -> ''b -> 'a list |
251 val partition: ('a -> bool) -> 'a list -> 'a list * 'a list |
252 val partition: ('a -> bool) -> 'a list -> 'a list * 'a list |
1176 |
1177 |
1177 |
1178 |
1178 (** timing **) |
1179 (** timing **) |
1179 |
1180 |
1180 (*a conditional timing function: applies f to () and, if the flag is true, |
1181 (*a conditional timing function: applies f to () and, if the flag is true, |
1181 prints its runtime*) |
1182 prints its runtime on warning channel*) |
1182 fun cond_timeit flag f = |
1183 fun cond_timeit flag f = |
1183 if flag then |
1184 if flag then |
1184 let val start = startTiming() |
1185 let val start = startTiming() |
1185 val result = f () |
1186 val result = f () |
1186 in |
1187 in warning (endTiming start); result end |
1187 writeln (endTiming start); result |
|
1188 end |
|
1189 else f (); |
1188 else f (); |
1190 |
1189 |
1191 (*unconditional timing function*) |
1190 (*unconditional timing function*) |
1192 fun timeit x = cond_timeit true x; |
1191 fun timeit x = cond_timeit true x; |
1193 |
1192 |
1194 (*timed application function*) |
1193 (*timed application function*) |
1195 fun timeap f x = timeit (fn () => f x); |
1194 fun timeap f x = timeit (fn () => f x); |
|
1195 |
|
1196 (*global timing mode*) |
|
1197 val timing = ref false; |
1196 |
1198 |
1197 |
1199 |
1198 |
1200 |
1199 (** misc **) |
1201 (** misc **) |
1200 |
1202 |