src/Pure/General/time.ML
author wenzelm
Fri, 07 Jul 2023 18:04:45 +0200
changeset 78265 03eb7f7bb990
parent 73383 6b104dc069de
child 82092 93195437fdee
permissions -rw-r--r--
proper transaction_lock; clarified signature;

(*  Title:      Pure/General/time.scala
    Author:     Makarius

Time based on nanoseconds (idealized).
*)

signature TIME =
sig
  include TIME
  val min: time * time -> time
  val max: time * time -> time
  val scale: real -> time -> time
end;

structure Time: TIME =
struct

open Time;

fun min (t1, t2) = if t1 < t2 then t1 else t2;
fun max (t1, t2) = if t1 > t2 then t1 else t2;

fun scale s t = Time.fromNanoseconds (Real.ceil (s * Real.fromInt (Time.toNanoseconds t)));

end;