Codec.Picture.Types:toneMapping from JuicyPixels-3.2.6.1

Time bar (total: 1.2s)

start0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

analyze24.0ms (2%)

Memory
3.4MiB live, 42.3MiB 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
25%25%74.9%0.1%0%0%0%3
37.5%37.5%62.4%0.1%0%0%0%4
56.3%56.2%43.7%0.1%0%0%0%5
65.6%65.6%34.3%0.1%0%0%0%6
76.6%76.5%23.4%0.1%0%0%0%7
82%82%18%0.1%0%0%0%8
87.9%87.8%12.1%0.1%0%0%0%9
90.8%90.7%9.2%0.1%0%0%0%10
93.8%93.8%6.1%0.1%0%0%0%11
95.4%95.3%4.6%0.1%0%0%0%12
Compiler

Compiled 13 to 10 computations (23.1% saved)

sample743.0ms (62.7%)

Memory
40.9MiB live, 1 101.5MiB allocated
Samples
498.0ms8 256×0valid
Precisions
Click to see histograms. Total time spent on operations: 317.0ms
ival-div: 134.0ms (42.3% of total)
ival-add: 93.0ms (29.4% of total)
ival-mult: 74.0ms (23.4% of total)
ival-true: 7.0ms (2.2% of total)
exact: 5.0ms (1.6% of total)
ival-assert: 4.0ms (1.3% of total)
Bogosity

explain93.0ms (7.8%)

Memory
-0.4MiB live, 197.5MiB allocated
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
380-0-(/.f64 (*.f64 x (+.f64 (/.f64 x y) #s(literal 1 binary64))) (+.f64 x #s(literal 1 binary64)))
00-0-(/.f64 x y)
00-0-(+.f64 x #s(literal 1 binary64))
00-0-(*.f64 x (+.f64 (/.f64 x y) #s(literal 1 binary64)))
00-0-y
00-0-#s(literal 1 binary64)
00-0-(+.f64 (/.f64 x y) #s(literal 1 binary64))
00-0-x
Explanations
Click to see full explanations table
OperatorSubexpressionExplanationCount
/.f64(/.f64 (*.f64 x (+.f64 (/.f64 x y) #s(literal 1 binary64))) (+.f64 x #s(literal 1 binary64)))o/n380
(/.f64 x y)overflow28
(*.f64 x (+.f64 (/.f64 x y) #s(literal 1 binary64)))overflow66
(+.f64 (/.f64 x y) #s(literal 1 binary64))overflow28
Confusion
Predicted +Predicted -
+380
-0218
Precision
1.0
Recall
1.0
Confusion?
Predicted +Predicted MaybePredicted -
+3800
-00218
Precision?
1.0
Recall?
1.0
Freqs
test
numberfreq
0218
138
Total Confusion?
Predicted +Predicted MaybePredicted -
+100
-000
Precision?
1.0
Recall?
1.0
Samples
32.0ms512×0valid
Compiler

Compiled 111 to 36 computations (67.6% saved)

Precisions
Click to see histograms. Total time spent on operations: 17.0ms
ival-div: 7.0ms (41.6% of total)
ival-add: 5.0ms (29.7% of total)
ival-mult: 3.0ms (17.8% of total)
ival-true: 1.0ms (5.9% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

preprocess3.0ms (0.2%)

Memory
6.1MiB live, 6.1MiB allocated
Algorithm
egg-herbie
Calls
Call 1
Inputs
(/.f64 (*.f64 x (+.f64 (/.f64 x y) #s(literal 1 binary64))) (+.f64 x #s(literal 1 binary64)))
Outputs
(/.f64 (*.f64 x (+.f64 (/.f64 x y) #s(literal 1 binary64))) (+.f64 x #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
1.0MiB live, 1.0MiB allocated
Alt Table
Click to see full alt table
StatusAccuracyProgram
86.1%
(/.f64 (*.f64 x (+.f64 (/.f64 x y) #s(literal 1 binary64))) (+.f64 x #s(literal 1 binary64)))
Compiler

Compiled 11 to 8 computations (27.3% saved)

simplify0.0ms (0%)

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

Found 4 expressions of interest:

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

localize24.0ms (2%)

Memory
-25.4MiB live, 52.5MiB allocated
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(+.f64 (/.f64 x y) #s(literal 1 binary64))
accuracy0.0
(+.f64 x #s(literal 1 binary64))
accuracy0.07421875
(*.f64 x (+.f64 (/.f64 x y) #s(literal 1 binary64)))
accuracy8.859124087050034
(/.f64 (*.f64 x (+.f64 (/.f64 x y) #s(literal 1 binary64))) (+.f64 x #s(literal 1 binary64)))
Samples
17.0ms256×0valid
Compiler

Compiled 66 to 18 computations (72.7% saved)

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

series7.0ms (0.6%)

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

6 calls:

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

simplify0.0ms (0%)

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

rewrite0.0ms (0%)

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

eval1.0ms (0.1%)

Memory
2.4MiB live, 2.4MiB allocated
Compiler

Compiled 144 to 20 computations (86.1% saved)

prune2.0ms (0.1%)

Memory
3.8MiB live, 3.8MiB allocated
Pruning

5 alts after pruning (4 fresh and 1 done)

PrunedKeptTotal
New6410
Fresh000
Picked011
Done000
Total6511
Accuracy
99.9%
Counts
11 → 5
Alt Table
Click to see full alt table
StatusAccuracyProgram
86.1%
(/.f64 (*.f64 x (+.f64 (/.f64 x y) #s(literal 1 binary64))) (+.f64 x #s(literal 1 binary64)))
15.4%
(/.f64 #s(approx (* x (+ (/ x y) 1)) (+.f64 x #s(literal 1 binary64))) (+.f64 x #s(literal 1 binary64)))
39.3%
#s(approx (/ (* x (+ (/ x y) 1)) (+ x 1)) (/.f64 x y))
50.9%
#s(approx (/ (* x (+ (/ x y) 1)) (+ x 1)) (+.f64 (/.f64 x y) #s(literal 1 binary64)))
54.7%
#s(approx (/ (* x (+ (/ x y) 1)) (+ x 1)) (*.f64 x (+.f64 (/.f64 x y) #s(literal 1 binary64))))
Compiler

Compiled 77 to 53 computations (31.2% saved)

simplify1.0ms (0.1%)

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

Found 12 expressions of interest:

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

localize32.0ms (2.7%)

Memory
-30.9MiB live, 56.9MiB allocated
Localize:

Found 12 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(+.f64 x #s(literal 1 binary64))
accuracy8.859124087050034
(/.f64 #s(approx (* x (+ (/ x y) 1)) (+.f64 x #s(literal 1 binary64))) (+.f64 x #s(literal 1 binary64)))
accuracy54.002441493567126
#s(approx (* x (+ (/ x y) 1)) (+.f64 x #s(literal 1 binary64)))
accuracy0.0
(/.f64 x y)
accuracy38.82962406186414
#s(approx (/ (* x (+ (/ x y) 1)) (+ x 1)) (/.f64 x y))
accuracy0.0
(/.f64 x y)
accuracy0.0
(+.f64 (/.f64 x y) #s(literal 1 binary64))
accuracy31.41967664270803
#s(approx (/ (* x (+ (/ x y) 1)) (+ x 1)) (+.f64 (/.f64 x y) #s(literal 1 binary64)))
accuracy0.0
(/.f64 x y)
accuracy0.0
(+.f64 (/.f64 x y) #s(literal 1 binary64))
accuracy0.07421875
(*.f64 x (+.f64 (/.f64 x y) #s(literal 1 binary64)))
accuracy28.92618493992535
#s(approx (/ (* x (+ (/ x y) 1)) (+ x 1)) (*.f64 x (+.f64 (/.f64 x y) #s(literal 1 binary64))))
Samples
21.0ms256×0valid
Compiler

Compiled 208 to 28 computations (86.5% saved)

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

series4.0ms (0.3%)

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

6 calls:

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

simplify1.0ms (0%)

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

rewrite1.0ms (0%)

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

eval2.0ms (0.2%)

Memory
5.5MiB live, 5.5MiB allocated
Compiler

Compiled 546 to 39 computations (92.9% saved)

prune4.0ms (0.3%)

Memory
6.8MiB live, 6.8MiB allocated
Pruning

8 alts after pruning (4 fresh and 4 done)

PrunedKeptTotal
New20424
Fresh000
Picked134
Done011
Total21829
Accuracy
99.9%
Counts
29 → 8
Alt Table
Click to see full alt table
StatusAccuracyProgram
86.1%
(/.f64 (*.f64 x (+.f64 (/.f64 x y) #s(literal 1 binary64))) (+.f64 x #s(literal 1 binary64)))
39.3%
#s(approx (/ (* x (+ (/ x y) 1)) (+ x 1)) (/.f64 x y))
50.9%
#s(approx (/ (* x (+ (/ x y) 1)) (+ x 1)) (+.f64 (/.f64 x y) #s(literal 1 binary64)))
4.1%
#s(approx (/ (* x (+ (/ x y) 1)) (+ x 1)) (+.f64 #s(approx (/ x y) #s(approx (* x (+ (/ x y) 1)) (+.f64 x #s(literal 1 binary64)))) #s(literal 1 binary64)))
54.7%
#s(approx (/ (* x (+ (/ x y) 1)) (+ x 1)) (*.f64 x (+.f64 (/.f64 x y) #s(literal 1 binary64))))
13.2%
#s(approx (/ (* x (+ (/ x y) 1)) (+ x 1)) (*.f64 x (+.f64 #s(approx (/ x y) #s(approx (* x (+ (/ x y) 1)) (+.f64 x #s(literal 1 binary64)))) #s(literal 1 binary64))))
19.5%
#s(approx (/ (* x (+ (/ x y) 1)) (+ x 1)) (*.f64 x #s(approx (+ (/ x y) 1) #s(approx (/ (* x (+ (/ x y) 1)) (+ x 1)) (/.f64 x y)))))
4.1%
#s(approx (/ (* x (+ (/ x y) 1)) (+ x 1)) #s(approx (/ x y) #s(approx (* x (+ (/ x y) 1)) (+.f64 x #s(literal 1 binary64)))))
Compiler

Compiled 184 to 98 computations (46.7% saved)

simplify1.0ms (0.1%)

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

Found 16 expressions of interest:

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

localize34.0ms (2.9%)

Memory
6.0MiB live, 43.7MiB allocated
Localize:

Found 16 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(+.f64 x #s(literal 1 binary64))
accuracy31.41967664270803
#s(approx (/ (* x (+ (/ x y) 1)) (+ x 1)) (+.f64 #s(approx (/ x y) #s(approx (* x (+ (/ x y) 1)) (+.f64 x #s(literal 1 binary64)))) #s(literal 1 binary64)))
accuracy54.002441493567126
#s(approx (* x (+ (/ x y) 1)) (+.f64 x #s(literal 1 binary64)))
accuracy58.397932242368135
#s(approx (/ x y) #s(approx (* x (+ (/ x y) 1)) (+.f64 x #s(literal 1 binary64))))
accuracy0.07421875
(*.f64 x (+.f64 #s(approx (/ x y) #s(approx (* x (+ (/ x y) 1)) (+.f64 x #s(literal 1 binary64)))) #s(literal 1 binary64)))
accuracy28.92618493992535
#s(approx (/ (* x (+ (/ x y) 1)) (+ x 1)) (*.f64 x (+.f64 #s(approx (/ x y) #s(approx (* x (+ (/ x y) 1)) (+.f64 x #s(literal 1 binary64)))) #s(literal 1 binary64))))
accuracy54.002441493567126
#s(approx (* x (+ (/ x y) 1)) (+.f64 x #s(literal 1 binary64)))
accuracy58.397932242368135
#s(approx (/ x y) #s(approx (* x (+ (/ x y) 1)) (+.f64 x #s(literal 1 binary64))))
accuracy0.07421875
(*.f64 x #s(approx (+ (/ x y) 1) #s(approx (/ (* x (+ (/ x y) 1)) (+ x 1)) (/.f64 x y))))
accuracy28.92618493992535
#s(approx (/ (* x (+ (/ x y) 1)) (+ x 1)) (*.f64 x #s(approx (+ (/ x y) 1) #s(approx (/ (* x (+ (/ x y) 1)) (+ x 1)) (/.f64 x y)))))
accuracy31.41967664270803
#s(approx (+ (/ x y) 1) #s(approx (/ (* x (+ (/ x y) 1)) (+ x 1)) (/.f64 x y)))
accuracy38.82962406186414
#s(approx (/ (* x (+ (/ x y) 1)) (+ x 1)) (/.f64 x y))
accuracy0.0
(+.f64 x #s(literal 1 binary64))
accuracy38.82962406186414
#s(approx (/ (* x (+ (/ x y) 1)) (+ x 1)) #s(approx (/ x y) #s(approx (* x (+ (/ x y) 1)) (+.f64 x #s(literal 1 binary64)))))
accuracy54.002441493567126
#s(approx (* x (+ (/ x y) 1)) (+.f64 x #s(literal 1 binary64)))
accuracy58.397932242368135
#s(approx (/ x y) #s(approx (* x (+ (/ x y) 1)) (+.f64 x #s(literal 1 binary64))))
Samples
20.0ms256×0valid
Compiler

Compiled 468 to 32 computations (93.2% saved)

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

series4.0ms (0.4%)

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

6 calls:

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

simplify1.0ms (0.1%)

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

rewrite8.0ms (0.6%)

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

eval4.0ms (0.3%)

Memory
6.6MiB live, 6.6MiB allocated
Compiler

Compiled 1 342 to 58 computations (95.7% saved)

prune8.0ms (0.6%)

Memory
12.0MiB live, 12.0MiB allocated
Pruning

8 alts after pruning (0 fresh and 8 done)

PrunedKeptTotal
New36036
Fresh000
Picked044
Done044
Total36844
Accuracy
99.9%
Counts
44 → 8
Alt Table
Click to see full alt table
StatusAccuracyProgram
86.1%
(/.f64 (*.f64 x (+.f64 (/.f64 x y) #s(literal 1 binary64))) (+.f64 x #s(literal 1 binary64)))
39.3%
#s(approx (/ (* x (+ (/ x y) 1)) (+ x 1)) (/.f64 x y))
50.9%
#s(approx (/ (* x (+ (/ x y) 1)) (+ x 1)) (+.f64 (/.f64 x y) #s(literal 1 binary64)))
4.1%
#s(approx (/ (* x (+ (/ x y) 1)) (+ x 1)) (+.f64 #s(approx (/ x y) #s(approx (* x (+ (/ x y) 1)) (+.f64 x #s(literal 1 binary64)))) #s(literal 1 binary64)))
54.7%
#s(approx (/ (* x (+ (/ x y) 1)) (+ x 1)) (*.f64 x (+.f64 (/.f64 x y) #s(literal 1 binary64))))
13.2%
#s(approx (/ (* x (+ (/ x y) 1)) (+ x 1)) (*.f64 x (+.f64 #s(approx (/ x y) #s(approx (* x (+ (/ x y) 1)) (+.f64 x #s(literal 1 binary64)))) #s(literal 1 binary64))))
19.5%
#s(approx (/ (* x (+ (/ x y) 1)) (+ x 1)) (*.f64 x #s(approx (+ (/ x y) 1) #s(approx (/ (* x (+ (/ x y) 1)) (+ x 1)) (/.f64 x y)))))
4.1%
#s(approx (/ (* x (+ (/ x y) 1)) (+ x 1)) #s(approx (/ x y) #s(approx (* x (+ (/ x y) 1)) (+.f64 x #s(literal 1 binary64)))))
Compiler

Compiled 383 to 126 computations (67.1% saved)

regimes11.0ms (0.9%)

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

3 calls:

3.0ms
y
3.0ms
x
3.0ms
(/.f64 (*.f64 x (+.f64 (/.f64 x y) #s(literal 1 binary64))) (+.f64 x #s(literal 1 binary64)))
Results
AccuracySegmentsBranch
99.9%3x
86.1%1y
99.9%3(/.f64 (*.f64 x (+.f64 (/.f64 x y) #s(literal 1 binary64))) (+.f64 x #s(literal 1 binary64)))
Compiler

Compiled 13 to 12 computations (7.7% saved)

regimes12.0ms (1%)

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

2 calls:

9.0ms
(/.f64 (*.f64 x (+.f64 (/.f64 x y) #s(literal 1 binary64))) (+.f64 x #s(literal 1 binary64)))
3.0ms
x
Results
AccuracySegmentsBranch
91.6%3(/.f64 (*.f64 x (+.f64 (/.f64 x y) #s(literal 1 binary64))) (+.f64 x #s(literal 1 binary64)))
97.1%3x
Compiler

Compiled 12 to 10 computations (16.7% saved)

regimes9.0ms (0.7%)

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

3 calls:

3.0ms
y
3.0ms
x
3.0ms
(/.f64 (*.f64 x (+.f64 (/.f64 x y) #s(literal 1 binary64))) (+.f64 x #s(literal 1 binary64)))
Results
AccuracySegmentsBranch
50.9%1y
56.6%3(/.f64 (*.f64 x (+.f64 (/.f64 x y) #s(literal 1 binary64))) (+.f64 x #s(literal 1 binary64)))
61.9%3x
Compiler

Compiled 13 to 12 computations (7.7% saved)

regimes5.0ms (0.4%)

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

2 calls:

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

Compiled 12 to 10 computations (16.7% saved)

regimes6.0ms (0.5%)

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

3 calls:

2.0ms
y
2.0ms
x
2.0ms
(/.f64 (*.f64 x (+.f64 (/.f64 x y) #s(literal 1 binary64))) (+.f64 x #s(literal 1 binary64)))
Results
AccuracySegmentsBranch
39.3%1y
44.6%3x
44.8%3(/.f64 (*.f64 x (+.f64 (/.f64 x y) #s(literal 1 binary64))) (+.f64 x #s(literal 1 binary64)))
Compiler

Compiled 13 to 12 computations (7.7% saved)

regimes10.0ms (0.9%)

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

3 calls:

6.0ms
(/.f64 (*.f64 x (+.f64 (/.f64 x y) #s(literal 1 binary64))) (+.f64 x #s(literal 1 binary64)))
2.0ms
x
2.0ms
y
Results
AccuracySegmentsBranch
13.2%1y
13.2%1x
13.2%1(/.f64 (*.f64 x (+.f64 (/.f64 x y) #s(literal 1 binary64))) (+.f64 x #s(literal 1 binary64)))
Compiler

Compiled 13 to 12 computations (7.7% saved)

regimes4.0ms (0.4%)

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

3 calls:

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

Compiled 13 to 12 computations (7.7% saved)

regimes4.0ms (0.3%)

Memory
10.3MiB live, 10.3MiB allocated
Accuracy

Total -0.0b remaining (-0%)

Threshold costs -0b (-0%)

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

3 calls:

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

Compiled 13 to 12 computations (7.7% saved)

bsearch22.0ms (1.8%)

Memory
2.0MiB live, 40.4MiB allocated
Algorithm
binary-search
Stop Event
predicate-same
narrow-enough
Steps
TimeLeftRight
3.0ms
77916409183.05405
1168285191788026600.0
17.0ms
-5.747050141055072e+50
-6.12556256237338e+37
Samples
12.0ms192×0valid
Compiler

Compiled 350 to 277 computations (20.9% saved)

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

bsearch34.0ms (2.8%)

Memory
-31.8MiB live, 51.3MiB allocated
Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
13.0ms
4.7129521494001596e-5
20.550525976563943
14.0ms
-73.7962399134147
-0.1964201493703474
Samples
17.0ms272×0valid
Compiler

Compiled 626 to 472 computations (24.6% saved)

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

bsearch11.0ms (0.9%)

Memory
13.8MiB live, 13.8MiB allocated
Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
8.0ms
7.066056254468594e-6
4.7129521494001596e-5
1.0ms
-73.7962399134147
-0.1964201493703474
Samples
5.0ms96×0valid
Compiler

Compiled 742 to 391 computations (47.3% saved)

Precisions
Click to see histograms. Total time spent on operations: 3.0ms
ival-div: 1.0ms (33.1% of total)
ival-add: 1.0ms (33.1% of total)
ival-mult: 1.0ms (33.1% 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
0.8MiB live, 0.8MiB allocated
Algorithm
left-value
Steps
TimeLeftRight
0.0ms
4.712730040688411e-5
0.9535974202630835
0.0ms
-5551614798561.05
-0.00027476662628083304
Compiler

Compiled 14 to 13 computations (7.1% saved)

bsearch1.0ms (0%)

Memory
0.7MiB live, 0.7MiB allocated
Algorithm
left-value
Steps
TimeLeftRight
0.0ms
1.0000000074538453
1.0000005774769667
0.0ms
-5551614798561.05
-0.00027476662628083304
Compiler

Compiled 14 to 13 computations (7.1% saved)

simplify5.0ms (0.4%)

Memory
9.5MiB live, 9.5MiB allocated
Algorithm
egg-herbie
Calls
Call 1
Inputs
(if (<=.f64 x #s(literal -62000000000000003515523232727172120576 binary64)) #s(approx (/ (* x (+ (/ x y) 1)) (+ x 1)) (+.f64 (/.f64 x y) #s(literal 1 binary64))) (if (<=.f64 x #s(literal 500000000000000 binary64)) (/.f64 (*.f64 x (+.f64 (/.f64 x y) #s(literal 1 binary64))) (+.f64 x #s(literal 1 binary64))) #s(approx (/ (* x (+ (/ x y) 1)) (+ x 1)) (+.f64 (/.f64 x y) #s(literal 1 binary64)))))
(if (<=.f64 x #s(literal -1 binary64)) #s(approx (/ (* x (+ (/ x y) 1)) (+ x 1)) (+.f64 (/.f64 x y) #s(literal 1 binary64))) (if (<=.f64 x #s(literal 1 binary64)) #s(approx (/ (* x (+ (/ x y) 1)) (+ x 1)) (*.f64 x (+.f64 (/.f64 x y) #s(literal 1 binary64)))) #s(approx (/ (* x (+ (/ x y) 1)) (+ x 1)) (+.f64 (/.f64 x y) #s(literal 1 binary64)))))
(if (<=.f64 x #s(literal -1 binary64)) #s(approx (/ (* x (+ (/ x y) 1)) (+ x 1)) (+.f64 (/.f64 x y) #s(literal 1 binary64))) (if (<=.f64 x #s(literal 6788401819125115/147573952589676412928 binary64)) #s(approx (/ (* x (+ (/ x y) 1)) (+ x 1)) (*.f64 x #s(approx (+ (/ x y) 1) #s(approx (/ (* x (+ (/ x y) 1)) (+ x 1)) (/.f64 x y))))) #s(approx (/ (* x (+ (/ x y) 1)) (+ x 1)) (+.f64 (/.f64 x y) #s(literal 1 binary64)))))
(if (<=.f64 (/.f64 (*.f64 x (+.f64 (/.f64 x y) #s(literal 1 binary64))) (+.f64 x #s(literal 1 binary64))) #s(literal -5000000000000 binary64)) #s(approx (/ (* x (+ (/ x y) 1)) (+ x 1)) (+.f64 (/.f64 x y) #s(literal 1 binary64))) (if (<=.f64 (/.f64 (*.f64 x (+.f64 (/.f64 x y) #s(literal 1 binary64))) (+.f64 x #s(literal 1 binary64))) #s(literal 7378697629483821/147573952589676412928 binary64)) #s(approx (/ (* x (+ (/ x y) 1)) (+ x 1)) (*.f64 x (+.f64 #s(approx (/ x y) #s(approx (* x (+ (/ x y) 1)) (+.f64 x #s(literal 1 binary64)))) #s(literal 1 binary64)))) #s(approx (/ (* x (+ (/ x y) 1)) (+ x 1)) (+.f64 (/.f64 x y) #s(literal 1 binary64)))))
(if (<=.f64 (/.f64 (*.f64 x (+.f64 (/.f64 x y) #s(literal 1 binary64))) (+.f64 x #s(literal 1 binary64))) #s(literal -5000000000000 binary64)) #s(approx (/ (* x (+ (/ x y) 1)) (+ x 1)) (/.f64 x y)) (if (<=.f64 (/.f64 (*.f64 x (+.f64 (/.f64 x y) #s(literal 1 binary64))) (+.f64 x #s(literal 1 binary64))) #s(literal 2251800939585155/2251799813685248 binary64)) #s(approx (/ (* x (+ (/ x y) 1)) (+ x 1)) (*.f64 x (+.f64 #s(approx (/ x y) #s(approx (* x (+ (/ x y) 1)) (+.f64 x #s(literal 1 binary64)))) #s(literal 1 binary64)))) #s(approx (/ (* x (+ (/ x y) 1)) (+ x 1)) (/.f64 x y))))
#s(approx (/ (* x (+ (/ x y) 1)) (+ x 1)) (*.f64 x (+.f64 #s(approx (/ x y) #s(approx (* x (+ (/ x y) 1)) (+.f64 x #s(literal 1 binary64)))) #s(literal 1 binary64))))
#s(approx (/ (* x (+ (/ x y) 1)) (+ x 1)) (+.f64 #s(approx (/ x y) #s(approx (* x (+ (/ x y) 1)) (+.f64 x #s(literal 1 binary64)))) #s(literal 1 binary64)))
#s(approx (/ (* x (+ (/ x y) 1)) (+ x 1)) #s(approx (/ x y) #s(approx (* x (+ (/ x y) 1)) (+.f64 x #s(literal 1 binary64)))))
Outputs
(if (<=.f64 x #s(literal -62000000000000003515523232727172120576 binary64)) #s(approx (/ (* x (+ (/ x y) 1)) (+ x 1)) (+.f64 (/.f64 x y) #s(literal 1 binary64))) (if (<=.f64 x #s(literal 500000000000000 binary64)) (/.f64 (*.f64 x (+.f64 (/.f64 x y) #s(literal 1 binary64))) (+.f64 x #s(literal 1 binary64))) #s(approx (/ (* x (+ (/ x y) 1)) (+ x 1)) (+.f64 (/.f64 x y) #s(literal 1 binary64)))))
(if (<=.f64 x #s(literal -1 binary64)) #s(approx (/ (* x (+ (/ x y) 1)) (+ x 1)) (+.f64 (/.f64 x y) #s(literal 1 binary64))) (if (<=.f64 x #s(literal 1 binary64)) #s(approx (/ (* x (+ (/ x y) 1)) (+ x 1)) (*.f64 x (+.f64 (/.f64 x y) #s(literal 1 binary64)))) #s(approx (/ (* x (+ (/ x y) 1)) (+ x 1)) (+.f64 (/.f64 x y) #s(literal 1 binary64)))))
(if (<=.f64 x #s(literal -1 binary64)) #s(approx (/ (* x (+ (/ x y) 1)) (+ x 1)) (+.f64 (/.f64 x y) #s(literal 1 binary64))) (if (<=.f64 x #s(literal 6788401819125115/147573952589676412928 binary64)) #s(approx (/ (* x (+ (/ x y) 1)) (+ x 1)) (*.f64 x #s(approx (+ (/ x y) 1) #s(approx (/ (* x (+ (/ x y) 1)) (+ x 1)) (/.f64 x y))))) #s(approx (/ (* x (+ (/ x y) 1)) (+ x 1)) (+.f64 (/.f64 x y) #s(literal 1 binary64)))))
(if (<=.f64 (/.f64 (*.f64 x (+.f64 (/.f64 x y) #s(literal 1 binary64))) (+.f64 x #s(literal 1 binary64))) #s(literal -5000000000000 binary64)) #s(approx (/ (* x (+ (/ x y) 1)) (+ x 1)) (+.f64 (/.f64 x y) #s(literal 1 binary64))) (if (<=.f64 (/.f64 (*.f64 x (+.f64 (/.f64 x y) #s(literal 1 binary64))) (+.f64 x #s(literal 1 binary64))) #s(literal 7378697629483821/147573952589676412928 binary64)) #s(approx (/ (* x (+ (/ x y) 1)) (+ x 1)) (*.f64 x (+.f64 #s(approx (/ x y) #s(approx (* x (+ (/ x y) 1)) (+.f64 x #s(literal 1 binary64)))) #s(literal 1 binary64)))) #s(approx (/ (* x (+ (/ x y) 1)) (+ x 1)) (+.f64 (/.f64 x y) #s(literal 1 binary64)))))
(if (<=.f64 (/.f64 (*.f64 x (+.f64 (/.f64 x y) #s(literal 1 binary64))) (+.f64 x #s(literal 1 binary64))) #s(literal -5000000000000 binary64)) #s(approx (/ (* x (+ (/ x y) 1)) (+ x 1)) (/.f64 x y)) (if (<=.f64 (/.f64 (*.f64 x (+.f64 (/.f64 x y) #s(literal 1 binary64))) (+.f64 x #s(literal 1 binary64))) #s(literal 2251800939585155/2251799813685248 binary64)) #s(approx (/ (* x (+ (/ x y) 1)) (+ x 1)) (*.f64 x (+.f64 #s(approx (/ x y) #s(approx (* x (+ (/ x y) 1)) (+.f64 x #s(literal 1 binary64)))) #s(literal 1 binary64)))) #s(approx (/ (* x (+ (/ x y) 1)) (+ x 1)) (/.f64 x y))))
#s(approx (/ (* x (+ (/ x y) 1)) (+ x 1)) (*.f64 x (+.f64 #s(approx (/ x y) #s(approx (* x (+ (/ x y) 1)) (+.f64 x #s(literal 1 binary64)))) #s(literal 1 binary64))))
#s(approx (/ (* x (+ (/ x y) 1)) (+ x 1)) (+.f64 #s(approx (/ x y) #s(approx (* x (+ (/ x y) 1)) (+.f64 x #s(literal 1 binary64)))) #s(literal 1 binary64)))
#s(approx (/ (* x (+ (/ x y) 1)) (+ x 1)) #s(approx (/ x y) #s(approx (* x (+ (/ x y) 1)) (+.f64 x #s(literal 1 binary64)))))

soundness2.0ms (0.2%)

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

Compiled 460 to 52 computations (88.7% saved)

preprocess49.0ms (4.2%)

Memory
-2.4MiB live, 72.9MiB allocated
Compiler

Compiled 968 to 138 computations (85.7% saved)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

Profiling

Loading profile data...