Numeric.SpecFunctions:invIncompleteBetaWorker from math-functions-0.1.5.2, H

Time bar (total: 3.2s)

start0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

analyze0.0ms (0%)

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

Compiled 9 to 8 computations (11.1% saved)

sample574.0ms (18.1%)

Memory
4.9MiB live, 790.4MiB allocated
Samples
341.0ms8 256×0valid
Precisions
Click to see histograms. Total time spent on operations: 195.0ms
ival-div: 65.0ms (33.4% of total)
ival-mult: 61.0ms (31.3% of total)
ival-sub: 52.0ms (26.7% of total)
exact: 8.0ms (4.1% of total)
ival-true: 6.0ms (3.1% of total)
ival-assert: 3.0ms (1.5% of total)
Bogosity

explain68.0ms (2.1%)

Memory
-20.9MiB live, 140.5MiB allocated
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
00-0-#s(literal 6 binary64)
00-0-#s(literal 3 binary64)
00-0-(/.f64 (-.f64 (*.f64 x x) #s(literal 3 binary64)) #s(literal 6 binary64))
00-0-(*.f64 x x)
00-0-(-.f64 (*.f64 x x) #s(literal 3 binary64))
00-0-x
Confusion
Predicted +Predicted -
+00
-0256
Precision
0/0
Recall
0/0
Confusion?
Predicted +Predicted MaybePredicted -
+000
-00256
Precision?
0/0
Recall?
0/0
Freqs
test
numberfreq
0256
Total Confusion?
Predicted +Predicted MaybePredicted -
+000
-001
Precision?
0/0
Recall?
0/0
Samples
24.0ms512×0valid
Compiler

Compiled 47 to 22 computations (53.2% saved)

Precisions
Click to see histograms. Total time spent on operations: 13.0ms
ival-mult: 6.0ms (46.3% of total)
ival-div: 3.0ms (23.1% of total)
ival-sub: 2.0ms (15.4% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

preprocess18.0ms (0.6%)

Memory
34.8MiB live, 34.8MiB allocated
Algorithm
egg-herbie
Rules
40×associate-/l*
36×distribute-lft-neg-in
36×associate-*r*
32×sub-neg
30×div-sub
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0814
13114
26914
316614
429214
537114
639714
740514
067
097
1167
2227
3247
0246
Stop Event
iter limit
saturated
iter limit
saturated
Calls
Call 1
Inputs
(/.f64 (-.f64 (*.f64 x x) #s(literal 3 binary64)) #s(literal 6 binary64))
Outputs
(/.f64 (-.f64 (*.f64 x x) #s(literal 3 binary64)) #s(literal 6 binary64))
(/.f64 (fma.f64 x x #s(literal -3 binary64)) #s(literal 6 binary64))
Symmetry

(abs x)

Compiler

Compiled 7 to 6 computations (14.3% saved)

eval0.0ms (0%)

Memory
0.4MiB live, 0.4MiB allocated
Compiler

Compiled 0 to 1 computations (-∞% saved)

prune0.0ms (0%)

Memory
1.1MiB live, 1.0MiB allocated
Alt Table
Click to see full alt table
StatusAccuracyProgram
99.9%
(/.f64 (-.f64 (*.f64 x x) #s(literal 3 binary64)) #s(literal 6 binary64))
Compiler

Compiled 7 to 6 computations (14.3% saved)

simplify5.0ms (0.2%)

Memory
-33.0MiB live, 5.8MiB allocated
Algorithm
egg-herbie
Localize:

Found 3 expressions of interest:

NewMetricScoreProgram
cost-diff0
(*.f64 x x)
cost-diff0
(/.f64 (-.f64 (*.f64 x x) #s(literal 3 binary64)) #s(literal 6 binary64))
cost-diff128
(-.f64 (*.f64 x x) #s(literal 3 binary64))
Rules
lower-+.f64
lower-+.f32
lower-fma.f64
lower-/.f32
lower-fma.f32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0618
0918
11618
22218
32418
02416
Stop Event
iter limit
saturated
iter limit
Calls
Call 1
Inputs
(/.f64 (-.f64 (*.f64 x x) #s(literal 3 binary64)) #s(literal 6 binary64))
(-.f64 (*.f64 x x) #s(literal 3 binary64))
(*.f64 x x)
x
#s(literal 3 binary64)
#s(literal 6 binary64)
Outputs
(/.f64 (-.f64 (*.f64 x x) #s(literal 3 binary64)) #s(literal 6 binary64))
(/.f64 (fma.f64 x x #s(literal -3 binary64)) #s(literal 6 binary64))
(-.f64 (*.f64 x x) #s(literal 3 binary64))
(fma.f64 x x #s(literal -3 binary64))
(*.f64 x x)
x
#s(literal 3 binary64)
#s(literal 6 binary64)

localize15.0ms (0.5%)

Memory
27.0MiB live, 27.0MiB allocated
Localize:

Found 3 expressions of interest:

NewMetricScoreProgram
accuracy0
(-.f64 (*.f64 x x) #s(literal 3 binary64))
accuracy0
(*.f64 x x)
accuracy0.05859375
(/.f64 (-.f64 (*.f64 x x) #s(literal 3 binary64)) #s(literal 6 binary64))
Samples
10.0ms256×0valid
Compiler

Compiled 20 to 8 computations (60% saved)

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

series3.0ms (0.1%)

Memory
4.7MiB live, 4.7MiB allocated
Counts
3 → 36
Calls
Call 1
Inputs
#s(alt (-.f64 (*.f64 x x) #s(literal 3 binary64)) (patch (-.f64 (*.f64 x x) #s(literal 3 binary64)) #<representation binary64>) () ())
#s(alt (/.f64 (-.f64 (*.f64 x x) #s(literal 3 binary64)) #s(literal 6 binary64)) (patch (/.f64 (-.f64 (*.f64 x x) #s(literal 3 binary64)) #s(literal 6 binary64)) #<representation binary64>) () ())
#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())
Outputs
#s(alt -3 (taylor 0 x) (#s(alt (-.f64 (*.f64 x x) #s(literal 3 binary64)) (patch (-.f64 (*.f64 x x) #s(literal 3 binary64)) #<representation binary64>) () ())) ())
#s(alt (- (pow x 2) 3) (taylor 0 x) (#s(alt (-.f64 (*.f64 x x) #s(literal 3 binary64)) (patch (-.f64 (*.f64 x x) #s(literal 3 binary64)) #<representation binary64>) () ())) ())
#s(alt (- (pow x 2) 3) (taylor 0 x) (#s(alt (-.f64 (*.f64 x x) #s(literal 3 binary64)) (patch (-.f64 (*.f64 x x) #s(literal 3 binary64)) #<representation binary64>) () ())) ())
#s(alt (- (pow x 2) 3) (taylor 0 x) (#s(alt (-.f64 (*.f64 x x) #s(literal 3 binary64)) (patch (-.f64 (*.f64 x x) #s(literal 3 binary64)) #<representation binary64>) () ())) ())
#s(alt -1/2 (taylor 0 x) (#s(alt (/.f64 (-.f64 (*.f64 x x) #s(literal 3 binary64)) #s(literal 6 binary64)) (patch (/.f64 (-.f64 (*.f64 x x) #s(literal 3 binary64)) #s(literal 6 binary64)) #<representation binary64>) () ())) ())
#s(alt (- (* 1/6 (pow x 2)) 1/2) (taylor 0 x) (#s(alt (/.f64 (-.f64 (*.f64 x x) #s(literal 3 binary64)) #s(literal 6 binary64)) (patch (/.f64 (-.f64 (*.f64 x x) #s(literal 3 binary64)) #s(literal 6 binary64)) #<representation binary64>) () ())) ())
#s(alt (- (* 1/6 (pow x 2)) 1/2) (taylor 0 x) (#s(alt (/.f64 (-.f64 (*.f64 x x) #s(literal 3 binary64)) #s(literal 6 binary64)) (patch (/.f64 (-.f64 (*.f64 x x) #s(literal 3 binary64)) #s(literal 6 binary64)) #<representation binary64>) () ())) ())
#s(alt (- (* 1/6 (pow x 2)) 1/2) (taylor 0 x) (#s(alt (/.f64 (-.f64 (*.f64 x x) #s(literal 3 binary64)) #s(literal 6 binary64)) (patch (/.f64 (-.f64 (*.f64 x x) #s(literal 3 binary64)) #s(literal 6 binary64)) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor 0 x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor 0 x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor 0 x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor 0 x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor inf x) (#s(alt (-.f64 (*.f64 x x) #s(literal 3 binary64)) (patch (-.f64 (*.f64 x x) #s(literal 3 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- 1 (* 3 (/ 1 (pow x 2))))) (taylor inf x) (#s(alt (-.f64 (*.f64 x x) #s(literal 3 binary64)) (patch (-.f64 (*.f64 x x) #s(literal 3 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- 1 (* 3 (/ 1 (pow x 2))))) (taylor inf x) (#s(alt (-.f64 (*.f64 x x) #s(literal 3 binary64)) (patch (-.f64 (*.f64 x x) #s(literal 3 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- 1 (* 3 (/ 1 (pow x 2))))) (taylor inf x) (#s(alt (-.f64 (*.f64 x x) #s(literal 3 binary64)) (patch (-.f64 (*.f64 x x) #s(literal 3 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/6 (pow x 2)) (taylor inf x) (#s(alt (/.f64 (-.f64 (*.f64 x x) #s(literal 3 binary64)) #s(literal 6 binary64)) (patch (/.f64 (-.f64 (*.f64 x x) #s(literal 3 binary64)) #s(literal 6 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2))))) (taylor inf x) (#s(alt (/.f64 (-.f64 (*.f64 x x) #s(literal 3 binary64)) #s(literal 6 binary64)) (patch (/.f64 (-.f64 (*.f64 x x) #s(literal 3 binary64)) #s(literal 6 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2))))) (taylor inf x) (#s(alt (/.f64 (-.f64 (*.f64 x x) #s(literal 3 binary64)) #s(literal 6 binary64)) (patch (/.f64 (-.f64 (*.f64 x x) #s(literal 3 binary64)) #s(literal 6 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2))))) (taylor inf x) (#s(alt (/.f64 (-.f64 (*.f64 x x) #s(literal 3 binary64)) #s(literal 6 binary64)) (patch (/.f64 (-.f64 (*.f64 x x) #s(literal 3 binary64)) #s(literal 6 binary64)) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor inf x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor inf x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor inf x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor inf x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor -inf x) (#s(alt (-.f64 (*.f64 x x) #s(literal 3 binary64)) (patch (-.f64 (*.f64 x x) #s(literal 3 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- 1 (* 3 (/ 1 (pow x 2))))) (taylor -inf x) (#s(alt (-.f64 (*.f64 x x) #s(literal 3 binary64)) (patch (-.f64 (*.f64 x x) #s(literal 3 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- 1 (* 3 (/ 1 (pow x 2))))) (taylor -inf x) (#s(alt (-.f64 (*.f64 x x) #s(literal 3 binary64)) (patch (-.f64 (*.f64 x x) #s(literal 3 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- 1 (* 3 (/ 1 (pow x 2))))) (taylor -inf x) (#s(alt (-.f64 (*.f64 x x) #s(literal 3 binary64)) (patch (-.f64 (*.f64 x x) #s(literal 3 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/6 (pow x 2)) (taylor -inf x) (#s(alt (/.f64 (-.f64 (*.f64 x x) #s(literal 3 binary64)) #s(literal 6 binary64)) (patch (/.f64 (-.f64 (*.f64 x x) #s(literal 3 binary64)) #s(literal 6 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2))))) (taylor -inf x) (#s(alt (/.f64 (-.f64 (*.f64 x x) #s(literal 3 binary64)) #s(literal 6 binary64)) (patch (/.f64 (-.f64 (*.f64 x x) #s(literal 3 binary64)) #s(literal 6 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2))))) (taylor -inf x) (#s(alt (/.f64 (-.f64 (*.f64 x x) #s(literal 3 binary64)) #s(literal 6 binary64)) (patch (/.f64 (-.f64 (*.f64 x x) #s(literal 3 binary64)) #s(literal 6 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2))))) (taylor -inf x) (#s(alt (/.f64 (-.f64 (*.f64 x x) #s(literal 3 binary64)) #s(literal 6 binary64)) (patch (/.f64 (-.f64 (*.f64 x x) #s(literal 3 binary64)) #s(literal 6 binary64)) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor -inf x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor -inf x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor -inf x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor -inf x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
Calls

3 calls:

TimeVariablePointExpression
1.0ms
x
@inf
((- (* x x) 3) (/ (- (* x x) 3) 6) (* x x))
1.0ms
x
@0
((- (* x x) 3) (/ (- (* x x) 3) 6) (* x x))
0.0ms
x
@-inf
((- (* x x) 3) (/ (- (* x x) 3) 6) (* x x))

simplify115.0ms (3.6%)

Memory
-19.9MiB live, 97.3MiB allocated
Algorithm
egg-herbie
Rules
4 388×lower-*.f64
4 388×lower-*.f32
2 828×lower-fma.f64
2 828×lower-fma.f32
1 846×cube-prod
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
019162
143162
298162
3236162
4759162
51590162
62334162
73514162
84236162
95345162
106402162
117126162
08039144
Stop Event
iter limit
node limit
Counts
36 → 36
Calls
Call 1
Inputs
-3
(- (pow x 2) 3)
(- (pow x 2) 3)
(- (pow x 2) 3)
-1/2
(- (* 1/6 (pow x 2)) 1/2)
(- (* 1/6 (pow x 2)) 1/2)
(- (* 1/6 (pow x 2)) 1/2)
(pow x 2)
(pow x 2)
(pow x 2)
(pow x 2)
(pow x 2)
(* (pow x 2) (- 1 (* 3 (/ 1 (pow x 2)))))
(* (pow x 2) (- 1 (* 3 (/ 1 (pow x 2)))))
(* (pow x 2) (- 1 (* 3 (/ 1 (pow x 2)))))
(* 1/6 (pow x 2))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(pow x 2)
(pow x 2)
(pow x 2)
(pow x 2)
(pow x 2)
(* (pow x 2) (- 1 (* 3 (/ 1 (pow x 2)))))
(* (pow x 2) (- 1 (* 3 (/ 1 (pow x 2)))))
(* (pow x 2) (- 1 (* 3 (/ 1 (pow x 2)))))
(* 1/6 (pow x 2))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(pow x 2)
(pow x 2)
(pow x 2)
(pow x 2)
Outputs
-3
#s(literal -3 binary64)
(- (pow x 2) 3)
(fma.f64 x x #s(literal -3 binary64))
(- (pow x 2) 3)
(fma.f64 x x #s(literal -3 binary64))
(- (pow x 2) 3)
(fma.f64 x x #s(literal -3 binary64))
-1/2
#s(literal -1/2 binary64)
(- (* 1/6 (pow x 2)) 1/2)
(fma.f64 #s(literal 1/6 binary64) (*.f64 x x) #s(literal -1/2 binary64))
(- (* 1/6 (pow x 2)) 1/2)
(fma.f64 #s(literal 1/6 binary64) (*.f64 x x) #s(literal -1/2 binary64))
(- (* 1/6 (pow x 2)) 1/2)
(fma.f64 #s(literal 1/6 binary64) (*.f64 x x) #s(literal -1/2 binary64))
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(* (pow x 2) (- 1 (* 3 (/ 1 (pow x 2)))))
(fma.f64 x x #s(literal -3 binary64))
(* (pow x 2) (- 1 (* 3 (/ 1 (pow x 2)))))
(fma.f64 x x #s(literal -3 binary64))
(* (pow x 2) (- 1 (* 3 (/ 1 (pow x 2)))))
(fma.f64 x x #s(literal -3 binary64))
(* 1/6 (pow x 2))
(*.f64 #s(literal 1/6 binary64) (*.f64 x x))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(fma.f64 #s(literal 1/6 binary64) (*.f64 x x) #s(literal -1/2 binary64))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(fma.f64 #s(literal 1/6 binary64) (*.f64 x x) #s(literal -1/2 binary64))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(fma.f64 #s(literal 1/6 binary64) (*.f64 x x) #s(literal -1/2 binary64))
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(* (pow x 2) (- 1 (* 3 (/ 1 (pow x 2)))))
(fma.f64 x x #s(literal -3 binary64))
(* (pow x 2) (- 1 (* 3 (/ 1 (pow x 2)))))
(fma.f64 x x #s(literal -3 binary64))
(* (pow x 2) (- 1 (* 3 (/ 1 (pow x 2)))))
(fma.f64 x x #s(literal -3 binary64))
(* 1/6 (pow x 2))
(*.f64 #s(literal 1/6 binary64) (*.f64 x x))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(fma.f64 #s(literal 1/6 binary64) (*.f64 x x) #s(literal -1/2 binary64))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(fma.f64 #s(literal 1/6 binary64) (*.f64 x x) #s(literal -1/2 binary64))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(fma.f64 #s(literal 1/6 binary64) (*.f64 x x) #s(literal -1/2 binary64))
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)

rewrite168.0ms (5.3%)

Memory
20.3MiB live, 209.4MiB allocated
Rules
5 168×lower-/.f32
5 166×lower-/.f64
4 318×lower-*.f32
4 316×lower-*.f64
4 062×lower-fma.f64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0615
0915
14215
223015
3183115
0868513
Stop Event
iter limit
node limit
iter limit
Counts
3 → 516
Calls
Call 1
Inputs
(-.f64 (*.f64 x x) #s(literal 3 binary64))
(/.f64 (-.f64 (*.f64 x x) #s(literal 3 binary64)) #s(literal 6 binary64))
(*.f64 x x)
Outputs
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>

eval133.0ms (4.2%)

Memory
-18.8MiB live, 107.8MiB allocated
Compiler

Compiled 14 583 to 1 649 computations (88.7% saved)

prune12.0ms (0.4%)

Memory
30.9MiB live, 30.9MiB allocated
Pruning

6 alts after pruning (6 fresh and 0 done)

PrunedKeptTotal
New5466552
Fresh000
Picked101
Done000
Total5476553
Accuracy
100.0%
Counts
553 → 6
Alt Table
Click to see full alt table
StatusAccuracyProgram
99.9%
(fma.f64 (*.f64 x #s(literal 1/6 binary64)) x #s(literal -1/2 binary64))
69.3%
(/.f64 (fma.f64 (pow.f64 x #s(literal 3 binary64)) (/.f64 x (fma.f64 x x #s(literal 3 binary64))) (neg.f64 (/.f64 #s(literal 9 binary64) (fma.f64 x x #s(literal 3 binary64))))) #s(literal 6 binary64))
45.9%
(/.f64 #s(approx (- (* x x) 3) (*.f64 x x)) #s(literal 6 binary64))
99.9%
(/.f64 #s(literal 1 binary64) (/.f64 #s(literal 6 binary64) (fma.f64 x x #s(literal -3 binary64))))
45.8%
#s(approx (/ (- (* x x) 3) 6) (*.f64 #s(literal 1/6 binary64) (*.f64 x x)))
53.8%
#s(approx (/ (- (* x x) 3) 6) #s(literal -1/2 binary64))
Compiler

Compiled 94 to 72 computations (23.4% saved)

simplify21.0ms (0.7%)

Memory
-34.7MiB live, 4.5MiB allocated
Algorithm
egg-herbie
Localize:

Found 12 expressions of interest:

NewMetricScoreProgram
cost-diff0
(*.f64 x x)
cost-diff0
#s(approx (- (* x x) 3) (*.f64 x x))
cost-diff0
(/.f64 #s(approx (- (* x x) 3) (*.f64 x x)) #s(literal 6 binary64))
cost-diff0
(*.f64 x #s(literal 1/6 binary64))
cost-diff0
(fma.f64 (*.f64 x #s(literal 1/6 binary64)) x #s(literal -1/2 binary64))
cost-diff0
(*.f64 x x)
cost-diff0
(*.f64 #s(literal 1/6 binary64) (*.f64 x x))
cost-diff0
#s(approx (/ (- (* x x) 3) 6) (*.f64 #s(literal 1/6 binary64) (*.f64 x x)))
cost-diff0
#s(approx (/ (- (* x x) 3) 6) #s(literal -1/2 binary64))
cost-diff0
(fma.f64 x x #s(literal -3 binary64))
cost-diff0
(/.f64 #s(literal 6 binary64) (fma.f64 x x #s(literal -3 binary64)))
cost-diff1088
(/.f64 #s(literal 1 binary64) (/.f64 #s(literal 6 binary64) (fma.f64 x x #s(literal -3 binary64))))
Rules
22×lower-*.f32
16×lower-*.f64
14×lower-fma.f32
12×lower-+.f64
12×lower-/.f32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02192
03086
15086
25786
35986
05986
Stop Event
iter limit
saturated
iter limit
Calls
Call 1
Inputs
(/.f64 #s(literal 1 binary64) (/.f64 #s(literal 6 binary64) (fma.f64 x x #s(literal -3 binary64))))
#s(literal 1 binary64)
(/.f64 #s(literal 6 binary64) (fma.f64 x x #s(literal -3 binary64)))
#s(literal 6 binary64)
(fma.f64 x x #s(literal -3 binary64))
x
#s(literal -3 binary64)
#s(approx (/ (- (* x x) 3) 6) #s(literal -1/2 binary64))
#s(literal -1/2 binary64)
#s(approx (/ (- (* x x) 3) 6) (*.f64 #s(literal 1/6 binary64) (*.f64 x x)))
(*.f64 #s(literal 1/6 binary64) (*.f64 x x))
#s(literal 1/6 binary64)
(*.f64 x x)
x
(fma.f64 (*.f64 x #s(literal 1/6 binary64)) x #s(literal -1/2 binary64))
(*.f64 x #s(literal 1/6 binary64))
x
#s(literal 1/6 binary64)
#s(literal -1/2 binary64)
(/.f64 #s(approx (- (* x x) 3) (*.f64 x x)) #s(literal 6 binary64))
#s(approx (- (* x x) 3) (*.f64 x x))
(*.f64 x x)
x
#s(literal 6 binary64)
Outputs
(/.f64 #s(literal 1 binary64) (/.f64 #s(literal 6 binary64) (fma.f64 x x #s(literal -3 binary64))))
(*.f64 #s(literal 1/6 binary64) (fma.f64 x x #s(literal -3 binary64)))
#s(literal 1 binary64)
(/.f64 #s(literal 6 binary64) (fma.f64 x x #s(literal -3 binary64)))
#s(literal 6 binary64)
(fma.f64 x x #s(literal -3 binary64))
x
#s(literal -3 binary64)
#s(approx (/ (- (* x x) 3) 6) #s(literal -1/2 binary64))
#s(literal -1/2 binary64)
#s(approx (/ (- (* x x) 3) 6) (*.f64 #s(literal 1/6 binary64) (*.f64 x x)))
#s(approx (/ (- (* x x) 3) 6) (*.f64 (*.f64 #s(literal 1/6 binary64) x) x))
(*.f64 #s(literal 1/6 binary64) (*.f64 x x))
(*.f64 (*.f64 #s(literal 1/6 binary64) x) x)
#s(literal 1/6 binary64)
(*.f64 x x)
x
(fma.f64 (*.f64 x #s(literal 1/6 binary64)) x #s(literal -1/2 binary64))
(*.f64 #s(literal 1/6 binary64) (fma.f64 x x #s(literal -3 binary64)))
(*.f64 x #s(literal 1/6 binary64))
(*.f64 #s(literal 1/6 binary64) x)
x
#s(literal 1/6 binary64)
#s(literal -1/2 binary64)
(/.f64 #s(approx (- (* x x) 3) (*.f64 x x)) #s(literal 6 binary64))
#s(approx (- (* x x) 3) (*.f64 x x))
(*.f64 x x)
x
#s(literal 6 binary64)

localize61.0ms (1.9%)

Memory
4.3MiB live, 42.3MiB allocated
Localize:

Found 12 expressions of interest:

NewMetricScoreProgram
accuracy0
(*.f64 x x)
accuracy0.05859375
(/.f64 #s(approx (- (* x x) 3) (*.f64 x x)) #s(literal 6 binary64))
accuracy34.6125347813372
#s(approx (- (* x x) 3) (*.f64 x x))
accuracy0.0625
(fma.f64 (*.f64 x #s(literal 1/6 binary64)) x #s(literal -1/2 binary64))
accuracy0.3359375
(*.f64 x #s(literal 1/6 binary64))
accuracy0
(*.f64 x x)
accuracy0.18359375
(*.f64 #s(literal 1/6 binary64) (*.f64 x x))
accuracy34.60353183682213
#s(approx (/ (- (* x x) 3) 6) (*.f64 #s(literal 1/6 binary64) (*.f64 x x)))
accuracy29.578977325629353
#s(approx (/ (- (* x x) 3) 6) #s(literal -1/2 binary64))
accuracy0
(fma.f64 x x #s(literal -3 binary64))
accuracy0.0703125
(/.f64 #s(literal 1 binary64) (/.f64 #s(literal 6 binary64) (fma.f64 x x #s(literal -3 binary64))))
accuracy0.23466893681179196
(/.f64 #s(literal 6 binary64) (fma.f64 x x #s(literal -3 binary64)))
Samples
29.0ms256×0valid
Compiler

Compiled 82 to 19 computations (76.8% saved)

Precisions
Click to see histograms. Total time spent on operations: 18.0ms
ival-mult: 6.0ms (32.8% of total)
ival-div: 5.0ms (27.3% of total)
const: 3.0ms (16.4% of total)
ival-add: 2.0ms (10.9% of total)
ival-sub: 1.0ms (5.5% of total)
exact: 1.0ms (5.5% of total)
ival-true: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series7.0ms (0.2%)

Memory
7.8MiB live, 7.8MiB allocated
Counts
11 → 132
Calls
Call 1
Inputs
#s(alt (/.f64 #s(literal 1 binary64) (/.f64 #s(literal 6 binary64) (fma.f64 x x #s(literal -3 binary64)))) (patch (/.f64 #s(literal 1 binary64) (/.f64 #s(literal 6 binary64) (fma.f64 x x #s(literal -3 binary64)))) #<representation binary64>) () ())
#s(alt (/.f64 #s(literal 6 binary64) (fma.f64 x x #s(literal -3 binary64))) (patch (/.f64 #s(literal 6 binary64) (fma.f64 x x #s(literal -3 binary64))) #<representation binary64>) () ())
#s(alt (fma.f64 x x #s(literal -3 binary64)) (patch (fma.f64 x x #s(literal -3 binary64)) #<representation binary64>) () ())
#s(alt #s(approx (/ (- (* x x) 3) 6) #s(literal -1/2 binary64)) (patch #s(approx (/ (- (* x x) 3) 6) #s(literal -1/2 binary64)) #<representation binary64>) () ())
#s(alt #s(approx (/ (- (* x x) 3) 6) (*.f64 #s(literal 1/6 binary64) (*.f64 x x))) (patch #s(approx (/ (- (* x x) 3) 6) (*.f64 #s(literal 1/6 binary64) (*.f64 x x))) #<representation binary64>) () ())
#s(alt (*.f64 #s(literal 1/6 binary64) (*.f64 x x)) (patch (*.f64 #s(literal 1/6 binary64) (*.f64 x x)) #<representation binary64>) () ())
#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())
#s(alt (fma.f64 (*.f64 x #s(literal 1/6 binary64)) x #s(literal -1/2 binary64)) (patch (fma.f64 (*.f64 x #s(literal 1/6 binary64)) x #s(literal -1/2 binary64)) #<representation binary64>) () ())
#s(alt (*.f64 x #s(literal 1/6 binary64)) (patch (*.f64 x #s(literal 1/6 binary64)) #<representation binary64>) () ())
#s(alt (/.f64 #s(approx (- (* x x) 3) (*.f64 x x)) #s(literal 6 binary64)) (patch (/.f64 #s(approx (- (* x x) 3) (*.f64 x x)) #s(literal 6 binary64)) #<representation binary64>) () ())
#s(alt #s(approx (- (* x x) 3) (*.f64 x x)) (patch #s(approx (- (* x x) 3) (*.f64 x x)) #<representation binary64>) () ())
Outputs
#s(alt -1/2 (taylor 0 x) (#s(alt (/.f64 #s(literal 1 binary64) (/.f64 #s(literal 6 binary64) (fma.f64 x x #s(literal -3 binary64)))) (patch (/.f64 #s(literal 1 binary64) (/.f64 #s(literal 6 binary64) (fma.f64 x x #s(literal -3 binary64)))) #<representation binary64>) () ())) ())
#s(alt (- (* 1/6 (pow x 2)) 1/2) (taylor 0 x) (#s(alt (/.f64 #s(literal 1 binary64) (/.f64 #s(literal 6 binary64) (fma.f64 x x #s(literal -3 binary64)))) (patch (/.f64 #s(literal 1 binary64) (/.f64 #s(literal 6 binary64) (fma.f64 x x #s(literal -3 binary64)))) #<representation binary64>) () ())) ())
#s(alt (- (* 1/6 (pow x 2)) 1/2) (taylor 0 x) (#s(alt (/.f64 #s(literal 1 binary64) (/.f64 #s(literal 6 binary64) (fma.f64 x x #s(literal -3 binary64)))) (patch (/.f64 #s(literal 1 binary64) (/.f64 #s(literal 6 binary64) (fma.f64 x x #s(literal -3 binary64)))) #<representation binary64>) () ())) ())
#s(alt (- (* 1/6 (pow x 2)) 1/2) (taylor 0 x) (#s(alt (/.f64 #s(literal 1 binary64) (/.f64 #s(literal 6 binary64) (fma.f64 x x #s(literal -3 binary64)))) (patch (/.f64 #s(literal 1 binary64) (/.f64 #s(literal 6 binary64) (fma.f64 x x #s(literal -3 binary64)))) #<representation binary64>) () ())) ())
#s(alt -2 (taylor 0 x) (#s(alt (/.f64 #s(literal 6 binary64) (fma.f64 x x #s(literal -3 binary64))) (patch (/.f64 #s(literal 6 binary64) (fma.f64 x x #s(literal -3 binary64))) #<representation binary64>) () ())) ())
#s(alt (- (* -2/3 (pow x 2)) 2) (taylor 0 x) (#s(alt (/.f64 #s(literal 6 binary64) (fma.f64 x x #s(literal -3 binary64))) (patch (/.f64 #s(literal 6 binary64) (fma.f64 x x #s(literal -3 binary64))) #<representation binary64>) () ())) ())
#s(alt (- (* (pow x 2) (- (* -2/9 (pow x 2)) 2/3)) 2) (taylor 0 x) (#s(alt (/.f64 #s(literal 6 binary64) (fma.f64 x x #s(literal -3 binary64))) (patch (/.f64 #s(literal 6 binary64) (fma.f64 x x #s(literal -3 binary64))) #<representation binary64>) () ())) ())
#s(alt (- (* (pow x 2) (- (* (pow x 2) (- (* -2/27 (pow x 2)) 2/9)) 2/3)) 2) (taylor 0 x) (#s(alt (/.f64 #s(literal 6 binary64) (fma.f64 x x #s(literal -3 binary64))) (patch (/.f64 #s(literal 6 binary64) (fma.f64 x x #s(literal -3 binary64))) #<representation binary64>) () ())) ())
#s(alt -3 (taylor 0 x) (#s(alt (fma.f64 x x #s(literal -3 binary64)) (patch (fma.f64 x x #s(literal -3 binary64)) #<representation binary64>) () ())) ())
#s(alt (- (pow x 2) 3) (taylor 0 x) (#s(alt (fma.f64 x x #s(literal -3 binary64)) (patch (fma.f64 x x #s(literal -3 binary64)) #<representation binary64>) () ())) ())
#s(alt (- (pow x 2) 3) (taylor 0 x) (#s(alt (fma.f64 x x #s(literal -3 binary64)) (patch (fma.f64 x x #s(literal -3 binary64)) #<representation binary64>) () ())) ())
#s(alt (- (pow x 2) 3) (taylor 0 x) (#s(alt (fma.f64 x x #s(literal -3 binary64)) (patch (fma.f64 x x #s(literal -3 binary64)) #<representation binary64>) () ())) ())
#s(alt -1/2 (taylor 0 x) (#s(alt #s(approx (/ (- (* x x) 3) 6) #s(literal -1/2 binary64)) (patch #s(approx (/ (- (* x x) 3) 6) #s(literal -1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (- (* 1/6 (pow x 2)) 1/2) (taylor 0 x) (#s(alt #s(approx (/ (- (* x x) 3) 6) #s(literal -1/2 binary64)) (patch #s(approx (/ (- (* x x) 3) 6) #s(literal -1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (- (* 1/6 (pow x 2)) 1/2) (taylor 0 x) (#s(alt #s(approx (/ (- (* x x) 3) 6) #s(literal -1/2 binary64)) (patch #s(approx (/ (- (* x x) 3) 6) #s(literal -1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (- (* 1/6 (pow x 2)) 1/2) (taylor 0 x) (#s(alt #s(approx (/ (- (* x x) 3) 6) #s(literal -1/2 binary64)) (patch #s(approx (/ (- (* x x) 3) 6) #s(literal -1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt -1/2 (taylor 0 x) (#s(alt #s(approx (/ (- (* x x) 3) 6) (*.f64 #s(literal 1/6 binary64) (*.f64 x x))) (patch #s(approx (/ (- (* x x) 3) 6) (*.f64 #s(literal 1/6 binary64) (*.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (- (* 1/6 (pow x 2)) 1/2) (taylor 0 x) (#s(alt #s(approx (/ (- (* x x) 3) 6) (*.f64 #s(literal 1/6 binary64) (*.f64 x x))) (patch #s(approx (/ (- (* x x) 3) 6) (*.f64 #s(literal 1/6 binary64) (*.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (- (* 1/6 (pow x 2)) 1/2) (taylor 0 x) (#s(alt #s(approx (/ (- (* x x) 3) 6) (*.f64 #s(literal 1/6 binary64) (*.f64 x x))) (patch #s(approx (/ (- (* x x) 3) 6) (*.f64 #s(literal 1/6 binary64) (*.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (- (* 1/6 (pow x 2)) 1/2) (taylor 0 x) (#s(alt #s(approx (/ (- (* x x) 3) 6) (*.f64 #s(literal 1/6 binary64) (*.f64 x x))) (patch #s(approx (/ (- (* x x) 3) 6) (*.f64 #s(literal 1/6 binary64) (*.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (* 1/6 (pow x 2)) (taylor 0 x) (#s(alt (*.f64 #s(literal 1/6 binary64) (*.f64 x x)) (patch (*.f64 #s(literal 1/6 binary64) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (* 1/6 (pow x 2)) (taylor 0 x) (#s(alt (*.f64 #s(literal 1/6 binary64) (*.f64 x x)) (patch (*.f64 #s(literal 1/6 binary64) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (* 1/6 (pow x 2)) (taylor 0 x) (#s(alt (*.f64 #s(literal 1/6 binary64) (*.f64 x x)) (patch (*.f64 #s(literal 1/6 binary64) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (* 1/6 (pow x 2)) (taylor 0 x) (#s(alt (*.f64 #s(literal 1/6 binary64) (*.f64 x x)) (patch (*.f64 #s(literal 1/6 binary64) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor 0 x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor 0 x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor 0 x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor 0 x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt -1/2 (taylor 0 x) (#s(alt (fma.f64 (*.f64 x #s(literal 1/6 binary64)) x #s(literal -1/2 binary64)) (patch (fma.f64 (*.f64 x #s(literal 1/6 binary64)) x #s(literal -1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (- (* 1/6 (pow x 2)) 1/2) (taylor 0 x) (#s(alt (fma.f64 (*.f64 x #s(literal 1/6 binary64)) x #s(literal -1/2 binary64)) (patch (fma.f64 (*.f64 x #s(literal 1/6 binary64)) x #s(literal -1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (- (* 1/6 (pow x 2)) 1/2) (taylor 0 x) (#s(alt (fma.f64 (*.f64 x #s(literal 1/6 binary64)) x #s(literal -1/2 binary64)) (patch (fma.f64 (*.f64 x #s(literal 1/6 binary64)) x #s(literal -1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (- (* 1/6 (pow x 2)) 1/2) (taylor 0 x) (#s(alt (fma.f64 (*.f64 x #s(literal 1/6 binary64)) x #s(literal -1/2 binary64)) (patch (fma.f64 (*.f64 x #s(literal 1/6 binary64)) x #s(literal -1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/6 x) (taylor 0 x) (#s(alt (*.f64 x #s(literal 1/6 binary64)) (patch (*.f64 x #s(literal 1/6 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/6 x) (taylor 0 x) (#s(alt (*.f64 x #s(literal 1/6 binary64)) (patch (*.f64 x #s(literal 1/6 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/6 x) (taylor 0 x) (#s(alt (*.f64 x #s(literal 1/6 binary64)) (patch (*.f64 x #s(literal 1/6 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/6 x) (taylor 0 x) (#s(alt (*.f64 x #s(literal 1/6 binary64)) (patch (*.f64 x #s(literal 1/6 binary64)) #<representation binary64>) () ())) ())
#s(alt -1/2 (taylor 0 x) (#s(alt (/.f64 #s(approx (- (* x x) 3) (*.f64 x x)) #s(literal 6 binary64)) (patch (/.f64 #s(approx (- (* x x) 3) (*.f64 x x)) #s(literal 6 binary64)) #<representation binary64>) () ())) ())
#s(alt (- (* 1/6 (pow x 2)) 1/2) (taylor 0 x) (#s(alt (/.f64 #s(approx (- (* x x) 3) (*.f64 x x)) #s(literal 6 binary64)) (patch (/.f64 #s(approx (- (* x x) 3) (*.f64 x x)) #s(literal 6 binary64)) #<representation binary64>) () ())) ())
#s(alt (- (* 1/6 (pow x 2)) 1/2) (taylor 0 x) (#s(alt (/.f64 #s(approx (- (* x x) 3) (*.f64 x x)) #s(literal 6 binary64)) (patch (/.f64 #s(approx (- (* x x) 3) (*.f64 x x)) #s(literal 6 binary64)) #<representation binary64>) () ())) ())
#s(alt (- (* 1/6 (pow x 2)) 1/2) (taylor 0 x) (#s(alt (/.f64 #s(approx (- (* x x) 3) (*.f64 x x)) #s(literal 6 binary64)) (patch (/.f64 #s(approx (- (* x x) 3) (*.f64 x x)) #s(literal 6 binary64)) #<representation binary64>) () ())) ())
#s(alt -3 (taylor 0 x) (#s(alt #s(approx (- (* x x) 3) (*.f64 x x)) (patch #s(approx (- (* x x) 3) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (- (pow x 2) 3) (taylor 0 x) (#s(alt #s(approx (- (* x x) 3) (*.f64 x x)) (patch #s(approx (- (* x x) 3) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (- (pow x 2) 3) (taylor 0 x) (#s(alt #s(approx (- (* x x) 3) (*.f64 x x)) (patch #s(approx (- (* x x) 3) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (- (pow x 2) 3) (taylor 0 x) (#s(alt #s(approx (- (* x x) 3) (*.f64 x x)) (patch #s(approx (- (* x x) 3) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (* 1/6 (pow x 2)) (taylor inf x) (#s(alt (/.f64 #s(literal 1 binary64) (/.f64 #s(literal 6 binary64) (fma.f64 x x #s(literal -3 binary64)))) (patch (/.f64 #s(literal 1 binary64) (/.f64 #s(literal 6 binary64) (fma.f64 x x #s(literal -3 binary64)))) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2))))) (taylor inf x) (#s(alt (/.f64 #s(literal 1 binary64) (/.f64 #s(literal 6 binary64) (fma.f64 x x #s(literal -3 binary64)))) (patch (/.f64 #s(literal 1 binary64) (/.f64 #s(literal 6 binary64) (fma.f64 x x #s(literal -3 binary64)))) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2))))) (taylor inf x) (#s(alt (/.f64 #s(literal 1 binary64) (/.f64 #s(literal 6 binary64) (fma.f64 x x #s(literal -3 binary64)))) (patch (/.f64 #s(literal 1 binary64) (/.f64 #s(literal 6 binary64) (fma.f64 x x #s(literal -3 binary64)))) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2))))) (taylor inf x) (#s(alt (/.f64 #s(literal 1 binary64) (/.f64 #s(literal 6 binary64) (fma.f64 x x #s(literal -3 binary64)))) (patch (/.f64 #s(literal 1 binary64) (/.f64 #s(literal 6 binary64) (fma.f64 x x #s(literal -3 binary64)))) #<representation binary64>) () ())) ())
#s(alt (/ 6 (pow x 2)) (taylor inf x) (#s(alt (/.f64 #s(literal 6 binary64) (fma.f64 x x #s(literal -3 binary64))) (patch (/.f64 #s(literal 6 binary64) (fma.f64 x x #s(literal -3 binary64))) #<representation binary64>) () ())) ())
#s(alt (/ (+ 6 (* 18 (/ 1 (pow x 2)))) (pow x 2)) (taylor inf x) (#s(alt (/.f64 #s(literal 6 binary64) (fma.f64 x x #s(literal -3 binary64))) (patch (/.f64 #s(literal 6 binary64) (fma.f64 x x #s(literal -3 binary64))) #<representation binary64>) () ())) ())
#s(alt (/ (+ 6 (+ (* 18 (/ 1 (pow x 2))) (/ 54 (pow x 4)))) (pow x 2)) (taylor inf x) (#s(alt (/.f64 #s(literal 6 binary64) (fma.f64 x x #s(literal -3 binary64))) (patch (/.f64 #s(literal 6 binary64) (fma.f64 x x #s(literal -3 binary64))) #<representation binary64>) () ())) ())
#s(alt (/ (+ 6 (+ (* 18 (/ 1 (pow x 2))) (+ (* 162 (/ 1 (pow x 6))) (/ 54 (pow x 4))))) (pow x 2)) (taylor inf x) (#s(alt (/.f64 #s(literal 6 binary64) (fma.f64 x x #s(literal -3 binary64))) (patch (/.f64 #s(literal 6 binary64) (fma.f64 x x #s(literal -3 binary64))) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor inf x) (#s(alt (fma.f64 x x #s(literal -3 binary64)) (patch (fma.f64 x x #s(literal -3 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- 1 (* 3 (/ 1 (pow x 2))))) (taylor inf x) (#s(alt (fma.f64 x x #s(literal -3 binary64)) (patch (fma.f64 x x #s(literal -3 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- 1 (* 3 (/ 1 (pow x 2))))) (taylor inf x) (#s(alt (fma.f64 x x #s(literal -3 binary64)) (patch (fma.f64 x x #s(literal -3 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- 1 (* 3 (/ 1 (pow x 2))))) (taylor inf x) (#s(alt (fma.f64 x x #s(literal -3 binary64)) (patch (fma.f64 x x #s(literal -3 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/6 (pow x 2)) (taylor inf x) (#s(alt #s(approx (/ (- (* x x) 3) 6) #s(literal -1/2 binary64)) (patch #s(approx (/ (- (* x x) 3) 6) #s(literal -1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2))))) (taylor inf x) (#s(alt #s(approx (/ (- (* x x) 3) 6) #s(literal -1/2 binary64)) (patch #s(approx (/ (- (* x x) 3) 6) #s(literal -1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2))))) (taylor inf x) (#s(alt #s(approx (/ (- (* x x) 3) 6) #s(literal -1/2 binary64)) (patch #s(approx (/ (- (* x x) 3) 6) #s(literal -1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2))))) (taylor inf x) (#s(alt #s(approx (/ (- (* x x) 3) 6) #s(literal -1/2 binary64)) (patch #s(approx (/ (- (* x x) 3) 6) #s(literal -1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/6 (pow x 2)) (taylor inf x) (#s(alt #s(approx (/ (- (* x x) 3) 6) (*.f64 #s(literal 1/6 binary64) (*.f64 x x))) (patch #s(approx (/ (- (* x x) 3) 6) (*.f64 #s(literal 1/6 binary64) (*.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2))))) (taylor inf x) (#s(alt #s(approx (/ (- (* x x) 3) 6) (*.f64 #s(literal 1/6 binary64) (*.f64 x x))) (patch #s(approx (/ (- (* x x) 3) 6) (*.f64 #s(literal 1/6 binary64) (*.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2))))) (taylor inf x) (#s(alt #s(approx (/ (- (* x x) 3) 6) (*.f64 #s(literal 1/6 binary64) (*.f64 x x))) (patch #s(approx (/ (- (* x x) 3) 6) (*.f64 #s(literal 1/6 binary64) (*.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2))))) (taylor inf x) (#s(alt #s(approx (/ (- (* x x) 3) 6) (*.f64 #s(literal 1/6 binary64) (*.f64 x x))) (patch #s(approx (/ (- (* x x) 3) 6) (*.f64 #s(literal 1/6 binary64) (*.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (* 1/6 (pow x 2)) (taylor inf x) (#s(alt (*.f64 #s(literal 1/6 binary64) (*.f64 x x)) (patch (*.f64 #s(literal 1/6 binary64) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (* 1/6 (pow x 2)) (taylor inf x) (#s(alt (*.f64 #s(literal 1/6 binary64) (*.f64 x x)) (patch (*.f64 #s(literal 1/6 binary64) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (* 1/6 (pow x 2)) (taylor inf x) (#s(alt (*.f64 #s(literal 1/6 binary64) (*.f64 x x)) (patch (*.f64 #s(literal 1/6 binary64) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (* 1/6 (pow x 2)) (taylor inf x) (#s(alt (*.f64 #s(literal 1/6 binary64) (*.f64 x x)) (patch (*.f64 #s(literal 1/6 binary64) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor inf x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor inf x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor inf x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor inf x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt (* 1/6 (pow x 2)) (taylor inf x) (#s(alt (fma.f64 (*.f64 x #s(literal 1/6 binary64)) x #s(literal -1/2 binary64)) (patch (fma.f64 (*.f64 x #s(literal 1/6 binary64)) x #s(literal -1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2))))) (taylor inf x) (#s(alt (fma.f64 (*.f64 x #s(literal 1/6 binary64)) x #s(literal -1/2 binary64)) (patch (fma.f64 (*.f64 x #s(literal 1/6 binary64)) x #s(literal -1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2))))) (taylor inf x) (#s(alt (fma.f64 (*.f64 x #s(literal 1/6 binary64)) x #s(literal -1/2 binary64)) (patch (fma.f64 (*.f64 x #s(literal 1/6 binary64)) x #s(literal -1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2))))) (taylor inf x) (#s(alt (fma.f64 (*.f64 x #s(literal 1/6 binary64)) x #s(literal -1/2 binary64)) (patch (fma.f64 (*.f64 x #s(literal 1/6 binary64)) x #s(literal -1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/6 x) (taylor inf x) (#s(alt (*.f64 x #s(literal 1/6 binary64)) (patch (*.f64 x #s(literal 1/6 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/6 x) (taylor inf x) (#s(alt (*.f64 x #s(literal 1/6 binary64)) (patch (*.f64 x #s(literal 1/6 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/6 x) (taylor inf x) (#s(alt (*.f64 x #s(literal 1/6 binary64)) (patch (*.f64 x #s(literal 1/6 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/6 x) (taylor inf x) (#s(alt (*.f64 x #s(literal 1/6 binary64)) (patch (*.f64 x #s(literal 1/6 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/6 (pow x 2)) (taylor inf x) (#s(alt (/.f64 #s(approx (- (* x x) 3) (*.f64 x x)) #s(literal 6 binary64)) (patch (/.f64 #s(approx (- (* x x) 3) (*.f64 x x)) #s(literal 6 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2))))) (taylor inf x) (#s(alt (/.f64 #s(approx (- (* x x) 3) (*.f64 x x)) #s(literal 6 binary64)) (patch (/.f64 #s(approx (- (* x x) 3) (*.f64 x x)) #s(literal 6 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2))))) (taylor inf x) (#s(alt (/.f64 #s(approx (- (* x x) 3) (*.f64 x x)) #s(literal 6 binary64)) (patch (/.f64 #s(approx (- (* x x) 3) (*.f64 x x)) #s(literal 6 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2))))) (taylor inf x) (#s(alt (/.f64 #s(approx (- (* x x) 3) (*.f64 x x)) #s(literal 6 binary64)) (patch (/.f64 #s(approx (- (* x x) 3) (*.f64 x x)) #s(literal 6 binary64)) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor inf x) (#s(alt #s(approx (- (* x x) 3) (*.f64 x x)) (patch #s(approx (- (* x x) 3) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- 1 (* 3 (/ 1 (pow x 2))))) (taylor inf x) (#s(alt #s(approx (- (* x x) 3) (*.f64 x x)) (patch #s(approx (- (* x x) 3) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- 1 (* 3 (/ 1 (pow x 2))))) (taylor inf x) (#s(alt #s(approx (- (* x x) 3) (*.f64 x x)) (patch #s(approx (- (* x x) 3) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- 1 (* 3 (/ 1 (pow x 2))))) (taylor inf x) (#s(alt #s(approx (- (* x x) 3) (*.f64 x x)) (patch #s(approx (- (* x x) 3) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (* 1/6 (pow x 2)) (taylor -inf x) (#s(alt (/.f64 #s(literal 1 binary64) (/.f64 #s(literal 6 binary64) (fma.f64 x x #s(literal -3 binary64)))) (patch (/.f64 #s(literal 1 binary64) (/.f64 #s(literal 6 binary64) (fma.f64 x x #s(literal -3 binary64)))) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2))))) (taylor -inf x) (#s(alt (/.f64 #s(literal 1 binary64) (/.f64 #s(literal 6 binary64) (fma.f64 x x #s(literal -3 binary64)))) (patch (/.f64 #s(literal 1 binary64) (/.f64 #s(literal 6 binary64) (fma.f64 x x #s(literal -3 binary64)))) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2))))) (taylor -inf x) (#s(alt (/.f64 #s(literal 1 binary64) (/.f64 #s(literal 6 binary64) (fma.f64 x x #s(literal -3 binary64)))) (patch (/.f64 #s(literal 1 binary64) (/.f64 #s(literal 6 binary64) (fma.f64 x x #s(literal -3 binary64)))) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2))))) (taylor -inf x) (#s(alt (/.f64 #s(literal 1 binary64) (/.f64 #s(literal 6 binary64) (fma.f64 x x #s(literal -3 binary64)))) (patch (/.f64 #s(literal 1 binary64) (/.f64 #s(literal 6 binary64) (fma.f64 x x #s(literal -3 binary64)))) #<representation binary64>) () ())) ())
#s(alt (/ 6 (pow x 2)) (taylor -inf x) (#s(alt (/.f64 #s(literal 6 binary64) (fma.f64 x x #s(literal -3 binary64))) (patch (/.f64 #s(literal 6 binary64) (fma.f64 x x #s(literal -3 binary64))) #<representation binary64>) () ())) ())
#s(alt (/ (+ 6 (* 18 (/ 1 (pow x 2)))) (pow x 2)) (taylor -inf x) (#s(alt (/.f64 #s(literal 6 binary64) (fma.f64 x x #s(literal -3 binary64))) (patch (/.f64 #s(literal 6 binary64) (fma.f64 x x #s(literal -3 binary64))) #<representation binary64>) () ())) ())
#s(alt (/ (+ 6 (+ (* 18 (/ 1 (pow x 2))) (/ 54 (pow x 4)))) (pow x 2)) (taylor -inf x) (#s(alt (/.f64 #s(literal 6 binary64) (fma.f64 x x #s(literal -3 binary64))) (patch (/.f64 #s(literal 6 binary64) (fma.f64 x x #s(literal -3 binary64))) #<representation binary64>) () ())) ())
#s(alt (/ (+ 6 (+ (* 18 (/ 1 (pow x 2))) (+ (* 162 (/ 1 (pow x 6))) (/ 54 (pow x 4))))) (pow x 2)) (taylor -inf x) (#s(alt (/.f64 #s(literal 6 binary64) (fma.f64 x x #s(literal -3 binary64))) (patch (/.f64 #s(literal 6 binary64) (fma.f64 x x #s(literal -3 binary64))) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor -inf x) (#s(alt (fma.f64 x x #s(literal -3 binary64)) (patch (fma.f64 x x #s(literal -3 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- 1 (* 3 (/ 1 (pow x 2))))) (taylor -inf x) (#s(alt (fma.f64 x x #s(literal -3 binary64)) (patch (fma.f64 x x #s(literal -3 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- 1 (* 3 (/ 1 (pow x 2))))) (taylor -inf x) (#s(alt (fma.f64 x x #s(literal -3 binary64)) (patch (fma.f64 x x #s(literal -3 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- 1 (* 3 (/ 1 (pow x 2))))) (taylor -inf x) (#s(alt (fma.f64 x x #s(literal -3 binary64)) (patch (fma.f64 x x #s(literal -3 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/6 (pow x 2)) (taylor -inf x) (#s(alt #s(approx (/ (- (* x x) 3) 6) #s(literal -1/2 binary64)) (patch #s(approx (/ (- (* x x) 3) 6) #s(literal -1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2))))) (taylor -inf x) (#s(alt #s(approx (/ (- (* x x) 3) 6) #s(literal -1/2 binary64)) (patch #s(approx (/ (- (* x x) 3) 6) #s(literal -1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2))))) (taylor -inf x) (#s(alt #s(approx (/ (- (* x x) 3) 6) #s(literal -1/2 binary64)) (patch #s(approx (/ (- (* x x) 3) 6) #s(literal -1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2))))) (taylor -inf x) (#s(alt #s(approx (/ (- (* x x) 3) 6) #s(literal -1/2 binary64)) (patch #s(approx (/ (- (* x x) 3) 6) #s(literal -1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/6 (pow x 2)) (taylor -inf x) (#s(alt #s(approx (/ (- (* x x) 3) 6) (*.f64 #s(literal 1/6 binary64) (*.f64 x x))) (patch #s(approx (/ (- (* x x) 3) 6) (*.f64 #s(literal 1/6 binary64) (*.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2))))) (taylor -inf x) (#s(alt #s(approx (/ (- (* x x) 3) 6) (*.f64 #s(literal 1/6 binary64) (*.f64 x x))) (patch #s(approx (/ (- (* x x) 3) 6) (*.f64 #s(literal 1/6 binary64) (*.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2))))) (taylor -inf x) (#s(alt #s(approx (/ (- (* x x) 3) 6) (*.f64 #s(literal 1/6 binary64) (*.f64 x x))) (patch #s(approx (/ (- (* x x) 3) 6) (*.f64 #s(literal 1/6 binary64) (*.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2))))) (taylor -inf x) (#s(alt #s(approx (/ (- (* x x) 3) 6) (*.f64 #s(literal 1/6 binary64) (*.f64 x x))) (patch #s(approx (/ (- (* x x) 3) 6) (*.f64 #s(literal 1/6 binary64) (*.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (* 1/6 (pow x 2)) (taylor -inf x) (#s(alt (*.f64 #s(literal 1/6 binary64) (*.f64 x x)) (patch (*.f64 #s(literal 1/6 binary64) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (* 1/6 (pow x 2)) (taylor -inf x) (#s(alt (*.f64 #s(literal 1/6 binary64) (*.f64 x x)) (patch (*.f64 #s(literal 1/6 binary64) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (* 1/6 (pow x 2)) (taylor -inf x) (#s(alt (*.f64 #s(literal 1/6 binary64) (*.f64 x x)) (patch (*.f64 #s(literal 1/6 binary64) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (* 1/6 (pow x 2)) (taylor -inf x) (#s(alt (*.f64 #s(literal 1/6 binary64) (*.f64 x x)) (patch (*.f64 #s(literal 1/6 binary64) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor -inf x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor -inf x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor -inf x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor -inf x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt (* 1/6 (pow x 2)) (taylor -inf x) (#s(alt (fma.f64 (*.f64 x #s(literal 1/6 binary64)) x #s(literal -1/2 binary64)) (patch (fma.f64 (*.f64 x #s(literal 1/6 binary64)) x #s(literal -1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2))))) (taylor -inf x) (#s(alt (fma.f64 (*.f64 x #s(literal 1/6 binary64)) x #s(literal -1/2 binary64)) (patch (fma.f64 (*.f64 x #s(literal 1/6 binary64)) x #s(literal -1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2))))) (taylor -inf x) (#s(alt (fma.f64 (*.f64 x #s(literal 1/6 binary64)) x #s(literal -1/2 binary64)) (patch (fma.f64 (*.f64 x #s(literal 1/6 binary64)) x #s(literal -1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2))))) (taylor -inf x) (#s(alt (fma.f64 (*.f64 x #s(literal 1/6 binary64)) x #s(literal -1/2 binary64)) (patch (fma.f64 (*.f64 x #s(literal 1/6 binary64)) x #s(literal -1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/6 x) (taylor -inf x) (#s(alt (*.f64 x #s(literal 1/6 binary64)) (patch (*.f64 x #s(literal 1/6 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/6 x) (taylor -inf x) (#s(alt (*.f64 x #s(literal 1/6 binary64)) (patch (*.f64 x #s(literal 1/6 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/6 x) (taylor -inf x) (#s(alt (*.f64 x #s(literal 1/6 binary64)) (patch (*.f64 x #s(literal 1/6 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/6 x) (taylor -inf x) (#s(alt (*.f64 x #s(literal 1/6 binary64)) (patch (*.f64 x #s(literal 1/6 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/6 (pow x 2)) (taylor -inf x) (#s(alt (/.f64 #s(approx (- (* x x) 3) (*.f64 x x)) #s(literal 6 binary64)) (patch (/.f64 #s(approx (- (* x x) 3) (*.f64 x x)) #s(literal 6 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2))))) (taylor -inf x) (#s(alt (/.f64 #s(approx (- (* x x) 3) (*.f64 x x)) #s(literal 6 binary64)) (patch (/.f64 #s(approx (- (* x x) 3) (*.f64 x x)) #s(literal 6 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2))))) (taylor -inf x) (#s(alt (/.f64 #s(approx (- (* x x) 3) (*.f64 x x)) #s(literal 6 binary64)) (patch (/.f64 #s(approx (- (* x x) 3) (*.f64 x x)) #s(literal 6 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2))))) (taylor -inf x) (#s(alt (/.f64 #s(approx (- (* x x) 3) (*.f64 x x)) #s(literal 6 binary64)) (patch (/.f64 #s(approx (- (* x x) 3) (*.f64 x x)) #s(literal 6 binary64)) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor -inf x) (#s(alt #s(approx (- (* x x) 3) (*.f64 x x)) (patch #s(approx (- (* x x) 3) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- 1 (* 3 (/ 1 (pow x 2))))) (taylor -inf x) (#s(alt #s(approx (- (* x x) 3) (*.f64 x x)) (patch #s(approx (- (* x x) 3) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- 1 (* 3 (/ 1 (pow x 2))))) (taylor -inf x) (#s(alt #s(approx (- (* x x) 3) (*.f64 x x)) (patch #s(approx (- (* x x) 3) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- 1 (* 3 (/ 1 (pow x 2))))) (taylor -inf x) (#s(alt #s(approx (- (* x x) 3) (*.f64 x x)) (patch #s(approx (- (* x x) 3) (*.f64 x x)) #<representation binary64>) () ())) ())
Calls

3 calls:

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

simplify154.0ms (4.8%)

Memory
6.6MiB live, 86.5MiB allocated
Algorithm
egg-herbie
Rules
6 490×lower-fma.f64
6 490×lower-fma.f32
3 366×lower-*.f64
3 366×lower-*.f32
1 410×lower-/.f32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
059758
1115758
2245758
3512758
41279758
52305758
63205758
74714758
86053758
97954758
08085689
Stop Event
iter limit
node limit
Counts
132 → 132
Calls
Call 1
Inputs
-1/2
(- (* 1/6 (pow x 2)) 1/2)
(- (* 1/6 (pow x 2)) 1/2)
(- (* 1/6 (pow x 2)) 1/2)
-2
(- (* -2/3 (pow x 2)) 2)
(- (* (pow x 2) (- (* -2/9 (pow x 2)) 2/3)) 2)
(- (* (pow x 2) (- (* (pow x 2) (- (* -2/27 (pow x 2)) 2/9)) 2/3)) 2)
-3
(- (pow x 2) 3)
(- (pow x 2) 3)
(- (pow x 2) 3)
-1/2
(- (* 1/6 (pow x 2)) 1/2)
(- (* 1/6 (pow x 2)) 1/2)
(- (* 1/6 (pow x 2)) 1/2)
-1/2
(- (* 1/6 (pow x 2)) 1/2)
(- (* 1/6 (pow x 2)) 1/2)
(- (* 1/6 (pow x 2)) 1/2)
(* 1/6 (pow x 2))
(* 1/6 (pow x 2))
(* 1/6 (pow x 2))
(* 1/6 (pow x 2))
(pow x 2)
(pow x 2)
(pow x 2)
(pow x 2)
-1/2
(- (* 1/6 (pow x 2)) 1/2)
(- (* 1/6 (pow x 2)) 1/2)
(- (* 1/6 (pow x 2)) 1/2)
(* 1/6 x)
(* 1/6 x)
(* 1/6 x)
(* 1/6 x)
-1/2
(- (* 1/6 (pow x 2)) 1/2)
(- (* 1/6 (pow x 2)) 1/2)
(- (* 1/6 (pow x 2)) 1/2)
-3
(- (pow x 2) 3)
(- (pow x 2) 3)
(- (pow x 2) 3)
(* 1/6 (pow x 2))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(/ 6 (pow x 2))
(/ (+ 6 (* 18 (/ 1 (pow x 2)))) (pow x 2))
(/ (+ 6 (+ (* 18 (/ 1 (pow x 2))) (/ 54 (pow x 4)))) (pow x 2))
(/ (+ 6 (+ (* 18 (/ 1 (pow x 2))) (+ (* 162 (/ 1 (pow x 6))) (/ 54 (pow x 4))))) (pow x 2))
(pow x 2)
(* (pow x 2) (- 1 (* 3 (/ 1 (pow x 2)))))
(* (pow x 2) (- 1 (* 3 (/ 1 (pow x 2)))))
(* (pow x 2) (- 1 (* 3 (/ 1 (pow x 2)))))
(* 1/6 (pow x 2))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(* 1/6 (pow x 2))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(* 1/6 (pow x 2))
(* 1/6 (pow x 2))
(* 1/6 (pow x 2))
(* 1/6 (pow x 2))
(pow x 2)
(pow x 2)
(pow x 2)
(pow x 2)
(* 1/6 (pow x 2))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(* 1/6 x)
(* 1/6 x)
(* 1/6 x)
(* 1/6 x)
(* 1/6 (pow x 2))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(pow x 2)
(* (pow x 2) (- 1 (* 3 (/ 1 (pow x 2)))))
(* (pow x 2) (- 1 (* 3 (/ 1 (pow x 2)))))
(* (pow x 2) (- 1 (* 3 (/ 1 (pow x 2)))))
(* 1/6 (pow x 2))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(/ 6 (pow x 2))
(/ (+ 6 (* 18 (/ 1 (pow x 2)))) (pow x 2))
(/ (+ 6 (+ (* 18 (/ 1 (pow x 2))) (/ 54 (pow x 4)))) (pow x 2))
(/ (+ 6 (+ (* 18 (/ 1 (pow x 2))) (+ (* 162 (/ 1 (pow x 6))) (/ 54 (pow x 4))))) (pow x 2))
(pow x 2)
(* (pow x 2) (- 1 (* 3 (/ 1 (pow x 2)))))
(* (pow x 2) (- 1 (* 3 (/ 1 (pow x 2)))))
(* (pow x 2) (- 1 (* 3 (/ 1 (pow x 2)))))
(* 1/6 (pow x 2))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(* 1/6 (pow x 2))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(* 1/6 (pow x 2))
(* 1/6 (pow x 2))
(* 1/6 (pow x 2))
(* 1/6 (pow x 2))
(pow x 2)
(pow x 2)
(pow x 2)
(pow x 2)
(* 1/6 (pow x 2))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(* 1/6 x)
(* 1/6 x)
(* 1/6 x)
(* 1/6 x)
(* 1/6 (pow x 2))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(pow x 2)
(* (pow x 2) (- 1 (* 3 (/ 1 (pow x 2)))))
(* (pow x 2) (- 1 (* 3 (/ 1 (pow x 2)))))
(* (pow x 2) (- 1 (* 3 (/ 1 (pow x 2)))))
Outputs
-1/2
#s(literal -1/2 binary64)
(- (* 1/6 (pow x 2)) 1/2)
(fma.f64 (*.f64 x #s(literal 1/6 binary64)) x #s(literal -1/2 binary64))
(- (* 1/6 (pow x 2)) 1/2)
(fma.f64 (*.f64 x #s(literal 1/6 binary64)) x #s(literal -1/2 binary64))
(- (* 1/6 (pow x 2)) 1/2)
(fma.f64 (*.f64 x #s(literal 1/6 binary64)) x #s(literal -1/2 binary64))
-2
#s(literal -2 binary64)
(- (* -2/3 (pow x 2)) 2)
(fma.f64 #s(literal -2/3 binary64) (*.f64 x x) #s(literal -2 binary64))
(- (* (pow x 2) (- (* -2/9 (pow x 2)) 2/3)) 2)
(fma.f64 (fma.f64 #s(literal -2/9 binary64) (*.f64 x x) #s(literal -2/3 binary64)) (*.f64 x x) #s(literal -2 binary64))
(- (* (pow x 2) (- (* (pow x 2) (- (* -2/27 (pow x 2)) 2/9)) 2/3)) 2)
(fma.f64 (fma.f64 (fma.f64 #s(literal -2/27 binary64) (*.f64 x x) #s(literal -2/9 binary64)) (*.f64 x x) #s(literal -2/3 binary64)) (*.f64 x x) #s(literal -2 binary64))
-3
#s(literal -3 binary64)
(- (pow x 2) 3)
(fma.f64 x x #s(literal -3 binary64))
(- (pow x 2) 3)
(fma.f64 x x #s(literal -3 binary64))
(- (pow x 2) 3)
(fma.f64 x x #s(literal -3 binary64))
-1/2
#s(literal -1/2 binary64)
(- (* 1/6 (pow x 2)) 1/2)
(fma.f64 (*.f64 x #s(literal 1/6 binary64)) x #s(literal -1/2 binary64))
(- (* 1/6 (pow x 2)) 1/2)
(fma.f64 (*.f64 x #s(literal 1/6 binary64)) x #s(literal -1/2 binary64))
(- (* 1/6 (pow x 2)) 1/2)
(fma.f64 (*.f64 x #s(literal 1/6 binary64)) x #s(literal -1/2 binary64))
-1/2
#s(literal -1/2 binary64)
(- (* 1/6 (pow x 2)) 1/2)
(fma.f64 (*.f64 x #s(literal 1/6 binary64)) x #s(literal -1/2 binary64))
(- (* 1/6 (pow x 2)) 1/2)
(fma.f64 (*.f64 x #s(literal 1/6 binary64)) x #s(literal -1/2 binary64))
(- (* 1/6 (pow x 2)) 1/2)
(fma.f64 (*.f64 x #s(literal 1/6 binary64)) x #s(literal -1/2 binary64))
(* 1/6 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/6 binary64))
(* 1/6 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/6 binary64))
(* 1/6 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/6 binary64))
(* 1/6 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/6 binary64))
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
-1/2
#s(literal -1/2 binary64)
(- (* 1/6 (pow x 2)) 1/2)
(fma.f64 (*.f64 x #s(literal 1/6 binary64)) x #s(literal -1/2 binary64))
(- (* 1/6 (pow x 2)) 1/2)
(fma.f64 (*.f64 x #s(literal 1/6 binary64)) x #s(literal -1/2 binary64))
(- (* 1/6 (pow x 2)) 1/2)
(fma.f64 (*.f64 x #s(literal 1/6 binary64)) x #s(literal -1/2 binary64))
(* 1/6 x)
(*.f64 x #s(literal 1/6 binary64))
(* 1/6 x)
(*.f64 x #s(literal 1/6 binary64))
(* 1/6 x)
(*.f64 x #s(literal 1/6 binary64))
(* 1/6 x)
(*.f64 x #s(literal 1/6 binary64))
-1/2
#s(literal -1/2 binary64)
(- (* 1/6 (pow x 2)) 1/2)
(fma.f64 (*.f64 x #s(literal 1/6 binary64)) x #s(literal -1/2 binary64))
(- (* 1/6 (pow x 2)) 1/2)
(fma.f64 (*.f64 x #s(literal 1/6 binary64)) x #s(literal -1/2 binary64))
(- (* 1/6 (pow x 2)) 1/2)
(fma.f64 (*.f64 x #s(literal 1/6 binary64)) x #s(literal -1/2 binary64))
-3
#s(literal -3 binary64)
(- (pow x 2) 3)
(fma.f64 x x #s(literal -3 binary64))
(- (pow x 2) 3)
(fma.f64 x x #s(literal -3 binary64))
(- (pow x 2) 3)
(fma.f64 x x #s(literal -3 binary64))
(* 1/6 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/6 binary64))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(fma.f64 (*.f64 x #s(literal 1/6 binary64)) x #s(literal -1/2 binary64))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(fma.f64 (*.f64 x #s(literal 1/6 binary64)) x #s(literal -1/2 binary64))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(fma.f64 (*.f64 x #s(literal 1/6 binary64)) x #s(literal -1/2 binary64))
(/ 6 (pow x 2))
(/.f64 #s(literal 6 binary64) (*.f64 x x))
(/ (+ 6 (* 18 (/ 1 (pow x 2)))) (pow x 2))
(/.f64 (/.f64 (+.f64 (/.f64 #s(literal 18 binary64) (*.f64 x x)) #s(literal 6 binary64)) x) x)
(/ (+ 6 (+ (* 18 (/ 1 (pow x 2))) (/ 54 (pow x 4)))) (pow x 2))
(/.f64 (+.f64 (/.f64 #s(literal 54 binary64) (pow.f64 x #s(literal 4 binary64))) (+.f64 (/.f64 #s(literal 18 binary64) (*.f64 x x)) #s(literal 6 binary64))) (*.f64 x x))
(/ (+ 6 (+ (* 18 (/ 1 (pow x 2))) (+ (* 162 (/ 1 (pow x 6))) (/ 54 (pow x 4))))) (pow x 2))
(/.f64 (+.f64 (+.f64 (/.f64 #s(literal 162 binary64) (pow.f64 x #s(literal 6 binary64))) (+.f64 (/.f64 #s(literal 18 binary64) (*.f64 x x)) #s(literal 6 binary64))) (/.f64 #s(literal 54 binary64) (pow.f64 x #s(literal 4 binary64)))) (*.f64 x x))
(pow x 2)
(*.f64 x x)
(* (pow x 2) (- 1 (* 3 (/ 1 (pow x 2)))))
(fma.f64 x x #s(literal -3 binary64))
(* (pow x 2) (- 1 (* 3 (/ 1 (pow x 2)))))
(fma.f64 x x #s(literal -3 binary64))
(* (pow x 2) (- 1 (* 3 (/ 1 (pow x 2)))))
(fma.f64 x x #s(literal -3 binary64))
(* 1/6 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/6 binary64))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(fma.f64 (*.f64 x #s(literal 1/6 binary64)) x #s(literal -1/2 binary64))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(fma.f64 (*.f64 x #s(literal 1/6 binary64)) x #s(literal -1/2 binary64))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(fma.f64 (*.f64 x #s(literal 1/6 binary64)) x #s(literal -1/2 binary64))
(* 1/6 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/6 binary64))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(fma.f64 (*.f64 x #s(literal 1/6 binary64)) x #s(literal -1/2 binary64))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(fma.f64 (*.f64 x #s(literal 1/6 binary64)) x #s(literal -1/2 binary64))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(fma.f64 (*.f64 x #s(literal 1/6 binary64)) x #s(literal -1/2 binary64))
(* 1/6 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/6 binary64))
(* 1/6 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/6 binary64))
(* 1/6 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/6 binary64))
(* 1/6 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/6 binary64))
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(* 1/6 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/6 binary64))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(fma.f64 (*.f64 x #s(literal 1/6 binary64)) x #s(literal -1/2 binary64))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(fma.f64 (*.f64 x #s(literal 1/6 binary64)) x #s(literal -1/2 binary64))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(fma.f64 (*.f64 x #s(literal 1/6 binary64)) x #s(literal -1/2 binary64))
(* 1/6 x)
(*.f64 x #s(literal 1/6 binary64))
(* 1/6 x)
(*.f64 x #s(literal 1/6 binary64))
(* 1/6 x)
(*.f64 x #s(literal 1/6 binary64))
(* 1/6 x)
(*.f64 x #s(literal 1/6 binary64))
(* 1/6 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/6 binary64))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(fma.f64 (*.f64 x #s(literal 1/6 binary64)) x #s(literal -1/2 binary64))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(fma.f64 (*.f64 x #s(literal 1/6 binary64)) x #s(literal -1/2 binary64))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(fma.f64 (*.f64 x #s(literal 1/6 binary64)) x #s(literal -1/2 binary64))
(pow x 2)
(*.f64 x x)
(* (pow x 2) (- 1 (* 3 (/ 1 (pow x 2)))))
(fma.f64 x x #s(literal -3 binary64))
(* (pow x 2) (- 1 (* 3 (/ 1 (pow x 2)))))
(fma.f64 x x #s(literal -3 binary64))
(* (pow x 2) (- 1 (* 3 (/ 1 (pow x 2)))))
(fma.f64 x x #s(literal -3 binary64))
(* 1/6 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/6 binary64))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(fma.f64 (*.f64 x #s(literal 1/6 binary64)) x #s(literal -1/2 binary64))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(fma.f64 (*.f64 x #s(literal 1/6 binary64)) x #s(literal -1/2 binary64))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(fma.f64 (*.f64 x #s(literal 1/6 binary64)) x #s(literal -1/2 binary64))
(/ 6 (pow x 2))
(/.f64 #s(literal 6 binary64) (*.f64 x x))
(/ (+ 6 (* 18 (/ 1 (pow x 2)))) (pow x 2))
(/.f64 (/.f64 (+.f64 (/.f64 #s(literal 18 binary64) (*.f64 x x)) #s(literal 6 binary64)) x) x)
(/ (+ 6 (+ (* 18 (/ 1 (pow x 2))) (/ 54 (pow x 4)))) (pow x 2))
(/.f64 (+.f64 (/.f64 #s(literal 54 binary64) (pow.f64 x #s(literal 4 binary64))) (+.f64 (/.f64 #s(literal 18 binary64) (*.f64 x x)) #s(literal 6 binary64))) (*.f64 x x))
(/ (+ 6 (+ (* 18 (/ 1 (pow x 2))) (+ (* 162 (/ 1 (pow x 6))) (/ 54 (pow x 4))))) (pow x 2))
(/.f64 (+.f64 (+.f64 (/.f64 #s(literal 162 binary64) (pow.f64 x #s(literal 6 binary64))) (+.f64 (/.f64 #s(literal 18 binary64) (*.f64 x x)) #s(literal 6 binary64))) (/.f64 #s(literal 54 binary64) (pow.f64 x #s(literal 4 binary64)))) (*.f64 x x))
(pow x 2)
(*.f64 x x)
(* (pow x 2) (- 1 (* 3 (/ 1 (pow x 2)))))
(fma.f64 x x #s(literal -3 binary64))
(* (pow x 2) (- 1 (* 3 (/ 1 (pow x 2)))))
(fma.f64 x x #s(literal -3 binary64))
(* (pow x 2) (- 1 (* 3 (/ 1 (pow x 2)))))
(fma.f64 x x #s(literal -3 binary64))
(* 1/6 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/6 binary64))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(fma.f64 (*.f64 x #s(literal 1/6 binary64)) x #s(literal -1/2 binary64))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(fma.f64 (*.f64 x #s(literal 1/6 binary64)) x #s(literal -1/2 binary64))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(fma.f64 (*.f64 x #s(literal 1/6 binary64)) x #s(literal -1/2 binary64))
(* 1/6 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/6 binary64))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(fma.f64 (*.f64 x #s(literal 1/6 binary64)) x #s(literal -1/2 binary64))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(fma.f64 (*.f64 x #s(literal 1/6 binary64)) x #s(literal -1/2 binary64))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(fma.f64 (*.f64 x #s(literal 1/6 binary64)) x #s(literal -1/2 binary64))
(* 1/6 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/6 binary64))
(* 1/6 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/6 binary64))
(* 1/6 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/6 binary64))
(* 1/6 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/6 binary64))
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(* 1/6 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/6 binary64))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(fma.f64 (*.f64 x #s(literal 1/6 binary64)) x #s(literal -1/2 binary64))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(fma.f64 (*.f64 x #s(literal 1/6 binary64)) x #s(literal -1/2 binary64))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(fma.f64 (*.f64 x #s(literal 1/6 binary64)) x #s(literal -1/2 binary64))
(* 1/6 x)
(*.f64 x #s(literal 1/6 binary64))
(* 1/6 x)
(*.f64 x #s(literal 1/6 binary64))
(* 1/6 x)
(*.f64 x #s(literal 1/6 binary64))
(* 1/6 x)
(*.f64 x #s(literal 1/6 binary64))
(* 1/6 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/6 binary64))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(fma.f64 (*.f64 x #s(literal 1/6 binary64)) x #s(literal -1/2 binary64))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(fma.f64 (*.f64 x #s(literal 1/6 binary64)) x #s(literal -1/2 binary64))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(fma.f64 (*.f64 x #s(literal 1/6 binary64)) x #s(literal -1/2 binary64))
(pow x 2)
(*.f64 x x)
(* (pow x 2) (- 1 (* 3 (/ 1 (pow x 2)))))
(fma.f64 x x #s(literal -3 binary64))
(* (pow x 2) (- 1 (* 3 (/ 1 (pow x 2)))))
(fma.f64 x x #s(literal -3 binary64))
(* (pow x 2) (- 1 (* 3 (/ 1 (pow x 2)))))
(fma.f64 x x #s(literal -3 binary64))

rewrite200.0ms (6.3%)

Memory
-11.9MiB live, 142.7MiB allocated
Rules
4 554×lower-fma.f32
4 550×lower-fma.f64
3 938×lower-*.f32
3 932×lower-*.f64
2 026×lower-/.f32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02177
03071
111871
259971
3492471
0846671
Stop Event
iter limit
node limit
iter limit
Counts
11 → 715
Calls
Call 1
Inputs
(/.f64 #s(literal 1 binary64) (/.f64 #s(literal 6 binary64) (fma.f64 x x #s(literal -3 binary64))))
(/.f64 #s(literal 6 binary64) (fma.f64 x x #s(literal -3 binary64)))
(fma.f64 x x #s(literal -3 binary64))
#s(approx (/ (- (* x x) 3) 6) #s(literal -1/2 binary64))
#s(approx (/ (- (* x x) 3) 6) (*.f64 #s(literal 1/6 binary64) (*.f64 x x)))
(*.f64 #s(literal 1/6 binary64) (*.f64 x x))
(*.f64 x x)
(fma.f64 (*.f64 x #s(literal 1/6 binary64)) x #s(literal -1/2 binary64))
(*.f64 x #s(literal 1/6 binary64))
(/.f64 #s(approx (- (* x x) 3) (*.f64 x x)) #s(literal 6 binary64))
#s(approx (- (* x x) 3) (*.f64 x x))
Outputs
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>

eval98.0ms (3.1%)

Memory
24.7MiB live, 176.3MiB allocated
Compiler

Compiled 13 488 to 1 502 computations (88.9% saved)

prune19.0ms (0.6%)

Memory
21.7MiB live, 59.3MiB allocated
Pruning

7 alts after pruning (3 fresh and 4 done)

PrunedKeptTotal
New8623865
Fresh101
Picked145
Done000
Total8647871
Accuracy
100.0%
Counts
871 → 7
Alt Table
Click to see full alt table
StatusAccuracyProgram
99.9%
(fma.f64 (/.f64 x #s(literal 6 binary64)) x #s(literal -1/2 binary64))
99.9%
(fma.f64 (*.f64 x #s(literal 1/6 binary64)) x #s(literal -1/2 binary64))
45.9%
(/.f64 #s(approx (- (* x x) 3) (*.f64 x x)) #s(literal 6 binary64))
45.8%
(/.f64 #s(literal 1 binary64) (/.f64 #s(literal 6 binary64) #s(approx (- (* x x) 3) (*.f64 x x))))
45.8%
#s(approx (/ (- (* x x) 3) 6) (*.f64 (*.f64 #s(literal 1/6 binary64) x) x))
45.8%
#s(approx (/ (- (* x x) 3) 6) (*.f64 #s(literal 1/6 binary64) (*.f64 x x)))
53.8%
#s(approx (/ (- (* x x) 3) 6) #s(literal -1/2 binary64))
Compiler

Compiled 40 to 35 computations (12.5% saved)

simplify6.0ms (0.2%)

Memory
-27.9MiB live, 11.1MiB allocated
Algorithm
egg-herbie
Localize:

Found 9 expressions of interest:

NewMetricScoreProgram
cost-diff0
(/.f64 x #s(literal 6 binary64))
cost-diff0
(fma.f64 (/.f64 x #s(literal 6 binary64)) x #s(literal -1/2 binary64))
cost-diff0
(*.f64 x x)
cost-diff0
#s(approx (- (* x x) 3) (*.f64 x x))
cost-diff0
(/.f64 #s(literal 6 binary64) #s(approx (- (* x x) 3) (*.f64 x x)))
cost-diff1088
(/.f64 #s(literal 1 binary64) (/.f64 #s(literal 6 binary64) #s(approx (- (* x x) 3) (*.f64 x x))))
cost-diff0
(*.f64 #s(literal 1/6 binary64) x)
cost-diff0
(*.f64 (*.f64 #s(literal 1/6 binary64) x) x)
cost-diff0
#s(approx (/ (- (* x x) 3) 6) (*.f64 (*.f64 #s(literal 1/6 binary64) x) x))
Rules
22×lower-*.f32
16×lower-*.f64
10×lower-/.f32
*-commutative
lower-+.f64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01874
02672
14371
24771
04768
Stop Event
iter limit
saturated
iter limit
Calls
Call 1
Inputs
#s(approx (/ (- (* x x) 3) 6) (*.f64 (*.f64 #s(literal 1/6 binary64) x) x))
(*.f64 (*.f64 #s(literal 1/6 binary64) x) x)
(*.f64 #s(literal 1/6 binary64) x)
#s(literal 1/6 binary64)
x
(/.f64 #s(literal 1 binary64) (/.f64 #s(literal 6 binary64) #s(approx (- (* x x) 3) (*.f64 x x))))
#s(literal 1 binary64)
(/.f64 #s(literal 6 binary64) #s(approx (- (* x x) 3) (*.f64 x x)))
#s(literal 6 binary64)
#s(approx (- (* x x) 3) (*.f64 x x))
(*.f64 x x)
x
(fma.f64 (/.f64 x #s(literal 6 binary64)) x #s(literal -1/2 binary64))
(/.f64 x #s(literal 6 binary64))
x
#s(literal 6 binary64)
#s(literal -1/2 binary64)
Outputs
#s(approx (/ (- (* x x) 3) 6) (*.f64 (*.f64 #s(literal 1/6 binary64) x) x))
(*.f64 (*.f64 #s(literal 1/6 binary64) x) x)
(*.f64 #s(literal 1/6 binary64) x)
#s(literal 1/6 binary64)
x
(/.f64 #s(literal 1 binary64) (/.f64 #s(literal 6 binary64) #s(approx (- (* x x) 3) (*.f64 x x))))
(*.f64 #s(approx (- (* x x) 3) (*.f64 x x)) #s(literal 1/6 binary64))
#s(literal 1 binary64)
(/.f64 #s(literal 6 binary64) #s(approx (- (* x x) 3) (*.f64 x x)))
#s(literal 6 binary64)
#s(approx (- (* x x) 3) (*.f64 x x))
(*.f64 x x)
x
(fma.f64 (/.f64 x #s(literal 6 binary64)) x #s(literal -1/2 binary64))
(/.f64 (fma.f64 x x #s(literal -3 binary64)) #s(literal 6 binary64))
(/.f64 x #s(literal 6 binary64))
x
#s(literal 6 binary64)
#s(literal -1/2 binary64)

localize48.0ms (1.5%)

Memory
7.1MiB live, 56.0MiB allocated
Localize:

Found 9 expressions of interest:

NewMetricScoreProgram
accuracy0
(/.f64 x #s(literal 6 binary64))
accuracy0.0625
(fma.f64 (/.f64 x #s(literal 6 binary64)) x #s(literal -1/2 binary64))
accuracy0
(*.f64 x x)
accuracy0.0703125
(/.f64 #s(literal 1 binary64) (/.f64 #s(literal 6 binary64) #s(approx (- (* x x) 3) (*.f64 x x))))
accuracy0.23466893681179196
(/.f64 #s(literal 6 binary64) #s(approx (- (* x x) 3) (*.f64 x x)))
accuracy34.6125347813372
#s(approx (- (* x x) 3) (*.f64 x x))
accuracy0.11328125
(*.f64 (*.f64 #s(literal 1/6 binary64) x) x)
accuracy0.3359375
(*.f64 #s(literal 1/6 binary64) x)
accuracy34.60353183682213
#s(approx (/ (- (* x x) 3) 6) (*.f64 (*.f64 #s(literal 1/6 binary64) x) x))
Samples
37.0ms256×0valid
Compiler

Compiled 59 to 18 computations (69.5% saved)

Precisions
Click to see histograms. Total time spent on operations: 19.0ms
ival-div: 6.0ms (31.4% of total)
ival-mult: 6.0ms (31.4% of total)
const: 4.0ms (20.9% of total)
ival-sub: 1.0ms (5.2% of total)
ival-add: 1.0ms (5.2% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series5.0ms (0.2%)

Memory
9.5MiB live, 9.5MiB allocated
Counts
9 → 108
Calls
Call 1
Inputs
#s(alt #s(approx (/ (- (* x x) 3) 6) (*.f64 (*.f64 #s(literal 1/6 binary64) x) x)) (patch #s(approx (/ (- (* x x) 3) 6) (*.f64 (*.f64 #s(literal 1/6 binary64) x) x)) #<representation binary64>) () ())
#s(alt (*.f64 (*.f64 #s(literal 1/6 binary64) x) x) (patch (*.f64 (*.f64 #s(literal 1/6 binary64) x) x) #<representation binary64>) () ())
#s(alt (*.f64 #s(literal 1/6 binary64) x) (patch (*.f64 #s(literal 1/6 binary64) x) #<representation binary64>) () ())
#s(alt (/.f64 #s(literal 1 binary64) (/.f64 #s(literal 6 binary64) #s(approx (- (* x x) 3) (*.f64 x x)))) (patch (/.f64 #s(literal 1 binary64) (/.f64 #s(literal 6 binary64) #s(approx (- (* x x) 3) (*.f64 x x)))) #<representation binary64>) () ())
#s(alt (/.f64 #s(literal 6 binary64) #s(approx (- (* x x) 3) (*.f64 x x))) (patch (/.f64 #s(literal 6 binary64) #s(approx (- (* x x) 3) (*.f64 x x))) #<representation binary64>) () ())
#s(alt #s(approx (- (* x x) 3) (*.f64 x x)) (patch #s(approx (- (* x x) 3) (*.f64 x x)) #<representation binary64>) () ())
#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())
#s(alt (fma.f64 (/.f64 x #s(literal 6 binary64)) x #s(literal -1/2 binary64)) (patch (fma.f64 (/.f64 x #s(literal 6 binary64)) x #s(literal -1/2 binary64)) #<representation binary64>) () ())
#s(alt (/.f64 x #s(literal 6 binary64)) (patch (/.f64 x #s(literal 6 binary64)) #<representation binary64>) () ())
Outputs
#s(alt -1/2 (taylor 0 x) (#s(alt #s(approx (/ (- (* x x) 3) 6) (*.f64 (*.f64 #s(literal 1/6 binary64) x) x)) (patch #s(approx (/ (- (* x x) 3) 6) (*.f64 (*.f64 #s(literal 1/6 binary64) x) x)) #<representation binary64>) () ())) ())
#s(alt (- (* 1/6 (pow x 2)) 1/2) (taylor 0 x) (#s(alt #s(approx (/ (- (* x x) 3) 6) (*.f64 (*.f64 #s(literal 1/6 binary64) x) x)) (patch #s(approx (/ (- (* x x) 3) 6) (*.f64 (*.f64 #s(literal 1/6 binary64) x) x)) #<representation binary64>) () ())) ())
#s(alt (- (* 1/6 (pow x 2)) 1/2) (taylor 0 x) (#s(alt #s(approx (/ (- (* x x) 3) 6) (*.f64 (*.f64 #s(literal 1/6 binary64) x) x)) (patch #s(approx (/ (- (* x x) 3) 6) (*.f64 (*.f64 #s(literal 1/6 binary64) x) x)) #<representation binary64>) () ())) ())
#s(alt (- (* 1/6 (pow x 2)) 1/2) (taylor 0 x) (#s(alt #s(approx (/ (- (* x x) 3) 6) (*.f64 (*.f64 #s(literal 1/6 binary64) x) x)) (patch #s(approx (/ (- (* x x) 3) 6) (*.f64 (*.f64 #s(literal 1/6 binary64) x) x)) #<representation binary64>) () ())) ())
#s(alt (* 1/6 (pow x 2)) (taylor 0 x) (#s(alt (*.f64 (*.f64 #s(literal 1/6 binary64) x) x) (patch (*.f64 (*.f64 #s(literal 1/6 binary64) x) x) #<representation binary64>) () ())) ())
#s(alt (* 1/6 (pow x 2)) (taylor 0 x) (#s(alt (*.f64 (*.f64 #s(literal 1/6 binary64) x) x) (patch (*.f64 (*.f64 #s(literal 1/6 binary64) x) x) #<representation binary64>) () ())) ())
#s(alt (* 1/6 (pow x 2)) (taylor 0 x) (#s(alt (*.f64 (*.f64 #s(literal 1/6 binary64) x) x) (patch (*.f64 (*.f64 #s(literal 1/6 binary64) x) x) #<representation binary64>) () ())) ())
#s(alt (* 1/6 (pow x 2)) (taylor 0 x) (#s(alt (*.f64 (*.f64 #s(literal 1/6 binary64) x) x) (patch (*.f64 (*.f64 #s(literal 1/6 binary64) x) x) #<representation binary64>) () ())) ())
#s(alt (* 1/6 x) (taylor 0 x) (#s(alt (*.f64 #s(literal 1/6 binary64) x) (patch (*.f64 #s(literal 1/6 binary64) x) #<representation binary64>) () ())) ())
#s(alt (* 1/6 x) (taylor 0 x) (#s(alt (*.f64 #s(literal 1/6 binary64) x) (patch (*.f64 #s(literal 1/6 binary64) x) #<representation binary64>) () ())) ())
#s(alt (* 1/6 x) (taylor 0 x) (#s(alt (*.f64 #s(literal 1/6 binary64) x) (patch (*.f64 #s(literal 1/6 binary64) x) #<representation binary64>) () ())) ())
#s(alt (* 1/6 x) (taylor 0 x) (#s(alt (*.f64 #s(literal 1/6 binary64) x) (patch (*.f64 #s(literal 1/6 binary64) x) #<representation binary64>) () ())) ())
#s(alt -1/2 (taylor 0 x) (#s(alt (/.f64 #s(literal 1 binary64) (/.f64 #s(literal 6 binary64) #s(approx (- (* x x) 3) (*.f64 x x)))) (patch (/.f64 #s(literal 1 binary64) (/.f64 #s(literal 6 binary64) #s(approx (- (* x x) 3) (*.f64 x x)))) #<representation binary64>) () ())) ())
#s(alt (- (* 1/6 (pow x 2)) 1/2) (taylor 0 x) (#s(alt (/.f64 #s(literal 1 binary64) (/.f64 #s(literal 6 binary64) #s(approx (- (* x x) 3) (*.f64 x x)))) (patch (/.f64 #s(literal 1 binary64) (/.f64 #s(literal 6 binary64) #s(approx (- (* x x) 3) (*.f64 x x)))) #<representation binary64>) () ())) ())
#s(alt (- (* 1/6 (pow x 2)) 1/2) (taylor 0 x) (#s(alt (/.f64 #s(literal 1 binary64) (/.f64 #s(literal 6 binary64) #s(approx (- (* x x) 3) (*.f64 x x)))) (patch (/.f64 #s(literal 1 binary64) (/.f64 #s(literal 6 binary64) #s(approx (- (* x x) 3) (*.f64 x x)))) #<representation binary64>) () ())) ())
#s(alt (- (* 1/6 (pow x 2)) 1/2) (taylor 0 x) (#s(alt (/.f64 #s(literal 1 binary64) (/.f64 #s(literal 6 binary64) #s(approx (- (* x x) 3) (*.f64 x x)))) (patch (/.f64 #s(literal 1 binary64) (/.f64 #s(literal 6 binary64) #s(approx (- (* x x) 3) (*.f64 x x)))) #<representation binary64>) () ())) ())
#s(alt -2 (taylor 0 x) (#s(alt (/.f64 #s(literal 6 binary64) #s(approx (- (* x x) 3) (*.f64 x x))) (patch (/.f64 #s(literal 6 binary64) #s(approx (- (* x x) 3) (*.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (- (* -2/3 (pow x 2)) 2) (taylor 0 x) (#s(alt (/.f64 #s(literal 6 binary64) #s(approx (- (* x x) 3) (*.f64 x x))) (patch (/.f64 #s(literal 6 binary64) #s(approx (- (* x x) 3) (*.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (- (* (pow x 2) (- (* -2/9 (pow x 2)) 2/3)) 2) (taylor 0 x) (#s(alt (/.f64 #s(literal 6 binary64) #s(approx (- (* x x) 3) (*.f64 x x))) (patch (/.f64 #s(literal 6 binary64) #s(approx (- (* x x) 3) (*.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (- (* (pow x 2) (- (* (pow x 2) (- (* -2/27 (pow x 2)) 2/9)) 2/3)) 2) (taylor 0 x) (#s(alt (/.f64 #s(literal 6 binary64) #s(approx (- (* x x) 3) (*.f64 x x))) (patch (/.f64 #s(literal 6 binary64) #s(approx (- (* x x) 3) (*.f64 x x))) #<representation binary64>) () ())) ())
#s(alt -3 (taylor 0 x) (#s(alt #s(approx (- (* x x) 3) (*.f64 x x)) (patch #s(approx (- (* x x) 3) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (- (pow x 2) 3) (taylor 0 x) (#s(alt #s(approx (- (* x x) 3) (*.f64 x x)) (patch #s(approx (- (* x x) 3) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (- (pow x 2) 3) (taylor 0 x) (#s(alt #s(approx (- (* x x) 3) (*.f64 x x)) (patch #s(approx (- (* x x) 3) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (- (pow x 2) 3) (taylor 0 x) (#s(alt #s(approx (- (* x x) 3) (*.f64 x x)) (patch #s(approx (- (* x x) 3) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor 0 x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor 0 x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor 0 x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor 0 x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt -1/2 (taylor 0 x) (#s(alt (fma.f64 (/.f64 x #s(literal 6 binary64)) x #s(literal -1/2 binary64)) (patch (fma.f64 (/.f64 x #s(literal 6 binary64)) x #s(literal -1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (- (* 1/6 (pow x 2)) 1/2) (taylor 0 x) (#s(alt (fma.f64 (/.f64 x #s(literal 6 binary64)) x #s(literal -1/2 binary64)) (patch (fma.f64 (/.f64 x #s(literal 6 binary64)) x #s(literal -1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (- (* 1/6 (pow x 2)) 1/2) (taylor 0 x) (#s(alt (fma.f64 (/.f64 x #s(literal 6 binary64)) x #s(literal -1/2 binary64)) (patch (fma.f64 (/.f64 x #s(literal 6 binary64)) x #s(literal -1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (- (* 1/6 (pow x 2)) 1/2) (taylor 0 x) (#s(alt (fma.f64 (/.f64 x #s(literal 6 binary64)) x #s(literal -1/2 binary64)) (patch (fma.f64 (/.f64 x #s(literal 6 binary64)) x #s(literal -1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/6 x) (taylor 0 x) (#s(alt (/.f64 x #s(literal 6 binary64)) (patch (/.f64 x #s(literal 6 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/6 x) (taylor 0 x) (#s(alt (/.f64 x #s(literal 6 binary64)) (patch (/.f64 x #s(literal 6 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/6 x) (taylor 0 x) (#s(alt (/.f64 x #s(literal 6 binary64)) (patch (/.f64 x #s(literal 6 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/6 x) (taylor 0 x) (#s(alt (/.f64 x #s(literal 6 binary64)) (patch (/.f64 x #s(literal 6 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/6 (pow x 2)) (taylor inf x) (#s(alt #s(approx (/ (- (* x x) 3) 6) (*.f64 (*.f64 #s(literal 1/6 binary64) x) x)) (patch #s(approx (/ (- (* x x) 3) 6) (*.f64 (*.f64 #s(literal 1/6 binary64) x) x)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2))))) (taylor inf x) (#s(alt #s(approx (/ (- (* x x) 3) 6) (*.f64 (*.f64 #s(literal 1/6 binary64) x) x)) (patch #s(approx (/ (- (* x x) 3) 6) (*.f64 (*.f64 #s(literal 1/6 binary64) x) x)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2))))) (taylor inf x) (#s(alt #s(approx (/ (- (* x x) 3) 6) (*.f64 (*.f64 #s(literal 1/6 binary64) x) x)) (patch #s(approx (/ (- (* x x) 3) 6) (*.f64 (*.f64 #s(literal 1/6 binary64) x) x)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2))))) (taylor inf x) (#s(alt #s(approx (/ (- (* x x) 3) 6) (*.f64 (*.f64 #s(literal 1/6 binary64) x) x)) (patch #s(approx (/ (- (* x x) 3) 6) (*.f64 (*.f64 #s(literal 1/6 binary64) x) x)) #<representation binary64>) () ())) ())
#s(alt (* 1/6 (pow x 2)) (taylor inf x) (#s(alt (*.f64 (*.f64 #s(literal 1/6 binary64) x) x) (patch (*.f64 (*.f64 #s(literal 1/6 binary64) x) x) #<representation binary64>) () ())) ())
#s(alt (* 1/6 (pow x 2)) (taylor inf x) (#s(alt (*.f64 (*.f64 #s(literal 1/6 binary64) x) x) (patch (*.f64 (*.f64 #s(literal 1/6 binary64) x) x) #<representation binary64>) () ())) ())
#s(alt (* 1/6 (pow x 2)) (taylor inf x) (#s(alt (*.f64 (*.f64 #s(literal 1/6 binary64) x) x) (patch (*.f64 (*.f64 #s(literal 1/6 binary64) x) x) #<representation binary64>) () ())) ())
#s(alt (* 1/6 (pow x 2)) (taylor inf x) (#s(alt (*.f64 (*.f64 #s(literal 1/6 binary64) x) x) (patch (*.f64 (*.f64 #s(literal 1/6 binary64) x) x) #<representation binary64>) () ())) ())
#s(alt (* 1/6 x) (taylor inf x) (#s(alt (*.f64 #s(literal 1/6 binary64) x) (patch (*.f64 #s(literal 1/6 binary64) x) #<representation binary64>) () ())) ())
#s(alt (* 1/6 x) (taylor inf x) (#s(alt (*.f64 #s(literal 1/6 binary64) x) (patch (*.f64 #s(literal 1/6 binary64) x) #<representation binary64>) () ())) ())
#s(alt (* 1/6 x) (taylor inf x) (#s(alt (*.f64 #s(literal 1/6 binary64) x) (patch (*.f64 #s(literal 1/6 binary64) x) #<representation binary64>) () ())) ())
#s(alt (* 1/6 x) (taylor inf x) (#s(alt (*.f64 #s(literal 1/6 binary64) x) (patch (*.f64 #s(literal 1/6 binary64) x) #<representation binary64>) () ())) ())
#s(alt (* 1/6 (pow x 2)) (taylor inf x) (#s(alt (/.f64 #s(literal 1 binary64) (/.f64 #s(literal 6 binary64) #s(approx (- (* x x) 3) (*.f64 x x)))) (patch (/.f64 #s(literal 1 binary64) (/.f64 #s(literal 6 binary64) #s(approx (- (* x x) 3) (*.f64 x x)))) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2))))) (taylor inf x) (#s(alt (/.f64 #s(literal 1 binary64) (/.f64 #s(literal 6 binary64) #s(approx (- (* x x) 3) (*.f64 x x)))) (patch (/.f64 #s(literal 1 binary64) (/.f64 #s(literal 6 binary64) #s(approx (- (* x x) 3) (*.f64 x x)))) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2))))) (taylor inf x) (#s(alt (/.f64 #s(literal 1 binary64) (/.f64 #s(literal 6 binary64) #s(approx (- (* x x) 3) (*.f64 x x)))) (patch (/.f64 #s(literal 1 binary64) (/.f64 #s(literal 6 binary64) #s(approx (- (* x x) 3) (*.f64 x x)))) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2))))) (taylor inf x) (#s(alt (/.f64 #s(literal 1 binary64) (/.f64 #s(literal 6 binary64) #s(approx (- (* x x) 3) (*.f64 x x)))) (patch (/.f64 #s(literal 1 binary64) (/.f64 #s(literal 6 binary64) #s(approx (- (* x x) 3) (*.f64 x x)))) #<representation binary64>) () ())) ())
#s(alt (/ 6 (pow x 2)) (taylor inf x) (#s(alt (/.f64 #s(literal 6 binary64) #s(approx (- (* x x) 3) (*.f64 x x))) (patch (/.f64 #s(literal 6 binary64) #s(approx (- (* x x) 3) (*.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (/ (+ 6 (* 18 (/ 1 (pow x 2)))) (pow x 2)) (taylor inf x) (#s(alt (/.f64 #s(literal 6 binary64) #s(approx (- (* x x) 3) (*.f64 x x))) (patch (/.f64 #s(literal 6 binary64) #s(approx (- (* x x) 3) (*.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (/ (+ 6 (+ (* 18 (/ 1 (pow x 2))) (/ 54 (pow x 4)))) (pow x 2)) (taylor inf x) (#s(alt (/.f64 #s(literal 6 binary64) #s(approx (- (* x x) 3) (*.f64 x x))) (patch (/.f64 #s(literal 6 binary64) #s(approx (- (* x x) 3) (*.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (/ (+ 6 (+ (* 18 (/ 1 (pow x 2))) (+ (* 162 (/ 1 (pow x 6))) (/ 54 (pow x 4))))) (pow x 2)) (taylor inf x) (#s(alt (/.f64 #s(literal 6 binary64) #s(approx (- (* x x) 3) (*.f64 x x))) (patch (/.f64 #s(literal 6 binary64) #s(approx (- (* x x) 3) (*.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor inf x) (#s(alt #s(approx (- (* x x) 3) (*.f64 x x)) (patch #s(approx (- (* x x) 3) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- 1 (* 3 (/ 1 (pow x 2))))) (taylor inf x) (#s(alt #s(approx (- (* x x) 3) (*.f64 x x)) (patch #s(approx (- (* x x) 3) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- 1 (* 3 (/ 1 (pow x 2))))) (taylor inf x) (#s(alt #s(approx (- (* x x) 3) (*.f64 x x)) (patch #s(approx (- (* x x) 3) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- 1 (* 3 (/ 1 (pow x 2))))) (taylor inf x) (#s(alt #s(approx (- (* x x) 3) (*.f64 x x)) (patch #s(approx (- (* x x) 3) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor inf x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor inf x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor inf x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor inf x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt (* 1/6 (pow x 2)) (taylor inf x) (#s(alt (fma.f64 (/.f64 x #s(literal 6 binary64)) x #s(literal -1/2 binary64)) (patch (fma.f64 (/.f64 x #s(literal 6 binary64)) x #s(literal -1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2))))) (taylor inf x) (#s(alt (fma.f64 (/.f64 x #s(literal 6 binary64)) x #s(literal -1/2 binary64)) (patch (fma.f64 (/.f64 x #s(literal 6 binary64)) x #s(literal -1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2))))) (taylor inf x) (#s(alt (fma.f64 (/.f64 x #s(literal 6 binary64)) x #s(literal -1/2 binary64)) (patch (fma.f64 (/.f64 x #s(literal 6 binary64)) x #s(literal -1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2))))) (taylor inf x) (#s(alt (fma.f64 (/.f64 x #s(literal 6 binary64)) x #s(literal -1/2 binary64)) (patch (fma.f64 (/.f64 x #s(literal 6 binary64)) x #s(literal -1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/6 x) (taylor inf x) (#s(alt (/.f64 x #s(literal 6 binary64)) (patch (/.f64 x #s(literal 6 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/6 x) (taylor inf x) (#s(alt (/.f64 x #s(literal 6 binary64)) (patch (/.f64 x #s(literal 6 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/6 x) (taylor inf x) (#s(alt (/.f64 x #s(literal 6 binary64)) (patch (/.f64 x #s(literal 6 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/6 x) (taylor inf x) (#s(alt (/.f64 x #s(literal 6 binary64)) (patch (/.f64 x #s(literal 6 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/6 (pow x 2)) (taylor -inf x) (#s(alt #s(approx (/ (- (* x x) 3) 6) (*.f64 (*.f64 #s(literal 1/6 binary64) x) x)) (patch #s(approx (/ (- (* x x) 3) 6) (*.f64 (*.f64 #s(literal 1/6 binary64) x) x)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2))))) (taylor -inf x) (#s(alt #s(approx (/ (- (* x x) 3) 6) (*.f64 (*.f64 #s(literal 1/6 binary64) x) x)) (patch #s(approx (/ (- (* x x) 3) 6) (*.f64 (*.f64 #s(literal 1/6 binary64) x) x)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2))))) (taylor -inf x) (#s(alt #s(approx (/ (- (* x x) 3) 6) (*.f64 (*.f64 #s(literal 1/6 binary64) x) x)) (patch #s(approx (/ (- (* x x) 3) 6) (*.f64 (*.f64 #s(literal 1/6 binary64) x) x)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2))))) (taylor -inf x) (#s(alt #s(approx (/ (- (* x x) 3) 6) (*.f64 (*.f64 #s(literal 1/6 binary64) x) x)) (patch #s(approx (/ (- (* x x) 3) 6) (*.f64 (*.f64 #s(literal 1/6 binary64) x) x)) #<representation binary64>) () ())) ())
#s(alt (* 1/6 (pow x 2)) (taylor -inf x) (#s(alt (*.f64 (*.f64 #s(literal 1/6 binary64) x) x) (patch (*.f64 (*.f64 #s(literal 1/6 binary64) x) x) #<representation binary64>) () ())) ())
#s(alt (* 1/6 (pow x 2)) (taylor -inf x) (#s(alt (*.f64 (*.f64 #s(literal 1/6 binary64) x) x) (patch (*.f64 (*.f64 #s(literal 1/6 binary64) x) x) #<representation binary64>) () ())) ())
#s(alt (* 1/6 (pow x 2)) (taylor -inf x) (#s(alt (*.f64 (*.f64 #s(literal 1/6 binary64) x) x) (patch (*.f64 (*.f64 #s(literal 1/6 binary64) x) x) #<representation binary64>) () ())) ())
#s(alt (* 1/6 (pow x 2)) (taylor -inf x) (#s(alt (*.f64 (*.f64 #s(literal 1/6 binary64) x) x) (patch (*.f64 (*.f64 #s(literal 1/6 binary64) x) x) #<representation binary64>) () ())) ())
#s(alt (* 1/6 x) (taylor -inf x) (#s(alt (*.f64 #s(literal 1/6 binary64) x) (patch (*.f64 #s(literal 1/6 binary64) x) #<representation binary64>) () ())) ())
#s(alt (* 1/6 x) (taylor -inf x) (#s(alt (*.f64 #s(literal 1/6 binary64) x) (patch (*.f64 #s(literal 1/6 binary64) x) #<representation binary64>) () ())) ())
#s(alt (* 1/6 x) (taylor -inf x) (#s(alt (*.f64 #s(literal 1/6 binary64) x) (patch (*.f64 #s(literal 1/6 binary64) x) #<representation binary64>) () ())) ())
#s(alt (* 1/6 x) (taylor -inf x) (#s(alt (*.f64 #s(literal 1/6 binary64) x) (patch (*.f64 #s(literal 1/6 binary64) x) #<representation binary64>) () ())) ())
#s(alt (* 1/6 (pow x 2)) (taylor -inf x) (#s(alt (/.f64 #s(literal 1 binary64) (/.f64 #s(literal 6 binary64) #s(approx (- (* x x) 3) (*.f64 x x)))) (patch (/.f64 #s(literal 1 binary64) (/.f64 #s(literal 6 binary64) #s(approx (- (* x x) 3) (*.f64 x x)))) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2))))) (taylor -inf x) (#s(alt (/.f64 #s(literal 1 binary64) (/.f64 #s(literal 6 binary64) #s(approx (- (* x x) 3) (*.f64 x x)))) (patch (/.f64 #s(literal 1 binary64) (/.f64 #s(literal 6 binary64) #s(approx (- (* x x) 3) (*.f64 x x)))) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2))))) (taylor -inf x) (#s(alt (/.f64 #s(literal 1 binary64) (/.f64 #s(literal 6 binary64) #s(approx (- (* x x) 3) (*.f64 x x)))) (patch (/.f64 #s(literal 1 binary64) (/.f64 #s(literal 6 binary64) #s(approx (- (* x x) 3) (*.f64 x x)))) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2))))) (taylor -inf x) (#s(alt (/.f64 #s(literal 1 binary64) (/.f64 #s(literal 6 binary64) #s(approx (- (* x x) 3) (*.f64 x x)))) (patch (/.f64 #s(literal 1 binary64) (/.f64 #s(literal 6 binary64) #s(approx (- (* x x) 3) (*.f64 x x)))) #<representation binary64>) () ())) ())
#s(alt (/ 6 (pow x 2)) (taylor -inf x) (#s(alt (/.f64 #s(literal 6 binary64) #s(approx (- (* x x) 3) (*.f64 x x))) (patch (/.f64 #s(literal 6 binary64) #s(approx (- (* x x) 3) (*.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (/ (+ 6 (* 18 (/ 1 (pow x 2)))) (pow x 2)) (taylor -inf x) (#s(alt (/.f64 #s(literal 6 binary64) #s(approx (- (* x x) 3) (*.f64 x x))) (patch (/.f64 #s(literal 6 binary64) #s(approx (- (* x x) 3) (*.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (/ (+ 6 (+ (* 18 (/ 1 (pow x 2))) (/ 54 (pow x 4)))) (pow x 2)) (taylor -inf x) (#s(alt (/.f64 #s(literal 6 binary64) #s(approx (- (* x x) 3) (*.f64 x x))) (patch (/.f64 #s(literal 6 binary64) #s(approx (- (* x x) 3) (*.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (/ (+ 6 (+ (* 18 (/ 1 (pow x 2))) (+ (* 162 (/ 1 (pow x 6))) (/ 54 (pow x 4))))) (pow x 2)) (taylor -inf x) (#s(alt (/.f64 #s(literal 6 binary64) #s(approx (- (* x x) 3) (*.f64 x x))) (patch (/.f64 #s(literal 6 binary64) #s(approx (- (* x x) 3) (*.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor -inf x) (#s(alt #s(approx (- (* x x) 3) (*.f64 x x)) (patch #s(approx (- (* x x) 3) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- 1 (* 3 (/ 1 (pow x 2))))) (taylor -inf x) (#s(alt #s(approx (- (* x x) 3) (*.f64 x x)) (patch #s(approx (- (* x x) 3) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- 1 (* 3 (/ 1 (pow x 2))))) (taylor -inf x) (#s(alt #s(approx (- (* x x) 3) (*.f64 x x)) (patch #s(approx (- (* x x) 3) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- 1 (* 3 (/ 1 (pow x 2))))) (taylor -inf x) (#s(alt #s(approx (- (* x x) 3) (*.f64 x x)) (patch #s(approx (- (* x x) 3) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor -inf x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor -inf x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor -inf x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor -inf x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt (* 1/6 (pow x 2)) (taylor -inf x) (#s(alt (fma.f64 (/.f64 x #s(literal 6 binary64)) x #s(literal -1/2 binary64)) (patch (fma.f64 (/.f64 x #s(literal 6 binary64)) x #s(literal -1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2))))) (taylor -inf x) (#s(alt (fma.f64 (/.f64 x #s(literal 6 binary64)) x #s(literal -1/2 binary64)) (patch (fma.f64 (/.f64 x #s(literal 6 binary64)) x #s(literal -1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2))))) (taylor -inf x) (#s(alt (fma.f64 (/.f64 x #s(literal 6 binary64)) x #s(literal -1/2 binary64)) (patch (fma.f64 (/.f64 x #s(literal 6 binary64)) x #s(literal -1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2))))) (taylor -inf x) (#s(alt (fma.f64 (/.f64 x #s(literal 6 binary64)) x #s(literal -1/2 binary64)) (patch (fma.f64 (/.f64 x #s(literal 6 binary64)) x #s(literal -1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/6 x) (taylor -inf x) (#s(alt (/.f64 x #s(literal 6 binary64)) (patch (/.f64 x #s(literal 6 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/6 x) (taylor -inf x) (#s(alt (/.f64 x #s(literal 6 binary64)) (patch (/.f64 x #s(literal 6 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/6 x) (taylor -inf x) (#s(alt (/.f64 x #s(literal 6 binary64)) (patch (/.f64 x #s(literal 6 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/6 x) (taylor -inf x) (#s(alt (/.f64 x #s(literal 6 binary64)) (patch (/.f64 x #s(literal 6 binary64)) #<representation binary64>) () ())) ())
Calls

3 calls:

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

simplify122.0ms (3.8%)

Memory
-9.3MiB live, 105.1MiB allocated
Algorithm
egg-herbie
Rules
6 490×lower-fma.f64
6 490×lower-fma.f32
3 366×lower-*.f64
3 366×lower-*.f32
1 410×lower-/.f32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
059594
1115594
2245594
3511594
41293594
52324594
63220594
74729594
86069594
97954594
08085552
Stop Event
iter limit
node limit
Counts
108 → 108
Calls
Call 1
Inputs
-1/2
(- (* 1/6 (pow x 2)) 1/2)
(- (* 1/6 (pow x 2)) 1/2)
(- (* 1/6 (pow x 2)) 1/2)
(* 1/6 (pow x 2))
(* 1/6 (pow x 2))
(* 1/6 (pow x 2))
(* 1/6 (pow x 2))
(* 1/6 x)
(* 1/6 x)
(* 1/6 x)
(* 1/6 x)
-1/2
(- (* 1/6 (pow x 2)) 1/2)
(- (* 1/6 (pow x 2)) 1/2)
(- (* 1/6 (pow x 2)) 1/2)
-2
(- (* -2/3 (pow x 2)) 2)
(- (* (pow x 2) (- (* -2/9 (pow x 2)) 2/3)) 2)
(- (* (pow x 2) (- (* (pow x 2) (- (* -2/27 (pow x 2)) 2/9)) 2/3)) 2)
-3
(- (pow x 2) 3)
(- (pow x 2) 3)
(- (pow x 2) 3)
(pow x 2)
(pow x 2)
(pow x 2)
(pow x 2)
-1/2
(- (* 1/6 (pow x 2)) 1/2)
(- (* 1/6 (pow x 2)) 1/2)
(- (* 1/6 (pow x 2)) 1/2)
(* 1/6 x)
(* 1/6 x)
(* 1/6 x)
(* 1/6 x)
(* 1/6 (pow x 2))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(* 1/6 (pow x 2))
(* 1/6 (pow x 2))
(* 1/6 (pow x 2))
(* 1/6 (pow x 2))
(* 1/6 x)
(* 1/6 x)
(* 1/6 x)
(* 1/6 x)
(* 1/6 (pow x 2))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(/ 6 (pow x 2))
(/ (+ 6 (* 18 (/ 1 (pow x 2)))) (pow x 2))
(/ (+ 6 (+ (* 18 (/ 1 (pow x 2))) (/ 54 (pow x 4)))) (pow x 2))
(/ (+ 6 (+ (* 18 (/ 1 (pow x 2))) (+ (* 162 (/ 1 (pow x 6))) (/ 54 (pow x 4))))) (pow x 2))
(pow x 2)
(* (pow x 2) (- 1 (* 3 (/ 1 (pow x 2)))))
(* (pow x 2) (- 1 (* 3 (/ 1 (pow x 2)))))
(* (pow x 2) (- 1 (* 3 (/ 1 (pow x 2)))))
(pow x 2)
(pow x 2)
(pow x 2)
(pow x 2)
(* 1/6 (pow x 2))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(* 1/6 x)
(* 1/6 x)
(* 1/6 x)
(* 1/6 x)
(* 1/6 (pow x 2))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(* 1/6 (pow x 2))
(* 1/6 (pow x 2))
(* 1/6 (pow x 2))
(* 1/6 (pow x 2))
(* 1/6 x)
(* 1/6 x)
(* 1/6 x)
(* 1/6 x)
(* 1/6 (pow x 2))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(/ 6 (pow x 2))
(/ (+ 6 (* 18 (/ 1 (pow x 2)))) (pow x 2))
(/ (+ 6 (+ (* 18 (/ 1 (pow x 2))) (/ 54 (pow x 4)))) (pow x 2))
(/ (+ 6 (+ (* 18 (/ 1 (pow x 2))) (+ (* 162 (/ 1 (pow x 6))) (/ 54 (pow x 4))))) (pow x 2))
(pow x 2)
(* (pow x 2) (- 1 (* 3 (/ 1 (pow x 2)))))
(* (pow x 2) (- 1 (* 3 (/ 1 (pow x 2)))))
(* (pow x 2) (- 1 (* 3 (/ 1 (pow x 2)))))
(pow x 2)
(pow x 2)
(pow x 2)
(pow x 2)
(* 1/6 (pow x 2))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(* 1/6 x)
(* 1/6 x)
(* 1/6 x)
(* 1/6 x)
Outputs
-1/2
#s(literal -1/2 binary64)
(- (* 1/6 (pow x 2)) 1/2)
(fma.f64 (*.f64 x #s(literal 1/6 binary64)) x #s(literal -1/2 binary64))
(- (* 1/6 (pow x 2)) 1/2)
(fma.f64 (*.f64 x #s(literal 1/6 binary64)) x #s(literal -1/2 binary64))
(- (* 1/6 (pow x 2)) 1/2)
(fma.f64 (*.f64 x #s(literal 1/6 binary64)) x #s(literal -1/2 binary64))
(* 1/6 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/6 binary64))
(* 1/6 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/6 binary64))
(* 1/6 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/6 binary64))
(* 1/6 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/6 binary64))
(* 1/6 x)
(*.f64 x #s(literal 1/6 binary64))
(* 1/6 x)
(*.f64 x #s(literal 1/6 binary64))
(* 1/6 x)
(*.f64 x #s(literal 1/6 binary64))
(* 1/6 x)
(*.f64 x #s(literal 1/6 binary64))
-1/2
#s(literal -1/2 binary64)
(- (* 1/6 (pow x 2)) 1/2)
(fma.f64 (*.f64 x #s(literal 1/6 binary64)) x #s(literal -1/2 binary64))
(- (* 1/6 (pow x 2)) 1/2)
(fma.f64 (*.f64 x #s(literal 1/6 binary64)) x #s(literal -1/2 binary64))
(- (* 1/6 (pow x 2)) 1/2)
(fma.f64 (*.f64 x #s(literal 1/6 binary64)) x #s(literal -1/2 binary64))
-2
#s(literal -2 binary64)
(- (* -2/3 (pow x 2)) 2)
(fma.f64 #s(literal -2/3 binary64) (*.f64 x x) #s(literal -2 binary64))
(- (* (pow x 2) (- (* -2/9 (pow x 2)) 2/3)) 2)
(fma.f64 (fma.f64 #s(literal -2/9 binary64) (*.f64 x x) #s(literal -2/3 binary64)) (*.f64 x x) #s(literal -2 binary64))
(- (* (pow x 2) (- (* (pow x 2) (- (* -2/27 (pow x 2)) 2/9)) 2/3)) 2)
(fma.f64 (fma.f64 (fma.f64 #s(literal -2/27 binary64) (*.f64 x x) #s(literal -2/9 binary64)) (*.f64 x x) #s(literal -2/3 binary64)) (*.f64 x x) #s(literal -2 binary64))
-3
#s(literal -3 binary64)
(- (pow x 2) 3)
(fma.f64 x x #s(literal -3 binary64))
(- (pow x 2) 3)
(fma.f64 x x #s(literal -3 binary64))
(- (pow x 2) 3)
(fma.f64 x x #s(literal -3 binary64))
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
-1/2
#s(literal -1/2 binary64)
(- (* 1/6 (pow x 2)) 1/2)
(fma.f64 (*.f64 x #s(literal 1/6 binary64)) x #s(literal -1/2 binary64))
(- (* 1/6 (pow x 2)) 1/2)
(fma.f64 (*.f64 x #s(literal 1/6 binary64)) x #s(literal -1/2 binary64))
(- (* 1/6 (pow x 2)) 1/2)
(fma.f64 (*.f64 x #s(literal 1/6 binary64)) x #s(literal -1/2 binary64))
(* 1/6 x)
(*.f64 x #s(literal 1/6 binary64))
(* 1/6 x)
(*.f64 x #s(literal 1/6 binary64))
(* 1/6 x)
(*.f64 x #s(literal 1/6 binary64))
(* 1/6 x)
(*.f64 x #s(literal 1/6 binary64))
(* 1/6 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/6 binary64))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(fma.f64 (*.f64 x #s(literal 1/6 binary64)) x #s(literal -1/2 binary64))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(fma.f64 (*.f64 x #s(literal 1/6 binary64)) x #s(literal -1/2 binary64))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(fma.f64 (*.f64 x #s(literal 1/6 binary64)) x #s(literal -1/2 binary64))
(* 1/6 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/6 binary64))
(* 1/6 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/6 binary64))
(* 1/6 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/6 binary64))
(* 1/6 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/6 binary64))
(* 1/6 x)
(*.f64 x #s(literal 1/6 binary64))
(* 1/6 x)
(*.f64 x #s(literal 1/6 binary64))
(* 1/6 x)
(*.f64 x #s(literal 1/6 binary64))
(* 1/6 x)
(*.f64 x #s(literal 1/6 binary64))
(* 1/6 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/6 binary64))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(fma.f64 (*.f64 x #s(literal 1/6 binary64)) x #s(literal -1/2 binary64))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(fma.f64 (*.f64 x #s(literal 1/6 binary64)) x #s(literal -1/2 binary64))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(fma.f64 (*.f64 x #s(literal 1/6 binary64)) x #s(literal -1/2 binary64))
(/ 6 (pow x 2))
(/.f64 #s(literal 6 binary64) (*.f64 x x))
(/ (+ 6 (* 18 (/ 1 (pow x 2)))) (pow x 2))
(/.f64 (/.f64 (+.f64 (/.f64 #s(literal 18 binary64) (*.f64 x x)) #s(literal 6 binary64)) x) x)
(/ (+ 6 (+ (* 18 (/ 1 (pow x 2))) (/ 54 (pow x 4)))) (pow x 2))
(/.f64 (+.f64 (/.f64 #s(literal 54 binary64) (pow.f64 x #s(literal 4 binary64))) (+.f64 (/.f64 #s(literal 18 binary64) (*.f64 x x)) #s(literal 6 binary64))) (*.f64 x x))
(/ (+ 6 (+ (* 18 (/ 1 (pow x 2))) (+ (* 162 (/ 1 (pow x 6))) (/ 54 (pow x 4))))) (pow x 2))
(/.f64 (+.f64 (+.f64 (/.f64 #s(literal 162 binary64) (pow.f64 x #s(literal 6 binary64))) (+.f64 (/.f64 #s(literal 18 binary64) (*.f64 x x)) #s(literal 6 binary64))) (/.f64 #s(literal 54 binary64) (pow.f64 x #s(literal 4 binary64)))) (*.f64 x x))
(pow x 2)
(*.f64 x x)
(* (pow x 2) (- 1 (* 3 (/ 1 (pow x 2)))))
(fma.f64 x x #s(literal -3 binary64))
(* (pow x 2) (- 1 (* 3 (/ 1 (pow x 2)))))
(fma.f64 x x #s(literal -3 binary64))
(* (pow x 2) (- 1 (* 3 (/ 1 (pow x 2)))))
(fma.f64 x x #s(literal -3 binary64))
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(* 1/6 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/6 binary64))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(fma.f64 (*.f64 x #s(literal 1/6 binary64)) x #s(literal -1/2 binary64))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(fma.f64 (*.f64 x #s(literal 1/6 binary64)) x #s(literal -1/2 binary64))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(fma.f64 (*.f64 x #s(literal 1/6 binary64)) x #s(literal -1/2 binary64))
(* 1/6 x)
(*.f64 x #s(literal 1/6 binary64))
(* 1/6 x)
(*.f64 x #s(literal 1/6 binary64))
(* 1/6 x)
(*.f64 x #s(literal 1/6 binary64))
(* 1/6 x)
(*.f64 x #s(literal 1/6 binary64))
(* 1/6 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/6 binary64))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(fma.f64 (*.f64 x #s(literal 1/6 binary64)) x #s(literal -1/2 binary64))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(fma.f64 (*.f64 x #s(literal 1/6 binary64)) x #s(literal -1/2 binary64))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(fma.f64 (*.f64 x #s(literal 1/6 binary64)) x #s(literal -1/2 binary64))
(* 1/6 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/6 binary64))
(* 1/6 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/6 binary64))
(* 1/6 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/6 binary64))
(* 1/6 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/6 binary64))
(* 1/6 x)
(*.f64 x #s(literal 1/6 binary64))
(* 1/6 x)
(*.f64 x #s(literal 1/6 binary64))
(* 1/6 x)
(*.f64 x #s(literal 1/6 binary64))
(* 1/6 x)
(*.f64 x #s(literal 1/6 binary64))
(* 1/6 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/6 binary64))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(fma.f64 (*.f64 x #s(literal 1/6 binary64)) x #s(literal -1/2 binary64))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(fma.f64 (*.f64 x #s(literal 1/6 binary64)) x #s(literal -1/2 binary64))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(fma.f64 (*.f64 x #s(literal 1/6 binary64)) x #s(literal -1/2 binary64))
(/ 6 (pow x 2))
(/.f64 #s(literal 6 binary64) (*.f64 x x))
(/ (+ 6 (* 18 (/ 1 (pow x 2)))) (pow x 2))
(/.f64 (/.f64 (+.f64 (/.f64 #s(literal 18 binary64) (*.f64 x x)) #s(literal 6 binary64)) x) x)
(/ (+ 6 (+ (* 18 (/ 1 (pow x 2))) (/ 54 (pow x 4)))) (pow x 2))
(/.f64 (+.f64 (/.f64 #s(literal 54 binary64) (pow.f64 x #s(literal 4 binary64))) (+.f64 (/.f64 #s(literal 18 binary64) (*.f64 x x)) #s(literal 6 binary64))) (*.f64 x x))
(/ (+ 6 (+ (* 18 (/ 1 (pow x 2))) (+ (* 162 (/ 1 (pow x 6))) (/ 54 (pow x 4))))) (pow x 2))
(/.f64 (+.f64 (+.f64 (/.f64 #s(literal 162 binary64) (pow.f64 x #s(literal 6 binary64))) (+.f64 (/.f64 #s(literal 18 binary64) (*.f64 x x)) #s(literal 6 binary64))) (/.f64 #s(literal 54 binary64) (pow.f64 x #s(literal 4 binary64)))) (*.f64 x x))
(pow x 2)
(*.f64 x x)
(* (pow x 2) (- 1 (* 3 (/ 1 (pow x 2)))))
(fma.f64 x x #s(literal -3 binary64))
(* (pow x 2) (- 1 (* 3 (/ 1 (pow x 2)))))
(fma.f64 x x #s(literal -3 binary64))
(* (pow x 2) (- 1 (* 3 (/ 1 (pow x 2)))))
(fma.f64 x x #s(literal -3 binary64))
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(* 1/6 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/6 binary64))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(fma.f64 (*.f64 x #s(literal 1/6 binary64)) x #s(literal -1/2 binary64))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(fma.f64 (*.f64 x #s(literal 1/6 binary64)) x #s(literal -1/2 binary64))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(fma.f64 (*.f64 x #s(literal 1/6 binary64)) x #s(literal -1/2 binary64))
(* 1/6 x)
(*.f64 x #s(literal 1/6 binary64))
(* 1/6 x)
(*.f64 x #s(literal 1/6 binary64))
(* 1/6 x)
(*.f64 x #s(literal 1/6 binary64))
(* 1/6 x)
(*.f64 x #s(literal 1/6 binary64))

rewrite284.0ms (8.9%)

Memory
-196.9MiB live, 205.2MiB allocated
Rules
4 138×lower-fma.f32
4 136×lower-fma.f64
3 812×lower-*.f32
3 806×lower-*.f64
2 948×lower-/.f32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01866
02664
110063
250663
3442163
0820060
Stop Event
iter limit
node limit
iter limit
Counts
9 → 348
Calls
Call 1
Inputs
#s(approx (/ (- (* x x) 3) 6) (*.f64 (*.f64 #s(literal 1/6 binary64) x) x))
(*.f64 (*.f64 #s(literal 1/6 binary64) x) x)
(*.f64 #s(literal 1/6 binary64) x)
(/.f64 #s(literal 1 binary64) (/.f64 #s(literal 6 binary64) #s(approx (- (* x x) 3) (*.f64 x x))))
(/.f64 #s(literal 6 binary64) #s(approx (- (* x x) 3) (*.f64 x x)))
#s(approx (- (* x x) 3) (*.f64 x x))
(*.f64 x x)
(fma.f64 (/.f64 x #s(literal 6 binary64)) x #s(literal -1/2 binary64))
(/.f64 x #s(literal 6 binary64))
Outputs
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>

eval52.0ms (1.6%)

Memory
-6.2MiB live, 113.7MiB allocated
Compiler

Compiled 5 547 to 935 computations (83.1% saved)

prune13.0ms (0.4%)

Memory
-2.6MiB live, 39.2MiB allocated
Pruning

7 alts after pruning (2 fresh and 5 done)

PrunedKeptTotal
New4542456
Fresh000
Picked213
Done044
Total4567463
Accuracy
100.0%
Counts
463 → 7
Alt Table
Click to see full alt table
StatusAccuracyProgram
99.9%
(fma.f64 (*.f64 x #s(literal 1/6 binary64)) x #s(literal -1/2 binary64))
45.9%
(/.f64 #s(approx (- (* x x) 3) (*.f64 x x)) #s(literal 6 binary64))
45.9%
#s(approx (/ (- (* x x) 3) 6) (/.f64 x (/.f64 #s(literal 6 binary64) x)))
45.8%
#s(approx (/ (- (* x x) 3) 6) (*.f64 (/.f64 x #s(literal 6 binary64)) x))
45.8%
#s(approx (/ (- (* x x) 3) 6) (*.f64 (*.f64 #s(literal 1/6 binary64) x) x))
45.8%
#s(approx (/ (- (* x x) 3) 6) (*.f64 #s(literal 1/6 binary64) (*.f64 x x)))
53.8%
#s(approx (/ (- (* x x) 3) 6) #s(literal -1/2 binary64))
Compiler

Compiled 38 to 33 computations (13.2% saved)

simplify4.0ms (0.1%)

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

Found 6 expressions of interest:

NewMetricScoreProgram
cost-diff0
(/.f64 #s(literal 6 binary64) x)
cost-diff0
#s(approx (/ (- (* x x) 3) 6) (/.f64 x (/.f64 #s(literal 6 binary64) x)))
cost-diff384
(/.f64 x (/.f64 #s(literal 6 binary64) x))
cost-diff0
(/.f64 x #s(literal 6 binary64))
cost-diff0
(*.f64 (/.f64 x #s(literal 6 binary64)) x)
cost-diff0
#s(approx (/ (- (* x x) 3) 6) (*.f64 (/.f64 x #s(literal 6 binary64)) x))
Rules
10×lower-/.f32
lower-+.f64
lower-+.f32
lift-/.f64
lower-fma.f64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01246
01646
12546
22946
33046
03044
Stop Event
iter limit
saturated
iter limit
Calls
Call 1
Inputs
#s(approx (/ (- (* x x) 3) 6) (*.f64 (/.f64 x #s(literal 6 binary64)) x))
(*.f64 (/.f64 x #s(literal 6 binary64)) x)
(/.f64 x #s(literal 6 binary64))
x
#s(literal 6 binary64)
#s(approx (/ (- (* x x) 3) 6) (/.f64 x (/.f64 #s(literal 6 binary64) x)))
(/.f64 x (/.f64 #s(literal 6 binary64) x))
x
(/.f64 #s(literal 6 binary64) x)
#s(literal 6 binary64)
Outputs
#s(approx (/ (- (* x x) 3) 6) (*.f64 (/.f64 x #s(literal 6 binary64)) x))
(*.f64 (/.f64 x #s(literal 6 binary64)) x)
(/.f64 x #s(literal 6 binary64))
x
#s(literal 6 binary64)
#s(approx (/ (- (* x x) 3) 6) (/.f64 x (/.f64 #s(literal 6 binary64) x)))
#s(approx (/ (- (* x x) 3) 6) (*.f64 (/.f64 x #s(literal 6 binary64)) x))
(/.f64 x (/.f64 #s(literal 6 binary64) x))
(*.f64 (/.f64 x #s(literal 6 binary64)) x)
x
(/.f64 #s(literal 6 binary64) x)
#s(literal 6 binary64)

localize26.0ms (0.8%)

Memory
10.2MiB live, 49.1MiB allocated
Localize:

Found 6 expressions of interest:

NewMetricScoreProgram
accuracy0
(/.f64 #s(literal 6 binary64) x)
accuracy0.1015625
(/.f64 x (/.f64 #s(literal 6 binary64) x))
accuracy34.60353183682213
#s(approx (/ (- (* x x) 3) 6) (/.f64 x (/.f64 #s(literal 6 binary64) x)))
accuracy0
(/.f64 x #s(literal 6 binary64))
accuracy0.11328125
(*.f64 (/.f64 x #s(literal 6 binary64)) x)
accuracy34.60353183682213
#s(approx (/ (- (* x x) 3) 6) (*.f64 (/.f64 x #s(literal 6 binary64)) x))
Samples
18.0ms256×0valid
Compiler

Compiled 36 to 12 computations (66.7% saved)

Precisions
Click to see histograms. Total time spent on operations: 11.0ms
ival-div: 6.0ms (54.8% of total)
ival-mult: 3.0ms (27.4% of total)
ival-sub: 1.0ms (9.1% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series6.0ms (0.2%)

Memory
-30.4MiB live, 8.4MiB allocated
Counts
6 → 72
Calls
Call 1
Inputs
#s(alt #s(approx (/ (- (* x x) 3) 6) (*.f64 (/.f64 x #s(literal 6 binary64)) x)) (patch #s(approx (/ (- (* x x) 3) 6) (*.f64 (/.f64 x #s(literal 6 binary64)) x)) #<representation binary64>) () ())
#s(alt (*.f64 (/.f64 x #s(literal 6 binary64)) x) (patch (*.f64 (/.f64 x #s(literal 6 binary64)) x) #<representation binary64>) () ())
#s(alt (/.f64 x #s(literal 6 binary64)) (patch (/.f64 x #s(literal 6 binary64)) #<representation binary64>) () ())
#s(alt (/.f64 x (/.f64 #s(literal 6 binary64) x)) (patch (/.f64 x (/.f64 #s(literal 6 binary64) x)) #<representation binary64>) () ())
#s(alt #s(approx (/ (- (* x x) 3) 6) (/.f64 x (/.f64 #s(literal 6 binary64) x))) (patch #s(approx (/ (- (* x x) 3) 6) (/.f64 x (/.f64 #s(literal 6 binary64) x))) #<representation binary64>) () ())
#s(alt (/.f64 #s(literal 6 binary64) x) (patch (/.f64 #s(literal 6 binary64) x) #<representation binary64>) () ())
Outputs
#s(alt -1/2 (taylor 0 x) (#s(alt #s(approx (/ (- (* x x) 3) 6) (*.f64 (/.f64 x #s(literal 6 binary64)) x)) (patch #s(approx (/ (- (* x x) 3) 6) (*.f64 (/.f64 x #s(literal 6 binary64)) x)) #<representation binary64>) () ())) ())
#s(alt (- (* 1/6 (pow x 2)) 1/2) (taylor 0 x) (#s(alt #s(approx (/ (- (* x x) 3) 6) (*.f64 (/.f64 x #s(literal 6 binary64)) x)) (patch #s(approx (/ (- (* x x) 3) 6) (*.f64 (/.f64 x #s(literal 6 binary64)) x)) #<representation binary64>) () ())) ())
#s(alt (- (* 1/6 (pow x 2)) 1/2) (taylor 0 x) (#s(alt #s(approx (/ (- (* x x) 3) 6) (*.f64 (/.f64 x #s(literal 6 binary64)) x)) (patch #s(approx (/ (- (* x x) 3) 6) (*.f64 (/.f64 x #s(literal 6 binary64)) x)) #<representation binary64>) () ())) ())
#s(alt (- (* 1/6 (pow x 2)) 1/2) (taylor 0 x) (#s(alt #s(approx (/ (- (* x x) 3) 6) (*.f64 (/.f64 x #s(literal 6 binary64)) x)) (patch #s(approx (/ (- (* x x) 3) 6) (*.f64 (/.f64 x #s(literal 6 binary64)) x)) #<representation binary64>) () ())) ())
#s(alt (* 1/6 (pow x 2)) (taylor 0 x) (#s(alt (*.f64 (/.f64 x #s(literal 6 binary64)) x) (patch (*.f64 (/.f64 x #s(literal 6 binary64)) x) #<representation binary64>) () ())) ())
#s(alt (* 1/6 (pow x 2)) (taylor 0 x) (#s(alt (*.f64 (/.f64 x #s(literal 6 binary64)) x) (patch (*.f64 (/.f64 x #s(literal 6 binary64)) x) #<representation binary64>) () ())) ())
#s(alt (* 1/6 (pow x 2)) (taylor 0 x) (#s(alt (*.f64 (/.f64 x #s(literal 6 binary64)) x) (patch (*.f64 (/.f64 x #s(literal 6 binary64)) x) #<representation binary64>) () ())) ())
#s(alt (* 1/6 (pow x 2)) (taylor 0 x) (#s(alt (*.f64 (/.f64 x #s(literal 6 binary64)) x) (patch (*.f64 (/.f64 x #s(literal 6 binary64)) x) #<representation binary64>) () ())) ())
#s(alt (* 1/6 x) (taylor 0 x) (#s(alt (/.f64 x #s(literal 6 binary64)) (patch (/.f64 x #s(literal 6 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/6 x) (taylor 0 x) (#s(alt (/.f64 x #s(literal 6 binary64)) (patch (/.f64 x #s(literal 6 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/6 x) (taylor 0 x) (#s(alt (/.f64 x #s(literal 6 binary64)) (patch (/.f64 x #s(literal 6 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/6 x) (taylor 0 x) (#s(alt (/.f64 x #s(literal 6 binary64)) (patch (/.f64 x #s(literal 6 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/6 (pow x 2)) (taylor 0 x) (#s(alt (/.f64 x (/.f64 #s(literal 6 binary64) x)) (patch (/.f64 x (/.f64 #s(literal 6 binary64) x)) #<representation binary64>) () ())) ())
#s(alt (* 1/6 (pow x 2)) (taylor 0 x) (#s(alt (/.f64 x (/.f64 #s(literal 6 binary64) x)) (patch (/.f64 x (/.f64 #s(literal 6 binary64) x)) #<representation binary64>) () ())) ())
#s(alt (* 1/6 (pow x 2)) (taylor 0 x) (#s(alt (/.f64 x (/.f64 #s(literal 6 binary64) x)) (patch (/.f64 x (/.f64 #s(literal 6 binary64) x)) #<representation binary64>) () ())) ())
#s(alt (* 1/6 (pow x 2)) (taylor 0 x) (#s(alt (/.f64 x (/.f64 #s(literal 6 binary64) x)) (patch (/.f64 x (/.f64 #s(literal 6 binary64) x)) #<representation binary64>) () ())) ())
#s(alt -1/2 (taylor 0 x) (#s(alt #s(approx (/ (- (* x x) 3) 6) (/.f64 x (/.f64 #s(literal 6 binary64) x))) (patch #s(approx (/ (- (* x x) 3) 6) (/.f64 x (/.f64 #s(literal 6 binary64) x))) #<representation binary64>) () ())) ())
#s(alt (- (* 1/6 (pow x 2)) 1/2) (taylor 0 x) (#s(alt #s(approx (/ (- (* x x) 3) 6) (/.f64 x (/.f64 #s(literal 6 binary64) x))) (patch #s(approx (/ (- (* x x) 3) 6) (/.f64 x (/.f64 #s(literal 6 binary64) x))) #<representation binary64>) () ())) ())
#s(alt (- (* 1/6 (pow x 2)) 1/2) (taylor 0 x) (#s(alt #s(approx (/ (- (* x x) 3) 6) (/.f64 x (/.f64 #s(literal 6 binary64) x))) (patch #s(approx (/ (- (* x x) 3) 6) (/.f64 x (/.f64 #s(literal 6 binary64) x))) #<representation binary64>) () ())) ())
#s(alt (- (* 1/6 (pow x 2)) 1/2) (taylor 0 x) (#s(alt #s(approx (/ (- (* x x) 3) 6) (/.f64 x (/.f64 #s(literal 6 binary64) x))) (patch #s(approx (/ (- (* x x) 3) 6) (/.f64 x (/.f64 #s(literal 6 binary64) x))) #<representation binary64>) () ())) ())
#s(alt (/ 6 x) (taylor 0 x) (#s(alt (/.f64 #s(literal 6 binary64) x) (patch (/.f64 #s(literal 6 binary64) x) #<representation binary64>) () ())) ())
#s(alt (/ 6 x) (taylor 0 x) (#s(alt (/.f64 #s(literal 6 binary64) x) (patch (/.f64 #s(literal 6 binary64) x) #<representation binary64>) () ())) ())
#s(alt (/ 6 x) (taylor 0 x) (#s(alt (/.f64 #s(literal 6 binary64) x) (patch (/.f64 #s(literal 6 binary64) x) #<representation binary64>) () ())) ())
#s(alt (/ 6 x) (taylor 0 x) (#s(alt (/.f64 #s(literal 6 binary64) x) (patch (/.f64 #s(literal 6 binary64) x) #<representation binary64>) () ())) ())
#s(alt (* 1/6 (pow x 2)) (taylor inf x) (#s(alt #s(approx (/ (- (* x x) 3) 6) (*.f64 (/.f64 x #s(literal 6 binary64)) x)) (patch #s(approx (/ (- (* x x) 3) 6) (*.f64 (/.f64 x #s(literal 6 binary64)) x)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2))))) (taylor inf x) (#s(alt #s(approx (/ (- (* x x) 3) 6) (*.f64 (/.f64 x #s(literal 6 binary64)) x)) (patch #s(approx (/ (- (* x x) 3) 6) (*.f64 (/.f64 x #s(literal 6 binary64)) x)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2))))) (taylor inf x) (#s(alt #s(approx (/ (- (* x x) 3) 6) (*.f64 (/.f64 x #s(literal 6 binary64)) x)) (patch #s(approx (/ (- (* x x) 3) 6) (*.f64 (/.f64 x #s(literal 6 binary64)) x)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2))))) (taylor inf x) (#s(alt #s(approx (/ (- (* x x) 3) 6) (*.f64 (/.f64 x #s(literal 6 binary64)) x)) (patch #s(approx (/ (- (* x x) 3) 6) (*.f64 (/.f64 x #s(literal 6 binary64)) x)) #<representation binary64>) () ())) ())
#s(alt (* 1/6 (pow x 2)) (taylor inf x) (#s(alt (*.f64 (/.f64 x #s(literal 6 binary64)) x) (patch (*.f64 (/.f64 x #s(literal 6 binary64)) x) #<representation binary64>) () ())) ())
#s(alt (* 1/6 (pow x 2)) (taylor inf x) (#s(alt (*.f64 (/.f64 x #s(literal 6 binary64)) x) (patch (*.f64 (/.f64 x #s(literal 6 binary64)) x) #<representation binary64>) () ())) ())
#s(alt (* 1/6 (pow x 2)) (taylor inf x) (#s(alt (*.f64 (/.f64 x #s(literal 6 binary64)) x) (patch (*.f64 (/.f64 x #s(literal 6 binary64)) x) #<representation binary64>) () ())) ())
#s(alt (* 1/6 (pow x 2)) (taylor inf x) (#s(alt (*.f64 (/.f64 x #s(literal 6 binary64)) x) (patch (*.f64 (/.f64 x #s(literal 6 binary64)) x) #<representation binary64>) () ())) ())
#s(alt (* 1/6 x) (taylor inf x) (#s(alt (/.f64 x #s(literal 6 binary64)) (patch (/.f64 x #s(literal 6 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/6 x) (taylor inf x) (#s(alt (/.f64 x #s(literal 6 binary64)) (patch (/.f64 x #s(literal 6 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/6 x) (taylor inf x) (#s(alt (/.f64 x #s(literal 6 binary64)) (patch (/.f64 x #s(literal 6 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/6 x) (taylor inf x) (#s(alt (/.f64 x #s(literal 6 binary64)) (patch (/.f64 x #s(literal 6 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/6 (pow x 2)) (taylor inf x) (#s(alt (/.f64 x (/.f64 #s(literal 6 binary64) x)) (patch (/.f64 x (/.f64 #s(literal 6 binary64) x)) #<representation binary64>) () ())) ())
#s(alt (* 1/6 (pow x 2)) (taylor inf x) (#s(alt (/.f64 x (/.f64 #s(literal 6 binary64) x)) (patch (/.f64 x (/.f64 #s(literal 6 binary64) x)) #<representation binary64>) () ())) ())
#s(alt (* 1/6 (pow x 2)) (taylor inf x) (#s(alt (/.f64 x (/.f64 #s(literal 6 binary64) x)) (patch (/.f64 x (/.f64 #s(literal 6 binary64) x)) #<representation binary64>) () ())) ())
#s(alt (* 1/6 (pow x 2)) (taylor inf x) (#s(alt (/.f64 x (/.f64 #s(literal 6 binary64) x)) (patch (/.f64 x (/.f64 #s(literal 6 binary64) x)) #<representation binary64>) () ())) ())
#s(alt (* 1/6 (pow x 2)) (taylor inf x) (#s(alt #s(approx (/ (- (* x x) 3) 6) (/.f64 x (/.f64 #s(literal 6 binary64) x))) (patch #s(approx (/ (- (* x x) 3) 6) (/.f64 x (/.f64 #s(literal 6 binary64) x))) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2))))) (taylor inf x) (#s(alt #s(approx (/ (- (* x x) 3) 6) (/.f64 x (/.f64 #s(literal 6 binary64) x))) (patch #s(approx (/ (- (* x x) 3) 6) (/.f64 x (/.f64 #s(literal 6 binary64) x))) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2))))) (taylor inf x) (#s(alt #s(approx (/ (- (* x x) 3) 6) (/.f64 x (/.f64 #s(literal 6 binary64) x))) (patch #s(approx (/ (- (* x x) 3) 6) (/.f64 x (/.f64 #s(literal 6 binary64) x))) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2))))) (taylor inf x) (#s(alt #s(approx (/ (- (* x x) 3) 6) (/.f64 x (/.f64 #s(literal 6 binary64) x))) (patch #s(approx (/ (- (* x x) 3) 6) (/.f64 x (/.f64 #s(literal 6 binary64) x))) #<representation binary64>) () ())) ())
#s(alt (/ 6 x) (taylor inf x) (#s(alt (/.f64 #s(literal 6 binary64) x) (patch (/.f64 #s(literal 6 binary64) x) #<representation binary64>) () ())) ())
#s(alt (/ 6 x) (taylor inf x) (#s(alt (/.f64 #s(literal 6 binary64) x) (patch (/.f64 #s(literal 6 binary64) x) #<representation binary64>) () ())) ())
#s(alt (/ 6 x) (taylor inf x) (#s(alt (/.f64 #s(literal 6 binary64) x) (patch (/.f64 #s(literal 6 binary64) x) #<representation binary64>) () ())) ())
#s(alt (/ 6 x) (taylor inf x) (#s(alt (/.f64 #s(literal 6 binary64) x) (patch (/.f64 #s(literal 6 binary64) x) #<representation binary64>) () ())) ())
#s(alt (* 1/6 (pow x 2)) (taylor -inf x) (#s(alt #s(approx (/ (- (* x x) 3) 6) (*.f64 (/.f64 x #s(literal 6 binary64)) x)) (patch #s(approx (/ (- (* x x) 3) 6) (*.f64 (/.f64 x #s(literal 6 binary64)) x)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2))))) (taylor -inf x) (#s(alt #s(approx (/ (- (* x x) 3) 6) (*.f64 (/.f64 x #s(literal 6 binary64)) x)) (patch #s(approx (/ (- (* x x) 3) 6) (*.f64 (/.f64 x #s(literal 6 binary64)) x)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2))))) (taylor -inf x) (#s(alt #s(approx (/ (- (* x x) 3) 6) (*.f64 (/.f64 x #s(literal 6 binary64)) x)) (patch #s(approx (/ (- (* x x) 3) 6) (*.f64 (/.f64 x #s(literal 6 binary64)) x)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2))))) (taylor -inf x) (#s(alt #s(approx (/ (- (* x x) 3) 6) (*.f64 (/.f64 x #s(literal 6 binary64)) x)) (patch #s(approx (/ (- (* x x) 3) 6) (*.f64 (/.f64 x #s(literal 6 binary64)) x)) #<representation binary64>) () ())) ())
#s(alt (* 1/6 (pow x 2)) (taylor -inf x) (#s(alt (*.f64 (/.f64 x #s(literal 6 binary64)) x) (patch (*.f64 (/.f64 x #s(literal 6 binary64)) x) #<representation binary64>) () ())) ())
#s(alt (* 1/6 (pow x 2)) (taylor -inf x) (#s(alt (*.f64 (/.f64 x #s(literal 6 binary64)) x) (patch (*.f64 (/.f64 x #s(literal 6 binary64)) x) #<representation binary64>) () ())) ())
#s(alt (* 1/6 (pow x 2)) (taylor -inf x) (#s(alt (*.f64 (/.f64 x #s(literal 6 binary64)) x) (patch (*.f64 (/.f64 x #s(literal 6 binary64)) x) #<representation binary64>) () ())) ())
#s(alt (* 1/6 (pow x 2)) (taylor -inf x) (#s(alt (*.f64 (/.f64 x #s(literal 6 binary64)) x) (patch (*.f64 (/.f64 x #s(literal 6 binary64)) x) #<representation binary64>) () ())) ())
#s(alt (* 1/6 x) (taylor -inf x) (#s(alt (/.f64 x #s(literal 6 binary64)) (patch (/.f64 x #s(literal 6 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/6 x) (taylor -inf x) (#s(alt (/.f64 x #s(literal 6 binary64)) (patch (/.f64 x #s(literal 6 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/6 x) (taylor -inf x) (#s(alt (/.f64 x #s(literal 6 binary64)) (patch (/.f64 x #s(literal 6 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/6 x) (taylor -inf x) (#s(alt (/.f64 x #s(literal 6 binary64)) (patch (/.f64 x #s(literal 6 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/6 (pow x 2)) (taylor -inf x) (#s(alt (/.f64 x (/.f64 #s(literal 6 binary64) x)) (patch (/.f64 x (/.f64 #s(literal 6 binary64) x)) #<representation binary64>) () ())) ())
#s(alt (* 1/6 (pow x 2)) (taylor -inf x) (#s(alt (/.f64 x (/.f64 #s(literal 6 binary64) x)) (patch (/.f64 x (/.f64 #s(literal 6 binary64) x)) #<representation binary64>) () ())) ())
#s(alt (* 1/6 (pow x 2)) (taylor -inf x) (#s(alt (/.f64 x (/.f64 #s(literal 6 binary64) x)) (patch (/.f64 x (/.f64 #s(literal 6 binary64) x)) #<representation binary64>) () ())) ())
#s(alt (* 1/6 (pow x 2)) (taylor -inf x) (#s(alt (/.f64 x (/.f64 #s(literal 6 binary64) x)) (patch (/.f64 x (/.f64 #s(literal 6 binary64) x)) #<representation binary64>) () ())) ())
#s(alt (* 1/6 (pow x 2)) (taylor -inf x) (#s(alt #s(approx (/ (- (* x x) 3) 6) (/.f64 x (/.f64 #s(literal 6 binary64) x))) (patch #s(approx (/ (- (* x x) 3) 6) (/.f64 x (/.f64 #s(literal 6 binary64) x))) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2))))) (taylor -inf x) (#s(alt #s(approx (/ (- (* x x) 3) 6) (/.f64 x (/.f64 #s(literal 6 binary64) x))) (patch #s(approx (/ (- (* x x) 3) 6) (/.f64 x (/.f64 #s(literal 6 binary64) x))) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2))))) (taylor -inf x) (#s(alt #s(approx (/ (- (* x x) 3) 6) (/.f64 x (/.f64 #s(literal 6 binary64) x))) (patch #s(approx (/ (- (* x x) 3) 6) (/.f64 x (/.f64 #s(literal 6 binary64) x))) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2))))) (taylor -inf x) (#s(alt #s(approx (/ (- (* x x) 3) 6) (/.f64 x (/.f64 #s(literal 6 binary64) x))) (patch #s(approx (/ (- (* x x) 3) 6) (/.f64 x (/.f64 #s(literal 6 binary64) x))) #<representation binary64>) () ())) ())
#s(alt (/ 6 x) (taylor -inf x) (#s(alt (/.f64 #s(literal 6 binary64) x) (patch (/.f64 #s(literal 6 binary64) x) #<representation binary64>) () ())) ())
#s(alt (/ 6 x) (taylor -inf x) (#s(alt (/.f64 #s(literal 6 binary64) x) (patch (/.f64 #s(literal 6 binary64) x) #<representation binary64>) () ())) ())
#s(alt (/ 6 x) (taylor -inf x) (#s(alt (/.f64 #s(literal 6 binary64) x) (patch (/.f64 #s(literal 6 binary64) x) #<representation binary64>) () ())) ())
#s(alt (/ 6 x) (taylor -inf x) (#s(alt (/.f64 #s(literal 6 binary64) x) (patch (/.f64 #s(literal 6 binary64) x) #<representation binary64>) () ())) ())
Calls

3 calls:

TimeVariablePointExpression
1.0ms
x
@inf
((/ (- (* x x) 3) 6) (* (/ x 6) x) (/ x 6) (/ x (/ 6 x)) (/ (- (* x x) 3) 6) (/ 6 x))
1.0ms
x
@-inf
((/ (- (* x x) 3) 6) (* (/ x 6) x) (/ x 6) (/ x (/ 6 x)) (/ (- (* x x) 3) 6) (/ 6 x))
1.0ms
x
@0
((/ (- (* x x) 3) 6) (* (/ x 6) x) (/ x 6) (/ x (/ 6 x)) (/ (- (* x x) 3) 6) (/ 6 x))

simplify100.0ms (3.2%)

Memory
3.9MiB live, 122.4MiB allocated
Algorithm
egg-herbie
Rules
3 338×lower-*.f64
3 338×lower-*.f32
2 710×lower-fma.f64
2 710×lower-fma.f32
1 536×div-sub
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
016340
131340
260340
3133340
4380340
5713340
61168340
72181340
83630340
94712340
105712340
116859340
08047322
Stop Event
iter limit
node limit
Counts
72 → 72
Calls
Call 1
Inputs
-1/2
(- (* 1/6 (pow x 2)) 1/2)
(- (* 1/6 (pow x 2)) 1/2)
(- (* 1/6 (pow x 2)) 1/2)
(* 1/6 (pow x 2))
(* 1/6 (pow x 2))
(* 1/6 (pow x 2))
(* 1/6 (pow x 2))
(* 1/6 x)
(* 1/6 x)
(* 1/6 x)
(* 1/6 x)
(* 1/6 (pow x 2))
(* 1/6 (pow x 2))
(* 1/6 (pow x 2))
(* 1/6 (pow x 2))
-1/2
(- (* 1/6 (pow x 2)) 1/2)
(- (* 1/6 (pow x 2)) 1/2)
(- (* 1/6 (pow x 2)) 1/2)
(/ 6 x)
(/ 6 x)
(/ 6 x)
(/ 6 x)
(* 1/6 (pow x 2))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(* 1/6 (pow x 2))
(* 1/6 (pow x 2))
(* 1/6 (pow x 2))
(* 1/6 (pow x 2))
(* 1/6 x)
(* 1/6 x)
(* 1/6 x)
(* 1/6 x)
(* 1/6 (pow x 2))
(* 1/6 (pow x 2))
(* 1/6 (pow x 2))
(* 1/6 (pow x 2))
(* 1/6 (pow x 2))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(/ 6 x)
(/ 6 x)
(/ 6 x)
(/ 6 x)
(* 1/6 (pow x 2))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(* 1/6 (pow x 2))
(* 1/6 (pow x 2))
(* 1/6 (pow x 2))
(* 1/6 (pow x 2))
(* 1/6 x)
(* 1/6 x)
(* 1/6 x)
(* 1/6 x)
(* 1/6 (pow x 2))
(* 1/6 (pow x 2))
(* 1/6 (pow x 2))
(* 1/6 (pow x 2))
(* 1/6 (pow x 2))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(/ 6 x)
(/ 6 x)
(/ 6 x)
(/ 6 x)
Outputs
-1/2
#s(literal -1/2 binary64)
(- (* 1/6 (pow x 2)) 1/2)
(fma.f64 (*.f64 x x) #s(literal 1/6 binary64) #s(literal -1/2 binary64))
(- (* 1/6 (pow x 2)) 1/2)
(fma.f64 (*.f64 x x) #s(literal 1/6 binary64) #s(literal -1/2 binary64))
(- (* 1/6 (pow x 2)) 1/2)
(fma.f64 (*.f64 x x) #s(literal 1/6 binary64) #s(literal -1/2 binary64))
(* 1/6 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/6 binary64))
(* 1/6 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/6 binary64))
(* 1/6 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/6 binary64))
(* 1/6 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/6 binary64))
(* 1/6 x)
(*.f64 x #s(literal 1/6 binary64))
(* 1/6 x)
(*.f64 x #s(literal 1/6 binary64))
(* 1/6 x)
(*.f64 x #s(literal 1/6 binary64))
(* 1/6 x)
(*.f64 x #s(literal 1/6 binary64))
(* 1/6 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/6 binary64))
(* 1/6 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/6 binary64))
(* 1/6 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/6 binary64))
(* 1/6 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/6 binary64))
-1/2
#s(literal -1/2 binary64)
(- (* 1/6 (pow x 2)) 1/2)
(fma.f64 (*.f64 x x) #s(literal 1/6 binary64) #s(literal -1/2 binary64))
(- (* 1/6 (pow x 2)) 1/2)
(fma.f64 (*.f64 x x) #s(literal 1/6 binary64) #s(literal -1/2 binary64))
(- (* 1/6 (pow x 2)) 1/2)
(fma.f64 (*.f64 x x) #s(literal 1/6 binary64) #s(literal -1/2 binary64))
(/ 6 x)
(/.f64 #s(literal 6 binary64) x)
(/ 6 x)
(/.f64 #s(literal 6 binary64) x)
(/ 6 x)
(/.f64 #s(literal 6 binary64) x)
(/ 6 x)
(/.f64 #s(literal 6 binary64) x)
(* 1/6 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/6 binary64))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(fma.f64 (*.f64 x x) #s(literal 1/6 binary64) #s(literal -1/2 binary64))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(fma.f64 (*.f64 x x) #s(literal 1/6 binary64) #s(literal -1/2 binary64))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(fma.f64 (*.f64 x x) #s(literal 1/6 binary64) #s(literal -1/2 binary64))
(* 1/6 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/6 binary64))
(* 1/6 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/6 binary64))
(* 1/6 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/6 binary64))
(* 1/6 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/6 binary64))
(* 1/6 x)
(*.f64 x #s(literal 1/6 binary64))
(* 1/6 x)
(*.f64 x #s(literal 1/6 binary64))
(* 1/6 x)
(*.f64 x #s(literal 1/6 binary64))
(* 1/6 x)
(*.f64 x #s(literal 1/6 binary64))
(* 1/6 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/6 binary64))
(* 1/6 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/6 binary64))
(* 1/6 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/6 binary64))
(* 1/6 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/6 binary64))
(* 1/6 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/6 binary64))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(fma.f64 (*.f64 x x) #s(literal 1/6 binary64) #s(literal -1/2 binary64))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(fma.f64 (*.f64 x x) #s(literal 1/6 binary64) #s(literal -1/2 binary64))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(fma.f64 (*.f64 x x) #s(literal 1/6 binary64) #s(literal -1/2 binary64))
(/ 6 x)
(/.f64 #s(literal 6 binary64) x)
(/ 6 x)
(/.f64 #s(literal 6 binary64) x)
(/ 6 x)
(/.f64 #s(literal 6 binary64) x)
(/ 6 x)
(/.f64 #s(literal 6 binary64) x)
(* 1/6 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/6 binary64))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(fma.f64 (*.f64 x x) #s(literal 1/6 binary64) #s(literal -1/2 binary64))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(fma.f64 (*.f64 x x) #s(literal 1/6 binary64) #s(literal -1/2 binary64))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(fma.f64 (*.f64 x x) #s(literal 1/6 binary64) #s(literal -1/2 binary64))
(* 1/6 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/6 binary64))
(* 1/6 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/6 binary64))
(* 1/6 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/6 binary64))
(* 1/6 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/6 binary64))
(* 1/6 x)
(*.f64 x #s(literal 1/6 binary64))
(* 1/6 x)
(*.f64 x #s(literal 1/6 binary64))
(* 1/6 x)
(*.f64 x #s(literal 1/6 binary64))
(* 1/6 x)
(*.f64 x #s(literal 1/6 binary64))
(* 1/6 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/6 binary64))
(* 1/6 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/6 binary64))
(* 1/6 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/6 binary64))
(* 1/6 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/6 binary64))
(* 1/6 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/6 binary64))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(fma.f64 (*.f64 x x) #s(literal 1/6 binary64) #s(literal -1/2 binary64))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(fma.f64 (*.f64 x x) #s(literal 1/6 binary64) #s(literal -1/2 binary64))
(* (pow x 2) (- 1/6 (* 1/2 (/ 1 (pow x 2)))))
(fma.f64 (*.f64 x x) #s(literal 1/6 binary64) #s(literal -1/2 binary64))
(/ 6 x)
(/.f64 #s(literal 6 binary64) x)
(/ 6 x)
(/.f64 #s(literal 6 binary64) x)
(/ 6 x)
(/.f64 #s(literal 6 binary64) x)
(/ 6 x)
(/.f64 #s(literal 6 binary64) x)

rewrite124.0ms (3.9%)

Memory
18.8MiB live, 211.6MiB allocated
Rules
4 070×lower-*.f32
4 068×lower-*.f64
3 656×lower-/.f32
3 650×lower-/.f64
2 808×lower-fma.f64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01242
01642
16342
232742
3272542
0814840
Stop Event
iter limit
node limit
iter limit
Counts
6 → 188
Calls
Call 1
Inputs
#s(approx (/ (- (* x x) 3) 6) (*.f64 (/.f64 x #s(literal 6 binary64)) x))
(*.f64 (/.f64 x #s(literal 6 binary64)) x)
(/.f64 x #s(literal 6 binary64))
(/.f64 x (/.f64 #s(literal 6 binary64) x))
#s(approx (/ (- (* x x) 3) 6) (/.f64 x (/.f64 #s(literal 6 binary64) x)))
(/.f64 #s(literal 6 binary64) x)
Outputs
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>

eval30.0ms (0.9%)

Memory
-13.2MiB live, 70.2MiB allocated
Compiler

Compiled 2 304 to 428 computations (81.4% saved)

prune12.0ms (0.4%)

Memory
-1.1MiB live, 38.2MiB allocated
Pruning

7 alts after pruning (0 fresh and 7 done)

PrunedKeptTotal
New2600260
Fresh000
Picked022
Done055
Total2607267
Accuracy
100.0%
Counts
267 → 7
Alt Table
Click to see full alt table
StatusAccuracyProgram
99.9%
(fma.f64 (*.f64 x #s(literal 1/6 binary64)) x #s(literal -1/2 binary64))
45.9%
(/.f64 #s(approx (- (* x x) 3) (*.f64 x x)) #s(literal 6 binary64))
45.9%
#s(approx (/ (- (* x x) 3) 6) (/.f64 x (/.f64 #s(literal 6 binary64) x)))
45.8%
#s(approx (/ (- (* x x) 3) 6) (*.f64 (/.f64 x #s(literal 6 binary64)) x))
45.8%
#s(approx (/ (- (* x x) 3) 6) (*.f64 (*.f64 #s(literal 1/6 binary64) x) x))
45.8%
#s(approx (/ (- (* x x) 3) 6) (*.f64 #s(literal 1/6 binary64) (*.f64 x x)))
53.8%
#s(approx (/ (- (* x x) 3) 6) #s(literal -1/2 binary64))
Compiler

Compiled 124 to 73 computations (41.1% saved)

regimes15.0ms (0.5%)

Memory
30.0MiB live, 30.0MiB allocated
Counts
12 → 1
Calls
Call 1
Inputs
#s(approx (/ (- (* x x) 3) 6) #s(literal -1/2 binary64))
#s(approx (/ (- (* x x) 3) 6) (*.f64 #s(literal 1/6 binary64) (*.f64 x x)))
#s(approx (/ (- (* x x) 3) 6) (*.f64 (*.f64 #s(literal 1/6 binary64) x) x))
(fma.f64 (*.f64 x #s(literal 1/6 binary64)) x #s(literal -1/2 binary64))
#s(approx (/ (- (* x x) 3) 6) (*.f64 (/.f64 x #s(literal 6 binary64)) x))
(/.f64 #s(approx (- (* x x) 3) (*.f64 x x)) #s(literal 6 binary64))
(fma.f64 (/.f64 x #s(literal 6 binary64)) x #s(literal -1/2 binary64))
(/.f64 (-.f64 (*.f64 x x) #s(literal 3 binary64)) #s(literal 6 binary64))
#s(approx (/ (- (* x x) 3) 6) (/.f64 x (/.f64 #s(literal 6 binary64) x)))
(/.f64 #s(literal 1 binary64) (/.f64 #s(literal 6 binary64) #s(approx (- (* x x) 3) (*.f64 x x))))
(/.f64 #s(literal 1 binary64) (/.f64 #s(literal 6 binary64) (fma.f64 x x #s(literal -3 binary64))))
(/.f64 (fma.f64 (pow.f64 x #s(literal 3 binary64)) (/.f64 x (fma.f64 x x #s(literal 3 binary64))) (neg.f64 (/.f64 #s(literal 9 binary64) (fma.f64 x x #s(literal 3 binary64))))) #s(literal 6 binary64))
Outputs
(/.f64 (-.f64 (*.f64 x x) #s(literal 3 binary64)) #s(literal 6 binary64))
Calls

4 calls:

4.0ms
x
4.0ms
(*.f64 x x)
3.0ms
(/.f64 (-.f64 (*.f64 x x) #s(literal 3 binary64)) #s(literal 6 binary64))
3.0ms
(-.f64 (*.f64 x x) #s(literal 3 binary64))
Results
AccuracySegmentsBranch
99.9%1x
99.9%1(/.f64 (-.f64 (*.f64 x x) #s(literal 3 binary64)) #s(literal 6 binary64))
99.9%1(-.f64 (*.f64 x x) #s(literal 3 binary64))
99.9%1(*.f64 x x)
Compiler

Compiled 16 to 13 computations (18.8% saved)

regimes11.0ms (0.4%)

Memory
-17.8MiB live, 21.4MiB allocated
Counts
7 → 1
Calls
Call 1
Inputs
#s(approx (/ (- (* x x) 3) 6) #s(literal -1/2 binary64))
#s(approx (/ (- (* x x) 3) 6) (*.f64 #s(literal 1/6 binary64) (*.f64 x x)))
#s(approx (/ (- (* x x) 3) 6) (*.f64 (*.f64 #s(literal 1/6 binary64) x) x))
(fma.f64 (*.f64 x #s(literal 1/6 binary64)) x #s(literal -1/2 binary64))
#s(approx (/ (- (* x x) 3) 6) (*.f64 (/.f64 x #s(literal 6 binary64)) x))
(/.f64 #s(approx (- (* x x) 3) (*.f64 x x)) #s(literal 6 binary64))
(fma.f64 (/.f64 x #s(literal 6 binary64)) x #s(literal -1/2 binary64))
Outputs
(fma.f64 (/.f64 x #s(literal 6 binary64)) x #s(literal -1/2 binary64))
Calls

4 calls:

3.0ms
(-.f64 (*.f64 x x) #s(literal 3 binary64))
3.0ms
x
2.0ms
(*.f64 x x)
2.0ms
(/.f64 (-.f64 (*.f64 x x) #s(literal 3 binary64)) #s(literal 6 binary64))
Results
AccuracySegmentsBranch
99.9%1x
99.9%1(/.f64 (-.f64 (*.f64 x x) #s(literal 3 binary64)) #s(literal 6 binary64))
99.9%1(-.f64 (*.f64 x x) #s(literal 3 binary64))
99.9%1(*.f64 x x)
Compiler

Compiled 16 to 13 computations (18.8% saved)

regimes10.0ms (0.3%)

Memory
19.4MiB live, 19.4MiB allocated
Counts
6 → 1
Calls
Call 1
Inputs
#s(approx (/ (- (* x x) 3) 6) #s(literal -1/2 binary64))
#s(approx (/ (- (* x x) 3) 6) (*.f64 #s(literal 1/6 binary64) (*.f64 x x)))
#s(approx (/ (- (* x x) 3) 6) (*.f64 (*.f64 #s(literal 1/6 binary64) x) x))
(fma.f64 (*.f64 x #s(literal 1/6 binary64)) x #s(literal -1/2 binary64))
#s(approx (/ (- (* x x) 3) 6) (*.f64 (/.f64 x #s(literal 6 binary64)) x))
(/.f64 #s(approx (- (* x x) 3) (*.f64 x x)) #s(literal 6 binary64))
Outputs
(fma.f64 (*.f64 x #s(literal 1/6 binary64)) x #s(literal -1/2 binary64))
Calls

4 calls:

2.0ms
x
2.0ms
(*.f64 x x)
2.0ms
(/.f64 (-.f64 (*.f64 x x) #s(literal 3 binary64)) #s(literal 6 binary64))
2.0ms
(-.f64 (*.f64 x x) #s(literal 3 binary64))
Results
AccuracySegmentsBranch
99.9%1x
99.9%1(/.f64 (-.f64 (*.f64 x x) #s(literal 3 binary64)) #s(literal 6 binary64))
99.9%1(-.f64 (*.f64 x x) #s(literal 3 binary64))
99.9%1(*.f64 x x)
Compiler

Compiled 16 to 13 computations (18.8% saved)

regimes8.0ms (0.2%)

Memory
-24.4MiB live, 14.7MiB allocated
Counts
3 → 2
Calls
Call 1
Inputs
#s(approx (/ (- (* x x) 3) 6) #s(literal -1/2 binary64))
#s(approx (/ (- (* x x) 3) 6) (*.f64 #s(literal 1/6 binary64) (*.f64 x x)))
#s(approx (/ (- (* x x) 3) 6) (*.f64 (*.f64 #s(literal 1/6 binary64) x) x))
Outputs
#s(approx (/ (- (* x x) 3) 6) #s(literal -1/2 binary64))
#s(approx (/ (- (* x x) 3) 6) (*.f64 #s(literal 1/6 binary64) (*.f64 x x)))
Calls

4 calls:

2.0ms
(-.f64 (*.f64 x x) #s(literal 3 binary64))
2.0ms
x
2.0ms
(*.f64 x x)
2.0ms
(/.f64 (-.f64 (*.f64 x x) #s(literal 3 binary64)) #s(literal 6 binary64))
Results
AccuracySegmentsBranch
97.7%2x
97.7%2(/.f64 (-.f64 (*.f64 x x) #s(literal 3 binary64)) #s(literal 6 binary64))
97.7%2(-.f64 (*.f64 x x) #s(literal 3 binary64))
97.7%2(*.f64 x x)
Compiler

Compiled 16 to 13 computations (18.8% saved)

regimes5.0ms (0.2%)

Memory
11.6MiB live, 11.6MiB allocated
Accuracy

Total 0.0b remaining (0%)

Threshold costs 0b (0%)

Counts
1 → 1
Calls
Call 1
Inputs
#s(approx (/ (- (* x x) 3) 6) #s(literal -1/2 binary64))
Outputs
#s(approx (/ (- (* x x) 3) 6) #s(literal -1/2 binary64))
Calls

4 calls:

1.0ms
x
1.0ms
(-.f64 (*.f64 x x) #s(literal 3 binary64))
1.0ms
(*.f64 x x)
1.0ms
(/.f64 (-.f64 (*.f64 x x) #s(literal 3 binary64)) #s(literal 6 binary64))
Results
AccuracySegmentsBranch
53.8%1x
53.8%1(/.f64 (-.f64 (*.f64 x x) #s(literal 3 binary64)) #s(literal 6 binary64))
53.8%1(-.f64 (*.f64 x x) #s(literal 3 binary64))
53.8%1(*.f64 x x)
Compiler

Compiled 16 to 13 computations (18.8% saved)

bsearch0.0ms (0%)

Memory
0.7MiB live, 0.7MiB allocated
Algorithm
left-value
Steps
TimeLeftRight
0.0ms
0.11284686238773584
31356.306601387903
Compiler

Compiled 10 to 10 computations (0% saved)

simplify23.0ms (0.7%)

Memory
5.2MiB live, 46.5MiB allocated
Algorithm
egg-herbie
Rules
*-commutative-binary64-*.f64
+-commutative-binary64-+.f64
sub-neg-binary64-neg.f64-+.f64--.f64
neg-sub0-binary64--.f64-neg.f64
neg-mul-1-binary64-*.f64-neg.f64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02156
12556
23056
33256
43356
Stop Event
saturated
Calls
Call 1
Inputs
(/.f64 (-.f64 (*.f64 x x) #s(literal 3 binary64)) #s(literal 6 binary64))
(fma.f64 (/.f64 x #s(literal 6 binary64)) x #s(literal -1/2 binary64))
(fma.f64 (*.f64 x #s(literal 1/6 binary64)) x #s(literal -1/2 binary64))
(if (<=.f64 (*.f64 x x) #s(literal 3602879701896397/18014398509481984 binary64)) #s(approx (/ (- (* x x) 3) 6) #s(literal -1/2 binary64)) #s(approx (/ (- (* x x) 3) 6) (*.f64 #s(literal 1/6 binary64) (*.f64 x x))))
#s(approx (/ (- (* x x) 3) 6) #s(literal -1/2 binary64))
Outputs
(/.f64 (-.f64 (*.f64 x x) #s(literal 3 binary64)) #s(literal 6 binary64))
(fma.f64 (/.f64 x #s(literal 6 binary64)) x #s(literal -1/2 binary64))
(fma.f64 (*.f64 x #s(literal 1/6 binary64)) x #s(literal -1/2 binary64))
(fma.f64 (*.f64 #s(literal 1/6 binary64) x) x #s(literal -1/2 binary64))
(if (<=.f64 (*.f64 x x) #s(literal 3602879701896397/18014398509481984 binary64)) #s(approx (/ (- (* x x) 3) 6) #s(literal -1/2 binary64)) #s(approx (/ (- (* x x) 3) 6) (*.f64 #s(literal 1/6 binary64) (*.f64 x x))))
#s(approx (/ (- (* x x) 3) 6) #s(literal -1/2 binary64))

soundness561.0ms (17.7%)

Memory
3.3MiB live, 311.8MiB allocated
Rules
5 168×lower-/.f32
5 166×lower-/.f64
4 554×lower-fma.f32
4 550×lower-fma.f64
4 388×lower-*.f64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02177
03071
111871
259971
3492471
0846671
0615
0915
14215
223015
3183115
0868513
019162
143162
298162
3236162
4759162
51590162
62334162
73514162
84236162
95345162
106402162
117126162
08039144
Stop Event
done
iter limit
node limit
iter limit
node limit
iter limit
iter limit
node limit
iter limit
Compiler

Compiled 80 to 54 computations (32.5% saved)

preprocess40.0ms (1.3%)

Memory
4.8MiB live, 80.7MiB allocated
Remove

(abs x)

Compiler

Compiled 126 to 84 computations (33.3% saved)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

Profiling

Loading profile data...