src/Pure/General/time.ML
author wenzelm
Tue, 21 Jun 2022 14:51:17 +0200
changeset 75571 ac5e633ad9b3
parent 73383 6b104dc069de
permissions -rw-r--r--
tuned signature: more operations;
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
73383
6b104dc069de clarified signature --- augment existing structure Time;
wenzelm
parents:
diff changeset
     1
(*  Title:      Pure/General/time.scala
6b104dc069de clarified signature --- augment existing structure Time;
wenzelm
parents:
diff changeset
     2
    Author:     Makarius
6b104dc069de clarified signature --- augment existing structure Time;
wenzelm
parents:
diff changeset
     3
6b104dc069de clarified signature --- augment existing structure Time;
wenzelm
parents:
diff changeset
     4
Time based on nanoseconds (idealized).
6b104dc069de clarified signature --- augment existing structure Time;
wenzelm
parents:
diff changeset
     5
*)
6b104dc069de clarified signature --- augment existing structure Time;
wenzelm
parents:
diff changeset
     6
6b104dc069de clarified signature --- augment existing structure Time;
wenzelm
parents:
diff changeset
     7
signature TIME =
6b104dc069de clarified signature --- augment existing structure Time;
wenzelm
parents:
diff changeset
     8
sig
6b104dc069de clarified signature --- augment existing structure Time;
wenzelm
parents:
diff changeset
     9
  include TIME
6b104dc069de clarified signature --- augment existing structure Time;
wenzelm
parents:
diff changeset
    10
  val min: time * time -> time
6b104dc069de clarified signature --- augment existing structure Time;
wenzelm
parents:
diff changeset
    11
  val max: time * time -> time
6b104dc069de clarified signature --- augment existing structure Time;
wenzelm
parents:
diff changeset
    12
  val scale: real -> time -> time
6b104dc069de clarified signature --- augment existing structure Time;
wenzelm
parents:
diff changeset
    13
end;
6b104dc069de clarified signature --- augment existing structure Time;
wenzelm
parents:
diff changeset
    14
6b104dc069de clarified signature --- augment existing structure Time;
wenzelm
parents:
diff changeset
    15
structure Time: TIME =
6b104dc069de clarified signature --- augment existing structure Time;
wenzelm
parents:
diff changeset
    16
struct
6b104dc069de clarified signature --- augment existing structure Time;
wenzelm
parents:
diff changeset
    17
6b104dc069de clarified signature --- augment existing structure Time;
wenzelm
parents:
diff changeset
    18
open Time;
6b104dc069de clarified signature --- augment existing structure Time;
wenzelm
parents:
diff changeset
    19
6b104dc069de clarified signature --- augment existing structure Time;
wenzelm
parents:
diff changeset
    20
fun min (t1, t2) = if t1 < t2 then t1 else t2;
6b104dc069de clarified signature --- augment existing structure Time;
wenzelm
parents:
diff changeset
    21
fun max (t1, t2) = if t1 > t2 then t1 else t2;
6b104dc069de clarified signature --- augment existing structure Time;
wenzelm
parents:
diff changeset
    22
6b104dc069de clarified signature --- augment existing structure Time;
wenzelm
parents:
diff changeset
    23
fun scale s t = Time.fromNanoseconds (Real.ceil (s * Real.fromInt (Time.toNanoseconds t)));
6b104dc069de clarified signature --- augment existing structure Time;
wenzelm
parents:
diff changeset
    24
6b104dc069de clarified signature --- augment existing structure Time;
wenzelm
parents:
diff changeset
    25
end;