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

Time bar (total: 2.2s)

start0.0ms (0%)

Memory
0.1MiB live, 0.1MiB allocated

analyze1.0ms (0%)

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

Compiled 19 to 19 computations (0% saved)

sample1.1s (49.7%)

Memory
12.0MiB live, 1 845.5MiB allocated
Samples
720.0ms8 256×0valid
Precisions
Click to see histograms. Total time spent on operations: 428.0ms
ival-mult: 171.0ms (40% of total)
ival-div: 130.0ms (30.4% of total)
ival-add: 76.0ms (17.8% of total)
ival-sub: 34.0ms (8% of total)
exact: 8.0ms (1.9% of total)
ival-true: 6.0ms (1.4% of total)
ival-assert: 3.0ms (0.7% of total)
Bogosity

explain175.0ms (8%)

Memory
5.1MiB live, 276.3MiB allocated
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
20-0-(+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64)))
10-0-(-.f64 (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64))) (/.f64 (*.f64 a b) #s(literal 4 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 (*.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)overflow40
(/.f64 (*.f64 z t) #s(literal 16 binary64))overflow32
(*.f64 z t)overflow32
-.f64(-.f64 (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64)))nan-rescue10
(/.f64 (*.f64 z t) #s(literal 16 binary64))overflow32
(+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64)))overflow66
(*.f64 x y)overflow40
(*.f64 z t)overflow32
(/.f64 (*.f64 a b) #s(literal 4 binary64))overflow31
(*.f64 a b)overflow31
Confusion
Predicted +Predicted -
+30
-0253
Precision
1.0
Recall
1.0
Confusion?
Predicted +Predicted MaybePredicted -
+300
-00253
Precision?
1.0
Recall?
1.0
Freqs
test
numberfreq
0253
13
Total Confusion?
Predicted +Predicted MaybePredicted -
+100
-000
Precision?
1.0
Recall?
1.0
Samples
55.0ms512×0valid
Compiler

Compiled 228 to 72 computations (68.4% saved)

Precisions
Click to see histograms. Total time spent on operations: 24.0ms
ival-mult: 10.0ms (42.2% of total)
ival-div: 6.0ms (25.3% of total)
ival-add: 4.0ms (16.9% of total)
ival-sub: 2.0ms (8.4% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

preprocess6.0ms (0.3%)

Memory
10.1MiB live, 10.1MiB 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.1MiB live, 0.1MiB 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
98.8%
(+.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

localize38.0ms (1.7%)

Memory
6.6MiB live, 47.6MiB allocated
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
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.0078125
(/.f64 (*.f64 a b) #s(literal 4 binary64))
accuracy0.20703125000000003
(-.f64 (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64)))
accuracy0.41406250000000006
(+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64)))
Samples
24.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 (42.6% of total)
ival-div: 3.0ms (25.6% of total)
ival-add: 2.0ms (17% of total)
ival-sub: 1.0ms (8.5% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series21.0ms (0.9%)

Memory
-11.4MiB live, 25.7MiB 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
5.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))
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
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))
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) (/ (* a b) 4))

simplify1.0ms (0%)

Memory
1.2MiB live, 1.2MiB 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.3MiB live, 3.3MiB allocated
Pruning

5 alts after pruning (4 fresh and 1 done)

PrunedKeptTotal
New6410
Fresh000
Picked011
Done000
Total6511
Accuracy
99.6%
Counts
11 → 5
Alt Table
Click to see full alt table
StatusAccuracyProgram
98.8%
(+.f64 (-.f64 (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64))) c)
19.4%
(+.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)
73.3%
(+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64)))) c)
48.6%
(+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)) c)
80.6%
#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.1%)

Memory
2.0MiB live, 2.0MiB 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

localize51.0ms (2.3%)

Memory
-7.8MiB live, 66.2MiB allocated
Localize:

Found 15 expressions of interest:

NewMetricScoreProgram
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.0078125
(/.f64 (*.f64 a b) #s(literal 4 binary64))
accuracy0.20703125000000003
(-.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.015352723052956
#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.41406250000000006
(+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64)))
accuracy18.507134581877875
#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)
accuracy39.952408160324275
#s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y))
accuracy0.0078125
(/.f64 (*.f64 a b) #s(literal 4 binary64))
accuracy0.20703125000000003
(-.f64 (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64)))
accuracy0.41406250000000006
(+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64)))
accuracy11.652760395494525
#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
36.0ms256×0valid
Compiler

Compiled 498 to 53 computations (89.4% saved)

Precisions
Click to see histograms. Total time spent on operations: 12.0ms
ival-mult: 5.0ms (41.7% of total)
ival-div: 3.0ms (25% of total)
ival-add: 2.0ms (16.7% 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)

series21.0ms (0.9%)

Memory
-18.6MiB live, 24.8MiB 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
6.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))
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
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
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))
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))

simplify1.0ms (0%)

Memory
1.5MiB live, 1.5MiB 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
1.3MiB live, 1.3MiB 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
5.9MiB live, 5.9MiB allocated
Compiler

Compiled 1 179 to 65 computations (94.5% saved)

prune6.0ms (0.3%)

Memory
10.0MiB live, 10.0MiB allocated
Pruning

9 alts after pruning (6 fresh and 3 done)

PrunedKeptTotal
New25631
Fresh000
Picked134
Done101
Total27936
Accuracy
100.0%
Counts
36 → 9
Alt Table
Click to see full alt table
StatusAccuracyProgram
73.3%
(+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64)))) c)
48.6%
(+.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)
80.6%
#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))))
74.5%
#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))))
56.9%
#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.0%
#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))))
55.2%
#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 633 to 347 computations (45.2% saved)

simplify2.0ms (0.1%)

Memory
2.4MiB live, 2.4MiB 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)

localize53.0ms (2.4%)

Memory
-0.1MiB live, 74.5MiB allocated
Localize:

Found 19 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(*.f64 x y)
accuracy0.41406250000000006
(+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64)))
accuracy11.652760395494525
#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)))))
accuracy18.507134581877875
#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.0078125
(/.f64 (*.f64 a b) #s(literal 4 binary64))
accuracy11.652760395494525
#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.73146717499994
#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)
accuracy18.507134581877875
#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)))
accuracy28.17062844144323
#s(approx (+ (* x y) (/ (* z t) 16)) (+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)) c))
accuracy39.952408160324275
#s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y))
accuracy0.0
(*.f64 x y)
accuracy11.652760395494525
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)))
accuracy39.952408160324275
#s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y))
accuracy0.20703125000000003
(-.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)))
accuracy11.652760395494525
#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))))
accuracy28.17062844144323
#s(approx (+ (* x y) (/ (* z t) 16)) (+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)) c))
accuracy39.952408160324275
#s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y))
Samples
37.0ms256×0valid
Compiler

Compiled 886 to 56 computations (93.7% saved)

Precisions
Click to see histograms. Total time spent on operations: 17.0ms
ival-mult: 8.0ms (45.9% of total)
ival-add: 5.0ms (28.7% of total)
ival-div: 3.0ms (17.2% of total)
ival-sub: 1.0ms (5.7% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series22.0ms (1%)

Memory
-0.3MiB live, 36.5MiB 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
4.0ms
t
@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
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)))

simplify1.0ms (0%)

Memory
1.8MiB live, 1.8MiB 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
2.0MiB live, 2.0MiB 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
9.3MiB live, 9.3MiB allocated
Compiler

Compiled 2 309 to 84 computations (96.4% saved)

prune19.0ms (0.9%)

Memory
-30.8MiB live, 14.8MiB allocated
Pruning

10 alts after pruning (2 fresh and 8 done)

PrunedKeptTotal
New44145
Fresh011
Picked055
Done033
Total441054
Accuracy
100.0%
Counts
54 → 10
Alt Table
Click to see full alt table
StatusAccuracyProgram
73.3%
(+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64)))) c)
48.6%
(+.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.3%
(+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) #s(approx (+ (* x y) (/ (* z t) 16)) (*.f64 a b))) c)
80.6%
#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))))
74.5%
#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))))
56.9%
#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.0%
#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))))
55.2%
#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 388 to 228 computations (41.2% saved)

simplify1.0ms (0%)

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

Found 8 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
#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))))
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)) (*.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)
(+.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)) (*.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)
(+.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

localize40.0ms (1.8%)

Memory
18.5MiB live, 55.1MiB allocated
Localize:

Found 8 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)
accuracy18.507134581877875
#s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) #s(approx (+ (* x y) (/ (* z t) 16)) (*.f64 a b)))
accuracy62.015017311901154
#s(approx (+ (* x y) (/ (* z t) 16)) (*.f64 a b))
accuracy0.20703125000000003
(-.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)))
accuracy11.652760395494525
#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))))
accuracy18.507134581877875
#s(approx (+ (* x y) (/ (* z t) 16)) #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)))
accuracy39.952408160324275
#s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y))
Samples
31.0ms256×0valid
Compiler

Compiled 352 to 47 computations (86.6% saved)

Precisions
Click to see histograms. Total time spent on operations: 18.0ms
ival-mult: 11.0ms (62.7% of total)
ival-div: 3.0ms (17.1% of total)
ival-add: 2.0ms (11.4% of total)
ival-sub: 1.0ms (5.7% 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
-14.8MiB live, 22.4MiB allocated
Counts
8 → 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)) (*.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 #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)
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
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)) (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+ (* x y) (/ (* z t) 16)) (* a b))
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)) (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+ (* x y) (/ (* z t) 16)) (* a b))
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)) (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+ (* x y) (/ (* z t) 16)) (* a b))
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)) (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+ (* x y) (/ (* z t) 16)) (* a b))
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)) (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+ (* x y) (/ (* z t) 16)) (* a b))

simplify1.0ms (0%)

Memory
1.5MiB live, 1.5MiB allocated
Algorithm
egg-herbie
Counts
49 → 8
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)) (*.f64 x y))) (/.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)) (*.f64 x y))) (/.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)) (*.f64 x y)))
(- (+ (* 1/16 (* t z)) (* x y)) (* 1/4 (* a b)))
#s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y))
(* 1/16 (* t z))
(+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) #s(approx (+ (* x y) (/ (* z t) 16)) (*.f64 a b))) c)
(+ (* 1/16 (* t z)) (* x y))
#s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) #s(approx (+ (* x y) (/ (* z t) 16)) (*.f64 a b)))
(* x y)
#s(approx (+ (* x y) (/ (* z t) 16)) (*.f64 a b))
(* x (- (+ y (+ (* 1/16 (/ (* t z) x)) (/ c x))) (* 1/4 (/ (* a b) x))))
(*.f64 a b)

rewrite1.0ms (0%)

Memory
1.1MiB live, 1.1MiB allocated
Counts
8 → 8
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)) (*.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 #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)
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)) (*.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 #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)

eval2.0ms (0.1%)

Memory
3.6MiB live, 3.6MiB allocated
Compiler

Compiled 756 to 41 computations (94.6% saved)

prune7.0ms (0.3%)

Memory
14.1MiB live, 14.1MiB allocated
Pruning

11 alts after pruning (1 fresh and 10 done)

PrunedKeptTotal
New15116
Fresh000
Picked022
Done088
Total151126
Accuracy
100.0%
Counts
26 → 11
Alt Table
Click to see full alt table
StatusAccuracyProgram
73.3%
(+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64)))) c)
48.6%
(+.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.3%
(+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) #s(approx (+ (* x y) (/ (* z t) 16)) (*.f64 a b))) c)
80.6%
#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))))
74.5%
#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))))
56.9%
#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.0%
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (*.f64 a b))
2.0%
#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))))
55.2%
#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 858 to 298 computations (65.3% saved)

regimes77.0ms (3.5%)

Memory
-22.4MiB live, 180.8MiB allocated
Counts
13 → 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)) (*.f64 x y)))
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (*.f64 a b))
(+.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)
(+.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)
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:

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

Compiled 67 to 138 computations (-106% saved)

regimes68.0ms (3.1%)

Memory
22.5MiB live, 141.7MiB 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)) (*.f64 x y)))
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (*.f64 a b))
(+.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)
(+.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
#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 #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 (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64))))
Calls

15 calls:

6.0ms
t
5.0ms
(/.f64 (*.f64 z t) #s(literal 16 binary64))
5.0ms
c
4.0ms
y
4.0ms
x
Results
AccuracySegmentsBranch
80.6%1x
82.4%2y
89.2%3z
87.7%3t
90.2%3a
89.9%3b
91.1%3c
86.9%3(+.f64 (-.f64 (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64))) c)
91.4%3(-.f64 (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64)))
90.0%3(+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64)))
82.4%2(*.f64 x y)
92.8%3(/.f64 (*.f64 z t) #s(literal 16 binary64))
92.8%3(*.f64 z t)
95.7%3(/.f64 (*.f64 a b) #s(literal 4 binary64))
95.7%3(*.f64 a b)
Compiler

Compiled 67 to 138 computations (-106% saved)

regimes18.0ms (0.8%)

Memory
-2.1MiB live, 36.6MiB allocated
Counts
11 → 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)) (*.f64 x y)))
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (*.f64 a b))
(+.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)
(+.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
#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)) (+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)) c)) (/.f64 (*.f64 a b) #s(literal 4 binary64))))
Calls

4 calls:

5.0ms
(/.f64 (*.f64 a b) #s(literal 4 binary64))
4.0ms
(*.f64 a b)
4.0ms
(/.f64 (*.f64 z t) #s(literal 16 binary64))
4.0ms
(*.f64 z t)
Results
AccuracySegmentsBranch
91.4%3(/.f64 (*.f64 z t) #s(literal 16 binary64))
91.4%3(*.f64 z t)
92.3%3(/.f64 (*.f64 a b) #s(literal 4 binary64))
92.3%3(*.f64 a b)
Compiler

Compiled 16 to 36 computations (-125% saved)

regimes43.0ms (1.9%)

Memory
-7.1MiB live, 70.1MiB 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)) (*.f64 x y)))
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (*.f64 a b))
(+.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

10 calls:

8.0ms
(*.f64 z t)
7.0ms
b
3.0ms
z
3.0ms
a
3.0ms
c
Results
AccuracySegmentsBranch
81.7%3z
78.5%3b
84.5%3(+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64)))
78.9%3a
78.4%3c
74.5%1(-.f64 (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64)))
87.9%3(/.f64 (*.f64 z t) #s(literal 16 binary64))
87.9%3(*.f64 z t)
79.4%3(/.f64 (*.f64 a b) #s(literal 4 binary64))
79.4%3(*.f64 a b)
Compiler

Compiled 44 to 92 computations (-109.1% saved)

regimes53.0ms (2.4%)

Memory
26.0MiB live, 102.9MiB 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)) (*.f64 x y)))
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (*.f64 a b))
(+.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) (-.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) #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) (-.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))))
Calls

15 calls:

7.0ms
(+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64)))
5.0ms
(*.f64 a b)
3.0ms
x
3.0ms
y
3.0ms
c
Results
AccuracySegmentsBranch
67.5%3(-.f64 (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64)))
65.6%3c
70.1%3b
73.7%5a
77.0%4(/.f64 (*.f64 a b) #s(literal 4 binary64))
77.0%4(*.f64 a b)
69.2%4z
61.6%2x
62.3%3(*.f64 x y)
62.3%3y
69.4%3(+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64)))
62.9%3(+.f64 (-.f64 (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64))) c)
68.1%3t
73.2%3(/.f64 (*.f64 z t) #s(literal 16 binary64))
73.2%3(*.f64 z t)
Compiler

Compiled 67 to 138 computations (-106% saved)

regimes38.0ms (1.7%)

Memory
-74.2MiB live, 64.0MiB 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)) (*.f64 x y)))
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (*.f64 a b))
(+.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

10 calls:

11.0ms
(*.f64 a b)
4.0ms
(+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64)))
3.0ms
a
3.0ms
b
3.0ms
t
Results
AccuracySegmentsBranch
62.8%3(-.f64 (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64)))
63.6%3z
62.7%3t
64.5%3(+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64)))
55.2%1b
59.2%3a
66.5%3(/.f64 (*.f64 z t) #s(literal 16 binary64))
66.5%3(*.f64 z t)
57.2%2(/.f64 (*.f64 a b) #s(literal 4 binary64))
57.2%2(*.f64 a b)
Compiler

Compiled 44 to 92 computations (-109.1% saved)

regimes41.0ms (1.8%)

Memory
9.3MiB live, 87.3MiB 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)) (*.f64 x y)))
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (*.f64 a b))
(+.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
y
4.0ms
(+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64)))
3.0ms
x
3.0ms
z
2.0ms
a
Results
AccuracySegmentsBranch
48.6%1b
48.6%1(/.f64 (*.f64 a b) #s(literal 4 binary64))
48.6%1(*.f64 a b)
48.6%1a
48.6%1y
48.6%1(*.f64 x y)
48.6%1t
48.6%1(-.f64 (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64)))
48.6%1(+.f64 (-.f64 (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64))) c)
48.6%1x
48.6%1z
48.6%1(+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64)))
48.6%1c
48.6%1(/.f64 (*.f64 z t) #s(literal 16 binary64))
48.6%1(*.f64 z t)
Compiler

Compiled 67 to 138 computations (-106% saved)

regimes29.0ms (1.3%)

Memory
-11.8MiB live, 68.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)) (*.f64 x y)))
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (*.f64 a b))
(+.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:

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
y
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
t
2.0ms
x
Results
AccuracySegmentsBranch
40.6%3x
31.1%1z
38.4%3y
40.6%3(+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64)))
31.1%1a
31.1%1b
38.0%3c
31.1%1(/.f64 (*.f64 z t) #s(literal 16 binary64))
31.1%1(*.f64 z t)
31.1%1(/.f64 (*.f64 a b) #s(literal 4 binary64))
31.1%1(*.f64 a b)
36.2%3(+.f64 (-.f64 (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64))) c)
39.9%3(-.f64 (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64)))
43.6%3(*.f64 x y)
31.1%1t
Compiler

Compiled 67 to 138 computations (-106% saved)

regimes11.0ms (0.5%)

Memory
-6.4MiB live, 33.1MiB allocated
Accuracy

Total -18.9b remaining (-42.8%)

Threshold costs -18.9b (-42.8%)

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)) (*.f64 x y)))
#s(approx (+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c) (*.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)) (*.f64 x y)))
Calls

7 calls:

2.0ms
c
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
y
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 x y)
Results
AccuracySegmentsBranch
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%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%1x
31.1%1(*.f64 x y)
Compiler

Compiled 47 to 74 computations (-57.4% saved)

bsearch25.0ms (1.1%)

Memory
15.1MiB live, 53.9MiB allocated
Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
17.0ms
9.563195784434129e+32
5.74978330389309e+39
5.0ms
-6.472558027360476e+59
-4.717669169664635e+59
Samples
14.0ms192×0valid
Compiler

Compiled 716 to 639 computations (10.8% saved)

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

bsearch35.0ms (1.6%)

Memory
0.4MiB live, 80.3MiB allocated
Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
17.0ms
1.2458293905790698e-5
84.92434709040894
15.0ms
-6.6878249637112876e+125
-3.2844623305573763e+124
Samples
21.0ms256×0valid
Compiler

Compiled 1 300 to 827 computations (36.4% saved)

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

bsearch29.0ms (1.3%)

Memory
9.9MiB live, 49.2MiB allocated
Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
18.0ms
5.391587523541438e+77
7.120316189304255e+89
8.0ms
-1.8898472667495e+143
-1.1829599859583349e+143
Samples
17.0ms224×0valid
Compiler

Compiled 1 364 to 741 computations (45.7% saved)

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

bsearch14.0ms (0.6%)

Memory
-23.5MiB live, 14.3MiB allocated
Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
narrow-enough
Steps
TimeLeftRight
1.0ms
9.563195784434129e+32
5.74978330389309e+39
9.0ms
2.914827363343266e-51
3.9416473877773755e-51
3.0ms
-6.6878249637112876e+125
-3.2844623305573763e+124
Samples
8.0ms64×0valid
Compiler

Compiled 1 518 to 917 computations (39.6% saved)

Precisions
Click to see histograms. Total time spent on operations: 6.0ms
ival-add: 4.0ms (68.1% of total)
ival-div: 1.0ms (17% of total)
ival-mult: 1.0ms (17% 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)

bsearch30.0ms (1.4%)

Memory
3.3MiB live, 43.0MiB allocated
Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
15.0ms
2214925410323903.0
9579990589251374.0
12.0ms
-6.040671396919758e+77
-9.380525379307419e+75
Samples
19.0ms208×0valid
Compiler

Compiled 826 to 599 computations (27.5% saved)

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

bsearch31.0ms (1.4%)

Memory
13.2MiB live, 49.9MiB allocated
Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
21.0ms
3.0136914094388164e+76
2.7298187076300463e+88
7.0ms
-6921205301235.163
-4293995788338.8984
Samples
16.0ms224×0valid
Compiler

Compiled 944 to 601 computations (36.3% saved)

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

simplify6.0ms (0.3%)

Memory
13.1MiB live, 13.1MiB 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 a b) #s(literal -600000000000000005313473495893408346635336242845424453419008 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 a b) #s(literal 3599999999999999843399289918502901645312 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 (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64))))))
(if (<=.f64 (*.f64 a b) #s(literal -98000000000000006916179541926208465737419773722983295665194042640663645497956823522940895085575466326939855903931956597882880 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)))) (if (<=.f64 (*.f64 a b) #s(literal 80 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)) (+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)) c)) (/.f64 (*.f64 a b) #s(literal 4 binary64))))))
(if (<=.f64 (*.f64 z t) #s(literal -164999999999999999585699942113659165881156395368164274313688792855875777170559049763403515209363707531382075369365528375332146045838782476845056 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 449999999999999990571761329249584877087885744056395726988802038791111555935960497945313280 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 a b) #s(literal -95000000000000000377773618680590123288081642360188141438910623868026535261031446430369412274214696190232150380557125269061632 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 a b) #s(literal 410717937507373/105312291668557186697918027683670432318895095400549111254310977536 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 a b) #s(literal 3599999999999999843399289918502901645312 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) (-.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 -12499999999999999784782659069323232093468455589251987194246890027226394263552 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 5100000000000000 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 -4800000000000 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 2799999999999999948088930377555690394088253391238406495300147668423157622501277696 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)))
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 a b) #s(literal -600000000000000005313473495893408346635336242845424453419008 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 a b) #s(literal 3599999999999999843399289918502901645312 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 (+.f64 (*.f64 x y) (/.f64 (*.f64 z t) #s(literal 16 binary64))) (/.f64 (*.f64 a b) #s(literal 4 binary64))))))
(if (<=.f64 (*.f64 a b) #s(literal -98000000000000006916179541926208465737419773722983295665194042640663645497956823522940895085575466326939855903931956597882880 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)))) (if (<=.f64 (*.f64 a b) #s(literal 80 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)) (+.f64 #s(approx (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) (*.f64 x y)) c)) (/.f64 (*.f64 a b) #s(literal 4 binary64))))))
(if (<=.f64 (*.f64 z t) #s(literal -164999999999999999585699942113659165881156395368164274313688792855875777170559049763403515209363707531382075369365528375332146045838782476845056 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 449999999999999990571761329249584877087885744056395726988802038791111555935960497945313280 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 a b) #s(literal -95000000000000000377773618680590123288081642360188141438910623868026535261031446430369412274214696190232150380557125269061632 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 a b) #s(literal 410717937507373/105312291668557186697918027683670432318895095400549111254310977536 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 a b) #s(literal 3599999999999999843399289918502901645312 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) (-.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 -12499999999999999784782659069323232093468455589251987194246890027226394263552 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 5100000000000000 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 -4800000000000 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 2799999999999999948088930377555690394088253391238406495300147668423157622501277696 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)))

soundness3.0ms (0.1%)

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

Compiled 906 to 80 computations (91.2% saved)

preprocess57.0ms (2.6%)

Memory
-26.8MiB live, 92.0MiB allocated
Compiler

Compiled 1 846 to 194 computations (89.5% saved)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

Profiling

Loading profile data...