Data.HashTable.ST.Basic:computeOverhead from hashtables-1.2.0.2

Time bar (total: 1.7s)

start0.0ms (0%)

Memory
0.1MiB live, 0.1MiB allocated

analyze217.0ms (12.5%)

Memory
18.5MiB live, 254.0MiB allocated
Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%99.8%0.2%0%0%0%0
0%0%99.8%0.2%0%0%0%1
0%0%99.8%0.2%0%0%0%2
0%0%99.8%0.2%0%0%0%3
0%0%99.8%0.2%0%0%0%4
12.5%12.5%87.3%0.2%0%0%0%5
12.5%12.5%87.3%0.2%0%0%0%6
18.8%18.7%81.1%0.2%0%0%0%7
28.1%28.1%71.7%0.2%0%0%0%8
42.2%42.1%57.7%0.2%0%0%0%9
42.2%42.1%57.7%0.2%0%0%0%10
49.2%49.1%50.7%0.2%0%0%0%11
57.4%57.3%42.5%0.2%0%0%0%12
Compiler

Compiled 19 to 16 computations (15.8% saved)

sample1.1s (60.7%)

Memory
27.1MiB live, 1 691.0MiB allocated
Samples
698.0ms8 256×0valid
Precisions
Click to see histograms. Total time spent on operations: 454.0ms
ival-mult: 165.0ms (36.3% of total)
ival-div: 134.0ms (29.5% of total)
ival-add: 86.0ms (18.9% of total)
ival-sub: 48.0ms (10.6% of total)
exact: 9.0ms (2% of total)
ival-true: 7.0ms (1.5% of total)
ival-assert: 4.0ms (0.9% of total)
Bogosity

explain159.0ms (9.1%)

Memory
-29.8MiB live, 289.4MiB allocated
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
430-0-(/.f64 (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))) (*.f64 t z))
20-0-(+.f64 (/.f64 x y) (/.f64 (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))) (*.f64 t z)))
00-0-(/.f64 x y)
00-0-t
00-0-#s(literal 1 binary64)
00-0-z
00-0-(*.f64 t z)
00-0-(*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))
00-0-y
00-0-#s(literal 2 binary64)
00-0-(*.f64 z #s(literal 2 binary64))
00-0-(-.f64 #s(literal 1 binary64) t)
00-0-(+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t)))
00-0-x
Explanations
Click to see full explanations table
OperatorSubexpressionExplanationCount
/.f64(/.f64 (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))) (*.f64 t z))o/o310
(*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))overflow43
(+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t)))overflow43
(*.f64 t z)overflow42
+.f64(+.f64 (/.f64 x y) (/.f64 (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))) (*.f64 t z)))nan-rescue20
(/.f64 x y)overflow40
(*.f64 t z)overflow42
(*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))overflow43
(/.f64 (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))) (*.f64 t z))overflow31
(+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t)))overflow43
/.f64(/.f64 (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))) (*.f64 t z))o/n10
(*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))overflow43
(+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t)))overflow43
Confusion
Predicted +Predicted -
+3311
-1211
Precision
0.9705882352941176
Recall
0.75
Confusion?
Predicted +Predicted MaybePredicted -
+33011
-10211
Precision?
0.9705882352941176
Recall?
0.75
Freqs
test
numberfreq
0222
134
Total Confusion?
Predicted +Predicted MaybePredicted -
+100
-000
Precision?
1.0
Recall?
1.0
Samples
55.0ms512×0valid
Compiler

Compiled 213 to 60 computations (71.8% saved)

Precisions
Click to see histograms. Total time spent on operations: 35.0ms
ival-mult: 13.0ms (37.5% of total)
ival-add: 11.0ms (31.7% of total)
ival-div: 7.0ms (20.2% of total)
ival-sub: 3.0ms (8.7% of total)
ival-true: 1.0ms (2.9% of total)
exact: 1.0ms (2.9% of total)
ival-assert: 0.0ms (0% of total)

preprocess4.0ms (0.2%)

Memory
10.2MiB live, 10.2MiB allocated
Algorithm
egg-herbie
Calls
Call 1
Inputs
(+.f64 (/.f64 x y) (/.f64 (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))) (*.f64 t z)))
Outputs
(+.f64 (/.f64 x y) (/.f64 (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))) (*.f64 t z)))
Compiler

Compiled 17 to 14 computations (17.6% saved)

eval0.0ms (0%)

Memory
0.2MiB live, 0.2MiB allocated
Compiler

Compiled 0 to 4 computations (-∞% saved)

prune0.0ms (0%)

Memory
1.1MiB live, 1.1MiB allocated
Alt Table
Click to see full alt table
StatusAccuracyProgram
82.7%
(+.f64 (/.f64 x y) (/.f64 (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))) (*.f64 t z)))
Compiler

Compiled 17 to 14 computations (17.6% saved)

simplify1.0ms (0%)

Memory
1.2MiB live, 1.2MiB allocated
Algorithm
egg-herbie
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
cost-diff0
(+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t)))
cost-diff0
(/.f64 (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))) (*.f64 t z))
cost-diff0
(/.f64 x y)
cost-diff0
(+.f64 (/.f64 x y) (/.f64 (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))) (*.f64 t z)))
Calls
Call 1
Inputs
(+.f64 (/.f64 x y) (/.f64 (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))) (*.f64 t z)))
(/.f64 x y)
x
y
(/.f64 (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))) (*.f64 t z))
(+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t)))
#s(literal 2 binary64)
(*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))
(*.f64 z #s(literal 2 binary64))
z
(-.f64 #s(literal 1 binary64) t)
#s(literal 1 binary64)
t
(*.f64 t z)
Outputs
(+.f64 (/.f64 x y) (/.f64 (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))) (*.f64 t z)))
(/.f64 x y)
x
y
(/.f64 (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))) (*.f64 t z))
(+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t)))
#s(literal 2 binary64)
(*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))
(*.f64 z #s(literal 2 binary64))
z
(-.f64 #s(literal 1 binary64) t)
#s(literal 1 binary64)
t
(*.f64 t z)

localize35.0ms (2%)

Memory
13.7MiB live, 56.5MiB allocated
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
accuracy0.00390625
(+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t)))
accuracy0.0078125
(*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))
accuracy0.45702918583020585
(+.f64 (/.f64 x y) (/.f64 (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))) (*.f64 t z)))
accuracy10.820867636659962
(/.f64 (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))) (*.f64 t z))
Samples
23.0ms256×0valid
Compiler

Compiled 130 to 30 computations (76.9% saved)

Precisions
Click to see histograms. Total time spent on operations: 12.0ms
ival-mult: 5.0ms (40% of total)
ival-div: 4.0ms (32% of total)
ival-add: 2.0ms (16% of total)
ival-sub: 1.0ms (8% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series19.0ms (1.1%)

Memory
-4.4MiB live, 33.5MiB allocated
Counts
5 → 34
Calls
Call 1
Inputs
(+.f64 (/.f64 x y) (/.f64 (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))) (*.f64 t z)))
(/.f64 x y)
(/.f64 (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))) (*.f64 t z))
(+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t)))
(*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))
Outputs
(+ (* 2 (/ (- 1 t) t)) (* 2 (/ 1 (* t z))))
(+ (* 2 (/ 1 (* t z))) (+ (* 2 (/ (- 1 t) t)) (/ x y)))
(/ x y)
(* x (+ (* 2 (/ (- 1 t) (* t x))) (+ (/ 1 y) (/ 2 (* t (* x z))))))
(* -1 (* x (- (* -1 (/ (+ (* 2 (/ (- 1 t) t)) (* 2 (/ 1 (* t z)))) x)) (/ 1 y))))
(/ (+ x (* y (+ (* 2 (/ (- 1 t) t)) (* 2 (/ 1 (* t z)))))) y)
(/ 2 (* t z))
(/ (+ (* z (+ (* 2 (/ (- 1 t) t)) (/ x y))) (* 2 (/ 1 t))) z)
(/ (+ (* 2 (/ (* z (- 1 t)) t)) (* 2 (/ 1 t))) z)
2
(+ 2 (* 2 (* z (- 1 t))))
(* 2 (* z (- 1 t)))
(+ (* 2 (/ (- 1 t) t)) (/ x y))
(+ (* 2 (/ (- 1 t) t)) (+ (* 2 (/ 1 (* t z))) (/ x y)))
(* 2 (/ (- 1 t) t))
(* z (+ (* 2 (- 1 t)) (* 2 (/ 1 z))))
(* -1 (* z (- (* -2 (- 1 t)) (* 2 (/ 1 z)))))
(/ (+ 2 (* 2 (/ 1 z))) t)
(/ (+ 2 (+ (* 2 (/ 1 z)) (* t (- (/ x y) 2)))) t)
(/ (+ 2 (* 2 z)) (* t z))
(/ (+ 2 (+ (* -2 t) (* 2 (/ 1 z)))) t)
(+ 2 (* 2 z))
(+ 2 (+ (* -2 (* t z)) (* 2 z)))
(* 2 z)
(+ (* -2 (* t z)) (* 2 z))
(- (/ x y) 2)
(- (+ (* 2 (/ 1 t)) (+ (/ 2 (* t z)) (/ x y))) 2)
-2
(- (+ (* 2 (/ 1 t)) (/ 2 (* t z))) 2)
(* -2 (* t z))
(* t (+ (* -2 z) (+ (* 2 (/ z t)) (* 2 (/ 1 t)))))
(* t (+ (* -2 z) (* 2 (/ z t))))
(* -1 (* t (+ (* -1 (/ (+ 2 (* 2 z)) t)) (* 2 z))))
(* -1 (* t (+ (* -2 (/ z t)) (* 2 z))))
Calls

12 calls:

TimeVariablePointExpression
4.0ms
y
@inf
((+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z)) (+ 2 (* (* z 2) (- 1 t))) (* (* z 2) (- 1 t)))
3.0ms
t
@0
((+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z)) (+ 2 (* (* z 2) (- 1 t))) (* (* z 2) (- 1 t)))
2.0ms
z
@0
((+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z)) (+ 2 (* (* z 2) (- 1 t))) (* (* z 2) (- 1 t)))
1.0ms
x
@0
((+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z)) (+ 2 (* (* z 2) (- 1 t))) (* (* z 2) (- 1 t)))
1.0ms
x
@inf
((+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z)) (+ 2 (* (* z 2) (- 1 t))) (* (* z 2) (- 1 t)))

simplify1.0ms (0%)

Memory
1.1MiB live, 1.1MiB allocated
Algorithm
egg-herbie
Counts
34 → 5
Calls
Call 1
Inputs
(+ (* 2 (/ (- 1 t) t)) (* 2 (/ 1 (* t z))))
(+ (* 2 (/ 1 (* t z))) (+ (* 2 (/ (- 1 t) t)) (/ x y)))
(/ x y)
(* x (+ (* 2 (/ (- 1 t) (* t x))) (+ (/ 1 y) (/ 2 (* t (* x z))))))
(* -1 (* x (- (* -1 (/ (+ (* 2 (/ (- 1 t) t)) (* 2 (/ 1 (* t z)))) x)) (/ 1 y))))
(/ (+ x (* y (+ (* 2 (/ (- 1 t) t)) (* 2 (/ 1 (* t z)))))) y)
(/ 2 (* t z))
(/ (+ (* z (+ (* 2 (/ (- 1 t) t)) (/ x y))) (* 2 (/ 1 t))) z)
(/ (+ (* 2 (/ (* z (- 1 t)) t)) (* 2 (/ 1 t))) z)
2
(+ 2 (* 2 (* z (- 1 t))))
(* 2 (* z (- 1 t)))
(+ (* 2 (/ (- 1 t) t)) (/ x y))
(+ (* 2 (/ (- 1 t) t)) (+ (* 2 (/ 1 (* t z))) (/ x y)))
(* 2 (/ (- 1 t) t))
(* z (+ (* 2 (- 1 t)) (* 2 (/ 1 z))))
(* -1 (* z (- (* -2 (- 1 t)) (* 2 (/ 1 z)))))
(/ (+ 2 (* 2 (/ 1 z))) t)
(/ (+ 2 (+ (* 2 (/ 1 z)) (* t (- (/ x y) 2)))) t)
(/ (+ 2 (* 2 z)) (* t z))
(/ (+ 2 (+ (* -2 t) (* 2 (/ 1 z)))) t)
(+ 2 (* 2 z))
(+ 2 (+ (* -2 (* t z)) (* 2 z)))
(* 2 z)
(+ (* -2 (* t z)) (* 2 z))
(- (/ x y) 2)
(- (+ (* 2 (/ 1 t)) (+ (/ 2 (* t z)) (/ x y))) 2)
-2
(- (+ (* 2 (/ 1 t)) (/ 2 (* t z))) 2)
(* -2 (* t z))
(* t (+ (* -2 z) (+ (* 2 (/ z t)) (* 2 (/ 1 t)))))
(* t (+ (* -2 z) (* 2 (/ z t))))
(* -1 (* t (+ (* -1 (/ (+ 2 (* 2 z)) t)) (* 2 z))))
(* -1 (* t (+ (* -2 (/ z t)) (* 2 z))))
Outputs
(+ (* 2 (/ (- 1 t) t)) (* 2 (/ 1 (* t z))))
(+.f64 (/.f64 x y) (/.f64 (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))) (*.f64 t z)))
(+ (* 2 (/ 1 (* t z))) (+ (* 2 (/ (- 1 t) t)) (/ x y)))
(/.f64 x y)
(/ x y)
(/.f64 (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))) (*.f64 t z))
(* x (+ (* 2 (/ (- 1 t) (* t x))) (+ (/ 1 y) (/ 2 (* t (* x z))))))
(+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t)))
(* -1 (* x (- (* -1 (/ (+ (* 2 (/ (- 1 t) t)) (* 2 (/ 1 (* t z)))) x)) (/ 1 y))))
(*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))

rewrite0.0ms (0%)

Memory
0.8MiB live, 0.8MiB allocated
Counts
5 → 5
Calls
Call 1
Inputs
(+.f64 (/.f64 x y) (/.f64 (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))) (*.f64 t z)))
(/.f64 x y)
(/.f64 (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))) (*.f64 t z))
(+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t)))
(*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))
Outputs
(+.f64 (/.f64 x y) (/.f64 (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))) (*.f64 t z)))
(/.f64 x y)
(/.f64 (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))) (*.f64 t z))
(+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t)))
(*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))

eval1.0ms (0.1%)

Memory
2.1MiB live, 2.1MiB allocated
Compiler

Compiled 224 to 30 computations (86.6% saved)

prune2.0ms (0.1%)

Memory
4.2MiB live, 4.2MiB allocated
Pruning

5 alts after pruning (4 fresh and 1 done)

PrunedKeptTotal
New6410
Fresh000
Picked011
Done000
Total6511
Accuracy
90.3%
Counts
11 → 5
Alt Table
Click to see full alt table
StatusAccuracyProgram
82.7%
(+.f64 (/.f64 x y) (/.f64 (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))) (*.f64 t z)))
21.4%
(+.f64 #s(approx (/ x y) (/.f64 (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))) (*.f64 t z))) (/.f64 (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))) (*.f64 t z)))
35.8%
#s(approx (+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) (/.f64 x y))
3.9%
#s(approx (+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))))
3.7%
#s(approx (+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t)))
Compiler

Compiled 121 to 86 computations (28.9% saved)

simplify1.0ms (0.1%)

Memory
2.8MiB live, 2.8MiB allocated
Algorithm
egg-herbie
Localize:

Found 14 expressions of interest:

NewMetricScoreProgram
cost-diff0
(+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t)))
cost-diff0
(/.f64 (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))) (*.f64 t z))
cost-diff0
#s(approx (/ x y) (/.f64 (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))) (*.f64 t z)))
cost-diff0
(+.f64 #s(approx (/ x y) (/.f64 (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))) (*.f64 t z))) (/.f64 (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))) (*.f64 t z)))
cost-diff0
(/.f64 x y)
cost-diff0
#s(approx (+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) (/.f64 x y))
cost-diff0
(*.f64 z #s(literal 2 binary64))
cost-diff0
(*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))
cost-diff0
(+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t)))
cost-diff0
#s(approx (+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))))
cost-diff0
(-.f64 #s(literal 1 binary64) t)
cost-diff0
(*.f64 z #s(literal 2 binary64))
cost-diff0
(*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))
cost-diff0
#s(approx (+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t)))
Calls
Call 1
Inputs
#s(approx (+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t)))
(*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))
(*.f64 z #s(literal 2 binary64))
z
#s(literal 2 binary64)
(-.f64 #s(literal 1 binary64) t)
#s(literal 1 binary64)
t
#s(approx (+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))))
(+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t)))
#s(literal 2 binary64)
(*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))
(*.f64 z #s(literal 2 binary64))
z
(-.f64 #s(literal 1 binary64) t)
#s(literal 1 binary64)
t
#s(approx (+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) (/.f64 x y))
(/.f64 x y)
x
y
(+.f64 #s(approx (/ x y) (/.f64 (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))) (*.f64 t z))) (/.f64 (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))) (*.f64 t z)))
#s(approx (/ x y) (/.f64 (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))) (*.f64 t z)))
(/.f64 (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))) (*.f64 t z))
(+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t)))
#s(literal 2 binary64)
(*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))
(*.f64 z #s(literal 2 binary64))
z
(-.f64 #s(literal 1 binary64) t)
#s(literal 1 binary64)
t
(*.f64 t z)
Outputs
#s(approx (+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t)))
(*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))
(*.f64 z #s(literal 2 binary64))
z
#s(literal 2 binary64)
(-.f64 #s(literal 1 binary64) t)
#s(literal 1 binary64)
t
#s(approx (+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))))
(+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t)))
#s(literal 2 binary64)
(*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))
(*.f64 z #s(literal 2 binary64))
z
(-.f64 #s(literal 1 binary64) t)
#s(literal 1 binary64)
t
#s(approx (+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) (/.f64 x y))
(/.f64 x y)
x
y
(+.f64 #s(approx (/ x y) (/.f64 (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))) (*.f64 t z))) (/.f64 (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))) (*.f64 t z)))
#s(approx (/ x y) (/.f64 (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))) (*.f64 t z)))
(/.f64 (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))) (*.f64 t z))
(+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t)))
#s(literal 2 binary64)
(*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))
(*.f64 z #s(literal 2 binary64))
z
(-.f64 #s(literal 1 binary64) t)
#s(literal 1 binary64)
t
(*.f64 t z)

localize48.0ms (2.8%)

Memory
-38.5MiB live, 90.3MiB allocated
Localize:

Found 14 expressions of interest:

NewMetricScoreProgram
accuracy0.0078125
(*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))
accuracy0.45702918583020585
(+.f64 #s(approx (/ x y) (/.f64 (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))) (*.f64 t z))) (/.f64 (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))) (*.f64 t z)))
accuracy10.820867636659962
(/.f64 (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))) (*.f64 t z))
accuracy61.76334255905057
#s(approx (/ x y) (/.f64 (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))) (*.f64 t z)))
accuracy0.0
(/.f64 x y)
accuracy41.09831059094062
#s(approx (+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) (/.f64 x y))
accuracy0.0
(*.f64 z #s(literal 2 binary64))
accuracy0.00390625
(+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t)))
accuracy0.0078125
(*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))
accuracy61.49548420042761
#s(approx (+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))))
accuracy0.0
(-.f64 #s(literal 1 binary64) t)
accuracy0.0
(*.f64 z #s(literal 2 binary64))
accuracy0.0078125
(*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))
accuracy61.63055951715832
#s(approx (+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t)))
Samples
31.0ms256×0valid
Compiler

Compiled 374 to 44 computations (88.2% saved)

Precisions
Click to see histograms. Total time spent on operations: 15.0ms
ival-div: 6.0ms (40% of total)
ival-mult: 5.0ms (33.3% of total)
ival-add: 2.0ms (13.3% of total)
ival-sub: 1.0ms (6.7% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series11.0ms (0.6%)

Memory
22.0MiB live, 22.0MiB allocated
Counts
11 → 39
Calls
Call 1
Inputs
#s(approx (+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t)))
(*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))
(*.f64 z #s(literal 2 binary64))
(-.f64 #s(literal 1 binary64) t)
#s(approx (+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))))
(+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t)))
#s(approx (+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) (/.f64 x y))
(/.f64 x y)
(+.f64 #s(approx (/ x y) (/.f64 (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))) (*.f64 t z))) (/.f64 (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))) (*.f64 t z)))
#s(approx (/ x y) (/.f64 (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))) (*.f64 t z)))
(/.f64 (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))) (*.f64 t z))
Outputs
(+ (* 2 (/ (- 1 t) t)) (* 2 (/ 1 (* t z))))
(+ (* 2 (/ 1 (* t z))) (+ (* 2 (/ (- 1 t) t)) (/ x y)))
(/ x y)
(* x (+ (* 2 (/ (- 1 t) (* t x))) (+ (/ 1 y) (/ 2 (* t (* x z))))))
(* -1 (* x (- (* -1 (/ (+ (* 2 (/ (- 1 t) t)) (* 2 (/ 1 (* t z)))) x)) (/ 1 y))))
(/ (+ x (* y (+ (* 2 (/ (- 1 t) t)) (* 2 (/ 1 (* t z)))))) y)
(/ 2 (* t z))
(/ (+ (* z (+ (* 2 (/ (- 1 t) t)) (/ x y))) (* 2 (/ 1 t))) z)
(* 2 (* z (- 1 t)))
(* 2 z)
2
(+ 2 (* 2 (* z (- 1 t))))
(/ (+ (* 2 (/ (* z (- 1 t)) t)) (* 2 (/ 1 t))) z)
(+ (* 2 (/ (- 1 t) t)) (/ x y))
(+ (* 2 (/ (- 1 t) t)) (+ (* 2 (/ 1 (* t z))) (/ x y)))
(* z (+ (* 2 (- 1 t)) (* 2 (/ 1 z))))
(* 2 (/ (- 1 t) t))
(* -1 (* z (- (* -2 (- 1 t)) (* 2 (/ 1 z)))))
(/ (+ 2 (* 2 (/ 1 z))) t)
(/ (+ 2 (+ (* 2 (/ 1 z)) (* t (- (/ x y) 2)))) t)
(+ (* -2 (* t z)) (* 2 z))
1
(+ 1 (* -1 t))
(+ 2 (* 2 z))
(+ 2 (+ (* -2 (* t z)) (* 2 z)))
(/ (+ 2 (* 2 z)) (* t z))
(/ (+ 2 (+ (* -2 t) (* 2 (/ 1 z)))) t)
(- (/ x y) 2)
(- (+ (* 2 (/ 1 t)) (+ (/ 2 (* t z)) (/ x y))) 2)
(* -2 (* t z))
(* t (+ (* -2 z) (* 2 (/ z t))))
(* -1 t)
(* t (- (/ 1 t) 1))
(* t (+ (* -2 z) (+ (* 2 (/ z t)) (* 2 (/ 1 t)))))
-2
(- (+ (* 2 (/ 1 t)) (/ 2 (* t z))) 2)
(* -1 (* t (+ (* -2 (/ z t)) (* 2 z))))
(* -1 (* t (- 1 (/ 1 t))))
(* -1 (* t (+ (* -1 (/ (+ 2 (* 2 z)) t)) (* 2 z))))
Calls

12 calls:

TimeVariablePointExpression
1.0ms
z
@0
((+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) (* (* z 2) (- 1 t)) (* z 2) (- 1 t) (+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) (+ 2 (* (* z 2) (- 1 t))) (+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) (/ x y) (+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z)))
1.0ms
z
@-inf
((+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) (* (* z 2) (- 1 t)) (* z 2) (- 1 t) (+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) (+ 2 (* (* z 2) (- 1 t))) (+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) (/ x y) (+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z)))
1.0ms
z
@inf
((+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) (* (* z 2) (- 1 t)) (* z 2) (- 1 t) (+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) (+ 2 (* (* z 2) (- 1 t))) (+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) (/ x y) (+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z)))
1.0ms
x
@-inf
((+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) (* (* z 2) (- 1 t)) (* z 2) (- 1 t) (+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) (+ 2 (* (* z 2) (- 1 t))) (+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) (/ x y) (+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z)))
1.0ms
t
@0
((+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) (* (* z 2) (- 1 t)) (* z 2) (- 1 t) (+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) (+ 2 (* (* z 2) (- 1 t))) (+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) (/ x y) (+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z)))

simplify1.0ms (0%)

Memory
1.4MiB live, 1.4MiB allocated
Algorithm
egg-herbie
Counts
39 → 11
Calls
Call 1
Inputs
(+ (* 2 (/ (- 1 t) t)) (* 2 (/ 1 (* t z))))
(+ (* 2 (/ 1 (* t z))) (+ (* 2 (/ (- 1 t) t)) (/ x y)))
(/ x y)
(* x (+ (* 2 (/ (- 1 t) (* t x))) (+ (/ 1 y) (/ 2 (* t (* x z))))))
(* -1 (* x (- (* -1 (/ (+ (* 2 (/ (- 1 t) t)) (* 2 (/ 1 (* t z)))) x)) (/ 1 y))))
(/ (+ x (* y (+ (* 2 (/ (- 1 t) t)) (* 2 (/ 1 (* t z)))))) y)
(/ 2 (* t z))
(/ (+ (* z (+ (* 2 (/ (- 1 t) t)) (/ x y))) (* 2 (/ 1 t))) z)
(* 2 (* z (- 1 t)))
(* 2 z)
2
(+ 2 (* 2 (* z (- 1 t))))
(/ (+ (* 2 (/ (* z (- 1 t)) t)) (* 2 (/ 1 t))) z)
(+ (* 2 (/ (- 1 t) t)) (/ x y))
(+ (* 2 (/ (- 1 t) t)) (+ (* 2 (/ 1 (* t z))) (/ x y)))
(* z (+ (* 2 (- 1 t)) (* 2 (/ 1 z))))
(* 2 (/ (- 1 t) t))
(* -1 (* z (- (* -2 (- 1 t)) (* 2 (/ 1 z)))))
(/ (+ 2 (* 2 (/ 1 z))) t)
(/ (+ 2 (+ (* 2 (/ 1 z)) (* t (- (/ x y) 2)))) t)
(+ (* -2 (* t z)) (* 2 z))
1
(+ 1 (* -1 t))
(+ 2 (* 2 z))
(+ 2 (+ (* -2 (* t z)) (* 2 z)))
(/ (+ 2 (* 2 z)) (* t z))
(/ (+ 2 (+ (* -2 t) (* 2 (/ 1 z)))) t)
(- (/ x y) 2)
(- (+ (* 2 (/ 1 t)) (+ (/ 2 (* t z)) (/ x y))) 2)
(* -2 (* t z))
(* t (+ (* -2 z) (* 2 (/ z t))))
(* -1 t)
(* t (- (/ 1 t) 1))
(* t (+ (* -2 z) (+ (* 2 (/ z t)) (* 2 (/ 1 t)))))
-2
(- (+ (* 2 (/ 1 t)) (/ 2 (* t z))) 2)
(* -1 (* t (+ (* -2 (/ z t)) (* 2 z))))
(* -1 (* t (- 1 (/ 1 t))))
(* -1 (* t (+ (* -1 (/ (+ 2 (* 2 z)) t)) (* 2 z))))
Outputs
(+ (* 2 (/ (- 1 t) t)) (* 2 (/ 1 (* t z))))
#s(approx (+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t)))
(+ (* 2 (/ 1 (* t z))) (+ (* 2 (/ (- 1 t) t)) (/ x y)))
(*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))
(/ x y)
(*.f64 z #s(literal 2 binary64))
(* x (+ (* 2 (/ (- 1 t) (* t x))) (+ (/ 1 y) (/ 2 (* t (* x z))))))
(-.f64 #s(literal 1 binary64) t)
(* -1 (* x (- (* -1 (/ (+ (* 2 (/ (- 1 t) t)) (* 2 (/ 1 (* t z)))) x)) (/ 1 y))))
#s(approx (+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))))
(/ (+ x (* y (+ (* 2 (/ (- 1 t) t)) (* 2 (/ 1 (* t z)))))) y)
(+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t)))
(/ 2 (* t z))
#s(approx (+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) (/.f64 x y))
(/ (+ (* z (+ (* 2 (/ (- 1 t) t)) (/ x y))) (* 2 (/ 1 t))) z)
(/.f64 x y)
(* 2 (* z (- 1 t)))
(+.f64 #s(approx (/ x y) (/.f64 (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))) (*.f64 t z))) (/.f64 (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))) (*.f64 t z)))
(* 2 z)
#s(approx (/ x y) (/.f64 (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))) (*.f64 t z)))
2
(/.f64 (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))) (*.f64 t z))

rewrite1.0ms (0%)

Memory
1.8MiB live, 1.8MiB allocated
Counts
11 → 11
Calls
Call 1
Inputs
#s(approx (+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t)))
(*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))
(*.f64 z #s(literal 2 binary64))
(-.f64 #s(literal 1 binary64) t)
#s(approx (+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))))
(+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t)))
#s(approx (+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) (/.f64 x y))
(/.f64 x y)
(+.f64 #s(approx (/ x y) (/.f64 (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))) (*.f64 t z))) (/.f64 (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))) (*.f64 t z)))
#s(approx (/ x y) (/.f64 (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))) (*.f64 t z)))
(/.f64 (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))) (*.f64 t z))
Outputs
#s(approx (+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t)))
(*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))
(*.f64 z #s(literal 2 binary64))
(-.f64 #s(literal 1 binary64) t)
#s(approx (+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))))
(+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t)))
#s(approx (+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) (/.f64 x y))
(/.f64 x y)
(+.f64 #s(approx (/ x y) (/.f64 (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))) (*.f64 t z))) (/.f64 (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))) (*.f64 t z)))
#s(approx (/ x y) (/.f64 (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))) (*.f64 t z)))
(/.f64 (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))) (*.f64 t z))

eval7.0ms (0.4%)

Memory
-26.3MiB live, 11.7MiB allocated
Compiler

Compiled 1 381 to 57 computations (95.9% saved)

prune4.0ms (0.2%)

Memory
6.7MiB live, 6.7MiB allocated
Pruning

7 alts after pruning (3 fresh and 4 done)

PrunedKeptTotal
New36339
Fresh000
Picked134
Done011
Total37744
Accuracy
90.4%
Counts
44 → 7
Alt Table
Click to see full alt table
StatusAccuracyProgram
82.7%
(+.f64 (/.f64 x y) (/.f64 (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))) (*.f64 t z)))
35.8%
#s(approx (+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) (/.f64 x y))
2.8%
#s(approx (+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) (-.f64 #s(literal 1 binary64) t))
3.9%
#s(approx (+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))))
3.7%
#s(approx (+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t)))
2.7%
#s(approx (+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) #s(approx (/ x y) (*.f64 z #s(literal 2 binary64))))
56.4%
#s(approx (+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) #s(approx (+ 2 (* (* z 2) (- 1 t))) (/.f64 (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))) (*.f64 t z))))
Compiler

Compiled 177 to 130 computations (26.6% saved)

simplify1.0ms (0%)

Memory
1.3MiB live, 1.3MiB allocated
Algorithm
egg-herbie
Localize:

Found 9 expressions of interest:

NewMetricScoreProgram
cost-diff0
(-.f64 #s(literal 1 binary64) t)
cost-diff0
#s(approx (+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) (-.f64 #s(literal 1 binary64) t))
cost-diff0
(*.f64 z #s(literal 2 binary64))
cost-diff0
#s(approx (/ x y) (*.f64 z #s(literal 2 binary64)))
cost-diff0
#s(approx (+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) #s(approx (/ x y) (*.f64 z #s(literal 2 binary64))))
cost-diff0
(+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t)))
cost-diff0
(/.f64 (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))) (*.f64 t z))
cost-diff0
#s(approx (+ 2 (* (* z 2) (- 1 t))) (/.f64 (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))) (*.f64 t z)))
cost-diff0
#s(approx (+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) #s(approx (+ 2 (* (* z 2) (- 1 t))) (/.f64 (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))) (*.f64 t z))))
Calls
Call 1
Inputs
#s(approx (+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) #s(approx (+ 2 (* (* z 2) (- 1 t))) (/.f64 (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))) (*.f64 t z))))
#s(approx (+ 2 (* (* z 2) (- 1 t))) (/.f64 (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))) (*.f64 t z)))
(/.f64 (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))) (*.f64 t z))
(+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t)))
#s(literal 2 binary64)
(*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))
(*.f64 z #s(literal 2 binary64))
z
(-.f64 #s(literal 1 binary64) t)
#s(literal 1 binary64)
t
(*.f64 t z)
#s(approx (+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) #s(approx (/ x y) (*.f64 z #s(literal 2 binary64))))
#s(approx (/ x y) (*.f64 z #s(literal 2 binary64)))
(*.f64 z #s(literal 2 binary64))
z
#s(literal 2 binary64)
#s(approx (+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) (-.f64 #s(literal 1 binary64) t))
(-.f64 #s(literal 1 binary64) t)
#s(literal 1 binary64)
t
Outputs
#s(approx (+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) #s(approx (+ 2 (* (* z 2) (- 1 t))) (/.f64 (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))) (*.f64 t z))))
#s(approx (+ 2 (* (* z 2) (- 1 t))) (/.f64 (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))) (*.f64 t z)))
(/.f64 (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))) (*.f64 t z))
(+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t)))
#s(literal 2 binary64)
(*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))
(*.f64 z #s(literal 2 binary64))
z
(-.f64 #s(literal 1 binary64) t)
#s(literal 1 binary64)
t
(*.f64 t z)
#s(approx (+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) #s(approx (/ x y) (*.f64 z #s(literal 2 binary64))))
#s(approx (/ x y) (*.f64 z #s(literal 2 binary64)))
(*.f64 z #s(literal 2 binary64))
z
#s(literal 2 binary64)
#s(approx (+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) (-.f64 #s(literal 1 binary64) t))
(-.f64 #s(literal 1 binary64) t)
#s(literal 1 binary64)
t

localize38.0ms (2.2%)

Memory
13.8MiB live, 50.4MiB allocated
Localize:

Found 9 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(-.f64 #s(literal 1 binary64) t)
accuracy62.207816262266896
#s(approx (+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) (-.f64 #s(literal 1 binary64) t))
accuracy0.0
(*.f64 z #s(literal 2 binary64))
accuracy41.09831059094062
#s(approx (+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) #s(approx (/ x y) (*.f64 z #s(literal 2 binary64))))
accuracy61.77478963101047
#s(approx (/ x y) (*.f64 z #s(literal 2 binary64)))
accuracy0.0078125
(*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))
accuracy10.820867636659962
(/.f64 (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))) (*.f64 t z))
accuracy61.49548420042761
#s(approx (+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) #s(approx (+ 2 (* (* z 2) (- 1 t))) (/.f64 (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))) (*.f64 t z))))
accuracy62.11662091945102
#s(approx (+ 2 (* (* z 2) (- 1 t))) (/.f64 (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))) (*.f64 t z)))
Samples
28.0ms256×0valid
Compiler

Compiled 286 to 43 computations (85% saved)

Precisions
Click to see histograms. Total time spent on operations: 13.0ms
ival-mult: 5.0ms (39.3% of total)
ival-div: 4.0ms (31.4% of total)
ival-add: 2.0ms (15.7% of total)
ival-sub: 1.0ms (7.9% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series10.0ms (0.6%)

Memory
16.6MiB live, 16.6MiB allocated
Counts
10 → 39
Calls
Call 1
Inputs
#s(approx (+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) #s(approx (+ 2 (* (* z 2) (- 1 t))) (/.f64 (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))) (*.f64 t z))))
#s(approx (+ 2 (* (* z 2) (- 1 t))) (/.f64 (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))) (*.f64 t z)))
(/.f64 (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))) (*.f64 t z))
(+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t)))
#s(approx (+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) #s(approx (/ x y) (*.f64 z #s(literal 2 binary64))))
#s(approx (/ x y) (*.f64 z #s(literal 2 binary64)))
(*.f64 z #s(literal 2 binary64))
#s(approx (+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) (-.f64 #s(literal 1 binary64) t))
(-.f64 #s(literal 1 binary64) t)
(*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))
Outputs
(+ (* 2 (/ (- 1 t) t)) (* 2 (/ 1 (* t z))))
(+ (* 2 (/ 1 (* t z))) (+ (* 2 (/ (- 1 t) t)) (/ x y)))
(/ x y)
(* x (+ (* 2 (/ (- 1 t) (* t x))) (+ (/ 1 y) (/ 2 (* t (* x z))))))
(* -1 (* x (- (* -1 (/ (+ (* 2 (/ (- 1 t) t)) (* 2 (/ 1 (* t z)))) x)) (/ 1 y))))
(/ (+ x (* y (+ (* 2 (/ (- 1 t) t)) (* 2 (/ 1 (* t z)))))) y)
(/ 2 (* t z))
(/ (+ (* z (+ (* 2 (/ (- 1 t) t)) (/ x y))) (* 2 (/ 1 t))) z)
2
(+ 2 (* 2 (* z (- 1 t))))
(/ (+ (* 2 (/ (* z (- 1 t)) t)) (* 2 (/ 1 t))) z)
(* 2 z)
(* 2 (* z (- 1 t)))
(+ (* 2 (/ (- 1 t) t)) (/ x y))
(+ (* 2 (/ (- 1 t) t)) (+ (* 2 (/ 1 (* t z))) (/ x y)))
(* z (+ (* 2 (- 1 t)) (* 2 (/ 1 z))))
(* 2 (/ (- 1 t) t))
(* -1 (* z (- (* -2 (- 1 t)) (* 2 (/ 1 z)))))
(/ (+ 2 (* 2 (/ 1 z))) t)
(/ (+ 2 (+ (* 2 (/ 1 z)) (* t (- (/ x y) 2)))) t)
(+ 2 (* 2 z))
(+ 2 (+ (* -2 (* t z)) (* 2 z)))
(/ (+ 2 (* 2 z)) (* t z))
(/ (+ 2 (+ (* -2 t) (* 2 (/ 1 z)))) t)
1
(+ 1 (* -1 t))
(+ (* -2 (* t z)) (* 2 z))
(- (/ x y) 2)
(- (+ (* 2 (/ 1 t)) (+ (/ 2 (* t z)) (/ x y))) 2)
(* -2 (* t z))
(* t (+ (* -2 z) (+ (* 2 (/ z t)) (* 2 (/ 1 t)))))
-2
(- (+ (* 2 (/ 1 t)) (/ 2 (* t z))) 2)
(* -1 t)
(* t (- (/ 1 t) 1))
(* t (+ (* -2 z) (* 2 (/ z t))))
(* -1 (* t (+ (* -1 (/ (+ 2 (* 2 z)) t)) (* 2 z))))
(* -1 (* t (- 1 (/ 1 t))))
(* -1 (* t (+ (* -2 (/ z t)) (* 2 z))))
Calls

12 calls:

TimeVariablePointExpression
1.0ms
z
@0
((+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) (+ 2 (* (* z 2) (- 1 t))) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z)) (+ 2 (* (* z 2) (- 1 t))) (+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) (/ x y) (* z 2) (+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) (- 1 t) (* (* z 2) (- 1 t)))
1.0ms
z
@-inf
((+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) (+ 2 (* (* z 2) (- 1 t))) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z)) (+ 2 (* (* z 2) (- 1 t))) (+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) (/ x y) (* z 2) (+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) (- 1 t) (* (* z 2) (- 1 t)))
1.0ms
x
@-inf
((+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) (+ 2 (* (* z 2) (- 1 t))) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z)) (+ 2 (* (* z 2) (- 1 t))) (+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) (/ x y) (* z 2) (+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) (- 1 t) (* (* z 2) (- 1 t)))
1.0ms
z
@inf
((+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) (+ 2 (* (* z 2) (- 1 t))) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z)) (+ 2 (* (* z 2) (- 1 t))) (+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) (/ x y) (* z 2) (+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) (- 1 t) (* (* z 2) (- 1 t)))
1.0ms
t
@0
((+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) (+ 2 (* (* z 2) (- 1 t))) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z)) (+ 2 (* (* z 2) (- 1 t))) (+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) (/ x y) (* z 2) (+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) (- 1 t) (* (* z 2) (- 1 t)))

simplify1.0ms (0%)

Memory
1.0MiB live, 1.0MiB allocated
Algorithm
egg-herbie
Counts
39 → 10
Calls
Call 1
Inputs
(+ (* 2 (/ (- 1 t) t)) (* 2 (/ 1 (* t z))))
(+ (* 2 (/ 1 (* t z))) (+ (* 2 (/ (- 1 t) t)) (/ x y)))
(/ x y)
(* x (+ (* 2 (/ (- 1 t) (* t x))) (+ (/ 1 y) (/ 2 (* t (* x z))))))
(* -1 (* x (- (* -1 (/ (+ (* 2 (/ (- 1 t) t)) (* 2 (/ 1 (* t z)))) x)) (/ 1 y))))
(/ (+ x (* y (+ (* 2 (/ (- 1 t) t)) (* 2 (/ 1 (* t z)))))) y)
(/ 2 (* t z))
(/ (+ (* z (+ (* 2 (/ (- 1 t) t)) (/ x y))) (* 2 (/ 1 t))) z)
2
(+ 2 (* 2 (* z (- 1 t))))
(/ (+ (* 2 (/ (* z (- 1 t)) t)) (* 2 (/ 1 t))) z)
(* 2 z)
(* 2 (* z (- 1 t)))
(+ (* 2 (/ (- 1 t) t)) (/ x y))
(+ (* 2 (/ (- 1 t) t)) (+ (* 2 (/ 1 (* t z))) (/ x y)))
(* z (+ (* 2 (- 1 t)) (* 2 (/ 1 z))))
(* 2 (/ (- 1 t) t))
(* -1 (* z (- (* -2 (- 1 t)) (* 2 (/ 1 z)))))
(/ (+ 2 (* 2 (/ 1 z))) t)
(/ (+ 2 (+ (* 2 (/ 1 z)) (* t (- (/ x y) 2)))) t)
(+ 2 (* 2 z))
(+ 2 (+ (* -2 (* t z)) (* 2 z)))
(/ (+ 2 (* 2 z)) (* t z))
(/ (+ 2 (+ (* -2 t) (* 2 (/ 1 z)))) t)
1
(+ 1 (* -1 t))
(+ (* -2 (* t z)) (* 2 z))
(- (/ x y) 2)
(- (+ (* 2 (/ 1 t)) (+ (/ 2 (* t z)) (/ x y))) 2)
(* -2 (* t z))
(* t (+ (* -2 z) (+ (* 2 (/ z t)) (* 2 (/ 1 t)))))
-2
(- (+ (* 2 (/ 1 t)) (/ 2 (* t z))) 2)
(* -1 t)
(* t (- (/ 1 t) 1))
(* t (+ (* -2 z) (* 2 (/ z t))))
(* -1 (* t (+ (* -1 (/ (+ 2 (* 2 z)) t)) (* 2 z))))
(* -1 (* t (- 1 (/ 1 t))))
(* -1 (* t (+ (* -2 (/ z t)) (* 2 z))))
Outputs
(+ (* 2 (/ (- 1 t) t)) (* 2 (/ 1 (* t z))))
#s(approx (+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) #s(approx (+ 2 (* (* z 2) (- 1 t))) (/.f64 (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))) (*.f64 t z))))
(+ (* 2 (/ 1 (* t z))) (+ (* 2 (/ (- 1 t) t)) (/ x y)))
#s(approx (+ 2 (* (* z 2) (- 1 t))) (/.f64 (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))) (*.f64 t z)))
(/ x y)
(/.f64 (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))) (*.f64 t z))
(* x (+ (* 2 (/ (- 1 t) (* t x))) (+ (/ 1 y) (/ 2 (* t (* x z))))))
(+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t)))
(* -1 (* x (- (* -1 (/ (+ (* 2 (/ (- 1 t) t)) (* 2 (/ 1 (* t z)))) x)) (/ 1 y))))
#s(approx (+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) #s(approx (/ x y) (*.f64 z #s(literal 2 binary64))))
(/ (+ x (* y (+ (* 2 (/ (- 1 t) t)) (* 2 (/ 1 (* t z)))))) y)
#s(approx (/ x y) (*.f64 z #s(literal 2 binary64)))
(/ 2 (* t z))
(*.f64 z #s(literal 2 binary64))
(/ (+ (* z (+ (* 2 (/ (- 1 t) t)) (/ x y))) (* 2 (/ 1 t))) z)
#s(approx (+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) (-.f64 #s(literal 1 binary64) t))
2
(-.f64 #s(literal 1 binary64) t)
(+ 2 (* 2 (* z (- 1 t))))
(*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))

rewrite1.0ms (0%)

Memory
1.0MiB live, 1.0MiB allocated
Counts
10 → 10
Calls
Call 1
Inputs
#s(approx (+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) #s(approx (+ 2 (* (* z 2) (- 1 t))) (/.f64 (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))) (*.f64 t z))))
#s(approx (+ 2 (* (* z 2) (- 1 t))) (/.f64 (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))) (*.f64 t z)))
(/.f64 (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))) (*.f64 t z))
(+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t)))
#s(approx (+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) #s(approx (/ x y) (*.f64 z #s(literal 2 binary64))))
#s(approx (/ x y) (*.f64 z #s(literal 2 binary64)))
(*.f64 z #s(literal 2 binary64))
#s(approx (+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) (-.f64 #s(literal 1 binary64) t))
(-.f64 #s(literal 1 binary64) t)
(*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))
Outputs
#s(approx (+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) #s(approx (+ 2 (* (* z 2) (- 1 t))) (/.f64 (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))) (*.f64 t z))))
#s(approx (+ 2 (* (* z 2) (- 1 t))) (/.f64 (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))) (*.f64 t z)))
(/.f64 (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))) (*.f64 t z))
(+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t)))
#s(approx (+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) #s(approx (/ x y) (*.f64 z #s(literal 2 binary64))))
#s(approx (/ x y) (*.f64 z #s(literal 2 binary64)))
(*.f64 z #s(literal 2 binary64))
#s(approx (+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) (-.f64 #s(literal 1 binary64) t))
(-.f64 #s(literal 1 binary64) t)
(*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))

eval5.0ms (0.3%)

Memory
-33.9MiB live, 3.6MiB allocated
Compiler

Compiled 694 to 38 computations (94.5% saved)

prune8.0ms (0.4%)

Memory
12.1MiB live, 12.1MiB allocated
Pruning

7 alts after pruning (0 fresh and 7 done)

PrunedKeptTotal
New20020
Fresh000
Picked033
Done044
Total20727
Accuracy
90.4%
Counts
27 → 7
Alt Table
Click to see full alt table
StatusAccuracyProgram
82.7%
(+.f64 (/.f64 x y) (/.f64 (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))) (*.f64 t z)))
35.8%
#s(approx (+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) (/.f64 x y))
2.8%
#s(approx (+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) (-.f64 #s(literal 1 binary64) t))
3.9%
#s(approx (+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))))
3.7%
#s(approx (+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t)))
2.7%
#s(approx (+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) #s(approx (/ x y) (*.f64 z #s(literal 2 binary64))))
56.4%
#s(approx (+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) #s(approx (+ 2 (* (* z 2) (- 1 t))) (/.f64 (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))) (*.f64 t z))))
Compiler

Compiled 385 to 164 computations (57.4% saved)

regimes25.0ms (1.4%)

Memory
-7.6MiB live, 35.2MiB allocated
Counts
8 → 2
Calls
Call 1
Inputs
#s(approx (+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) (-.f64 #s(literal 1 binary64) t))
#s(approx (+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) #s(approx (/ x y) (*.f64 z #s(literal 2 binary64))))
#s(approx (+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) (/.f64 x y))
#s(approx (+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t)))
#s(approx (+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))))
#s(approx (+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) #s(approx (+ 2 (* (* z 2) (- 1 t))) (/.f64 (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))) (*.f64 t z))))
(+.f64 (/.f64 x y) (/.f64 (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))) (*.f64 t z)))
(+.f64 #s(approx (/ x y) (/.f64 (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))) (*.f64 t z))) (/.f64 (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))) (*.f64 t z)))
Outputs
(+.f64 (/.f64 x y) (/.f64 (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))) (*.f64 t z)))
#s(approx (+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) (/.f64 x y))
Calls

7 calls:

6.0ms
y
3.0ms
t
3.0ms
x
3.0ms
z
3.0ms
(/.f64 (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))) (*.f64 t z))
Results
AccuracySegmentsBranch
82.7%1x
82.7%1y
82.7%1z
82.7%1t
89.5%2(+.f64 (/.f64 x y) (/.f64 (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))) (*.f64 t z)))
82.7%1(/.f64 x y)
89.5%2(/.f64 (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))) (*.f64 t z))
Compiler

Compiled 37 to 47 computations (-27% saved)

regimes21.0ms (1.2%)

Memory
-7.3MiB live, 30.8MiB allocated
Counts
6 → 3
Calls
Call 1
Inputs
#s(approx (+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) (-.f64 #s(literal 1 binary64) t))
#s(approx (+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) #s(approx (/ x y) (*.f64 z #s(literal 2 binary64))))
#s(approx (+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) (/.f64 x y))
#s(approx (+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t)))
#s(approx (+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))))
#s(approx (+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) #s(approx (+ 2 (* (* z 2) (- 1 t))) (/.f64 (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))) (*.f64 t z))))
Outputs
#s(approx (+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) (/.f64 x y))
#s(approx (+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) #s(approx (+ 2 (* (* z 2) (- 1 t))) (/.f64 (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))) (*.f64 t z))))
#s(approx (+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) (/.f64 x y))
Calls

7 calls:

3.0ms
t
3.0ms
x
3.0ms
y
2.0ms
z
2.0ms
(/.f64 (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))) (*.f64 t z))
Results
AccuracySegmentsBranch
69.8%3x
68.2%3y
59.3%2z
69.3%4t
76.3%3(/.f64 x y)
63.3%2(/.f64 (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))) (*.f64 t z))
64.7%3(+.f64 (/.f64 x y) (/.f64 (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))) (*.f64 t z)))
Compiler

Compiled 37 to 47 computations (-27% saved)

regimes16.0ms (0.9%)

Memory
28.4MiB live, 28.4MiB allocated
Counts
5 → 1
Calls
Call 1
Inputs
#s(approx (+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) (-.f64 #s(literal 1 binary64) t))
#s(approx (+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) #s(approx (/ x y) (*.f64 z #s(literal 2 binary64))))
#s(approx (+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) (/.f64 x y))
#s(approx (+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t)))
#s(approx (+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))))
Outputs
#s(approx (+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) (/.f64 x y))
Calls

7 calls:

2.0ms
(/.f64 x y)
2.0ms
y
2.0ms
t
2.0ms
(/.f64 (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))) (*.f64 t z))
2.0ms
x
Results
AccuracySegmentsBranch
35.8%1z
35.8%1(+.f64 (/.f64 x y) (/.f64 (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))) (*.f64 t z)))
35.8%1(/.f64 (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))) (*.f64 t z))
35.8%1t
35.8%1y
35.8%1x
35.8%1(/.f64 x y)
Compiler

Compiled 37 to 47 computations (-27% saved)

regimes12.0ms (0.7%)

Memory
-14.0MiB live, 24.2MiB allocated
Counts
2 → 1
Calls
Call 1
Inputs
#s(approx (+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) (-.f64 #s(literal 1 binary64) t))
#s(approx (+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) #s(approx (/ x y) (*.f64 z #s(literal 2 binary64))))
Outputs
#s(approx (+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))) (-.f64 #s(literal 1 binary64) t))
Calls

7 calls:

3.0ms
t
1.0ms
(/.f64 (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))) (*.f64 t z))
1.0ms
y
1.0ms
(+.f64 (/.f64 x y) (/.f64 (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))) (*.f64 t z)))
1.0ms
x
Results
AccuracySegmentsBranch
2.8%1(/.f64 x y)
2.8%1x
2.8%1y
2.8%1t
2.8%1z
2.8%1(+.f64 (/.f64 x y) (/.f64 (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))) (*.f64 t z)))
2.8%1(/.f64 (+.f64 #s(literal 2 binary64) (*.f64 (*.f64 z #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) t))) (*.f64 t z))
Compiler

Compiled 37 to 47 computations (-27% saved)

bsearch0.0ms (0%)

Memory
0.8MiB live, 0.8MiB allocated
Algorithm
left-value
Steps
TimeLeftRight
0.0ms
+inf
NaN
Compiler

Compiled 20 to 21 computations (-5% saved)

bsearch28.0ms (1.6%)

Memory
23.3MiB live, 62.1MiB allocated
Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
16.0ms
2.6782847029581287e+153
1.5417579756932286e+160
9.0ms
-9.13930122364959e+64
-3.4101913706486596e+64
Samples
15.0ms224×0valid
Compiler

Compiled 860 to 595 computations (30.8% saved)

Precisions
Click to see histograms. Total time spent on operations: 9.0ms
ival-mult: 4.0ms (42.9% of total)
ival-add: 2.0ms (21.5% of total)
ival-sub: 1.0ms (10.7% of total)
ival-div: 1.0ms (10.7% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

simplify6.0ms (0.4%)

Memory
-32.5MiB live, 10.1MiB allocated

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

Profiling

Loading profile data...