x / (x^2 + 1)

Time bar (total: 2.8s)

start0.0ms (0%)

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

analyze0.0ms (0%)

Memory
0.5MiB live, 0.5MiB 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)

sample936.0ms (33%)

Memory
31.0MiB live, 620.9MiB allocated; 958ms collecting garbage
Samples
666.0ms8 256×0valid
Precisions
Click to see histograms. Total time spent on operations: 181.0ms
ival-mult: 68.0ms (37.5% of total)
ival-div: 62.0ms (34.2% of total)
ival-add: 40.0ms (22.1% of total)
exact: 6.0ms (3.3% of total)
adjust: 2.0ms (1.1% of total)
ival-assert: 2.0ms (1.1% of total)
Bogosity

explain70.0ms (2.5%)

Memory
2.8MiB live, 104.7MiB allocated; 18ms collecting garbage
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
560-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/o560
(*.f64 x x)overflow56
(+.f64 (*.f64 x x) #s(literal 1 binary64))overflow56
Confusion
Predicted +Predicted -
+560
-0200
Precision
1.0
Recall
1.0
Confusion?
Predicted +Predicted MaybePredicted -
+5600
-00200
Precision?
1.0
Recall?
1.0
Freqs
test
numberfreq
0200
156
Total Confusion?
Predicted +Predicted MaybePredicted -
+100
-000
Precision?
1.0
Recall?
1.0
Samples
30.0ms512×0valid
Compiler

Compiled 45 to 19 computations (57.8% saved)

Precisions
Click to see histograms. Total time spent on operations: 20.0ms
ival-mult: 13.0ms (66.3% of total)
ival-div: 3.0ms (15.3% of total)
ival-add: 2.0ms (10.2% 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)

preprocess266.0ms (9.4%)

Memory
-15.4MiB live, 138.1MiB allocated; 28ms 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.7MiB live, 0.7MiB allocated; 0ms collecting garbage
Alt Table
Click to see full alt table
StatusAccuracyProgram
79.6%
(/.f64 x (+.f64 (*.f64 x x) #s(literal 1 binary64)))
Compiler

Compiled 7 to 5 computations (28.6% saved)

series3.0ms (0.1%)

Memory
3.9MiB live, 3.9MiB allocated; 0ms collecting garbage
Counts
5 → 17
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
#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 #s(hole binary64 x))
#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) #s(hole binary64 (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 (/ 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 x) 1)) x (+ (* x x) 1) (* x x) 1)
1.0ms
x
@-inf
((/ x (+ (* x x) 1)) x (+ (* x x) 1) (* x x) 1)
1.0ms
x
@0
((/ x (+ (* x x) 1)) x (+ (* x x) 1) (* x x) 1)

rewrite229.0ms (8.1%)

Memory
-24.8MiB live, 162.9MiB allocated; 24ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
065267
1353257
03683234
Stop Event
iter limit
iter limit
node limit
Counts
22 → 111
Calls
Call 1
Inputs
(/ x (+ (* x x) 1))
x
(+ (* x x) 1)
(* x x)
1
#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 #s(hole binary64 x))
#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) #s(hole binary64 (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 (/ 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
(*.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 #s(literal 1 binary64) (pow.f64 x #s(literal 4 binary64)))) (-.f64 #s(literal 1 binary64) (*.f64 x x)))
(*.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 (/.f64 x (-.f64 (pow.f64 x #s(literal 6 binary64)) #s(literal -1 binary64))) (fma.f64 (fma.f64 x x #s(literal -1 binary64)) (*.f64 x x) #s(literal 1 binary64)))
(/.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))))
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))) (+.f64 (pow.f64 x #s(literal 4 binary64)) (fma.f64 x x #s(literal 1 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))) (fma.f64 x x #s(literal 1 binary64)))
(*.f64 (*.f64 (-.f64 (pow.f64 x #s(literal -2 binary64)) #s(literal -1 binary64)) (neg.f64 x)) (neg.f64 x))
(*.f64 (*.f64 (-.f64 (pow.f64 x #s(literal -2 binary64)) #s(literal -1 binary64)) (fabs.f64 x)) (fabs.f64 x))
(*.f64 (*.f64 (-.f64 (pow.f64 x #s(literal -2 binary64)) #s(literal -1 binary64)) x) x)
(*.f64 (neg.f64 x) (*.f64 (neg.f64 x) (-.f64 (pow.f64 x #s(literal -2 binary64)) #s(literal -1 binary64))))
(*.f64 (fabs.f64 x) (*.f64 (fabs.f64 x) (-.f64 (pow.f64 x #s(literal -2 binary64)) #s(literal -1 binary64))))
(*.f64 (-.f64 (pow.f64 x #s(literal -2 binary64)) #s(literal -1 binary64)) (*.f64 x x))
(*.f64 (*.f64 x x) (-.f64 (pow.f64 x #s(literal -2 binary64)) #s(literal -1 binary64)))
(*.f64 (fma.f64 x x #s(literal 1 binary64)) #s(literal 1 binary64))
(*.f64 #s(literal 1 binary64) (fma.f64 x x #s(literal 1 binary64)))
(*.f64 x (*.f64 x (-.f64 (pow.f64 x #s(literal -2 binary64)) #s(literal -1 binary64))))
(/.f64 (*.f64 (+.f64 (pow.f64 x #s(literal -6 binary64)) #s(literal 1 binary64)) (*.f64 x x)) (-.f64 (-.f64 (pow.f64 x #s(literal -4 binary64)) #s(literal -1 binary64)) (pow.f64 x #s(literal -2 binary64))))
(/.f64 (*.f64 (*.f64 x 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)) (pow.f64 x #s(literal -2 binary64))))
(/.f64 (-.f64 #s(literal 1 binary64) (neg.f64 (pow.f64 x #s(literal 6 binary64)))) (fma.f64 (fma.f64 x x #s(literal -1 binary64)) (*.f64 x x) #s(literal 1 binary64)))
(/.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)))
(/.f64 (-.f64 (pow.f64 x #s(literal 6 binary64)) #s(literal -1 binary64)) (fma.f64 (fma.f64 x x #s(literal -1 binary64)) (*.f64 x x) #s(literal 1 binary64)))
(/.f64 (neg.f64 (-.f64 #s(literal 1 binary64) (pow.f64 x #s(literal 4 binary64)))) (neg.f64 (-.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 (-.f64 (+.f64 (pow.f64 x #s(literal 4 binary64)) #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 (fma.f64 x x #s(literal -1 binary64)) (*.f64 x x) #s(literal 1 binary64))))
(/.f64 (neg.f64 (-.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1 binary64))) (-.f64 #s(literal 1 binary64) (*.f64 x x)))
(/.f64 (*.f64 (-.f64 #s(literal 1 binary64) (pow.f64 x #s(literal -4 binary64))) (*.f64 x x)) (-.f64 #s(literal 1 binary64) (pow.f64 x #s(literal -2 binary64))))
(/.f64 (*.f64 (*.f64 x x) (-.f64 #s(literal 1 binary64) (pow.f64 x #s(literal -4 binary64)))) (-.f64 #s(literal 1 binary64) (pow.f64 x #s(literal -2 binary64))))
(/.f64 (-.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1 binary64)) (fma.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)))
(fma.f64 (*.f64 #s(literal 1 binary64) (neg.f64 x)) (*.f64 #s(literal 1 binary64) (neg.f64 x)) #s(literal 1 binary64))
(fma.f64 (*.f64 #s(literal 1 binary64) (neg.f64 x)) (neg.f64 x) #s(literal 1 binary64))
(fma.f64 (*.f64 #s(literal 1 binary64) (fabs.f64 x)) (*.f64 #s(literal 1 binary64) (fabs.f64 x)) #s(literal 1 binary64))
(fma.f64 (*.f64 #s(literal 1 binary64) (fabs.f64 x)) (fabs.f64 x) #s(literal 1 binary64))
(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 (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 (exp.f64 (log.f64 x)) (exp.f64 (log.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 (*.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 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 #s(literal 1 binary64) (-.f64 #s(literal 1 binary64) (*.f64 x x))) (/.f64 (pow.f64 x #s(literal 4 binary64)) (-.f64 #s(literal 1 binary64) (*.f64 x x))))
(-.f64 (*.f64 x x) (*.f64 (neg.f64 (pow.f64 x #s(literal -2 binary64))) (*.f64 x x)))
(-.f64 (*.f64 x x) (*.f64 (*.f64 (neg.f64 x) x) (pow.f64 x #s(literal -2 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 #s(literal 1 binary64) (fma.f64 (fma.f64 x x #s(literal -1 binary64)) (*.f64 x x) #s(literal 1 binary64))) (/.f64 (pow.f64 x #s(literal 6 binary64)) (fma.f64 (fma.f64 x x #s(literal -1 binary64)) (*.f64 x x) #s(literal 1 binary64))))
(+.f64 (*.f64 x x) #s(literal 1 binary64))
(+.f64 #s(literal 1 binary64) (*.f64 (*.f64 (neg.f64 x) x) #s(literal -1 binary64)))
(+.f64 #s(literal 1 binary64) (*.f64 x x))
(*.f64 (*.f64 #s(literal 1 binary64) (neg.f64 x)) (*.f64 #s(literal 1 binary64) (neg.f64 x)))
(*.f64 (*.f64 #s(literal 1 binary64) (neg.f64 x)) (neg.f64 x))
(*.f64 (*.f64 #s(literal 1 binary64) (fabs.f64 x)) (*.f64 #s(literal 1 binary64) (fabs.f64 x)))
(*.f64 (*.f64 #s(literal 1 binary64) (fabs.f64 x)) (fabs.f64 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 (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 (exp.f64 (log.f64 x)) (exp.f64 (log.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 (*.f64 x x) #s(literal 1 binary64))
(*.f64 #s(literal 1 binary64) (*.f64 x x))
(*.f64 x x)
(pow.f64 (exp.f64 (log.f64 x)) #s(literal 2 binary64))
(pow.f64 (neg.f64 x) #s(literal 2 binary64))
(pow.f64 (fabs.f64 x) #s(literal 2 binary64))
(pow.f64 (*.f64 x x) #s(literal 1 binary64))
(pow.f64 x #s(literal 2 binary64))
(/.f64 (*.f64 (*.f64 x x) #s(literal 2 binary64)) #s(literal 2 binary64))
(/.f64 (*.f64 #s(literal 2 binary64) (*.f64 x x)) #s(literal 2 binary64))
(neg.f64 (*.f64 (neg.f64 x) x))
(fabs.f64 (*.f64 x x))
(exp.f64 (+.f64 #s(literal 0 binary64) (*.f64 (log.f64 x) #s(literal 2 binary64))))
(exp.f64 (fma.f64 (log.f64 x) #s(literal 2 binary64) #s(literal 0 binary64)))
(exp.f64 (*.f64 (log.f64 x) #s(literal 2 binary64)))
(+.f64 (cosh.f64 (*.f64 (log.f64 x) #s(literal 2 binary64))) (sinh.f64 (*.f64 (log.f64 x) #s(literal 2 binary64))))
#s(literal 1 binary64)
#s(approx (/ x (+ (* x x) 1)) x)
#s(approx (/ x (+ (* x x) 1)) (-.f64 x (pow.f64 x #s(literal 3 binary64))))
#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)) (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(approx (+ (* x x) 1) #s(literal 1 binary64))
#s(approx (+ (* x x) 1) (fma.f64 x x #s(literal 1 binary64)))
#s(approx (* x x) (*.f64 x x))
#s(approx (/ x (+ (* x x) 1)) (pow.f64 x #s(literal -1 binary64)))
#s(approx (/ x (+ (* x x) 1)) (/.f64 (-.f64 #s(literal 1 binary64) (pow.f64 x #s(literal -2 binary64))) x))
#s(approx (/ x (+ (* x x) 1)) (/.f64 (-.f64 (-.f64 (pow.f64 x #s(literal -4 binary64)) #s(literal -1 binary64)) (pow.f64 x #s(literal -2 binary64))) x))
#s(approx (/ x (+ (* x x) 1)) (/.f64 (-.f64 (-.f64 (-.f64 (pow.f64 x #s(literal -4 binary64)) #s(literal -1 binary64)) (pow.f64 x #s(literal -2 binary64))) (pow.f64 x #s(literal -6 binary64))) x))
#s(approx (+ (* x x) 1) (*.f64 x x))
#s(approx (+ (* x x) 1) (fma.f64 x x #s(literal 1 binary64)))
#s(approx (/ x (+ (* x x) 1)) (/.f64 (-.f64 (pow.f64 x #s(literal -2 binary64)) #s(literal 1 binary64)) (neg.f64 x)))
#s(approx (/ x (+ (* x x) 1)) (/.f64 (-.f64 (-.f64 (pow.f64 x #s(literal -2 binary64)) #s(literal 1 binary64)) (pow.f64 x #s(literal -4 binary64))) (neg.f64 x)))
#s(approx (/ x (+ (* x x) 1)) (/.f64 (-.f64 (+.f64 (pow.f64 x #s(literal -6 binary64)) (pow.f64 x #s(literal -2 binary64))) (-.f64 (pow.f64 x #s(literal -4 binary64)) #s(literal -1 binary64))) (neg.f64 x)))

eval11.0ms (0.4%)

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

Compiled 1 388 to 341 computations (75.4% saved)

prune6.0ms (0.2%)

Memory
-30.2MiB live, 16.2MiB allocated; 2ms collecting garbage
Pruning

4 alts after pruning (4 fresh and 0 done)

PrunedKeptTotal
New1104114
Fresh000
Picked101
Done000
Total1114115
Accuracy
100.0%
Counts
115 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
79.6%
(/.f64 x (fma.f64 x x #s(literal 1 binary64)))
31.2%
(/.f64 x #s(approx (+ (* x x) 1) (*.f64 x x)))
51.7%
#s(approx (/ x (+ (* x x) 1)) (pow.f64 x #s(literal -1 binary64)))
50.8%
#s(approx (/ x (+ (* x x) 1)) x)
Compiler

Compiled 37 to 25 computations (32.4% saved)

series3.0ms (0.1%)

Memory
9.7MiB live, 9.6MiB allocated; 0ms collecting garbage
Counts
11 → 18
Calls
Call 1
Inputs
#s(approx (/ x (+ (* x x) 1)) x)
x
#s(approx (/ x (+ (* x x) 1)) (pow.f64 x #s(literal -1 binary64)))
(pow.f64 x #s(literal -1 binary64))
#s(literal -1 binary64)
(/.f64 x #s(approx (+ (* x x) 1) (*.f64 x x)))
#s(approx (+ (* x x) 1) (*.f64 x x))
(*.f64 x x)
(/.f64 x (fma.f64 x x #s(literal 1 binary64)))
(fma.f64 x x #s(literal 1 binary64))
#s(literal 1 binary64)
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 #s(hole binary64 x))
#s(approx (pow x -1) #s(hole binary64 (/ 1 x)))
#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) #s(hole binary64 (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 (/ 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 x) 1)) x (/ x (+ (* x x) 1)) (pow x -1) -1 (/ x (+ (* x x) 1)) (+ (* x x) 1) (* x x) (/ x (+ (* x x) 1)) (+ (* x x) 1) 1)
1.0ms
x
@inf
((/ x (+ (* x x) 1)) x (/ x (+ (* x x) 1)) (pow x -1) -1 (/ x (+ (* x x) 1)) (+ (* x x) 1) (* x x) (/ x (+ (* x x) 1)) (+ (* x x) 1) 1)
1.0ms
x
@0
((/ x (+ (* x x) 1)) x (/ x (+ (* x x) 1)) (pow x -1) -1 (/ x (+ (* x x) 1)) (+ (* x x) 1) (* x x) (/ x (+ (* x x) 1)) (+ (* x x) 1) 1)

rewrite893.0ms (31.5%)

Memory
20.1MiB live, 111.4MiB allocated; 6ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
070318
1366308
03720281
Stop Event
iter limit
iter limit
node limit
Counts
29 → 137
Calls
Call 1
Inputs
#s(approx (/ x (+ (* x x) 1)) #s(hole binary64 x))
x
#s(approx (/ x (+ (* x x) 1)) #s(hole binary64 (pow x -1)))
(pow x -1)
-1
(/ x #s(approx (+ (* x x) 1) #s(hole binary64 (* x x))))
#s(approx (+ (* x x) 1) #s(hole binary64 (* x x)))
(* x x)
(/ x (+ (* x x) 1))
(+ (* x x) 1)
1
#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 #s(hole binary64 x))
#s(approx (pow x -1) #s(hole binary64 (/ 1 x)))
#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) #s(hole binary64 (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 (/ 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 x) 1)) x)
x
#s(approx (/ x (+ (* x x) 1)) (pow.f64 x #s(literal -1 binary64)))
(*.f64 (neg.f64 (pow.f64 x #s(literal -1/2 binary64))) (neg.f64 (pow.f64 x #s(literal -1/2 binary64))))
(*.f64 (fabs.f64 (pow.f64 x #s(literal -1/2 binary64))) (fabs.f64 (pow.f64 x #s(literal -1/2 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 (exp.f64 (log.f64 x)) #s(literal -1 binary64))
(pow.f64 (pow.f64 x #s(literal -1/2 binary64)) #s(literal 2 binary64))
(pow.f64 (*.f64 x x) #s(literal -1/2 binary64))
(pow.f64 x #s(literal -1 binary64))
(/.f64 #s(literal 2 binary64) (*.f64 #s(literal 2 binary64) x))
(/.f64 #s(literal -1 binary64) (neg.f64 x))
(/.f64 #s(literal 1 binary64) (neg.f64 (neg.f64 x)))
(/.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 (cosh.f64 (*.f64 (log.f64 x) #s(literal -1 binary64))) (sinh.f64 (*.f64 (log.f64 x) #s(literal -1 binary64))))
#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 #s(literal 1 binary64) (neg.f64 x)) (*.f64 #s(literal 1 binary64) (neg.f64 x)))
(*.f64 (*.f64 #s(literal 1 binary64) (neg.f64 x)) (neg.f64 x))
(*.f64 (*.f64 #s(literal 1 binary64) (fabs.f64 x)) (*.f64 #s(literal 1 binary64) (fabs.f64 x)))
(*.f64 (*.f64 #s(literal 1 binary64) (fabs.f64 x)) (fabs.f64 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 (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 (exp.f64 (log.f64 x)) (exp.f64 (log.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 (*.f64 x x) #s(literal 1 binary64))
(*.f64 #s(literal 1 binary64) (*.f64 x x))
(*.f64 x x)
(pow.f64 (exp.f64 (log.f64 x)) #s(literal 2 binary64))
(pow.f64 (neg.f64 x) #s(literal 2 binary64))
(pow.f64 (fabs.f64 x) #s(literal 2 binary64))
(pow.f64 (*.f64 x x) #s(literal 1 binary64))
(pow.f64 x #s(literal 2 binary64))
(/.f64 (*.f64 (*.f64 x x) #s(literal 2 binary64)) #s(literal 2 binary64))
(/.f64 (*.f64 #s(literal 2 binary64) (*.f64 x x)) #s(literal 2 binary64))
(neg.f64 (*.f64 (neg.f64 x) x))
(fabs.f64 (*.f64 x x))
(exp.f64 (+.f64 #s(literal 0 binary64) (*.f64 (log.f64 x) #s(literal 2 binary64))))
(exp.f64 (fma.f64 (log.f64 x) #s(literal 2 binary64) #s(literal 0 binary64)))
(exp.f64 (*.f64 (log.f64 x) #s(literal 2 binary64)))
(+.f64 (cosh.f64 (*.f64 (log.f64 x) #s(literal 2 binary64))) (sinh.f64 (*.f64 (log.f64 x) #s(literal 2 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 #s(literal 1 binary64) (pow.f64 x #s(literal 4 binary64)))) (-.f64 #s(literal 1 binary64) (*.f64 x x)))
(*.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 (/.f64 x (-.f64 (pow.f64 x #s(literal 6 binary64)) #s(literal -1 binary64))) (fma.f64 (fma.f64 x x #s(literal -1 binary64)) (*.f64 x x) #s(literal 1 binary64)))
(/.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 (-.f64 (pow.f64 x #s(literal 4 binary64)) #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 (/.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))) (+.f64 (pow.f64 x #s(literal 4 binary64)) (fma.f64 x x #s(literal 1 binary64))))
(*.f64 (*.f64 (-.f64 (pow.f64 x #s(literal -2 binary64)) #s(literal -1 binary64)) (neg.f64 x)) (neg.f64 x))
(*.f64 (*.f64 (-.f64 (pow.f64 x #s(literal -2 binary64)) #s(literal -1 binary64)) (fabs.f64 x)) (fabs.f64 x))
(*.f64 (*.f64 (-.f64 (pow.f64 x #s(literal -2 binary64)) #s(literal -1 binary64)) x) x)
(*.f64 (neg.f64 x) (*.f64 (neg.f64 x) (-.f64 (pow.f64 x #s(literal -2 binary64)) #s(literal -1 binary64))))
(*.f64 (fabs.f64 x) (*.f64 (fabs.f64 x) (-.f64 (pow.f64 x #s(literal -2 binary64)) #s(literal -1 binary64))))
(*.f64 (-.f64 (pow.f64 x #s(literal -2 binary64)) #s(literal -1 binary64)) (*.f64 x x))
(*.f64 (*.f64 x x) (-.f64 (pow.f64 x #s(literal -2 binary64)) #s(literal -1 binary64)))
(*.f64 (fma.f64 x x #s(literal 1 binary64)) #s(literal 1 binary64))
(*.f64 #s(literal 1 binary64) (fma.f64 x x #s(literal 1 binary64)))
(*.f64 x (*.f64 x (-.f64 (pow.f64 x #s(literal -2 binary64)) #s(literal -1 binary64))))
(/.f64 (*.f64 (+.f64 (pow.f64 x #s(literal -6 binary64)) #s(literal 1 binary64)) (*.f64 x x)) (-.f64 (-.f64 (pow.f64 x #s(literal -4 binary64)) #s(literal -1 binary64)) (pow.f64 x #s(literal -2 binary64))))
(/.f64 (*.f64 (*.f64 x 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)) (pow.f64 x #s(literal -2 binary64))))
(/.f64 (-.f64 #s(literal 1 binary64) (neg.f64 (pow.f64 x #s(literal 6 binary64)))) (fma.f64 (fma.f64 x x #s(literal -1 binary64)) (*.f64 x x) #s(literal 1 binary64)))
(/.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)))
(/.f64 (-.f64 (pow.f64 x #s(literal 6 binary64)) #s(literal -1 binary64)) (fma.f64 (fma.f64 x x #s(literal -1 binary64)) (*.f64 x x) #s(literal 1 binary64)))
(/.f64 (neg.f64 (-.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1 binary64))) (-.f64 #s(literal 1 binary64) (*.f64 x x)))
(/.f64 (neg.f64 (-.f64 #s(literal 1 binary64) (pow.f64 x #s(literal 4 binary64)))) (neg.f64 (-.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 (-.f64 (+.f64 (pow.f64 x #s(literal 4 binary64)) #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 (fma.f64 x x #s(literal -1 binary64)) (*.f64 x x) #s(literal 1 binary64))))
(/.f64 (*.f64 (-.f64 #s(literal 1 binary64) (pow.f64 x #s(literal -4 binary64))) (*.f64 x x)) (-.f64 #s(literal 1 binary64) (pow.f64 x #s(literal -2 binary64))))
(/.f64 (*.f64 (*.f64 x x) (-.f64 #s(literal 1 binary64) (pow.f64 x #s(literal -4 binary64)))) (-.f64 #s(literal 1 binary64) (pow.f64 x #s(literal -2 binary64))))
(/.f64 (-.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1 binary64)) (fma.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)))
(fma.f64 (*.f64 #s(literal 1 binary64) (neg.f64 x)) (*.f64 #s(literal 1 binary64) (neg.f64 x)) #s(literal 1 binary64))
(fma.f64 (*.f64 #s(literal 1 binary64) (neg.f64 x)) (neg.f64 x) #s(literal 1 binary64))
(fma.f64 (*.f64 #s(literal 1 binary64) (fabs.f64 x)) (*.f64 #s(literal 1 binary64) (fabs.f64 x)) #s(literal 1 binary64))
(fma.f64 (*.f64 #s(literal 1 binary64) (fabs.f64 x)) (fabs.f64 x) #s(literal 1 binary64))
(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 (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 (exp.f64 (log.f64 x)) (exp.f64 (log.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 (*.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 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 #s(literal 1 binary64) (-.f64 #s(literal 1 binary64) (*.f64 x x))) (/.f64 (pow.f64 x #s(literal 4 binary64)) (-.f64 #s(literal 1 binary64) (*.f64 x x))))
(-.f64 (*.f64 x x) (*.f64 (neg.f64 (pow.f64 x #s(literal -2 binary64))) (*.f64 x x)))
(-.f64 (*.f64 x x) (*.f64 (*.f64 (neg.f64 x) x) (pow.f64 x #s(literal -2 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 #s(literal 1 binary64) (fma.f64 (fma.f64 x x #s(literal -1 binary64)) (*.f64 x x) #s(literal 1 binary64))) (/.f64 (pow.f64 x #s(literal 6 binary64)) (fma.f64 (fma.f64 x x #s(literal -1 binary64)) (*.f64 x x) #s(literal 1 binary64))))
(+.f64 (*.f64 x x) #s(literal 1 binary64))
(+.f64 #s(literal 1 binary64) (*.f64 (*.f64 (neg.f64 x) x) #s(literal -1 binary64)))
(+.f64 #s(literal 1 binary64) (*.f64 x x))
#s(literal 1 binary64)
#s(approx (/ x (+ (* x x) 1)) x)
#s(approx (/ x (+ (* x x) 1)) (-.f64 x (pow.f64 x #s(literal 3 binary64))))
#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)) (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(approx (pow x -1) (pow.f64 x #s(literal -1 binary64)))
#s(approx (+ (* x x) 1) #s(literal 1 binary64))
#s(approx (+ (* x x) 1) (fma.f64 x x #s(literal 1 binary64)))
#s(approx (* x x) (*.f64 x x))
#s(approx (/ x (+ (* x x) 1)) (pow.f64 x #s(literal -1 binary64)))
#s(approx (/ x (+ (* x x) 1)) (/.f64 (-.f64 #s(literal 1 binary64) (pow.f64 x #s(literal -2 binary64))) x))
#s(approx (/ x (+ (* x x) 1)) (/.f64 (-.f64 (-.f64 (pow.f64 x #s(literal -4 binary64)) #s(literal -1 binary64)) (pow.f64 x #s(literal -2 binary64))) x))
#s(approx (/ x (+ (* x x) 1)) (/.f64 (-.f64 (-.f64 (-.f64 (pow.f64 x #s(literal -4 binary64)) #s(literal -1 binary64)) (pow.f64 x #s(literal -2 binary64))) (pow.f64 x #s(literal -6 binary64))) x))
#s(approx (+ (* x x) 1) (*.f64 x x))
#s(approx (+ (* x x) 1) (fma.f64 x x #s(literal 1 binary64)))
#s(approx (/ x (+ (* x x) 1)) (/.f64 (-.f64 (pow.f64 x #s(literal -2 binary64)) #s(literal 1 binary64)) (neg.f64 x)))
#s(approx (/ x (+ (* x x) 1)) (/.f64 (-.f64 (-.f64 (pow.f64 x #s(literal -2 binary64)) #s(literal 1 binary64)) (pow.f64 x #s(literal -4 binary64))) (neg.f64 x)))
#s(approx (/ x (+ (* x x) 1)) (/.f64 (-.f64 (+.f64 (pow.f64 x #s(literal -6 binary64)) (pow.f64 x #s(literal -2 binary64))) (-.f64 (pow.f64 x #s(literal -4 binary64)) #s(literal -1 binary64))) (neg.f64 x)))

eval20.0ms (0.7%)

Memory
-12.4MiB live, 36.3MiB allocated; 8ms collecting garbage
Compiler

Compiled 1 930 to 401 computations (79.2% saved)

prune4.0ms (0.1%)

Memory
12.2MiB live, 12.3MiB allocated; 0ms collecting garbage
Pruning

4 alts after pruning (1 fresh and 3 done)

PrunedKeptTotal
New1461147
Fresh000
Picked134
Done000
Total1474151
Accuracy
100.0%
Counts
151 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
79.6%
(/.f64 x (fma.f64 x x #s(literal 1 binary64)))
31.2%
(/.f64 x #s(approx (+ (* x x) 1) (*.f64 x x)))
51.7%
#s(approx (/ x (+ (* x x) 1)) (/.f64 #s(literal 1 binary64) x))
50.8%
#s(approx (/ x (+ (* x x) 1)) x)
Compiler

Compiled 37 to 25 computations (32.4% saved)

series1.0ms (0%)

Memory
3.0MiB live, 3.0MiB allocated; 0ms collecting garbage
Counts
4 → 13
Calls
Call 1
Inputs
#s(approx (/ x (+ (* x x) 1)) (/.f64 #s(literal 1 binary64) x))
(/.f64 #s(literal 1 binary64) x)
#s(literal 1 binary64)
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 (/ 1 x) #s(hole binary64 (/ 1 x)))
#s(approx x #s(hole binary64 x))
#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
0.0ms
x
@-inf
((/ x (+ (* x x) 1)) (/ 1 x) 1 x)
0.0ms
x
@0
((/ x (+ (* x x) 1)) (/ 1 x) 1 x)
0.0ms
x
@inf
((/ x (+ (* x x) 1)) (/ 1 x) 1 x)

rewrite125.0ms (4.4%)

Memory
14.3MiB live, 101.6MiB allocated; 14ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
058228
1327218
03430202
Stop Event
iter limit
iter limit
node limit
Counts
17 → 26
Calls
Call 1
Inputs
#s(approx (/ x (+ (* x x) 1)) #s(hole binary64 (/ 1 x)))
(/ 1 x)
1
x
#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 (/ 1 x) #s(hole binary64 (/ 1 x)))
#s(approx x #s(hole binary64 x))
#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 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 2 binary64) (*.f64 #s(literal 2 binary64) x))
(/.f64 #s(literal -1 binary64) (neg.f64 x))
(/.f64 #s(literal 1 binary64) (neg.f64 (neg.f64 x)))
(/.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)))
#s(literal 1 binary64)
x
#s(approx (/ x (+ (* x x) 1)) x)
#s(approx (/ x (+ (* x x) 1)) (-.f64 x (pow.f64 x #s(literal 3 binary64))))
#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)) (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 (/ 1 x) (pow.f64 x #s(literal -1 binary64)))
#s(approx x x)
#s(approx (/ x (+ (* x x) 1)) (pow.f64 x #s(literal -1 binary64)))
#s(approx (/ x (+ (* x x) 1)) (/.f64 (-.f64 #s(literal 1 binary64) (pow.f64 x #s(literal -2 binary64))) x))
#s(approx (/ x (+ (* x x) 1)) (/.f64 (-.f64 (-.f64 (pow.f64 x #s(literal -4 binary64)) #s(literal -1 binary64)) (pow.f64 x #s(literal -2 binary64))) x))
#s(approx (/ x (+ (* x x) 1)) (/.f64 (-.f64 (-.f64 (-.f64 (pow.f64 x #s(literal -4 binary64)) #s(literal -1 binary64)) (pow.f64 x #s(literal -2 binary64))) (pow.f64 x #s(literal -6 binary64))) x))
#s(approx (/ x (+ (* x x) 1)) (/.f64 (-.f64 (pow.f64 x #s(literal -2 binary64)) #s(literal 1 binary64)) (neg.f64 x)))
#s(approx (/ x (+ (* x x) 1)) (/.f64 (-.f64 (-.f64 (pow.f64 x #s(literal -2 binary64)) #s(literal 1 binary64)) (pow.f64 x #s(literal -4 binary64))) (neg.f64 x)))
#s(approx (/ x (+ (* x x) 1)) (/.f64 (-.f64 (+.f64 (pow.f64 x #s(literal -6 binary64)) (pow.f64 x #s(literal -2 binary64))) (-.f64 (pow.f64 x #s(literal -4 binary64)) #s(literal -1 binary64))) (neg.f64 x)))

eval3.0ms (0.1%)

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

Compiled 364 to 80 computations (78% saved)

prune35.0ms (1.2%)

Memory
-39.3MiB live, 5.7MiB allocated; 8ms collecting garbage
Pruning

4 alts after pruning (0 fresh and 4 done)

PrunedKeptTotal
New25025
Fresh000
Picked011
Done033
Total25429
Accuracy
100.0%
Counts
29 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
79.6%
(/.f64 x (fma.f64 x x #s(literal 1 binary64)))
31.2%
(/.f64 x #s(approx (+ (* x x) 1) (*.f64 x x)))
51.7%
#s(approx (/ x (+ (* x x) 1)) (/.f64 #s(literal 1 binary64) x))
50.8%
#s(approx (/ x (+ (* x x) 1)) x)
Compiler

Compiled 92 to 44 computations (52.2% saved)

regimes5.0ms (0.2%)

Memory
16.5MiB live, 16.5MiB allocated; 0ms 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)) (pow.f64 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

2 calls:

2.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)

regimes3.0ms (0.1%)

Memory
7.6MiB live, 7.6MiB 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
82.4%5(/.f64 x (+.f64 (*.f64 x x) #s(literal 1 binary64)))
98.3%2x
Compiler

Compiled 8 to 6 computations (25% saved)

regimes2.0ms (0.1%)

Memory
6.3MiB live, 6.3MiB 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.8%1(/.f64 x (+.f64 (*.f64 x x) #s(literal 1 binary64)))
50.8%1x
Compiler

Compiled 8 to 6 computations (25% saved)

bsearch2.0ms (0.1%)

Memory
3.1MiB live, 3.1MiB allocated; 0ms collecting garbage
Algorithm
binary-search
Stop Event
predicate-same
Steps
TimeLeftRight
1.0ms
15240761.66366503
19144353551.385674
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)

bsearch15.0ms (0.5%)

Memory
-38.2MiB live, 20.8MiB allocated; 8ms collecting garbage
Algorithm
binary-search
Stop Event
narrow-enough
Steps
TimeLeftRight
14.0ms
0.4076960925695956
3.655615172939831
Samples
6.0ms96×0valid
Compiler

Compiled 130 to 105 computations (19.2% saved)

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

simplify50.0ms (1.8%)

Memory
8.0MiB live, 54.7MiB allocated; 3ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01554
12254
24454
38554
413754
534454
6281254
7697954
Stop Event
node limit
Calls
Call 1
Inputs
(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 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)

derivations54.0ms (1.9%)

Memory
19.5MiB live, 67.1MiB allocated; 1ms collecting garbage
Stop Event
done
Compiler

Compiled 54 to 16 computations (70.4% saved)

preprocess100.0ms (3.5%)

Memory
-25.5MiB live, 75.7MiB allocated; 26ms collecting garbage
Compiler

Compiled 178 to 78 computations (56.2% saved)

end0.0ms (0%)

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

Profiling

Loading profile data...