Codec.Picture.Jpg.FastDct:referenceDct from JuicyPixels-3.2.6.1

Time bar (total: 3.6s)

analyze1.0ms (0%)

Memory
1.2MiB live, 1.2MiB allocated
Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%99.7%0.3%0%0%0%0
100%99.7%0%0.3%0%0%0%1
Compiler

Compiled 29 to 25 computations (13.8% saved)

sample3.4s (96.7%)

Memory
25.0MiB live, 5 339.4MiB allocated
Samples
2.3s6 265×1valid
425.0ms1 981×0valid
84.0ms21×5exit
3.0ms2valid
1.0ms3valid
Precisions
Click to see histograms. Total time spent on operations: 2.4s
ival-mult: 1.1s (48.4% of total)
ival-cos: 580.0ms (24.4% of total)
adjust: 221.0ms (9.3% of total)
ival-div: 221.0ms (9.3% of total)
ival-add: 173.0ms (7.3% of total)
exact: 19.0ms (0.8% of total)
ival-true: 7.0ms (0.3% of total)
ival-assert: 3.0ms (0.1% of total)
Bogosity

preprocess116.0ms (3.3%)

Memory
23.9MiB live, 181.3MiB allocated
Algorithm
egg-herbie
Rules
1 748×distribute-lft-in
1 612×distribute-rgt-in
1 368×unsub-neg
1 140×*-lowering-*.f32
1 140×*-lowering-*.f64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0190766
1484762
21359762
34195762
46225762
02327
14427
29927
326027
455727
593423
6111323
7127323
8127323
9127323
10127723
0127721
Stop Event
iter limit
saturated
node limit
Calls
Call 1
Inputs
(* (* x (cos (/ (* (* (+ (* y 2) 1) z) t) 16))) (cos (/ (* (* (+ (* a 2) 1) b) t) 16)))
Outputs
(* (* x (cos (/ (* (* (+ (* y 2) 1) z) t) 16))) (cos (/ (* (* (+ (* a 2) 1) b) t) 16)))
(*.f64 (*.f64 x (cos.f64 (*.f64 z (*.f64 t (fma.f64 y #s(literal 1/8 binary64) #s(literal 1/16 binary64)))))) (cos.f64 (*.f64 t (*.f64 b (fma.f64 a #s(literal 1/8 binary64) #s(literal 1/16 binary64))))))
Call 2
Inputs
(* (* x (cos (/ (* (* (+ (* y 2) 1) z) t) 16))) (cos (/ (* (* (+ (* a 2) 1) b) t) 16)))
(* (* (neg x) (cos (/ (* (* (+ (* y 2) 1) z) t) 16))) (cos (/ (* (* (+ (* a 2) 1) b) t) 16)))
(* (* x (cos (/ (* (* (+ (* (neg y) 2) 1) z) t) 16))) (cos (/ (* (* (+ (* a 2) 1) b) t) 16)))
(* (* x (cos (/ (* (* (+ (* y 2) 1) (neg z)) t) 16))) (cos (/ (* (* (+ (* a 2) 1) b) t) 16)))
(* (* x (cos (/ (* (* (+ (* y 2) 1) z) (neg t)) 16))) (cos (/ (* (* (+ (* a 2) 1) b) (neg t)) 16)))
(* (* x (cos (/ (* (* (+ (* y 2) 1) z) t) 16))) (cos (/ (* (* (+ (* (neg a) 2) 1) b) t) 16)))
(* (* x (cos (/ (* (* (+ (* y 2) 1) z) t) 16))) (cos (/ (* (* (+ (* a 2) 1) (neg b)) t) 16)))
(neg (* (* (neg x) (cos (/ (* (* (+ (* y 2) 1) z) t) 16))) (cos (/ (* (* (+ (* a 2) 1) b) t) 16))))
(neg (* (* x (cos (/ (* (* (+ (* (neg y) 2) 1) z) t) 16))) (cos (/ (* (* (+ (* a 2) 1) b) t) 16))))
(neg (* (* x (cos (/ (* (* (+ (* y 2) 1) (neg z)) t) 16))) (cos (/ (* (* (+ (* a 2) 1) b) t) 16))))
(neg (* (* x (cos (/ (* (* (+ (* y 2) 1) z) (neg t)) 16))) (cos (/ (* (* (+ (* a 2) 1) b) (neg t)) 16))))
(neg (* (* x (cos (/ (* (* (+ (* y 2) 1) z) t) 16))) (cos (/ (* (* (+ (* (neg a) 2) 1) b) t) 16))))
(neg (* (* x (cos (/ (* (* (+ (* y 2) 1) z) t) 16))) (cos (/ (* (* (+ (* a 2) 1) (neg b)) t) 16))))
(* (* y (cos (/ (* (* (+ (* x 2) 1) z) t) 16))) (cos (/ (* (* (+ (* a 2) 1) b) t) 16)))
(* (* z (cos (/ (* (* (+ (* y 2) 1) x) t) 16))) (cos (/ (* (* (+ (* a 2) 1) b) t) 16)))
(* (* t (cos (/ (* (* (+ (* y 2) 1) z) x) 16))) (cos (/ (* (* (+ (* a 2) 1) b) x) 16)))
(* (* a (cos (/ (* (* (+ (* y 2) 1) z) t) 16))) (cos (/ (* (* (+ (* x 2) 1) b) t) 16)))
(* (* b (cos (/ (* (* (+ (* y 2) 1) z) t) 16))) (cos (/ (* (* (+ (* a 2) 1) x) t) 16)))
(* (* x (cos (/ (* (* (+ (* z 2) 1) y) t) 16))) (cos (/ (* (* (+ (* a 2) 1) b) t) 16)))
(* (* x (cos (/ (* (* (+ (* t 2) 1) z) y) 16))) (cos (/ (* (* (+ (* a 2) 1) b) y) 16)))
(* (* x (cos (/ (* (* (+ (* a 2) 1) z) t) 16))) (cos (/ (* (* (+ (* y 2) 1) b) t) 16)))
(* (* x (cos (/ (* (* (+ (* b 2) 1) z) t) 16))) (cos (/ (* (* (+ (* a 2) 1) y) t) 16)))
(* (* x (cos (/ (* (* (+ (* y 2) 1) t) z) 16))) (cos (/ (* (* (+ (* a 2) 1) b) z) 16)))
(* (* x (cos (/ (* (* (+ (* y 2) 1) a) t) 16))) (cos (/ (* (* (+ (* z 2) 1) b) t) 16)))
(* (* x (cos (/ (* (* (+ (* y 2) 1) b) t) 16))) (cos (/ (* (* (+ (* a 2) 1) z) t) 16)))
(* (* x (cos (/ (* (* (+ (* y 2) 1) z) a) 16))) (cos (/ (* (* (+ (* t 2) 1) b) a) 16)))
(* (* x (cos (/ (* (* (+ (* y 2) 1) z) b) 16))) (cos (/ (* (* (+ (* a 2) 1) t) b) 16)))
(* (* x (cos (/ (* (* (+ (* y 2) 1) z) t) 16))) (cos (/ (* (* (+ (* b 2) 1) a) t) 16)))
Outputs
(* (* x (cos (/ (* (* (+ (* y 2) 1) z) t) 16))) (cos (/ (* (* (+ (* a 2) 1) b) t) 16)))
(* (* x (cos (* t (* z (/ (+ (* y 2) 1) 16))))) (cos (* b (* t (/ (+ 1 (* 2 a)) 16)))))
(* (* (neg x) (cos (/ (* (* (+ (* y 2) 1) z) t) 16))) (cos (/ (* (* (+ (* a 2) 1) b) t) 16)))
(* (cos (* t (* z (/ (+ (* y 2) 1) 16)))) (* (cos (* b (* t (/ (+ 1 (* 2 a)) 16)))) (neg x)))
(* (* x (cos (/ (* (* (+ (* (neg y) 2) 1) z) t) 16))) (cos (/ (* (* (+ (* a 2) 1) b) t) 16)))
(* x (* (cos (* b (* t (/ (+ 1 (* 2 a)) 16)))) (cos (* (- 1 (* y 2)) (* z (* t 1/16))))))
(* (* x (cos (/ (* (* (+ (* y 2) 1) (neg z)) t) 16))) (cos (/ (* (* (+ (* a 2) 1) b) t) 16)))
(* (* x (cos (* t (* z (/ (+ (* y 2) 1) 16))))) (cos (* b (* t (/ (+ 1 (* 2 a)) 16)))))
(* (* x (cos (/ (* (* (+ (* y 2) 1) z) (neg t)) 16))) (cos (/ (* (* (+ (* a 2) 1) b) (neg t)) 16)))
(* (* x (cos (* t (* z (/ (+ (* y 2) 1) 16))))) (cos (* b (* t (/ (+ 1 (* 2 a)) 16)))))
(* (* x (cos (/ (* (* (+ (* y 2) 1) z) t) 16))) (cos (/ (* (* (+ (* (neg a) 2) 1) b) t) 16)))
(* x (* (cos (* t (* z (/ (+ (* y 2) 1) 16)))) (cos (* (- 1 (* 2 a)) (* t (* b 1/16))))))
(* (* x (cos (/ (* (* (+ (* y 2) 1) z) t) 16))) (cos (/ (* (* (+ (* a 2) 1) (neg b)) t) 16)))
(* (* x (cos (* t (* z (/ (+ (* y 2) 1) 16))))) (cos (* b (* t (/ (+ 1 (* 2 a)) 16)))))
(neg (* (* (neg x) (cos (/ (* (* (+ (* y 2) 1) z) t) 16))) (cos (/ (* (* (+ (* a 2) 1) b) t) 16))))
(* (* x (cos (* t (* z (/ (+ (* y 2) 1) 16))))) (cos (* b (* t (/ (+ 1 (* 2 a)) 16)))))
(neg (* (* x (cos (/ (* (* (+ (* (neg y) 2) 1) z) t) 16))) (cos (/ (* (* (+ (* a 2) 1) b) t) 16))))
(* (cos (* (- 1 (* y 2)) (* z (* t 1/16)))) (* (cos (* b (* t (/ (+ 1 (* 2 a)) 16)))) (neg x)))
(neg (* (* x (cos (/ (* (* (+ (* y 2) 1) (neg z)) t) 16))) (cos (/ (* (* (+ (* a 2) 1) b) t) 16))))
(* (cos (* t (* z (/ (+ (* y 2) 1) 16)))) (* (cos (* b (* t (/ (+ 1 (* 2 a)) 16)))) (neg x)))
(neg (* (* x (cos (/ (* (* (+ (* y 2) 1) z) (neg t)) 16))) (cos (/ (* (* (+ (* a 2) 1) b) (neg t)) 16))))
(* (cos (* t (* z (/ (+ (* y 2) 1) 16)))) (* (cos (* b (* t (/ (+ 1 (* 2 a)) 16)))) (neg x)))
(neg (* (* x (cos (/ (* (* (+ (* y 2) 1) z) t) 16))) (cos (/ (* (* (+ (* (neg a) 2) 1) b) t) 16))))
(* (* (cos (* t (* z (/ (+ (* y 2) 1) 16)))) (neg x)) (cos (* (- 1 (* 2 a)) (* t (* b 1/16)))))
(neg (* (* x (cos (/ (* (* (+ (* y 2) 1) z) t) 16))) (cos (/ (* (* (+ (* a 2) 1) (neg b)) t) 16))))
(* (cos (* t (* z (/ (+ (* y 2) 1) 16)))) (* (cos (* b (* t (/ (+ 1 (* 2 a)) 16)))) (neg x)))
(* (* y (cos (/ (* (* (+ (* x 2) 1) z) t) 16))) (cos (/ (* (* (+ (* a 2) 1) b) t) 16)))
(* (cos (* (+ 1 (* x 2)) (* z (* t 1/16)))) (* y (cos (* b (* t (/ (+ 1 (* 2 a)) 16))))))
(* (* z (cos (/ (* (* (+ (* y 2) 1) x) t) 16))) (cos (/ (* (* (+ (* a 2) 1) b) t) 16)))
(* (cos (* (+ (* y 2) 1) (* x (* t 1/16)))) (* z (cos (* b (* t (/ (+ 1 (* 2 a)) 16))))))
(* (* t (cos (/ (* (* (+ (* y 2) 1) z) x) 16))) (cos (/ (* (* (+ (* a 2) 1) b) x) 16)))
(* (cos (* x (* z (/ (+ (* y 2) 1) 16)))) (* t (cos (* (+ 1 (* 2 a)) (* x (* b 1/16))))))
(* (* a (cos (/ (* (* (+ (* y 2) 1) z) t) 16))) (cos (/ (* (* (+ (* x 2) 1) b) t) 16)))
(* a (* (cos (* t (* z (/ (+ (* y 2) 1) 16)))) (cos (* t (/ (+ b (* 2 (* x b))) 16)))))
(* (* b (cos (/ (* (* (+ (* y 2) 1) z) t) 16))) (cos (/ (* (* (+ (* a 2) 1) x) t) 16)))
(* (cos (* t (* z (/ (+ (* y 2) 1) 16)))) (* b (cos (* x (* t (/ (+ 1 (* 2 a)) 16))))))
(* (* x (cos (/ (* (* (+ (* z 2) 1) y) t) 16))) (cos (/ (* (* (+ (* a 2) 1) b) t) 16)))
(* (cos (* (+ 1 (* 2 z)) (* y (* t 1/16)))) (* x (cos (* b (* t (/ (+ 1 (* 2 a)) 16))))))
(* (* x (cos (/ (* (* (+ (* t 2) 1) z) y) 16))) (cos (/ (* (* (+ (* a 2) 1) b) y) 16)))
(* (cos (* y (* z (/ (+ 1 (* 2 t)) 16)))) (* x (cos (* (+ 1 (* 2 a)) (* y (* b 1/16))))))
(* (* x (cos (/ (* (* (+ (* a 2) 1) z) t) 16))) (cos (/ (* (* (+ (* y 2) 1) b) t) 16)))
(* (cos (* z (* t (/ (+ 1 (* 2 a)) 16)))) (* x (cos (* t (* b (/ (+ (* y 2) 1) 16))))))
(* (* x (cos (/ (* (* (+ (* b 2) 1) z) t) 16))) (cos (/ (* (* (+ (* a 2) 1) y) t) 16)))
(* (cos (* z (/ (+ t (* 2 (* t b))) 16))) (* x (cos (* t (* y (/ (+ 1 (* 2 a)) 16))))))
(* (* x (cos (/ (* (* (+ (* y 2) 1) t) z) 16))) (cos (/ (* (* (+ (* a 2) 1) b) z) 16)))
(* x (* (cos (* t (* z (/ (+ (* y 2) 1) 16)))) (cos (* (+ 1 (* 2 a)) (* z (* b 1/16))))))
(* (* x (cos (/ (* (* (+ (* y 2) 1) a) t) 16))) (cos (/ (* (* (+ (* z 2) 1) b) t) 16)))
(* x (* (cos (* t (* a (/ (+ (* y 2) 1) 16)))) (cos (* (+ 1 (* 2 z)) (* t (* b 1/16))))))
(* (* x (cos (/ (* (* (+ (* y 2) 1) b) t) 16))) (cos (/ (* (* (+ (* a 2) 1) z) t) 16)))
(* (cos (* z (* t (/ (+ 1 (* 2 a)) 16)))) (* x (cos (* t (* b (/ (+ (* y 2) 1) 16))))))
(* (* x (cos (/ (* (* (+ (* y 2) 1) z) a) 16))) (cos (/ (* (* (+ (* t 2) 1) b) a) 16)))
(* (* x (cos (* z (* a (/ (+ (* y 2) 1) 16))))) (cos (* a (* b (/ (+ 1 (* 2 t)) 16)))))
(* (* x (cos (/ (* (* (+ (* y 2) 1) z) b) 16))) (cos (/ (* (* (+ (* a 2) 1) t) b) 16)))
(* (cos (* (+ (* y 2) 1) (* z (* b 1/16)))) (* x (cos (* b (* t (/ (+ 1 (* 2 a)) 16))))))
(* (* x (cos (/ (* (* (+ (* y 2) 1) z) t) 16))) (cos (/ (* (* (+ (* b 2) 1) a) t) 16)))
(* x (* (cos (* t (* z (/ (+ (* y 2) 1) 16)))) (cos (* t (/ (+ a (* (* 2 a) b)) 16)))))
Symmetry

(abs z)

(abs t)

(abs b)

(negabs x)

explain0.0ms (0%)

Memory
0.9MiB live, 0.9MiB allocated
Compiler

Compiled 146 to 25 computations (82.9% saved)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

Profiling

Loading profile data...