Graphics.Rendering.Chart.Plot.Vectors:renderPlotVectors from Chart-1.5.3

Time bar (total: 1.1s)

start0.0ms (0%)

Memory
0.1MiB live, 0.1MiB allocated

analyze0.0ms (0%)

Memory
0.4MiB live, 0.4MiB allocated
Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%99.9%0.1%0%0%0%0
100%99.9%0%0.1%0%0%0%1
Compiler

Compiled 11 to 9 computations (18.2% saved)

sample757.0ms (70%)

Memory
-0.0MiB live, 1 048.7MiB allocated
Samples
310.0ms6 357×0valid
197.0ms1 897×1valid
0.0ms2valid
Precisions
Click to see histograms. Total time spent on operations: 295.0ms
ival-sub: 122.0ms (41.3% of total)
ival-mult: 68.0ms (23% of total)
ival-add: 53.0ms (17.9% of total)
adjust: 38.0ms (12.9% of total)
ival-true: 6.0ms (2% of total)
exact: 5.0ms (1.7% of total)
ival-assert: 3.0ms (1% of total)
Bogosity

explain81.0ms (7.5%)

Memory
21.9MiB live, 143.5MiB allocated
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
561(5735732.060747375 -1.556842028478204e-142)0-(+.f64 x (*.f64 (-.f64 #s(literal 1 binary64) x) (-.f64 #s(literal 1 binary64) y)))
00-0-(-.f64 #s(literal 1 binary64) y)
00-0-(*.f64 (-.f64 #s(literal 1 binary64) x) (-.f64 #s(literal 1 binary64) y))
00-0-y
00-0-(-.f64 #s(literal 1 binary64) x)
00-0-#s(literal 1 binary64)
00-0-x
Explanations
Click to see full explanations table
OperatorSubexpressionExplanationCount
+.f64(+.f64 x (*.f64 (-.f64 #s(literal 1 binary64) x) (-.f64 #s(literal 1 binary64) y)))cancellation570
Confusion
Predicted +Predicted -
+560
-1199
Precision
0.9824561403508771
Recall
1.0
Confusion?
Predicted +Predicted MaybePredicted -
+5600
-10199
Precision?
0.9824561403508771
Recall?
1.0
Freqs
test
numberfreq
0199
157
Total Confusion?
Predicted +Predicted MaybePredicted -
+100
-000
Precision?
1.0
Recall?
1.0
Samples
22.0ms404×0valid
11.0ms108×1valid
Compiler

Compiled 88 to 32 computations (63.6% saved)

Precisions
Click to see histograms. Total time spent on operations: 19.0ms
ival-sub: 6.0ms (32.1% of total)
ival-add: 5.0ms (26.8% of total)
ival-mult: 4.0ms (21.4% of total)
adjust: 2.0ms (10.7% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)

preprocess3.0ms (0.2%)

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

Compiled 9 to 7 computations (22.2% saved)

eval0.0ms (0%)

Memory
0.2MiB live, 0.2MiB allocated
Compiler

Compiled 0 to 2 computations (-∞% saved)

prune0.0ms (0%)

Memory
1.0MiB live, 1.0MiB allocated
Alt Table
Click to see full alt table
StatusAccuracyProgram
79.3%
(+.f64 x (*.f64 (-.f64 #s(literal 1 binary64) x) (-.f64 #s(literal 1 binary64) y)))
Compiler

Compiled 9 to 7 computations (22.2% saved)

simplify0.0ms (0%)

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

Found 4 expressions of interest:

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

localize23.0ms (2.2%)

Memory
-30.6MiB live, 47.3MiB allocated
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(-.f64 #s(literal 1 binary64) y)
accuracy0.0
(-.f64 #s(literal 1 binary64) x)
accuracy0.0078125
(*.f64 (-.f64 #s(literal 1 binary64) x) (-.f64 #s(literal 1 binary64) y))
accuracy13.233067823061551
(+.f64 x (*.f64 (-.f64 #s(literal 1 binary64) x) (-.f64 #s(literal 1 binary64) y)))
Samples
11.0ms202×0valid
6.0ms54×1valid
Compiler

Compiled 52 to 16 computations (69.2% saved)

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

series3.0ms (0.3%)

Memory
5.8MiB live, 5.8MiB allocated
Counts
4 → 27
Calls
Call 1
Inputs
(+.f64 x (*.f64 (-.f64 #s(literal 1 binary64) x) (-.f64 #s(literal 1 binary64) y)))
(*.f64 (-.f64 #s(literal 1 binary64) x) (-.f64 #s(literal 1 binary64) y))
(-.f64 #s(literal 1 binary64) x)
(-.f64 #s(literal 1 binary64) y)
Outputs
(- 1 y)
(- (+ 1 (* x (+ 1 (* -1 (- 1 y))))) y)
(- (+ 1 (* -1 (* x (- 1 y)))) y)
1
(+ 1 (* -1 x))
(* x (+ 1 (* -1 (- 1 y))))
(* x (- (+ 1 (+ (* -1 (- 1 y)) (/ 1 x))) (/ y x)))
(* -1 (* x (- 1 y)))
(* x (- (+ (* -1 (- 1 y)) (/ 1 x)) (/ y x)))
(* -1 x)
(* x (- (/ 1 x) 1))
(* x y)
(* -1 (* x (- (* -1 (/ (- 1 y) x)) y)))
(* -1 (* x (- (+ 1 (* -1 (/ (- 1 y) x))) y)))
(* -1 (* x (- 1 (/ 1 x))))
(+ 1 (* -1 (* y (- 1 x))))
(- 1 x)
(- (+ 1 (* -1 (* y (- 1 x)))) x)
(+ 1 (* -1 y))
(* -1 (* y (- 1 x)))
(* y (+ (* -1 (- 1 x)) (/ 1 y)))
(* y (- (+ (* -1 (- 1 x)) (/ 1 y)) (/ x y)))
(* -1 y)
(* y (- (/ 1 y) 1))
(* -1 (* y (- 1 (+ x (/ 1 y)))))
(* -1 (* y (- (+ 1 (* -1 (/ (- 1 x) y))) x)))
(* -1 (* y (- 1 (/ 1 y))))
Calls

6 calls:

TimeVariablePointExpression
1.0ms
x
@inf
((+ x (* (- 1 x) (- 1 y))) (* (- 1 x) (- 1 y)) (- 1 x) (- 1 y))
1.0ms
y
@inf
((+ x (* (- 1 x) (- 1 y))) (* (- 1 x) (- 1 y)) (- 1 x) (- 1 y))
0.0ms
y
@-inf
((+ x (* (- 1 x) (- 1 y))) (* (- 1 x) (- 1 y)) (- 1 x) (- 1 y))
0.0ms
x
@0
((+ x (* (- 1 x) (- 1 y))) (* (- 1 x) (- 1 y)) (- 1 x) (- 1 y))
0.0ms
x
@-inf
((+ x (* (- 1 x) (- 1 y))) (* (- 1 x) (- 1 y)) (- 1 x) (- 1 y))

simplify0.0ms (0%)

Memory
0.8MiB live, 0.8MiB allocated
Algorithm
egg-herbie
Counts
27 → 4
Calls
Call 1
Inputs
(- 1 y)
(- (+ 1 (* x (+ 1 (* -1 (- 1 y))))) y)
(- (+ 1 (* -1 (* x (- 1 y)))) y)
1
(+ 1 (* -1 x))
(* x (+ 1 (* -1 (- 1 y))))
(* x (- (+ 1 (+ (* -1 (- 1 y)) (/ 1 x))) (/ y x)))
(* -1 (* x (- 1 y)))
(* x (- (+ (* -1 (- 1 y)) (/ 1 x)) (/ y x)))
(* -1 x)
(* x (- (/ 1 x) 1))
(* x y)
(* -1 (* x (- (* -1 (/ (- 1 y) x)) y)))
(* -1 (* x (- (+ 1 (* -1 (/ (- 1 y) x))) y)))
(* -1 (* x (- 1 (/ 1 x))))
(+ 1 (* -1 (* y (- 1 x))))
(- 1 x)
(- (+ 1 (* -1 (* y (- 1 x)))) x)
(+ 1 (* -1 y))
(* -1 (* y (- 1 x)))
(* y (+ (* -1 (- 1 x)) (/ 1 y)))
(* y (- (+ (* -1 (- 1 x)) (/ 1 y)) (/ x y)))
(* -1 y)
(* y (- (/ 1 y) 1))
(* -1 (* y (- 1 (+ x (/ 1 y)))))
(* -1 (* y (- (+ 1 (* -1 (/ (- 1 x) y))) x)))
(* -1 (* y (- 1 (/ 1 y))))
Outputs
(- 1 y)
(+.f64 x (*.f64 (-.f64 #s(literal 1 binary64) x) (-.f64 #s(literal 1 binary64) y)))
(- (+ 1 (* x (+ 1 (* -1 (- 1 y))))) y)
(*.f64 (-.f64 #s(literal 1 binary64) x) (-.f64 #s(literal 1 binary64) y))
(- (+ 1 (* -1 (* x (- 1 y)))) y)
(-.f64 #s(literal 1 binary64) x)
1
(-.f64 #s(literal 1 binary64) y)

rewrite0.0ms (0%)

Memory
0.7MiB live, 0.7MiB allocated
Counts
4 → 4
Calls
Call 1
Inputs
(+.f64 x (*.f64 (-.f64 #s(literal 1 binary64) x) (-.f64 #s(literal 1 binary64) y)))
(*.f64 (-.f64 #s(literal 1 binary64) x) (-.f64 #s(literal 1 binary64) y))
(-.f64 #s(literal 1 binary64) x)
(-.f64 #s(literal 1 binary64) y)
Outputs
(+.f64 x (*.f64 (-.f64 #s(literal 1 binary64) x) (-.f64 #s(literal 1 binary64) y)))
(*.f64 (-.f64 #s(literal 1 binary64) x) (-.f64 #s(literal 1 binary64) y))
(-.f64 #s(literal 1 binary64) x)
(-.f64 #s(literal 1 binary64) y)

eval1.0ms (0.1%)

Memory
1.9MiB live, 1.9MiB allocated
Compiler

Compiled 98 to 19 computations (80.6% saved)

prune1.0ms (0.1%)

Memory
3.0MiB live, 3.0MiB allocated
Pruning

4 alts after pruning (3 fresh and 1 done)

PrunedKeptTotal
New538
Fresh000
Picked011
Done000
Total549
Accuracy
79.9%
Counts
9 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
79.3%
(+.f64 x (*.f64 (-.f64 #s(literal 1 binary64) x) (-.f64 #s(literal 1 binary64) y)))
31.9%
(+.f64 x (*.f64 #s(approx (- 1 x) (-.f64 #s(literal 1 binary64) y)) (-.f64 #s(literal 1 binary64) y)))
26.3%
(+.f64 x #s(approx (* (- 1 x) (- 1 y)) (-.f64 #s(literal 1 binary64) x)))
77.8%
#s(approx (+ x (* (- 1 x) (- 1 y))) (*.f64 (-.f64 #s(literal 1 binary64) x) (-.f64 #s(literal 1 binary64) y)))
Compiler

Compiled 52 to 38 computations (26.9% saved)

simplify1.0ms (0.1%)

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

Found 11 expressions of interest:

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

localize28.0ms (2.6%)

Memory
12.7MiB live, 51.3MiB allocated
Localize:

Found 11 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(-.f64 #s(literal 1 binary64) y)
accuracy0.0078125
(*.f64 #s(approx (- 1 x) (-.f64 #s(literal 1 binary64) y)) (-.f64 #s(literal 1 binary64) y))
accuracy13.233067823061551
(+.f64 x (*.f64 #s(approx (- 1 x) (-.f64 #s(literal 1 binary64) y)) (-.f64 #s(literal 1 binary64) y)))
accuracy47.20952811988829
#s(approx (- 1 x) (-.f64 #s(literal 1 binary64) y))
accuracy0.0
(-.f64 #s(literal 1 binary64) x)
accuracy13.233067823061551
(+.f64 x #s(approx (* (- 1 x) (- 1 y)) (-.f64 #s(literal 1 binary64) x)))
accuracy33.67102384455967
#s(approx (* (- 1 x) (- 1 y)) (-.f64 #s(literal 1 binary64) x))
accuracy0.0
(-.f64 #s(literal 1 binary64) y)
accuracy0.0
(-.f64 #s(literal 1 binary64) x)
accuracy0.0078125
(*.f64 (-.f64 #s(literal 1 binary64) x) (-.f64 #s(literal 1 binary64) y))
accuracy14.182272040104941
#s(approx (+ x (* (- 1 x) (- 1 y))) (*.f64 (-.f64 #s(literal 1 binary64) x) (-.f64 #s(literal 1 binary64) y)))
Samples
12.0ms202×0valid
7.0ms54×1valid
Compiler

Compiled 172 to 26 computations (84.9% saved)

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

series2.0ms (0.2%)

Memory
3.7MiB live, 3.7MiB allocated
Counts
9 → 27
Calls
Call 1
Inputs
#s(approx (+ x (* (- 1 x) (- 1 y))) (*.f64 (-.f64 #s(literal 1 binary64) x) (-.f64 #s(literal 1 binary64) y)))
(*.f64 (-.f64 #s(literal 1 binary64) x) (-.f64 #s(literal 1 binary64) y))
(-.f64 #s(literal 1 binary64) x)
(-.f64 #s(literal 1 binary64) y)
(+.f64 x #s(approx (* (- 1 x) (- 1 y)) (-.f64 #s(literal 1 binary64) x)))
#s(approx (* (- 1 x) (- 1 y)) (-.f64 #s(literal 1 binary64) x))
(+.f64 x (*.f64 #s(approx (- 1 x) (-.f64 #s(literal 1 binary64) y)) (-.f64 #s(literal 1 binary64) y)))
(*.f64 #s(approx (- 1 x) (-.f64 #s(literal 1 binary64) y)) (-.f64 #s(literal 1 binary64) y))
#s(approx (- 1 x) (-.f64 #s(literal 1 binary64) y))
Outputs
(- 1 y)
(- (+ 1 (* x (+ 1 (* -1 (- 1 y))))) y)
(- (+ 1 (* -1 (* x (- 1 y)))) y)
1
(+ 1 (* -1 x))
(* x (+ 1 (* -1 (- 1 y))))
(* x (- (+ 1 (+ (* -1 (- 1 y)) (/ 1 x))) (/ y x)))
(* -1 (* x (- 1 y)))
(* x (- (+ (* -1 (- 1 y)) (/ 1 x)) (/ y x)))
(* -1 x)
(* x (- (/ 1 x) 1))
(* x y)
(* -1 (* x (- (* -1 (/ (- 1 y) x)) y)))
(* -1 (* x (- (+ 1 (* -1 (/ (- 1 y) x))) y)))
(* -1 (* x (- 1 (/ 1 x))))
(+ 1 (* -1 (* y (- 1 x))))
(- 1 x)
(- (+ 1 (* -1 (* y (- 1 x)))) x)
(+ 1 (* -1 y))
(* -1 (* y (- 1 x)))
(* y (+ (* -1 (- 1 x)) (/ 1 y)))
(* y (- (+ (* -1 (- 1 x)) (/ 1 y)) (/ x y)))
(* -1 y)
(* y (- (/ 1 y) 1))
(* -1 (* y (- 1 (+ x (/ 1 y)))))
(* -1 (* y (- (+ 1 (* -1 (/ (- 1 x) y))) x)))
(* -1 (* y (- 1 (/ 1 y))))
Calls

6 calls:

TimeVariablePointExpression
0.0ms
x
@inf
((+ x (* (- 1 x) (- 1 y))) (* (- 1 x) (- 1 y)) (- 1 x) (- 1 y) (+ x (* (- 1 x) (- 1 y))) (* (- 1 x) (- 1 y)) (+ x (* (- 1 x) (- 1 y))) (* (- 1 x) (- 1 y)) (- 1 x))
0.0ms
x
@-inf
((+ x (* (- 1 x) (- 1 y))) (* (- 1 x) (- 1 y)) (- 1 x) (- 1 y) (+ x (* (- 1 x) (- 1 y))) (* (- 1 x) (- 1 y)) (+ x (* (- 1 x) (- 1 y))) (* (- 1 x) (- 1 y)) (- 1 x))
0.0ms
y
@-inf
((+ x (* (- 1 x) (- 1 y))) (* (- 1 x) (- 1 y)) (- 1 x) (- 1 y) (+ x (* (- 1 x) (- 1 y))) (* (- 1 x) (- 1 y)) (+ x (* (- 1 x) (- 1 y))) (* (- 1 x) (- 1 y)) (- 1 x))
0.0ms
y
@inf
((+ x (* (- 1 x) (- 1 y))) (* (- 1 x) (- 1 y)) (- 1 x) (- 1 y) (+ x (* (- 1 x) (- 1 y))) (* (- 1 x) (- 1 y)) (+ x (* (- 1 x) (- 1 y))) (* (- 1 x) (- 1 y)) (- 1 x))
0.0ms
x
@0
((+ x (* (- 1 x) (- 1 y))) (* (- 1 x) (- 1 y)) (- 1 x) (- 1 y) (+ x (* (- 1 x) (- 1 y))) (* (- 1 x) (- 1 y)) (+ x (* (- 1 x) (- 1 y))) (* (- 1 x) (- 1 y)) (- 1 x))

simplify0.0ms (0%)

Memory
0.8MiB live, 0.8MiB allocated
Algorithm
egg-herbie
Counts
27 → 9
Calls
Call 1
Inputs
(- 1 y)
(- (+ 1 (* x (+ 1 (* -1 (- 1 y))))) y)
(- (+ 1 (* -1 (* x (- 1 y)))) y)
1
(+ 1 (* -1 x))
(* x (+ 1 (* -1 (- 1 y))))
(* x (- (+ 1 (+ (* -1 (- 1 y)) (/ 1 x))) (/ y x)))
(* -1 (* x (- 1 y)))
(* x (- (+ (* -1 (- 1 y)) (/ 1 x)) (/ y x)))
(* -1 x)
(* x (- (/ 1 x) 1))
(* x y)
(* -1 (* x (- (* -1 (/ (- 1 y) x)) y)))
(* -1 (* x (- (+ 1 (* -1 (/ (- 1 y) x))) y)))
(* -1 (* x (- 1 (/ 1 x))))
(+ 1 (* -1 (* y (- 1 x))))
(- 1 x)
(- (+ 1 (* -1 (* y (- 1 x)))) x)
(+ 1 (* -1 y))
(* -1 (* y (- 1 x)))
(* y (+ (* -1 (- 1 x)) (/ 1 y)))
(* y (- (+ (* -1 (- 1 x)) (/ 1 y)) (/ x y)))
(* -1 y)
(* y (- (/ 1 y) 1))
(* -1 (* y (- 1 (+ x (/ 1 y)))))
(* -1 (* y (- (+ 1 (* -1 (/ (- 1 x) y))) x)))
(* -1 (* y (- 1 (/ 1 y))))
Outputs
(- 1 y)
#s(approx (+ x (* (- 1 x) (- 1 y))) (*.f64 (-.f64 #s(literal 1 binary64) x) (-.f64 #s(literal 1 binary64) y)))
(- (+ 1 (* x (+ 1 (* -1 (- 1 y))))) y)
(*.f64 (-.f64 #s(literal 1 binary64) x) (-.f64 #s(literal 1 binary64) y))
(- (+ 1 (* -1 (* x (- 1 y)))) y)
(-.f64 #s(literal 1 binary64) x)
1
(-.f64 #s(literal 1 binary64) y)
(+ 1 (* -1 x))
(+.f64 x #s(approx (* (- 1 x) (- 1 y)) (-.f64 #s(literal 1 binary64) x)))
(* x (+ 1 (* -1 (- 1 y))))
#s(approx (* (- 1 x) (- 1 y)) (-.f64 #s(literal 1 binary64) x))
(* x (- (+ 1 (+ (* -1 (- 1 y)) (/ 1 x))) (/ y x)))
(+.f64 x (*.f64 #s(approx (- 1 x) (-.f64 #s(literal 1 binary64) y)) (-.f64 #s(literal 1 binary64) y)))
(* -1 (* x (- 1 y)))
(*.f64 #s(approx (- 1 x) (-.f64 #s(literal 1 binary64) y)) (-.f64 #s(literal 1 binary64) y))
(* x (- (+ (* -1 (- 1 y)) (/ 1 x)) (/ y x)))
#s(approx (- 1 x) (-.f64 #s(literal 1 binary64) y))

rewrite1.0ms (0%)

Memory
0.9MiB live, 0.9MiB allocated
Counts
9 → 9
Calls
Call 1
Inputs
#s(approx (+ x (* (- 1 x) (- 1 y))) (*.f64 (-.f64 #s(literal 1 binary64) x) (-.f64 #s(literal 1 binary64) y)))
(*.f64 (-.f64 #s(literal 1 binary64) x) (-.f64 #s(literal 1 binary64) y))
(-.f64 #s(literal 1 binary64) x)
(-.f64 #s(literal 1 binary64) y)
(+.f64 x #s(approx (* (- 1 x) (- 1 y)) (-.f64 #s(literal 1 binary64) x)))
#s(approx (* (- 1 x) (- 1 y)) (-.f64 #s(literal 1 binary64) x))
(+.f64 x (*.f64 #s(approx (- 1 x) (-.f64 #s(literal 1 binary64) y)) (-.f64 #s(literal 1 binary64) y)))
(*.f64 #s(approx (- 1 x) (-.f64 #s(literal 1 binary64) y)) (-.f64 #s(literal 1 binary64) y))
#s(approx (- 1 x) (-.f64 #s(literal 1 binary64) y))
Outputs
#s(approx (+ x (* (- 1 x) (- 1 y))) (*.f64 (-.f64 #s(literal 1 binary64) x) (-.f64 #s(literal 1 binary64) y)))
(*.f64 (-.f64 #s(literal 1 binary64) x) (-.f64 #s(literal 1 binary64) y))
(-.f64 #s(literal 1 binary64) x)
(-.f64 #s(literal 1 binary64) y)
(+.f64 x #s(approx (* (- 1 x) (- 1 y)) (-.f64 #s(literal 1 binary64) x)))
#s(approx (* (- 1 x) (- 1 y)) (-.f64 #s(literal 1 binary64) x))
(+.f64 x (*.f64 #s(approx (- 1 x) (-.f64 #s(literal 1 binary64) y)) (-.f64 #s(literal 1 binary64) y)))
(*.f64 #s(approx (- 1 x) (-.f64 #s(literal 1 binary64) y)) (-.f64 #s(literal 1 binary64) y))
#s(approx (- 1 x) (-.f64 #s(literal 1 binary64) y))

eval2.0ms (0.2%)

Memory
3.6MiB live, 3.6MiB allocated
Compiler

Compiled 388 to 31 computations (92% saved)

prune5.0ms (0.4%)

Memory
-36.1MiB live, 5.1MiB allocated
Pruning

7 alts after pruning (4 fresh and 3 done)

PrunedKeptTotal
New16420
Fresh000
Picked123
Done011
Total17724
Accuracy
89.2%
Counts
24 → 7
Alt Table
Click to see full alt table
StatusAccuracyProgram
79.3%
(+.f64 x (*.f64 (-.f64 #s(literal 1 binary64) x) (-.f64 #s(literal 1 binary64) y)))
26.3%
(+.f64 x #s(approx (* (- 1 x) (- 1 y)) (-.f64 #s(literal 1 binary64) x)))
51.8%
(+.f64 x #s(approx (* (- 1 x) (- 1 y)) #s(approx (- 1 x) (-.f64 #s(literal 1 binary64) y))))
26.4%
(+.f64 x #s(approx (* (- 1 x) (- 1 y)) #s(approx (- 1 x) (+.f64 x #s(approx (* (- 1 x) (- 1 y)) (-.f64 #s(literal 1 binary64) x))))))
77.8%
#s(approx (+ x (* (- 1 x) (- 1 y))) (*.f64 (-.f64 #s(literal 1 binary64) x) (-.f64 #s(literal 1 binary64) y)))
26.0%
#s(approx (+ x (* (- 1 x) (- 1 y))) #s(approx (* (- 1 x) (- 1 y)) (-.f64 #s(literal 1 binary64) x)))
61.7%
#s(approx (+ x (* (- 1 x) (- 1 y))) #s(approx (* (- 1 x) (- 1 y)) #s(approx (- 1 x) (-.f64 #s(literal 1 binary64) y))))
Compiler

Compiled 129 to 76 computations (41.1% saved)

simplify1.0ms (0.1%)

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

Found 15 expressions of interest:

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

localize31.0ms (2.9%)

Memory
6.7MiB live, 44.5MiB allocated
Localize:

Found 15 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(-.f64 #s(literal 1 binary64) y)
accuracy13.233067823061551
(+.f64 x #s(approx (* (- 1 x) (- 1 y)) #s(approx (- 1 x) (-.f64 #s(literal 1 binary64) y))))
accuracy33.67102384455967
#s(approx (* (- 1 x) (- 1 y)) #s(approx (- 1 x) (-.f64 #s(literal 1 binary64) y)))
accuracy47.20952811988829
#s(approx (- 1 x) (-.f64 #s(literal 1 binary64) y))
accuracy13.233067823061551
(+.f64 x #s(approx (* (- 1 x) (- 1 y)) #s(approx (- 1 x) (+.f64 x #s(approx (* (- 1 x) (- 1 y)) (-.f64 #s(literal 1 binary64) x))))))
accuracy33.67102384455967
#s(approx (* (- 1 x) (- 1 y)) (-.f64 #s(literal 1 binary64) x))
accuracy33.67102384455967
#s(approx (* (- 1 x) (- 1 y)) #s(approx (- 1 x) (+.f64 x #s(approx (* (- 1 x) (- 1 y)) (-.f64 #s(literal 1 binary64) x)))))
accuracy47.34659806455751
#s(approx (- 1 x) (+.f64 x #s(approx (* (- 1 x) (- 1 y)) (-.f64 #s(literal 1 binary64) x))))
accuracy0.0
(-.f64 #s(literal 1 binary64) x)
accuracy14.182272040104941
#s(approx (+ x (* (- 1 x) (- 1 y))) #s(approx (* (- 1 x) (- 1 y)) (-.f64 #s(literal 1 binary64) x)))
accuracy33.67102384455967
#s(approx (* (- 1 x) (- 1 y)) (-.f64 #s(literal 1 binary64) x))
accuracy0.0
(-.f64 #s(literal 1 binary64) y)
accuracy14.182272040104941
#s(approx (+ x (* (- 1 x) (- 1 y))) #s(approx (* (- 1 x) (- 1 y)) #s(approx (- 1 x) (-.f64 #s(literal 1 binary64) y))))
accuracy33.67102384455967
#s(approx (* (- 1 x) (- 1 y)) #s(approx (- 1 x) (-.f64 #s(literal 1 binary64) y)))
accuracy47.20952811988829
#s(approx (- 1 x) (-.f64 #s(literal 1 binary64) y))
Samples
14.0ms202×0valid
7.0ms54×1valid
Compiler

Compiled 344 to 29 computations (91.6% saved)

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

series3.0ms (0.2%)

Memory
5.0MiB live, 5.0MiB allocated
Counts
12 → 27
Calls
Call 1
Inputs
#s(approx (+ x (* (- 1 x) (- 1 y))) #s(approx (* (- 1 x) (- 1 y)) #s(approx (- 1 x) (-.f64 #s(literal 1 binary64) y))))
#s(approx (* (- 1 x) (- 1 y)) #s(approx (- 1 x) (-.f64 #s(literal 1 binary64) y)))
#s(approx (- 1 x) (-.f64 #s(literal 1 binary64) y))
(-.f64 #s(literal 1 binary64) y)
#s(approx (+ x (* (- 1 x) (- 1 y))) #s(approx (* (- 1 x) (- 1 y)) (-.f64 #s(literal 1 binary64) x)))
#s(approx (* (- 1 x) (- 1 y)) (-.f64 #s(literal 1 binary64) x))
(-.f64 #s(literal 1 binary64) x)
(+.f64 x #s(approx (* (- 1 x) (- 1 y)) #s(approx (- 1 x) (+.f64 x #s(approx (* (- 1 x) (- 1 y)) (-.f64 #s(literal 1 binary64) x))))))
#s(approx (* (- 1 x) (- 1 y)) #s(approx (- 1 x) (+.f64 x #s(approx (* (- 1 x) (- 1 y)) (-.f64 #s(literal 1 binary64) x)))))
#s(approx (- 1 x) (+.f64 x #s(approx (* (- 1 x) (- 1 y)) (-.f64 #s(literal 1 binary64) x))))
(+.f64 x #s(approx (* (- 1 x) (- 1 y)) (-.f64 #s(literal 1 binary64) x)))
(+.f64 x #s(approx (* (- 1 x) (- 1 y)) #s(approx (- 1 x) (-.f64 #s(literal 1 binary64) y))))
Outputs
(- 1 y)
(- (+ 1 (* x (+ 1 (* -1 (- 1 y))))) y)
(- (+ 1 (* -1 (* x (- 1 y)))) y)
1
(+ 1 (* -1 x))
(* x (+ 1 (* -1 (- 1 y))))
(* x (- (+ 1 (+ (* -1 (- 1 y)) (/ 1 x))) (/ y x)))
(* -1 (* x (- 1 y)))
(* x (- (+ (* -1 (- 1 y)) (/ 1 x)) (/ y x)))
(* -1 x)
(* x (- (/ 1 x) 1))
(* x y)
(* -1 (* x (- (* -1 (/ (- 1 y) x)) y)))
(* -1 (* x (- (+ 1 (* -1 (/ (- 1 y) x))) y)))
(* -1 (* x (- 1 (/ 1 x))))
(+ 1 (* -1 (* y (- 1 x))))
(- 1 x)
(- (+ 1 (* -1 (* y (- 1 x)))) x)
(+ 1 (* -1 y))
(* -1 (* y (- 1 x)))
(* y (+ (* -1 (- 1 x)) (/ 1 y)))
(* y (- (+ (* -1 (- 1 x)) (/ 1 y)) (/ x y)))
(* -1 y)
(* y (- (/ 1 y) 1))
(* -1 (* y (- 1 (+ x (/ 1 y)))))
(* -1 (* y (- (+ 1 (* -1 (/ (- 1 x) y))) x)))
(* -1 (* y (- 1 (/ 1 y))))
Calls

6 calls:

TimeVariablePointExpression
0.0ms
x
@inf
((+ x (* (- 1 x) (- 1 y))) (* (- 1 x) (- 1 y)) (- 1 x) (- 1 y) (+ x (* (- 1 x) (- 1 y))) (* (- 1 x) (- 1 y)) (- 1 x) (+ x (* (- 1 x) (- 1 y))) (* (- 1 x) (- 1 y)) (- 1 x) (+ x (* (- 1 x) (- 1 y))) (+ x (* (- 1 x) (- 1 y))))
0.0ms
x
@-inf
((+ x (* (- 1 x) (- 1 y))) (* (- 1 x) (- 1 y)) (- 1 x) (- 1 y) (+ x (* (- 1 x) (- 1 y))) (* (- 1 x) (- 1 y)) (- 1 x) (+ x (* (- 1 x) (- 1 y))) (* (- 1 x) (- 1 y)) (- 1 x) (+ x (* (- 1 x) (- 1 y))) (+ x (* (- 1 x) (- 1 y))))
0.0ms
y
@inf
((+ x (* (- 1 x) (- 1 y))) (* (- 1 x) (- 1 y)) (- 1 x) (- 1 y) (+ x (* (- 1 x) (- 1 y))) (* (- 1 x) (- 1 y)) (- 1 x) (+ x (* (- 1 x) (- 1 y))) (* (- 1 x) (- 1 y)) (- 1 x) (+ x (* (- 1 x) (- 1 y))) (+ x (* (- 1 x) (- 1 y))))
0.0ms
y
@-inf
((+ x (* (- 1 x) (- 1 y))) (* (- 1 x) (- 1 y)) (- 1 x) (- 1 y) (+ x (* (- 1 x) (- 1 y))) (* (- 1 x) (- 1 y)) (- 1 x) (+ x (* (- 1 x) (- 1 y))) (* (- 1 x) (- 1 y)) (- 1 x) (+ x (* (- 1 x) (- 1 y))) (+ x (* (- 1 x) (- 1 y))))
0.0ms
x
@0
((+ x (* (- 1 x) (- 1 y))) (* (- 1 x) (- 1 y)) (- 1 x) (- 1 y) (+ x (* (- 1 x) (- 1 y))) (* (- 1 x) (- 1 y)) (- 1 x) (+ x (* (- 1 x) (- 1 y))) (* (- 1 x) (- 1 y)) (- 1 x) (+ x (* (- 1 x) (- 1 y))) (+ x (* (- 1 x) (- 1 y))))

simplify1.0ms (0.1%)

Memory
1.1MiB live, 1.1MiB allocated
Algorithm
egg-herbie
Counts
27 → 12
Calls
Call 1
Inputs
(- 1 y)
(- (+ 1 (* x (+ 1 (* -1 (- 1 y))))) y)
(- (+ 1 (* -1 (* x (- 1 y)))) y)
1
(+ 1 (* -1 x))
(* x (+ 1 (* -1 (- 1 y))))
(* x (- (+ 1 (+ (* -1 (- 1 y)) (/ 1 x))) (/ y x)))
(* -1 (* x (- 1 y)))
(* x (- (+ (* -1 (- 1 y)) (/ 1 x)) (/ y x)))
(* -1 x)
(* x (- (/ 1 x) 1))
(* x y)
(* -1 (* x (- (* -1 (/ (- 1 y) x)) y)))
(* -1 (* x (- (+ 1 (* -1 (/ (- 1 y) x))) y)))
(* -1 (* x (- 1 (/ 1 x))))
(+ 1 (* -1 (* y (- 1 x))))
(- 1 x)
(- (+ 1 (* -1 (* y (- 1 x)))) x)
(+ 1 (* -1 y))
(* -1 (* y (- 1 x)))
(* y (+ (* -1 (- 1 x)) (/ 1 y)))
(* y (- (+ (* -1 (- 1 x)) (/ 1 y)) (/ x y)))
(* -1 y)
(* y (- (/ 1 y) 1))
(* -1 (* y (- 1 (+ x (/ 1 y)))))
(* -1 (* y (- (+ 1 (* -1 (/ (- 1 x) y))) x)))
(* -1 (* y (- 1 (/ 1 y))))
Outputs
(- 1 y)
#s(approx (+ x (* (- 1 x) (- 1 y))) #s(approx (* (- 1 x) (- 1 y)) #s(approx (- 1 x) (-.f64 #s(literal 1 binary64) y))))
(- (+ 1 (* x (+ 1 (* -1 (- 1 y))))) y)
#s(approx (* (- 1 x) (- 1 y)) #s(approx (- 1 x) (-.f64 #s(literal 1 binary64) y)))
(- (+ 1 (* -1 (* x (- 1 y)))) y)
#s(approx (- 1 x) (-.f64 #s(literal 1 binary64) y))
1
(-.f64 #s(literal 1 binary64) y)
(+ 1 (* -1 x))
#s(approx (+ x (* (- 1 x) (- 1 y))) #s(approx (* (- 1 x) (- 1 y)) (-.f64 #s(literal 1 binary64) x)))
(* x (+ 1 (* -1 (- 1 y))))
#s(approx (* (- 1 x) (- 1 y)) (-.f64 #s(literal 1 binary64) x))
(* x (- (+ 1 (+ (* -1 (- 1 y)) (/ 1 x))) (/ y x)))
(-.f64 #s(literal 1 binary64) x)
(* -1 (* x (- 1 y)))
(+.f64 x #s(approx (* (- 1 x) (- 1 y)) #s(approx (- 1 x) (+.f64 x #s(approx (* (- 1 x) (- 1 y)) (-.f64 #s(literal 1 binary64) x))))))
(* x (- (+ (* -1 (- 1 y)) (/ 1 x)) (/ y x)))
#s(approx (* (- 1 x) (- 1 y)) #s(approx (- 1 x) (+.f64 x #s(approx (* (- 1 x) (- 1 y)) (-.f64 #s(literal 1 binary64) x)))))
(* -1 x)
#s(approx (- 1 x) (+.f64 x #s(approx (* (- 1 x) (- 1 y)) (-.f64 #s(literal 1 binary64) x))))
(* x (- (/ 1 x) 1))
(+.f64 x #s(approx (* (- 1 x) (- 1 y)) (-.f64 #s(literal 1 binary64) x)))
(* x y)
(+.f64 x #s(approx (* (- 1 x) (- 1 y)) #s(approx (- 1 x) (-.f64 #s(literal 1 binary64) y))))

rewrite1.0ms (0.1%)

Memory
1.7MiB live, 1.7MiB allocated
Counts
12 → 12
Calls
Call 1
Inputs
#s(approx (+ x (* (- 1 x) (- 1 y))) #s(approx (* (- 1 x) (- 1 y)) #s(approx (- 1 x) (-.f64 #s(literal 1 binary64) y))))
#s(approx (* (- 1 x) (- 1 y)) #s(approx (- 1 x) (-.f64 #s(literal 1 binary64) y)))
#s(approx (- 1 x) (-.f64 #s(literal 1 binary64) y))
(-.f64 #s(literal 1 binary64) y)
#s(approx (+ x (* (- 1 x) (- 1 y))) #s(approx (* (- 1 x) (- 1 y)) (-.f64 #s(literal 1 binary64) x)))
#s(approx (* (- 1 x) (- 1 y)) (-.f64 #s(literal 1 binary64) x))
(-.f64 #s(literal 1 binary64) x)
(+.f64 x #s(approx (* (- 1 x) (- 1 y)) #s(approx (- 1 x) (+.f64 x #s(approx (* (- 1 x) (- 1 y)) (-.f64 #s(literal 1 binary64) x))))))
#s(approx (* (- 1 x) (- 1 y)) #s(approx (- 1 x) (+.f64 x #s(approx (* (- 1 x) (- 1 y)) (-.f64 #s(literal 1 binary64) x)))))
#s(approx (- 1 x) (+.f64 x #s(approx (* (- 1 x) (- 1 y)) (-.f64 #s(literal 1 binary64) x))))
(+.f64 x #s(approx (* (- 1 x) (- 1 y)) (-.f64 #s(literal 1 binary64) x)))
(+.f64 x #s(approx (* (- 1 x) (- 1 y)) #s(approx (- 1 x) (-.f64 #s(literal 1 binary64) y))))
Outputs
#s(approx (+ x (* (- 1 x) (- 1 y))) #s(approx (* (- 1 x) (- 1 y)) #s(approx (- 1 x) (-.f64 #s(literal 1 binary64) y))))
#s(approx (* (- 1 x) (- 1 y)) #s(approx (- 1 x) (-.f64 #s(literal 1 binary64) y)))
#s(approx (- 1 x) (-.f64 #s(literal 1 binary64) y))
(-.f64 #s(literal 1 binary64) y)
#s(approx (+ x (* (- 1 x) (- 1 y))) #s(approx (* (- 1 x) (- 1 y)) (-.f64 #s(literal 1 binary64) x)))
#s(approx (* (- 1 x) (- 1 y)) (-.f64 #s(literal 1 binary64) x))
(-.f64 #s(literal 1 binary64) x)
(+.f64 x #s(approx (* (- 1 x) (- 1 y)) #s(approx (- 1 x) (+.f64 x #s(approx (* (- 1 x) (- 1 y)) (-.f64 #s(literal 1 binary64) x))))))
#s(approx (* (- 1 x) (- 1 y)) #s(approx (- 1 x) (+.f64 x #s(approx (* (- 1 x) (- 1 y)) (-.f64 #s(literal 1 binary64) x)))))
#s(approx (- 1 x) (+.f64 x #s(approx (* (- 1 x) (- 1 y)) (-.f64 #s(literal 1 binary64) x))))
(+.f64 x #s(approx (* (- 1 x) (- 1 y)) (-.f64 #s(literal 1 binary64) x)))
(+.f64 x #s(approx (* (- 1 x) (- 1 y)) #s(approx (- 1 x) (-.f64 #s(literal 1 binary64) y))))

eval3.0ms (0.2%)

Memory
8.8MiB live, 8.8MiB allocated
Compiler

Compiled 811 to 38 computations (95.3% saved)

prune5.0ms (0.5%)

Memory
10.5MiB live, 10.5MiB allocated
Pruning

7 alts after pruning (0 fresh and 7 done)

PrunedKeptTotal
New29029
Fresh000
Picked044
Done033
Total29736
Accuracy
89.2%
Counts
36 → 7
Alt Table
Click to see full alt table
StatusAccuracyProgram
79.3%
(+.f64 x (*.f64 (-.f64 #s(literal 1 binary64) x) (-.f64 #s(literal 1 binary64) y)))
26.3%
(+.f64 x #s(approx (* (- 1 x) (- 1 y)) (-.f64 #s(literal 1 binary64) x)))
51.8%
(+.f64 x #s(approx (* (- 1 x) (- 1 y)) #s(approx (- 1 x) (-.f64 #s(literal 1 binary64) y))))
26.4%
(+.f64 x #s(approx (* (- 1 x) (- 1 y)) #s(approx (- 1 x) (+.f64 x #s(approx (* (- 1 x) (- 1 y)) (-.f64 #s(literal 1 binary64) x))))))
77.8%
#s(approx (+ x (* (- 1 x) (- 1 y))) (*.f64 (-.f64 #s(literal 1 binary64) x) (-.f64 #s(literal 1 binary64) y)))
26.0%
#s(approx (+ x (* (- 1 x) (- 1 y))) #s(approx (* (- 1 x) (- 1 y)) (-.f64 #s(literal 1 binary64) x)))
61.7%
#s(approx (+ x (* (- 1 x) (- 1 y))) #s(approx (* (- 1 x) (- 1 y)) #s(approx (- 1 x) (-.f64 #s(literal 1 binary64) y))))
Compiler

Compiled 271 to 101 computations (62.7% saved)

regimes14.0ms (1.3%)

Memory
-15.2MiB live, 22.0MiB allocated
Counts
8 → 3
Calls
Call 1
Inputs
#s(approx (+ x (* (- 1 x) (- 1 y))) #s(approx (* (- 1 x) (- 1 y)) #s(approx (- 1 x) (-.f64 #s(literal 1 binary64) y))))
#s(approx (+ x (* (- 1 x) (- 1 y))) #s(approx (* (- 1 x) (- 1 y)) (-.f64 #s(literal 1 binary64) x)))
(+.f64 x #s(approx (* (- 1 x) (- 1 y)) #s(approx (- 1 x) (-.f64 #s(literal 1 binary64) y))))
(+.f64 x #s(approx (* (- 1 x) (- 1 y)) (-.f64 #s(literal 1 binary64) x)))
(+.f64 x #s(approx (* (- 1 x) (- 1 y)) #s(approx (- 1 x) (+.f64 x #s(approx (* (- 1 x) (- 1 y)) (-.f64 #s(literal 1 binary64) x))))))
#s(approx (+ x (* (- 1 x) (- 1 y))) (*.f64 (-.f64 #s(literal 1 binary64) x) (-.f64 #s(literal 1 binary64) y)))
(+.f64 x (*.f64 #s(approx (- 1 x) (-.f64 #s(literal 1 binary64) y)) (-.f64 #s(literal 1 binary64) y)))
(+.f64 x (*.f64 (-.f64 #s(literal 1 binary64) x) (-.f64 #s(literal 1 binary64) y)))
Outputs
#s(approx (+ x (* (- 1 x) (- 1 y))) (*.f64 (-.f64 #s(literal 1 binary64) x) (-.f64 #s(literal 1 binary64) y)))
#s(approx (+ x (* (- 1 x) (- 1 y))) #s(approx (* (- 1 x) (- 1 y)) #s(approx (- 1 x) (-.f64 #s(literal 1 binary64) y))))
(+.f64 x (*.f64 (-.f64 #s(literal 1 binary64) x) (-.f64 #s(literal 1 binary64) y)))
Calls

4 calls:

5.0ms
(+.f64 x (*.f64 (-.f64 #s(literal 1 binary64) x) (-.f64 #s(literal 1 binary64) y)))
3.0ms
x
3.0ms
y
3.0ms
(-.f64 #s(literal 1 binary64) y)
Results
AccuracySegmentsBranch
79.3%1x
89.0%3y
89.0%3(+.f64 x (*.f64 (-.f64 #s(literal 1 binary64) x) (-.f64 #s(literal 1 binary64) y)))
89.0%3(-.f64 #s(literal 1 binary64) y)
Compiler

Compiled 14 to 15 computations (-7.1% saved)

regimes8.0ms (0.7%)

Memory
15.4MiB live, 15.4MiB allocated
Counts
7 → 3
Calls
Call 1
Inputs
#s(approx (+ x (* (- 1 x) (- 1 y))) #s(approx (* (- 1 x) (- 1 y)) #s(approx (- 1 x) (-.f64 #s(literal 1 binary64) y))))
#s(approx (+ x (* (- 1 x) (- 1 y))) #s(approx (* (- 1 x) (- 1 y)) (-.f64 #s(literal 1 binary64) x)))
(+.f64 x #s(approx (* (- 1 x) (- 1 y)) #s(approx (- 1 x) (-.f64 #s(literal 1 binary64) y))))
(+.f64 x #s(approx (* (- 1 x) (- 1 y)) (-.f64 #s(literal 1 binary64) x)))
(+.f64 x #s(approx (* (- 1 x) (- 1 y)) #s(approx (- 1 x) (+.f64 x #s(approx (* (- 1 x) (- 1 y)) (-.f64 #s(literal 1 binary64) x))))))
#s(approx (+ x (* (- 1 x) (- 1 y))) (*.f64 (-.f64 #s(literal 1 binary64) x) (-.f64 #s(literal 1 binary64) y)))
(+.f64 x (*.f64 #s(approx (- 1 x) (-.f64 #s(literal 1 binary64) y)) (-.f64 #s(literal 1 binary64) y)))
Outputs
#s(approx (+ x (* (- 1 x) (- 1 y))) (*.f64 (-.f64 #s(literal 1 binary64) x) (-.f64 #s(literal 1 binary64) y)))
#s(approx (+ x (* (- 1 x) (- 1 y))) #s(approx (* (- 1 x) (- 1 y)) #s(approx (- 1 x) (-.f64 #s(literal 1 binary64) y))))
#s(approx (+ x (* (- 1 x) (- 1 y))) (*.f64 (-.f64 #s(literal 1 binary64) x) (-.f64 #s(literal 1 binary64) y)))
Calls

3 calls:

3.0ms
y
2.0ms
(+.f64 x (*.f64 (-.f64 #s(literal 1 binary64) x) (-.f64 #s(literal 1 binary64) y)))
2.0ms
(-.f64 #s(literal 1 binary64) y)
Results
AccuracySegmentsBranch
88.1%3(+.f64 x (*.f64 (-.f64 #s(literal 1 binary64) x) (-.f64 #s(literal 1 binary64) y)))
88.1%3(-.f64 #s(literal 1 binary64) y)
88.1%3y
Compiler

Compiled 13 to 13 computations (0% saved)

regimes12.0ms (1.1%)

Memory
-20.6MiB live, 17.4MiB allocated
Accuracy

Total -23.6b remaining (-96.3%)

Threshold costs -23.6b (-96.3%)

Counts
5 → 1
Calls
Call 1
Inputs
#s(approx (+ x (* (- 1 x) (- 1 y))) #s(approx (* (- 1 x) (- 1 y)) #s(approx (- 1 x) (-.f64 #s(literal 1 binary64) y))))
#s(approx (+ x (* (- 1 x) (- 1 y))) #s(approx (* (- 1 x) (- 1 y)) (-.f64 #s(literal 1 binary64) x)))
(+.f64 x #s(approx (* (- 1 x) (- 1 y)) #s(approx (- 1 x) (-.f64 #s(literal 1 binary64) y))))
(+.f64 x #s(approx (* (- 1 x) (- 1 y)) (-.f64 #s(literal 1 binary64) x)))
(+.f64 x #s(approx (* (- 1 x) (- 1 y)) #s(approx (- 1 x) (+.f64 x #s(approx (* (- 1 x) (- 1 y)) (-.f64 #s(literal 1 binary64) x))))))
Outputs
#s(approx (+ x (* (- 1 x) (- 1 y))) #s(approx (* (- 1 x) (- 1 y)) #s(approx (- 1 x) (-.f64 #s(literal 1 binary64) y))))
Calls

4 calls:

5.0ms
(-.f64 #s(literal 1 binary64) y)
2.0ms
y
2.0ms
x
2.0ms
(+.f64 x (*.f64 (-.f64 #s(literal 1 binary64) x) (-.f64 #s(literal 1 binary64) y)))
Results
AccuracySegmentsBranch
61.7%1x
61.7%1(+.f64 x (*.f64 (-.f64 #s(literal 1 binary64) x) (-.f64 #s(literal 1 binary64) y)))
61.7%1(-.f64 #s(literal 1 binary64) y)
61.7%1y
Compiler

Compiled 14 to 15 computations (-7.1% saved)

bsearch41.0ms (3.8%)

Memory
13.1MiB live, 54.3MiB allocated
Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
20.0ms
1.4524991837331852e-52
4.908383357269943e-46
17.0ms
-6.797968800036711e-106
-4.4668389207444534e-119
Samples
19.0ms146×1valid
7.0ms158×0valid
Compiler

Compiled 738 to 461 computations (37.5% saved)

Precisions
Click to see histograms. Total time spent on operations: 18.0ms
ival-sub: 10.0ms (56% of total)
adjust: 3.0ms (16.8% of total)
ival-mult: 3.0ms (16.8% of total)
ival-add: 2.0ms (11.2% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)

bsearch19.0ms (1.8%)

Memory
-14.6MiB live, 22.9MiB allocated
Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
17.0ms
0.00010675886616444465
15.752297787390575
1.0ms
-6.797968800036711e-106
-4.4668389207444534e-119
Samples
11.0ms144×0valid
Compiler

Compiled 810 to 506 computations (37.5% saved)

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

simplify5.0ms (0.5%)

Memory
10.7MiB live, 10.7MiB allocated
Algorithm
egg-herbie
Calls
Call 1
Inputs
(if (<=.f64 y #s(literal -8097935617680545/82631996098781074868989413504096379978550585370535152410581099409300723904538918228148651304964410605948901503127919788032 binary64)) #s(approx (+ x (* (- 1 x) (- 1 y))) (*.f64 (-.f64 #s(literal 1 binary64) x) (-.f64 #s(literal 1 binary64) y))) (if (<=.f64 y #s(literal 6170642089954523/12855504354071922204335696738729300820177623950262342682411008 binary64)) #s(approx (+ x (* (- 1 x) (- 1 y))) #s(approx (* (- 1 x) (- 1 y)) #s(approx (- 1 x) (-.f64 #s(literal 1 binary64) y)))) (+.f64 x (*.f64 (-.f64 #s(literal 1 binary64) x) (-.f64 #s(literal 1 binary64) y)))))
(if (<=.f64 y #s(literal -8097935617680545/82631996098781074868989413504096379978550585370535152410581099409300723904538918228148651304964410605948901503127919788032 binary64)) #s(approx (+ x (* (- 1 x) (- 1 y))) (*.f64 (-.f64 #s(literal 1 binary64) x) (-.f64 #s(literal 1 binary64) y))) (if (<=.f64 y #s(literal 1 binary64)) #s(approx (+ x (* (- 1 x) (- 1 y))) #s(approx (* (- 1 x) (- 1 y)) #s(approx (- 1 x) (-.f64 #s(literal 1 binary64) y)))) #s(approx (+ x (* (- 1 x) (- 1 y))) (*.f64 (-.f64 #s(literal 1 binary64) x) (-.f64 #s(literal 1 binary64) y)))))
#s(approx (+ x (* (- 1 x) (- 1 y))) #s(approx (* (- 1 x) (- 1 y)) #s(approx (- 1 x) (-.f64 #s(literal 1 binary64) y))))
Outputs
(if (<=.f64 y #s(literal -8097935617680545/82631996098781074868989413504096379978550585370535152410581099409300723904538918228148651304964410605948901503127919788032 binary64)) #s(approx (+ x (* (- 1 x) (- 1 y))) (*.f64 (-.f64 #s(literal 1 binary64) x) (-.f64 #s(literal 1 binary64) y))) (if (<=.f64 y #s(literal 6170642089954523/12855504354071922204335696738729300820177623950262342682411008 binary64)) #s(approx (+ x (* (- 1 x) (- 1 y))) #s(approx (* (- 1 x) (- 1 y)) #s(approx (- 1 x) (-.f64 #s(literal 1 binary64) y)))) (+.f64 x (*.f64 (-.f64 #s(literal 1 binary64) x) (-.f64 #s(literal 1 binary64) y)))))
(if (<=.f64 y #s(literal -8097935617680545/82631996098781074868989413504096379978550585370535152410581099409300723904538918228148651304964410605948901503127919788032 binary64)) #s(approx (+ x (* (- 1 x) (- 1 y))) (*.f64 (-.f64 #s(literal 1 binary64) x) (-.f64 #s(literal 1 binary64) y))) (if (<=.f64 y #s(literal 1 binary64)) #s(approx (+ x (* (- 1 x) (- 1 y))) #s(approx (* (- 1 x) (- 1 y)) #s(approx (- 1 x) (-.f64 #s(literal 1 binary64) y)))) #s(approx (+ x (* (- 1 x) (- 1 y))) (*.f64 (-.f64 #s(literal 1 binary64) x) (-.f64 #s(literal 1 binary64) y)))))
#s(approx (+ x (* (- 1 x) (- 1 y))) #s(approx (* (- 1 x) (- 1 y)) #s(approx (- 1 x) (-.f64 #s(literal 1 binary64) y))))

soundness1.0ms (0.1%)

Memory
1.8MiB live, 1.8MiB allocated
Stop Event
done
Compiler

Compiled 151 to 25 computations (83.4% saved)

preprocess27.0ms (2.5%)

Memory
11.3MiB live, 50.2MiB allocated
Compiler

Compiled 334 to 76 computations (77.2% saved)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

Profiling

Loading profile data...