Diagrams.Solve.Polynomial:quartForm from diagrams-solve-0.1, C

Time bar (total: 2.3s)

start0.0ms (0%)

Memory
0.1MiB live, 0.1MiB allocated

analyze1.0ms (0%)

Memory
1.1MiB live, 1.1MiB 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 19 to 19 computations (0% saved)

sample1.1s (49.8%)

Memory
60.1MiB live, 1 855.5MiB allocated
Samples
727.0ms8 256×0valid
Precisions
Click to see histograms. Total time spent on operations: 438.0ms
ival-mult: 175.0ms (39.9% of total)
ival-div: 109.0ms (24.9% of total)
ival-add: 99.0ms (22.6% of total)
ival-sub: 37.0ms (8.4% of total)
exact: 9.0ms (2.1% of total)
ival-true: 6.0ms (1.4% of total)
ival-assert: 3.0ms (0.7% of total)
Bogosity

explain175.0ms (7.8%)

Memory
-19.5MiB live, 260.6MiB allocated
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
20-0-(+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64)))
00-0-a
00-0-t
00-0-(*.f64 x y)
00-0-c
00-0-y
00-0-#s(literal 16 binary64)
00-0-(/.f64 (*.f64 z t) #s(literal 16 binary64))
00-0-(*.f64 z t)
00-0-(-.f64 (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64)))
00-0-(+.f64 (-.f64 (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64))) c)
00-0-z
00-0-#s(literal 4 binary64)
00-0-(/.f64 (*.f64 a b) #s(literal 4 binary64))
00-0-(*.f64 a b)
00-0-b
00-0-x
Explanations
Click to see full explanations table
OperatorSubexpressionExplanationCount
+.f64(+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64)))nan-rescue20
(*.f64 x y)overflow38
(/.f64 (*.f64 z t) #s(literal 16 binary64))overflow33
(*.f64 z t)overflow33
Confusion
Predicted +Predicted -
+20
-0254
Precision
1.0
Recall
1.0
Confusion?
Predicted +Predicted MaybePredicted -
+200
-00254
Precision?
1.0
Recall?
1.0
Freqs
test
numberfreq
0254
12
Total Confusion?
Predicted +Predicted MaybePredicted -
+100
-000
Precision?
1.0
Recall?
1.0
Samples
61.0ms512×0valid
Compiler

Compiled 228 to 72 computations (68.4% saved)

Precisions
Click to see histograms. Total time spent on operations: 32.0ms
ival-mult: 15.0ms (47% of total)
ival-div: 7.0ms (21.9% of total)
ival-sub: 4.0ms (12.5% of total)
ival-add: 4.0ms (12.5% of total)
exact: 1.0ms (3.1% of total)
ival-true: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

preprocess6.0ms (0.2%)

Memory
10.4MiB live, 10.4MiB allocated
Algorithm
egg-herbie
Calls
Call 1
Inputs
(+.f64 (-.f64 (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64))) c)
Outputs
(+.f64 (-.f64 (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64))) c)
Compiler

Compiled 17 to 17 computations (0% saved)

eval0.0ms (0%)

Memory
0.2MiB live, 0.2MiB allocated
Compiler

Compiled 0 to 7 computations (-∞% saved)

prune0.0ms (0%)

Memory
0.8MiB live, 0.8MiB allocated
Alt Table
Click to see full alt table
StatusAccuracyProgram
99.2%
(+.f64 (-.f64 (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64))) c)
Compiler

Compiled 17 to 17 computations (0% saved)

simplify1.0ms (0%)

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

Found 4 expressions of interest:

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

localize37.0ms (1.6%)

Memory
17.4MiB live, 54.6MiB allocated
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
accuracy0.00390625
(/.f64 (*.f64 a b) #s(literal 4 binary64))
accuracy0.00390625
(+.f64 (-.f64 (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64))) c)
accuracy0.015625
(-.f64 (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64)))
accuracy0.45702918583020585
(+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64)))
Samples
25.0ms256×0valid
Compiler

Compiled 140 to 36 computations (74.3% saved)

Precisions
Click to see histograms. Total time spent on operations: 12.0ms
ival-mult: 5.0ms (41.3% of total)
ival-div: 3.0ms (24.8% of total)
ival-add: 2.0ms (16.5% of total)
ival-sub: 1.0ms (8.3% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series32.0ms (1.4%)

Memory
-67.0MiB live, 27.8MiB allocated
Counts
5 → 49
Calls
Call 1
Inputs
(+.f64 (-.f64 (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64))) c)
(-.f64 (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64)))
(+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64)))
(*.f64 x y)
(/.f64 (*.f64 a b) #s(literal 4 binary64))
Outputs
(- (+ c (* 1/16 (* t z))) (* 1/4 (* a b)))
(- (+ c (+ (* 1/16 (* t z)) (* x y))) (* 1/4 (* a b)))
(- (* 1/16 (* t z)) (* 1/4 (* a b)))
(- (+ (* 1/16 (* t z)) (* x y)) (* 1/4 (* a b)))
(* 1/16 (* t z))
(+ (* 1/16 (* t z)) (* x y))
(* x y)
(* x (- (+ y (+ (* 1/16 (/ (* t z) x)) (/ c x))) (* 1/4 (/ (* a b) x))))
(* x (- (+ y (* 1/16 (/ (* t z) x))) (* 1/4 (/ (* a b) x))))
(* x (+ y (* 1/16 (/ (* t z) x))))
(* -1 (* x (+ (* -1 y) (* -1 (/ (- (+ c (* 1/16 (* t z))) (* 1/4 (* a b))) x)))))
(* -1 (* x (+ (* -1 y) (* -1 (/ (- (* 1/16 (* t z)) (* 1/4 (* a b))) x)))))
(* -1 (* x (+ (* -1 y) (* -1/16 (/ (* t z) x)))))
(* y (- (+ x (+ (* 1/16 (/ (* t z) y)) (/ c y))) (* 1/4 (/ (* a b) y))))
(* y (- (+ x (* 1/16 (/ (* t z) y))) (* 1/4 (/ (* a b) y))))
(* y (+ x (* 1/16 (/ (* t z) y))))
(* -1 (* y (+ (* -1 x) (* -1 (/ (- (+ c (* 1/16 (* t z))) (* 1/4 (* a b))) y)))))
(* -1 (* y (+ (* -1 x) (* -1 (/ (- (* 1/16 (* t z)) (* 1/4 (* a b))) y)))))
(* -1 (* y (+ (* -1 x) (* -1/16 (/ (* t z) y)))))
(- (+ c (* x y)) (* 1/4 (* a b)))
(- (* x y) (* 1/4 (* a b)))
(* z (- (+ (* 1/16 t) (+ (/ c z) (/ (* x y) z))) (* 1/4 (/ (* a b) z))))
(* z (- (+ (* 1/16 t) (/ (* x y) z)) (* 1/4 (/ (* a b) z))))
(* z (+ (* 1/16 t) (/ (* x y) z)))
(* -1 (* z (+ (* -1 (/ (- (+ c (* x y)) (* 1/4 (* a b))) z)) (* -1/16 t))))
(* -1 (* z (+ (* -1 (/ (- (* x y) (* 1/4 (* a b))) z)) (* -1/16 t))))
(* -1 (* z (+ (* -1 (/ (* x y) z)) (* -1/16 t))))
(* t (- (+ (* 1/16 z) (+ (/ c t) (/ (* x y) t))) (* 1/4 (/ (* a b) t))))
(* t (- (+ (* 1/16 z) (/ (* x y) t)) (* 1/4 (/ (* a b) t))))
(* t (+ (* 1/16 z) (/ (* x y) t)))
(* -1 (* t (+ (* -1 (/ (- (+ c (* x y)) (* 1/4 (* a b))) t)) (* -1/16 z))))
(* -1 (* t (+ (* -1 (/ (- (* x y) (* 1/4 (* a b))) t)) (* -1/16 z))))
(* -1 (* t (+ (* -1 (/ (* x y) t)) (* -1/16 z))))
(+ c (+ (* 1/16 (* t z)) (* x y)))
(+ c (+ (* -1/4 (* a b)) (+ (* 1/16 (* t z)) (* x y))))
(+ (* -1/4 (* a b)) (+ (* 1/16 (* t z)) (* x y)))
(* 1/4 (* a b))
(* -1/4 (* a b))
(* a (- (+ (* 1/16 (/ (* t z) a)) (+ (/ c a) (/ (* x y) a))) (* 1/4 b)))
(* a (- (+ (* 1/16 (/ (* t z) a)) (/ (* x y) a)) (* 1/4 b)))
(* -1 (* a (- (* -1 (/ (+ c (+ (* 1/16 (* t z)) (* x y))) a)) (* -1/4 b))))
(* -1 (* a (- (* -1 (/ (+ (* 1/16 (* t z)) (* x y)) a)) (* -1/4 b))))
(* b (- (+ (* 1/16 (/ (* t z) b)) (+ (/ c b) (/ (* x y) b))) (* 1/4 a)))
(* b (- (+ (* 1/16 (/ (* t z) b)) (/ (* x y) b)) (* 1/4 a)))
(* -1 (* b (- (* -1 (/ (+ c (+ (* 1/16 (* t z)) (* x y))) b)) (* -1/4 a))))
(* -1 (* b (- (* -1 (/ (+ (* 1/16 (* t z)) (* x y)) b)) (* -1/4 a))))
c
(* c (- (+ 1 (+ (* 1/16 (/ (* t z) c)) (/ (* x y) c))) (* 1/4 (/ (* a b) c))))
(* -1 (* c (- (* -1 (/ (- (+ (* 1/16 (* t z)) (* x y)) (* 1/4 (* a b))) c)) 1)))
Calls

21 calls:

TimeVariablePointExpression
14.0ms
y
@0
((+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+ (* x y) (/ (* z t) 16)) (* x y) (/ (* a b) 4))
2.0ms
b
@0
((+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+ (* x y) (/ (* z t) 16)) (* x y) (/ (* a b) 4))
1.0ms
x
@0
((+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+ (* x y) (/ (* z t) 16)) (* x y) (/ (* a b) 4))
1.0ms
z
@0
((+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+ (* x y) (/ (* z t) 16)) (* x y) (/ (* a b) 4))
1.0ms
x
@inf
((+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+ (* x y) (/ (* z t) 16)) (* x y) (/ (* a b) 4))

simplify1.0ms (0%)

Memory
1.3MiB live, 1.3MiB allocated
Algorithm
egg-herbie
Counts
49 → 5
Calls
Call 1
Inputs
(- (+ c (* 1/16 (* t z))) (* 1/4 (* a b)))
(- (+ c (+ (* 1/16 (* t z)) (* x y))) (* 1/4 (* a b)))
(- (* 1/16 (* t z)) (* 1/4 (* a b)))
(- (+ (* 1/16 (* t z)) (* x y)) (* 1/4 (* a b)))
(* 1/16 (* t z))
(+ (* 1/16 (* t z)) (* x y))
(* x y)
(* x (- (+ y (+ (* 1/16 (/ (* t z) x)) (/ c x))) (* 1/4 (/ (* a b) x))))
(* x (- (+ y (* 1/16 (/ (* t z) x))) (* 1/4 (/ (* a b) x))))
(* x (+ y (* 1/16 (/ (* t z) x))))
(* -1 (* x (+ (* -1 y) (* -1 (/ (- (+ c (* 1/16 (* t z))) (* 1/4 (* a b))) x)))))
(* -1 (* x (+ (* -1 y) (* -1 (/ (- (* 1/16 (* t z)) (* 1/4 (* a b))) x)))))
(* -1 (* x (+ (* -1 y) (* -1/16 (/ (* t z) x)))))
(* y (- (+ x (+ (* 1/16 (/ (* t z) y)) (/ c y))) (* 1/4 (/ (* a b) y))))
(* y (- (+ x (* 1/16 (/ (* t z) y))) (* 1/4 (/ (* a b) y))))
(* y (+ x (* 1/16 (/ (* t z) y))))
(* -1 (* y (+ (* -1 x) (* -1 (/ (- (+ c (* 1/16 (* t z))) (* 1/4 (* a b))) y)))))
(* -1 (* y (+ (* -1 x) (* -1 (/ (- (* 1/16 (* t z)) (* 1/4 (* a b))) y)))))
(* -1 (* y (+ (* -1 x) (* -1/16 (/ (* t z) y)))))
(- (+ c (* x y)) (* 1/4 (* a b)))
(- (* x y) (* 1/4 (* a b)))
(* z (- (+ (* 1/16 t) (+ (/ c z) (/ (* x y) z))) (* 1/4 (/ (* a b) z))))
(* z (- (+ (* 1/16 t) (/ (* x y) z)) (* 1/4 (/ (* a b) z))))
(* z (+ (* 1/16 t) (/ (* x y) z)))
(* -1 (* z (+ (* -1 (/ (- (+ c (* x y)) (* 1/4 (* a b))) z)) (* -1/16 t))))
(* -1 (* z (+ (* -1 (/ (- (* x y) (* 1/4 (* a b))) z)) (* -1/16 t))))
(* -1 (* z (+ (* -1 (/ (* x y) z)) (* -1/16 t))))
(* t (- (+ (* 1/16 z) (+ (/ c t) (/ (* x y) t))) (* 1/4 (/ (* a b) t))))
(* t (- (+ (* 1/16 z) (/ (* x y) t)) (* 1/4 (/ (* a b) t))))
(* t (+ (* 1/16 z) (/ (* x y) t)))
(* -1 (* t (+ (* -1 (/ (- (+ c (* x y)) (* 1/4 (* a b))) t)) (* -1/16 z))))
(* -1 (* t (+ (* -1 (/ (- (* x y) (* 1/4 (* a b))) t)) (* -1/16 z))))
(* -1 (* t (+ (* -1 (/ (* x y) t)) (* -1/16 z))))
(+ c (+ (* 1/16 (* t z)) (* x y)))
(+ c (+ (* -1/4 (* a b)) (+ (* 1/16 (* t z)) (* x y))))
(+ (* -1/4 (* a b)) (+ (* 1/16 (* t z)) (* x y)))
(* 1/4 (* a b))
(* -1/4 (* a b))
(* a (- (+ (* 1/16 (/ (* t z) a)) (+ (/ c a) (/ (* x y) a))) (* 1/4 b)))
(* a (- (+ (* 1/16 (/ (* t z) a)) (/ (* x y) a)) (* 1/4 b)))
(* -1 (* a (- (* -1 (/ (+ c (+ (* 1/16 (* t z)) (* x y))) a)) (* -1/4 b))))
(* -1 (* a (- (* -1 (/ (+ (* 1/16 (* t z)) (* x y)) a)) (* -1/4 b))))
(* b (- (+ (* 1/16 (/ (* t z) b)) (+ (/ c b) (/ (* x y) b))) (* 1/4 a)))
(* b (- (+ (* 1/16 (/ (* t z) b)) (/ (* x y) b)) (* 1/4 a)))
(* -1 (* b (- (* -1 (/ (+ c (+ (* 1/16 (* t z)) (* x y))) b)) (* -1/4 a))))
(* -1 (* b (- (* -1 (/ (+ (* 1/16 (* t z)) (* x y)) b)) (* -1/4 a))))
c
(* c (- (+ 1 (+ (* 1/16 (/ (* t z) c)) (/ (* x y) c))) (* 1/4 (/ (* a b) c))))
(* -1 (* c (- (* -1 (/ (- (+ (* 1/16 (* t z)) (* x y)) (* 1/4 (* a b))) c)) 1)))
Outputs
(- (+ c (* 1/16 (* t z))) (* 1/4 (* a b)))
(+.f64 (-.f64 (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64))) c)
(- (+ c (+ (* 1/16 (* t z)) (* x y))) (* 1/4 (* a b)))
(-.f64 (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64)))
(- (* 1/16 (* t z)) (* 1/4 (* a b)))
(+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64)))
(- (+ (* 1/16 (* t z)) (* x y)) (* 1/4 (* a b)))
(*.f64 x y)
(* 1/16 (* t z))
(/.f64 (*.f64 a b) #s(literal 4 binary64))

rewrite0.0ms (0%)

Memory
0.7MiB live, 0.7MiB allocated
Counts
5 → 5
Calls
Call 1
Inputs
(+.f64 (-.f64 (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64))) c)
(-.f64 (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64)))
(+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64)))
(*.f64 x y)
(/.f64 (*.f64 a b) #s(literal 4 binary64))
Outputs
(+.f64 (-.f64 (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64))) c)
(-.f64 (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64)))
(+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64)))
(*.f64 x y)
(/.f64 (*.f64 a b) #s(literal 4 binary64))

eval1.0ms (0.1%)

Memory
2.1MiB live, 2.1MiB allocated
Compiler

Compiled 224 to 36 computations (83.9% saved)

prune2.0ms (0.1%)

Memory
3.5MiB live, 3.5MiB allocated
Pruning

5 alts after pruning (4 fresh and 1 done)

PrunedKeptTotal
New6410
Fresh000
Picked011
Done000
Total6511
Accuracy
99.2%
Counts
11 → 5
Alt Table
Click to see full alt table
StatusAccuracyProgram
99.2%
(+.f64 (-.f64 (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64))) c)
20.0%
(+.f64 (-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) (/.f64 (*.f64 a b) #s(literal 4 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64))) c)
75.8%
(+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64)))) c)
49.9%
(+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)) c)
79.0%
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (-.f64 (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64))))
Compiler

Compiled 121 to 104 computations (14% saved)

simplify1.0ms (0%)

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

Found 15 expressions of interest:

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

localize50.0ms (2.2%)

Memory
2.5MiB live, 77.3MiB allocated
Localize:

Found 15 expressions of interest:

NewMetricScoreProgram
accuracy0.00390625
(/.f64 (*.f64 a b) #s(literal 4 binary64))
accuracy0.00390625
(+.f64 (-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) (/.f64 (*.f64 a b) #s(literal 4 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64))) c)
accuracy0.015625
(-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) (/.f64 (*.f64 a b) #s(literal 4 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64)))
accuracy62.04892243583914
#s(approx (+ (* x y) (/ (* z t) 16)) (/.f64 (*.f64 a b) #s(literal 4 binary64)))
accuracy0.0
(*.f64 x y)
accuracy0.00390625
(+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64)))) c)
accuracy0.45702918583020585
(+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64)))
accuracy20.723924564484562
#s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64))))
accuracy0.0
(*.f64 x y)
accuracy0.00390625
(+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)) c)
accuracy41.87087764494061
#s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y))
accuracy0.00390625
(/.f64 (*.f64 a b) #s(literal 4 binary64))
accuracy0.015625
(-.f64 (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64)))
accuracy0.45702918583020585
(+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64)))
accuracy12.953656460405636
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (-.f64 (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64))))
Samples
32.0ms256×0valid
Compiler

Compiled 498 to 53 computations (89.4% saved)

Precisions
Click to see histograms. Total time spent on operations: 15.0ms
ival-mult: 7.0ms (47.9% of total)
ival-div: 3.0ms (20.5% of total)
ival-add: 2.0ms (13.7% of total)
ival-sub: 1.0ms (6.8% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series18.0ms (0.8%)

Memory
-5.6MiB live, 32.5MiB allocated
Counts
12 → 49
Calls
Call 1
Inputs
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (-.f64 (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64))))
(-.f64 (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64)))
(+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64)))
(*.f64 x y)
(+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)) c)
#s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y))
(+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64)))) c)
#s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64))))
(+.f64 (-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) (/.f64 (*.f64 a b) #s(literal 4 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64))) c)
(-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) (/.f64 (*.f64 a b) #s(literal 4 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64)))
#s(approx (+ (* x y) (/ (* z t) 16)) (/.f64 (*.f64 a b) #s(literal 4 binary64)))
(/.f64 (*.f64 a b) #s(literal 4 binary64))
Outputs
(- (+ c (* 1/16 (* t z))) (* 1/4 (* a b)))
(- (+ c (+ (* 1/16 (* t z)) (* x y))) (* 1/4 (* a b)))
(- (* 1/16 (* t z)) (* 1/4 (* a b)))
(- (+ (* 1/16 (* t z)) (* x y)) (* 1/4 (* a b)))
(* 1/16 (* t z))
(+ (* 1/16 (* t z)) (* x y))
(* x y)
(* x (- (+ y (+ (* 1/16 (/ (* t z) x)) (/ c x))) (* 1/4 (/ (* a b) x))))
(* x (- (+ y (* 1/16 (/ (* t z) x))) (* 1/4 (/ (* a b) x))))
(* x (+ y (* 1/16 (/ (* t z) x))))
(* -1 (* x (+ (* -1 y) (* -1 (/ (- (+ c (* 1/16 (* t z))) (* 1/4 (* a b))) x)))))
(* -1 (* x (+ (* -1 y) (* -1 (/ (- (* 1/16 (* t z)) (* 1/4 (* a b))) x)))))
(* -1 (* x (+ (* -1 y) (* -1/16 (/ (* t z) x)))))
(* y (- (+ x (+ (* 1/16 (/ (* t z) y)) (/ c y))) (* 1/4 (/ (* a b) y))))
(* y (- (+ x (* 1/16 (/ (* t z) y))) (* 1/4 (/ (* a b) y))))
(* y (+ x (* 1/16 (/ (* t z) y))))
(* -1 (* y (+ (* -1 x) (* -1 (/ (- (+ c (* 1/16 (* t z))) (* 1/4 (* a b))) y)))))
(* -1 (* y (+ (* -1 x) (* -1 (/ (- (* 1/16 (* t z)) (* 1/4 (* a b))) y)))))
(* -1 (* y (+ (* -1 x) (* -1/16 (/ (* t z) y)))))
(- (+ c (* x y)) (* 1/4 (* a b)))
(- (* x y) (* 1/4 (* a b)))
(* z (- (+ (* 1/16 t) (+ (/ c z) (/ (* x y) z))) (* 1/4 (/ (* a b) z))))
(* z (- (+ (* 1/16 t) (/ (* x y) z)) (* 1/4 (/ (* a b) z))))
(* z (+ (* 1/16 t) (/ (* x y) z)))
(* -1 (* z (+ (* -1 (/ (- (+ c (* x y)) (* 1/4 (* a b))) z)) (* -1/16 t))))
(* -1 (* z (+ (* -1 (/ (- (* x y) (* 1/4 (* a b))) z)) (* -1/16 t))))
(* -1 (* z (+ (* -1 (/ (* x y) z)) (* -1/16 t))))
(* t (- (+ (* 1/16 z) (+ (/ c t) (/ (* x y) t))) (* 1/4 (/ (* a b) t))))
(* t (- (+ (* 1/16 z) (/ (* x y) t)) (* 1/4 (/ (* a b) t))))
(* t (+ (* 1/16 z) (/ (* x y) t)))
(* -1 (* t (+ (* -1 (/ (- (+ c (* x y)) (* 1/4 (* a b))) t)) (* -1/16 z))))
(* -1 (* t (+ (* -1 (/ (- (* x y) (* 1/4 (* a b))) t)) (* -1/16 z))))
(* -1 (* t (+ (* -1 (/ (* x y) t)) (* -1/16 z))))
(+ c (+ (* 1/16 (* t z)) (* x y)))
(+ c (+ (* -1/4 (* a b)) (+ (* 1/16 (* t z)) (* x y))))
(+ (* -1/4 (* a b)) (+ (* 1/16 (* t z)) (* x y)))
(* 1/4 (* a b))
(* -1/4 (* a b))
(* a (- (+ (* 1/16 (/ (* t z) a)) (+ (/ c a) (/ (* x y) a))) (* 1/4 b)))
(* a (- (+ (* 1/16 (/ (* t z) a)) (/ (* x y) a)) (* 1/4 b)))
(* -1 (* a (- (* -1 (/ (+ c (+ (* 1/16 (* t z)) (* x y))) a)) (* -1/4 b))))
(* -1 (* a (- (* -1 (/ (+ (* 1/16 (* t z)) (* x y)) a)) (* -1/4 b))))
(* b (- (+ (* 1/16 (/ (* t z) b)) (+ (/ c b) (/ (* x y) b))) (* 1/4 a)))
(* b (- (+ (* 1/16 (/ (* t z) b)) (/ (* x y) b)) (* 1/4 a)))
(* -1 (* b (- (* -1 (/ (+ c (+ (* 1/16 (* t z)) (* x y))) b)) (* -1/4 a))))
(* -1 (* b (- (* -1 (/ (+ (* 1/16 (* t z)) (* x y)) b)) (* -1/4 a))))
c
(* c (- (+ 1 (+ (* 1/16 (/ (* t z) c)) (/ (* x y) c))) (* 1/4 (/ (* a b) c))))
(* -1 (* c (- (* -1 (/ (- (+ (* 1/16 (* t z)) (* x y)) (* 1/4 (* a b))) c)) 1)))
Calls

21 calls:

TimeVariablePointExpression
4.0ms
z
@inf
((+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+ (* x y) (/ (* z t) 16)) (* x y) (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4))
1.0ms
y
@-inf
((+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+ (* x y) (/ (* z t) 16)) (* x y) (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4))
1.0ms
x
@-inf
((+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+ (* x y) (/ (* z t) 16)) (* x y) (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4))
1.0ms
a
@-inf
((+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+ (* x y) (/ (* z t) 16)) (* x y) (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4))
1.0ms
b
@-inf
((+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+ (* x y) (/ (* z t) 16)) (* x y) (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4))

simplify1.0ms (0%)

Memory
2.8MiB live, 2.8MiB allocated
Algorithm
egg-herbie
Counts
49 → 12
Calls
Call 1
Inputs
(- (+ c (* 1/16 (* t z))) (* 1/4 (* a b)))
(- (+ c (+ (* 1/16 (* t z)) (* x y))) (* 1/4 (* a b)))
(- (* 1/16 (* t z)) (* 1/4 (* a b)))
(- (+ (* 1/16 (* t z)) (* x y)) (* 1/4 (* a b)))
(* 1/16 (* t z))
(+ (* 1/16 (* t z)) (* x y))
(* x y)
(* x (- (+ y (+ (* 1/16 (/ (* t z) x)) (/ c x))) (* 1/4 (/ (* a b) x))))
(* x (- (+ y (* 1/16 (/ (* t z) x))) (* 1/4 (/ (* a b) x))))
(* x (+ y (* 1/16 (/ (* t z) x))))
(* -1 (* x (+ (* -1 y) (* -1 (/ (- (+ c (* 1/16 (* t z))) (* 1/4 (* a b))) x)))))
(* -1 (* x (+ (* -1 y) (* -1 (/ (- (* 1/16 (* t z)) (* 1/4 (* a b))) x)))))
(* -1 (* x (+ (* -1 y) (* -1/16 (/ (* t z) x)))))
(* y (- (+ x (+ (* 1/16 (/ (* t z) y)) (/ c y))) (* 1/4 (/ (* a b) y))))
(* y (- (+ x (* 1/16 (/ (* t z) y))) (* 1/4 (/ (* a b) y))))
(* y (+ x (* 1/16 (/ (* t z) y))))
(* -1 (* y (+ (* -1 x) (* -1 (/ (- (+ c (* 1/16 (* t z))) (* 1/4 (* a b))) y)))))
(* -1 (* y (+ (* -1 x) (* -1 (/ (- (* 1/16 (* t z)) (* 1/4 (* a b))) y)))))
(* -1 (* y (+ (* -1 x) (* -1/16 (/ (* t z) y)))))
(- (+ c (* x y)) (* 1/4 (* a b)))
(- (* x y) (* 1/4 (* a b)))
(* z (- (+ (* 1/16 t) (+ (/ c z) (/ (* x y) z))) (* 1/4 (/ (* a b) z))))
(* z (- (+ (* 1/16 t) (/ (* x y) z)) (* 1/4 (/ (* a b) z))))
(* z (+ (* 1/16 t) (/ (* x y) z)))
(* -1 (* z (+ (* -1 (/ (- (+ c (* x y)) (* 1/4 (* a b))) z)) (* -1/16 t))))
(* -1 (* z (+ (* -1 (/ (- (* x y) (* 1/4 (* a b))) z)) (* -1/16 t))))
(* -1 (* z (+ (* -1 (/ (* x y) z)) (* -1/16 t))))
(* t (- (+ (* 1/16 z) (+ (/ c t) (/ (* x y) t))) (* 1/4 (/ (* a b) t))))
(* t (- (+ (* 1/16 z) (/ (* x y) t)) (* 1/4 (/ (* a b) t))))
(* t (+ (* 1/16 z) (/ (* x y) t)))
(* -1 (* t (+ (* -1 (/ (- (+ c (* x y)) (* 1/4 (* a b))) t)) (* -1/16 z))))
(* -1 (* t (+ (* -1 (/ (- (* x y) (* 1/4 (* a b))) t)) (* -1/16 z))))
(* -1 (* t (+ (* -1 (/ (* x y) t)) (* -1/16 z))))
(+ c (+ (* 1/16 (* t z)) (* x y)))
(+ c (+ (* -1/4 (* a b)) (+ (* 1/16 (* t z)) (* x y))))
(+ (* -1/4 (* a b)) (+ (* 1/16 (* t z)) (* x y)))
(* 1/4 (* a b))
(* -1/4 (* a b))
(* a (- (+ (* 1/16 (/ (* t z) a)) (+ (/ c a) (/ (* x y) a))) (* 1/4 b)))
(* a (- (+ (* 1/16 (/ (* t z) a)) (/ (* x y) a)) (* 1/4 b)))
(* -1 (* a (- (* -1 (/ (+ c (+ (* 1/16 (* t z)) (* x y))) a)) (* -1/4 b))))
(* -1 (* a (- (* -1 (/ (+ (* 1/16 (* t z)) (* x y)) a)) (* -1/4 b))))
(* b (- (+ (* 1/16 (/ (* t z) b)) (+ (/ c b) (/ (* x y) b))) (* 1/4 a)))
(* b (- (+ (* 1/16 (/ (* t z) b)) (/ (* x y) b)) (* 1/4 a)))
(* -1 (* b (- (* -1 (/ (+ c (+ (* 1/16 (* t z)) (* x y))) b)) (* -1/4 a))))
(* -1 (* b (- (* -1 (/ (+ (* 1/16 (* t z)) (* x y)) b)) (* -1/4 a))))
c
(* c (- (+ 1 (+ (* 1/16 (/ (* t z) c)) (/ (* x y) c))) (* 1/4 (/ (* a b) c))))
(* -1 (* c (- (* -1 (/ (- (+ (* 1/16 (* t z)) (* x y)) (* 1/4 (* a b))) c)) 1)))
Outputs
(- (+ c (* 1/16 (* t z))) (* 1/4 (* a b)))
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (-.f64 (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64))))
(- (+ c (+ (* 1/16 (* t z)) (* x y))) (* 1/4 (* a b)))
(-.f64 (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64)))
(- (* 1/16 (* t z)) (* 1/4 (* a b)))
(+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64)))
(- (+ (* 1/16 (* t z)) (* x y)) (* 1/4 (* a b)))
(*.f64 x y)
(* 1/16 (* t z))
(+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)) c)
(+ (* 1/16 (* t z)) (* x y))
#s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y))
(* x y)
(+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64)))) c)
(* x (- (+ y (+ (* 1/16 (/ (* t z) x)) (/ c x))) (* 1/4 (/ (* a b) x))))
#s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64))))
(* x (- (+ y (* 1/16 (/ (* t z) x))) (* 1/4 (/ (* a b) x))))
(+.f64 (-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) (/.f64 (*.f64 a b) #s(literal 4 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64))) c)
(* x (+ y (* 1/16 (/ (* t z) x))))
(-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) (/.f64 (*.f64 a b) #s(literal 4 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64)))
(* -1 (* x (+ (* -1 y) (* -1 (/ (- (+ c (* 1/16 (* t z))) (* 1/4 (* a b))) x)))))
#s(approx (+ (* x y) (/ (* z t) 16)) (/.f64 (*.f64 a b) #s(literal 4 binary64)))
(* -1 (* x (+ (* -1 y) (* -1 (/ (- (* 1/16 (* t z)) (* 1/4 (* a b))) x)))))
(/.f64 (*.f64 a b) #s(literal 4 binary64))

rewrite1.0ms (0%)

Memory
2.0MiB live, 2.0MiB allocated
Counts
12 → 12
Calls
Call 1
Inputs
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (-.f64 (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64))))
(-.f64 (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64)))
(+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64)))
(*.f64 x y)
(+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)) c)
#s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y))
(+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64)))) c)
#s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64))))
(+.f64 (-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) (/.f64 (*.f64 a b) #s(literal 4 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64))) c)
(-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) (/.f64 (*.f64 a b) #s(literal 4 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64)))
#s(approx (+ (* x y) (/ (* z t) 16)) (/.f64 (*.f64 a b) #s(literal 4 binary64)))
(/.f64 (*.f64 a b) #s(literal 4 binary64))
Outputs
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (-.f64 (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64))))
(-.f64 (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64)))
(+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64)))
(*.f64 x y)
(+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)) c)
#s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y))
(+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64)))) c)
#s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64))))
(+.f64 (-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) (/.f64 (*.f64 a b) #s(literal 4 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64))) c)
(-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) (/.f64 (*.f64 a b) #s(literal 4 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64)))
#s(approx (+ (* x y) (/ (* z t) 16)) (/.f64 (*.f64 a b) #s(literal 4 binary64)))
(/.f64 (*.f64 a b) #s(literal 4 binary64))

eval3.0ms (0.1%)

Memory
8.1MiB live, 8.1MiB allocated
Compiler

Compiled 1 179 to 65 computations (94.5% saved)

prune9.0ms (0.4%)

Memory
-27.2MiB live, 17.7MiB allocated
Pruning

11 alts after pruning (7 fresh and 4 done)

PrunedKeptTotal
New24731
Fresh000
Picked044
Done101
Total251136
Accuracy
99.2%
Counts
36 → 11
Alt Table
Click to see full alt table
StatusAccuracyProgram
20.0%
(+.f64 (-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) (/.f64 (*.f64 a b) #s(literal 4 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64))) c)
75.8%
(+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64)))) c)
49.9%
(+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)) c)
34.4%
(+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) #s(approx (+ (* x y) (/ (* z t) 16)) (+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)) c))) c)
79.0%
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (-.f64 (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64))))
20.1%
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) (-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) (/.f64 (*.f64 a b) #s(literal 4 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64)))) (/.f64 (*.f64 a b) #s(literal 4 binary64))))
73.3%
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) (+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)) c)) (/.f64 (*.f64 a b) #s(literal 4 binary64))))
53.5%
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y))) (/.f64 (*.f64 a b) #s(literal 4 binary64))))
2.2%
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (/.f64 (*.f64 a b) #s(literal 4 binary64))))
56.6%
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64)))))
31.1%
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)))
Compiler

Compiled 766 to 415 computations (45.8% saved)

simplify1.0ms (0.1%)

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

Found 19 expressions of interest:

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

localize49.0ms (2.2%)

Memory
10.7MiB live, 127.7MiB allocated
Localize:

Found 19 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(*.f64 x y)
accuracy0.45702918583020585
(+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64)))
accuracy12.953656460405636
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64)))))
accuracy20.723924564484562
#s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64))))
accuracy0.0
(*.f64 a b)
accuracy0.00390625
(/.f64 (*.f64 a b) #s(literal 4 binary64))
accuracy12.953656460405636
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (/.f64 (*.f64 a b) #s(literal 4 binary64))))
accuracy62.61749077491365
#s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (/.f64 (*.f64 a b) #s(literal 4 binary64)))
accuracy0.00390625
(+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) #s(approx (+ (* x y) (/ (* z t) 16)) (+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)) c))) c)
accuracy20.723924564484562
#s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) #s(approx (+ (* x y) (/ (* z t) 16)) (+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)) c)))
accuracy27.29981401923929
#s(approx (+ (* x y) (/ (* z t) 16)) (+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)) c))
accuracy41.87087764494061
#s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y))
accuracy0.0
(*.f64 x y)
accuracy12.953656460405636
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)))
accuracy41.87087764494061
#s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y))
accuracy0.015625
(-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) (+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)) c)) (/.f64 (*.f64 a b) #s(literal 4 binary64)))
accuracy12.953656460405636
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) (+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)) c)) (/.f64 (*.f64 a b) #s(literal 4 binary64))))
accuracy27.29981401923929
#s(approx (+ (* x y) (/ (* z t) 16)) (+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)) c))
accuracy41.87087764494061
#s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y))
Samples
31.0ms256×0valid
Compiler

Compiled 886 to 56 computations (93.7% saved)

Precisions
Click to see histograms. Total time spent on operations: 13.0ms
ival-mult: 5.0ms (38.6% of total)
ival-div: 3.0ms (23.2% of total)
ival-add: 3.0ms (23.2% of total)
ival-sub: 1.0ms (7.7% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series19.0ms (0.9%)

Memory
0.3MiB live, 42.2MiB allocated
Counts
16 → 50
Calls
Call 1
Inputs
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) (+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)) c)) (/.f64 (*.f64 a b) #s(literal 4 binary64))))
(-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) (+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)) c)) (/.f64 (*.f64 a b) #s(literal 4 binary64)))
#s(approx (+ (* x y) (/ (* z t) 16)) (+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)) c))
(+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)) c)
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)))
#s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y))
(*.f64 x y)
(+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) #s(approx (+ (* x y) (/ (* z t) 16)) (+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)) c))) c)
#s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) #s(approx (+ (* x y) (/ (* z t) 16)) (+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)) c)))
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (/.f64 (*.f64 a b) #s(literal 4 binary64))))
#s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (/.f64 (*.f64 a b) #s(literal 4 binary64)))
(/.f64 (*.f64 a b) #s(literal 4 binary64))
(*.f64 a b)
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64)))))
#s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64))))
(+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64)))
Outputs
(- (+ c (* 1/16 (* t z))) (* 1/4 (* a b)))
(- (+ c (+ (* 1/16 (* t z)) (* x y))) (* 1/4 (* a b)))
(- (* 1/16 (* t z)) (* 1/4 (* a b)))
(- (+ (* 1/16 (* t z)) (* x y)) (* 1/4 (* a b)))
(* 1/16 (* t z))
(+ (* 1/16 (* t z)) (* x y))
(* x y)
(* x (- (+ y (+ (* 1/16 (/ (* t z) x)) (/ c x))) (* 1/4 (/ (* a b) x))))
(* x (- (+ y (* 1/16 (/ (* t z) x))) (* 1/4 (/ (* a b) x))))
(* x (+ y (* 1/16 (/ (* t z) x))))
(* -1 (* x (+ (* -1 y) (* -1 (/ (- (+ c (* 1/16 (* t z))) (* 1/4 (* a b))) x)))))
(* -1 (* x (+ (* -1 y) (* -1 (/ (- (* 1/16 (* t z)) (* 1/4 (* a b))) x)))))
(* -1 (* x (+ (* -1 y) (* -1/16 (/ (* t z) x)))))
(* y (- (+ x (+ (* 1/16 (/ (* t z) y)) (/ c y))) (* 1/4 (/ (* a b) y))))
(* y (- (+ x (* 1/16 (/ (* t z) y))) (* 1/4 (/ (* a b) y))))
(* y (+ x (* 1/16 (/ (* t z) y))))
(* -1 (* y (+ (* -1 x) (* -1 (/ (- (+ c (* 1/16 (* t z))) (* 1/4 (* a b))) y)))))
(* -1 (* y (+ (* -1 x) (* -1 (/ (- (* 1/16 (* t z)) (* 1/4 (* a b))) y)))))
(* -1 (* y (+ (* -1 x) (* -1/16 (/ (* t z) y)))))
(- (+ c (* x y)) (* 1/4 (* a b)))
(- (* x y) (* 1/4 (* a b)))
(* z (- (+ (* 1/16 t) (+ (/ c z) (/ (* x y) z))) (* 1/4 (/ (* a b) z))))
(* z (- (+ (* 1/16 t) (/ (* x y) z)) (* 1/4 (/ (* a b) z))))
(* z (+ (* 1/16 t) (/ (* x y) z)))
(* -1 (* z (+ (* -1 (/ (- (+ c (* x y)) (* 1/4 (* a b))) z)) (* -1/16 t))))
(* -1 (* z (+ (* -1 (/ (- (* x y) (* 1/4 (* a b))) z)) (* -1/16 t))))
(* -1 (* z (+ (* -1 (/ (* x y) z)) (* -1/16 t))))
(* t (- (+ (* 1/16 z) (+ (/ c t) (/ (* x y) t))) (* 1/4 (/ (* a b) t))))
(* t (- (+ (* 1/16 z) (/ (* x y) t)) (* 1/4 (/ (* a b) t))))
(* t (+ (* 1/16 z) (/ (* x y) t)))
(* -1 (* t (+ (* -1 (/ (- (+ c (* x y)) (* 1/4 (* a b))) t)) (* -1/16 z))))
(* -1 (* t (+ (* -1 (/ (- (* x y) (* 1/4 (* a b))) t)) (* -1/16 z))))
(* -1 (* t (+ (* -1 (/ (* x y) t)) (* -1/16 z))))
(+ c (+ (* 1/16 (* t z)) (* x y)))
(+ c (+ (* -1/4 (* a b)) (+ (* 1/16 (* t z)) (* x y))))
(+ (* -1/4 (* a b)) (+ (* 1/16 (* t z)) (* x y)))
(* 1/4 (* a b))
(* a b)
(* -1/4 (* a b))
(* a (- (+ (* 1/16 (/ (* t z) a)) (+ (/ c a) (/ (* x y) a))) (* 1/4 b)))
(* a (- (+ (* 1/16 (/ (* t z) a)) (/ (* x y) a)) (* 1/4 b)))
(* -1 (* a (- (* -1 (/ (+ c (+ (* 1/16 (* t z)) (* x y))) a)) (* -1/4 b))))
(* -1 (* a (- (* -1 (/ (+ (* 1/16 (* t z)) (* x y)) a)) (* -1/4 b))))
(* b (- (+ (* 1/16 (/ (* t z) b)) (+ (/ c b) (/ (* x y) b))) (* 1/4 a)))
(* b (- (+ (* 1/16 (/ (* t z) b)) (/ (* x y) b)) (* 1/4 a)))
(* -1 (* b (- (* -1 (/ (+ c (+ (* 1/16 (* t z)) (* x y))) b)) (* -1/4 a))))
(* -1 (* b (- (* -1 (/ (+ (* 1/16 (* t z)) (* x y)) b)) (* -1/4 a))))
c
(* c (- (+ 1 (+ (* 1/16 (/ (* t z) c)) (/ (* x y) c))) (* 1/4 (/ (* a b) c))))
(* -1 (* c (- (* -1 (/ (- (+ (* 1/16 (* t z)) (* x y)) (* 1/4 (* a b))) c)) 1)))
Calls

21 calls:

TimeVariablePointExpression
1.0ms
b
@-inf
((+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+ (* x y) (/ (* z t) 16)) (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (* x y) (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (/ (* a b) 4) (* a b) (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+ (* x y) (/ (* z t) 16)))
1.0ms
a
@-inf
((+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+ (* x y) (/ (* z t) 16)) (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (* x y) (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (/ (* a b) 4) (* a b) (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+ (* x y) (/ (* z t) 16)))
1.0ms
x
@-inf
((+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+ (* x y) (/ (* z t) 16)) (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (* x y) (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (/ (* a b) 4) (* a b) (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+ (* x y) (/ (* z t) 16)))
1.0ms
y
@-inf
((+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+ (* x y) (/ (* z t) 16)) (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (* x y) (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (/ (* a b) 4) (* a b) (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+ (* x y) (/ (* z t) 16)))
1.0ms
a
@inf
((+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+ (* x y) (/ (* z t) 16)) (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (* x y) (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (/ (* a b) 4) (* a b) (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+ (* x y) (/ (* z t) 16)))

simplify1.0ms (0%)

Memory
2.2MiB live, 2.2MiB allocated
Algorithm
egg-herbie
Counts
50 → 16
Calls
Call 1
Inputs
(- (+ c (* 1/16 (* t z))) (* 1/4 (* a b)))
(- (+ c (+ (* 1/16 (* t z)) (* x y))) (* 1/4 (* a b)))
(- (* 1/16 (* t z)) (* 1/4 (* a b)))
(- (+ (* 1/16 (* t z)) (* x y)) (* 1/4 (* a b)))
(* 1/16 (* t z))
(+ (* 1/16 (* t z)) (* x y))
(* x y)
(* x (- (+ y (+ (* 1/16 (/ (* t z) x)) (/ c x))) (* 1/4 (/ (* a b) x))))
(* x (- (+ y (* 1/16 (/ (* t z) x))) (* 1/4 (/ (* a b) x))))
(* x (+ y (* 1/16 (/ (* t z) x))))
(* -1 (* x (+ (* -1 y) (* -1 (/ (- (+ c (* 1/16 (* t z))) (* 1/4 (* a b))) x)))))
(* -1 (* x (+ (* -1 y) (* -1 (/ (- (* 1/16 (* t z)) (* 1/4 (* a b))) x)))))
(* -1 (* x (+ (* -1 y) (* -1/16 (/ (* t z) x)))))
(* y (- (+ x (+ (* 1/16 (/ (* t z) y)) (/ c y))) (* 1/4 (/ (* a b) y))))
(* y (- (+ x (* 1/16 (/ (* t z) y))) (* 1/4 (/ (* a b) y))))
(* y (+ x (* 1/16 (/ (* t z) y))))
(* -1 (* y (+ (* -1 x) (* -1 (/ (- (+ c (* 1/16 (* t z))) (* 1/4 (* a b))) y)))))
(* -1 (* y (+ (* -1 x) (* -1 (/ (- (* 1/16 (* t z)) (* 1/4 (* a b))) y)))))
(* -1 (* y (+ (* -1 x) (* -1/16 (/ (* t z) y)))))
(- (+ c (* x y)) (* 1/4 (* a b)))
(- (* x y) (* 1/4 (* a b)))
(* z (- (+ (* 1/16 t) (+ (/ c z) (/ (* x y) z))) (* 1/4 (/ (* a b) z))))
(* z (- (+ (* 1/16 t) (/ (* x y) z)) (* 1/4 (/ (* a b) z))))
(* z (+ (* 1/16 t) (/ (* x y) z)))
(* -1 (* z (+ (* -1 (/ (- (+ c (* x y)) (* 1/4 (* a b))) z)) (* -1/16 t))))
(* -1 (* z (+ (* -1 (/ (- (* x y) (* 1/4 (* a b))) z)) (* -1/16 t))))
(* -1 (* z (+ (* -1 (/ (* x y) z)) (* -1/16 t))))
(* t (- (+ (* 1/16 z) (+ (/ c t) (/ (* x y) t))) (* 1/4 (/ (* a b) t))))
(* t (- (+ (* 1/16 z) (/ (* x y) t)) (* 1/4 (/ (* a b) t))))
(* t (+ (* 1/16 z) (/ (* x y) t)))
(* -1 (* t (+ (* -1 (/ (- (+ c (* x y)) (* 1/4 (* a b))) t)) (* -1/16 z))))
(* -1 (* t (+ (* -1 (/ (- (* x y) (* 1/4 (* a b))) t)) (* -1/16 z))))
(* -1 (* t (+ (* -1 (/ (* x y) t)) (* -1/16 z))))
(+ c (+ (* 1/16 (* t z)) (* x y)))
(+ c (+ (* -1/4 (* a b)) (+ (* 1/16 (* t z)) (* x y))))
(+ (* -1/4 (* a b)) (+ (* 1/16 (* t z)) (* x y)))
(* 1/4 (* a b))
(* a b)
(* -1/4 (* a b))
(* a (- (+ (* 1/16 (/ (* t z) a)) (+ (/ c a) (/ (* x y) a))) (* 1/4 b)))
(* a (- (+ (* 1/16 (/ (* t z) a)) (/ (* x y) a)) (* 1/4 b)))
(* -1 (* a (- (* -1 (/ (+ c (+ (* 1/16 (* t z)) (* x y))) a)) (* -1/4 b))))
(* -1 (* a (- (* -1 (/ (+ (* 1/16 (* t z)) (* x y)) a)) (* -1/4 b))))
(* b (- (+ (* 1/16 (/ (* t z) b)) (+ (/ c b) (/ (* x y) b))) (* 1/4 a)))
(* b (- (+ (* 1/16 (/ (* t z) b)) (/ (* x y) b)) (* 1/4 a)))
(* -1 (* b (- (* -1 (/ (+ c (+ (* 1/16 (* t z)) (* x y))) b)) (* -1/4 a))))
(* -1 (* b (- (* -1 (/ (+ (* 1/16 (* t z)) (* x y)) b)) (* -1/4 a))))
c
(* c (- (+ 1 (+ (* 1/16 (/ (* t z) c)) (/ (* x y) c))) (* 1/4 (/ (* a b) c))))
(* -1 (* c (- (* -1 (/ (- (+ (* 1/16 (* t z)) (* x y)) (* 1/4 (* a b))) c)) 1)))
Outputs
(- (+ c (* 1/16 (* t z))) (* 1/4 (* a b)))
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) (+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)) c)) (/.f64 (*.f64 a b) #s(literal 4 binary64))))
(- (+ c (+ (* 1/16 (* t z)) (* x y))) (* 1/4 (* a b)))
(-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) (+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)) c)) (/.f64 (*.f64 a b) #s(literal 4 binary64)))
(- (* 1/16 (* t z)) (* 1/4 (* a b)))
#s(approx (+ (* x y) (/ (* z t) 16)) (+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)) c))
(- (+ (* 1/16 (* t z)) (* x y)) (* 1/4 (* a b)))
(+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)) c)
(* 1/16 (* t z))
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)))
(+ (* 1/16 (* t z)) (* x y))
#s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y))
(* x y)
(*.f64 x y)
(* x (- (+ y (+ (* 1/16 (/ (* t z) x)) (/ c x))) (* 1/4 (/ (* a b) x))))
(+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) #s(approx (+ (* x y) (/ (* z t) 16)) (+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)) c))) c)
(* x (- (+ y (* 1/16 (/ (* t z) x))) (* 1/4 (/ (* a b) x))))
#s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) #s(approx (+ (* x y) (/ (* z t) 16)) (+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)) c)))
(* x (+ y (* 1/16 (/ (* t z) x))))
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (/.f64 (*.f64 a b) #s(literal 4 binary64))))
(* -1 (* x (+ (* -1 y) (* -1 (/ (- (+ c (* 1/16 (* t z))) (* 1/4 (* a b))) x)))))
#s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (/.f64 (*.f64 a b) #s(literal 4 binary64)))
(* -1 (* x (+ (* -1 y) (* -1 (/ (- (* 1/16 (* t z)) (* 1/4 (* a b))) x)))))
(/.f64 (*.f64 a b) #s(literal 4 binary64))
(* -1 (* x (+ (* -1 y) (* -1/16 (/ (* t z) x)))))
(*.f64 a b)
(* y (- (+ x (+ (* 1/16 (/ (* t z) y)) (/ c y))) (* 1/4 (/ (* a b) y))))
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64)))))
(* y (- (+ x (* 1/16 (/ (* t z) y))) (* 1/4 (/ (* a b) y))))
#s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64))))
(* y (+ x (* 1/16 (/ (* t z) y))))
(+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64)))

rewrite1.0ms (0%)

Memory
3.2MiB live, 3.2MiB allocated
Counts
16 → 16
Calls
Call 1
Inputs
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) (+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)) c)) (/.f64 (*.f64 a b) #s(literal 4 binary64))))
(-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) (+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)) c)) (/.f64 (*.f64 a b) #s(literal 4 binary64)))
#s(approx (+ (* x y) (/ (* z t) 16)) (+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)) c))
(+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)) c)
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)))
#s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y))
(*.f64 x y)
(+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) #s(approx (+ (* x y) (/ (* z t) 16)) (+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)) c))) c)
#s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) #s(approx (+ (* x y) (/ (* z t) 16)) (+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)) c)))
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (/.f64 (*.f64 a b) #s(literal 4 binary64))))
#s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (/.f64 (*.f64 a b) #s(literal 4 binary64)))
(/.f64 (*.f64 a b) #s(literal 4 binary64))
(*.f64 a b)
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64)))))
#s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64))))
(+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64)))
Outputs
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) (+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)) c)) (/.f64 (*.f64 a b) #s(literal 4 binary64))))
(-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) (+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)) c)) (/.f64 (*.f64 a b) #s(literal 4 binary64)))
#s(approx (+ (* x y) (/ (* z t) 16)) (+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)) c))
(+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)) c)
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)))
#s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y))
(*.f64 x y)
(+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) #s(approx (+ (* x y) (/ (* z t) 16)) (+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)) c))) c)
#s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) #s(approx (+ (* x y) (/ (* z t) 16)) (+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)) c)))
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (/.f64 (*.f64 a b) #s(literal 4 binary64))))
#s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (/.f64 (*.f64 a b) #s(literal 4 binary64)))
(/.f64 (*.f64 a b) #s(literal 4 binary64))
(*.f64 a b)
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64)))))
#s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64))))
(+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64)))

eval5.0ms (0.2%)

Memory
-27.5MiB live, 11.5MiB allocated
Compiler

Compiled 2 309 to 84 computations (96.4% saved)

prune8.0ms (0.3%)

Memory
20.2MiB live, 20.2MiB allocated
Pruning

12 alts after pruning (4 fresh and 8 done)

PrunedKeptTotal
New43245
Fresh022
Picked055
Done134
Total441256
Accuracy
99.2%
Counts
56 → 12
Alt Table
Click to see full alt table
StatusAccuracyProgram
75.8%
(+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64)))) c)
49.9%
(+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)) c)
34.4%
(+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) #s(approx (+ (* x y) (/ (* z t) 16)) (+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)) c))) c)
19.9%
(+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) #s(approx (+ (* x y) (/ (* z t) 16)) (*.f64 a b))) c)
79.0%
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (-.f64 (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64))))
20.1%
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) (-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) (/.f64 (*.f64 a b) #s(literal 4 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64)))) (/.f64 (*.f64 a b) #s(literal 4 binary64))))
73.3%
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) (+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)) c)) (/.f64 (*.f64 a b) #s(literal 4 binary64))))
53.5%
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y))) (/.f64 (*.f64 a b) #s(literal 4 binary64))))
2.1%
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) #s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (/.f64 (*.f64 a b) #s(literal 4 binary64))))) (/.f64 (*.f64 a b) #s(literal 4 binary64))))
2.2%
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (/.f64 (*.f64 a b) #s(literal 4 binary64))))
56.6%
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64)))))
31.1%
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)))
Compiler

Compiled 516 to 278 computations (46.1% saved)

simplify2.0ms (0.1%)

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

Found 16 expressions of interest:

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

localize48.0ms (2.1%)

Memory
-23.9MiB live, 94.9MiB allocated
Localize:

Found 16 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(*.f64 a b)
accuracy0.00390625
(+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) #s(approx (+ (* x y) (/ (* z t) 16)) (*.f64 a b))) c)
accuracy20.723924564484562
#s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) #s(approx (+ (* x y) (/ (* z t) 16)) (*.f64 a b)))
accuracy62.05000107541532
#s(approx (+ (* x y) (/ (* z t) 16)) (*.f64 a b))
accuracy0.015625
(-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) (-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) (/.f64 (*.f64 a b) #s(literal 4 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64)))) (/.f64 (*.f64 a b) #s(literal 4 binary64)))
accuracy12.953656460405636
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) (-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) (/.f64 (*.f64 a b) #s(literal 4 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64)))) (/.f64 (*.f64 a b) #s(literal 4 binary64))))
accuracy20.723924564484562
#s(approx (+ (* x y) (/ (* z t) 16)) (-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) (/.f64 (*.f64 a b) #s(literal 4 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64))))
accuracy62.04892243583914
#s(approx (+ (* x y) (/ (* z t) 16)) (/.f64 (*.f64 a b) #s(literal 4 binary64)))
accuracy0.015625
(-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y))) (/.f64 (*.f64 a b) #s(literal 4 binary64)))
accuracy12.953656460405636
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y))) (/.f64 (*.f64 a b) #s(literal 4 binary64))))
accuracy20.723924564484562
#s(approx (+ (* x y) (/ (* z t) 16)) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)))
accuracy41.87087764494061
#s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y))
accuracy12.953656460405636
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) #s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (/.f64 (*.f64 a b) #s(literal 4 binary64))))) (/.f64 (*.f64 a b) #s(literal 4 binary64))))
accuracy12.953656460405636
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (/.f64 (*.f64 a b) #s(literal 4 binary64))))
accuracy27.29981401923929
#s(approx (+ (* x y) (/ (* z t) 16)) #s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (/.f64 (*.f64 a b) #s(literal 4 binary64)))))
accuracy62.61749077491365
#s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (/.f64 (*.f64 a b) #s(literal 4 binary64)))
Samples
30.0ms256×0valid
Compiler

Compiled 930 to 57 computations (93.9% saved)

Precisions
Click to see histograms. Total time spent on operations: 13.0ms
ival-mult: 6.0ms (46% of total)
ival-div: 3.0ms (23% of total)
ival-add: 2.0ms (15.3% of total)
ival-sub: 1.0ms (7.7% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series19.0ms (0.8%)

Memory
1.8MiB live, 40.7MiB allocated
Counts
18 → 49
Calls
Call 1
Inputs
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) #s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (/.f64 (*.f64 a b) #s(literal 4 binary64))))) (/.f64 (*.f64 a b) #s(literal 4 binary64))))
(-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) #s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (/.f64 (*.f64 a b) #s(literal 4 binary64))))) (/.f64 (*.f64 a b) #s(literal 4 binary64)))
#s(approx (+ (* x y) (/ (* z t) 16)) #s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (/.f64 (*.f64 a b) #s(literal 4 binary64)))))
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (/.f64 (*.f64 a b) #s(literal 4 binary64))))
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y))) (/.f64 (*.f64 a b) #s(literal 4 binary64))))
(-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y))) (/.f64 (*.f64 a b) #s(literal 4 binary64)))
#s(approx (+ (* x y) (/ (* z t) 16)) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)))
#s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y))
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) (-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) (/.f64 (*.f64 a b) #s(literal 4 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64)))) (/.f64 (*.f64 a b) #s(literal 4 binary64))))
(-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) (-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) (/.f64 (*.f64 a b) #s(literal 4 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64)))) (/.f64 (*.f64 a b) #s(literal 4 binary64)))
#s(approx (+ (* x y) (/ (* z t) 16)) (-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) (/.f64 (*.f64 a b) #s(literal 4 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64))))
(-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) (/.f64 (*.f64 a b) #s(literal 4 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64)))
(+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) #s(approx (+ (* x y) (/ (* z t) 16)) (*.f64 a b))) c)
#s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) #s(approx (+ (* x y) (/ (* z t) 16)) (*.f64 a b)))
#s(approx (+ (* x y) (/ (* z t) 16)) (*.f64 a b))
(*.f64 a b)
#s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (/.f64 (*.f64 a b) #s(literal 4 binary64)))
#s(approx (+ (* x y) (/ (* z t) 16)) (/.f64 (*.f64 a b) #s(literal 4 binary64)))
Outputs
(- (+ c (* 1/16 (* t z))) (* 1/4 (* a b)))
(- (+ c (+ (* 1/16 (* t z)) (* x y))) (* 1/4 (* a b)))
(- (* 1/16 (* t z)) (* 1/4 (* a b)))
(- (+ (* 1/16 (* t z)) (* x y)) (* 1/4 (* a b)))
(* 1/16 (* t z))
(+ (* 1/16 (* t z)) (* x y))
(* x y)
(* x (- (+ y (+ (* 1/16 (/ (* t z) x)) (/ c x))) (* 1/4 (/ (* a b) x))))
(* x (- (+ y (* 1/16 (/ (* t z) x))) (* 1/4 (/ (* a b) x))))
(* x (+ y (* 1/16 (/ (* t z) x))))
(* -1 (* x (+ (* -1 y) (* -1 (/ (- (+ c (* 1/16 (* t z))) (* 1/4 (* a b))) x)))))
(* -1 (* x (+ (* -1 y) (* -1 (/ (- (* 1/16 (* t z)) (* 1/4 (* a b))) x)))))
(* -1 (* x (+ (* -1 y) (* -1/16 (/ (* t z) x)))))
(* y (- (+ x (+ (* 1/16 (/ (* t z) y)) (/ c y))) (* 1/4 (/ (* a b) y))))
(* y (- (+ x (* 1/16 (/ (* t z) y))) (* 1/4 (/ (* a b) y))))
(* y (+ x (* 1/16 (/ (* t z) y))))
(* -1 (* y (+ (* -1 x) (* -1 (/ (- (+ c (* 1/16 (* t z))) (* 1/4 (* a b))) y)))))
(* -1 (* y (+ (* -1 x) (* -1 (/ (- (* 1/16 (* t z)) (* 1/4 (* a b))) y)))))
(* -1 (* y (+ (* -1 x) (* -1/16 (/ (* t z) y)))))
(- (+ c (* x y)) (* 1/4 (* a b)))
(- (* x y) (* 1/4 (* a b)))
(* z (- (+ (* 1/16 t) (+ (/ c z) (/ (* x y) z))) (* 1/4 (/ (* a b) z))))
(* z (- (+ (* 1/16 t) (/ (* x y) z)) (* 1/4 (/ (* a b) z))))
(* z (+ (* 1/16 t) (/ (* x y) z)))
(* -1 (* z (+ (* -1 (/ (- (+ c (* x y)) (* 1/4 (* a b))) z)) (* -1/16 t))))
(* -1 (* z (+ (* -1 (/ (- (* x y) (* 1/4 (* a b))) z)) (* -1/16 t))))
(* -1 (* z (+ (* -1 (/ (* x y) z)) (* -1/16 t))))
(* t (- (+ (* 1/16 z) (+ (/ c t) (/ (* x y) t))) (* 1/4 (/ (* a b) t))))
(* t (- (+ (* 1/16 z) (/ (* x y) t)) (* 1/4 (/ (* a b) t))))
(* t (+ (* 1/16 z) (/ (* x y) t)))
(* -1 (* t (+ (* -1 (/ (- (+ c (* x y)) (* 1/4 (* a b))) t)) (* -1/16 z))))
(* -1 (* t (+ (* -1 (/ (- (* x y) (* 1/4 (* a b))) t)) (* -1/16 z))))
(* -1 (* t (+ (* -1 (/ (* x y) t)) (* -1/16 z))))
(+ c (+ (* 1/16 (* t z)) (* x y)))
(+ c (+ (* -1/4 (* a b)) (+ (* 1/16 (* t z)) (* x y))))
(+ (* -1/4 (* a b)) (+ (* 1/16 (* t z)) (* x y)))
(* a b)
(* -1/4 (* a b))
(* a (- (+ (* 1/16 (/ (* t z) a)) (+ (/ c a) (/ (* x y) a))) (* 1/4 b)))
(* a (- (+ (* 1/16 (/ (* t z) a)) (/ (* x y) a)) (* 1/4 b)))
(* -1 (* a (- (* -1 (/ (+ c (+ (* 1/16 (* t z)) (* x y))) a)) (* -1/4 b))))
(* -1 (* a (- (* -1 (/ (+ (* 1/16 (* t z)) (* x y)) a)) (* -1/4 b))))
(* b (- (+ (* 1/16 (/ (* t z) b)) (+ (/ c b) (/ (* x y) b))) (* 1/4 a)))
(* b (- (+ (* 1/16 (/ (* t z) b)) (/ (* x y) b)) (* 1/4 a)))
(* -1 (* b (- (* -1 (/ (+ c (+ (* 1/16 (* t z)) (* x y))) b)) (* -1/4 a))))
(* -1 (* b (- (* -1 (/ (+ (* 1/16 (* t z)) (* x y)) b)) (* -1/4 a))))
c
(* c (- (+ 1 (+ (* 1/16 (/ (* t z) c)) (/ (* x y) c))) (* 1/4 (/ (* a b) c))))
(* -1 (* c (- (* -1 (/ (- (+ (* 1/16 (* t z)) (* x y)) (* 1/4 (* a b))) c)) 1)))
Calls

21 calls:

TimeVariablePointExpression
1.0ms
c
@-inf
((+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+ (* x y) (/ (* z t) 16)) (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+ (* x y) (/ (* z t) 16)) (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+ (* x y) (/ (* z t) 16)) (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+ (* x y) (/ (* z t) 16)) (* a b) (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+ (* x y) (/ (* z t) 16)))
1.0ms
b
@-inf
((+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+ (* x y) (/ (* z t) 16)) (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+ (* x y) (/ (* z t) 16)) (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+ (* x y) (/ (* z t) 16)) (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+ (* x y) (/ (* z t) 16)) (* a b) (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+ (* x y) (/ (* z t) 16)))
1.0ms
a
@-inf
((+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+ (* x y) (/ (* z t) 16)) (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+ (* x y) (/ (* z t) 16)) (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+ (* x y) (/ (* z t) 16)) (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+ (* x y) (/ (* z t) 16)) (* a b) (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+ (* x y) (/ (* z t) 16)))
1.0ms
x
@-inf
((+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+ (* x y) (/ (* z t) 16)) (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+ (* x y) (/ (* z t) 16)) (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+ (* x y) (/ (* z t) 16)) (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+ (* x y) (/ (* z t) 16)) (* a b) (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+ (* x y) (/ (* z t) 16)))
1.0ms
y
@-inf
((+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+ (* x y) (/ (* z t) 16)) (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+ (* x y) (/ (* z t) 16)) (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+ (* x y) (/ (* z t) 16)) (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+ (* x y) (/ (* z t) 16)) (* a b) (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+ (* x y) (/ (* z t) 16)))

simplify1.0ms (0.1%)

Memory
3.0MiB live, 3.0MiB allocated
Algorithm
egg-herbie
Counts
49 → 18
Calls
Call 1
Inputs
(- (+ c (* 1/16 (* t z))) (* 1/4 (* a b)))
(- (+ c (+ (* 1/16 (* t z)) (* x y))) (* 1/4 (* a b)))
(- (* 1/16 (* t z)) (* 1/4 (* a b)))
(- (+ (* 1/16 (* t z)) (* x y)) (* 1/4 (* a b)))
(* 1/16 (* t z))
(+ (* 1/16 (* t z)) (* x y))
(* x y)
(* x (- (+ y (+ (* 1/16 (/ (* t z) x)) (/ c x))) (* 1/4 (/ (* a b) x))))
(* x (- (+ y (* 1/16 (/ (* t z) x))) (* 1/4 (/ (* a b) x))))
(* x (+ y (* 1/16 (/ (* t z) x))))
(* -1 (* x (+ (* -1 y) (* -1 (/ (- (+ c (* 1/16 (* t z))) (* 1/4 (* a b))) x)))))
(* -1 (* x (+ (* -1 y) (* -1 (/ (- (* 1/16 (* t z)) (* 1/4 (* a b))) x)))))
(* -1 (* x (+ (* -1 y) (* -1/16 (/ (* t z) x)))))
(* y (- (+ x (+ (* 1/16 (/ (* t z) y)) (/ c y))) (* 1/4 (/ (* a b) y))))
(* y (- (+ x (* 1/16 (/ (* t z) y))) (* 1/4 (/ (* a b) y))))
(* y (+ x (* 1/16 (/ (* t z) y))))
(* -1 (* y (+ (* -1 x) (* -1 (/ (- (+ c (* 1/16 (* t z))) (* 1/4 (* a b))) y)))))
(* -1 (* y (+ (* -1 x) (* -1 (/ (- (* 1/16 (* t z)) (* 1/4 (* a b))) y)))))
(* -1 (* y (+ (* -1 x) (* -1/16 (/ (* t z) y)))))
(- (+ c (* x y)) (* 1/4 (* a b)))
(- (* x y) (* 1/4 (* a b)))
(* z (- (+ (* 1/16 t) (+ (/ c z) (/ (* x y) z))) (* 1/4 (/ (* a b) z))))
(* z (- (+ (* 1/16 t) (/ (* x y) z)) (* 1/4 (/ (* a b) z))))
(* z (+ (* 1/16 t) (/ (* x y) z)))
(* -1 (* z (+ (* -1 (/ (- (+ c (* x y)) (* 1/4 (* a b))) z)) (* -1/16 t))))
(* -1 (* z (+ (* -1 (/ (- (* x y) (* 1/4 (* a b))) z)) (* -1/16 t))))
(* -1 (* z (+ (* -1 (/ (* x y) z)) (* -1/16 t))))
(* t (- (+ (* 1/16 z) (+ (/ c t) (/ (* x y) t))) (* 1/4 (/ (* a b) t))))
(* t (- (+ (* 1/16 z) (/ (* x y) t)) (* 1/4 (/ (* a b) t))))
(* t (+ (* 1/16 z) (/ (* x y) t)))
(* -1 (* t (+ (* -1 (/ (- (+ c (* x y)) (* 1/4 (* a b))) t)) (* -1/16 z))))
(* -1 (* t (+ (* -1 (/ (- (* x y) (* 1/4 (* a b))) t)) (* -1/16 z))))
(* -1 (* t (+ (* -1 (/ (* x y) t)) (* -1/16 z))))
(+ c (+ (* 1/16 (* t z)) (* x y)))
(+ c (+ (* -1/4 (* a b)) (+ (* 1/16 (* t z)) (* x y))))
(+ (* -1/4 (* a b)) (+ (* 1/16 (* t z)) (* x y)))
(* a b)
(* -1/4 (* a b))
(* a (- (+ (* 1/16 (/ (* t z) a)) (+ (/ c a) (/ (* x y) a))) (* 1/4 b)))
(* a (- (+ (* 1/16 (/ (* t z) a)) (/ (* x y) a)) (* 1/4 b)))
(* -1 (* a (- (* -1 (/ (+ c (+ (* 1/16 (* t z)) (* x y))) a)) (* -1/4 b))))
(* -1 (* a (- (* -1 (/ (+ (* 1/16 (* t z)) (* x y)) a)) (* -1/4 b))))
(* b (- (+ (* 1/16 (/ (* t z) b)) (+ (/ c b) (/ (* x y) b))) (* 1/4 a)))
(* b (- (+ (* 1/16 (/ (* t z) b)) (/ (* x y) b)) (* 1/4 a)))
(* -1 (* b (- (* -1 (/ (+ c (+ (* 1/16 (* t z)) (* x y))) b)) (* -1/4 a))))
(* -1 (* b (- (* -1 (/ (+ (* 1/16 (* t z)) (* x y)) b)) (* -1/4 a))))
c
(* c (- (+ 1 (+ (* 1/16 (/ (* t z) c)) (/ (* x y) c))) (* 1/4 (/ (* a b) c))))
(* -1 (* c (- (* -1 (/ (- (+ (* 1/16 (* t z)) (* x y)) (* 1/4 (* a b))) c)) 1)))
Outputs
(- (+ c (* 1/16 (* t z))) (* 1/4 (* a b)))
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) #s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (/.f64 (*.f64 a b) #s(literal 4 binary64))))) (/.f64 (*.f64 a b) #s(literal 4 binary64))))
(- (+ c (+ (* 1/16 (* t z)) (* x y))) (* 1/4 (* a b)))
(-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) #s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (/.f64 (*.f64 a b) #s(literal 4 binary64))))) (/.f64 (*.f64 a b) #s(literal 4 binary64)))
(- (* 1/16 (* t z)) (* 1/4 (* a b)))
#s(approx (+ (* x y) (/ (* z t) 16)) #s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (/.f64 (*.f64 a b) #s(literal 4 binary64)))))
(- (+ (* 1/16 (* t z)) (* x y)) (* 1/4 (* a b)))
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (/.f64 (*.f64 a b) #s(literal 4 binary64))))
(* 1/16 (* t z))
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y))) (/.f64 (*.f64 a b) #s(literal 4 binary64))))
(+ (* 1/16 (* t z)) (* x y))
(-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y))) (/.f64 (*.f64 a b) #s(literal 4 binary64)))
(* x y)
#s(approx (+ (* x y) (/ (* z t) 16)) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)))
(* x (- (+ y (+ (* 1/16 (/ (* t z) x)) (/ c x))) (* 1/4 (/ (* a b) x))))
#s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y))
(* x (- (+ y (* 1/16 (/ (* t z) x))) (* 1/4 (/ (* a b) x))))
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) (-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) (/.f64 (*.f64 a b) #s(literal 4 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64)))) (/.f64 (*.f64 a b) #s(literal 4 binary64))))
(* x (+ y (* 1/16 (/ (* t z) x))))
(-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) (-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) (/.f64 (*.f64 a b) #s(literal 4 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64)))) (/.f64 (*.f64 a b) #s(literal 4 binary64)))
(* -1 (* x (+ (* -1 y) (* -1 (/ (- (+ c (* 1/16 (* t z))) (* 1/4 (* a b))) x)))))
#s(approx (+ (* x y) (/ (* z t) 16)) (-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) (/.f64 (*.f64 a b) #s(literal 4 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64))))
(* -1 (* x (+ (* -1 y) (* -1 (/ (- (* 1/16 (* t z)) (* 1/4 (* a b))) x)))))
(-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) (/.f64 (*.f64 a b) #s(literal 4 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64)))
(* -1 (* x (+ (* -1 y) (* -1/16 (/ (* t z) x)))))
(+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) #s(approx (+ (* x y) (/ (* z t) 16)) (*.f64 a b))) c)
(* y (- (+ x (+ (* 1/16 (/ (* t z) y)) (/ c y))) (* 1/4 (/ (* a b) y))))
#s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) #s(approx (+ (* x y) (/ (* z t) 16)) (*.f64 a b)))
(* y (- (+ x (* 1/16 (/ (* t z) y))) (* 1/4 (/ (* a b) y))))
#s(approx (+ (* x y) (/ (* z t) 16)) (*.f64 a b))
(* y (+ x (* 1/16 (/ (* t z) y))))
(*.f64 a b)
(* -1 (* y (+ (* -1 x) (* -1 (/ (- (+ c (* 1/16 (* t z))) (* 1/4 (* a b))) y)))))
#s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (/.f64 (*.f64 a b) #s(literal 4 binary64)))
(* -1 (* y (+ (* -1 x) (* -1 (/ (- (* 1/16 (* t z)) (* 1/4 (* a b))) y)))))
#s(approx (+ (* x y) (/ (* z t) 16)) (/.f64 (*.f64 a b) #s(literal 4 binary64)))

rewrite1.0ms (0.1%)

Memory
3.2MiB live, 3.2MiB allocated
Counts
18 → 18
Calls
Call 1
Inputs
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) #s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (/.f64 (*.f64 a b) #s(literal 4 binary64))))) (/.f64 (*.f64 a b) #s(literal 4 binary64))))
(-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) #s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (/.f64 (*.f64 a b) #s(literal 4 binary64))))) (/.f64 (*.f64 a b) #s(literal 4 binary64)))
#s(approx (+ (* x y) (/ (* z t) 16)) #s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (/.f64 (*.f64 a b) #s(literal 4 binary64)))))
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (/.f64 (*.f64 a b) #s(literal 4 binary64))))
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y))) (/.f64 (*.f64 a b) #s(literal 4 binary64))))
(-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y))) (/.f64 (*.f64 a b) #s(literal 4 binary64)))
#s(approx (+ (* x y) (/ (* z t) 16)) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)))
#s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y))
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) (-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) (/.f64 (*.f64 a b) #s(literal 4 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64)))) (/.f64 (*.f64 a b) #s(literal 4 binary64))))
(-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) (-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) (/.f64 (*.f64 a b) #s(literal 4 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64)))) (/.f64 (*.f64 a b) #s(literal 4 binary64)))
#s(approx (+ (* x y) (/ (* z t) 16)) (-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) (/.f64 (*.f64 a b) #s(literal 4 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64))))
(-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) (/.f64 (*.f64 a b) #s(literal 4 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64)))
(+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) #s(approx (+ (* x y) (/ (* z t) 16)) (*.f64 a b))) c)
#s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) #s(approx (+ (* x y) (/ (* z t) 16)) (*.f64 a b)))
#s(approx (+ (* x y) (/ (* z t) 16)) (*.f64 a b))
(*.f64 a b)
#s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (/.f64 (*.f64 a b) #s(literal 4 binary64)))
#s(approx (+ (* x y) (/ (* z t) 16)) (/.f64 (*.f64 a b) #s(literal 4 binary64)))
Outputs
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) #s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (/.f64 (*.f64 a b) #s(literal 4 binary64))))) (/.f64 (*.f64 a b) #s(literal 4 binary64))))
(-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) #s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (/.f64 (*.f64 a b) #s(literal 4 binary64))))) (/.f64 (*.f64 a b) #s(literal 4 binary64)))
#s(approx (+ (* x y) (/ (* z t) 16)) #s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (/.f64 (*.f64 a b) #s(literal 4 binary64)))))
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (/.f64 (*.f64 a b) #s(literal 4 binary64))))
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y))) (/.f64 (*.f64 a b) #s(literal 4 binary64))))
(-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y))) (/.f64 (*.f64 a b) #s(literal 4 binary64)))
#s(approx (+ (* x y) (/ (* z t) 16)) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)))
#s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y))
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) (-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) (/.f64 (*.f64 a b) #s(literal 4 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64)))) (/.f64 (*.f64 a b) #s(literal 4 binary64))))
(-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) (-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) (/.f64 (*.f64 a b) #s(literal 4 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64)))) (/.f64 (*.f64 a b) #s(literal 4 binary64)))
#s(approx (+ (* x y) (/ (* z t) 16)) (-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) (/.f64 (*.f64 a b) #s(literal 4 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64))))
(-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) (/.f64 (*.f64 a b) #s(literal 4 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64)))
(+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) #s(approx (+ (* x y) (/ (* z t) 16)) (*.f64 a b))) c)
#s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) #s(approx (+ (* x y) (/ (* z t) 16)) (*.f64 a b)))
#s(approx (+ (* x y) (/ (* z t) 16)) (*.f64 a b))
(*.f64 a b)
#s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (/.f64 (*.f64 a b) #s(literal 4 binary64)))
#s(approx (+ (* x y) (/ (* z t) 16)) (/.f64 (*.f64 a b) #s(literal 4 binary64)))

eval4.0ms (0.2%)

Memory
10.5MiB live, 10.5MiB allocated
Compiler

Compiled 2 240 to 67 computations (97% saved)

prune10.0ms (0.4%)

Memory
18.4MiB live, 18.4MiB allocated
Pruning

14 alts after pruning (2 fresh and 12 done)

PrunedKeptTotal
New36238
Fresh000
Picked044
Done088
Total361450
Accuracy
99.2%
Counts
50 → 14
Alt Table
Click to see full alt table
StatusAccuracyProgram
75.8%
(+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64)))) c)
49.9%
(+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)) c)
34.4%
(+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) #s(approx (+ (* x y) (/ (* z t) 16)) (+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)) c))) c)
19.9%
(+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) #s(approx (+ (* x y) (/ (* z t) 16)) (*.f64 a b))) c)
79.0%
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (-.f64 (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64))))
20.1%
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) (-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) (/.f64 (*.f64 a b) #s(literal 4 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64)))) (/.f64 (*.f64 a b) #s(literal 4 binary64))))
5.7%
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) (-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) (-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) (/.f64 (*.f64 a b) #s(literal 4 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64)))) (/.f64 (*.f64 a b) #s(literal 4 binary64)))) (/.f64 (*.f64 a b) #s(literal 4 binary64))))
73.3%
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) (+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)) c)) (/.f64 (*.f64 a b) #s(literal 4 binary64))))
53.5%
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y))) (/.f64 (*.f64 a b) #s(literal 4 binary64))))
2.1%
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) #s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (/.f64 (*.f64 a b) #s(literal 4 binary64))))) (/.f64 (*.f64 a b) #s(literal 4 binary64))))
2.2%
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (/.f64 (*.f64 a b) #s(literal 4 binary64))))
56.6%
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64)))))
31.1%
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)))
2.2%
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) #s(approx (+ (* x y) (/ (* z t) 16)) (*.f64 a b))))
Compiler

Compiled 1 308 to 386 computations (70.5% saved)

regimes95.0ms (4.2%)

Memory
-11.9MiB live, 145.2MiB allocated
Counts
16 → 1
Calls
Call 1
Inputs
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) #s(approx (+ (* x y) (/ (* z t) 16)) (*.f64 a b))))
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)))
(+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) #s(approx (+ (* x y) (/ (* z t) 16)) (*.f64 a b))) c)
(+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)) c)
(+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) #s(approx (+ (* x y) (/ (* z t) 16)) (+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)) c))) c)
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (/.f64 (*.f64 a b) #s(literal 4 binary64))))
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64)))))
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y))) (/.f64 (*.f64 a b) #s(literal 4 binary64))))
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) (+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)) c)) (/.f64 (*.f64 a b) #s(literal 4 binary64))))
(+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64)))) c)
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) #s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (/.f64 (*.f64 a b) #s(literal 4 binary64))))) (/.f64 (*.f64 a b) #s(literal 4 binary64))))
(+.f64 (-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) (/.f64 (*.f64 a b) #s(literal 4 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64))) c)
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (-.f64 (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64))))
(+.f64 (-.f64 (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64))) c)
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) (-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) (/.f64 (*.f64 a b) #s(literal 4 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64)))) (/.f64 (*.f64 a b) #s(literal 4 binary64))))
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) (-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) (-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) (/.f64 (*.f64 a b) #s(literal 4 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64)))) (/.f64 (*.f64 a b) #s(literal 4 binary64)))) (/.f64 (*.f64 a b) #s(literal 4 binary64))))
Outputs
(+.f64 (-.f64 (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64))) c)
Calls

15 calls:

14.0ms
b
10.0ms
y
9.0ms
(*.f64 x y)
6.0ms
(*.f64 a b)
5.0ms
x
Results
AccuracySegmentsBranch
99.2%1x
99.2%1y
99.2%1z
99.2%1t
99.2%1a
99.2%1b
99.2%1c
99.2%1(+.f64 (-.f64 (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64))) c)
99.2%1(-.f64 (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64)))
99.2%1(+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64)))
99.2%1(*.f64 x y)
99.2%1(/.f64 (*.f64 z t) #s(literal 16 binary64))
99.2%1(*.f64 z t)
99.2%1(/.f64 (*.f64 a b) #s(literal 4 binary64))
99.2%1(*.f64 a b)
Compiler

Compiled 67 to 138 computations (-106% saved)

regimes72.0ms (3.2%)

Memory
-17.3MiB live, 142.1MiB allocated
Counts
13 → 3
Calls
Call 1
Inputs
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) #s(approx (+ (* x y) (/ (* z t) 16)) (*.f64 a b))))
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)))
(+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) #s(approx (+ (* x y) (/ (* z t) 16)) (*.f64 a b))) c)
(+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)) c)
(+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) #s(approx (+ (* x y) (/ (* z t) 16)) (+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)) c))) c)
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (/.f64 (*.f64 a b) #s(literal 4 binary64))))
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64)))))
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y))) (/.f64 (*.f64 a b) #s(literal 4 binary64))))
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) (+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)) c)) (/.f64 (*.f64 a b) #s(literal 4 binary64))))
(+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64)))) c)
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) #s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (/.f64 (*.f64 a b) #s(literal 4 binary64))))) (/.f64 (*.f64 a b) #s(literal 4 binary64))))
(+.f64 (-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) (/.f64 (*.f64 a b) #s(literal 4 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64))) c)
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (-.f64 (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64))))
Outputs
(+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64)))) c)
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) (+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)) c)) (/.f64 (*.f64 a b) #s(literal 4 binary64))))
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (-.f64 (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64))))
Calls

15 calls:

7.0ms
a
6.0ms
x
6.0ms
(-.f64 (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64)))
5.0ms
(/.f64 (*.f64 a b) #s(literal 4 binary64))
5.0ms
y
Results
AccuracySegmentsBranch
82.4%3x
84.6%4y
90.2%3z
89.0%3t
87.6%3a
89.8%3b
91.6%3c
85.7%3(+.f64 (-.f64 (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64))) c)
88.7%3(-.f64 (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64)))
91.6%3(+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64)))
84.4%3(*.f64 x y)
93.4%3(/.f64 (*.f64 z t) #s(literal 16 binary64))
93.4%3(*.f64 z t)
92.5%3(/.f64 (*.f64 a b) #s(literal 4 binary64))
92.5%3(*.f64 a b)
Compiler

Compiled 67 to 138 computations (-106% saved)

regimes9.0ms (0.4%)

Memory
18.2MiB live, 18.2MiB allocated
Counts
12 → 3
Calls
Call 1
Inputs
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) #s(approx (+ (* x y) (/ (* z t) 16)) (*.f64 a b))))
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)))
(+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) #s(approx (+ (* x y) (/ (* z t) 16)) (*.f64 a b))) c)
(+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)) c)
(+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) #s(approx (+ (* x y) (/ (* z t) 16)) (+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)) c))) c)
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (/.f64 (*.f64 a b) #s(literal 4 binary64))))
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64)))))
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y))) (/.f64 (*.f64 a b) #s(literal 4 binary64))))
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) (+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)) c)) (/.f64 (*.f64 a b) #s(literal 4 binary64))))
(+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64)))) c)
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) #s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (/.f64 (*.f64 a b) #s(literal 4 binary64))))) (/.f64 (*.f64 a b) #s(literal 4 binary64))))
(+.f64 (-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) (/.f64 (*.f64 a b) #s(literal 4 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64))) c)
Outputs
(+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64)))) c)
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) (+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)) c)) (/.f64 (*.f64 a b) #s(literal 4 binary64))))
(+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64)))) c)
Calls

2 calls:

4.0ms
(/.f64 (*.f64 z t) #s(literal 16 binary64))
4.0ms
(*.f64 z t)
Results
AccuracySegmentsBranch
93.3%3(/.f64 (*.f64 z t) #s(literal 16 binary64))
93.3%3(*.f64 z t)
Compiler

Compiled 8 to 18 computations (-125% saved)

regimes25.0ms (1.1%)

Memory
11.7MiB live, 50.7MiB allocated
Counts
9 → 3
Calls
Call 1
Inputs
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) #s(approx (+ (* x y) (/ (* z t) 16)) (*.f64 a b))))
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)))
(+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) #s(approx (+ (* x y) (/ (* z t) 16)) (*.f64 a b))) c)
(+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)) c)
(+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) #s(approx (+ (* x y) (/ (* z t) 16)) (+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)) c))) c)
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (/.f64 (*.f64 a b) #s(literal 4 binary64))))
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64)))))
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y))) (/.f64 (*.f64 a b) #s(literal 4 binary64))))
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) (+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)) c)) (/.f64 (*.f64 a b) #s(literal 4 binary64))))
Outputs
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64)))))
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) (+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)) c)) (/.f64 (*.f64 a b) #s(literal 4 binary64))))
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64)))))
Calls

7 calls:

4.0ms
(*.f64 a b)
3.0ms
z
3.0ms
c
3.0ms
(/.f64 (*.f64 a b) #s(literal 4 binary64))
3.0ms
(+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64)))
Results
AccuracySegmentsBranch
85.4%3z
87.9%3(+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64)))
77.1%3c
80.4%3(/.f64 (*.f64 a b) #s(literal 4 binary64))
80.4%3(*.f64 a b)
90.0%3(/.f64 (*.f64 z t) #s(literal 16 binary64))
90.0%3(*.f64 z t)
Compiler

Compiled 27 to 62 computations (-129.6% saved)

regimes50.0ms (2.2%)

Memory
-2.0MiB live, 118.0MiB allocated
Counts
8 → 4
Calls
Call 1
Inputs
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) #s(approx (+ (* x y) (/ (* z t) 16)) (*.f64 a b))))
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)))
(+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) #s(approx (+ (* x y) (/ (* z t) 16)) (*.f64 a b))) c)
(+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)) c)
(+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) #s(approx (+ (* x y) (/ (* z t) 16)) (+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)) c))) c)
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (/.f64 (*.f64 a b) #s(literal 4 binary64))))
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64)))))
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y))) (/.f64 (*.f64 a b) #s(literal 4 binary64))))
Outputs
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64)))))
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y))) (/.f64 (*.f64 a b) #s(literal 4 binary64))))
(+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)) c)
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64)))))
Calls

15 calls:

4.0ms
(+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64)))
4.0ms
x
4.0ms
(/.f64 (*.f64 z t) #s(literal 16 binary64))
3.0ms
y
3.0ms
c
Results
AccuracySegmentsBranch
68.0%4c
72.7%3(/.f64 (*.f64 a b) #s(literal 4 binary64))
72.7%3(*.f64 a b)
56.6%1x
61.9%4y
61.7%3(*.f64 x y)
69.5%3z
66.6%5(+.f64 (-.f64 (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64))) c)
66.4%3a
72.9%4(+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64)))
74.3%6(-.f64 (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64)))
71.9%4t
67.8%3b
75.4%4(/.f64 (*.f64 z t) #s(literal 16 binary64))
75.4%4(*.f64 z t)
Compiler

Compiled 67 to 138 computations (-106% saved)

regimes25.0ms (1.1%)

Memory
-16.9MiB live, 61.3MiB allocated
Counts
7 → 3
Calls
Call 1
Inputs
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) #s(approx (+ (* x y) (/ (* z t) 16)) (*.f64 a b))))
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)))
(+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) #s(approx (+ (* x y) (/ (* z t) 16)) (*.f64 a b))) c)
(+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)) c)
(+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) #s(approx (+ (* x y) (/ (* z t) 16)) (+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)) c))) c)
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (/.f64 (*.f64 a b) #s(literal 4 binary64))))
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64)))))
Outputs
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64)))))
(+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)) c)
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64)))))
Calls

8 calls:

4.0ms
(/.f64 (*.f64 z t) #s(literal 16 binary64))
4.0ms
z
3.0ms
t
3.0ms
(-.f64 (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64)))
3.0ms
(*.f64 a b)
Results
AccuracySegmentsBranch
66.2%3z
66.0%3(-.f64 (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64)))
65.1%3t
67.8%3(+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64)))
59.2%2(/.f64 (*.f64 a b) #s(literal 4 binary64))
59.2%2(*.f64 a b)
68.9%3(/.f64 (*.f64 z t) #s(literal 16 binary64))
68.9%3(*.f64 z t)
Compiler

Compiled 42 to 78 computations (-85.7% saved)

regimes40.0ms (1.8%)

Memory
16.8MiB live, 97.1MiB allocated
Counts
6 → 1
Calls
Call 1
Inputs
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) #s(approx (+ (* x y) (/ (* z t) 16)) (*.f64 a b))))
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)))
(+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) #s(approx (+ (* x y) (/ (* z t) 16)) (*.f64 a b))) c)
(+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)) c)
(+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) #s(approx (+ (* x y) (/ (* z t) 16)) (+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)) c))) c)
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (/.f64 (*.f64 a b) #s(literal 4 binary64))))
Outputs
(+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)) c)
Calls

15 calls:

4.0ms
c
3.0ms
(+.f64 (-.f64 (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64))) c)
3.0ms
t
2.0ms
a
2.0ms
y
Results
AccuracySegmentsBranch
49.9%1x
49.9%1y
49.9%1(/.f64 (*.f64 a b) #s(literal 4 binary64))
49.9%1(*.f64 a b)
49.9%1(*.f64 x y)
49.9%1(+.f64 (-.f64 (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64))) c)
49.9%1t
49.9%1(-.f64 (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64)))
49.9%1z
49.9%1a
49.9%1c
49.9%1b
49.9%1(+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64)))
49.9%1(/.f64 (*.f64 z t) #s(literal 16 binary64))
49.9%1(*.f64 z t)
Compiler

Compiled 67 to 138 computations (-106% saved)

regimes32.0ms (1.4%)

Memory
-17.1MiB live, 59.8MiB allocated
Counts
3 → 3
Calls
Call 1
Inputs
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) #s(approx (+ (* x y) (/ (* z t) 16)) (*.f64 a b))))
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)))
(+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) #s(approx (+ (* x y) (/ (* z t) 16)) (*.f64 a b))) c)
Outputs
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)))
(+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) #s(approx (+ (* x y) (/ (* z t) 16)) (*.f64 a b))) c)
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)))
Calls

15 calls:

4.0ms
(/.f64 (*.f64 a b) #s(literal 4 binary64))
4.0ms
(*.f64 x y)
2.0ms
a
2.0ms
(-.f64 (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64)))
2.0ms
b
Results
AccuracySegmentsBranch
40.1%3x
31.1%1b
44.4%3(*.f64 x y)
31.1%1(/.f64 (*.f64 z t) #s(literal 16 binary64))
31.1%1(*.f64 z t)
37.6%3c
35.8%3(+.f64 (-.f64 (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64))) c)
41.0%3(-.f64 (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64)))
42.6%3(+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64)))
31.1%1z
31.1%1t
33.4%2a
31.1%1(/.f64 (*.f64 a b) #s(literal 4 binary64))
31.1%1(*.f64 a b)
39.4%3y
Compiler

Compiled 67 to 138 computations (-106% saved)

regimes12.0ms (0.5%)

Memory
29.2MiB live, 29.2MiB allocated
Counts
2 → 1
Calls
Call 1
Inputs
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) #s(approx (+ (* x y) (/ (* z t) 16)) (*.f64 a b))))
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)))
Outputs
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)))
Calls

8 calls:

1.0ms
(+.f64 (-.f64 (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64))) c)
1.0ms
(-.f64 (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64)))
1.0ms
(+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64)))
1.0ms
y
1.0ms
x
Results
AccuracySegmentsBranch
31.1%1a
31.1%1(+.f64 (-.f64 (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64))) c)
31.1%1c
31.1%1y
31.1%1x
31.1%1(-.f64 (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64)))
31.1%1(+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64)))
31.1%1(*.f64 x y)
Compiler

Compiled 48 to 81 computations (-68.8% saved)

regimes25.0ms (1.1%)

Memory
-37.2MiB live, 44.1MiB allocated
Accuracy

Total -0.0b remaining (-0%)

Threshold costs -0b (-0%)

Counts
1 → 1
Calls
Call 1
Inputs
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) #s(approx (+ (* x y) (/ (* z t) 16)) (*.f64 a b))))
Outputs
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) #s(approx (+ (* x y) (/ (* z t) 16)) (*.f64 a b))))
Calls

15 calls:

6.0ms
x
3.0ms
c
1.0ms
(*.f64 a b)
1.0ms
(+.f64 (-.f64 (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64))) c)
1.0ms
(-.f64 (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64)))
Results
AccuracySegmentsBranch
2.2%1c
2.2%1(/.f64 (*.f64 a b) #s(literal 4 binary64))
2.2%1(*.f64 a b)
2.2%1(/.f64 (*.f64 z t) #s(literal 16 binary64))
2.2%1(*.f64 z t)
2.2%1a
2.2%1(+.f64 (-.f64 (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64))) c)
2.2%1t
2.2%1b
2.2%1y
2.2%1(+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64)))
2.2%1z
2.2%1(-.f64 (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64)))
2.2%1(*.f64 x y)
2.2%1x
Compiler

Compiled 67 to 138 computations (-106% saved)

bsearch23.0ms (1%)

Memory
28.5MiB live, 28.5MiB allocated
Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
11.0ms
1.2334370860579398e+75
1.55825833652655e+76
9.0ms
-2.4639220243742298e-82
-1.1956964901941606e-82
Samples
13.0ms176×0valid
Compiler

Compiled 936 to 601 computations (35.8% saved)

Precisions
Click to see histograms. Total time spent on operations: 7.0ms
ival-div: 2.0ms (27.8% of total)
ival-add: 2.0ms (27.8% of total)
ival-mult: 2.0ms (27.8% of total)
ival-sub: 1.0ms (13.9% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

bsearch28.0ms (1.2%)

Memory
-4.8MiB live, 31.0MiB allocated
Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
25.0ms
3.1461959437138824e+27
2.8181665859198988e+38
1.0ms
-2.4639220243742298e-82
-1.1956964901941606e-82
Samples
18.0ms160×0valid
Compiler

Compiled 1 220 to 777 computations (36.3% saved)

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

bsearch41.0ms (1.8%)

Memory
12.8MiB live, 48.1MiB allocated
Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
13.0ms
1.55825833652655e+76
6.037561857954571e+77
25.0ms
-1.1440748357202315e+219
-5.542514864015013e+209
Samples
19.0ms256×0valid
Compiler

Compiled 1 556 to 843 computations (45.8% saved)

Precisions
Click to see histograms. Total time spent on operations: 10.0ms
ival-div: 3.0ms (28.7% of total)
ival-mult: 3.0ms (28.7% of total)
ival-add: 2.0ms (19.1% of total)
ival-sub: 1.0ms (9.6% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

bsearch25.0ms (1.1%)

Memory
-18.3MiB live, 25.7MiB allocated
Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
narrow-enough
Steps
TimeLeftRight
6.0ms
1.2334370860579398e+75
1.55825833652655e+76
17.0ms
1.0179138298182321e-8
1.720632791513824e-8
1.0ms
-2.4639220243742298e-82
-1.1956964901941606e-82
Samples
18.0ms112×0valid
Compiler

Compiled 1 158 to 725 computations (37.4% saved)

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

bsearch7.0ms (0.3%)

Memory
16.3MiB live, 16.3MiB allocated
Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
1.0ms
1.2334370860579398e+75
1.55825833652655e+76
5.0ms
-1.1421773333082336e-111
-8.503308191741856e-112
Samples
4.0ms48×0valid
Compiler

Compiled 578 to 423 computations (26.8% saved)

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

bsearch46.0ms (2%)

Memory
10.2MiB live, 87.1MiB allocated
Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
20.0ms
0.003217795527057966
9636202795894.91
21.0ms
-1.1573252275197185e-32
-1.7836066254535544e-49
Samples
29.0ms320×0valid
Compiler

Compiled 1 340 to 847 computations (36.8% saved)

Precisions
Click to see histograms. Total time spent on operations: 15.0ms
ival-mult: 6.0ms (39.3% of total)
ival-div: 4.0ms (26.2% of total)
ival-add: 3.0ms (19.7% of total)
ival-sub: 1.0ms (6.6% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

simplify11.0ms (0.5%)

Memory
-25.1MiB live, 12.8MiB allocated
Algorithm
egg-herbie
Calls
Call 1
Inputs
(+.f64 (-.f64 (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64))) c)
(if (<=.f64 (*.f64 z t) #s(literal -1922388332328819/8543948143683640329580086824678208458410818089426611079788166431288878903122562200091848347746304 binary64)) (+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64)))) c) (if (<=.f64 (*.f64 z t) #s(literal 1400000000000000057849498072972706047108533735395515294388004365971790757888 binary64)) #s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) (+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)) c)) (/.f64 (*.f64 a b) #s(literal 4 binary64)))) #s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (-.f64 (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64))))))
(if (<=.f64 (*.f64 z t) #s(literal -1922388332328819/8543948143683640329580086824678208458410818089426611079788166431288878903122562200091848347746304 binary64)) (+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64)))) c) (if (<=.f64 (*.f64 z t) #s(literal 25499999999999998395995608055808 binary64)) #s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) (+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)) c)) (/.f64 (*.f64 a b) #s(literal 4 binary64)))) (+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64)))) c)))
(if (<=.f64 (*.f64 z t) #s(literal -37000000000000000953162443613506581173088006232143718832563045320874146280388408646066781967190607850431075910118194841375267156633687519223639743045385361117232366366752458062652155829464482917323127571250937856 binary64)) #s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64))))) (if (<=.f64 (*.f64 z t) #s(literal 380000000000000011455098931408117341711416484134281558953778987194962140987392 binary64)) #s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) (+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)) c)) (/.f64 (*.f64 a b) #s(literal 4 binary64)))) #s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64)))))))
(if (<=.f64 (*.f64 z t) #s(literal -1922388332328819/8543948143683640329580086824678208458410818089426611079788166431288878903122562200091848347746304 binary64)) #s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64))))) (if (<=.f64 (*.f64 z t) #s(literal 146393360968959/9444732965739290427392 binary64)) #s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y))) (/.f64 (*.f64 a b) #s(literal 4 binary64)))) (if (<=.f64 (*.f64 z t) #s(literal 1999999999999999853079562352962397847017606430398935774525292839560724611072 binary64)) (+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)) c) #s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64))))))))
(if (<=.f64 (*.f64 z t) #s(literal -6065214955889283/5415370496329716522614090203404460358274291162843391748379842930887932241807862544999950011922147613471467208908991351228465152 binary64)) #s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64))))) (if (<=.f64 (*.f64 z t) #s(literal 1999999999999999853079562352962397847017606430398935774525292839560724611072 binary64)) (+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)) c) #s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64)))))))
(+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)) c)
(if (<=.f64 (*.f64 x y) #s(literal -7745958677853785/730750818665451459101842416358141509827966271488 binary64)) #s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y))) (if (<=.f64 (*.f64 x y) #s(literal 662929865148937/72057594037927936 binary64)) (+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) #s(approx (+ (* x y) (/ (* z t) 16)) (*.f64 a b))) c) #s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)))))
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)))
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) #s(approx (+ (* x y) (/ (* z t) 16)) (*.f64 a b))))
Outputs
(+.f64 (-.f64 (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64))) c)
(if (<=.f64 (*.f64 z t) #s(literal -1922388332328819/8543948143683640329580086824678208458410818089426611079788166431288878903122562200091848347746304 binary64)) (+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64)))) c) (if (<=.f64 (*.f64 z t) #s(literal 1400000000000000057849498072972706047108533735395515294388004365971790757888 binary64)) #s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) (+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)) c)) (/.f64 (*.f64 a b) #s(literal 4 binary64)))) #s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (-.f64 (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64))))))
(if (<=.f64 (*.f64 z t) #s(literal -1922388332328819/8543948143683640329580086824678208458410818089426611079788166431288878903122562200091848347746304 binary64)) (+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64)))) c) (if (<=.f64 (*.f64 z t) #s(literal 25499999999999998395995608055808 binary64)) #s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) (+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)) c)) (/.f64 (*.f64 a b) #s(literal 4 binary64)))) (+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64)))) c)))
(if (<=.f64 (*.f64 z t) #s(literal -37000000000000000953162443613506581173088006232143718832563045320874146280388408646066781967190607850431075910118194841375267156633687519223639743045385361117232366366752458062652155829464482917323127571250937856 binary64)) #s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64))))) (if (<=.f64 (*.f64 z t) #s(literal 380000000000000011455098931408117341711416484134281558953778987194962140987392 binary64)) #s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) (+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)) c)) (/.f64 (*.f64 a b) #s(literal 4 binary64)))) #s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64)))))))
(if (<=.f64 (*.f64 z t) #s(literal -1922388332328819/8543948143683640329580086824678208458410818089426611079788166431288878903122562200091848347746304 binary64)) #s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64))))) (if (<=.f64 (*.f64 z t) #s(literal 146393360968959/9444732965739290427392 binary64)) #s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (-.f64 #s(approx (+ (* x y) (/ (* z t) 16)) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y))) (/.f64 (*.f64 a b) #s(literal 4 binary64)))) (if (<=.f64 (*.f64 z t) #s(literal 1999999999999999853079562352962397847017606430398935774525292839560724611072 binary64)) (+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)) c) #s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64))))))))
(if (<=.f64 (*.f64 z t) #s(literal -6065214955889283/5415370496329716522614090203404460358274291162843391748379842930887932241807862544999950011922147613471467208908991351228465152 binary64)) #s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64))))) (if (<=.f64 (*.f64 z t) #s(literal 1999999999999999853079562352962397847017606430398935774525292839560724611072 binary64)) (+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)) c) #s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64)))))))
(+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)) c)
(if (<=.f64 (*.f64 x y) #s(literal -7745958677853785/730750818665451459101842416358141509827966271488 binary64)) #s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y))) (if (<=.f64 (*.f64 x y) #s(literal 662929865148937/72057594037927936 binary64)) (+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) #s(approx (+ (* x y) (/ (* z t) 16)) (*.f64 a b))) c) #s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)))))
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)))
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) #s(approx (+ (* x y) (/ (* z t) 16)) (*.f64 a b))))

soundness3.0ms (0.1%)

Memory
7.0MiB live, 7.0MiB allocated
Stop Event
fuel
Compiler

Compiled 937 to 76 computations (91.9% saved)

preprocess52.0ms (2.3%)

Memory
15.2MiB live, 98.9MiB allocated
Compiler

Compiled 1 908 to 186 computations (90.3% saved)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

Profiling

Loading profile data...