Skip to content

Commit 0cf085d

Browse files
committed
Resolve boxed math
1 parent b0bbd08 commit 0cf085d

File tree

1 file changed

+16
-16
lines changed

1 file changed

+16
-16
lines changed

src/manifold/time.clj

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -22,42 +22,42 @@
2222

2323
(defn nanoseconds
2424
"Converts nanoseconds -> milliseconds"
25-
[n]
25+
[^double n]
2626
(/ n 1e6))
2727

2828
(defn microseconds
2929
"Converts microseconds -> milliseconds"
30-
[n]
30+
[^double n]
3131
(/ n 1e3))
3232

3333
(defn milliseconds
3434
"Converts milliseconds -> milliseconds"
35-
[n]
35+
[^double n]
3636
n)
3737

3838
(defn seconds
3939
"Converts seconds -> milliseconds"
40-
[n]
40+
[^double n]
4141
(* n 1e3))
4242

4343
(defn minutes
4444
"Converts minutes -> milliseconds"
45-
[n]
45+
[^double n]
4646
(* n 6e4))
4747

4848
(defn hours
4949
"Converts hours -> milliseconds"
50-
[n]
50+
[^double n]
5151
(* n 36e5))
5252

5353
(defn days
5454
"Converts days -> milliseconds"
55-
[n]
55+
[^double n]
5656
(* n 864e5))
5757

5858
(defn hz
5959
"Converts frequency -> period in milliseconds"
60-
[n]
60+
[^double n]
6161
(/ 1e3 n))
6262

6363
(let [intervals (partition 2 ["d" (days 1)
@@ -68,13 +68,13 @@
6868
(defn format-duration
6969
"Takes a duration in milliseconds, and returns a formatted string
7070
describing the interval, i.e. '5d 3h 1m'"
71-
[n]
71+
[^double n]
7272
(loop [s "", n n, intervals intervals]
7373
(if (empty? intervals)
7474
(if (empty? s)
7575
"0s"
7676
(str/trim s))
77-
(let [[desc val] (first intervals)]
77+
(let [[desc ^double val] (first intervals)]
7878
(if (>= n val)
7979
(recur
8080
(str s (int (/ n val)) desc " ")
@@ -184,13 +184,13 @@
184184
default, the initial time is `0`."
185185
([]
186186
(mock-clock 0))
187-
([initial-time]
187+
([^double initial-time]
188188
(let [now (atom initial-time)
189189
events (atom (sorted-map))]
190190
(reify
191191
IClock
192192
(in [this interval-millis f]
193-
(swap! events update-in [(+ @now interval-millis)] #(conj (or % []) f))
193+
(swap! events update-in [(+ ^double @now interval-millis)] #(conj (or % []) f))
194194
(advance this 0))
195195
(every [this delay-millis period-millis f]
196196
(assert (< 0 period-millis))
@@ -204,10 +204,10 @@
204204
(now [_] @now)
205205
(advance
206206
[this time]
207-
(let [limit (+ @now time)]
207+
(let [limit (+ ^double @now ^double time)]
208208
(loop []
209209
(if (or (empty? @events)
210-
(< limit (key (first @events))))
210+
(< limit ^double (key (first @events))))
211211
(do
212212
(reset! now limit)
213213
nil)
@@ -217,7 +217,7 @@
217217
(reset! now t)
218218
(doseq [f fs]
219219
(let [period (some-> f meta ::period deref)]
220-
(when (or (nil? period) (pos? period))
220+
(when (or (nil? period) (pos? ^double period))
221221
(try
222222
(f)
223223
(when period (.in this period f))
@@ -281,5 +281,5 @@
281281
"Schedules no-arg function `f` to be invoked at `timestamp`, which is the milliseconds
282282
since the epoch. Returns a deferred representing the returned value of the function
283283
(unwrapped if `f` itself returns a deferred)."
284-
[timestamp f]
284+
[^double timestamp f]
285285
(in (max 0 (- timestamp (System/currentTimeMillis))) f))

0 commit comments

Comments
 (0)