Diagrams.Trail:splitAtParam from diagrams-lib-1.3.0.3, D

Time bar (total: 1.4s)

start0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

analyze15.0ms (1.1%)

Memory
-10.8MiB live, 28.4MiB allocated
Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%99.9%0.1%0%0%0%0
0%0%99.9%0.1%0%0%0%1
0%0%99.9%0.1%0%0%0%2
50%50%50%0.1%0%0%0%3
50%50%50%0.1%0%0%0%4
75%74.9%25%0.1%0%0%0%5
75%74.9%25%0.1%0%0%0%6
87.5%87.4%12.5%0.1%0%0%0%7
87.5%87.4%12.5%0.1%0%0%0%8
93.8%93.7%6.2%0.1%0%0%0%9
93.8%93.7%6.2%0.1%0%0%0%10
96.9%96.8%3.1%0.1%0%0%0%11
96.9%96.8%3.1%0.1%0%0%0%12
Compiler

Compiled 13 to 10 computations (23.1% saved)

sample852.0ms (61.2%)

Memory
28.7MiB live, 1 482.0MiB allocated
Samples
353.0ms6 279×0valid
192.0ms1 678×1valid
53.0ms299×2valid
Precisions
Click to see histograms. Total time spent on operations: 405.0ms
ival-sub: 136.0ms (33.6% of total)
ival-mult: 87.0ms (21.5% of total)
ival-div: 69.0ms (17% of total)
ival-add: 50.0ms (12.3% of total)
adjust: 48.0ms (11.8% of total)
ival-true: 6.0ms (1.5% of total)
exact: 5.0ms (1.2% of total)
ival-assert: 3.0ms (0.7% of total)
Bogosity

explain107.0ms (7.7%)

Memory
-11.5MiB live, 192.6MiB allocated
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
680-0-(-.f64 #s(literal 1 binary64) (/.f64 (*.f64 (-.f64 #s(literal 1 binary64) x) y) (+.f64 y #s(literal 1 binary64))))
340-0-(/.f64 (*.f64 (-.f64 #s(literal 1 binary64) x) y) (+.f64 y #s(literal 1 binary64)))
00-0-(+.f64 y #s(literal 1 binary64))
00-0-y
00-0-(*.f64 (-.f64 #s(literal 1 binary64) x) 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 #s(literal 1 binary64) (/.f64 (*.f64 (-.f64 #s(literal 1 binary64) x) y) (+.f64 y #s(literal 1 binary64))))cancellation680
/.f64(/.f64 (*.f64 (-.f64 #s(literal 1 binary64) x) y) (+.f64 y #s(literal 1 binary64)))o/n340
(*.f64 (-.f64 #s(literal 1 binary64) x) y)overflow34
Confusion
Predicted +Predicted -
+1020
-0154
Precision
1.0
Recall
1.0
Confusion?
Predicted +Predicted MaybePredicted -
+10200
-00154
Precision?
1.0
Recall?
1.0
Freqs
test
numberfreq
0154
1102
Total Confusion?
Predicted +Predicted MaybePredicted -
+100
-000
Precision?
1.0
Recall?
1.0
Samples
22.0ms380×0valid
18.0ms106×1valid
5.0ms26×2valid
Compiler

Compiled 117 to 36 computations (69.2% saved)

Precisions
Click to see histograms. Total time spent on operations: 26.0ms
ival-div: 7.0ms (27.3% of total)
ival-sub: 7.0ms (27.3% of total)
ival-mult: 5.0ms (19.5% of total)
ival-add: 4.0ms (15.6% of total)
adjust: 3.0ms (11.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
6.5MiB live, 6.5MiB allocated
Algorithm
egg-herbie
Calls
Call 1
Inputs
(-.f64 #s(literal 1 binary64) (/.f64 (*.f64 (-.f64 #s(literal 1 binary64) x) y) (+.f64 y #s(literal 1 binary64))))
Outputs
(-.f64 #s(literal 1 binary64) (/.f64 (*.f64 (-.f64 #s(literal 1 binary64) x) y) (+.f64 y #s(literal 1 binary64))))
Compiler

Compiled 11 to 8 computations (27.3% saved)

eval0.0ms (0%)

Memory
0.2MiB live, 0.2MiB allocated
Compiler

Compiled 0 to 2 computations (-∞% saved)

prune0.0ms (0%)

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

Compiled 11 to 8 computations (27.3% saved)

simplify1.0ms (0%)

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

Found 4 expressions of interest:

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

localize30.0ms (2.2%)

Memory
2.4MiB live, 43.6MiB allocated
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(+.f64 y #s(literal 1 binary64))
accuracy0.01171875
(*.f64 (-.f64 #s(literal 1 binary64) x) y)
accuracy7.9785573072572875
(/.f64 (*.f64 (-.f64 #s(literal 1 binary64) x) y) (+.f64 y #s(literal 1 binary64)))
accuracy15.583242704630214
(-.f64 #s(literal 1 binary64) (/.f64 (*.f64 (-.f64 #s(literal 1 binary64) x) y) (+.f64 y #s(literal 1 binary64))))
Samples
11.0ms190×0valid
7.0ms53×1valid
2.0ms13×2valid
Compiler

Compiled 70 to 18 computations (74.3% saved)

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

series10.0ms (0.7%)

Memory
-25.8MiB live, 11.8MiB allocated
Counts
5 → 42
Calls
Call 1
Inputs
(-.f64 #s(literal 1 binary64) (/.f64 (*.f64 (-.f64 #s(literal 1 binary64) x) y) (+.f64 y #s(literal 1 binary64))))
(/.f64 (*.f64 (-.f64 #s(literal 1 binary64) x) y) (+.f64 y #s(literal 1 binary64)))
(*.f64 (-.f64 #s(literal 1 binary64) x) y)
(-.f64 #s(literal 1 binary64) x)
(+.f64 y #s(literal 1 binary64))
Outputs
(- 1 (/ y (+ 1 y)))
(- (+ 1 (/ (* x y) (+ 1 y))) (/ y (+ 1 y)))
(/ y (+ 1 y))
(+ (* -1 (/ (* x y) (+ 1 y))) (/ y (+ 1 y)))
y
(+ y (* -1 (* x y)))
1
(+ 1 (* -1 x))
(/ (* x y) (+ 1 y))
(* x (- (/ 1 x) (+ (* -1 (/ y (+ 1 y))) (/ y (* x (+ 1 y))))))
(* -1 (/ (* x y) (+ 1 y)))
(* x (+ (* -1 (/ y (+ 1 y))) (/ y (* x (+ 1 y)))))
(* -1 (* x y))
(* x (+ (* -1 y) (/ y x)))
(* -1 x)
(* x (- (/ 1 x) 1))
(* -1 (* x (- (* -1 (/ (- 1 (/ y (+ 1 y))) x)) (/ y (+ 1 y)))))
(* -1 (* x (+ (* -1 (/ y (* x (+ 1 y)))) (/ y (+ 1 y)))))
(* -1 (* x (+ y (* -1 (/ y x)))))
(* -1 (* x (- 1 (/ 1 x))))
(+ 1 (* y (- x 1)))
(+ 1 (* y (- (+ x (* y (- 1 x))) 1)))
(+ 1 (* y (- (+ x (* y (- (+ 1 (* y (- x 1))) x))) 1)))
(* y (- 1 x))
(* y (- (+ 1 (* y (- x 1))) x))
(* y (- (+ 1 (* y (- (+ x (* y (- 1 x))) 1))) x))
(* y (- (+ 1 (* y (- (+ x (* y (- (+ 1 (* y (- x 1))) x))) 1))) x))
(+ 1 y)
x
(- (+ x (/ 1 y)) (/ x y))
(- (+ x (+ (* -1 (/ (+ 1 (* -1 x)) (pow y 2))) (/ 1 y))) (/ x y))
(- (+ x (+ (/ 1 y) (/ 1 (pow y 3)))) (+ (* -1 (/ x (pow y 2))) (+ (/ 1 (pow y 2)) (+ (/ x y) (/ x (pow y 3))))))
(- 1 x)
(- (+ 1 (/ x y)) (+ x (/ 1 y)))
(- (+ 1 (+ (/ 1 (pow y 2)) (/ x y))) (+ x (+ (/ 1 y) (/ x (pow y 2)))))
(- (+ 1 (+ (/ 1 (pow y 2)) (+ (/ x y) (/ x (pow y 3))))) (+ x (+ (/ 1 y) (+ (/ 1 (pow y 3)) (/ x (pow y 2))))))
(* y (+ 1 (/ 1 y)))
(+ x (* -1 (/ (- x 1) y)))
(+ x (* -1 (/ (- (* -1 (/ (- x 1) y)) (* -1 (- x 1))) y)))
(+ x (* -1 (/ (- (* -1 (/ (- (* -1 (/ (- x 1) y)) (* -1 (- x 1))) y)) (* -1 (- x 1))) y)))
(- (+ 1 (* -1 (/ (- (+ (* -1 (- x 1)) (/ x y)) (/ 1 y)) y))) x)
(- (+ 1 (* -1 (/ (+ (* -1 (- x 1)) (* -1 (/ (- (+ (* -1 (- x 1)) (/ x y)) (/ 1 y)) y))) y))) x)
Calls

6 calls:

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

simplify1.0ms (0%)

Memory
1.2MiB live, 1.2MiB allocated
Algorithm
egg-herbie
Counts
42 → 5
Calls
Call 1
Inputs
(- 1 (/ y (+ 1 y)))
(- (+ 1 (/ (* x y) (+ 1 y))) (/ y (+ 1 y)))
(/ y (+ 1 y))
(+ (* -1 (/ (* x y) (+ 1 y))) (/ y (+ 1 y)))
y
(+ y (* -1 (* x y)))
1
(+ 1 (* -1 x))
(/ (* x y) (+ 1 y))
(* x (- (/ 1 x) (+ (* -1 (/ y (+ 1 y))) (/ y (* x (+ 1 y))))))
(* -1 (/ (* x y) (+ 1 y)))
(* x (+ (* -1 (/ y (+ 1 y))) (/ y (* x (+ 1 y)))))
(* -1 (* x y))
(* x (+ (* -1 y) (/ y x)))
(* -1 x)
(* x (- (/ 1 x) 1))
(* -1 (* x (- (* -1 (/ (- 1 (/ y (+ 1 y))) x)) (/ y (+ 1 y)))))
(* -1 (* x (+ (* -1 (/ y (* x (+ 1 y)))) (/ y (+ 1 y)))))
(* -1 (* x (+ y (* -1 (/ y x)))))
(* -1 (* x (- 1 (/ 1 x))))
(+ 1 (* y (- x 1)))
(+ 1 (* y (- (+ x (* y (- 1 x))) 1)))
(+ 1 (* y (- (+ x (* y (- (+ 1 (* y (- x 1))) x))) 1)))
(* y (- 1 x))
(* y (- (+ 1 (* y (- x 1))) x))
(* y (- (+ 1 (* y (- (+ x (* y (- 1 x))) 1))) x))
(* y (- (+ 1 (* y (- (+ x (* y (- (+ 1 (* y (- x 1))) x))) 1))) x))
(+ 1 y)
x
(- (+ x (/ 1 y)) (/ x y))
(- (+ x (+ (* -1 (/ (+ 1 (* -1 x)) (pow y 2))) (/ 1 y))) (/ x y))
(- (+ x (+ (/ 1 y) (/ 1 (pow y 3)))) (+ (* -1 (/ x (pow y 2))) (+ (/ 1 (pow y 2)) (+ (/ x y) (/ x (pow y 3))))))
(- 1 x)
(- (+ 1 (/ x y)) (+ x (/ 1 y)))
(- (+ 1 (+ (/ 1 (pow y 2)) (/ x y))) (+ x (+ (/ 1 y) (/ x (pow y 2)))))
(- (+ 1 (+ (/ 1 (pow y 2)) (+ (/ x y) (/ x (pow y 3))))) (+ x (+ (/ 1 y) (+ (/ 1 (pow y 3)) (/ x (pow y 2))))))
(* y (+ 1 (/ 1 y)))
(+ x (* -1 (/ (- x 1) y)))
(+ x (* -1 (/ (- (* -1 (/ (- x 1) y)) (* -1 (- x 1))) y)))
(+ x (* -1 (/ (- (* -1 (/ (- (* -1 (/ (- x 1) y)) (* -1 (- x 1))) y)) (* -1 (- x 1))) y)))
(- (+ 1 (* -1 (/ (- (+ (* -1 (- x 1)) (/ x y)) (/ 1 y)) y))) x)
(- (+ 1 (* -1 (/ (+ (* -1 (- x 1)) (* -1 (/ (- (+ (* -1 (- x 1)) (/ x y)) (/ 1 y)) y))) y))) x)
Outputs
(- 1 (/ y (+ 1 y)))
(-.f64 #s(literal 1 binary64) (/.f64 (*.f64 (-.f64 #s(literal 1 binary64) x) y) (+.f64 y #s(literal 1 binary64))))
(- (+ 1 (/ (* x y) (+ 1 y))) (/ y (+ 1 y)))
(/.f64 (*.f64 (-.f64 #s(literal 1 binary64) x) y) (+.f64 y #s(literal 1 binary64)))
(/ y (+ 1 y))
(*.f64 (-.f64 #s(literal 1 binary64) x) y)
(+ (* -1 (/ (* x y) (+ 1 y))) (/ y (+ 1 y)))
(-.f64 #s(literal 1 binary64) x)
y
(+.f64 y #s(literal 1 binary64))

rewrite0.0ms (0%)

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

eval1.0ms (0.1%)

Memory
2.4MiB live, 2.4MiB allocated
Compiler

Compiled 146 to 23 computations (84.2% saved)

prune2.0ms (0.1%)

Memory
3.4MiB live, 3.4MiB allocated
Pruning

4 alts after pruning (3 fresh and 1 done)

PrunedKeptTotal
New7310
Fresh000
Picked011
Done000
Total7411
Accuracy
75.9%
Counts
11 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
63.2%
(-.f64 #s(literal 1 binary64) (/.f64 (*.f64 (-.f64 #s(literal 1 binary64) x) y) (+.f64 y #s(literal 1 binary64))))
28.3%
(-.f64 #s(literal 1 binary64) #s(approx (/ (* (- 1 x) y) (+ y 1)) (-.f64 #s(literal 1 binary64) x)))
49.1%
(-.f64 #s(literal 1 binary64) #s(approx (/ (* (- 1 x) y) (+ y 1)) (*.f64 (-.f64 #s(literal 1 binary64) x) y)))
3.0%
#s(approx (- 1 (/ (* (- 1 x) y) (+ y 1))) (/.f64 (*.f64 (-.f64 #s(literal 1 binary64) x) y) (+.f64 y #s(literal 1 binary64))))
Compiler

Compiled 64 to 45 computations (29.7% saved)

simplify1.0ms (0.1%)

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

Found 11 expressions of interest:

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

localize35.0ms (2.5%)

Memory
23.4MiB live, 60.5MiB allocated
Localize:

Found 11 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(-.f64 #s(literal 1 binary64) x)
accuracy15.583242704630214
(-.f64 #s(literal 1 binary64) #s(approx (/ (* (- 1 x) y) (+ y 1)) (-.f64 #s(literal 1 binary64) x)))
accuracy30.16813209232148
#s(approx (/ (* (- 1 x) y) (+ y 1)) (-.f64 #s(literal 1 binary64) x))
accuracy0.0
(-.f64 #s(literal 1 binary64) x)
accuracy0.01171875
(*.f64 (-.f64 #s(literal 1 binary64) x) y)
accuracy15.583242704630214
(-.f64 #s(literal 1 binary64) #s(approx (/ (* (- 1 x) y) (+ y 1)) (*.f64 (-.f64 #s(literal 1 binary64) x) y)))
accuracy32.417346962961496
#s(approx (/ (* (- 1 x) y) (+ y 1)) (*.f64 (-.f64 #s(literal 1 binary64) x) y))
accuracy0.0
(+.f64 y #s(literal 1 binary64))
accuracy0.01171875
(*.f64 (-.f64 #s(literal 1 binary64) x) y)
accuracy7.9785573072572875
(/.f64 (*.f64 (-.f64 #s(literal 1 binary64) x) y) (+.f64 y #s(literal 1 binary64)))
accuracy62.045488626016606
#s(approx (- 1 (/ (* (- 1 x) y) (+ y 1))) (/.f64 (*.f64 (-.f64 #s(literal 1 binary64) x) y) (+.f64 y #s(literal 1 binary64))))
Samples
13.0ms190×0valid
11.0ms53×1valid
3.0ms13×2valid
Compiler

Compiled 212 to 28 computations (86.8% saved)

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

series6.0ms (0.4%)

Memory
-31.9MiB live, 6.5MiB allocated
Counts
9 → 42
Calls
Call 1
Inputs
#s(approx (- 1 (/ (* (- 1 x) y) (+ y 1))) (/.f64 (*.f64 (-.f64 #s(literal 1 binary64) x) y) (+.f64 y #s(literal 1 binary64))))
(/.f64 (*.f64 (-.f64 #s(literal 1 binary64) x) y) (+.f64 y #s(literal 1 binary64)))
(*.f64 (-.f64 #s(literal 1 binary64) x) y)
(-.f64 #s(literal 1 binary64) x)
(-.f64 #s(literal 1 binary64) #s(approx (/ (* (- 1 x) y) (+ y 1)) (*.f64 (-.f64 #s(literal 1 binary64) x) y)))
#s(approx (/ (* (- 1 x) y) (+ y 1)) (*.f64 (-.f64 #s(literal 1 binary64) x) y))
(-.f64 #s(literal 1 binary64) #s(approx (/ (* (- 1 x) y) (+ y 1)) (-.f64 #s(literal 1 binary64) x)))
#s(approx (/ (* (- 1 x) y) (+ y 1)) (-.f64 #s(literal 1 binary64) x))
(+.f64 y #s(literal 1 binary64))
Outputs
(- 1 (/ y (+ 1 y)))
(- (+ 1 (/ (* x y) (+ 1 y))) (/ y (+ 1 y)))
(/ y (+ 1 y))
(+ (* -1 (/ (* x y) (+ 1 y))) (/ y (+ 1 y)))
y
(+ y (* -1 (* x y)))
1
(+ 1 (* -1 x))
(/ (* x y) (+ 1 y))
(* x (- (/ 1 x) (+ (* -1 (/ y (+ 1 y))) (/ y (* x (+ 1 y))))))
(* -1 (/ (* x y) (+ 1 y)))
(* x (+ (* -1 (/ y (+ 1 y))) (/ y (* x (+ 1 y)))))
(* -1 (* x y))
(* x (+ (* -1 y) (/ y x)))
(* -1 x)
(* x (- (/ 1 x) 1))
(* -1 (* x (- (* -1 (/ (- 1 (/ y (+ 1 y))) x)) (/ y (+ 1 y)))))
(* -1 (* x (+ (* -1 (/ y (* x (+ 1 y)))) (/ y (+ 1 y)))))
(* -1 (* x (+ y (* -1 (/ y x)))))
(* -1 (* x (- 1 (/ 1 x))))
(+ 1 (* y (- x 1)))
(+ 1 (* y (- (+ x (* y (- 1 x))) 1)))
(+ 1 (* y (- (+ x (* y (- (+ 1 (* y (- x 1))) x))) 1)))
(* y (- 1 x))
(* y (- (+ 1 (* y (- x 1))) x))
(* y (- (+ 1 (* y (- (+ x (* y (- 1 x))) 1))) x))
(* y (- (+ 1 (* y (- (+ x (* y (- (+ 1 (* y (- x 1))) x))) 1))) x))
(+ 1 y)
x
(- (+ x (/ 1 y)) (/ x y))
(- (+ x (+ (* -1 (/ (+ 1 (* -1 x)) (pow y 2))) (/ 1 y))) (/ x y))
(- (+ x (+ (/ 1 y) (/ 1 (pow y 3)))) (+ (* -1 (/ x (pow y 2))) (+ (/ 1 (pow y 2)) (+ (/ x y) (/ x (pow y 3))))))
(- 1 x)
(- (+ 1 (/ x y)) (+ x (/ 1 y)))
(- (+ 1 (+ (/ 1 (pow y 2)) (/ x y))) (+ x (+ (/ 1 y) (/ x (pow y 2)))))
(- (+ 1 (+ (/ 1 (pow y 2)) (+ (/ x y) (/ x (pow y 3))))) (+ x (+ (/ 1 y) (+ (/ 1 (pow y 3)) (/ x (pow y 2))))))
(* y (+ 1 (/ 1 y)))
(+ x (* -1 (/ (- x 1) y)))
(+ x (* -1 (/ (- (* -1 (/ (- x 1) y)) (* -1 (- x 1))) y)))
(+ x (* -1 (/ (- (* -1 (/ (- (* -1 (/ (- x 1) y)) (* -1 (- x 1))) y)) (* -1 (- x 1))) y)))
(- (+ 1 (* -1 (/ (- (+ (* -1 (- x 1)) (/ x y)) (/ 1 y)) y))) x)
(- (+ 1 (* -1 (/ (+ (* -1 (- x 1)) (* -1 (/ (- (+ (* -1 (- x 1)) (/ x y)) (/ 1 y)) y))) y))) x)
Calls

6 calls:

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

simplify1.0ms (0%)

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

rewrite1.0ms (0%)

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

eval2.0ms (0.2%)

Memory
6.0MiB live, 6.0MiB allocated
Compiler

Compiled 626 to 48 computations (92.3% saved)

prune3.0ms (0.2%)

Memory
6.4MiB live, 6.4MiB allocated
Pruning

7 alts after pruning (3 fresh and 4 done)

PrunedKeptTotal
New21324
Fresh000
Picked033
Done011
Total21728
Accuracy
76.1%
Counts
28 → 7
Alt Table
Click to see full alt table
StatusAccuracyProgram
63.2%
(-.f64 #s(literal 1 binary64) (/.f64 (*.f64 (-.f64 #s(literal 1 binary64) x) y) (+.f64 y #s(literal 1 binary64))))
28.3%
(-.f64 #s(literal 1 binary64) #s(approx (/ (* (- 1 x) y) (+ y 1)) (-.f64 #s(literal 1 binary64) x)))
49.1%
(-.f64 #s(literal 1 binary64) #s(approx (/ (* (- 1 x) y) (+ y 1)) (*.f64 (-.f64 #s(literal 1 binary64) x) y)))
3.0%
#s(approx (- 1 (/ (* (- 1 x) y) (+ y 1))) (/.f64 (*.f64 (-.f64 #s(literal 1 binary64) x) y) (+.f64 y #s(literal 1 binary64))))
61.3%
#s(approx (- 1 (/ (* (- 1 x) y) (+ y 1))) (/.f64 #s(approx (* (- 1 x) y) (-.f64 #s(literal 1 binary64) #s(approx (/ (* (- 1 x) y) (+ y 1)) (*.f64 (-.f64 #s(literal 1 binary64) x) y)))) (+.f64 y #s(literal 1 binary64))))
37.9%
#s(approx (- 1 (/ (* (- 1 x) y) (+ y 1))) (+.f64 y #s(literal 1 binary64)))
25.1%
#s(approx (- 1 (/ (* (- 1 x) y) (+ y 1))) #s(approx (/ (* (- 1 x) y) (+ y 1)) (-.f64 #s(literal 1 binary64) x)))
Compiler

Compiled 143 to 85 computations (40.6% saved)

simplify1.0ms (0.1%)

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

Found 9 expressions of interest:

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

localize37.0ms (2.6%)

Memory
-1.6MiB live, 80.6MiB allocated
Localize:

Found 9 expressions of interest:

NewMetricScoreProgram
accuracy15.583242704630214
(-.f64 #s(literal 1 binary64) #s(approx (/ (* (- 1 x) y) (+ y 1)) (*.f64 (-.f64 #s(literal 1 binary64) x) y)))
accuracy32.417346962961496
#s(approx (/ (* (- 1 x) y) (+ y 1)) (*.f64 (-.f64 #s(literal 1 binary64) x) y))
accuracy61.69339997435018
#s(approx (* (- 1 x) y) (-.f64 #s(literal 1 binary64) #s(approx (/ (* (- 1 x) y) (+ y 1)) (*.f64 (-.f64 #s(literal 1 binary64) x) y))))
accuracy62.045488626016606
#s(approx (- 1 (/ (* (- 1 x) y) (+ y 1))) (/.f64 #s(approx (* (- 1 x) y) (-.f64 #s(literal 1 binary64) #s(approx (/ (* (- 1 x) y) (+ y 1)) (*.f64 (-.f64 #s(literal 1 binary64) x) y)))) (+.f64 y #s(literal 1 binary64))))
accuracy0.0
(+.f64 y #s(literal 1 binary64))
accuracy39.712281597349566
#s(approx (- 1 (/ (* (- 1 x) y) (+ y 1))) (+.f64 y #s(literal 1 binary64)))
accuracy0.0
(-.f64 #s(literal 1 binary64) x)
accuracy30.16813209232148
#s(approx (/ (* (- 1 x) y) (+ y 1)) (-.f64 #s(literal 1 binary64) x))
accuracy62.045488626016606
#s(approx (- 1 (/ (* (- 1 x) y) (+ y 1))) #s(approx (/ (* (- 1 x) y) (+ y 1)) (-.f64 #s(literal 1 binary64) x)))
Samples
13.0ms190×0valid
11.0ms53×1valid
4.0ms13×2valid
Compiler

Compiled 300 to 30 computations (90% saved)

Precisions
Click to see histograms. Total time spent on operations: 13.0ms
ival-sub: 4.0ms (30.8% of total)
ival-div: 3.0ms (23.1% of total)
adjust: 2.0ms (15.4% of total)
ival-add: 2.0ms (15.4% of total)
ival-mult: 2.0ms (15.4% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)

series4.0ms (0.3%)

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

6 calls:

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

simplify1.0ms (0%)

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

rewrite1.0ms (0%)

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

eval5.0ms (0.3%)

Memory
-30.4MiB live, 8.0MiB allocated
Compiler

Compiled 818 to 49 computations (94% saved)

prune4.0ms (0.3%)

Memory
13.1MiB live, 13.1MiB allocated
Pruning

8 alts after pruning (1 fresh and 7 done)

PrunedKeptTotal
New21122
Fresh000
Picked033
Done044
Total21829
Accuracy
76.1%
Counts
29 → 8
Alt Table
Click to see full alt table
StatusAccuracyProgram
63.2%
(-.f64 #s(literal 1 binary64) (/.f64 (*.f64 (-.f64 #s(literal 1 binary64) x) y) (+.f64 y #s(literal 1 binary64))))
28.3%
(-.f64 #s(literal 1 binary64) #s(approx (/ (* (- 1 x) y) (+ y 1)) (-.f64 #s(literal 1 binary64) x)))
49.1%
(-.f64 #s(literal 1 binary64) #s(approx (/ (* (- 1 x) y) (+ y 1)) (*.f64 (-.f64 #s(literal 1 binary64) x) y)))
3.0%
#s(approx (- 1 (/ (* (- 1 x) y) (+ y 1))) (/.f64 (*.f64 (-.f64 #s(literal 1 binary64) x) y) (+.f64 y #s(literal 1 binary64))))
49.5%
#s(approx (- 1 (/ (* (- 1 x) y) (+ y 1))) (/.f64 #s(approx (* (- 1 x) y) (/.f64 #s(approx (* (- 1 x) y) (-.f64 #s(literal 1 binary64) #s(approx (/ (* (- 1 x) y) (+ y 1)) (*.f64 (-.f64 #s(literal 1 binary64) x) y)))) (+.f64 y #s(literal 1 binary64)))) (+.f64 y #s(literal 1 binary64))))
61.3%
#s(approx (- 1 (/ (* (- 1 x) y) (+ y 1))) (/.f64 #s(approx (* (- 1 x) y) (-.f64 #s(literal 1 binary64) #s(approx (/ (* (- 1 x) y) (+ y 1)) (*.f64 (-.f64 #s(literal 1 binary64) x) y)))) (+.f64 y #s(literal 1 binary64))))
37.9%
#s(approx (- 1 (/ (* (- 1 x) y) (+ y 1))) (+.f64 y #s(literal 1 binary64)))
25.1%
#s(approx (- 1 (/ (* (- 1 x) y) (+ y 1))) #s(approx (/ (* (- 1 x) y) (+ y 1)) (-.f64 #s(literal 1 binary64) x)))
Compiler

Compiled 192 to 104 computations (45.8% saved)

simplify1.0ms (0.1%)

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

Found 4 expressions of interest:

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

localize37.0ms (2.6%)

Memory
-3.4MiB live, 78.1MiB allocated
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
accuracy32.417346962961496
#s(approx (/ (* (- 1 x) y) (+ y 1)) (*.f64 (-.f64 #s(literal 1 binary64) x) y))
accuracy32.417346962961496
#s(approx (* (- 1 x) y) (/.f64 #s(approx (* (- 1 x) y) (-.f64 #s(literal 1 binary64) #s(approx (/ (* (- 1 x) y) (+ y 1)) (*.f64 (-.f64 #s(literal 1 binary64) x) y)))) (+.f64 y #s(literal 1 binary64))))
accuracy61.69339997435018
#s(approx (* (- 1 x) y) (-.f64 #s(literal 1 binary64) #s(approx (/ (* (- 1 x) y) (+ y 1)) (*.f64 (-.f64 #s(literal 1 binary64) x) y))))
accuracy62.045488626016606
#s(approx (- 1 (/ (* (- 1 x) y) (+ y 1))) (/.f64 #s(approx (* (- 1 x) y) (/.f64 #s(approx (* (- 1 x) y) (-.f64 #s(literal 1 binary64) #s(approx (/ (* (- 1 x) y) (+ y 1)) (*.f64 (-.f64 #s(literal 1 binary64) x) y)))) (+.f64 y #s(literal 1 binary64)))) (+.f64 y #s(literal 1 binary64))))
Samples
19.0ms190×0valid
7.0ms53×1valid
3.0ms13×2valid
Compiler

Compiled 290 to 29 computations (90% saved)

Precisions
Click to see histograms. Total time spent on operations: 16.0ms
ival-sub: 8.0ms (50.6% of total)
ival-div: 2.0ms (12.7% of total)
adjust: 2.0ms (12.7% of total)
ival-add: 2.0ms (12.7% of total)
ival-mult: 2.0ms (12.7% 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
9.2MiB live, 9.2MiB allocated
Counts
6 → 36
Calls
Call 1
Inputs
#s(approx (- 1 (/ (* (- 1 x) y) (+ y 1))) (/.f64 #s(approx (* (- 1 x) y) (/.f64 #s(approx (* (- 1 x) y) (-.f64 #s(literal 1 binary64) #s(approx (/ (* (- 1 x) y) (+ y 1)) (*.f64 (-.f64 #s(literal 1 binary64) x) y)))) (+.f64 y #s(literal 1 binary64)))) (+.f64 y #s(literal 1 binary64))))
(/.f64 #s(approx (* (- 1 x) y) (/.f64 #s(approx (* (- 1 x) y) (-.f64 #s(literal 1 binary64) #s(approx (/ (* (- 1 x) y) (+ y 1)) (*.f64 (-.f64 #s(literal 1 binary64) x) y)))) (+.f64 y #s(literal 1 binary64)))) (+.f64 y #s(literal 1 binary64)))
#s(approx (* (- 1 x) y) (/.f64 #s(approx (* (- 1 x) y) (-.f64 #s(literal 1 binary64) #s(approx (/ (* (- 1 x) y) (+ y 1)) (*.f64 (-.f64 #s(literal 1 binary64) x) y)))) (+.f64 y #s(literal 1 binary64))))
(/.f64 #s(approx (* (- 1 x) y) (-.f64 #s(literal 1 binary64) #s(approx (/ (* (- 1 x) y) (+ y 1)) (*.f64 (-.f64 #s(literal 1 binary64) x) y)))) (+.f64 y #s(literal 1 binary64)))
#s(approx (* (- 1 x) y) (-.f64 #s(literal 1 binary64) #s(approx (/ (* (- 1 x) y) (+ y 1)) (*.f64 (-.f64 #s(literal 1 binary64) x) y))))
#s(approx (/ (* (- 1 x) y) (+ y 1)) (*.f64 (-.f64 #s(literal 1 binary64) x) y))
Outputs
(- 1 (/ y (+ 1 y)))
(- (+ 1 (/ (* x y) (+ 1 y))) (/ y (+ 1 y)))
(/ y (+ 1 y))
(+ (* -1 (/ (* x y) (+ 1 y))) (/ y (+ 1 y)))
y
(+ y (* -1 (* x y)))
(/ (* x y) (+ 1 y))
(* x (- (/ 1 x) (+ (* -1 (/ y (+ 1 y))) (/ y (* x (+ 1 y))))))
(* -1 (/ (* x y) (+ 1 y)))
(* x (+ (* -1 (/ y (+ 1 y))) (/ y (* x (+ 1 y)))))
(* -1 (* x y))
(* x (+ (* -1 y) (/ y x)))
(* -1 (* x (- (* -1 (/ (- 1 (/ y (+ 1 y))) x)) (/ y (+ 1 y)))))
(* -1 (* x (+ (* -1 (/ y (* x (+ 1 y)))) (/ y (+ 1 y)))))
(* -1 (* x (+ y (* -1 (/ y x)))))
1
(+ 1 (* y (- x 1)))
(+ 1 (* y (- (+ x (* y (- 1 x))) 1)))
(+ 1 (* y (- (+ x (* y (- (+ 1 (* y (- x 1))) x))) 1)))
(* y (- 1 x))
(* y (- (+ 1 (* y (- x 1))) x))
(* y (- (+ 1 (* y (- (+ x (* y (- 1 x))) 1))) x))
(* y (- (+ 1 (* y (- (+ x (* y (- (+ 1 (* y (- x 1))) x))) 1))) x))
x
(- (+ x (/ 1 y)) (/ x y))
(- (+ x (+ (* -1 (/ (+ 1 (* -1 x)) (pow y 2))) (/ 1 y))) (/ x y))
(- (+ x (+ (/ 1 y) (/ 1 (pow y 3)))) (+ (* -1 (/ x (pow y 2))) (+ (/ 1 (pow y 2)) (+ (/ x y) (/ x (pow y 3))))))
(- 1 x)
(- (+ 1 (/ x y)) (+ x (/ 1 y)))
(- (+ 1 (+ (/ 1 (pow y 2)) (/ x y))) (+ x (+ (/ 1 y) (/ x (pow y 2)))))
(- (+ 1 (+ (/ 1 (pow y 2)) (+ (/ x y) (/ x (pow y 3))))) (+ x (+ (/ 1 y) (+ (/ 1 (pow y 3)) (/ x (pow y 2))))))
(+ x (* -1 (/ (- x 1) y)))
(+ x (* -1 (/ (- (* -1 (/ (- x 1) y)) (* -1 (- x 1))) y)))
(+ x (* -1 (/ (- (* -1 (/ (- (* -1 (/ (- x 1) y)) (* -1 (- x 1))) y)) (* -1 (- x 1))) y)))
(- (+ 1 (* -1 (/ (- (+ (* -1 (- x 1)) (/ x y)) (/ 1 y)) y))) x)
(- (+ 1 (* -1 (/ (+ (* -1 (- x 1)) (* -1 (/ (- (+ (* -1 (- x 1)) (/ x y)) (/ 1 y)) y))) y))) x)
Calls

6 calls:

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

simplify1.0ms (0%)

Memory
1.9MiB live, 1.9MiB allocated
Algorithm
egg-herbie
Counts
36 → 6
Calls
Call 1
Inputs
(- 1 (/ y (+ 1 y)))
(- (+ 1 (/ (* x y) (+ 1 y))) (/ y (+ 1 y)))
(/ y (+ 1 y))
(+ (* -1 (/ (* x y) (+ 1 y))) (/ y (+ 1 y)))
y
(+ y (* -1 (* x y)))
(/ (* x y) (+ 1 y))
(* x (- (/ 1 x) (+ (* -1 (/ y (+ 1 y))) (/ y (* x (+ 1 y))))))
(* -1 (/ (* x y) (+ 1 y)))
(* x (+ (* -1 (/ y (+ 1 y))) (/ y (* x (+ 1 y)))))
(* -1 (* x y))
(* x (+ (* -1 y) (/ y x)))
(* -1 (* x (- (* -1 (/ (- 1 (/ y (+ 1 y))) x)) (/ y (+ 1 y)))))
(* -1 (* x (+ (* -1 (/ y (* x (+ 1 y)))) (/ y (+ 1 y)))))
(* -1 (* x (+ y (* -1 (/ y x)))))
1
(+ 1 (* y (- x 1)))
(+ 1 (* y (- (+ x (* y (- 1 x))) 1)))
(+ 1 (* y (- (+ x (* y (- (+ 1 (* y (- x 1))) x))) 1)))
(* y (- 1 x))
(* y (- (+ 1 (* y (- x 1))) x))
(* y (- (+ 1 (* y (- (+ x (* y (- 1 x))) 1))) x))
(* y (- (+ 1 (* y (- (+ x (* y (- (+ 1 (* y (- x 1))) x))) 1))) x))
x
(- (+ x (/ 1 y)) (/ x y))
(- (+ x (+ (* -1 (/ (+ 1 (* -1 x)) (pow y 2))) (/ 1 y))) (/ x y))
(- (+ x (+ (/ 1 y) (/ 1 (pow y 3)))) (+ (* -1 (/ x (pow y 2))) (+ (/ 1 (pow y 2)) (+ (/ x y) (/ x (pow y 3))))))
(- 1 x)
(- (+ 1 (/ x y)) (+ x (/ 1 y)))
(- (+ 1 (+ (/ 1 (pow y 2)) (/ x y))) (+ x (+ (/ 1 y) (/ x (pow y 2)))))
(- (+ 1 (+ (/ 1 (pow y 2)) (+ (/ x y) (/ x (pow y 3))))) (+ x (+ (/ 1 y) (+ (/ 1 (pow y 3)) (/ x (pow y 2))))))
(+ x (* -1 (/ (- x 1) y)))
(+ x (* -1 (/ (- (* -1 (/ (- x 1) y)) (* -1 (- x 1))) y)))
(+ x (* -1 (/ (- (* -1 (/ (- (* -1 (/ (- x 1) y)) (* -1 (- x 1))) y)) (* -1 (- x 1))) y)))
(- (+ 1 (* -1 (/ (- (+ (* -1 (- x 1)) (/ x y)) (/ 1 y)) y))) x)
(- (+ 1 (* -1 (/ (+ (* -1 (- x 1)) (* -1 (/ (- (+ (* -1 (- x 1)) (/ x y)) (/ 1 y)) y))) y))) x)
Outputs
(- 1 (/ y (+ 1 y)))
#s(approx (- 1 (/ (* (- 1 x) y) (+ y 1))) (/.f64 #s(approx (* (- 1 x) y) (/.f64 #s(approx (* (- 1 x) y) (-.f64 #s(literal 1 binary64) #s(approx (/ (* (- 1 x) y) (+ y 1)) (*.f64 (-.f64 #s(literal 1 binary64) x) y)))) (+.f64 y #s(literal 1 binary64)))) (+.f64 y #s(literal 1 binary64))))
(- (+ 1 (/ (* x y) (+ 1 y))) (/ y (+ 1 y)))
(/.f64 #s(approx (* (- 1 x) y) (/.f64 #s(approx (* (- 1 x) y) (-.f64 #s(literal 1 binary64) #s(approx (/ (* (- 1 x) y) (+ y 1)) (*.f64 (-.f64 #s(literal 1 binary64) x) y)))) (+.f64 y #s(literal 1 binary64)))) (+.f64 y #s(literal 1 binary64)))
(/ y (+ 1 y))
#s(approx (* (- 1 x) y) (/.f64 #s(approx (* (- 1 x) y) (-.f64 #s(literal 1 binary64) #s(approx (/ (* (- 1 x) y) (+ y 1)) (*.f64 (-.f64 #s(literal 1 binary64) x) y)))) (+.f64 y #s(literal 1 binary64))))
(+ (* -1 (/ (* x y) (+ 1 y))) (/ y (+ 1 y)))
(/.f64 #s(approx (* (- 1 x) y) (-.f64 #s(literal 1 binary64) #s(approx (/ (* (- 1 x) y) (+ y 1)) (*.f64 (-.f64 #s(literal 1 binary64) x) y)))) (+.f64 y #s(literal 1 binary64)))
y
#s(approx (* (- 1 x) y) (-.f64 #s(literal 1 binary64) #s(approx (/ (* (- 1 x) y) (+ y 1)) (*.f64 (-.f64 #s(literal 1 binary64) x) y))))
(+ y (* -1 (* x y)))
#s(approx (/ (* (- 1 x) y) (+ y 1)) (*.f64 (-.f64 #s(literal 1 binary64) x) y))

rewrite1.0ms (0%)

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

eval1.0ms (0.1%)

Memory
4.0MiB live, 4.0MiB allocated
Compiler

Compiled 541 to 30 computations (94.5% saved)

prune7.0ms (0.5%)

Memory
-25.5MiB live, 12.9MiB allocated
Pruning

8 alts after pruning (0 fresh and 8 done)

PrunedKeptTotal
New11011
Fresh000
Picked011
Done077
Total11819
Accuracy
76.1%
Counts
19 → 8
Alt Table
Click to see full alt table
StatusAccuracyProgram
63.2%
(-.f64 #s(literal 1 binary64) (/.f64 (*.f64 (-.f64 #s(literal 1 binary64) x) y) (+.f64 y #s(literal 1 binary64))))
28.3%
(-.f64 #s(literal 1 binary64) #s(approx (/ (* (- 1 x) y) (+ y 1)) (-.f64 #s(literal 1 binary64) x)))
49.1%
(-.f64 #s(literal 1 binary64) #s(approx (/ (* (- 1 x) y) (+ y 1)) (*.f64 (-.f64 #s(literal 1 binary64) x) y)))
3.0%
#s(approx (- 1 (/ (* (- 1 x) y) (+ y 1))) (/.f64 (*.f64 (-.f64 #s(literal 1 binary64) x) y) (+.f64 y #s(literal 1 binary64))))
49.5%
#s(approx (- 1 (/ (* (- 1 x) y) (+ y 1))) (/.f64 #s(approx (* (- 1 x) y) (/.f64 #s(approx (* (- 1 x) y) (-.f64 #s(literal 1 binary64) #s(approx (/ (* (- 1 x) y) (+ y 1)) (*.f64 (-.f64 #s(literal 1 binary64) x) y)))) (+.f64 y #s(literal 1 binary64)))) (+.f64 y #s(literal 1 binary64))))
61.3%
#s(approx (- 1 (/ (* (- 1 x) y) (+ y 1))) (/.f64 #s(approx (* (- 1 x) y) (-.f64 #s(literal 1 binary64) #s(approx (/ (* (- 1 x) y) (+ y 1)) (*.f64 (-.f64 #s(literal 1 binary64) x) y)))) (+.f64 y #s(literal 1 binary64))))
37.9%
#s(approx (- 1 (/ (* (- 1 x) y) (+ y 1))) (+.f64 y #s(literal 1 binary64)))
25.1%
#s(approx (- 1 (/ (* (- 1 x) y) (+ y 1))) #s(approx (/ (* (- 1 x) y) (+ y 1)) (-.f64 #s(literal 1 binary64) x)))
Compiler

Compiled 384 to 131 computations (65.9% saved)

regimes16.0ms (1.2%)

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

5 calls:

5.0ms
x
3.0ms
y
3.0ms
(/.f64 (*.f64 (-.f64 #s(literal 1 binary64) x) y) (+.f64 y #s(literal 1 binary64)))
3.0ms
(-.f64 #s(literal 1 binary64) x)
2.0ms
(-.f64 #s(literal 1 binary64) (/.f64 (*.f64 (-.f64 #s(literal 1 binary64) x) y) (+.f64 y #s(literal 1 binary64))))
Results
AccuracySegmentsBranch
65.3%2x
75.6%3y
75.6%3(-.f64 #s(literal 1 binary64) (/.f64 (*.f64 (-.f64 #s(literal 1 binary64) x) y) (+.f64 y #s(literal 1 binary64))))
75.6%3(/.f64 (*.f64 (-.f64 #s(literal 1 binary64) x) y) (+.f64 y #s(literal 1 binary64)))
65.3%2(-.f64 #s(literal 1 binary64) x)
Compiler

Compiled 25 to 23 computations (8% saved)

regimes8.0ms (0.5%)

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

3 calls:

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

Compiled 21 to 17 computations (19% saved)

regimes3.0ms (0.2%)

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

1 calls:

2.0ms
y
Results
AccuracySegmentsBranch
74.3%3y
Compiler

Compiled 1 to 2 computations (-100% saved)

regimes9.0ms (0.7%)

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

5 calls:

2.0ms
(/.f64 (*.f64 (-.f64 #s(literal 1 binary64) x) y) (+.f64 y #s(literal 1 binary64)))
2.0ms
y
2.0ms
x
1.0ms
(-.f64 #s(literal 1 binary64) x)
1.0ms
(-.f64 #s(literal 1 binary64) (/.f64 (*.f64 (-.f64 #s(literal 1 binary64) x) y) (+.f64 y #s(literal 1 binary64))))
Results
AccuracySegmentsBranch
51.7%3(-.f64 #s(literal 1 binary64) x)
51.7%3x
62.8%3(/.f64 (*.f64 (-.f64 #s(literal 1 binary64) x) y) (+.f64 y #s(literal 1 binary64)))
62.8%3(-.f64 #s(literal 1 binary64) (/.f64 (*.f64 (-.f64 #s(literal 1 binary64) x) y) (+.f64 y #s(literal 1 binary64))))
62.7%3y
Compiler

Compiled 25 to 23 computations (8% saved)

regimes7.0ms (0.5%)

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

5 calls:

1.0ms
y
1.0ms
(/.f64 (*.f64 (-.f64 #s(literal 1 binary64) x) y) (+.f64 y #s(literal 1 binary64)))
1.0ms
x
1.0ms
(-.f64 #s(literal 1 binary64) x)
1.0ms
(-.f64 #s(literal 1 binary64) (/.f64 (*.f64 (-.f64 #s(literal 1 binary64) x) y) (+.f64 y #s(literal 1 binary64))))
Results
AccuracySegmentsBranch
37.9%1x
37.9%1(-.f64 #s(literal 1 binary64) x)
37.9%1y
37.9%1(-.f64 #s(literal 1 binary64) (/.f64 (*.f64 (-.f64 #s(literal 1 binary64) x) y) (+.f64 y #s(literal 1 binary64))))
37.9%1(/.f64 (*.f64 (-.f64 #s(literal 1 binary64) x) y) (+.f64 y #s(literal 1 binary64)))
Compiler

Compiled 25 to 23 computations (8% saved)

regimes13.0ms (1%)

Memory
-71.0MiB live, 15.9MiB allocated
Accuracy

Total -0.0b remaining (-0%)

Threshold costs -0b (-0%)

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

5 calls:

8.0ms
(-.f64 #s(literal 1 binary64) x)
1.0ms
y
1.0ms
(/.f64 (*.f64 (-.f64 #s(literal 1 binary64) x) y) (+.f64 y #s(literal 1 binary64)))
1.0ms
x
1.0ms
(-.f64 #s(literal 1 binary64) (/.f64 (*.f64 (-.f64 #s(literal 1 binary64) x) y) (+.f64 y #s(literal 1 binary64))))
Results
AccuracySegmentsBranch
25.1%1y
25.1%1(-.f64 #s(literal 1 binary64) x)
25.1%1(/.f64 (*.f64 (-.f64 #s(literal 1 binary64) x) y) (+.f64 y #s(literal 1 binary64)))
25.1%1x
25.1%1(-.f64 #s(literal 1 binary64) (/.f64 (*.f64 (-.f64 #s(literal 1 binary64) x) y) (+.f64 y #s(literal 1 binary64))))
Compiler

Compiled 25 to 23 computations (8% saved)

bsearch34.0ms (2.5%)

Memory
16.7MiB live, 55.1MiB allocated
Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
18.0ms
1604981045499492600.0
4.432120279232383e+23
13.0ms
-4.761483155200739e+20
-2.877258614361482e+19
Samples
14.0ms123×1valid
7.0ms133×0valid
Compiler

Compiled 430 to 349 computations (18.8% saved)

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

bsearch44.0ms (3.2%)

Memory
-13.7MiB live, 61.3MiB allocated
Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
21.0ms
752599835985.2598
1604981045499492600.0
15.0ms
-2.857416327305473e+42
-4.878217571394677e+39
Samples
20.0ms145×1valid
7.0ms127×0valid
Compiler

Compiled 932 to 523 computations (43.9% saved)

Precisions
Click to see histograms. Total time spent on operations: 15.0ms
ival-sub: 4.0ms (26.9% of total)
ival-div: 3.0ms (20.1% of total)
adjust: 3.0ms (20.1% of total)
ival-mult: 3.0ms (20.1% of total)
ival-add: 2.0ms (13.4% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)

bsearch31.0ms (2.3%)

Memory
6.5MiB live, 48.3MiB allocated
Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
14.0ms
0.15230846266677409
123.1229457058452
14.0ms
-3333.1017077370984
-4.900403665118936e-11
Samples
18.0ms288×0valid
Compiler

Compiled 590 to 463 computations (21.5% saved)

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

bsearch1.0ms (0%)

Memory
1.2MiB live, 1.2MiB allocated
Algorithm
left-value
Steps
TimeLeftRight
0.0ms
0.9999991726043335
0.9999999954308368
0.0ms
-1.226908861084609e+20
-3.2632240746728747
Compiler

Compiled 14 to 14 computations (0% saved)

simplify5.0ms (0.4%)

Memory
16.4MiB live, 16.4MiB allocated
Algorithm
egg-herbie
Calls
Call 1
Inputs
(if (<=.f64 y #s(literal -29000000000000000000 binary64)) (-.f64 #s(literal 1 binary64) #s(approx (/ (* (- 1 x) y) (+ y 1)) (-.f64 #s(literal 1 binary64) x))) (if (<=.f64 y #s(literal 1620000000000000000 binary64)) (-.f64 #s(literal 1 binary64) (/.f64 (*.f64 (-.f64 #s(literal 1 binary64) x) y) (+.f64 y #s(literal 1 binary64)))) (-.f64 #s(literal 1 binary64) #s(approx (/ (* (- 1 x) y) (+ y 1)) (-.f64 #s(literal 1 binary64) x)))))
(if (<=.f64 y #s(literal -5000000000000000151893014213501833445376 binary64)) (-.f64 #s(literal 1 binary64) #s(approx (/ (* (- 1 x) y) (+ y 1)) (-.f64 #s(literal 1 binary64) x))) (if (<=.f64 y #s(literal 330000000000000 binary64)) #s(approx (- 1 (/ (* (- 1 x) y) (+ y 1))) (/.f64 #s(approx (* (- 1 x) y) (-.f64 #s(literal 1 binary64) #s(approx (/ (* (- 1 x) y) (+ y 1)) (*.f64 (-.f64 #s(literal 1 binary64) x) y)))) (+.f64 y #s(literal 1 binary64)))) (-.f64 #s(literal 1 binary64) #s(approx (/ (* (- 1 x) y) (+ y 1)) (-.f64 #s(literal 1 binary64) x)))))
(if (<=.f64 y #s(literal -1 binary64)) (-.f64 #s(literal 1 binary64) #s(approx (/ (* (- 1 x) y) (+ y 1)) (-.f64 #s(literal 1 binary64) x))) (if (<=.f64 y #s(literal 1 binary64)) (-.f64 #s(literal 1 binary64) #s(approx (/ (* (- 1 x) y) (+ y 1)) (*.f64 (-.f64 #s(literal 1 binary64) x) y))) (-.f64 #s(literal 1 binary64) #s(approx (/ (* (- 1 x) y) (+ y 1)) (-.f64 #s(literal 1 binary64) x)))))
(if (<=.f64 (/.f64 (*.f64 (-.f64 #s(literal 1 binary64) x) y) (+.f64 y #s(literal 1 binary64))) #s(literal -100000000000000000000 binary64)) (-.f64 #s(literal 1 binary64) #s(approx (/ (* (- 1 x) y) (+ y 1)) (-.f64 #s(literal 1 binary64) x))) (if (<=.f64 (/.f64 (*.f64 (-.f64 #s(literal 1 binary64) x) y) (+.f64 y #s(literal 1 binary64))) #s(literal 9007194751141365/9007199254740992 binary64)) #s(approx (- 1 (/ (* (- 1 x) y) (+ y 1))) (+.f64 y #s(literal 1 binary64))) (-.f64 #s(literal 1 binary64) #s(approx (/ (* (- 1 x) y) (+ y 1)) (-.f64 #s(literal 1 binary64) x)))))
#s(approx (- 1 (/ (* (- 1 x) y) (+ y 1))) (+.f64 y #s(literal 1 binary64)))
#s(approx (- 1 (/ (* (- 1 x) y) (+ y 1))) #s(approx (/ (* (- 1 x) y) (+ y 1)) (-.f64 #s(literal 1 binary64) x)))
Outputs
(if (<=.f64 y #s(literal -29000000000000000000 binary64)) (-.f64 #s(literal 1 binary64) #s(approx (/ (* (- 1 x) y) (+ y 1)) (-.f64 #s(literal 1 binary64) x))) (if (<=.f64 y #s(literal 1620000000000000000 binary64)) (-.f64 #s(literal 1 binary64) (/.f64 (*.f64 (-.f64 #s(literal 1 binary64) x) y) (+.f64 y #s(literal 1 binary64)))) (-.f64 #s(literal 1 binary64) #s(approx (/ (* (- 1 x) y) (+ y 1)) (-.f64 #s(literal 1 binary64) x)))))
(if (<=.f64 y #s(literal -5000000000000000151893014213501833445376 binary64)) (-.f64 #s(literal 1 binary64) #s(approx (/ (* (- 1 x) y) (+ y 1)) (-.f64 #s(literal 1 binary64) x))) (if (<=.f64 y #s(literal 330000000000000 binary64)) #s(approx (- 1 (/ (* (- 1 x) y) (+ y 1))) (/.f64 #s(approx (* (- 1 x) y) (-.f64 #s(literal 1 binary64) #s(approx (/ (* (- 1 x) y) (+ y 1)) (*.f64 (-.f64 #s(literal 1 binary64) x) y)))) (+.f64 y #s(literal 1 binary64)))) (-.f64 #s(literal 1 binary64) #s(approx (/ (* (- 1 x) y) (+ y 1)) (-.f64 #s(literal 1 binary64) x)))))
(if (<=.f64 y #s(literal -1 binary64)) (-.f64 #s(literal 1 binary64) #s(approx (/ (* (- 1 x) y) (+ y 1)) (-.f64 #s(literal 1 binary64) x))) (if (<=.f64 y #s(literal 1 binary64)) (-.f64 #s(literal 1 binary64) #s(approx (/ (* (- 1 x) y) (+ y 1)) (*.f64 (-.f64 #s(literal 1 binary64) x) y))) (-.f64 #s(literal 1 binary64) #s(approx (/ (* (- 1 x) y) (+ y 1)) (-.f64 #s(literal 1 binary64) x)))))
(if (<=.f64 (/.f64 (*.f64 (-.f64 #s(literal 1 binary64) x) y) (+.f64 y #s(literal 1 binary64))) #s(literal -100000000000000000000 binary64)) (-.f64 #s(literal 1 binary64) #s(approx (/ (* (- 1 x) y) (+ y 1)) (-.f64 #s(literal 1 binary64) x))) (if (<=.f64 (/.f64 (*.f64 (-.f64 #s(literal 1 binary64) x) y) (+.f64 y #s(literal 1 binary64))) #s(literal 9007194751141365/9007199254740992 binary64)) #s(approx (- 1 (/ (* (- 1 x) y) (+ y 1))) (+.f64 y #s(literal 1 binary64))) (-.f64 #s(literal 1 binary64) #s(approx (/ (* (- 1 x) y) (+ y 1)) (-.f64 #s(literal 1 binary64) x)))))
#s(approx (- 1 (/ (* (- 1 x) y) (+ y 1))) (+.f64 y #s(literal 1 binary64)))
#s(approx (- 1 (/ (* (- 1 x) y) (+ y 1))) #s(approx (/ (* (- 1 x) y) (+ y 1)) (-.f64 #s(literal 1 binary64) x)))

soundness2.0ms (0.1%)

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

Compiled 290 to 46 computations (84.1% saved)

preprocess46.0ms (3.3%)

Memory
-3.1MiB live, 71.5MiB allocated
Compiler

Compiled 676 to 144 computations (78.7% saved)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

Profiling

Loading profile data...