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.4MiB live, 0.4MiB 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)

sample952.0ms (21.3%)

Memory
-4.4MiB live, 637.5MiB allocated; 933ms collecting garbage
Samples
713.0ms8 256×0valid
Precisions
Click to see histograms. Total time spent on operations: 324.0ms
ival-div: 149.0ms (46% of total)
ival-mult: 119.0ms (36.8% of total)
ival-add: 40.0ms (12.4% of total)
ival-true: 6.0ms (1.9% of total)
exact: 5.0ms (1.5% of total)
ival-assert: 3.0ms (0.9% of total)
adjust: 2.0ms (0.6% of total)
Bogosity

explain114.0ms (2.6%)

Memory
5.2MiB live, 96.0MiB allocated; 11ms collecting garbage
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
680-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/o680
(*.f64 x x)overflow68
(+.f64 (*.f64 x x) #s(literal 1 binary64))overflow68
Confusion
Predicted +Predicted -
+680
-0188
Precision
1.0
Recall
1.0
Confusion?
Predicted +Predicted MaybePredicted -
+6800
-00188
Precision?
1.0
Recall?
1.0
Freqs
test
numberfreq
0188
168
Total Confusion?
Predicted +Predicted MaybePredicted -
+100
-000
Precision?
1.0
Recall?
1.0
Samples
25.0ms512×0valid
Compiler

Compiled 45 to 19 computations (57.8% saved)

Precisions
Click to see histograms. Total time spent on operations: 11.0ms
ival-div: 4.0ms (35.7% of total)
ival-mult: 4.0ms (35.7% of total)
ival-add: 2.0ms (17.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)

preprocess246.0ms (5.5%)

Memory
29.2MiB live, 180.7MiB allocated; 33ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01022
12822
26221
39121
416421
540821
6276821
7648121
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.0MiB live, 0.0MiB allocated; 0ms collecting garbage
Compiler

Compiled 0 to 1 computations (-∞% saved)

prune0.0ms (0%)

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

Compiled 7 to 5 computations (28.6% saved)

simplify172.0ms (3.9%)

Memory
2.0MiB live, 142.8MiB allocated; 27ms 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)

localize46.0ms (1%)

Memory
-27.4MiB live, 18.0MiB allocated; 7ms collecting garbage
Localize:

Found 3 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(+.f64 (*.f64 x x) #s(literal 1 binary64))
accuracy0.0
(*.f64 x x)
accuracy15.905945683486658
(/.f64 x (+.f64 (*.f64 x x) #s(literal 1 binary64)))
Samples
11.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 (37.4% of total)
ival-mult: 2.0ms (37.4% of total)
ival-add: 1.0ms (18.7% 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.1%)

Memory
2.7MiB live, 2.7MiB allocated; 0ms collecting garbage
Counts
3 → 16
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
#s(approx (+ (* x x) 1) #s(hole binary64 1))
#s(approx (+ (* x x) 1) #s(hole binary64 (+ 1 (pow x 2))))
#s(approx (/ x (+ (* x x) 1)) #s(hole binary64 x))
#s(approx (/ x (+ (* x x) 1)) #s(hole binary64 (* x (+ 1 (* -1 (pow x 2))))))
#s(approx (/ x (+ (* x x) 1)) #s(hole binary64 (* x (+ 1 (* (pow x 2) (- (pow x 2) 1))))))
#s(approx (/ x (+ (* x x) 1)) #s(hole binary64 (* x (+ 1 (* (pow x 2) (- (* (pow x 2) (+ 1 (* -1 (pow x 2)))) 1))))))
#s(approx (* x x) #s(hole binary64 (pow x 2)))
#s(approx (+ (* x x) 1) #s(hole binary64 (pow x 2)))
#s(approx (+ (* x x) 1) #s(hole binary64 (* (pow x 2) (+ 1 (/ 1 (pow x 2))))))
#s(approx (/ x (+ (* x x) 1)) #s(hole binary64 (/ 1 x)))
#s(approx (/ x (+ (* x x) 1)) #s(hole binary64 (/ (- 1 (/ 1 (pow x 2))) x)))
#s(approx (/ x (+ (* x x) 1)) #s(hole binary64 (/ (- (+ 1 (/ 1 (pow x 4))) (/ 1 (pow x 2))) x)))
#s(approx (/ x (+ (* x x) 1)) #s(hole binary64 (/ (- (+ 1 (/ 1 (pow x 4))) (+ (/ 1 (pow x 2)) (/ 1 (pow x 6)))) x)))
#s(approx (/ x (+ (* x x) 1)) #s(hole binary64 (* -1 (/ (- (/ 1 (pow x 2)) 1) x))))
#s(approx (/ x (+ (* x x) 1)) #s(hole binary64 (* -1 (/ (- (/ 1 (pow x 2)) (+ 1 (/ 1 (pow x 4)))) x))))
#s(approx (/ x (+ (* x x) 1)) #s(hole binary64 (* -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))

simplify341.0ms (7.6%)

Memory
6.0MiB live, 189.2MiB allocated; 46ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
064271
1152269
2465261
33183261
08036240
Stop Event
iter limit
node limit
Counts
16 → 16
Calls
Call 1
Inputs
#s(approx (+ (* x x) 1) #s(hole binary64 1))
#s(approx (+ (* x x) 1) #s(hole binary64 (+ 1 (pow x 2))))
#s(approx (/ x (+ (* x x) 1)) #s(hole binary64 x))
#s(approx (/ x (+ (* x x) 1)) #s(hole binary64 (* x (+ 1 (* -1 (pow x 2))))))
#s(approx (/ x (+ (* x x) 1)) #s(hole binary64 (* x (+ 1 (* (pow x 2) (- (pow x 2) 1))))))
#s(approx (/ x (+ (* x x) 1)) #s(hole binary64 (* x (+ 1 (* (pow x 2) (- (* (pow x 2) (+ 1 (* -1 (pow x 2)))) 1))))))
#s(approx (* x x) #s(hole binary64 (pow x 2)))
#s(approx (+ (* x x) 1) #s(hole binary64 (pow x 2)))
#s(approx (+ (* x x) 1) #s(hole binary64 (* (pow x 2) (+ 1 (/ 1 (pow x 2))))))
#s(approx (/ x (+ (* x x) 1)) #s(hole binary64 (/ 1 x)))
#s(approx (/ x (+ (* x x) 1)) #s(hole binary64 (/ (- 1 (/ 1 (pow x 2))) x)))
#s(approx (/ x (+ (* x x) 1)) #s(hole binary64 (/ (- (+ 1 (/ 1 (pow x 4))) (/ 1 (pow x 2))) x)))
#s(approx (/ x (+ (* x x) 1)) #s(hole binary64 (/ (- (+ 1 (/ 1 (pow x 4))) (+ (/ 1 (pow x 2)) (/ 1 (pow x 6)))) x)))
#s(approx (/ x (+ (* x x) 1)) #s(hole binary64 (* -1 (/ (- (/ 1 (pow x 2)) 1) x))))
#s(approx (/ x (+ (* x x) 1)) #s(hole binary64 (* -1 (/ (- (/ 1 (pow x 2)) (+ 1 (/ 1 (pow x 4)))) x))))
#s(approx (/ x (+ (* x x) 1)) #s(hole binary64 (* -1 (/ (- (+ (/ 1 (pow x 2)) (/ 1 (pow x 6))) (+ 1 (/ 1 (pow x 4)))) x))))
Outputs
#s(approx (+ (* x x) 1) #s(hole binary64 1))
#s(approx (+ (* x x) 1) #s(literal 1 binary64))
#s(approx (+ (* x x) 1) #s(hole binary64 (+ 1 (pow x 2))))
#s(approx (+ (* x x) 1) (fma.f64 x x #s(literal 1 binary64)))
#s(approx (/ x (+ (* x x) 1)) #s(hole binary64 x))
#s(approx (/ x (+ (* x x) 1)) x)
#s(approx (/ x (+ (* x x) 1)) #s(hole binary64 (* x (+ 1 (* -1 (pow x 2))))))
#s(approx (/ x (+ (* x x) 1)) (-.f64 x (pow.f64 x #s(literal 3 binary64))))
#s(approx (/ x (+ (* x x) 1)) #s(hole binary64 (* x (+ 1 (* (pow x 2) (- (pow x 2) 1))))))
#s(approx (/ x (+ (* x x) 1)) (fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 x x #s(literal -1 binary64)) x))
#s(approx (/ x (+ (* x x) 1)) #s(hole binary64 (* x (+ 1 (* (pow x 2) (- (* (pow x 2) (+ 1 (* -1 (pow x 2)))) 1))))))
#s(approx (/ x (+ (* x x) 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))
#s(approx (* x x) #s(hole binary64 (pow x 2)))
#s(approx (* x x) (*.f64 x x))
#s(approx (+ (* x x) 1) #s(hole binary64 (pow x 2)))
#s(approx (+ (* x x) 1) (*.f64 x x))
#s(approx (+ (* x x) 1) #s(hole binary64 (* (pow x 2) (+ 1 (/ 1 (pow x 2))))))
#s(approx (+ (* x x) 1) (fma.f64 x x #s(literal 1 binary64)))
#s(approx (/ x (+ (* x x) 1)) #s(hole binary64 (/ 1 x)))
#s(approx (/ x (+ (* x x) 1)) (/.f64 #s(literal 1 binary64) x))
#s(approx (/ x (+ (* x x) 1)) #s(hole binary64 (/ (- 1 (/ 1 (pow x 2))) x)))
#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)) #s(hole binary64 (/ (- (+ 1 (/ 1 (pow x 4))) (/ 1 (pow x 2))) x)))
#s(approx (/ x (+ (* x x) 1)) (/.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))
#s(approx (/ x (+ (* x x) 1)) #s(hole binary64 (/ (- (+ 1 (/ 1 (pow x 4))) (+ (/ 1 (pow x 2)) (/ 1 (pow x 6)))) x)))
#s(approx (/ x (+ (* x x) 1)) (/.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))
#s(approx (/ x (+ (* x x) 1)) #s(hole binary64 (* -1 (/ (- (/ 1 (pow x 2)) 1) x))))
#s(approx (/ x (+ (* x x) 1)) (/.f64 (-.f64 (/.f64 #s(literal 1 binary64) (*.f64 x x)) #s(literal 1 binary64)) (neg.f64 x)))
#s(approx (/ x (+ (* x x) 1)) #s(hole binary64 (* -1 (/ (- (/ 1 (pow x 2)) (+ 1 (/ 1 (pow x 4)))) x))))
#s(approx (/ x (+ (* x x) 1)) (/.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)))
#s(approx (/ x (+ (* x x) 1)) #s(hole binary64 (* -1 (/ (- (+ (/ 1 (pow x 2)) (/ 1 (pow x 6))) (+ 1 (/ 1 (pow x 4)))) x))))
#s(approx (/ x (+ (* x x) 1)) (/.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)))

rewrite71.0ms (1.6%)

Memory
8.0MiB live, 52.1MiB allocated; 13ms 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
13.4MiB live, 13.4MiB allocated; 0ms collecting garbage
Compiler

Compiled 870 to 222 computations (74.5% saved)

prune4.0ms (0.1%)

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

6 alts after pruning (6 fresh and 0 done)

PrunedKeptTotal
New68674
Fresh000
Picked101
Done000
Total69675
Accuracy
100.0%
Counts
75 → 6
Alt Table
Click to see full alt table
StatusAccuracyProgram
75.1%
(/.f64 x (fma.f64 x x #s(literal 1 binary64)))
62.1%
(/.f64 x (/.f64 (-.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1 binary64)) (fma.f64 x x #s(literal -1 binary64))))
27.9%
(/.f64 x #s(approx (+ (* x x) 1) (*.f64 x x)))
52.0%
#s(approx (/ x (+ (* x x) 1)) (/.f64 (-.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (*.f64 x x))) x))
52.8%
#s(approx (/ x (+ (* x x) 1)) (/.f64 #s(literal 1 binary64) x))
50.3%
#s(approx (/ x (+ (* x x) 1)) x)
Compiler

Compiled 132 to 90 computations (31.8% saved)

simplify535.0ms (12%)

Memory
-12.2MiB live, 135.7MiB allocated; 15ms collecting garbage
Localize:

Found 12 expressions of interest:

NewMetricScoreProgram
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
(*.f64 x x)
cost-diff0
#s(approx (+ (* x x) 1) (*.f64 x x))
cost-diff0
(/.f64 x #s(approx (+ (* x x) 1) (*.f64 x x)))
cost-diff0
(/.f64 #s(literal 1 binary64) x)
cost-diff0
#s(approx (/ x (+ (* x x) 1)) (/.f64 #s(literal 1 binary64) x))
cost-diff0
#s(approx (/ x (+ (* x x) 1)) 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
017100
025100
135100
264100
3143100
4384100
52024100
66080100
08098100
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)) x)
x
#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) (*.f64 x x)))
x
#s(approx (+ (* x x) 1) (*.f64 x x))
(*.f64 x x)
#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
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)) x)
x
#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) (*.f64 x x)))
x
#s(approx (+ (* x x) 1) (*.f64 x x))
(*.f64 x x)
#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

localize35.0ms (0.8%)

Memory
2.0MiB live, 47.7MiB allocated; 4ms collecting garbage
Localize:

Found 12 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(*.f64 x x)
accuracy0.046875
(/.f64 (-.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (*.f64 x x))) x)
accuracy0.5692729873878191
(/.f64 #s(literal 1 binary64) (*.f64 x x))
accuracy30.697151907491463
#s(approx (/ x (+ (* x x) 1)) (/.f64 (-.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (*.f64 x x))) x))
accuracy0.0
(*.f64 x x)
accuracy15.905945683486658
(/.f64 x #s(approx (+ (* x x) 1) (*.f64 x x)))
accuracy30.07548380596093
#s(approx (+ (* x x) 1) (*.f64 x x))
accuracy0.0
(/.f64 #s(literal 1 binary64) x)
accuracy30.21390933372506
#s(approx (/ x (+ (* x x) 1)) (/.f64 #s(literal 1 binary64) x))
accuracy31.801081205717757
#s(approx (/ x (+ (* x x) 1)) x)
accuracy0.0
(fma.f64 x x #s(literal 1 binary64))
accuracy15.905945683486658
(/.f64 x (fma.f64 x x #s(literal 1 binary64)))
Samples
26.0ms256×0valid
Compiler

Compiled 85 to 11 computations (87.1% saved)

Precisions
Click to see histograms. Total time spent on operations: 11.0ms
ival-div: 6.0ms (53.4% of total)
ival-mult: 2.0ms (17.8% of total)
ival-sub: 1.0ms (8.9% of total)
ival-add: 1.0ms (8.9% 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)

series4.0ms (0.1%)

Memory
4.3MiB live, 4.3MiB allocated; 0ms collecting garbage
Counts
12 → 27
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)) x)
#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) (*.f64 x x)))
#s(approx (+ (* x x) 1) (*.f64 x x))
(*.f64 x x)
#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))
Outputs
#s(approx (/ x (+ (* x x) 1)) #s(hole binary64 x))
#s(approx (/ x (+ (* x x) 1)) #s(hole binary64 (* x (+ 1 (* -1 (pow x 2))))))
#s(approx (/ x (+ (* x x) 1)) #s(hole binary64 (* x (+ 1 (* (pow x 2) (- (pow x 2) 1))))))
#s(approx (/ x (+ (* x x) 1)) #s(hole binary64 (* x (+ 1 (* (pow x 2) (- (* (pow x 2) (+ 1 (* -1 (pow x 2)))) 1))))))
#s(approx (+ (* x x) 1) #s(hole binary64 1))
#s(approx (+ (* x x) 1) #s(hole binary64 (+ 1 (pow x 2))))
#s(approx (/ 1 x) #s(hole binary64 (/ 1 x)))
#s(approx (* x x) #s(hole binary64 (pow x 2)))
#s(approx (/ (- 1 (/ 1 (* x x))) x) #s(hole binary64 (/ -1 (pow x 3))))
#s(approx (/ (- 1 (/ 1 (* x x))) x) #s(hole binary64 (/ (- (pow x 2) 1) (pow x 3))))
#s(approx (- 1 (/ 1 (* x x))) #s(hole binary64 (/ -1 (pow x 2))))
#s(approx (- 1 (/ 1 (* x x))) #s(hole binary64 (/ (- (pow x 2) 1) (pow x 2))))
#s(approx (/ 1 (* x x)) #s(hole binary64 (/ 1 (pow x 2))))
#s(approx (/ x (+ (* x x) 1)) #s(hole binary64 (/ 1 x)))
#s(approx (/ x (+ (* x x) 1)) #s(hole binary64 (/ (- 1 (/ 1 (pow x 2))) x)))
#s(approx (/ x (+ (* x x) 1)) #s(hole binary64 (/ (- (+ 1 (/ 1 (pow x 4))) (/ 1 (pow x 2))) x)))
#s(approx (/ x (+ (* x x) 1)) #s(hole binary64 (/ (- (+ 1 (/ 1 (pow x 4))) (+ (/ 1 (pow x 2)) (/ 1 (pow x 6)))) x)))
#s(approx (+ (* x x) 1) #s(hole binary64 (pow x 2)))
#s(approx (+ (* x x) 1) #s(hole binary64 (* (pow x 2) (+ 1 (/ 1 (pow x 2))))))
#s(approx (/ (- 1 (/ 1 (* x x))) x) #s(hole binary64 (/ 1 x)))
#s(approx (/ (- 1 (/ 1 (* x x))) x) #s(hole binary64 (/ (- 1 (/ 1 (pow x 2))) x)))
#s(approx (- 1 (/ 1 (* x x))) #s(hole binary64 1))
#s(approx (- 1 (/ 1 (* x x))) #s(hole binary64 (- 1 (/ 1 (pow x 2)))))
#s(approx (/ x (+ (* x x) 1)) #s(hole binary64 (* -1 (/ (- (/ 1 (pow x 2)) 1) x))))
#s(approx (/ x (+ (* x x) 1)) #s(hole binary64 (* -1 (/ (- (/ 1 (pow x 2)) (+ 1 (/ 1 (pow x 4)))) x))))
#s(approx (/ x (+ (* x x) 1)) #s(hole binary64 (* -1 (/ (- (+ (/ 1 (pow x 2)) (/ 1 (pow x 6))) (+ 1 (/ 1 (pow x 4)))) x))))
#s(approx (/ (- 1 (/ 1 (* x x))) x) #s(hole binary64 (* -1 (/ (- (/ 1 (pow x 2)) 1) x))))
Calls

3 calls:

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

simplify563.0ms (12.6%)

Memory
16.1MiB live, 256.7MiB allocated; 44ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
084429
1186415
2559415
34803415
08830381
Stop Event
iter limit
node limit
Counts
27 → 27
Calls
Call 1
Inputs
#s(approx (/ x (+ (* x x) 1)) #s(hole binary64 x))
#s(approx (/ x (+ (* x x) 1)) #s(hole binary64 (* x (+ 1 (* -1 (pow x 2))))))
#s(approx (/ x (+ (* x x) 1)) #s(hole binary64 (* x (+ 1 (* (pow x 2) (- (pow x 2) 1))))))
#s(approx (/ x (+ (* x x) 1)) #s(hole binary64 (* x (+ 1 (* (pow x 2) (- (* (pow x 2) (+ 1 (* -1 (pow x 2)))) 1))))))
#s(approx (+ (* x x) 1) #s(hole binary64 1))
#s(approx (+ (* x x) 1) #s(hole binary64 (+ 1 (pow x 2))))
#s(approx (/ 1 x) #s(hole binary64 (/ 1 x)))
#s(approx (* x x) #s(hole binary64 (pow x 2)))
#s(approx (/ (- 1 (/ 1 (* x x))) x) #s(hole binary64 (/ -1 (pow x 3))))
#s(approx (/ (- 1 (/ 1 (* x x))) x) #s(hole binary64 (/ (- (pow x 2) 1) (pow x 3))))
#s(approx (- 1 (/ 1 (* x x))) #s(hole binary64 (/ -1 (pow x 2))))
#s(approx (- 1 (/ 1 (* x x))) #s(hole binary64 (/ (- (pow x 2) 1) (pow x 2))))
#s(approx (/ 1 (* x x)) #s(hole binary64 (/ 1 (pow x 2))))
#s(approx (/ x (+ (* x x) 1)) #s(hole binary64 (/ 1 x)))
#s(approx (/ x (+ (* x x) 1)) #s(hole binary64 (/ (- 1 (/ 1 (pow x 2))) x)))
#s(approx (/ x (+ (* x x) 1)) #s(hole binary64 (/ (- (+ 1 (/ 1 (pow x 4))) (/ 1 (pow x 2))) x)))
#s(approx (/ x (+ (* x x) 1)) #s(hole binary64 (/ (- (+ 1 (/ 1 (pow x 4))) (+ (/ 1 (pow x 2)) (/ 1 (pow x 6)))) x)))
#s(approx (+ (* x x) 1) #s(hole binary64 (pow x 2)))
#s(approx (+ (* x x) 1) #s(hole binary64 (* (pow x 2) (+ 1 (/ 1 (pow x 2))))))
#s(approx (/ (- 1 (/ 1 (* x x))) x) #s(hole binary64 (/ 1 x)))
#s(approx (/ (- 1 (/ 1 (* x x))) x) #s(hole binary64 (/ (- 1 (/ 1 (pow x 2))) x)))
#s(approx (- 1 (/ 1 (* x x))) #s(hole binary64 1))
#s(approx (- 1 (/ 1 (* x x))) #s(hole binary64 (- 1 (/ 1 (pow x 2)))))
#s(approx (/ x (+ (* x x) 1)) #s(hole binary64 (* -1 (/ (- (/ 1 (pow x 2)) 1) x))))
#s(approx (/ x (+ (* x x) 1)) #s(hole binary64 (* -1 (/ (- (/ 1 (pow x 2)) (+ 1 (/ 1 (pow x 4)))) x))))
#s(approx (/ x (+ (* x x) 1)) #s(hole binary64 (* -1 (/ (- (+ (/ 1 (pow x 2)) (/ 1 (pow x 6))) (+ 1 (/ 1 (pow x 4)))) x))))
#s(approx (/ (- 1 (/ 1 (* x x))) x) #s(hole binary64 (* -1 (/ (- (/ 1 (pow x 2)) 1) x))))
Outputs
#s(approx (/ x (+ (* x x) 1)) #s(hole binary64 x))
#s(approx (/ x (+ (* x x) 1)) x)
#s(approx (/ x (+ (* x x) 1)) #s(hole binary64 (* x (+ 1 (* -1 (pow x 2))))))
#s(approx (/ x (+ (* x x) 1)) (-.f64 x (pow.f64 x #s(literal 3 binary64))))
#s(approx (/ x (+ (* x x) 1)) #s(hole binary64 (* x (+ 1 (* (pow x 2) (- (pow x 2) 1))))))
#s(approx (/ x (+ (* x x) 1)) (fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 x x #s(literal -1 binary64)) x))
#s(approx (/ x (+ (* x x) 1)) #s(hole binary64 (* x (+ 1 (* (pow x 2) (- (* (pow x 2) (+ 1 (* -1 (pow x 2)))) 1))))))
#s(approx (/ x (+ (* x x) 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))
#s(approx (+ (* x x) 1) #s(hole binary64 1))
#s(approx (+ (* x x) 1) #s(literal 1 binary64))
#s(approx (+ (* x x) 1) #s(hole binary64 (+ 1 (pow x 2))))
#s(approx (+ (* x x) 1) (fma.f64 x x #s(literal 1 binary64)))
#s(approx (/ 1 x) #s(hole binary64 (/ 1 x)))
#s(approx (/ 1 x) (/.f64 #s(literal 1 binary64) x))
#s(approx (* x x) #s(hole binary64 (pow x 2)))
#s(approx (* x x) (*.f64 x x))
#s(approx (/ (- 1 (/ 1 (* x x))) x) #s(hole binary64 (/ -1 (pow x 3))))
#s(approx (/ (- 1 (/ 1 (* x x))) x) (/.f64 #s(literal -1 binary64) (pow.f64 x #s(literal 3 binary64))))
#s(approx (/ (- 1 (/ 1 (* x x))) x) #s(hole binary64 (/ (- (pow x 2) 1) (pow x 3))))
#s(approx (/ (- 1 (/ 1 (* x x))) x) (/.f64 (fma.f64 x x #s(literal -1 binary64)) (pow.f64 x #s(literal 3 binary64))))
#s(approx (- 1 (/ 1 (* x x))) #s(hole binary64 (/ -1 (pow x 2))))
#s(approx (- 1 (/ 1 (* x x))) (/.f64 #s(literal -1 binary64) (*.f64 x x)))
#s(approx (- 1 (/ 1 (* x x))) #s(hole binary64 (/ (- (pow x 2) 1) (pow x 2))))
#s(approx (- 1 (/ 1 (* x x))) (/.f64 (-.f64 x (/.f64 #s(literal 1 binary64) x)) x))
#s(approx (/ 1 (* x x)) #s(hole binary64 (/ 1 (pow x 2))))
#s(approx (/ 1 (* x x)) (/.f64 #s(literal 1 binary64) (*.f64 x x)))
#s(approx (/ x (+ (* x x) 1)) #s(hole binary64 (/ 1 x)))
#s(approx (/ x (+ (* x x) 1)) (/.f64 #s(literal 1 binary64) x))
#s(approx (/ x (+ (* x x) 1)) #s(hole binary64 (/ (- 1 (/ 1 (pow x 2))) x)))
#s(approx (/ x (+ (* x x) 1)) (/.f64 (fma.f64 x x #s(literal -1 binary64)) (pow.f64 x #s(literal 3 binary64))))
#s(approx (/ x (+ (* x x) 1)) #s(hole binary64 (/ (- (+ 1 (/ 1 (pow x 4))) (/ 1 (pow x 2))) x)))
#s(approx (/ x (+ (* x x) 1)) (+.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)))))
#s(approx (/ x (+ (* x x) 1)) #s(hole binary64 (/ (- (+ 1 (/ 1 (pow x 4))) (+ (/ 1 (pow x 2)) (/ 1 (pow x 6)))) x)))
#s(approx (/ x (+ (* x x) 1)) (-.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)))))
#s(approx (+ (* x x) 1) #s(hole binary64 (pow x 2)))
#s(approx (+ (* x x) 1) (*.f64 x x))
#s(approx (+ (* x x) 1) #s(hole binary64 (* (pow x 2) (+ 1 (/ 1 (pow x 2))))))
#s(approx (+ (* x x) 1) (fma.f64 x x #s(literal 1 binary64)))
#s(approx (/ (- 1 (/ 1 (* x x))) x) #s(hole binary64 (/ 1 x)))
#s(approx (/ (- 1 (/ 1 (* x x))) x) (/.f64 #s(literal 1 binary64) x))
#s(approx (/ (- 1 (/ 1 (* x x))) x) #s(hole binary64 (/ (- 1 (/ 1 (pow x 2))) x)))
#s(approx (/ (- 1 (/ 1 (* x x))) x) (/.f64 (fma.f64 x x #s(literal -1 binary64)) (pow.f64 x #s(literal 3 binary64))))
#s(approx (- 1 (/ 1 (* x x))) #s(hole binary64 1))
#s(approx (- 1 (/ 1 (* x x))) #s(literal 1 binary64))
#s(approx (- 1 (/ 1 (* x x))) #s(hole binary64 (- 1 (/ 1 (pow x 2)))))
#s(approx (- 1 (/ 1 (* x x))) (/.f64 (-.f64 x (/.f64 #s(literal 1 binary64) x)) x))
#s(approx (/ x (+ (* x x) 1)) #s(hole binary64 (* -1 (/ (- (/ 1 (pow x 2)) 1) x))))
#s(approx (/ x (+ (* x x) 1)) (/.f64 (fma.f64 x x #s(literal -1 binary64)) (pow.f64 x #s(literal 3 binary64))))
#s(approx (/ x (+ (* x x) 1)) #s(hole binary64 (* -1 (/ (- (/ 1 (pow x 2)) (+ 1 (/ 1 (pow x 4)))) x))))
#s(approx (/ x (+ (* x x) 1)) (/.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)))
#s(approx (/ x (+ (* x x) 1)) #s(hole binary64 (* -1 (/ (- (+ (/ 1 (pow x 2)) (/ 1 (pow x 6))) (+ 1 (/ 1 (pow x 4)))) x))))
#s(approx (/ x (+ (* x x) 1)) (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))))))
#s(approx (/ (- 1 (/ 1 (* x x))) x) #s(hole binary64 (* -1 (/ (- (/ 1 (pow x 2)) 1) x))))
#s(approx (/ (- 1 (/ 1 (* x x))) x) (/.f64 (fma.f64 x x #s(literal -1 binary64)) (pow.f64 x #s(literal 3 binary64))))

rewrite86.0ms (1.9%)

Memory
-41.0MiB live, 26.6MiB allocated; 8ms collecting garbage
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01789
02589
17481
049881
Stop Event
iter limit
iter limit
iter limit
unsound
iter limit
Counts
12 → 113
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)) x)
#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) (*.f64 x x)))
#s(approx (+ (* x x) 1) (*.f64 x x))
(*.f64 x x)
#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))
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)) 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) (*.f64 x x)))))
(/.f64 (neg.f64 x) (neg.f64 #s(approx (+ (* x x) 1) (*.f64 x x))))
(/.f64 x #s(approx (+ (* x x) 1) (*.f64 x x)))
(neg.f64 (/.f64 (neg.f64 x) #s(approx (+ (* x x) 1) (*.f64 x x))))
(neg.f64 (/.f64 x (neg.f64 #s(approx (+ (* x x) 1) (*.f64 x x)))))
#s(approx (+ (* x x) 1) (*.f64 x x))
(*.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)))
#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)))

eval15.0ms (0.3%)

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

Compiled 2 567 to 520 computations (79.7% saved)

prune6.0ms (0.1%)

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

6 alts after pruning (1 fresh and 5 done)

PrunedKeptTotal
New1550155
Fresh011
Picked055
Done000
Total1556161
Accuracy
100.0%
Counts
161 → 6
Alt Table
Click to see full alt table
StatusAccuracyProgram
75.1%
(/.f64 x (fma.f64 x x #s(literal 1 binary64)))
62.1%
(/.f64 x (/.f64 (-.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1 binary64)) (fma.f64 x x #s(literal -1 binary64))))
27.9%
(/.f64 x #s(approx (+ (* x x) 1) (*.f64 x x)))
52.0%
#s(approx (/ x (+ (* x x) 1)) (/.f64 (-.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (*.f64 x x))) x))
52.8%
#s(approx (/ x (+ (* x x) 1)) (/.f64 #s(literal 1 binary64) x))
50.3%
#s(approx (/ x (+ (* x x) 1)) x)
Compiler

Compiled 66 to 45 computations (31.8% saved)

simplify123.0ms (2.8%)

Memory
-8.4MiB live, 80.7MiB allocated; 9ms collecting garbage
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
cost-diff0
(pow.f64 x #s(literal 4 binary64))
cost-diff0
(-.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1 binary64))
cost-diff0
(/.f64 (-.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1 binary64)) (fma.f64 x x #s(literal -1 binary64)))
cost-diff1
(/.f64 x (/.f64 (-.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1 binary64)) (fma.f64 x x #s(literal -1 binary64))))
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
0938
01538
13038
28138
327938
4125437
0887637
Stop Event
iter limit
node limit
iter limit
Calls
Call 1
Inputs
(/.f64 x (/.f64 (-.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1 binary64)) (fma.f64 x x #s(literal -1 binary64))))
x
(/.f64 (-.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1 binary64)) (fma.f64 x x #s(literal -1 binary64)))
(-.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1 binary64))
(pow.f64 x #s(literal 4 binary64))
#s(literal 4 binary64)
#s(literal 1 binary64)
(fma.f64 x x #s(literal -1 binary64))
#s(literal -1 binary64)
Outputs
(/.f64 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 3 binary64)) x) (-.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1 binary64)))
x
(/.f64 (-.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1 binary64)) (fma.f64 x x #s(literal -1 binary64)))
(-.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1 binary64))
(pow.f64 x #s(literal 4 binary64))
#s(literal 4 binary64)
#s(literal 1 binary64)
(fma.f64 x x #s(literal -1 binary64))
#s(literal -1 binary64)

localize30.0ms (0.7%)

Memory
4.2MiB live, 48.2MiB allocated; 5ms collecting garbage
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(pow.f64 x #s(literal 4 binary64))
accuracy0.0
(-.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1 binary64))
accuracy15.905945683486658
(/.f64 x (/.f64 (-.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1 binary64)) (fma.f64 x x #s(literal -1 binary64))))
accuracy20.60124419056467
(/.f64 (-.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1 binary64)) (fma.f64 x x #s(literal -1 binary64)))
Samples
23.0ms256×0valid
Compiler

Compiled 43 to 12 computations (72.1% saved)

Precisions
Click to see histograms. Total time spent on operations: 16.0ms
ival-div: 8.0ms (50% of total)
ival-pow: 3.0ms (18.7% of total)
ival-mult: 2.0ms (12.5% of total)
ival-add: 1.0ms (6.2% of total)
ival-sub: 1.0ms (6.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)

series3.0ms (0.1%)

Memory
4.7MiB live, 4.7MiB allocated; 0ms collecting garbage
Counts
4 → 20
Calls
Call 1
Inputs
(/.f64 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 4 binary64)) #s(literal 1 binary64)) (fma.f64 x x #s(literal -1 binary64)))
(-.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1 binary64))
(pow.f64 x #s(literal 4 binary64))
Outputs
#s(approx (/ x (/ (- (pow x 4) 1) (+ (* x x) -1))) #s(hole binary64 x))
#s(approx (/ x (/ (- (pow x 4) 1) (+ (* x x) -1))) #s(hole binary64 (* x (+ 1 (* -1 (pow x 2))))))
#s(approx (/ x (/ (- (pow x 4) 1) (+ (* x x) -1))) #s(hole binary64 (* x (+ 1 (* (pow x 2) (- (pow x 2) 1))))))
#s(approx (/ x (/ (- (pow x 4) 1) (+ (* x x) -1))) #s(hole binary64 (* x (+ 1 (* (pow x 2) (- (* (pow x 2) (+ 1 (* -1 (pow x 2)))) 1))))))
#s(approx (/ (- (pow x 4) 1) (+ (* x x) -1)) #s(hole binary64 1))
#s(approx (/ (- (pow x 4) 1) (+ (* x x) -1)) #s(hole binary64 (+ 1 (pow x 2))))
#s(approx (- (pow x 4) 1) #s(hole binary64 -1))
#s(approx (- (pow x 4) 1) #s(hole binary64 (- (pow x 4) 1)))
#s(approx (pow x 4) #s(hole binary64 (pow x 4)))
#s(approx (/ x (/ (- (pow x 4) 1) (+ (* x x) -1))) #s(hole binary64 (/ 1 x)))
#s(approx (/ x (/ (- (pow x 4) 1) (+ (* x x) -1))) #s(hole binary64 (/ (- 1 (/ 1 (pow x 2))) x)))
#s(approx (/ x (/ (- (pow x 4) 1) (+ (* x x) -1))) #s(hole binary64 (/ (- (+ 1 (/ 1 (pow x 4))) (/ 1 (pow x 2))) x)))
#s(approx (/ x (/ (- (pow x 4) 1) (+ (* x x) -1))) #s(hole binary64 (/ (- (+ 1 (/ 1 (pow x 4))) (+ (/ 1 (pow x 2)) (/ 1 (pow x 6)))) x)))
#s(approx (/ (- (pow x 4) 1) (+ (* x x) -1)) #s(hole binary64 (pow x 2)))
#s(approx (/ (- (pow x 4) 1) (+ (* x x) -1)) #s(hole binary64 (* (pow x 2) (+ 1 (/ 1 (pow x 2))))))
#s(approx (- (pow x 4) 1) #s(hole binary64 (pow x 4)))
#s(approx (- (pow x 4) 1) #s(hole binary64 (* (pow x 4) (- 1 (/ 1 (pow x 4))))))
#s(approx (/ x (/ (- (pow x 4) 1) (+ (* x x) -1))) #s(hole binary64 (* -1 (/ (- (/ 1 (pow x 2)) 1) x))))
#s(approx (/ x (/ (- (pow x 4) 1) (+ (* x x) -1))) #s(hole binary64 (* -1 (/ (- (/ 1 (pow x 2)) (+ 1 (/ 1 (pow x 4)))) x))))
#s(approx (/ x (/ (- (pow x 4) 1) (+ (* x x) -1))) #s(hole binary64 (* -1 (/ (- (+ (/ 1 (pow x 2)) (/ 1 (pow x 6))) (+ 1 (/ 1 (pow x 4)))) x))))
Calls

3 calls:

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

simplify252.0ms (5.6%)

Memory
-18.9MiB live, 220.2MiB allocated; 38ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
072405
1169403
2517384
33576383
08379373
Stop Event
iter limit
node limit
Counts
20 → 20
Calls
Call 1
Inputs
#s(approx (/ x (/ (- (pow x 4) 1) (+ (* x x) -1))) #s(hole binary64 x))
#s(approx (/ x (/ (- (pow x 4) 1) (+ (* x x) -1))) #s(hole binary64 (* x (+ 1 (* -1 (pow x 2))))))
#s(approx (/ x (/ (- (pow x 4) 1) (+ (* x x) -1))) #s(hole binary64 (* x (+ 1 (* (pow x 2) (- (pow x 2) 1))))))
#s(approx (/ x (/ (- (pow x 4) 1) (+ (* x x) -1))) #s(hole binary64 (* x (+ 1 (* (pow x 2) (- (* (pow x 2) (+ 1 (* -1 (pow x 2)))) 1))))))
#s(approx (/ (- (pow x 4) 1) (+ (* x x) -1)) #s(hole binary64 1))
#s(approx (/ (- (pow x 4) 1) (+ (* x x) -1)) #s(hole binary64 (+ 1 (pow x 2))))
#s(approx (- (pow x 4) 1) #s(hole binary64 -1))
#s(approx (- (pow x 4) 1) #s(hole binary64 (- (pow x 4) 1)))
#s(approx (pow x 4) #s(hole binary64 (pow x 4)))
#s(approx (/ x (/ (- (pow x 4) 1) (+ (* x x) -1))) #s(hole binary64 (/ 1 x)))
#s(approx (/ x (/ (- (pow x 4) 1) (+ (* x x) -1))) #s(hole binary64 (/ (- 1 (/ 1 (pow x 2))) x)))
#s(approx (/ x (/ (- (pow x 4) 1) (+ (* x x) -1))) #s(hole binary64 (/ (- (+ 1 (/ 1 (pow x 4))) (/ 1 (pow x 2))) x)))
#s(approx (/ x (/ (- (pow x 4) 1) (+ (* x x) -1))) #s(hole binary64 (/ (- (+ 1 (/ 1 (pow x 4))) (+ (/ 1 (pow x 2)) (/ 1 (pow x 6)))) x)))
#s(approx (/ (- (pow x 4) 1) (+ (* x x) -1)) #s(hole binary64 (pow x 2)))
#s(approx (/ (- (pow x 4) 1) (+ (* x x) -1)) #s(hole binary64 (* (pow x 2) (+ 1 (/ 1 (pow x 2))))))
#s(approx (- (pow x 4) 1) #s(hole binary64 (pow x 4)))
#s(approx (- (pow x 4) 1) #s(hole binary64 (* (pow x 4) (- 1 (/ 1 (pow x 4))))))
#s(approx (/ x (/ (- (pow x 4) 1) (+ (* x x) -1))) #s(hole binary64 (* -1 (/ (- (/ 1 (pow x 2)) 1) x))))
#s(approx (/ x (/ (- (pow x 4) 1) (+ (* x x) -1))) #s(hole binary64 (* -1 (/ (- (/ 1 (pow x 2)) (+ 1 (/ 1 (pow x 4)))) x))))
#s(approx (/ x (/ (- (pow x 4) 1) (+ (* x x) -1))) #s(hole binary64 (* -1 (/ (- (+ (/ 1 (pow x 2)) (/ 1 (pow x 6))) (+ 1 (/ 1 (pow x 4)))) x))))
Outputs
#s(approx (/ x (/ (- (pow x 4) 1) (+ (* x x) -1))) #s(hole binary64 x))
#s(approx (/ x (/ (- (pow x 4) 1) (+ (* x x) -1))) x)
#s(approx (/ x (/ (- (pow x 4) 1) (+ (* x x) -1))) #s(hole binary64 (* x (+ 1 (* -1 (pow x 2))))))
#s(approx (/ x (/ (- (pow x 4) 1) (+ (* x x) -1))) (-.f64 x (pow.f64 x #s(literal 3 binary64))))
#s(approx (/ x (/ (- (pow x 4) 1) (+ (* x x) -1))) #s(hole binary64 (* x (+ 1 (* (pow x 2) (- (pow x 2) 1))))))
#s(approx (/ x (/ (- (pow x 4) 1) (+ (* x x) -1))) (fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 x x #s(literal -1 binary64)) x))
#s(approx (/ x (/ (- (pow x 4) 1) (+ (* x x) -1))) #s(hole binary64 (* x (+ 1 (* (pow x 2) (- (* (pow x 2) (+ 1 (* -1 (pow x 2)))) 1))))))
#s(approx (/ x (/ (- (pow x 4) 1) (+ (* x x) -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))
#s(approx (/ (- (pow x 4) 1) (+ (* x x) -1)) #s(hole binary64 1))
#s(approx (/ (- (pow x 4) 1) (+ (* x x) -1)) #s(literal 1 binary64))
#s(approx (/ (- (pow x 4) 1) (+ (* x x) -1)) #s(hole binary64 (+ 1 (pow x 2))))
#s(approx (/ (- (pow x 4) 1) (+ (* x x) -1)) (fma.f64 x x #s(literal 1 binary64)))
#s(approx (- (pow x 4) 1) #s(hole binary64 -1))
#s(approx (- (pow x 4) 1) #s(literal -1 binary64))
#s(approx (- (pow x 4) 1) #s(hole binary64 (- (pow x 4) 1)))
#s(approx (- (pow x 4) 1) (-.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1 binary64)))
#s(approx (pow x 4) #s(hole binary64 (pow x 4)))
#s(approx (pow x 4) (pow.f64 x #s(literal 4 binary64)))
#s(approx (/ x (/ (- (pow x 4) 1) (+ (* x x) -1))) #s(hole binary64 (/ 1 x)))
#s(approx (/ x (/ (- (pow x 4) 1) (+ (* x x) -1))) (/.f64 #s(literal 1 binary64) x))
#s(approx (/ x (/ (- (pow x 4) 1) (+ (* x x) -1))) #s(hole binary64 (/ (- 1 (/ 1 (pow x 2))) x)))
#s(approx (/ x (/ (- (pow x 4) 1) (+ (* x x) -1))) (/.f64 (-.f64 #s(literal 1 binary64) (/.f64 (/.f64 #s(literal 1 binary64) x) x)) x))
#s(approx (/ x (/ (- (pow x 4) 1) (+ (* x x) -1))) #s(hole binary64 (/ (- (+ 1 (/ 1 (pow x 4))) (/ 1 (pow x 2))) x)))
#s(approx (/ x (/ (- (pow x 4) 1) (+ (* x x) -1))) (/.f64 (-.f64 (-.f64 (/.f64 #s(literal 1 binary64) (pow.f64 x #s(literal 4 binary64))) #s(literal -1 binary64)) (/.f64 (/.f64 #s(literal 1 binary64) x) x)) x))
#s(approx (/ x (/ (- (pow x 4) 1) (+ (* x x) -1))) #s(hole binary64 (/ (- (+ 1 (/ 1 (pow x 4))) (+ (/ 1 (pow x 2)) (/ 1 (pow x 6)))) x)))
#s(approx (/ x (/ (- (pow x 4) 1) (+ (* x x) -1))) (/.f64 (-.f64 (-.f64 (-.f64 (/.f64 #s(literal 1 binary64) (pow.f64 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))
#s(approx (/ (- (pow x 4) 1) (+ (* x x) -1)) #s(hole binary64 (pow x 2)))
#s(approx (/ (- (pow x 4) 1) (+ (* x x) -1)) (*.f64 x x))
#s(approx (/ (- (pow x 4) 1) (+ (* x x) -1)) #s(hole binary64 (* (pow x 2) (+ 1 (/ 1 (pow x 2))))))
#s(approx (/ (- (pow x 4) 1) (+ (* x x) -1)) (fma.f64 x x #s(literal 1 binary64)))
#s(approx (- (pow x 4) 1) #s(hole binary64 (pow x 4)))
#s(approx (- (pow x 4) 1) (pow.f64 x #s(literal 4 binary64)))
#s(approx (- (pow x 4) 1) #s(hole binary64 (* (pow x 4) (- 1 (/ 1 (pow x 4))))))
#s(approx (- (pow x 4) 1) (*.f64 (-.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (pow.f64 x #s(literal 4 binary64)))) (pow.f64 x #s(literal 4 binary64))))
#s(approx (/ x (/ (- (pow x 4) 1) (+ (* x x) -1))) #s(hole binary64 (* -1 (/ (- (/ 1 (pow x 2)) 1) x))))
#s(approx (/ x (/ (- (pow x 4) 1) (+ (* x x) -1))) (-.f64 (/.f64 #s(literal -1 binary64) (pow.f64 x #s(literal 3 binary64))) (/.f64 #s(literal -1 binary64) x)))
#s(approx (/ x (/ (- (pow x 4) 1) (+ (* x x) -1))) #s(hole binary64 (* -1 (/ (- (/ 1 (pow x 2)) (+ 1 (/ 1 (pow x 4)))) x))))
#s(approx (/ x (/ (- (pow x 4) 1) (+ (* x x) -1))) (/.f64 (-.f64 (-.f64 (/.f64 (/.f64 #s(literal 1 binary64) x) x) #s(literal 1 binary64)) (/.f64 #s(literal 1 binary64) (pow.f64 x #s(literal 4 binary64)))) (neg.f64 x)))
#s(approx (/ x (/ (- (pow x 4) 1) (+ (* x x) -1))) #s(hole binary64 (* -1 (/ (- (+ (/ 1 (pow x 2)) (/ 1 (pow x 6))) (+ 1 (/ 1 (pow x 4)))) x))))
#s(approx (/ x (/ (- (pow x 4) 1) (+ (* x x) -1))) (/.f64 (-.f64 (+.f64 (/.f64 #s(literal 1 binary64) (pow.f64 x #s(literal 6 binary64))) (/.f64 (/.f64 #s(literal 1 binary64) x) x)) (-.f64 (/.f64 #s(literal 1 binary64) (pow.f64 x #s(literal 4 binary64))) #s(literal -1 binary64))) (neg.f64 x)))

rewrite49.0ms (1.1%)

Memory
21.7MiB live, 65.3MiB allocated; 9ms collecting garbage
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0930
01530
16920
052320
Stop Event
iter limit
iter limit
node limit
iter limit
Counts
4 → 95
Calls
Call 1
Inputs
(/.f64 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 4 binary64)) #s(literal 1 binary64)) (fma.f64 x x #s(literal -1 binary64)))
(-.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1 binary64))
(pow.f64 x #s(literal 4 binary64))
Outputs
(*.f64 (/.f64 x (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 (*.f64 (/.f64 x (-.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1 binary64))) (-.f64 x #s(literal -1 binary64))) (-.f64 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 (fma.f64 x x #s(literal -1 binary64)) (/.f64 x (-.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1 binary64))))
(/.f64 (*.f64 x (fma.f64 x x #s(literal -1 binary64))) (-.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1 binary64)))
(/.f64 (*.f64 (/.f64 x (-.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1 binary64))) (+.f64 (pow.f64 x #s(literal 6 binary64)) #s(literal -1 binary64))) (fma.f64 #s(literal -1 binary64) (-.f64 #s(literal -1 binary64) (*.f64 x x)) (pow.f64 x #s(literal 4 binary64))))
(/.f64 (*.f64 (/.f64 x (-.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1 binary64))) (-.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1 binary64))) (-.f64 (*.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)) (fma.f64 #s(literal -1 binary64) (-.f64 #s(literal -1 binary64) (*.f64 x x)) (pow.f64 x #s(literal 4 binary64)))))
(/.f64 (*.f64 x (-.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1 binary64))) (*.f64 (-.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1 binary64)) (-.f64 (*.f64 x x) #s(literal -1 binary64))))
(/.f64 (neg.f64 (neg.f64 x)) (-.f64 (*.f64 x x) #s(literal -1 binary64)))
(/.f64 (neg.f64 x) (neg.f64 (-.f64 (*.f64 x x) #s(literal -1 binary64))))
(/.f64 x (-.f64 (*.f64 x x) #s(literal -1 binary64)))
(neg.f64 (/.f64 (neg.f64 x) (-.f64 (*.f64 x x) #s(literal -1 binary64))))
(neg.f64 (/.f64 x (neg.f64 (-.f64 (*.f64 x x) #s(literal -1 binary64)))))
(fma.f64 (/.f64 x (-.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1 binary64))) (*.f64 x x) (*.f64 (/.f64 x (-.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1 binary64))) #s(literal -1 binary64)))
(fma.f64 (/.f64 x (-.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1 binary64))) #s(literal -1 binary64) (*.f64 (/.f64 x (-.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1 binary64))) (*.f64 x x)))
(fma.f64 (*.f64 x x) (/.f64 x (-.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1 binary64))) (*.f64 #s(literal -1 binary64) (/.f64 x (-.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1 binary64)))))
(fma.f64 #s(literal -1 binary64) (/.f64 x (-.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1 binary64))) (*.f64 (*.f64 x x) (/.f64 x (-.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1 binary64)))))
(+.f64 (*.f64 (*.f64 x x) (/.f64 x (-.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1 binary64)))) (*.f64 #s(literal -1 binary64) (/.f64 x (-.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1 binary64)))))
(+.f64 (*.f64 #s(literal -1 binary64) (/.f64 x (-.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1 binary64)))) (*.f64 (*.f64 x x) (/.f64 x (-.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1 binary64)))))
(+.f64 (*.f64 (/.f64 x (-.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1 binary64))) (*.f64 x x)) (*.f64 (/.f64 x (-.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1 binary64))) #s(literal -1 binary64)))
(+.f64 (*.f64 (/.f64 x (-.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1 binary64))) #s(literal -1 binary64)) (*.f64 (/.f64 x (-.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1 binary64))) (*.f64 x x)))
(*.f64 (/.f64 (-.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1 binary64)) (+.f64 (pow.f64 x #s(literal 6 binary64)) #s(literal -1 binary64))) (fma.f64 #s(literal -1 binary64) (-.f64 #s(literal -1 binary64) (*.f64 x x)) (pow.f64 x #s(literal 4 binary64))))
(*.f64 (/.f64 (-.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1 binary64)) (-.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1 binary64))) (-.f64 (*.f64 x x) #s(literal -1 binary64)))
(/.f64 (/.f64 (-.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1 binary64)) (-.f64 x #s(literal -1 binary64))) (-.f64 x #s(literal 1 binary64)))
(/.f64 (-.f64 (*.f64 (/.f64 (pow.f64 x #s(literal 4 binary64)) (fma.f64 x x #s(literal -1 binary64))) (/.f64 (pow.f64 x #s(literal 4 binary64)) (fma.f64 x x #s(literal -1 binary64)))) (*.f64 (pow.f64 (fma.f64 x x #s(literal -1 binary64)) #s(literal -1 binary64)) (pow.f64 (fma.f64 x x #s(literal -1 binary64)) #s(literal -1 binary64)))) (+.f64 (/.f64 (pow.f64 x #s(literal 4 binary64)) (fma.f64 x x #s(literal -1 binary64))) (pow.f64 (fma.f64 x x #s(literal -1 binary64)) #s(literal -1 binary64))))
(/.f64 (-.f64 (pow.f64 (/.f64 (pow.f64 x #s(literal 4 binary64)) (fma.f64 x x #s(literal -1 binary64))) #s(literal 3 binary64)) (pow.f64 (pow.f64 (fma.f64 x x #s(literal -1 binary64)) #s(literal -1 binary64)) #s(literal 3 binary64))) (fma.f64 (/.f64 (pow.f64 x #s(literal 4 binary64)) (fma.f64 x x #s(literal -1 binary64))) (/.f64 (pow.f64 x #s(literal 4 binary64)) (fma.f64 x x #s(literal -1 binary64))) (fma.f64 (pow.f64 (fma.f64 x x #s(literal -1 binary64)) #s(literal -1 binary64)) (pow.f64 (fma.f64 x x #s(literal -1 binary64)) #s(literal -1 binary64)) (*.f64 (/.f64 (pow.f64 x #s(literal 4 binary64)) (fma.f64 x x #s(literal -1 binary64))) (pow.f64 (fma.f64 x x #s(literal -1 binary64)) #s(literal -1 binary64))))))
(/.f64 (-.f64 (pow.f64 x #s(literal 6 binary64)) #s(literal -1 binary64)) (+.f64 (pow.f64 x #s(literal 4 binary64)) (+.f64 #s(literal 1 binary64) (*.f64 (*.f64 x x) #s(literal -1 binary64)))))
(/.f64 (neg.f64 (neg.f64 (-.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1 binary64)))) (neg.f64 (neg.f64 (fma.f64 x x #s(literal -1 binary64)))))
(/.f64 (-.f64 (*.f64 (pow.f64 x #s(literal 4 binary64)) (fma.f64 x x #s(literal -1 binary64))) (*.f64 (fma.f64 x x #s(literal -1 binary64)) #s(literal 1 binary64))) (*.f64 (fma.f64 x x #s(literal -1 binary64)) (fma.f64 x x #s(literal -1 binary64))))
(/.f64 (-.f64 (pow.f64 x #s(literal 8 binary64)) #s(literal 1 binary64)) (*.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 12 binary64)) #s(literal 1 binary64)) (*.f64 (+.f64 (+.f64 (pow.f64 x #s(literal 8 binary64)) #s(literal 1 binary64)) (pow.f64 x #s(literal 4 binary64))) (fma.f64 x x #s(literal -1 binary64))))
(/.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 (-.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1 binary64)) (fma.f64 x x #s(literal -1 binary64)))
(neg.f64 (neg.f64 (-.f64 (*.f64 x x) #s(literal -1 binary64))))
(-.f64 (/.f64 (pow.f64 x #s(literal 4 binary64)) (fma.f64 x x #s(literal -1 binary64))) (pow.f64 (fma.f64 x x #s(literal -1 binary64)) #s(literal -1 binary64)))
(-.f64 (*.f64 x x) #s(literal -1 binary64))
(*.f64 (fma.f64 x x #s(literal 1 binary64)) (fma.f64 x x #s(literal -1 binary64)))
(*.f64 (fma.f64 x x #s(literal -1 binary64)) (-.f64 (*.f64 x x) #s(literal -1 binary64)))
(/.f64 (neg.f64 (-.f64 (pow.f64 x #s(literal 8 binary64)) #s(literal 1 binary64))) (neg.f64 (-.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1 binary64))))
(/.f64 (neg.f64 (-.f64 (pow.f64 x #s(literal 12 binary64)) #s(literal 1 binary64))) (neg.f64 (+.f64 (+.f64 (pow.f64 x #s(literal 8 binary64)) #s(literal 1 binary64)) (pow.f64 x #s(literal 4 binary64)))))
(/.f64 (-.f64 (pow.f64 x #s(literal 8 binary64)) #s(literal 1 binary64)) (-.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1 binary64)))
(/.f64 (-.f64 (pow.f64 x #s(literal 12 binary64)) #s(literal 1 binary64)) (+.f64 (+.f64 (pow.f64 x #s(literal 8 binary64)) #s(literal 1 binary64)) (pow.f64 x #s(literal 4 binary64))))
(fma.f64 (*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1 binary64)) #s(literal -1 binary64) #s(literal -1 binary64))
(fma.f64 (*.f64 (*.f64 x x) (neg.f64 x)) (neg.f64 x) #s(literal -1 binary64))
(fma.f64 (*.f64 (*.f64 x x) (fabs.f64 x)) (fabs.f64 x) #s(literal -1 binary64))
(fma.f64 (*.f64 (*.f64 x x) x) x #s(literal -1 binary64))
(fma.f64 (*.f64 (*.f64 x x) #s(literal 1 binary64)) (*.f64 (*.f64 x x) #s(literal 1 binary64)) #s(literal -1 binary64))
(fma.f64 (*.f64 (neg.f64 x) (fabs.f64 x)) (*.f64 (neg.f64 x) (fabs.f64 x)) #s(literal -1 binary64))
(fma.f64 (*.f64 (neg.f64 x) x) (*.f64 (neg.f64 x) x) #s(literal -1 binary64))
(fma.f64 (*.f64 (fabs.f64 x) (neg.f64 x)) (*.f64 (fabs.f64 x) (neg.f64 x)) #s(literal -1 binary64))
(fma.f64 (*.f64 (fabs.f64 x) x) (*.f64 (fabs.f64 x) x) #s(literal -1 binary64))
(fma.f64 (*.f64 x (neg.f64 x)) (*.f64 x (neg.f64 x)) #s(literal -1 binary64))
(fma.f64 (*.f64 x (fabs.f64 x)) (*.f64 x (fabs.f64 x)) #s(literal -1 binary64))
(fma.f64 (neg.f64 (*.f64 x x)) (neg.f64 (*.f64 x x)) #s(literal -1 binary64))
(fma.f64 (*.f64 (*.f64 x x) #s(literal -1 binary64)) (*.f64 (*.f64 x x) #s(literal -1 binary64)) #s(literal -1 binary64))
(fma.f64 (neg.f64 x) (*.f64 (neg.f64 x) (*.f64 x x)) #s(literal -1 binary64))
(fma.f64 (fabs.f64 x) (*.f64 (fabs.f64 x) (*.f64 x x)) #s(literal -1 binary64))
(fma.f64 (*.f64 x x) (*.f64 (*.f64 x x) #s(literal 1 binary64)) #s(literal -1 binary64))
(fma.f64 (*.f64 x x) (*.f64 x x) #s(literal -1 binary64))
(fma.f64 #s(literal 1 binary64) (pow.f64 x #s(literal 4 binary64)) #s(literal -1 binary64))
(fma.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1 binary64) #s(literal -1 binary64))
(fma.f64 x (*.f64 x (*.f64 x x)) #s(literal -1 binary64))
(expm1.f64 (fma.f64 (log.f64 x) #s(literal 4 binary64) #s(literal 0 binary64)))
(expm1.f64 (*.f64 (log.f64 x) #s(literal 4 binary64)))
(-.f64 (/.f64 (pow.f64 x #s(literal 8 binary64)) (-.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1 binary64))) (/.f64 #s(literal 1 binary64) (-.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1 binary64))))
(-.f64 (/.f64 (pow.f64 x #s(literal 12 binary64)) (+.f64 (+.f64 (pow.f64 x #s(literal 8 binary64)) #s(literal 1 binary64)) (pow.f64 x #s(literal 4 binary64)))) (/.f64 #s(literal 1 binary64) (+.f64 (+.f64 (pow.f64 x #s(literal 8 binary64)) #s(literal 1 binary64)) (pow.f64 x #s(literal 4 binary64)))))
(-.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1 binary64))
(+.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1 binary64))
(*.f64 (*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1 binary64)) #s(literal -1 binary64))
(*.f64 (*.f64 (*.f64 x x) (neg.f64 x)) (neg.f64 x))
(*.f64 (*.f64 (*.f64 x x) (fabs.f64 x)) (fabs.f64 x))
(*.f64 (*.f64 (*.f64 x x) x) x)
(*.f64 (*.f64 (*.f64 x x) #s(literal 1 binary64)) (*.f64 (*.f64 x x) #s(literal 1 binary64)))
(*.f64 (*.f64 (neg.f64 x) (fabs.f64 x)) (*.f64 (neg.f64 x) (fabs.f64 x)))
(*.f64 (*.f64 (neg.f64 x) x) (*.f64 (neg.f64 x) x))
(*.f64 (*.f64 (fabs.f64 x) (neg.f64 x)) (*.f64 (fabs.f64 x) (neg.f64 x)))
(*.f64 (*.f64 (fabs.f64 x) x) (*.f64 (fabs.f64 x) x))
(*.f64 (*.f64 x (neg.f64 x)) (*.f64 x (neg.f64 x)))
(*.f64 (*.f64 x (fabs.f64 x)) (*.f64 x (fabs.f64 x)))
(*.f64 (neg.f64 (*.f64 x x)) (neg.f64 (*.f64 x x)))
(*.f64 (*.f64 (*.f64 x x) #s(literal -1 binary64)) (*.f64 (*.f64 x x) #s(literal -1 binary64)))
(*.f64 (neg.f64 x) (*.f64 (neg.f64 x) (*.f64 x x)))
(*.f64 (fabs.f64 x) (*.f64 (fabs.f64 x) (*.f64 x x)))
(*.f64 (*.f64 x x) (*.f64 (*.f64 x x) #s(literal 1 binary64)))
(*.f64 (*.f64 x x) (*.f64 x x))
(*.f64 #s(literal 1 binary64) (pow.f64 x #s(literal 4 binary64)))
(*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1 binary64))
(*.f64 x (*.f64 x (*.f64 x x)))
(pow.f64 (exp.f64 (log.f64 x)) #s(literal 4 binary64))
(pow.f64 (*.f64 x x) #s(literal 2 binary64))
(pow.f64 x #s(literal 4 binary64))
(exp.f64 (fma.f64 (log.f64 x) #s(literal 4 binary64) #s(literal 0 binary64)))
(exp.f64 (*.f64 (log.f64 x) #s(literal 4 binary64)))
(+.f64 (cosh.f64 (*.f64 (log.f64 x) #s(literal 4 binary64))) (sinh.f64 (*.f64 (log.f64 x) #s(literal 4 binary64))))

eval13.0ms (0.3%)

Memory
-20.6MiB live, 26.3MiB allocated; 3ms collecting garbage
Compiler

Compiled 2 103 to 419 computations (80.1% saved)

prune3.0ms (0.1%)

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

6 alts after pruning (1 fresh and 5 done)

PrunedKeptTotal
New1131114
Fresh000
Picked101
Done055
Total1146120
Accuracy
100.0%
Counts
120 → 6
Alt Table
Click to see full alt table
StatusAccuracyProgram
61.8%
(/.f64 (*.f64 x (fma.f64 x x #s(literal -1 binary64))) (-.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1 binary64)))
75.1%
(/.f64 x (fma.f64 x x #s(literal 1 binary64)))
27.9%
(/.f64 x #s(approx (+ (* x x) 1) (*.f64 x x)))
52.0%
#s(approx (/ x (+ (* x x) 1)) (/.f64 (-.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (*.f64 x x))) x))
52.8%
#s(approx (/ x (+ (* x x) 1)) (/.f64 #s(literal 1 binary64) x))
50.3%
#s(approx (/ x (+ (* x x) 1)) x)
Compiler

Compiled 66 to 45 computations (31.8% saved)

simplify209.0ms (4.7%)

Memory
-14.0MiB live, 129.6MiB allocated; 47ms collecting garbage
Localize:

Found 4 expressions of interest:

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

Useful iterations: 2 (0.0ms)

IterNodesCost
0934
01534
13434
210532
332432
4120832
5533632
0854932
Stop Event
iter limit
node limit
iter limit
Calls
Call 1
Inputs
(/.f64 (*.f64 x (fma.f64 x x #s(literal -1 binary64))) (-.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1 binary64)))
(*.f64 x (fma.f64 x x #s(literal -1 binary64)))
x
(fma.f64 x x #s(literal -1 binary64))
#s(literal -1 binary64)
(-.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1 binary64))
(pow.f64 x #s(literal 4 binary64))
#s(literal 4 binary64)
#s(literal 1 binary64)
Outputs
(/.f64 (*.f64 x (fma.f64 x x #s(literal -1 binary64))) (-.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1 binary64)))
(/.f64 (-.f64 (pow.f64 x #s(literal 3 binary64)) x) (-.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1 binary64)))
(*.f64 x (fma.f64 x x #s(literal -1 binary64)))
(-.f64 (pow.f64 x #s(literal 3 binary64)) x)
x
(fma.f64 x x #s(literal -1 binary64))
#s(literal -1 binary64)
(-.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1 binary64))
(pow.f64 x #s(literal 4 binary64))
#s(literal 4 binary64)
#s(literal 1 binary64)

localize25.0ms (0.6%)

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

Found 4 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(pow.f64 x #s(literal 4 binary64))
accuracy0.0
(-.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1 binary64))
accuracy0.05078125
(*.f64 x (fma.f64 x x #s(literal -1 binary64)))
accuracy24.004971832882404
(/.f64 (*.f64 x (fma.f64 x x #s(literal -1 binary64))) (-.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1 binary64)))
Samples
18.0ms256×0valid
Compiler

Compiled 39 to 12 computations (69.2% saved)

Precisions
Click to see histograms. Total time spent on operations: 11.0ms
ival-mult: 4.0ms (36.3% of total)
ival-pow: 3.0ms (27.2% of total)
ival-div: 2.0ms (18.1% of total)
ival-add: 1.0ms (9.1% of total)
ival-sub: 1.0ms (9.1% 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)

series4.0ms (0.1%)

Memory
6.7MiB live, 6.8MiB allocated; 0ms collecting garbage
Counts
5 → 25
Calls
Call 1
Inputs
(*.f64 x (fma.f64 x x #s(literal -1 binary64)))
(/.f64 (*.f64 x (fma.f64 x x #s(literal -1 binary64))) (-.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1 binary64)))
(fma.f64 x x #s(literal -1 binary64))
(-.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1 binary64))
(pow.f64 x #s(literal 4 binary64))
Outputs
#s(approx (* x (+ (* x x) -1)) #s(hole binary64 (* -1 x)))
#s(approx (* x (+ (* x x) -1)) #s(hole binary64 (* x (- (pow x 2) 1))))
#s(approx (/ (* x (+ (* x x) -1)) (- (pow x 4) 1)) #s(hole binary64 x))
#s(approx (/ (* x (+ (* x x) -1)) (- (pow x 4) 1)) #s(hole binary64 (* x (+ 1 (* -1 (pow x 2))))))
#s(approx (/ (* x (+ (* x x) -1)) (- (pow x 4) 1)) #s(hole binary64 (* x (+ 1 (* (pow x 2) (- (pow x 2) 1))))))
#s(approx (/ (* x (+ (* x x) -1)) (- (pow x 4) 1)) #s(hole binary64 (* x (+ 1 (* (pow x 2) (- (* (pow x 2) (+ 1 (* -1 (pow x 2)))) 1))))))
#s(approx (+ (* x x) -1) #s(hole binary64 -1))
#s(approx (+ (* x x) -1) #s(hole binary64 (- (pow x 2) 1)))
#s(approx (- (pow x 4) 1) #s(hole binary64 -1))
#s(approx (- (pow x 4) 1) #s(hole binary64 (- (pow x 4) 1)))
#s(approx (pow x 4) #s(hole binary64 (pow x 4)))
#s(approx (* x (+ (* x x) -1)) #s(hole binary64 (pow x 3)))
#s(approx (* x (+ (* x x) -1)) #s(hole binary64 (* (pow x 3) (- 1 (/ 1 (pow x 2))))))
#s(approx (/ (* x (+ (* x x) -1)) (- (pow x 4) 1)) #s(hole binary64 (/ 1 x)))
#s(approx (/ (* x (+ (* x x) -1)) (- (pow x 4) 1)) #s(hole binary64 (/ (- 1 (/ 1 (pow x 2))) x)))
#s(approx (/ (* x (+ (* x x) -1)) (- (pow x 4) 1)) #s(hole binary64 (/ (- (+ 1 (/ 1 (pow x 4))) (/ 1 (pow x 2))) x)))
#s(approx (/ (* x (+ (* x x) -1)) (- (pow x 4) 1)) #s(hole binary64 (/ (- (+ 1 (/ 1 (pow x 4))) (+ (/ 1 (pow x 2)) (/ 1 (pow x 6)))) x)))
#s(approx (+ (* x x) -1) #s(hole binary64 (pow x 2)))
#s(approx (+ (* x x) -1) #s(hole binary64 (* (pow x 2) (- 1 (/ 1 (pow x 2))))))
#s(approx (- (pow x 4) 1) #s(hole binary64 (pow x 4)))
#s(approx (- (pow x 4) 1) #s(hole binary64 (* (pow x 4) (- 1 (/ 1 (pow x 4))))))
#s(approx (* x (+ (* x x) -1)) #s(hole binary64 (* -1 (* (pow x 3) (- (/ 1 (pow x 2)) 1)))))
#s(approx (/ (* x (+ (* x x) -1)) (- (pow x 4) 1)) #s(hole binary64 (* -1 (/ (- (/ 1 (pow x 2)) 1) x))))
#s(approx (/ (* x (+ (* x x) -1)) (- (pow x 4) 1)) #s(hole binary64 (* -1 (/ (- (/ 1 (pow x 2)) (+ 1 (/ 1 (pow x 4)))) x))))
#s(approx (/ (* x (+ (* x x) -1)) (- (pow x 4) 1)) #s(hole binary64 (* -1 (/ (- (+ (/ 1 (pow x 2)) (/ 1 (pow x 6))) (+ 1 (/ 1 (pow x 4)))) x))))
Calls

3 calls:

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

simplify115.0ms (2.6%)

Memory
18.5MiB live, 104.8MiB allocated; 14ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
082442
1185414
2518414
32264414
47884414
08021405
Stop Event
iter limit
node limit
Counts
25 → 25
Calls
Call 1
Inputs
#s(approx (* x (+ (* x x) -1)) #s(hole binary64 (* -1 x)))
#s(approx (* x (+ (* x x) -1)) #s(hole binary64 (* x (- (pow x 2) 1))))
#s(approx (/ (* x (+ (* x x) -1)) (- (pow x 4) 1)) #s(hole binary64 x))
#s(approx (/ (* x (+ (* x x) -1)) (- (pow x 4) 1)) #s(hole binary64 (* x (+ 1 (* -1 (pow x 2))))))
#s(approx (/ (* x (+ (* x x) -1)) (- (pow x 4) 1)) #s(hole binary64 (* x (+ 1 (* (pow x 2) (- (pow x 2) 1))))))
#s(approx (/ (* x (+ (* x x) -1)) (- (pow x 4) 1)) #s(hole binary64 (* x (+ 1 (* (pow x 2) (- (* (pow x 2) (+ 1 (* -1 (pow x 2)))) 1))))))
#s(approx (+ (* x x) -1) #s(hole binary64 -1))
#s(approx (+ (* x x) -1) #s(hole binary64 (- (pow x 2) 1)))
#s(approx (- (pow x 4) 1) #s(hole binary64 -1))
#s(approx (- (pow x 4) 1) #s(hole binary64 (- (pow x 4) 1)))
#s(approx (pow x 4) #s(hole binary64 (pow x 4)))
#s(approx (* x (+ (* x x) -1)) #s(hole binary64 (pow x 3)))
#s(approx (* x (+ (* x x) -1)) #s(hole binary64 (* (pow x 3) (- 1 (/ 1 (pow x 2))))))
#s(approx (/ (* x (+ (* x x) -1)) (- (pow x 4) 1)) #s(hole binary64 (/ 1 x)))
#s(approx (/ (* x (+ (* x x) -1)) (- (pow x 4) 1)) #s(hole binary64 (/ (- 1 (/ 1 (pow x 2))) x)))
#s(approx (/ (* x (+ (* x x) -1)) (- (pow x 4) 1)) #s(hole binary64 (/ (- (+ 1 (/ 1 (pow x 4))) (/ 1 (pow x 2))) x)))
#s(approx (/ (* x (+ (* x x) -1)) (- (pow x 4) 1)) #s(hole binary64 (/ (- (+ 1 (/ 1 (pow x 4))) (+ (/ 1 (pow x 2)) (/ 1 (pow x 6)))) x)))
#s(approx (+ (* x x) -1) #s(hole binary64 (pow x 2)))
#s(approx (+ (* x x) -1) #s(hole binary64 (* (pow x 2) (- 1 (/ 1 (pow x 2))))))
#s(approx (- (pow x 4) 1) #s(hole binary64 (pow x 4)))
#s(approx (- (pow x 4) 1) #s(hole binary64 (* (pow x 4) (- 1 (/ 1 (pow x 4))))))
#s(approx (* x (+ (* x x) -1)) #s(hole binary64 (* -1 (* (pow x 3) (- (/ 1 (pow x 2)) 1)))))
#s(approx (/ (* x (+ (* x x) -1)) (- (pow x 4) 1)) #s(hole binary64 (* -1 (/ (- (/ 1 (pow x 2)) 1) x))))
#s(approx (/ (* x (+ (* x x) -1)) (- (pow x 4) 1)) #s(hole binary64 (* -1 (/ (- (/ 1 (pow x 2)) (+ 1 (/ 1 (pow x 4)))) x))))
#s(approx (/ (* x (+ (* x x) -1)) (- (pow x 4) 1)) #s(hole binary64 (* -1 (/ (- (+ (/ 1 (pow x 2)) (/ 1 (pow x 6))) (+ 1 (/ 1 (pow x 4)))) x))))
Outputs
#s(approx (* x (+ (* x x) -1)) #s(hole binary64 (* -1 x)))
#s(approx (* x (+ (* x x) -1)) (neg.f64 x))
#s(approx (* x (+ (* x x) -1)) #s(hole binary64 (* x (- (pow x 2) 1))))
#s(approx (* x (+ (* x x) -1)) (-.f64 (pow.f64 x #s(literal 3 binary64)) x))
#s(approx (/ (* x (+ (* x x) -1)) (- (pow x 4) 1)) #s(hole binary64 x))
#s(approx (/ (* x (+ (* x x) -1)) (- (pow x 4) 1)) x)
#s(approx (/ (* x (+ (* x x) -1)) (- (pow x 4) 1)) #s(hole binary64 (* x (+ 1 (* -1 (pow x 2))))))
#s(approx (/ (* x (+ (* x x) -1)) (- (pow x 4) 1)) (-.f64 x (pow.f64 x #s(literal 3 binary64))))
#s(approx (/ (* x (+ (* x x) -1)) (- (pow x 4) 1)) #s(hole binary64 (* x (+ 1 (* (pow x 2) (- (pow x 2) 1))))))
#s(approx (/ (* x (+ (* x x) -1)) (- (pow x 4) 1)) (fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 x x #s(literal -1 binary64)) x))
#s(approx (/ (* x (+ (* x x) -1)) (- (pow x 4) 1)) #s(hole binary64 (* x (+ 1 (* (pow x 2) (- (* (pow x 2) (+ 1 (* -1 (pow x 2)))) 1))))))
#s(approx (/ (* x (+ (* x x) -1)) (- (pow x 4) 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))
#s(approx (+ (* x x) -1) #s(hole binary64 -1))
#s(approx (+ (* x x) -1) #s(literal -1 binary64))
#s(approx (+ (* x x) -1) #s(hole binary64 (- (pow x 2) 1)))
#s(approx (+ (* x x) -1) (fma.f64 x x #s(literal -1 binary64)))
#s(approx (- (pow x 4) 1) #s(hole binary64 -1))
#s(approx (- (pow x 4) 1) #s(literal -1 binary64))
#s(approx (- (pow x 4) 1) #s(hole binary64 (- (pow x 4) 1)))
#s(approx (- (pow x 4) 1) (-.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1 binary64)))
#s(approx (pow x 4) #s(hole binary64 (pow x 4)))
#s(approx (pow x 4) (pow.f64 x #s(literal 4 binary64)))
#s(approx (* x (+ (* x x) -1)) #s(hole binary64 (pow x 3)))
#s(approx (* x (+ (* x x) -1)) (pow.f64 x #s(literal 3 binary64)))
#s(approx (* x (+ (* x x) -1)) #s(hole binary64 (* (pow x 3) (- 1 (/ 1 (pow x 2))))))
#s(approx (* x (+ (* x x) -1)) (*.f64 (-.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (*.f64 x x))) (pow.f64 x #s(literal 3 binary64))))
#s(approx (/ (* x (+ (* x x) -1)) (- (pow x 4) 1)) #s(hole binary64 (/ 1 x)))
#s(approx (/ (* x (+ (* x x) -1)) (- (pow x 4) 1)) (/.f64 #s(literal 1 binary64) x))
#s(approx (/ (* x (+ (* x x) -1)) (- (pow x 4) 1)) #s(hole binary64 (/ (- 1 (/ 1 (pow x 2))) x)))
#s(approx (/ (* x (+ (* x x) -1)) (- (pow x 4) 1)) (/.f64 (-.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (*.f64 x x))) x))
#s(approx (/ (* x (+ (* x x) -1)) (- (pow x 4) 1)) #s(hole binary64 (/ (- (+ 1 (/ 1 (pow x 4))) (/ 1 (pow x 2))) x)))
#s(approx (/ (* x (+ (* x x) -1)) (- (pow x 4) 1)) (/.f64 (-.f64 (-.f64 (/.f64 #s(literal 1 binary64) (pow.f64 x #s(literal 4 binary64))) #s(literal -1 binary64)) (/.f64 #s(literal 1 binary64) (*.f64 x x))) x))
#s(approx (/ (* x (+ (* x x) -1)) (- (pow x 4) 1)) #s(hole binary64 (/ (- (+ 1 (/ 1 (pow x 4))) (+ (/ 1 (pow x 2)) (/ 1 (pow x 6)))) x)))
#s(approx (/ (* x (+ (* x x) -1)) (- (pow x 4) 1)) (/.f64 (-.f64 (-.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (pow.f64 x #s(literal 6 binary64)))) (-.f64 (/.f64 #s(literal 1 binary64) (*.f64 x x)) (/.f64 #s(literal 1 binary64) (pow.f64 x #s(literal 4 binary64))))) x))
#s(approx (+ (* x x) -1) #s(hole binary64 (pow x 2)))
#s(approx (+ (* x x) -1) (*.f64 x x))
#s(approx (+ (* x x) -1) #s(hole binary64 (* (pow x 2) (- 1 (/ 1 (pow x 2))))))
#s(approx (+ (* x x) -1) (*.f64 (*.f64 (-.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (*.f64 x x))) x) x))
#s(approx (- (pow x 4) 1) #s(hole binary64 (pow x 4)))
#s(approx (- (pow x 4) 1) (pow.f64 x #s(literal 4 binary64)))
#s(approx (- (pow x 4) 1) #s(hole binary64 (* (pow x 4) (- 1 (/ 1 (pow x 4))))))
#s(approx (- (pow x 4) 1) (*.f64 (-.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (pow.f64 x #s(literal 4 binary64)))) (pow.f64 x #s(literal 4 binary64))))
#s(approx (* x (+ (* x x) -1)) #s(hole binary64 (* -1 (* (pow x 3) (- (/ 1 (pow x 2)) 1)))))
#s(approx (* x (+ (* x x) -1)) (*.f64 (-.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (*.f64 x x))) (pow.f64 x #s(literal 3 binary64))))
#s(approx (/ (* x (+ (* x x) -1)) (- (pow x 4) 1)) #s(hole binary64 (* -1 (/ (- (/ 1 (pow x 2)) 1) x))))
#s(approx (/ (* x (+ (* x x) -1)) (- (pow x 4) 1)) (/.f64 (-.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (*.f64 x x))) x))
#s(approx (/ (* x (+ (* x x) -1)) (- (pow x 4) 1)) #s(hole binary64 (* -1 (/ (- (/ 1 (pow x 2)) (+ 1 (/ 1 (pow x 4)))) x))))
#s(approx (/ (* x (+ (* x x) -1)) (- (pow x 4) 1)) (/.f64 (-.f64 (-.f64 (/.f64 #s(literal 1 binary64) (pow.f64 x #s(literal 4 binary64))) #s(literal -1 binary64)) (/.f64 #s(literal 1 binary64) (*.f64 x x))) x))
#s(approx (/ (* x (+ (* x x) -1)) (- (pow x 4) 1)) #s(hole binary64 (* -1 (/ (- (+ (/ 1 (pow x 2)) (/ 1 (pow x 6))) (+ 1 (/ 1 (pow x 4)))) x))))
#s(approx (/ (* x (+ (* x x) -1)) (- (pow x 4) 1)) (/.f64 (-.f64 (-.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (pow.f64 x #s(literal 6 binary64)))) (-.f64 (/.f64 #s(literal 1 binary64) (*.f64 x x)) (/.f64 #s(literal 1 binary64) (pow.f64 x #s(literal 4 binary64))))) x))

rewrite84.0ms (1.9%)

Memory
-35.3MiB live, 63.2MiB allocated; 16ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0930
01530
17130
051530
Stop Event
iter limit
iter limit
iter limit
unsound
iter limit
Counts
5 → 118
Calls
Call 1
Inputs
(*.f64 x (fma.f64 x x #s(literal -1 binary64)))
(/.f64 (*.f64 x (fma.f64 x x #s(literal -1 binary64))) (-.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1 binary64)))
(fma.f64 x x #s(literal -1 binary64))
(-.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1 binary64))
(pow.f64 x #s(literal 4 binary64))
Outputs
(*.f64 (*.f64 x (-.f64 x #s(literal -1 binary64))) (-.f64 x #s(literal 1 binary64)))
(*.f64 (-.f64 x #s(literal -1 binary64)) (*.f64 (-.f64 x #s(literal 1 binary64)) x))
(*.f64 (fma.f64 x x #s(literal -1 binary64)) x)
(*.f64 x (fma.f64 x x #s(literal -1 binary64)))
(/.f64 (*.f64 (+.f64 (pow.f64 x #s(literal 6 binary64)) #s(literal -1 binary64)) x) (fma.f64 #s(literal -1 binary64) (-.f64 #s(literal -1 binary64) (*.f64 x x)) (pow.f64 x #s(literal 4 binary64))))
(/.f64 (*.f64 (-.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1 binary64)) x) (-.f64 (*.f64 x x) #s(literal -1 binary64)))
(/.f64 (*.f64 x (+.f64 (pow.f64 x #s(literal 6 binary64)) #s(literal -1 binary64))) (fma.f64 #s(literal -1 binary64) (-.f64 #s(literal -1 binary64) (*.f64 x x)) (pow.f64 x #s(literal 4 binary64))))
(/.f64 (*.f64 x (-.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1 binary64))) (-.f64 (*.f64 x x) #s(literal -1 binary64)))
(/.f64 (-.f64 (pow.f64 x #s(literal 6 binary64)) (*.f64 x x)) (-.f64 (pow.f64 x #s(literal 3 binary64)) (neg.f64 x)))
(/.f64 (+.f64 (pow.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal 3 binary64)) (pow.f64 (neg.f64 x) #s(literal 3 binary64))) (+.f64 (pow.f64 x #s(literal 6 binary64)) (-.f64 (*.f64 x x) (*.f64 (pow.f64 x #s(literal 3 binary64)) (neg.f64 x)))))
(fma.f64 (*.f64 x (fabs.f64 x)) (fabs.f64 x) (neg.f64 x))
(fma.f64 (*.f64 x (neg.f64 x)) (neg.f64 x) (neg.f64 x))
(fma.f64 (neg.f64 x) (*.f64 (neg.f64 x) x) (neg.f64 x))
(fma.f64 (fabs.f64 x) (*.f64 (fabs.f64 x) x) (neg.f64 x))
(fma.f64 (*.f64 x x) x (neg.f64 x))
(fma.f64 #s(literal -1 binary64) x (pow.f64 x #s(literal 3 binary64)))
(fma.f64 x (*.f64 x x) (neg.f64 x))
(fma.f64 x #s(literal -1 binary64) (pow.f64 x #s(literal 3 binary64)))
(-.f64 (pow.f64 x #s(literal 3 binary64)) (*.f64 #s(literal 1 binary64) x))
(-.f64 (pow.f64 x #s(literal 3 binary64)) (*.f64 (neg.f64 x) #s(literal -1 binary64)))
(+.f64 (pow.f64 x #s(literal 3 binary64)) (neg.f64 x))
(+.f64 (neg.f64 x) (pow.f64 x #s(literal 3 binary64)))
(*.f64 (/.f64 (*.f64 (fma.f64 x x #s(literal -1 binary64)) x) (-.f64 (pow.f64 x #s(literal 8 binary64)) #s(literal 1 binary64))) (-.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1 binary64)))
(*.f64 (/.f64 (*.f64 (fma.f64 x x #s(literal -1 binary64)) x) (-.f64 (pow.f64 x #s(literal 12 binary64)) #s(literal 1 binary64))) (+.f64 (+.f64 (pow.f64 x #s(literal 8 binary64)) #s(literal 1 binary64)) (pow.f64 x #s(literal 4 binary64))))
(*.f64 (/.f64 (fma.f64 x x #s(literal -1 binary64)) (-.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1 binary64))) x)
(*.f64 (fma.f64 x x #s(literal -1 binary64)) (/.f64 x (-.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1 binary64))))
(*.f64 x (/.f64 (fma.f64 x x #s(literal -1 binary64)) (-.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1 binary64))))
(/.f64 (neg.f64 (*.f64 (neg.f64 x) (fma.f64 x x #s(literal -1 binary64)))) (neg.f64 (neg.f64 (-.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1 binary64)))))
(/.f64 (*.f64 (neg.f64 x) (fma.f64 x x #s(literal -1 binary64))) (neg.f64 (-.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1 binary64))))
(/.f64 (*.f64 (fma.f64 x x #s(literal -1 binary64)) x) (-.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1 binary64)))
(neg.f64 (/.f64 (*.f64 (neg.f64 x) (fma.f64 x x #s(literal -1 binary64))) (-.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1 binary64))))
(neg.f64 (/.f64 (*.f64 (fma.f64 x x #s(literal -1 binary64)) x) (neg.f64 (-.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1 binary64)))))
(+.f64 (/.f64 (pow.f64 x #s(literal 3 binary64)) (-.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1 binary64))) (/.f64 (neg.f64 x) (-.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1 binary64))))
(*.f64 (fma.f64 #s(literal -1 binary64) 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 (-.f64 x #s(literal -1 binary64)) (-.f64 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 6 binary64)) #s(literal -1 binary64))) (neg.f64 (fma.f64 #s(literal -1 binary64) (-.f64 #s(literal -1 binary64) (*.f64 x x)) (pow.f64 x #s(literal 4 binary64)))))
(/.f64 (-.f64 (pow.f64 x #s(literal 8 binary64)) #s(literal 1 binary64)) (*.f64 (-.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1 binary64)) (-.f64 (*.f64 x x) #s(literal -1 binary64))))
(/.f64 (-.f64 (pow.f64 x #s(literal 12 binary64)) #s(literal 1 binary64)) (*.f64 (+.f64 (+.f64 (pow.f64 x #s(literal 8 binary64)) #s(literal 1 binary64)) (pow.f64 x #s(literal 4 binary64))) (-.f64 (*.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 (neg.f64 x)))))
(/.f64 (+.f64 (pow.f64 x #s(literal 6 binary64)) #s(literal -1 binary64)) (fma.f64 #s(literal -1 binary64) (-.f64 #s(literal -1 binary64) (*.f64 x x)) (pow.f64 x #s(literal 4 binary64))))
(/.f64 (neg.f64 (-.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1 binary64))) (neg.f64 (-.f64 (*.f64 x x) #s(literal -1 binary64))))
(/.f64 (-.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1 binary64)) (-.f64 (*.f64 x 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 (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) (neg.f64 x) #s(literal -1 binary64))
(fma.f64 (fabs.f64 x) (fabs.f64 x) #s(literal -1 binary64))
(fma.f64 x x #s(literal -1 binary64))
(expm1.f64 (*.f64 (log.f64 x) #s(literal 2 binary64)))
(-.f64 (/.f64 (pow.f64 x #s(literal 4 binary64)) (-.f64 (*.f64 x x) #s(literal -1 binary64))) (/.f64 #s(literal 1 binary64) (-.f64 (*.f64 x x) #s(literal -1 binary64))))
(-.f64 (*.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 (pow.f64 x #s(literal 6 binary64)) (fma.f64 #s(literal -1 binary64) (-.f64 #s(literal -1 binary64) (*.f64 x x)) (pow.f64 x #s(literal 4 binary64)))) (/.f64 #s(literal -1 binary64) (fma.f64 #s(literal -1 binary64) (-.f64 #s(literal -1 binary64) (*.f64 x x)) (pow.f64 x #s(literal 4 binary64)))))
(+.f64 (*.f64 x x) #s(literal -1 binary64))
(+.f64 #s(literal -1 binary64) (*.f64 x x))
(*.f64 (fma.f64 x x #s(literal 1 binary64)) (fma.f64 x x #s(literal -1 binary64)))
(*.f64 (fma.f64 x x #s(literal -1 binary64)) (-.f64 (*.f64 x x) #s(literal -1 binary64)))
(/.f64 (neg.f64 (-.f64 (pow.f64 x #s(literal 8 binary64)) #s(literal 1 binary64))) (neg.f64 (-.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1 binary64))))
(/.f64 (neg.f64 (-.f64 (pow.f64 x #s(literal 12 binary64)) #s(literal 1 binary64))) (neg.f64 (+.f64 (+.f64 (pow.f64 x #s(literal 8 binary64)) #s(literal 1 binary64)) (pow.f64 x #s(literal 4 binary64)))))
(/.f64 (-.f64 (pow.f64 x #s(literal 8 binary64)) #s(literal 1 binary64)) (-.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1 binary64)))
(/.f64 (-.f64 (pow.f64 x #s(literal 12 binary64)) #s(literal 1 binary64)) (+.f64 (+.f64 (pow.f64 x #s(literal 8 binary64)) #s(literal 1 binary64)) (pow.f64 x #s(literal 4 binary64))))
(fma.f64 (*.f64 (*.f64 x x) (neg.f64 x)) (neg.f64 x) #s(literal -1 binary64))
(fma.f64 (*.f64 (*.f64 x x) (fabs.f64 x)) (fabs.f64 x) #s(literal -1 binary64))
(fma.f64 (*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1 binary64)) #s(literal -1 binary64) #s(literal -1 binary64))
(fma.f64 (*.f64 (neg.f64 x) (fabs.f64 x)) (*.f64 (neg.f64 x) (fabs.f64 x)) #s(literal -1 binary64))
(fma.f64 (*.f64 (neg.f64 x) x) (*.f64 (neg.f64 x) x) #s(literal -1 binary64))
(fma.f64 (*.f64 (fabs.f64 x) (neg.f64 x)) (*.f64 (fabs.f64 x) (neg.f64 x)) #s(literal -1 binary64))
(fma.f64 (*.f64 (fabs.f64 x) x) (*.f64 (fabs.f64 x) x) #s(literal -1 binary64))
(fma.f64 (*.f64 x (fabs.f64 x)) (*.f64 x (fabs.f64 x)) #s(literal -1 binary64))
(fma.f64 (*.f64 (*.f64 x x) #s(literal 1 binary64)) (*.f64 (*.f64 x x) #s(literal 1 binary64)) #s(literal -1 binary64))
(fma.f64 (neg.f64 (*.f64 x x)) (neg.f64 (*.f64 x x)) #s(literal -1 binary64))
(fma.f64 (pow.f64 x #s(literal 3 binary64)) x #s(literal -1 binary64))
(fma.f64 (*.f64 x (neg.f64 x)) (*.f64 x (neg.f64 x)) #s(literal -1 binary64))
(fma.f64 (neg.f64 x) (*.f64 (neg.f64 x) (*.f64 x x)) #s(literal -1 binary64))
(fma.f64 (fabs.f64 x) (*.f64 (fabs.f64 x) (*.f64 x x)) #s(literal -1 binary64))
(fma.f64 (*.f64 x x) (*.f64 (*.f64 x x) #s(literal 1 binary64)) #s(literal -1 binary64))
(fma.f64 (*.f64 x x) (*.f64 x x) #s(literal -1 binary64))
(fma.f64 #s(literal 1 binary64) (pow.f64 x #s(literal 4 binary64)) #s(literal -1 binary64))
(fma.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1 binary64) #s(literal -1 binary64))
(fma.f64 x (pow.f64 x #s(literal 3 binary64)) #s(literal -1 binary64))
(expm1.f64 (fma.f64 (log.f64 x) #s(literal 4 binary64) #s(literal 0 binary64)))
(expm1.f64 (*.f64 (log.f64 x) #s(literal 4 binary64)))
(-.f64 (/.f64 (pow.f64 x #s(literal 8 binary64)) (-.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1 binary64))) (/.f64 #s(literal 1 binary64) (-.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1 binary64))))
(-.f64 (/.f64 (pow.f64 x #s(literal 12 binary64)) (+.f64 (+.f64 (pow.f64 x #s(literal 8 binary64)) #s(literal 1 binary64)) (pow.f64 x #s(literal 4 binary64)))) (/.f64 #s(literal 1 binary64) (+.f64 (+.f64 (pow.f64 x #s(literal 8 binary64)) #s(literal 1 binary64)) (pow.f64 x #s(literal 4 binary64)))))
(-.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1 binary64))
(+.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1 binary64))
(*.f64 (*.f64 (*.f64 x x) (neg.f64 x)) (neg.f64 x))
(*.f64 (*.f64 (*.f64 x x) (fabs.f64 x)) (fabs.f64 x))
(*.f64 (*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1 binary64)) #s(literal -1 binary64))
(*.f64 (*.f64 (neg.f64 x) (fabs.f64 x)) (*.f64 (neg.f64 x) (fabs.f64 x)))
(*.f64 (*.f64 (neg.f64 x) x) (*.f64 (neg.f64 x) x))
(*.f64 (*.f64 (fabs.f64 x) (neg.f64 x)) (*.f64 (fabs.f64 x) (neg.f64 x)))
(*.f64 (*.f64 (fabs.f64 x) x) (*.f64 (fabs.f64 x) x))
(*.f64 (*.f64 x (fabs.f64 x)) (*.f64 x (fabs.f64 x)))
(*.f64 (*.f64 (*.f64 x x) #s(literal 1 binary64)) (*.f64 (*.f64 x x) #s(literal 1 binary64)))
(*.f64 (neg.f64 (*.f64 x x)) (neg.f64 (*.f64 x x)))
(*.f64 (pow.f64 x #s(literal 3 binary64)) x)
(*.f64 (*.f64 x (neg.f64 x)) (*.f64 x (neg.f64 x)))
(*.f64 (neg.f64 x) (*.f64 (neg.f64 x) (*.f64 x x)))
(*.f64 (fabs.f64 x) (*.f64 (fabs.f64 x) (*.f64 x x)))
(*.f64 (*.f64 x x) (*.f64 (*.f64 x x) #s(literal 1 binary64)))
(*.f64 (*.f64 x x) (*.f64 x x))
(*.f64 #s(literal 1 binary64) (pow.f64 x #s(literal 4 binary64)))
(*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1 binary64))
(*.f64 x (pow.f64 x #s(literal 3 binary64)))
(pow.f64 (exp.f64 (log.f64 x)) #s(literal 4 binary64))
(pow.f64 (*.f64 x x) #s(literal 2 binary64))
(pow.f64 x #s(literal 4 binary64))
(exp.f64 (fma.f64 (log.f64 x) #s(literal 4 binary64) #s(literal 0 binary64)))
(exp.f64 (*.f64 (log.f64 x) #s(literal 4 binary64)))
(+.f64 (cosh.f64 (*.f64 (log.f64 x) #s(literal 4 binary64))) (sinh.f64 (*.f64 (log.f64 x) #s(literal 4 binary64))))

eval12.0ms (0.3%)

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

Compiled 2 419 to 451 computations (81.4% saved)

prune6.0ms (0.1%)

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

6 alts after pruning (0 fresh and 6 done)

PrunedKeptTotal
New1390139
Fresh000
Picked011
Done055
Total1396145
Accuracy
100.0%
Counts
145 → 6
Alt Table
Click to see full alt table
StatusAccuracyProgram
61.8%
(/.f64 (*.f64 x (fma.f64 x x #s(literal -1 binary64))) (-.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1 binary64)))
75.1%
(/.f64 x (fma.f64 x x #s(literal 1 binary64)))
27.9%
(/.f64 x #s(approx (+ (* x x) 1) (*.f64 x x)))
52.0%
#s(approx (/ x (+ (* x x) 1)) (/.f64 (-.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (*.f64 x x))) x))
52.8%
#s(approx (/ x (+ (* x x) 1)) (/.f64 #s(literal 1 binary64) x))
50.3%
#s(approx (/ x (+ (* x x) 1)) x)
Compiler

Compiled 151 to 74 computations (51% saved)

regimes6.0ms (0.1%)

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

2 calls:

3.0ms
x
2.0ms
(/.f64 x (+.f64 (*.f64 x x) #s(literal 1 binary64)))
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)

regimes6.0ms (0.1%)

Memory
-42.0MiB live, 3.9MiB allocated; 5ms collecting garbage
Counts
6 → 2
Calls
Call 1
Inputs
#s(approx (/ x (+ (* x x) 1)) x)
#s(approx (/ x (+ (* x x) 1)) (/.f64 #s(literal 1 binary64) x))
(/.f64 x #s(approx (+ (* x x) 1) (*.f64 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))
Outputs
(/.f64 x (fma.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))
Calls

1 calls:

5.0ms
x
Results
AccuracySegmentsBranch
100.0%2x
Compiler

Compiled 1 to 1 computations (0% saved)

regimes2.0ms (0.1%)

Memory
3.5MiB live, 3.5MiB allocated; 0ms collecting garbage
Counts
5 → 2
Calls
Call 1
Inputs
#s(approx (/ x (+ (* x x) 1)) x)
#s(approx (/ x (+ (* x x) 1)) (/.f64 #s(literal 1 binary64) x))
(/.f64 x #s(approx (+ (* x x) 1) (*.f64 x x)))
(/.f64 x (fma.f64 x x #s(literal 1 binary64)))
(/.f64 x (+.f64 (*.f64 x x) #s(literal 1 binary64)))
Outputs
(/.f64 x (fma.f64 x x #s(literal 1 binary64)))
#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)

regimes3.0ms (0.1%)

Memory
5.2MiB live, 5.2MiB allocated; 0ms collecting garbage
Counts
3 → 2
Calls
Call 1
Inputs
#s(approx (/ x (+ (* x x) 1)) x)
#s(approx (/ x (+ (* x x) 1)) (/.f64 #s(literal 1 binary64) x))
(/.f64 x #s(approx (+ (* x x) 1) (*.f64 x x)))
Outputs
#s(approx (/ x (+ (* x x) 1)) x)
#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
79.5%3(/.f64 x (+.f64 (*.f64 x x) #s(literal 1 binary64)))
99.3%2x
Compiler

Compiled 8 to 6 computations (25% saved)

regimes2.0ms (0%)

Memory
4.0MiB live, 4.0MiB 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)) x)
Outputs
#s(approx (/ x (+ (* x x) 1)) x)
Calls

2 calls:

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

Compiled 8 to 6 computations (25% saved)

bsearch10.0ms (0.2%)

Memory
9.3MiB live, 9.3MiB allocated; 0ms collecting garbage
Algorithm
binary-search
Stop Event
narrow-enough
Steps
TimeLeftRight
9.0ms
371.0302776125456
18584.745118914903
Samples
4.0ms112×0valid
Compiler

Compiled 213 to 163 computations (23.5% saved)

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

bsearch1.0ms (0%)

Memory
0.5MiB live, 0.5MiB allocated; 0ms collecting garbage
Algorithm
binary-search
Stop Event
predicate-same
Steps
TimeLeftRight
0.0ms
371.0302776125456
18584.745118914903
Compiler

Compiled 56 to 43 computations (23.2% saved)

bsearch2.0ms (0%)

Memory
1.6MiB live, 1.6MiB allocated; 0ms collecting garbage
Algorithm
binary-search
Stop Event
predicate-same
Steps
TimeLeftRight
1.0ms
19780431.630818397
590116252.6293942
Samples
1.0ms16×0valid
Compiler

Compiled 27 to 23 computations (14.8% saved)

Precisions
Click to see histograms. Total time spent on operations: 0.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)

bsearch12.0ms (0.3%)

Memory
11.4MiB live, 11.4MiB allocated; 0ms collecting garbage
Algorithm
binary-search
Stop Event
narrow-enough
Steps
TimeLeftRight
11.0ms
3.592596968603756e-6
371.0302776125456
Samples
6.0ms144×0valid
Compiler

Compiled 190 to 153 computations (19.5% saved)

Precisions
Click to see histograms. Total time spent on operations: 3.0ms
ival-div: 1.0ms (33.3% of total)
ival-add: 1.0ms (33.3% of total)
ival-mult: 1.0ms (33.3% 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)

simplify54.0ms (1.2%)

Memory
-24.8MiB live, 21.1MiB allocated; 4ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
033114
144114
275114
3130114
4201114
5480114
63446114
77478114
Stop Event
node limit
Calls
Call 1
Inputs
(if (<=.f64 x #s(literal 9500 binary64)) (/.f64 (*.f64 x (fma.f64 x x #s(literal -1 binary64))) (-.f64 (pow.f64 x #s(literal 4 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)))
(if (<=.f64 x #s(literal 5000 binary64)) (/.f64 x (fma.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)))
(if (<=.f64 x #s(literal 20000000 binary64)) (/.f64 x (fma.f64 x x #s(literal 1 binary64))) #s(approx (/ x (+ (* x x) 1)) (/.f64 #s(literal 1 binary64) x)))
(if (<=.f64 x #s(literal 1 binary64)) #s(approx (/ x (+ (* x x) 1)) x) #s(approx (/ x (+ (* x x) 1)) (/.f64 #s(literal 1 binary64) x)))
#s(approx (/ x (+ (* x x) 1)) x)
Outputs
(if (<=.f64 x #s(literal 9500 binary64)) (/.f64 (*.f64 x (fma.f64 x x #s(literal -1 binary64))) (-.f64 (pow.f64 x #s(literal 4 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)))
(if (<=.f64 x #s(literal 5000 binary64)) (/.f64 x (fma.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)))
(if (<=.f64 x #s(literal 20000000 binary64)) (/.f64 x (fma.f64 x x #s(literal 1 binary64))) #s(approx (/ x (+ (* x x) 1)) (/.f64 #s(literal 1 binary64) x)))
(if (<=.f64 x #s(literal 1 binary64)) #s(approx (/ x (+ (* x x) 1)) x) #s(approx (/ x (+ (* x x) 1)) (/.f64 #s(literal 1 binary64) x)))
#s(approx (/ x (+ (* x x) 1)) x)

derivations145.0ms (3.3%)

Memory
-3.1MiB live, 86.4MiB allocated; 17ms collecting garbage
Stop Event
done
Compiler

Compiled 114 to 34 computations (70.2% saved)

preprocess96.0ms (2.2%)

Memory
16.9MiB live, 107.0MiB allocated; 14ms collecting garbage
Compiler

Compiled 322 to 130 computations (59.6% saved)

end0.0ms (0%)

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

Profiling

Loading profile data...