x / (x^2 + 1)

Time bar (total: 778.0ms)

start0.0ms (0%)

Memory
0.1MiB live, 0.1MiB allocated

analyze0.0ms (0.1%)

Memory
1.0MiB live, 1.0MiB allocated
Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%100%0%0%0%0%0
0%0%100%0%0%0%0%1
100%100%0%0%0%0%0%2
Compiler

Compiled 9 to 7 computations (22.2% saved)

sample561.0ms (72.1%)

Memory
77.6MiB live, 699.9MiB allocated
Samples
357.0ms8 256×0valid
Precisions
Click to see histograms. Total time spent on operations: 216.0ms
ival-mult: 79.0ms (36.6% of total)
ival-div: 64.0ms (29.6% of total)
ival-add: 59.0ms (27.3% of total)
exact: 6.0ms (2.8% of total)
ival-true: 5.0ms (2.3% of total)
ival-assert: 3.0ms (1.4% of total)
Bogosity

explain137.0ms (17.6%)

Memory
-37.5MiB live, 95.8MiB allocated
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
590-0-(/.f64 x (+.f64 (*.f64 x x) #s(literal 1 binary64)))
00-0-#s(literal 1 binary64)
00-0-(+.f64 (*.f64 x x) #s(literal 1 binary64))
00-0-(*.f64 x x)
00-0-x
Explanations
Click to see full explanations table
OperatorSubexpressionExplanationCount
/.f64(/.f64 x (+.f64 (*.f64 x x) #s(literal 1 binary64)))n/o590
(*.f64 x x)overflow59
(+.f64 (*.f64 x x) #s(literal 1 binary64))overflow59
Confusion
Predicted +Predicted -
+590
-0197
Precision
1.0
Recall
1.0
Confusion?
Predicted +Predicted MaybePredicted -
+5900
-00197
Precision?
1.0
Recall?
1.0
Freqs
test
numberfreq
0197
159
Total Confusion?
Predicted +Predicted MaybePredicted -
+100
-000
Precision?
1.0
Recall?
1.0
Samples
22.0ms512×0valid
Compiler

Compiled 62 to 24 computations (61.3% saved)

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

preprocess2.0ms (0.3%)

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

Compiled 7 to 5 computations (28.6% saved)

eval0.0ms (0%)

Memory
0.1MiB live, 0.1MiB allocated
Compiler

Compiled 0 to 1 computations (-∞% saved)

prune0.0ms (0.1%)

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

Compiled 7 to 5 computations (28.6% saved)

simplify0.0ms (0%)

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

Found 3 expressions of interest:

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

localize17.0ms (2.2%)

Memory
-9.8MiB live, 28.3MiB allocated
Localize:

Found 3 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(+.f64 (*.f64 x x) #s(literal 1 binary64))
accuracy0.0
(*.f64 x x)
accuracy13.737126361087423
(/.f64 x (+.f64 (*.f64 x x) #s(literal 1 binary64)))
Samples
10.0ms256×0valid
Compiler

Compiled 36 to 12 computations (66.7% saved)

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

series2.0ms (0.3%)

Memory
3.5MiB live, 3.5MiB allocated
Counts
3 → 15
Calls
Call 1
Inputs
(/.f64 x (+.f64 (*.f64 x x) #s(literal 1 binary64)))
(+.f64 (*.f64 x x) #s(literal 1 binary64))
(*.f64 x x)
Outputs
x
(* x (+ 1 (* -1 (pow x 2))))
(* x (+ 1 (* (pow x 2) (- (pow x 2) 1))))
(* x (+ 1 (* (pow x 2) (- (* (pow x 2) (+ 1 (* -1 (pow x 2)))) 1))))
1
(+ 1 (pow x 2))
(pow x 2)
(/ 1 x)
(/ (- 1 (/ 1 (pow x 2))) x)
(/ (- (+ 1 (/ 1 (pow x 4))) (/ 1 (pow x 2))) x)
(/ (- (+ 1 (/ 1 (pow x 4))) (+ (/ 1 (pow x 2)) (/ 1 (pow x 6)))) x)
(* (pow x 2) (+ 1 (/ 1 (pow x 2))))
(* -1 (/ (- (/ 1 (pow x 2)) 1) x))
(* -1 (/ (- (/ 1 (pow x 2)) (+ 1 (/ 1 (pow x 4)))) x))
(* -1 (/ (- (+ (/ 1 (pow x 2)) (/ 1 (pow x 6))) (+ 1 (/ 1 (pow x 4)))) x))
Calls

3 calls:

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

simplify0.0ms (0%)

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

rewrite0.0ms (0%)

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

eval1.0ms (0.1%)

Memory
1.4MiB live, 1.4MiB allocated
Compiler

Compiled 60 to 12 computations (80% saved)

prune1.0ms (0.1%)

Memory
2.0MiB live, 2.0MiB allocated
Pruning

2 alts after pruning (1 fresh and 1 done)

PrunedKeptTotal
New516
Fresh000
Picked011
Done000
Total527
Accuracy
78.5%
Counts
7 → 2
Alt Table
Click to see full alt table
StatusAccuracyProgram
78.5%
(/.f64 x (+.f64 (*.f64 x x) #s(literal 1 binary64)))
4.3%
#s(approx (/ x (+ (* x x) 1)) (*.f64 x x))
Compiler

Compiled 18 to 12 computations (33.3% saved)

simplify0.0ms (0%)

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

Found 2 expressions of interest:

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

localize14.0ms (1.8%)

Memory
23.7MiB live, 23.7MiB allocated
Localize:

Found 2 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(*.f64 x x)
accuracy61.27452331654368
#s(approx (/ x (+ (* x x) 1)) (*.f64 x x))
Samples
10.0ms256×0valid
Compiler

Compiled 28 to 14 computations (50% saved)

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

series1.0ms (0.1%)

Memory
2.4MiB live, 2.4MiB allocated
Counts
2 → 12
Calls
Call 1
Inputs
#s(approx (/ x (+ (* x x) 1)) (*.f64 x x))
(*.f64 x x)
Outputs
x
(* x (+ 1 (* -1 (pow x 2))))
(* x (+ 1 (* (pow x 2) (- (pow x 2) 1))))
(* x (+ 1 (* (pow x 2) (- (* (pow x 2) (+ 1 (* -1 (pow x 2)))) 1))))
(pow x 2)
(/ 1 x)
(/ (- 1 (/ 1 (pow x 2))) x)
(/ (- (+ 1 (/ 1 (pow x 4))) (/ 1 (pow x 2))) x)
(/ (- (+ 1 (/ 1 (pow x 4))) (+ (/ 1 (pow x 2)) (/ 1 (pow x 6)))) x)
(* -1 (/ (- (/ 1 (pow x 2)) 1) x))
(* -1 (/ (- (/ 1 (pow x 2)) (+ 1 (/ 1 (pow x 4)))) x))
(* -1 (/ (- (+ (/ 1 (pow x 2)) (/ 1 (pow x 6))) (+ 1 (/ 1 (pow x 4)))) x))
Calls

3 calls:

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

simplify0.0ms (0%)

Memory
0.6MiB live, 0.6MiB allocated
Algorithm
egg-herbie
Counts
12 → 2
Calls
Call 1
Inputs
x
(* x (+ 1 (* -1 (pow x 2))))
(* x (+ 1 (* (pow x 2) (- (pow x 2) 1))))
(* x (+ 1 (* (pow x 2) (- (* (pow x 2) (+ 1 (* -1 (pow x 2)))) 1))))
(pow x 2)
(/ 1 x)
(/ (- 1 (/ 1 (pow x 2))) x)
(/ (- (+ 1 (/ 1 (pow x 4))) (/ 1 (pow x 2))) x)
(/ (- (+ 1 (/ 1 (pow x 4))) (+ (/ 1 (pow x 2)) (/ 1 (pow x 6)))) x)
(* -1 (/ (- (/ 1 (pow x 2)) 1) x))
(* -1 (/ (- (/ 1 (pow x 2)) (+ 1 (/ 1 (pow x 4)))) x))
(* -1 (/ (- (+ (/ 1 (pow x 2)) (/ 1 (pow x 6))) (+ 1 (/ 1 (pow x 4)))) x))
Outputs
x
#s(approx (/ x (+ (* x x) 1)) (*.f64 x x))
(* x (+ 1 (* -1 (pow x 2))))
(*.f64 x x)

rewrite0.0ms (0%)

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

eval0.0ms (0%)

Memory
0.7MiB live, 0.7MiB allocated
Compiler

Compiled 41 to 8 computations (80.5% saved)

prune5.0ms (0.6%)

Memory
-39.1MiB live, 3.2MiB allocated
Pruning

2 alts after pruning (0 fresh and 2 done)

PrunedKeptTotal
New303
Fresh000
Picked011
Done011
Total325
Accuracy
78.5%
Counts
5 → 2
Alt Table
Click to see full alt table
StatusAccuracyProgram
78.5%
(/.f64 x (+.f64 (*.f64 x x) #s(literal 1 binary64)))
4.3%
#s(approx (/ x (+ (* x x) 1)) (*.f64 x x))
Compiler

Compiled 36 to 22 computations (38.9% saved)

regimes3.0ms (0.4%)

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

2 calls:

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

Compiled 8 to 6 computations (25% saved)

regimes2.0ms (0.3%)

Memory
6.0MiB live, 6.0MiB allocated
Accuracy

Total 0.0b remaining (0%)

Threshold costs 0b (0%)

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

2 calls:

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

Compiled 8 to 6 computations (25% saved)

simplify4.0ms (0.5%)

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

soundness0.0ms (0.1%)

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

Compiled 18 to 10 computations (44.4% saved)

preprocess24.0ms (3%)

Memory
9.2MiB live, 47.6MiB allocated
Compiler

Compiled 64 to 40 computations (37.5% saved)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

Profiling

Loading profile data...