x / (x^2 + 1)

Time bar (total: 4.5s)

start0.0ms (0%)

Memory
0.1MiB live, 0.1MiB allocated; 0ms collecting garbage

analyze0.0ms (0%)

Memory
0.7MiB live, 0.7MiB allocated; 0ms collecting garbage
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)

sample914.0ms (20.4%)

Memory
46.5MiB live, 633.2MiB allocated; 932ms collecting garbage
Samples
665.0ms8 256×0valid
Precisions
Click to see histograms. Total time spent on operations: 253.0ms
ival-div: 138.0ms (54.5% of total)
ival-mult: 64.0ms (25.3% of total)
ival-add: 37.0ms (14.6% of total)
ival-true: 5.0ms (2% of total)
exact: 5.0ms (2% of total)
ival-assert: 3.0ms (1.2% of total)
adjust: 2.0ms (0.8% of total)
Bogosity

explain97.0ms (2.2%)

Memory
-26.6MiB live, 73.5MiB allocated; 17ms collecting garbage
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
630-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/o630
(*.f64 x x)overflow63
(+.f64 (*.f64 x x) #s(literal 1 binary64))overflow63
Confusion
Predicted +Predicted -
+630
-0193
Precision
1.0
Recall
1.0
Confusion?
Predicted +Predicted MaybePredicted -
+6300
-00193
Precision?
1.0
Recall?
1.0
Freqs
test
numberfreq
0193
163
Total Confusion?
Predicted +Predicted MaybePredicted -
+100
-000
Precision?
1.0
Recall?
1.0
Samples
24.0ms512×0valid
Compiler

Compiled 45 to 19 computations (57.8% saved)

Precisions
Click to see histograms. Total time spent on operations: 13.0ms
ival-mult: 7.0ms (52.3% of total)
ival-div: 3.0ms (22.4% of total)
ival-add: 2.0ms (15% of total)
ival-true: 0.0ms (0% of total)
adjust: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

preprocess257.0ms (5.7%)

Memory
8.3MiB live, 198.3MiB allocated; 49ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0717
12415
25914
38814
416114
540514
6275314
7646814
057
087
1157
2377
3777
41387
53477
623917
759917
082306
Stop Event
iter limit
node limit
iter limit
node limit
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)))
(/.f64 x (fma.f64 x x #s(literal 1 binary64)))
Symmetry

(negabs x)

Compiler

Compiled 7 to 5 computations (28.6% saved)

eval0.0ms (0%)

Memory
0.1MiB live, 0.1MiB allocated; 0ms collecting garbage
Compiler

Compiled 0 to 1 computations (-∞% saved)

prune0.0ms (0%)

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

Compiled 7 to 5 computations (28.6% saved)

simplify164.0ms (3.7%)

Memory
-12.8MiB live, 136.1MiB allocated; 31ms collecting garbage
Localize:

Found 3 expressions of interest:

NewMetricScoreProgram
cost-diff0
(*.f64 x x)
cost-diff0
(/.f64 x (+.f64 (*.f64 x x) #s(literal 1 binary64)))
cost-diff1
(+.f64 (*.f64 x x) #s(literal 1 binary64))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0517
0817
11517
23717
37717
413817
534717
6239117
7599117
0823015
Stop Event
iter limit
node limit
iter limit
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)))
(/.f64 x (fma.f64 x x #s(literal 1 binary64)))
x
(+.f64 (*.f64 x x) #s(literal 1 binary64))
(fma.f64 x x #s(literal 1 binary64))
(*.f64 x x)
#s(literal 1 binary64)

localize15.0ms (0.3%)

Memory
23.1MiB live, 23.1MiB allocated; 0ms collecting garbage
Localize:

Found 3 expressions of interest:

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

Compiled 19 to 7 computations (63.2% saved)

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

series2.0ms (0%)

Memory
3.2MiB live, 3.2MiB allocated; 0ms collecting garbage
Counts
3 → 15
Calls
Call 1
Inputs
(+.f64 (*.f64 x x) #s(literal 1 binary64))
(/.f64 x (+.f64 (*.f64 x x) #s(literal 1 binary64)))
(*.f64 x x)
Outputs
1
(+ 1 (pow x 2))
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)
(* (pow x 2) (+ 1 (/ 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
1.0ms
x
@inf
((+ (* x x) 1) (/ x (+ (* x x) 1)) (* x x))
1.0ms
x
@0
((+ (* x x) 1) (/ x (+ (* x x) 1)) (* x x))
1.0ms
x
@-inf
((+ (* x x) 1) (/ x (+ (* x x) 1)) (* x x))

simplify374.0ms (8.3%)

Memory
-3.6MiB live, 262.7MiB allocated; 83ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
045152
1128150
2362142
31941141
08495135
Stop Event
iter limit
node limit
Counts
15 → 14
Calls
Call 1
Inputs
1
(+ 1 (pow x 2))
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)
(* (pow x 2) (+ 1 (/ 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
1
#s(literal 1 binary64)
(+ 1 (pow x 2))
(fma.f64 x x #s(literal 1 binary64))
x
(* x (+ 1 (* -1 (pow x 2))))
(-.f64 x (pow.f64 x #s(literal 3 binary64)))
(* x (+ 1 (* (pow x 2) (- (pow x 2) 1))))
(fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 x x #s(literal -1 binary64)) x)
(* x (+ 1 (* (pow x 2) (- (* (pow x 2) (+ 1 (* -1 (pow x 2)))) 1))))
(fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 (-.f64 x (pow.f64 x #s(literal 3 binary64))) x #s(literal -1 binary64)) x)
(pow x 2)
(*.f64 x x)
(* (pow x 2) (+ 1 (/ 1 (pow x 2))))
(fma.f64 x x #s(literal 1 binary64))
(/ 1 x)
(/.f64 #s(literal 1 binary64) x)
(/ (- 1 (/ 1 (pow x 2))) x)
(/.f64 (-.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (*.f64 x x))) x)
(/ (- (+ 1 (/ 1 (pow x 4))) (/ 1 (pow x 2))) x)
(/.f64 (-.f64 (/.f64 #s(literal 1 binary64) (pow.f64 x #s(literal 4 binary64))) (-.f64 (/.f64 #s(literal 1 binary64) (*.f64 x x)) #s(literal 1 binary64))) x)
(/ (- (+ 1 (/ 1 (pow x 4))) (+ (/ 1 (pow x 2)) (/ 1 (pow x 6)))) x)
(/.f64 (-.f64 (-.f64 (/.f64 #s(literal 1 binary64) (pow.f64 x #s(literal 4 binary64))) (-.f64 (/.f64 #s(literal 1 binary64) (*.f64 x x)) #s(literal 1 binary64))) (/.f64 #s(literal 1 binary64) (pow.f64 x #s(literal 6 binary64)))) x)
(* -1 (/ (- (/ 1 (pow x 2)) 1) x))
(-.f64 (/.f64 #s(literal -1 binary64) (pow.f64 x #s(literal 3 binary64))) (/.f64 #s(literal -1 binary64) x))
(* -1 (/ (- (/ 1 (pow x 2)) (+ 1 (/ 1 (pow x 4)))) x))
(/.f64 (-.f64 (-.f64 (/.f64 #s(literal 1 binary64) (*.f64 x x)) #s(literal 1 binary64)) (/.f64 #s(literal 1 binary64) (pow.f64 x #s(literal 4 binary64)))) (neg.f64 x))
(* -1 (/ (- (+ (/ 1 (pow x 2)) (/ 1 (pow x 6))) (+ 1 (/ 1 (pow x 4)))) x))
(/.f64 (-.f64 (/.f64 #s(literal 1 binary64) (pow.f64 x #s(literal 6 binary64))) (-.f64 (/.f64 #s(literal 1 binary64) (pow.f64 x #s(literal 4 binary64))) (-.f64 (/.f64 #s(literal 1 binary64) (*.f64 x x)) #s(literal 1 binary64)))) (neg.f64 x))

rewrite405.0ms (9%)

Memory
0.5MiB live, 47.5MiB allocated; 3ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0515
0815
13315
024913
Stop Event
iter limit
iter limit
iter limit
unsound
iter limit
Counts
3 → 59
Calls
Call 1
Inputs
(+.f64 (*.f64 x x) #s(literal 1 binary64))
(/.f64 x (+.f64 (*.f64 x x) #s(literal 1 binary64)))
(*.f64 x x)
Outputs
(/.f64 (-.f64 #s(literal 1 binary64) (pow.f64 x #s(literal 4 binary64))) (-.f64 #s(literal 1 binary64) (*.f64 x x)))
(/.f64 (neg.f64 (-.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1 binary64))) (neg.f64 (fma.f64 x x #s(literal -1 binary64))))
(/.f64 (neg.f64 (-.f64 (pow.f64 x #s(literal 6 binary64)) #s(literal -1 binary64))) (neg.f64 (-.f64 (+.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1 binary64)) (*.f64 x x))))
(/.f64 (-.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1 binary64)) (fma.f64 x x #s(literal -1 binary64)))
(/.f64 (-.f64 (pow.f64 x #s(literal 6 binary64)) #s(literal -1 binary64)) (+.f64 #s(literal 1 binary64) (-.f64 (pow.f64 x #s(literal 4 binary64)) (*.f64 x x))))
(/.f64 (-.f64 (pow.f64 x #s(literal 6 binary64)) #s(literal -1 binary64)) (-.f64 (+.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1 binary64)) (*.f64 x x)))
(fma.f64 (*.f64 (neg.f64 x) #s(literal 1 binary64)) (*.f64 (neg.f64 x) #s(literal 1 binary64)) #s(literal 1 binary64))
(fma.f64 (*.f64 (fabs.f64 x) #s(literal 1 binary64)) (*.f64 (fabs.f64 x) #s(literal 1 binary64)) #s(literal 1 binary64))
(fma.f64 (*.f64 x #s(literal 1 binary64)) (*.f64 x #s(literal 1 binary64)) #s(literal 1 binary64))
(fma.f64 (pow.f64 x #s(literal 1 binary64)) (pow.f64 x #s(literal 1 binary64)) #s(literal 1 binary64))
(fma.f64 (neg.f64 (neg.f64 x)) (neg.f64 (neg.f64 x)) #s(literal 1 binary64))
(fma.f64 (neg.f64 (fabs.f64 x)) (neg.f64 (fabs.f64 x)) #s(literal 1 binary64))
(fma.f64 (fabs.f64 (fabs.f64 x)) (fabs.f64 (fabs.f64 x)) #s(literal 1 binary64))
(fma.f64 (neg.f64 x) (*.f64 (neg.f64 x) #s(literal 1 binary64)) #s(literal 1 binary64))
(fma.f64 (neg.f64 x) (neg.f64 x) #s(literal 1 binary64))
(fma.f64 (fabs.f64 x) (*.f64 (fabs.f64 x) #s(literal 1 binary64)) #s(literal 1 binary64))
(fma.f64 (fabs.f64 x) (fabs.f64 x) #s(literal 1 binary64))
(fma.f64 #s(literal 1 binary64) (*.f64 x x) #s(literal 1 binary64))
(fma.f64 (*.f64 x x) #s(literal 1 binary64) #s(literal 1 binary64))
(fma.f64 x (*.f64 x #s(literal 1 binary64)) #s(literal 1 binary64))
(fma.f64 x x #s(literal 1 binary64))
(-.f64 (/.f64 (pow.f64 x #s(literal 4 binary64)) (fma.f64 x x #s(literal -1 binary64))) (/.f64 #s(literal 1 binary64) (fma.f64 x x #s(literal -1 binary64))))
(-.f64 #s(literal 1 binary64) (*.f64 (neg.f64 (neg.f64 x)) (neg.f64 x)))
(-.f64 #s(literal 1 binary64) (*.f64 (neg.f64 (fabs.f64 x)) (fabs.f64 x)))
(-.f64 #s(literal 1 binary64) (*.f64 (neg.f64 x) x))
(-.f64 #s(literal 1 binary64) (*.f64 x (neg.f64 x)))
(-.f64 (*.f64 x x) #s(literal -1 binary64))
(+.f64 (/.f64 (pow.f64 x #s(literal 6 binary64)) (-.f64 (+.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1 binary64)) (*.f64 x x))) (/.f64 #s(literal 1 binary64) (-.f64 (+.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1 binary64)) (*.f64 x x))))
(+.f64 #s(literal 1 binary64) (*.f64 x x))
(+.f64 (*.f64 x x) #s(literal 1 binary64))
(*.f64 (/.f64 x (-.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1 binary64))) (fma.f64 x x #s(literal -1 binary64)))
(*.f64 (/.f64 x (-.f64 (pow.f64 x #s(literal 6 binary64)) #s(literal -1 binary64))) (-.f64 (+.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1 binary64)) (*.f64 x x)))
(/.f64 (neg.f64 (neg.f64 x)) (neg.f64 (neg.f64 (fma.f64 x x #s(literal 1 binary64)))))
(/.f64 (neg.f64 x) (neg.f64 (fma.f64 x x #s(literal 1 binary64))))
(/.f64 x (fma.f64 x x #s(literal 1 binary64)))
(neg.f64 (/.f64 (neg.f64 x) (fma.f64 x x #s(literal 1 binary64))))
(neg.f64 (/.f64 x (neg.f64 (fma.f64 x x #s(literal 1 binary64)))))
(*.f64 (*.f64 (neg.f64 x) #s(literal 1 binary64)) (*.f64 (neg.f64 x) #s(literal 1 binary64)))
(*.f64 (*.f64 (fabs.f64 x) #s(literal 1 binary64)) (*.f64 (fabs.f64 x) #s(literal 1 binary64)))
(*.f64 (*.f64 x #s(literal 1 binary64)) (*.f64 x #s(literal 1 binary64)))
(*.f64 (pow.f64 x #s(literal 1 binary64)) (pow.f64 x #s(literal 1 binary64)))
(*.f64 (neg.f64 (neg.f64 x)) (neg.f64 (neg.f64 x)))
(*.f64 (neg.f64 (fabs.f64 x)) (neg.f64 (fabs.f64 x)))
(*.f64 (fabs.f64 (fabs.f64 x)) (fabs.f64 (fabs.f64 x)))
(*.f64 (neg.f64 x) (*.f64 (neg.f64 x) #s(literal 1 binary64)))
(*.f64 (neg.f64 x) (neg.f64 x))
(*.f64 (fabs.f64 x) (*.f64 (fabs.f64 x) #s(literal 1 binary64)))
(*.f64 (fabs.f64 x) (fabs.f64 x))
(*.f64 #s(literal 1 binary64) (*.f64 x x))
(*.f64 (*.f64 x x) #s(literal 1 binary64))
(*.f64 x (*.f64 x #s(literal 1 binary64)))
(*.f64 x x)
(pow.f64 (neg.f64 x) #s(literal 2 binary64))
(pow.f64 (fabs.f64 x) #s(literal 2 binary64))
(pow.f64 x #s(literal 2 binary64))
(neg.f64 (*.f64 (neg.f64 x) x))
(neg.f64 (*.f64 x (neg.f64 x)))
(fabs.f64 (*.f64 x x))
(exp.f64 (*.f64 (log.f64 x) #s(literal 2 binary64)))

eval7.0ms (0.2%)

Memory
8.9MiB live, 8.9MiB allocated; 0ms collecting garbage
Compiler

Compiled 849 to 221 computations (74% saved)

prune4.0ms (0.1%)

Memory
5.8MiB live, 5.8MiB allocated; 0ms collecting garbage
Pruning

5 alts after pruning (5 fresh and 0 done)

PrunedKeptTotal
New67572
Fresh000
Picked101
Done000
Total68573
Accuracy
100.0%
Counts
73 → 5
Alt Table
Click to see full alt table
StatusAccuracyProgram
77.0%
(/.f64 x (fma.f64 x x #s(literal 1 binary64)))
52.5%
(/.f64 x #s(approx (+ (* x x) 1) #s(literal 1 binary64)))
49.8%
#s(approx (/ x (+ (* x x) 1)) (/.f64 (-.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (*.f64 x x))) x))
51.0%
#s(approx (/ x (+ (* x x) 1)) (/.f64 #s(literal 1 binary64) x))
51.4%
#s(approx (/ x (+ (* x x) 1)) (-.f64 x (pow.f64 x #s(literal 3 binary64))))
Compiler

Compiled 112 to 78 computations (30.4% saved)

simplify396.0ms (8.8%)

Memory
-25.1MiB live, 126.2MiB allocated; 15ms collecting garbage
Localize:

Found 13 expressions of interest:

NewMetricScoreProgram
cost-diff0
(pow.f64 x #s(literal 3 binary64))
cost-diff0
(-.f64 x (pow.f64 x #s(literal 3 binary64)))
cost-diff0
#s(approx (/ x (+ (* x x) 1)) (-.f64 x (pow.f64 x #s(literal 3 binary64))))
cost-diff0
(/.f64 #s(literal 1 binary64) (*.f64 x x))
cost-diff0
(-.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (*.f64 x x)))
cost-diff0
(/.f64 (-.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (*.f64 x x))) x)
cost-diff0
#s(approx (/ x (+ (* x x) 1)) (/.f64 (-.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (*.f64 x x))) x))
cost-diff0
#s(approx (+ (* x x) 1) #s(literal 1 binary64))
cost-diff0
(/.f64 x #s(approx (+ (* x x) 1) #s(literal 1 binary64)))
cost-diff0
(/.f64 #s(literal 1 binary64) x)
cost-diff0
#s(approx (/ x (+ (* x x) 1)) (/.f64 #s(literal 1 binary64) x))
cost-diff0
(fma.f64 x x #s(literal 1 binary64))
cost-diff0
(/.f64 x (fma.f64 x x #s(literal 1 binary64)))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
020107
030107
142107
281107
3193107
4458107
52212107
66506107
08100107
Stop Event
iter limit
node limit
iter limit
Calls
Call 1
Inputs
(/.f64 x (fma.f64 x x #s(literal 1 binary64)))
x
(fma.f64 x x #s(literal 1 binary64))
#s(literal 1 binary64)
#s(approx (/ x (+ (* x x) 1)) (/.f64 #s(literal 1 binary64) x))
(/.f64 #s(literal 1 binary64) x)
#s(literal 1 binary64)
x
(/.f64 x #s(approx (+ (* x x) 1) #s(literal 1 binary64)))
x
#s(approx (+ (* x x) 1) #s(literal 1 binary64))
#s(literal 1 binary64)
#s(approx (/ x (+ (* x x) 1)) (/.f64 (-.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (*.f64 x x))) x))
(/.f64 (-.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (*.f64 x x))) x)
(-.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (*.f64 x x)))
#s(literal 1 binary64)
(/.f64 #s(literal 1 binary64) (*.f64 x x))
(*.f64 x x)
x
#s(approx (/ x (+ (* x x) 1)) (-.f64 x (pow.f64 x #s(literal 3 binary64))))
(-.f64 x (pow.f64 x #s(literal 3 binary64)))
x
(pow.f64 x #s(literal 3 binary64))
#s(literal 3 binary64)
Outputs
(/.f64 x (fma.f64 x x #s(literal 1 binary64)))
x
(fma.f64 x x #s(literal 1 binary64))
#s(literal 1 binary64)
#s(approx (/ x (+ (* x x) 1)) (/.f64 #s(literal 1 binary64) x))
(/.f64 #s(literal 1 binary64) x)
#s(literal 1 binary64)
x
(/.f64 x #s(approx (+ (* x x) 1) #s(literal 1 binary64)))
x
#s(approx (+ (* x x) 1) #s(literal 1 binary64))
#s(literal 1 binary64)
#s(approx (/ x (+ (* x x) 1)) (/.f64 (-.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (*.f64 x x))) x))
#s(approx (/ x (+ (* x x) 1)) (/.f64 (-.f64 #s(literal 1 binary64) (/.f64 (/.f64 #s(literal 1 binary64) x) x)) x))
(/.f64 (-.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (*.f64 x x))) x)
(/.f64 (-.f64 #s(literal 1 binary64) (/.f64 (/.f64 #s(literal 1 binary64) x) x)) x)
(-.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (*.f64 x x)))
(-.f64 #s(literal 1 binary64) (/.f64 (/.f64 #s(literal 1 binary64) x) x))
#s(literal 1 binary64)
(/.f64 #s(literal 1 binary64) (*.f64 x x))
(/.f64 (/.f64 #s(literal 1 binary64) x) x)
(*.f64 x x)
x
#s(approx (/ x (+ (* x x) 1)) (-.f64 x (pow.f64 x #s(literal 3 binary64))))
(-.f64 x (pow.f64 x #s(literal 3 binary64)))
x
(pow.f64 x #s(literal 3 binary64))
#s(literal 3 binary64)

localize38.0ms (0.8%)

Memory
42.1MiB live, 85.0MiB allocated; 6ms collecting garbage
Localize:

Found 13 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(pow.f64 x #s(literal 3 binary64))
accuracy0.0
(-.f64 x (pow.f64 x #s(literal 3 binary64)))
accuracy31.119263619400247
#s(approx (/ x (+ (* x x) 1)) (-.f64 x (pow.f64 x #s(literal 3 binary64))))
accuracy0.0
(*.f64 x x)
accuracy0.01953125
(/.f64 (-.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (*.f64 x x))) x)
accuracy0.42057884545810226
(/.f64 #s(literal 1 binary64) (*.f64 x x))
accuracy32.09674854905474
#s(approx (/ x (+ (* x x) 1)) (/.f64 (-.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (*.f64 x x))) x))
accuracy14.722404896230547
(/.f64 x #s(approx (+ (* x x) 1) #s(literal 1 binary64)))
accuracy30.2877279661123
#s(approx (+ (* x x) 1) #s(literal 1 binary64))
accuracy0.0
(/.f64 #s(literal 1 binary64) x)
accuracy31.379575902891176
#s(approx (/ x (+ (* x x) 1)) (/.f64 #s(literal 1 binary64) x))
accuracy0.0
(fma.f64 x x #s(literal 1 binary64))
accuracy14.722404896230547
(/.f64 x (fma.f64 x x #s(literal 1 binary64)))
Samples
28.0ms256×0valid
Compiler

Compiled 92 to 14 computations (84.8% saved)

Precisions
Click to see histograms. Total time spent on operations: 18.0ms
ival-div: 6.0ms (33.5% of total)
ival-add: 4.0ms (22.3% of total)
ival-pow: 3.0ms (16.7% of total)
ival-mult: 2.0ms (11.2% of total)
ival-sub: 2.0ms (11.2% of total)
adjust: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)

series40.0ms (0.9%)

Memory
-50.2MiB live, 21.5MiB allocated; 18ms collecting garbage
Counts
14 → 25
Calls
Call 1
Inputs
(/.f64 x (fma.f64 x x #s(literal 1 binary64)))
(fma.f64 x x #s(literal 1 binary64))
#s(approx (/ x (+ (* x x) 1)) (/.f64 #s(literal 1 binary64) x))
(/.f64 #s(literal 1 binary64) x)
(/.f64 x #s(approx (+ (* x x) 1) #s(literal 1 binary64)))
#s(approx (+ (* x x) 1) #s(literal 1 binary64))
#s(approx (/ x (+ (* x x) 1)) (/.f64 (-.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (*.f64 x x))) x))
(/.f64 (-.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (*.f64 x x))) x)
(-.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (*.f64 x x)))
(/.f64 #s(literal 1 binary64) (*.f64 x x))
#s(approx (/ x (+ (* x x) 1)) (-.f64 x (pow.f64 x #s(literal 3 binary64))))
(-.f64 x (pow.f64 x #s(literal 3 binary64)))
(pow.f64 x #s(literal 3 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))
(/ 1 x)
(/ -1 (pow x 3))
(/ (- (pow x 2) 1) (pow x 3))
(/ -1 (pow x 2))
(/ (- (pow x 2) 1) (pow x 2))
(/ 1 (pow x 2))
(pow x 3)
(pow x 2)
(/ (- 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 (pow x 3))
(* (pow x 3) (- (/ 1 (pow x 2)) 1))
(* -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))
(* -1 (* (pow x 3) (- 1 (/ 1 (pow x 2)))))
Calls

3 calls:

TimeVariablePointExpression
36.0ms
x
@inf
((/ x (+ (* x x) 1)) (+ (* x x) 1) (/ x (+ (* x x) 1)) (/ 1 x) (/ x (+ (* x x) 1)) (+ (* x x) 1) (/ x (+ (* x x) 1)) (/ (- 1 (/ 1 (* x x))) x) (- 1 (/ 1 (* x x))) (/ 1 (* x x)) (/ x (+ (* x x) 1)) (- x (pow x 3)) (pow x 3) (* x x))
2.0ms
x
@-inf
((/ x (+ (* x x) 1)) (+ (* x x) 1) (/ x (+ (* x x) 1)) (/ 1 x) (/ x (+ (* x x) 1)) (+ (* x x) 1) (/ x (+ (* x x) 1)) (/ (- 1 (/ 1 (* x x))) x) (- 1 (/ 1 (* x x))) (/ 1 (* x x)) (/ x (+ (* x x) 1)) (- x (pow x 3)) (pow x 3) (* x x))
1.0ms
x
@0
((/ x (+ (* x x) 1)) (+ (* x x) 1) (/ x (+ (* x x) 1)) (/ 1 x) (/ x (+ (* x x) 1)) (+ (* x x) 1) (/ x (+ (* x x) 1)) (/ (- 1 (/ 1 (* x x))) x) (- 1 (/ 1 (* x x))) (/ 1 (* x x)) (/ x (+ (* x x) 1)) (- x (pow x 3)) (pow x 3) (* x x))

simplify276.0ms (6.2%)

Memory
5.7MiB live, 191.4MiB allocated; 38ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
055216
1152196
2427196
32668196
08630183
Stop Event
iter limit
node limit
Counts
25 → 24
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))
(/ 1 x)
(/ -1 (pow x 3))
(/ (- (pow x 2) 1) (pow x 3))
(/ -1 (pow x 2))
(/ (- (pow x 2) 1) (pow x 2))
(/ 1 (pow x 2))
(pow x 3)
(pow x 2)
(/ (- 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 (pow x 3))
(* (pow x 3) (- (/ 1 (pow x 2)) 1))
(* -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))
(* -1 (* (pow x 3) (- 1 (/ 1 (pow x 2)))))
Outputs
x
(* x (+ 1 (* -1 (pow x 2))))
(-.f64 x (pow.f64 x #s(literal 3 binary64)))
(* x (+ 1 (* (pow x 2) (- (pow x 2) 1))))
(fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 x x #s(literal -1 binary64)) x)
(* x (+ 1 (* (pow x 2) (- (* (pow x 2) (+ 1 (* -1 (pow x 2)))) 1))))
(fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 (-.f64 x (pow.f64 x #s(literal 3 binary64))) x #s(literal -1 binary64)) x)
1
#s(literal 1 binary64)
(+ 1 (pow x 2))
(fma.f64 x x #s(literal 1 binary64))
(/ 1 x)
(/.f64 #s(literal 1 binary64) x)
(/ -1 (pow x 3))
(/.f64 #s(literal -1 binary64) (pow.f64 x #s(literal 3 binary64)))
(/ (- (pow x 2) 1) (pow x 3))
(/.f64 (fma.f64 x x #s(literal -1 binary64)) (pow.f64 x #s(literal 3 binary64)))
(/ -1 (pow x 2))
(/.f64 #s(literal -1 binary64) (*.f64 x x))
(/ (- (pow x 2) 1) (pow x 2))
(-.f64 (/.f64 #s(literal -1 binary64) (*.f64 x x)) #s(literal -1 binary64))
(/ 1 (pow x 2))
(/.f64 #s(literal 1 binary64) (*.f64 x x))
(pow x 3)
(pow.f64 x #s(literal 3 binary64))
(pow x 2)
(*.f64 x x)
(/ (- 1 (/ 1 (pow x 2))) x)
(/.f64 (fma.f64 x x #s(literal -1 binary64)) (pow.f64 x #s(literal 3 binary64)))
(/ (- (+ 1 (/ 1 (pow x 4))) (/ 1 (pow x 2))) x)
(+.f64 (/.f64 #s(literal 1 binary64) (pow.f64 x #s(literal 5 binary64))) (/.f64 (fma.f64 x x #s(literal -1 binary64)) (pow.f64 x #s(literal 3 binary64))))
(/ (- (+ 1 (/ 1 (pow x 4))) (+ (/ 1 (pow x 2)) (/ 1 (pow x 6)))) x)
(-.f64 (+.f64 (/.f64 #s(literal 1 binary64) (pow.f64 x #s(literal 5 binary64))) (/.f64 (fma.f64 x x #s(literal -1 binary64)) (pow.f64 x #s(literal 3 binary64)))) (/.f64 #s(literal 1 binary64) (pow.f64 x #s(literal 7 binary64))))
(* (pow x 2) (+ 1 (/ 1 (pow x 2))))
(fma.f64 x x #s(literal 1 binary64))
(- 1 (/ 1 (pow x 2)))
(-.f64 (/.f64 #s(literal -1 binary64) (*.f64 x x)) #s(literal -1 binary64))
(* -1 (pow x 3))
(pow.f64 (neg.f64 x) #s(literal 3 binary64))
(* (pow x 3) (- (/ 1 (pow x 2)) 1))
(-.f64 x (pow.f64 x #s(literal 3 binary64)))
(* -1 (/ (- (/ 1 (pow x 2)) 1) x))
(/.f64 (fma.f64 x x #s(literal -1 binary64)) (pow.f64 x #s(literal 3 binary64)))
(* -1 (/ (- (/ 1 (pow x 2)) (+ 1 (/ 1 (pow x 4)))) x))
(-.f64 (/.f64 (fma.f64 x x #s(literal -1 binary64)) (pow.f64 x #s(literal 3 binary64))) (neg.f64 (/.f64 #s(literal 1 binary64) (pow.f64 x #s(literal 5 binary64)))))
(* -1 (/ (- (+ (/ 1 (pow x 2)) (/ 1 (pow x 6))) (+ 1 (/ 1 (pow x 4)))) x))
(neg.f64 (-.f64 (-.f64 (/.f64 #s(literal 1 binary64) (pow.f64 x #s(literal 7 binary64))) (/.f64 #s(literal 1 binary64) (pow.f64 x #s(literal 5 binary64)))) (/.f64 (fma.f64 x x #s(literal -1 binary64)) (pow.f64 x #s(literal 3 binary64)))))
(* -1 (* (pow x 3) (- 1 (/ 1 (pow x 2)))))
(-.f64 x (pow.f64 x #s(literal 3 binary64)))

rewrite75.0ms (1.7%)

Memory
-12.1MiB live, 34.3MiB allocated; 2ms collecting garbage
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
02097
03097
19789
066289
Stop Event
iter limit
iter limit
node limit
iter limit
Counts
14 → 138
Calls
Call 1
Inputs
(/.f64 x (fma.f64 x x #s(literal 1 binary64)))
(fma.f64 x x #s(literal 1 binary64))
#s(approx (/ x (+ (* x x) 1)) (/.f64 #s(literal 1 binary64) x))
(/.f64 #s(literal 1 binary64) x)
(/.f64 x #s(approx (+ (* x x) 1) #s(literal 1 binary64)))
#s(approx (+ (* x x) 1) #s(literal 1 binary64))
#s(approx (/ x (+ (* x x) 1)) (/.f64 (-.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (*.f64 x x))) x))
(/.f64 (-.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (*.f64 x x))) x)
(-.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (*.f64 x x)))
(/.f64 #s(literal 1 binary64) (*.f64 x x))
#s(approx (/ x (+ (* x x) 1)) (-.f64 x (pow.f64 x #s(literal 3 binary64))))
(-.f64 x (pow.f64 x #s(literal 3 binary64)))
(pow.f64 x #s(literal 3 binary64))
(*.f64 x x)
Outputs
(*.f64 (/.f64 x (-.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1 binary64))) (fma.f64 x x #s(literal -1 binary64)))
(*.f64 (/.f64 x (-.f64 (pow.f64 x #s(literal 6 binary64)) #s(literal -1 binary64))) (-.f64 (+.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1 binary64)) (*.f64 x x)))
(/.f64 (neg.f64 (neg.f64 x)) (neg.f64 (fma.f64 (neg.f64 x) x #s(literal -1 binary64))))
(/.f64 (neg.f64 x) (fma.f64 (neg.f64 x) x #s(literal -1 binary64)))
(/.f64 x (fma.f64 x x #s(literal 1 binary64)))
(neg.f64 (/.f64 (neg.f64 x) (fma.f64 x x #s(literal 1 binary64))))
(neg.f64 (/.f64 x (fma.f64 (neg.f64 x) x #s(literal -1 binary64))))
(/.f64 (-.f64 #s(literal 1 binary64) (pow.f64 x #s(literal 4 binary64))) (-.f64 #s(literal 1 binary64) (*.f64 x x)))
(/.f64 (neg.f64 (-.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1 binary64))) (neg.f64 (fma.f64 x x #s(literal -1 binary64))))
(/.f64 (neg.f64 (-.f64 (pow.f64 x #s(literal 6 binary64)) #s(literal -1 binary64))) (neg.f64 (-.f64 (+.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1 binary64)) (*.f64 x x))))
(/.f64 (-.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1 binary64)) (fma.f64 x x #s(literal -1 binary64)))
(/.f64 (-.f64 (pow.f64 x #s(literal 6 binary64)) #s(literal -1 binary64)) (+.f64 #s(literal 1 binary64) (-.f64 (pow.f64 x #s(literal 4 binary64)) (*.f64 x x))))
(/.f64 (-.f64 (pow.f64 x #s(literal 6 binary64)) #s(literal -1 binary64)) (-.f64 (+.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1 binary64)) (*.f64 x x)))
(fma.f64 (*.f64 (neg.f64 x) #s(literal 1 binary64)) (*.f64 (neg.f64 x) #s(literal 1 binary64)) #s(literal 1 binary64))
(fma.f64 (*.f64 (fabs.f64 x) #s(literal 1 binary64)) (*.f64 (fabs.f64 x) #s(literal 1 binary64)) #s(literal 1 binary64))
(fma.f64 (*.f64 x #s(literal 1 binary64)) (*.f64 x #s(literal 1 binary64)) #s(literal 1 binary64))
(fma.f64 (neg.f64 (neg.f64 x)) (neg.f64 (neg.f64 x)) #s(literal 1 binary64))
(fma.f64 (neg.f64 (fabs.f64 x)) (neg.f64 (fabs.f64 x)) #s(literal 1 binary64))
(fma.f64 (fabs.f64 (fabs.f64 x)) (fabs.f64 (fabs.f64 x)) #s(literal 1 binary64))
(fma.f64 (pow.f64 x #s(literal 1 binary64)) (pow.f64 x #s(literal 1 binary64)) #s(literal 1 binary64))
(fma.f64 (neg.f64 x) (*.f64 (neg.f64 x) #s(literal 1 binary64)) #s(literal 1 binary64))
(fma.f64 (neg.f64 x) (neg.f64 x) #s(literal 1 binary64))
(fma.f64 (fabs.f64 x) (*.f64 (fabs.f64 x) #s(literal 1 binary64)) #s(literal 1 binary64))
(fma.f64 (fabs.f64 x) (fabs.f64 x) #s(literal 1 binary64))
(fma.f64 (*.f64 x x) #s(literal 1 binary64) #s(literal 1 binary64))
(fma.f64 #s(literal 1 binary64) (*.f64 x x) #s(literal 1 binary64))
(fma.f64 x (*.f64 x #s(literal 1 binary64)) #s(literal 1 binary64))
(fma.f64 x x #s(literal 1 binary64))
(-.f64 (/.f64 (pow.f64 x #s(literal 4 binary64)) (fma.f64 x x #s(literal -1 binary64))) (/.f64 #s(literal 1 binary64) (fma.f64 x x #s(literal -1 binary64))))
(-.f64 (*.f64 x x) #s(literal -1 binary64))
(-.f64 #s(literal 1 binary64) (*.f64 (neg.f64 x) x))
(+.f64 (/.f64 (pow.f64 x #s(literal 6 binary64)) (-.f64 (+.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1 binary64)) (*.f64 x x))) (/.f64 #s(literal 1 binary64) (-.f64 (+.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1 binary64)) (*.f64 x x))))
(+.f64 (*.f64 x x) #s(literal 1 binary64))
(+.f64 #s(literal 1 binary64) (*.f64 x x))
#s(approx (/ x (+ (* x x) 1)) (pow.f64 x #s(literal -1 binary64)))
(*.f64 (pow.f64 x #s(literal -1/2 binary64)) (pow.f64 x #s(literal -1/2 binary64)))
(*.f64 #s(literal 1 binary64) (pow.f64 x #s(literal -1 binary64)))
(pow.f64 x #s(literal -1 binary64))
(/.f64 #s(literal -1 binary64) (neg.f64 x))
(/.f64 #s(literal 1 binary64) (neg.f64 (neg.f64 x)))
(/.f64 #s(literal 1 binary64) (pow.f64 x #s(literal 1 binary64)))
(/.f64 #s(literal 1 binary64) x)
(neg.f64 (/.f64 #s(literal -1 binary64) x))
(neg.f64 (/.f64 #s(literal 1 binary64) (neg.f64 x)))
(exp.f64 (*.f64 (log.f64 x) #s(literal -1 binary64)))
(/.f64 (neg.f64 (neg.f64 x)) (neg.f64 (neg.f64 #s(approx (+ (* x x) 1) #s(literal 1 binary64)))))
(/.f64 (neg.f64 x) (neg.f64 #s(approx (+ (* x x) 1) #s(literal 1 binary64))))
(/.f64 x #s(approx (+ (* x x) 1) #s(literal 1 binary64)))
(neg.f64 (/.f64 (neg.f64 x) #s(approx (+ (* x x) 1) #s(literal 1 binary64))))
(neg.f64 (/.f64 x (neg.f64 #s(approx (+ (* x x) 1) #s(literal 1 binary64)))))
#s(approx (+ (* x x) 1) #s(literal 1 binary64))
#s(approx (/ x (+ (* x x) 1)) (/.f64 (-.f64 #s(literal 1 binary64) (pow.f64 x #s(literal -2 binary64))) x))
(/.f64 (-.f64 (pow.f64 x #s(literal -2 binary64)) (*.f64 (/.f64 (pow.f64 x #s(literal -2 binary64)) x) (/.f64 (pow.f64 x #s(literal -2 binary64)) x))) (+.f64 (pow.f64 x #s(literal -1 binary64)) (/.f64 (pow.f64 x #s(literal -2 binary64)) x)))
(/.f64 (-.f64 (pow.f64 (pow.f64 x #s(literal -1 binary64)) #s(literal 3 binary64)) (pow.f64 (/.f64 (pow.f64 x #s(literal -2 binary64)) x) #s(literal 3 binary64))) (+.f64 (pow.f64 x #s(literal -2 binary64)) (fma.f64 (/.f64 (pow.f64 x #s(literal -2 binary64)) x) (/.f64 (pow.f64 x #s(literal -2 binary64)) x) (*.f64 (pow.f64 x #s(literal -1 binary64)) (/.f64 (pow.f64 x #s(literal -2 binary64)) x)))))
(/.f64 (neg.f64 (neg.f64 (-.f64 #s(literal 1 binary64) (pow.f64 x #s(literal -2 binary64))))) (neg.f64 (neg.f64 x)))
(/.f64 (-.f64 (*.f64 #s(literal -1 binary64) x) (*.f64 (neg.f64 x) (pow.f64 x #s(literal -2 binary64)))) (*.f64 (neg.f64 x) x))
(/.f64 (-.f64 (*.f64 #s(literal 1 binary64) x) (*.f64 x (pow.f64 x #s(literal -2 binary64)))) (*.f64 x x))
(/.f64 (-.f64 #s(literal 1 binary64) (pow.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1 binary64))) (*.f64 (+.f64 (pow.f64 x #s(literal -2 binary64)) #s(literal 1 binary64)) x))
(/.f64 (-.f64 #s(literal 1 binary64) (pow.f64 (pow.f64 x #s(literal -2 binary64)) #s(literal 3 binary64))) (*.f64 (fma.f64 (pow.f64 x #s(literal -2 binary64)) (+.f64 (pow.f64 x #s(literal -2 binary64)) #s(literal 1 binary64)) #s(literal 1 binary64)) x))
(/.f64 (neg.f64 (-.f64 #s(literal 1 binary64) (pow.f64 x #s(literal -2 binary64)))) (neg.f64 x))
(/.f64 (-.f64 #s(literal 1 binary64) (pow.f64 x #s(literal -2 binary64))) x)
(neg.f64 (/.f64 (neg.f64 (-.f64 #s(literal 1 binary64) (pow.f64 x #s(literal -2 binary64)))) x))
(neg.f64 (/.f64 (-.f64 #s(literal 1 binary64) (pow.f64 x #s(literal -2 binary64))) (neg.f64 x)))
(-.f64 (pow.f64 x #s(literal -1 binary64)) (/.f64 (pow.f64 x #s(literal -2 binary64)) x))
(/.f64 (neg.f64 (-.f64 #s(literal 1 binary64) (pow.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1 binary64)))) (neg.f64 (+.f64 (pow.f64 x #s(literal -2 binary64)) #s(literal 1 binary64))))
(/.f64 (neg.f64 (-.f64 #s(literal 1 binary64) (pow.f64 (pow.f64 x #s(literal -2 binary64)) #s(literal 3 binary64)))) (neg.f64 (fma.f64 (pow.f64 x #s(literal -2 binary64)) (+.f64 (pow.f64 x #s(literal -2 binary64)) #s(literal 1 binary64)) #s(literal 1 binary64))))
(/.f64 (-.f64 #s(literal 1 binary64) (pow.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1 binary64))) (+.f64 (pow.f64 x #s(literal -2 binary64)) #s(literal 1 binary64)))
(/.f64 (-.f64 #s(literal 1 binary64) (pow.f64 (pow.f64 x #s(literal -2 binary64)) #s(literal 3 binary64))) (fma.f64 (pow.f64 x #s(literal -2 binary64)) (+.f64 (pow.f64 x #s(literal -2 binary64)) #s(literal 1 binary64)) #s(literal 1 binary64)))
(-.f64 (/.f64 #s(literal 1 binary64) (+.f64 (pow.f64 x #s(literal -2 binary64)) #s(literal 1 binary64))) (/.f64 (pow.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1 binary64)) (+.f64 (pow.f64 x #s(literal -2 binary64)) #s(literal 1 binary64))))
(-.f64 (/.f64 #s(literal 1 binary64) (fma.f64 (pow.f64 x #s(literal -2 binary64)) (+.f64 (pow.f64 x #s(literal -2 binary64)) #s(literal 1 binary64)) #s(literal 1 binary64))) (/.f64 (pow.f64 (pow.f64 x #s(literal -2 binary64)) #s(literal 3 binary64)) (fma.f64 (pow.f64 x #s(literal -2 binary64)) (+.f64 (pow.f64 x #s(literal -2 binary64)) #s(literal 1 binary64)) #s(literal 1 binary64))))
(-.f64 #s(literal 1 binary64) (pow.f64 x #s(literal -2 binary64)))
(*.f64 (pow.f64 (*.f64 x x) #s(literal -1/2 binary64)) (pow.f64 (*.f64 x x) #s(literal -1/2 binary64)))
(*.f64 (/.f64 #s(literal 1 binary64) (neg.f64 x)) (/.f64 #s(literal 1 binary64) (neg.f64 x)))
(*.f64 (/.f64 #s(literal 1 binary64) (fabs.f64 x)) (/.f64 #s(literal 1 binary64) (fabs.f64 x)))
(*.f64 (pow.f64 (neg.f64 x) #s(literal -1 binary64)) (pow.f64 (neg.f64 x) #s(literal -1 binary64)))
(*.f64 (pow.f64 (fabs.f64 x) #s(literal -1 binary64)) (pow.f64 (fabs.f64 x) #s(literal -1 binary64)))
(*.f64 (pow.f64 x #s(literal -2 binary64)) #s(literal 1 binary64))
(*.f64 (pow.f64 x #s(literal -1 binary64)) (pow.f64 x #s(literal -1 binary64)))
(*.f64 #s(literal 1 binary64) (pow.f64 x #s(literal -2 binary64)))
(pow.f64 (*.f64 x x) #s(literal -1 binary64))
(pow.f64 x #s(literal -2 binary64))
(/.f64 (/.f64 #s(literal 1 binary64) (neg.f64 x)) (neg.f64 x))
(/.f64 (/.f64 #s(literal 1 binary64) (fabs.f64 x)) (fabs.f64 x))
(/.f64 (neg.f64 (pow.f64 x #s(literal -1 binary64))) (neg.f64 x))
(/.f64 #s(literal -1 binary64) (*.f64 (neg.f64 x) x))
(/.f64 (pow.f64 x #s(literal -1 binary64)) x)
(/.f64 #s(literal 1 binary64) (pow.f64 (*.f64 x x) #s(literal 1 binary64)))
(/.f64 #s(literal 1 binary64) (*.f64 x x))
(neg.f64 (/.f64 #s(literal -1 binary64) (*.f64 x x)))
(neg.f64 (/.f64 #s(literal 1 binary64) (*.f64 (neg.f64 x) x)))
(exp.f64 (*.f64 (log.f64 (*.f64 x x)) #s(literal -1 binary64)))
#s(approx (/ x (+ (* x x) 1)) (-.f64 x (pow.f64 x #s(literal 3 binary64))))
(/.f64 (neg.f64 (-.f64 (*.f64 x x) (pow.f64 x #s(literal 6 binary64)))) (neg.f64 (+.f64 (pow.f64 x #s(literal 3 binary64)) x)))
(/.f64 (neg.f64 (-.f64 (pow.f64 x #s(literal 3 binary64)) (pow.f64 x #s(literal 9 binary64)))) (neg.f64 (fma.f64 x x (+.f64 (pow.f64 x #s(literal 4 binary64)) (pow.f64 x #s(literal 6 binary64))))))
(/.f64 (-.f64 (*.f64 x x) (pow.f64 x #s(literal 6 binary64))) (+.f64 (pow.f64 x #s(literal 3 binary64)) x))
(/.f64 (-.f64 (pow.f64 x #s(literal 3 binary64)) (pow.f64 x #s(literal 9 binary64))) (fma.f64 x x (+.f64 (pow.f64 x #s(literal 4 binary64)) (pow.f64 x #s(literal 6 binary64)))))
(-.f64 (/.f64 (*.f64 x x) (+.f64 (pow.f64 x #s(literal 3 binary64)) x)) (/.f64 (pow.f64 x #s(literal 6 binary64)) (+.f64 (pow.f64 x #s(literal 3 binary64)) x)))
(-.f64 (/.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 x x (+.f64 (pow.f64 x #s(literal 4 binary64)) (pow.f64 x #s(literal 6 binary64))))) (/.f64 (pow.f64 x #s(literal 9 binary64)) (fma.f64 x x (+.f64 (pow.f64 x #s(literal 4 binary64)) (pow.f64 x #s(literal 6 binary64))))))
(-.f64 x (pow.f64 x #s(literal 3 binary64)))
(+.f64 x (*.f64 (neg.f64 (pow.f64 x #s(literal 3/2 binary64))) (pow.f64 x #s(literal 3/2 binary64))))
(+.f64 x (*.f64 (neg.f64 x) (*.f64 x x)))
(+.f64 x (*.f64 (*.f64 (neg.f64 x) x) x))
(*.f64 (*.f64 x (fabs.f64 x)) (fabs.f64 x))
(*.f64 (neg.f64 (pow.f64 x #s(literal 3/2 binary64))) (neg.f64 (pow.f64 x #s(literal 3/2 binary64))))
(*.f64 (fabs.f64 (pow.f64 x #s(literal 3/2 binary64))) (fabs.f64 (pow.f64 x #s(literal 3/2 binary64))))
(*.f64 (pow.f64 x #s(literal 3/2 binary64)) (pow.f64 x #s(literal 3/2 binary64)))
(*.f64 (*.f64 (neg.f64 x) x) (neg.f64 x))
(*.f64 (neg.f64 x) (*.f64 (neg.f64 x) x))
(*.f64 (fabs.f64 x) (*.f64 (fabs.f64 x) x))
(*.f64 (*.f64 x x) x)
(*.f64 x (*.f64 x x))
(pow.f64 (exp.f64 (log.f64 x)) #s(literal 3 binary64))
(pow.f64 (pow.f64 x #s(literal 3/2 binary64)) #s(literal 2 binary64))
(pow.f64 (*.f64 x x) #s(literal 3/2 binary64))
(pow.f64 x #s(literal 3 binary64))
(exp.f64 (*.f64 (log.f64 x) #s(literal 3 binary64)))
(+.f64 (cosh.f64 (*.f64 (log.f64 x) #s(literal 3 binary64))) (sinh.f64 (*.f64 (log.f64 x) #s(literal 3 binary64))))
(*.f64 (*.f64 (neg.f64 x) #s(literal 1 binary64)) (*.f64 (neg.f64 x) #s(literal 1 binary64)))
(*.f64 (*.f64 (fabs.f64 x) #s(literal 1 binary64)) (*.f64 (fabs.f64 x) #s(literal 1 binary64)))
(*.f64 (*.f64 x #s(literal 1 binary64)) (*.f64 x #s(literal 1 binary64)))
(*.f64 (neg.f64 (neg.f64 x)) (neg.f64 (neg.f64 x)))
(*.f64 (neg.f64 (fabs.f64 x)) (neg.f64 (fabs.f64 x)))
(*.f64 (fabs.f64 (fabs.f64 x)) (fabs.f64 (fabs.f64 x)))
(*.f64 (pow.f64 x #s(literal 1 binary64)) (pow.f64 x #s(literal 1 binary64)))
(*.f64 (neg.f64 x) (*.f64 (neg.f64 x) #s(literal 1 binary64)))
(*.f64 (neg.f64 x) (neg.f64 x))
(*.f64 (fabs.f64 x) (*.f64 (fabs.f64 x) #s(literal 1 binary64)))
(*.f64 (fabs.f64 x) (fabs.f64 x))
(*.f64 (*.f64 x x) #s(literal 1 binary64))
(*.f64 #s(literal 1 binary64) (*.f64 x x))
(*.f64 x (*.f64 x #s(literal 1 binary64)))
(*.f64 x x)
(pow.f64 (neg.f64 x) #s(literal 2 binary64))
(pow.f64 (fabs.f64 x) #s(literal 2 binary64))
(pow.f64 x #s(literal 2 binary64))
(neg.f64 (*.f64 (neg.f64 x) x))
(fabs.f64 (*.f64 x x))
(exp.f64 (*.f64 (log.f64 x) #s(literal 2 binary64)))

eval15.0ms (0.3%)

Memory
18.9MiB live, 18.9MiB allocated; 0ms collecting garbage
Compiler

Compiled 2 708 to 566 computations (79.1% saved)

prune5.0ms (0.1%)

Memory
6.2MiB live, 6.2MiB allocated; 0ms collecting garbage
Pruning

4 alts after pruning (1 fresh and 3 done)

PrunedKeptTotal
New1551156
Fresh000
Picked235
Done000
Total1574161
Accuracy
100.0%
Counts
161 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
52.5%
(/.f64 x #s(approx (+ (* x x) 1) #s(literal 1 binary64)))
49.8%
#s(approx (/ x (+ (* x x) 1)) (/.f64 (-.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (*.f64 x x))) x))
51.0%
#s(approx (/ x (+ (* x x) 1)) (/.f64 #s(literal 1 binary64) x))
51.4%
#s(approx (/ x (+ (* x x) 1)) (-.f64 x (*.f64 (*.f64 x x) x)))
Compiler

Compiled 52 to 35 computations (32.7% saved)

simplify318.0ms (7.1%)

Memory
-19.5MiB live, 126.8MiB allocated; 19ms collecting garbage
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
cost-diff0
(*.f64 x x)
cost-diff0
(-.f64 x (*.f64 (*.f64 x x) x))
cost-diff0
#s(approx (/ x (+ (* x x) 1)) (-.f64 x (*.f64 (*.f64 x x) x)))
cost-diff2
(*.f64 (*.f64 x x) x)
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0931
01231
12325
26425
314225
426925
558825
6432125
0850624
Stop Event
iter limit
node limit
iter limit
Calls
Call 1
Inputs
#s(approx (/ x (+ (* x x) 1)) (-.f64 x (*.f64 (*.f64 x x) x)))
(-.f64 x (*.f64 (*.f64 x x) x))
x
(*.f64 (*.f64 x x) x)
(*.f64 x x)
Outputs
#s(approx (/ x (+ (* x x) 1)) (-.f64 x (*.f64 (*.f64 x x) x)))
#s(approx (/ x (+ (* x x) 1)) (-.f64 x (pow.f64 x #s(literal 3 binary64))))
(-.f64 x (*.f64 (*.f64 x x) x))
(-.f64 x (pow.f64 x #s(literal 3 binary64)))
x
(*.f64 (*.f64 x x) x)
(pow.f64 x #s(literal 3 binary64))
(*.f64 x x)

localize19.0ms (0.4%)

Memory
27.6MiB live, 27.6MiB allocated; 0ms collecting garbage
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(-.f64 x (*.f64 (*.f64 x x) x))
accuracy0.0
(*.f64 x x)
accuracy0.078125
(*.f64 (*.f64 x x) x)
accuracy31.119263619400247
#s(approx (/ x (+ (* x x) 1)) (-.f64 x (*.f64 (*.f64 x x) x)))
Samples
13.0ms256×0valid
Compiler

Compiled 25 to 9 computations (64% saved)

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

series3.0ms (0.1%)

Memory
3.9MiB live, 3.9MiB allocated; 0ms collecting garbage
Counts
4 → 16
Calls
Call 1
Inputs
(*.f64 (*.f64 x x) x)
#s(approx (/ x (+ (* x x) 1)) (-.f64 x (*.f64 (*.f64 x x) x)))
(-.f64 x (*.f64 (*.f64 x x) x))
(*.f64 x x)
Outputs
(pow x 3)
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 (pow x 3))
(* (pow x 3) (- (/ 1 (pow x 2)) 1))
(* -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))
(* -1 (* (pow x 3) (- 1 (/ 1 (pow x 2)))))
Calls

3 calls:

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

simplify485.0ms (10.8%)

Memory
-7.3MiB live, 131.8MiB allocated; 8ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
048171
1133161
2369161
31544157
46745157
08692153
Stop Event
iter limit
node limit
Counts
16 → 15
Calls
Call 1
Inputs
(pow x 3)
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 (pow x 3))
(* (pow x 3) (- (/ 1 (pow x 2)) 1))
(* -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))
(* -1 (* (pow x 3) (- 1 (/ 1 (pow x 2)))))
Outputs
(pow x 3)
(pow.f64 x #s(literal 3 binary64))
x
(* x (+ 1 (* -1 (pow x 2))))
(-.f64 x (pow.f64 x #s(literal 3 binary64)))
(* x (+ 1 (* (pow x 2) (- (pow x 2) 1))))
(fma.f64 (fma.f64 x x #s(literal -1 binary64)) (pow.f64 x #s(literal 3 binary64)) x)
(* x (+ 1 (* (pow x 2) (- (* (pow x 2) (+ 1 (* -1 (pow x 2)))) 1))))
(fma.f64 (fma.f64 (-.f64 x (pow.f64 x #s(literal 3 binary64))) x #s(literal -1 binary64)) (pow.f64 x #s(literal 3 binary64)) x)
(pow x 2)
(*.f64 x x)
(/ 1 x)
(/.f64 #s(literal 1 binary64) x)
(/ (- 1 (/ 1 (pow x 2))) x)
(/.f64 (-.f64 #s(literal 1 binary64) (/.f64 (/.f64 #s(literal 1 binary64) x) x)) x)
(/ (- (+ 1 (/ 1 (pow x 4))) (/ 1 (pow x 2))) x)
(/.f64 (-.f64 (-.f64 (pow.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 4 binary64)) #s(literal -1 binary64)) (/.f64 (/.f64 #s(literal 1 binary64) x) x)) x)
(/ (- (+ 1 (/ 1 (pow x 4))) (+ (/ 1 (pow x 2)) (/ 1 (pow x 6)))) x)
(/.f64 (-.f64 (-.f64 (-.f64 (pow.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 4 binary64)) #s(literal -1 binary64)) (/.f64 (/.f64 #s(literal 1 binary64) x) x)) (/.f64 #s(literal 1 binary64) (pow.f64 x #s(literal 6 binary64)))) x)
(* -1 (pow x 3))
(pow.f64 (neg.f64 x) #s(literal 3 binary64))
(* (pow x 3) (- (/ 1 (pow x 2)) 1))
(*.f64 (-.f64 (/.f64 (/.f64 #s(literal 1 binary64) x) x) #s(literal 1 binary64)) (pow.f64 x #s(literal 3 binary64)))
(* -1 (/ (- (/ 1 (pow x 2)) 1) x))
(-.f64 (pow.f64 (/.f64 #s(literal -1 binary64) x) #s(literal 3 binary64)) (/.f64 #s(literal -1 binary64) x))
(* -1 (/ (- (/ 1 (pow x 2)) (+ 1 (/ 1 (pow x 4)))) x))
(-.f64 (-.f64 (pow.f64 (/.f64 #s(literal -1 binary64) x) #s(literal 3 binary64)) (/.f64 #s(literal -1 binary64) (pow.f64 x #s(literal 5 binary64)))) (/.f64 #s(literal -1 binary64) x))
(* -1 (/ (- (+ (/ 1 (pow x 2)) (/ 1 (pow x 6))) (+ 1 (/ 1 (pow x 4)))) x))
(/.f64 (-.f64 (/.f64 #s(literal -1 binary64) (pow.f64 x #s(literal 6 binary64))) (-.f64 (-.f64 (/.f64 (/.f64 #s(literal 1 binary64) x) x) #s(literal 1 binary64)) (pow.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 4 binary64)))) x)
(* -1 (* (pow x 3) (- 1 (/ 1 (pow x 2)))))
(*.f64 (+.f64 #s(literal -1 binary64) (/.f64 (/.f64 #s(literal 1 binary64) x) x)) (pow.f64 x #s(literal 3 binary64)))

rewrite61.0ms (1.4%)

Memory
-14.3MiB live, 36.7MiB allocated; 8ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0930
01224
15224
039323
Stop Event
iter limit
iter limit
iter limit
unsound
iter limit
Counts
4 → 45
Calls
Call 1
Inputs
(*.f64 (*.f64 x x) x)
#s(approx (/ x (+ (* x x) 1)) (-.f64 x (*.f64 (*.f64 x x) x)))
(-.f64 x (*.f64 (*.f64 x x) x))
(*.f64 x x)
Outputs
(*.f64 (*.f64 x (fabs.f64 x)) (fabs.f64 x))
(*.f64 (pow.f64 x #s(literal 3/2 binary64)) (pow.f64 x #s(literal 3/2 binary64)))
(*.f64 (*.f64 (neg.f64 x) x) (neg.f64 x))
(*.f64 (neg.f64 x) (*.f64 (neg.f64 x) x))
(*.f64 (fabs.f64 x) (*.f64 (fabs.f64 x) x))
(*.f64 (*.f64 x x) x)
(*.f64 x (*.f64 x x))
(pow.f64 x #s(literal 3 binary64))
(exp.f64 (*.f64 (log.f64 x) #s(literal 3 binary64)))
#s(approx (/ x (+ (* x x) 1)) (-.f64 x (pow.f64 x #s(literal 3 binary64))))
(*.f64 (fma.f64 (neg.f64 x) x #s(literal 1 binary64)) x)
(/.f64 (+.f64 (pow.f64 x #s(literal 3 binary64)) (pow.f64 (neg.f64 (pow.f64 x #s(literal 3 binary64))) #s(literal 3 binary64))) (fma.f64 x x (-.f64 (pow.f64 x #s(literal 6 binary64)) (*.f64 x (neg.f64 (pow.f64 x #s(literal 3 binary64)))))))
(/.f64 (neg.f64 (-.f64 (*.f64 x x) (pow.f64 x #s(literal 6 binary64)))) (neg.f64 (+.f64 (pow.f64 x #s(literal 3 binary64)) x)))
(/.f64 (neg.f64 (-.f64 (pow.f64 x #s(literal 3 binary64)) (pow.f64 x #s(literal 9 binary64)))) (neg.f64 (fma.f64 x x (+.f64 (pow.f64 x #s(literal 6 binary64)) (pow.f64 x #s(literal 4 binary64))))))
(/.f64 (-.f64 (*.f64 x x) (pow.f64 x #s(literal 6 binary64))) (+.f64 (pow.f64 x #s(literal 3 binary64)) x))
(/.f64 (-.f64 (pow.f64 x #s(literal 3 binary64)) (pow.f64 x #s(literal 9 binary64))) (fma.f64 x x (+.f64 (pow.f64 x #s(literal 6 binary64)) (pow.f64 x #s(literal 4 binary64)))))
(fma.f64 (*.f64 (neg.f64 x) x) x x)
(fma.f64 x (*.f64 (neg.f64 x) x) x)
(-.f64 (/.f64 (*.f64 x x) (+.f64 (pow.f64 x #s(literal 3 binary64)) x)) (/.f64 (pow.f64 x #s(literal 6 binary64)) (+.f64 (pow.f64 x #s(literal 3 binary64)) x)))
(-.f64 (/.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 x x (+.f64 (pow.f64 x #s(literal 6 binary64)) (pow.f64 x #s(literal 4 binary64))))) (/.f64 (pow.f64 x #s(literal 9 binary64)) (fma.f64 x x (+.f64 (pow.f64 x #s(literal 6 binary64)) (pow.f64 x #s(literal 4 binary64))))))
(-.f64 x (pow.f64 x #s(literal 3 binary64)))
(+.f64 (neg.f64 (pow.f64 x #s(literal 3 binary64))) x)
(+.f64 x (*.f64 (neg.f64 x) (*.f64 x x)))
(+.f64 x (neg.f64 (pow.f64 x #s(literal 3 binary64))))
(*.f64 (*.f64 (neg.f64 x) #s(literal 1 binary64)) (*.f64 (neg.f64 x) #s(literal 1 binary64)))
(*.f64 (*.f64 (fabs.f64 x) #s(literal 1 binary64)) (*.f64 (fabs.f64 x) #s(literal 1 binary64)))
(*.f64 (*.f64 x #s(literal 1 binary64)) (*.f64 x #s(literal 1 binary64)))
(*.f64 (pow.f64 x #s(literal 1 binary64)) (pow.f64 x #s(literal 1 binary64)))
(*.f64 (neg.f64 (neg.f64 x)) (neg.f64 (neg.f64 x)))
(*.f64 (neg.f64 (fabs.f64 x)) (neg.f64 (fabs.f64 x)))
(*.f64 (fabs.f64 (fabs.f64 x)) (fabs.f64 (fabs.f64 x)))
(*.f64 (neg.f64 x) (*.f64 (neg.f64 x) #s(literal 1 binary64)))
(*.f64 (neg.f64 x) (neg.f64 x))
(*.f64 (fabs.f64 x) (*.f64 (fabs.f64 x) #s(literal 1 binary64)))
(*.f64 (fabs.f64 x) (fabs.f64 x))
(*.f64 #s(literal 1 binary64) (*.f64 x x))
(*.f64 (*.f64 x x) #s(literal 1 binary64))
(*.f64 x (*.f64 x #s(literal 1 binary64)))
(*.f64 x x)
(pow.f64 (neg.f64 x) #s(literal 2 binary64))
(pow.f64 (fabs.f64 x) #s(literal 2 binary64))
(pow.f64 x #s(literal 2 binary64))
(neg.f64 (*.f64 (neg.f64 x) x))
(fabs.f64 (*.f64 x x))
(exp.f64 (*.f64 (log.f64 x) #s(literal 2 binary64)))

eval6.0ms (0.1%)

Memory
13.9MiB live, 13.9MiB allocated; 0ms collecting garbage
Compiler

Compiled 1 123 to 243 computations (78.4% saved)

prune3.0ms (0.1%)

Memory
8.1MiB live, 8.1MiB allocated; 0ms collecting garbage
Pruning

4 alts after pruning (0 fresh and 4 done)

PrunedKeptTotal
New59059
Fresh000
Picked011
Done033
Total59463
Accuracy
100.0%
Counts
63 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
52.5%
(/.f64 x #s(approx (+ (* x x) 1) #s(literal 1 binary64)))
49.8%
#s(approx (/ x (+ (* x x) 1)) (/.f64 (-.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (*.f64 x x))) x))
51.0%
#s(approx (/ x (+ (* x x) 1)) (/.f64 #s(literal 1 binary64) x))
51.4%
#s(approx (/ x (+ (* x x) 1)) (-.f64 x (*.f64 (*.f64 x x) x)))
Compiler

Compiled 130 to 61 computations (53.1% saved)

regimes9.0ms (0.2%)

Memory
-28.9MiB live, 16.1MiB allocated; 6ms collecting garbage
Counts
7 → 2
Calls
Call 1
Inputs
#s(approx (/ x (+ (* x x) 1)) (/.f64 #s(literal 1 binary64) x))
(/.f64 x #s(approx (+ (* x x) 1) #s(literal 1 binary64)))
#s(approx (/ x (+ (* x x) 1)) (-.f64 x (*.f64 (*.f64 x x) x)))
(/.f64 x (fma.f64 x x #s(literal 1 binary64)))
(/.f64 x (+.f64 (*.f64 x x) #s(literal 1 binary64)))
#s(approx (/ x (+ (* x x) 1)) (/.f64 (-.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (*.f64 x x))) x))
#s(approx (/ x (+ (* x x) 1)) (-.f64 x (pow.f64 x #s(literal 3 binary64))))
Outputs
#s(approx (/ x (+ (* x x) 1)) (-.f64 x (*.f64 (*.f64 x x) x)))
#s(approx (/ x (+ (* x x) 1)) (/.f64 (-.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (*.f64 x x))) x))
Calls

2 calls:

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

Compiled 8 to 6 computations (25% saved)

regimes2.0ms (0.1%)

Memory
7.6MiB live, 7.6MiB allocated; 0ms collecting garbage
Counts
5 → 2
Calls
Call 1
Inputs
#s(approx (/ x (+ (* x x) 1)) (/.f64 #s(literal 1 binary64) x))
(/.f64 x #s(approx (+ (* x x) 1) #s(literal 1 binary64)))
#s(approx (/ x (+ (* x x) 1)) (-.f64 x (*.f64 (*.f64 x x) x)))
(/.f64 x (fma.f64 x x #s(literal 1 binary64)))
(/.f64 x (+.f64 (*.f64 x x) #s(literal 1 binary64)))
Outputs
#s(approx (/ x (+ (* x x) 1)) (-.f64 x (*.f64 (*.f64 x x) x)))
#s(approx (/ x (+ (* x x) 1)) (/.f64 #s(literal 1 binary64) x))
Calls

1 calls:

2.0ms
x
Results
AccuracySegmentsBranch
100.0%2x
Compiler

Compiled 1 to 1 computations (0% saved)

regimes2.0ms (0%)

Memory
5.2MiB live, 5.2MiB allocated; 0ms collecting garbage
Counts
2 → 2
Calls
Call 1
Inputs
#s(approx (/ x (+ (* x x) 1)) (/.f64 #s(literal 1 binary64) x))
(/.f64 x #s(approx (+ (* x x) 1) #s(literal 1 binary64)))
Outputs
(/.f64 x #s(approx (+ (* x x) 1) #s(literal 1 binary64)))
#s(approx (/ x (+ (* x x) 1)) (/.f64 #s(literal 1 binary64) x))
Calls

1 calls:

1.0ms
x
Results
AccuracySegmentsBranch
99.9%2x
Compiler

Compiled 1 to 1 computations (0% saved)

regimes2.0ms (0%)

Memory
7.6MiB live, 7.6MiB allocated; 0ms collecting garbage
Accuracy

Total 0.0b remaining (0%)

Threshold costs 0b (0%)

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

2 calls:

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

Compiled 8 to 6 computations (25% saved)

bsearch16.0ms (0.3%)

Memory
-12.9MiB live, 32.0MiB allocated; 2ms collecting garbage
Algorithm
binary-search
Stop Event
narrow-enough
Steps
TimeLeftRight
14.0ms
1.255035775154168e-6
101464397.81163748
Samples
6.0ms160×0valid
Compiler

Compiled 330 to 229 computations (30.6% saved)

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

bsearch6.0ms (0.1%)

Memory
12.9MiB live, 12.9MiB allocated; 0ms collecting garbage
Algorithm
binary-search
Stop Event
narrow-enough
Steps
TimeLeftRight
5.0ms
1.255035775154168e-6
101464397.81163748
Samples
2.0ms64×0valid
Compiler

Compiled 270 to 199 computations (26.3% saved)

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

bsearch1.0ms (0%)

Memory
1.4MiB live, 1.4MiB allocated; 0ms collecting garbage
Algorithm
binary-search
Stop Event
narrow-enough
Steps
TimeLeftRight
1.0ms
1.255035775154168e-6
101464397.81163748
Compiler

Compiled 210 to 179 computations (14.8% saved)

simplify53.0ms (1.2%)

Memory
-14.9MiB live, 31.9MiB allocated; 4ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
023101
137101
276101
3128101
4188101
5424101
63006101
77024101
Stop Event
node limit
Calls
Call 1
Inputs
(if (<=.f64 x #s(literal 1 binary64)) #s(approx (/ x (+ (* x x) 1)) (-.f64 x (*.f64 (*.f64 x x) x))) #s(approx (/ x (+ (* x x) 1)) (/.f64 (-.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (*.f64 x x))) x)))
(if (<=.f64 x #s(literal 7746191359077253/9007199254740992 binary64)) #s(approx (/ x (+ (* x x) 1)) (-.f64 x (*.f64 (*.f64 x x) x))) #s(approx (/ x (+ (* x x) 1)) (/.f64 #s(literal 1 binary64) x)))
(if (<=.f64 x #s(literal 1 binary64)) (/.f64 x #s(approx (+ (* x x) 1) #s(literal 1 binary64))) #s(approx (/ x (+ (* x x) 1)) (/.f64 #s(literal 1 binary64) x)))
#s(approx (/ x (+ (* x x) 1)) (/.f64 #s(literal 1 binary64) x))
Outputs
(if (<=.f64 x #s(literal 1 binary64)) #s(approx (/ x (+ (* x x) 1)) (-.f64 x (*.f64 (*.f64 x x) x))) #s(approx (/ x (+ (* x x) 1)) (/.f64 (-.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (*.f64 x x))) x)))
(if (<=.f64 x #s(literal 7746191359077253/9007199254740992 binary64)) #s(approx (/ x (+ (* x x) 1)) (-.f64 x (*.f64 (*.f64 x x) x))) #s(approx (/ x (+ (* x x) 1)) (/.f64 #s(literal 1 binary64) x)))
(if (<=.f64 x #s(literal 1 binary64)) (/.f64 x #s(approx (+ (* x x) 1) #s(literal 1 binary64))) #s(approx (/ x (+ (* x x) 1)) (/.f64 #s(literal 1 binary64) x)))
#s(approx (/ x (+ (* x x) 1)) (/.f64 #s(literal 1 binary64) x))

derivations320.0ms (7.1%)

Memory
11.8MiB live, 203.0MiB allocated; 44ms collecting garbage
Stop Event
done
Compiler

Compiled 101 to 24 computations (76.2% saved)

preprocess92.0ms (2%)

Memory
2.3MiB live, 95.3MiB allocated; 38ms collecting garbage
Compiler

Compiled 302 to 100 computations (66.9% saved)

end0.0ms (0%)

Memory
0.1MiB live, 0.1MiB allocated; 0ms collecting garbage

Profiling

Loading profile data...