ENA, Section 1.4, Mentioned, A

Time bar (total: 8.2s)

start0.0ms (0%)

Memory
0.1MiB live, 0.1MiB allocated

analyze3.0ms (0%)

Memory
4.7MiB live, 4.7MiB allocated
Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%49.6%50.4%0%0%0%0
0%0%49.6%50.4%0%0%0%1
0%0%49.6%50.4%0%0%0%2
50%24.8%24.8%50.4%0%0%0%3
75%37.2%12.4%50.4%0%0%0%4
87.5%43.4%6.2%50.4%0%0%0%5
93.8%46.5%3.1%50.4%0%0%0%6
96.9%48.1%1.6%50.4%0%0%0%7
98.4%48.8%0.8%50.4%0%0%0%8
99.2%49.2%0.4%50.4%0%0%0%9
99.6%49.4%0.2%50.4%0%0%0%10
99.8%49.5%0.1%50.4%0%0%0%11
99.9%49.6%0%50.4%0%0%0%12
Compiler

Compiled 12 to 10 computations (16.7% saved)

sample2.6s (32.1%)

Memory
20.1MiB live, 2 873.9MiB allocated
Samples
2.0s5 767×2valid
289.0ms2 412×1valid
5.0ms77×0valid
Precisions
Click to see histograms. Total time spent on operations: 1.9s
ival-cos: 1.1s (56.9% of total)
adjust: 288.0ms (15.2% of total)
const: 210.0ms (11.1% of total)
ival-sub: 155.0ms (8.2% of total)
ival-<=: 142.0ms (7.5% of total)
ival-and: 12.0ms (0.6% of total)
exact: 4.0ms (0.2% of total)
ival-assert: 3.0ms (0.2% of total)
Bogosity

explain157.0ms (1.9%)

Memory
-24.1MiB live, 191.6MiB allocated
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
1341(6.002392005440498e-162)0-(-.f64 #s(literal 1 binary64) (cos.f64 x))
00-0-#s(literal 1 binary64)
00-0-(cos.f64 x)
00-0-x
Explanations
Click to see full explanations table
OperatorSubexpressionExplanationCount
-.f64(-.f64 #s(literal 1 binary64) (cos.f64 x))cancellation1350
Confusion
Predicted +Predicted -
+1340
-1121
Precision
0.9925925925925926
Recall
1.0
Confusion?
Predicted +Predicted MaybePredicted -
+13400
-10121
Precision?
0.9925925925925926
Recall?
1.0
Freqs
test
numberfreq
0121
1135
Total Confusion?
Predicted +Predicted MaybePredicted -
+100
-000
Precision?
1.0
Recall?
1.0
Samples
91.0ms348×2valid
12.0ms160×1valid
0.0ms0valid
Compiler

Compiled 24 to 16 computations (33.3% saved)

Precisions
Click to see histograms. Total time spent on operations: 86.0ms
ival-cos: 70.0ms (81.1% of total)
adjust: 9.0ms (10.4% of total)
ival-sub: 7.0ms (8.1% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)

preprocess14.0ms (0.2%)

Memory
32.9MiB live, 32.9MiB allocated
Algorithm
egg-herbie
Rules
24×lower-+.f64
24×lower-+.f32
20×sub-neg
18×lower--.f32
16×sub-neg
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
069
1168
2358
3558
4878
51018
61078
044
064
1104
2144
3194
4254
5334
6434
7544
8574
0574
Stop Event
iter limit
saturated
iter limit
saturated
Calls
Call 1
Inputs
(-.f64 #s(literal 1 binary64) (cos.f64 x))
Outputs
(-.f64 #s(literal 1 binary64) (cos.f64 x))
Symmetry

(abs x)

Compiler

Compiled 4 to 4 computations (0% saved)

eval2.0ms (0%)

Memory
-36.7MiB live, 0.6MiB allocated
Compiler

Compiled 0 to 1 computations (-∞% saved)

prune0.0ms (0%)

Memory
1.8MiB live, 1.8MiB allocated
Alt Table
Click to see full alt table
StatusAccuracyProgram
53.1%
(-.f64 #s(literal 1 binary64) (cos.f64 x))
Compiler

Compiled 4 to 4 computations (0% saved)

simplify5.0ms (0.1%)

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

Found 2 expressions of interest:

NewMetricScoreProgram
cost-diff0
(cos.f64 x)
cost-diff0
(-.f64 #s(literal 1 binary64) (cos.f64 x))
Rules
24×lower-+.f64
24×lower-+.f32
18×lower--.f32
16×sub-neg
16×lower--.f64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
048
068
1108
2148
3198
4258
5338
6438
7548
8578
0578
Stop Event
iter limit
saturated
iter limit
Calls
Call 1
Inputs
(-.f64 #s(literal 1 binary64) (cos.f64 x))
#s(literal 1 binary64)
(cos.f64 x)
x
Outputs
(-.f64 #s(literal 1 binary64) (cos.f64 x))
#s(literal 1 binary64)
(cos.f64 x)
x

localize56.0ms (0.7%)

Memory
-13.0MiB live, 106.6MiB allocated
Localize:

Found 2 expressions of interest:

NewMetricScoreProgram
accuracy0
(cos.f64 x)
accuracy30.028985303671902
(-.f64 #s(literal 1 binary64) (cos.f64 x))
Samples
38.0ms174×2valid
11.0ms80×1valid
0.0ms0valid
Compiler

Compiled 10 to 6 computations (40% saved)

Precisions
Click to see histograms. Total time spent on operations: 33.0ms
ival-cos: 25.0ms (74.7% of total)
adjust: 4.0ms (11.9% of total)
ival-sub: 4.0ms (11.9% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)

series1.0ms (0%)

Memory
2.5MiB live, 2.5MiB allocated
Counts
2 → 24
Calls
Call 1
Inputs
#s(alt (-.f64 #s(literal 1 binary64) (cos.f64 x)) (patch (-.f64 #s(literal 1 binary64) (cos.f64 x)) #<representation binary64>) () ())
#s(alt (cos.f64 x) (patch (cos.f64 x) #<representation binary64>) () ())
Outputs
#s(alt (* 1/2 (pow x 2)) (taylor 0 x) (#s(alt (-.f64 #s(literal 1 binary64) (cos.f64 x)) (patch (-.f64 #s(literal 1 binary64) (cos.f64 x)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1/2 (* -1/24 (pow x 2)))) (taylor 0 x) (#s(alt (-.f64 #s(literal 1 binary64) (cos.f64 x)) (patch (-.f64 #s(literal 1 binary64) (cos.f64 x)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1/2 (* (pow x 2) (- (* 1/720 (pow x 2)) 1/24)))) (taylor 0 x) (#s(alt (-.f64 #s(literal 1 binary64) (cos.f64 x)) (patch (-.f64 #s(literal 1 binary64) (cos.f64 x)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1/2 (* (pow x 2) (- (* (pow x 2) (+ 1/720 (* -1/40320 (pow x 2)))) 1/24)))) (taylor 0 x) (#s(alt (-.f64 #s(literal 1 binary64) (cos.f64 x)) (patch (-.f64 #s(literal 1 binary64) (cos.f64 x)) #<representation binary64>) () ())) ())
#s(alt 1 (taylor 0 x) (#s(alt (cos.f64 x) (patch (cos.f64 x) #<representation binary64>) () ())) ())
#s(alt (+ 1 (* -1/2 (pow x 2))) (taylor 0 x) (#s(alt (cos.f64 x) (patch (cos.f64 x) #<representation binary64>) () ())) ())
#s(alt (+ 1 (* (pow x 2) (- (* 1/24 (pow x 2)) 1/2))) (taylor 0 x) (#s(alt (cos.f64 x) (patch (cos.f64 x) #<representation binary64>) () ())) ())
#s(alt (+ 1 (* (pow x 2) (- (* (pow x 2) (+ 1/24 (* -1/720 (pow x 2)))) 1/2))) (taylor 0 x) (#s(alt (cos.f64 x) (patch (cos.f64 x) #<representation binary64>) () ())) ())
#s(alt (- 1 (cos x)) (taylor inf x) (#s(alt (-.f64 #s(literal 1 binary64) (cos.f64 x)) (patch (-.f64 #s(literal 1 binary64) (cos.f64 x)) #<representation binary64>) () ())) ())
#s(alt (- 1 (cos x)) (taylor inf x) (#s(alt (-.f64 #s(literal 1 binary64) (cos.f64 x)) (patch (-.f64 #s(literal 1 binary64) (cos.f64 x)) #<representation binary64>) () ())) ())
#s(alt (- 1 (cos x)) (taylor inf x) (#s(alt (-.f64 #s(literal 1 binary64) (cos.f64 x)) (patch (-.f64 #s(literal 1 binary64) (cos.f64 x)) #<representation binary64>) () ())) ())
#s(alt (- 1 (cos x)) (taylor inf x) (#s(alt (-.f64 #s(literal 1 binary64) (cos.f64 x)) (patch (-.f64 #s(literal 1 binary64) (cos.f64 x)) #<representation binary64>) () ())) ())
#s(alt (cos x) (taylor inf x) (#s(alt (cos.f64 x) (patch (cos.f64 x) #<representation binary64>) () ())) ())
#s(alt (cos x) (taylor inf x) (#s(alt (cos.f64 x) (patch (cos.f64 x) #<representation binary64>) () ())) ())
#s(alt (cos x) (taylor inf x) (#s(alt (cos.f64 x) (patch (cos.f64 x) #<representation binary64>) () ())) ())
#s(alt (cos x) (taylor inf x) (#s(alt (cos.f64 x) (patch (cos.f64 x) #<representation binary64>) () ())) ())
#s(alt (- 1 (cos x)) (taylor -inf x) (#s(alt (-.f64 #s(literal 1 binary64) (cos.f64 x)) (patch (-.f64 #s(literal 1 binary64) (cos.f64 x)) #<representation binary64>) () ())) ())
#s(alt (- 1 (cos x)) (taylor -inf x) (#s(alt (-.f64 #s(literal 1 binary64) (cos.f64 x)) (patch (-.f64 #s(literal 1 binary64) (cos.f64 x)) #<representation binary64>) () ())) ())
#s(alt (- 1 (cos x)) (taylor -inf x) (#s(alt (-.f64 #s(literal 1 binary64) (cos.f64 x)) (patch (-.f64 #s(literal 1 binary64) (cos.f64 x)) #<representation binary64>) () ())) ())
#s(alt (- 1 (cos x)) (taylor -inf x) (#s(alt (-.f64 #s(literal 1 binary64) (cos.f64 x)) (patch (-.f64 #s(literal 1 binary64) (cos.f64 x)) #<representation binary64>) () ())) ())
#s(alt (cos x) (taylor -inf x) (#s(alt (cos.f64 x) (patch (cos.f64 x) #<representation binary64>) () ())) ())
#s(alt (cos x) (taylor -inf x) (#s(alt (cos.f64 x) (patch (cos.f64 x) #<representation binary64>) () ())) ())
#s(alt (cos x) (taylor -inf x) (#s(alt (cos.f64 x) (patch (cos.f64 x) #<representation binary64>) () ())) ())
#s(alt (cos x) (taylor -inf x) (#s(alt (cos.f64 x) (patch (cos.f64 x) #<representation binary64>) () ())) ())
Calls

3 calls:

TimeVariablePointExpression
0.0ms
x
@0
((- 1 (cos x)) (cos x))
0.0ms
x
@inf
((- 1 (cos x)) (cos x))
0.0ms
x
@-inf
((- 1 (cos x)) (cos x))

simplify552.0ms (6.7%)

Memory
48.2MiB live, 348.1MiB allocated
Algorithm
egg-herbie
Rules
32 720×lower-fma.f64
32 720×lower-fma.f32
3 926×lower-*.f64
3 926×lower-*.f32
3 120×lower-+.f64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
041144
1101144
2246144
3588144
41237144
51916144
62187144
72836144
84071144
95644144
106543144
116823144
126862144
136862144
147274144
157556144
167597144
177599144
187599144
197599144
207599144
217609144
227609144
237609144
08514132
Stop Event
iter limit
node limit
Counts
24 → 24
Calls
Call 1
Inputs
(* 1/2 (pow x 2))
(* (pow x 2) (+ 1/2 (* -1/24 (pow x 2))))
(* (pow x 2) (+ 1/2 (* (pow x 2) (- (* 1/720 (pow x 2)) 1/24))))
(* (pow x 2) (+ 1/2 (* (pow x 2) (- (* (pow x 2) (+ 1/720 (* -1/40320 (pow x 2)))) 1/24))))
1
(+ 1 (* -1/2 (pow x 2)))
(+ 1 (* (pow x 2) (- (* 1/24 (pow x 2)) 1/2)))
(+ 1 (* (pow x 2) (- (* (pow x 2) (+ 1/24 (* -1/720 (pow x 2)))) 1/2)))
(- 1 (cos x))
(- 1 (cos x))
(- 1 (cos x))
(- 1 (cos x))
(cos x)
(cos x)
(cos x)
(cos x)
(- 1 (cos x))
(- 1 (cos x))
(- 1 (cos x))
(- 1 (cos x))
(cos x)
(cos x)
(cos x)
(cos x)
Outputs
(* 1/2 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/2 binary64))
(* (pow x 2) (+ 1/2 (* -1/24 (pow x 2))))
(*.f64 (*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x) x)
(* (pow x 2) (+ 1/2 (* (pow x 2) (- (* 1/720 (pow x 2)) 1/24))))
(*.f64 (*.f64 (fma.f64 (fma.f64 #s(literal 1/720 binary64) (*.f64 x x) #s(literal -1/24 binary64)) (*.f64 x x) #s(literal 1/2 binary64)) x) x)
(* (pow x 2) (+ 1/2 (* (pow x 2) (- (* (pow x 2) (+ 1/720 (* -1/40320 (pow x 2)))) 1/24))))
(*.f64 (*.f64 (fma.f64 (fma.f64 (fma.f64 #s(literal -1/40320 binary64) (*.f64 x x) #s(literal 1/720 binary64)) (*.f64 x x) #s(literal -1/24 binary64)) (*.f64 x x) #s(literal 1/2 binary64)) x) x)
1
#s(literal 1 binary64)
(+ 1 (* -1/2 (pow x 2)))
(fma.f64 #s(literal -1/2 binary64) (*.f64 x x) #s(literal 1 binary64))
(+ 1 (* (pow x 2) (- (* 1/24 (pow x 2)) 1/2)))
(fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))
(+ 1 (* (pow x 2) (- (* (pow x 2) (+ 1/24 (* -1/720 (pow x 2)))) 1/2)))
(fma.f64 (pow.f64 x #s(literal 6 binary64)) #s(literal -1/720 binary64) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64)))
(- 1 (cos x))
(-.f64 #s(literal 1 binary64) (cos.f64 x))
(- 1 (cos x))
(-.f64 #s(literal 1 binary64) (cos.f64 x))
(- 1 (cos x))
(-.f64 #s(literal 1 binary64) (cos.f64 x))
(- 1 (cos x))
(-.f64 #s(literal 1 binary64) (cos.f64 x))
(cos x)
(cos.f64 x)
(cos x)
(cos.f64 x)
(cos x)
(cos.f64 x)
(cos x)
(cos.f64 x)
(- 1 (cos x))
(-.f64 #s(literal 1 binary64) (cos.f64 x))
(- 1 (cos x))
(-.f64 #s(literal 1 binary64) (cos.f64 x))
(- 1 (cos x))
(-.f64 #s(literal 1 binary64) (cos.f64 x))
(- 1 (cos x))
(-.f64 #s(literal 1 binary64) (cos.f64 x))
(cos x)
(cos.f64 x)
(cos x)
(cos.f64 x)
(cos x)
(cos.f64 x)
(cos x)
(cos.f64 x)

rewrite244.0ms (3%)

Memory
-7.3MiB live, 274.4MiB allocated
Rules
4 830×lower-*.f64
4 830×lower-*.f32
4 620×lower-/.f64
4 620×lower-/.f32
3 866×lower-fma.f64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
046
066
1236
21426
311536
092406
Stop Event
iter limit
node limit
iter limit
Counts
2 → 314
Calls
Call 1
Inputs
(-.f64 #s(literal 1 binary64) (cos.f64 x))
(cos.f64 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>

eval97.0ms (1.2%)

Memory
17.1MiB live, 87.1MiB allocated
Compiler

Compiled 9 533 to 916 computations (90.4% saved)

prune12.0ms (0.2%)

Memory
-21.8MiB live, 25.8MiB allocated
Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New3353338
Fresh000
Picked101
Done000
Total3363339
Accuracy
100.0%
Counts
339 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
52.2%
(-.f64 #s(literal 1 binary64) #s(approx (cos x) #s(literal 1 binary64)))
100.0%
#s(approx (- 1 (cos x)) (*.f64 (*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x) x))
99.6%
#s(approx (- 1 (cos x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64)))
Compiler

Compiled 21 to 17 computations (19% saved)

simplify8.0ms (0.1%)

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

Found 9 expressions of interest:

NewMetricScoreProgram
cost-diff0
#s(approx (cos x) #s(literal 1 binary64))
cost-diff0
(-.f64 #s(literal 1 binary64) #s(approx (cos x) #s(literal 1 binary64)))
cost-diff0
(fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64))
cost-diff0
(*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x)
cost-diff0
(*.f64 (*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x) x)
cost-diff0
#s(approx (- 1 (cos x)) (*.f64 (*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x) x))
cost-diff0
(*.f64 x x)
cost-diff0
(*.f64 (*.f64 x x) #s(literal 1/2 binary64))
cost-diff0
#s(approx (- 1 (cos x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64)))
Rules
92×lower-*.f32
84×lower-*.f64
72×lower-fma.f32
70×lower-fma.f64
60×lower-+.f64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01576
02276
13876
26076
39376
411676
513376
614976
716676
817076
017076
Stop Event
iter limit
saturated
iter limit
Calls
Call 1
Inputs
#s(approx (- 1 (cos x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64)))
(*.f64 (*.f64 x x) #s(literal 1/2 binary64))
(*.f64 x x)
x
#s(literal 1/2 binary64)
#s(approx (- 1 (cos x)) (*.f64 (*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x) x))
(*.f64 (*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x) x)
(*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x)
(fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64))
#s(literal -1/24 binary64)
(*.f64 x x)
x
#s(literal 1/2 binary64)
(-.f64 #s(literal 1 binary64) #s(approx (cos x) #s(literal 1 binary64)))
#s(literal 1 binary64)
#s(approx (cos x) #s(literal 1 binary64))
Outputs
#s(approx (- 1 (cos x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64)))
#s(approx (- 1 (cos x)) (*.f64 #s(literal 1/2 binary64) (*.f64 x x)))
(*.f64 (*.f64 x x) #s(literal 1/2 binary64))
(*.f64 #s(literal 1/2 binary64) (*.f64 x x))
(*.f64 x x)
x
#s(literal 1/2 binary64)
#s(approx (- 1 (cos x)) (*.f64 (*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x) x))
(*.f64 (*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x) x)
(*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x)
(fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64))
#s(literal -1/24 binary64)
(*.f64 x x)
x
#s(literal 1/2 binary64)
(-.f64 #s(literal 1 binary64) #s(approx (cos x) #s(literal 1 binary64)))
#s(literal 1 binary64)
#s(approx (cos x) #s(literal 1 binary64))

localize126.0ms (1.5%)

Memory
-16.7MiB live, 205.9MiB allocated
Localize:

Found 9 expressions of interest:

NewMetricScoreProgram
accuracy0.3116564758023605
#s(approx (cos x) #s(literal 1 binary64))
accuracy30.028985303671902
(-.f64 #s(literal 1 binary64) #s(approx (cos x) #s(literal 1 binary64)))
accuracy0
(*.f64 x x)
accuracy0
#s(approx (- 1 (cos x)) (*.f64 (*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x) x))
accuracy0.0078125
(*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x)
accuracy0.01171875
(*.f64 (*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x) x)
accuracy0
(*.f64 x x)
accuracy0.00390625
(*.f64 (*.f64 x x) #s(literal 1/2 binary64))
accuracy0.2626188859692903
#s(approx (- 1 (cos x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64)))
Samples
60.0ms174×2valid
25.0ms80×1valid
10.0ms0valid
Compiler

Compiled 60 to 14 computations (76.7% saved)

Precisions
Click to see histograms. Total time spent on operations: 63.0ms
ival-cos: 26.0ms (41.2% of total)
ival-add: 13.0ms (20.6% of total)
adjust: 10.0ms (15.9% of total)
ival-mult: 7.0ms (11.1% of total)
ival-sub: 4.0ms (6.3% of total)
const: 3.0ms (4.8% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)

series7.0ms (0.1%)

Memory
24.8MiB live, 24.8MiB allocated
Counts
9 → 108
Calls
Call 1
Inputs
#s(alt #s(approx (- 1 (cos x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64))) (patch #s(approx (- 1 (cos x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64))) #<representation binary64>) () ())
#s(alt (*.f64 (*.f64 x x) #s(literal 1/2 binary64)) (patch (*.f64 (*.f64 x x) #s(literal 1/2 binary64)) #<representation binary64>) () ())
#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())
#s(alt #s(approx (- 1 (cos x)) (*.f64 (*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x) x)) (patch #s(approx (- 1 (cos x)) (*.f64 (*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x) x)) #<representation binary64>) () ())
#s(alt (*.f64 (*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x) x) (patch (*.f64 (*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x) x) #<representation binary64>) () ())
#s(alt (*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x) (patch (*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x) #<representation binary64>) () ())
#s(alt (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) (patch (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) #<representation binary64>) () ())
#s(alt (-.f64 #s(literal 1 binary64) #s(approx (cos x) #s(literal 1 binary64))) (patch (-.f64 #s(literal 1 binary64) #s(approx (cos x) #s(literal 1 binary64))) #<representation binary64>) () ())
#s(alt #s(approx (cos x) #s(literal 1 binary64)) (patch #s(approx (cos x) #s(literal 1 binary64)) #<representation binary64>) () ())
Outputs
#s(alt (* 1/2 (pow x 2)) (taylor 0 x) (#s(alt #s(approx (- 1 (cos x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64))) (patch #s(approx (- 1 (cos x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1/2 (* -1/24 (pow x 2)))) (taylor 0 x) (#s(alt #s(approx (- 1 (cos x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64))) (patch #s(approx (- 1 (cos x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1/2 (* (pow x 2) (- (* 1/720 (pow x 2)) 1/24)))) (taylor 0 x) (#s(alt #s(approx (- 1 (cos x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64))) (patch #s(approx (- 1 (cos x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1/2 (* (pow x 2) (- (* (pow x 2) (+ 1/720 (* -1/40320 (pow x 2)))) 1/24)))) (taylor 0 x) (#s(alt #s(approx (- 1 (cos x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64))) (patch #s(approx (- 1 (cos x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (pow x 2)) (taylor 0 x) (#s(alt (*.f64 (*.f64 x x) #s(literal 1/2 binary64)) (patch (*.f64 (*.f64 x x) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (pow x 2)) (taylor 0 x) (#s(alt (*.f64 (*.f64 x x) #s(literal 1/2 binary64)) (patch (*.f64 (*.f64 x x) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (pow x 2)) (taylor 0 x) (#s(alt (*.f64 (*.f64 x x) #s(literal 1/2 binary64)) (patch (*.f64 (*.f64 x x) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (pow x 2)) (taylor 0 x) (#s(alt (*.f64 (*.f64 x x) #s(literal 1/2 binary64)) (patch (*.f64 (*.f64 x x) #s(literal 1/2 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 (* 1/2 (pow x 2)) (taylor 0 x) (#s(alt #s(approx (- 1 (cos x)) (*.f64 (*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x) x)) (patch #s(approx (- 1 (cos x)) (*.f64 (*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x) x)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1/2 (* -1/24 (pow x 2)))) (taylor 0 x) (#s(alt #s(approx (- 1 (cos x)) (*.f64 (*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x) x)) (patch #s(approx (- 1 (cos x)) (*.f64 (*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x) x)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1/2 (* (pow x 2) (- (* 1/720 (pow x 2)) 1/24)))) (taylor 0 x) (#s(alt #s(approx (- 1 (cos x)) (*.f64 (*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x) x)) (patch #s(approx (- 1 (cos x)) (*.f64 (*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x) x)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1/2 (* (pow x 2) (- (* (pow x 2) (+ 1/720 (* -1/40320 (pow x 2)))) 1/24)))) (taylor 0 x) (#s(alt #s(approx (- 1 (cos x)) (*.f64 (*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x) x)) (patch #s(approx (- 1 (cos x)) (*.f64 (*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x) x)) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (pow x 2)) (taylor 0 x) (#s(alt (*.f64 (*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x) x) (patch (*.f64 (*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x) x) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1/2 (* -1/24 (pow x 2)))) (taylor 0 x) (#s(alt (*.f64 (*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x) x) (patch (*.f64 (*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x) x) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1/2 (* -1/24 (pow x 2)))) (taylor 0 x) (#s(alt (*.f64 (*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x) x) (patch (*.f64 (*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x) x) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1/2 (* -1/24 (pow x 2)))) (taylor 0 x) (#s(alt (*.f64 (*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x) x) (patch (*.f64 (*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x) x) #<representation binary64>) () ())) ())
#s(alt (* 1/2 x) (taylor 0 x) (#s(alt (*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x) (patch (*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x) #<representation binary64>) () ())) ())
#s(alt (* x (+ 1/2 (* -1/24 (pow x 2)))) (taylor 0 x) (#s(alt (*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x) (patch (*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x) #<representation binary64>) () ())) ())
#s(alt (* x (+ 1/2 (* -1/24 (pow x 2)))) (taylor 0 x) (#s(alt (*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x) (patch (*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x) #<representation binary64>) () ())) ())
#s(alt (* x (+ 1/2 (* -1/24 (pow x 2)))) (taylor 0 x) (#s(alt (*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x) (patch (*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x) #<representation binary64>) () ())) ())
#s(alt 1/2 (taylor 0 x) (#s(alt (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) (patch (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (+ 1/2 (* -1/24 (pow x 2))) (taylor 0 x) (#s(alt (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) (patch (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (+ 1/2 (* -1/24 (pow x 2))) (taylor 0 x) (#s(alt (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) (patch (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (+ 1/2 (* -1/24 (pow x 2))) (taylor 0 x) (#s(alt (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) (patch (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (pow x 2)) (taylor 0 x) (#s(alt (-.f64 #s(literal 1 binary64) #s(approx (cos x) #s(literal 1 binary64))) (patch (-.f64 #s(literal 1 binary64) #s(approx (cos x) #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1/2 (* -1/24 (pow x 2)))) (taylor 0 x) (#s(alt (-.f64 #s(literal 1 binary64) #s(approx (cos x) #s(literal 1 binary64))) (patch (-.f64 #s(literal 1 binary64) #s(approx (cos x) #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1/2 (* (pow x 2) (- (* 1/720 (pow x 2)) 1/24)))) (taylor 0 x) (#s(alt (-.f64 #s(literal 1 binary64) #s(approx (cos x) #s(literal 1 binary64))) (patch (-.f64 #s(literal 1 binary64) #s(approx (cos x) #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1/2 (* (pow x 2) (- (* (pow x 2) (+ 1/720 (* -1/40320 (pow x 2)))) 1/24)))) (taylor 0 x) (#s(alt (-.f64 #s(literal 1 binary64) #s(approx (cos x) #s(literal 1 binary64))) (patch (-.f64 #s(literal 1 binary64) #s(approx (cos x) #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt 1 (taylor 0 x) (#s(alt #s(approx (cos x) #s(literal 1 binary64)) (patch #s(approx (cos x) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (+ 1 (* -1/2 (pow x 2))) (taylor 0 x) (#s(alt #s(approx (cos x) #s(literal 1 binary64)) (patch #s(approx (cos x) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (+ 1 (* (pow x 2) (- (* 1/24 (pow x 2)) 1/2))) (taylor 0 x) (#s(alt #s(approx (cos x) #s(literal 1 binary64)) (patch #s(approx (cos x) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (+ 1 (* (pow x 2) (- (* (pow x 2) (+ 1/24 (* -1/720 (pow x 2)))) 1/2))) (taylor 0 x) (#s(alt #s(approx (cos x) #s(literal 1 binary64)) (patch #s(approx (cos x) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (- 1 (cos x)) (taylor inf x) (#s(alt #s(approx (- 1 (cos x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64))) (patch #s(approx (- 1 (cos x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt (- 1 (cos x)) (taylor inf x) (#s(alt #s(approx (- 1 (cos x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64))) (patch #s(approx (- 1 (cos x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt (- 1 (cos x)) (taylor inf x) (#s(alt #s(approx (- 1 (cos x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64))) (patch #s(approx (- 1 (cos x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt (- 1 (cos x)) (taylor inf x) (#s(alt #s(approx (- 1 (cos x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64))) (patch #s(approx (- 1 (cos x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (pow x 2)) (taylor inf x) (#s(alt (*.f64 (*.f64 x x) #s(literal 1/2 binary64)) (patch (*.f64 (*.f64 x x) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (pow x 2)) (taylor inf x) (#s(alt (*.f64 (*.f64 x x) #s(literal 1/2 binary64)) (patch (*.f64 (*.f64 x x) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (pow x 2)) (taylor inf x) (#s(alt (*.f64 (*.f64 x x) #s(literal 1/2 binary64)) (patch (*.f64 (*.f64 x x) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (pow x 2)) (taylor inf x) (#s(alt (*.f64 (*.f64 x x) #s(literal 1/2 binary64)) (patch (*.f64 (*.f64 x x) #s(literal 1/2 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 (- 1 (cos x)) (taylor inf x) (#s(alt #s(approx (- 1 (cos x)) (*.f64 (*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x) x)) (patch #s(approx (- 1 (cos x)) (*.f64 (*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x) x)) #<representation binary64>) () ())) ())
#s(alt (- 1 (cos x)) (taylor inf x) (#s(alt #s(approx (- 1 (cos x)) (*.f64 (*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x) x)) (patch #s(approx (- 1 (cos x)) (*.f64 (*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x) x)) #<representation binary64>) () ())) ())
#s(alt (- 1 (cos x)) (taylor inf x) (#s(alt #s(approx (- 1 (cos x)) (*.f64 (*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x) x)) (patch #s(approx (- 1 (cos x)) (*.f64 (*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x) x)) #<representation binary64>) () ())) ())
#s(alt (- 1 (cos x)) (taylor inf x) (#s(alt #s(approx (- 1 (cos x)) (*.f64 (*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x) x)) (patch #s(approx (- 1 (cos x)) (*.f64 (*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x) x)) #<representation binary64>) () ())) ())
#s(alt (* -1/24 (pow x 4)) (taylor inf x) (#s(alt (*.f64 (*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x) x) (patch (*.f64 (*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x) x) #<representation binary64>) () ())) ())
#s(alt (* (pow x 4) (- (* 1/2 (/ 1 (pow x 2))) 1/24)) (taylor inf x) (#s(alt (*.f64 (*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x) x) (patch (*.f64 (*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x) x) #<representation binary64>) () ())) ())
#s(alt (* (pow x 4) (- (* 1/2 (/ 1 (pow x 2))) 1/24)) (taylor inf x) (#s(alt (*.f64 (*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x) x) (patch (*.f64 (*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x) x) #<representation binary64>) () ())) ())
#s(alt (* (pow x 4) (- (* 1/2 (/ 1 (pow x 2))) 1/24)) (taylor inf x) (#s(alt (*.f64 (*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x) x) (patch (*.f64 (*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x) x) #<representation binary64>) () ())) ())
#s(alt (* -1/24 (pow x 3)) (taylor inf x) (#s(alt (*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x) (patch (*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x) #<representation binary64>) () ())) ())
#s(alt (* (pow x 3) (- (* 1/2 (/ 1 (pow x 2))) 1/24)) (taylor inf x) (#s(alt (*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x) (patch (*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x) #<representation binary64>) () ())) ())
#s(alt (* (pow x 3) (- (* 1/2 (/ 1 (pow x 2))) 1/24)) (taylor inf x) (#s(alt (*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x) (patch (*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x) #<representation binary64>) () ())) ())
#s(alt (* (pow x 3) (- (* 1/2 (/ 1 (pow x 2))) 1/24)) (taylor inf x) (#s(alt (*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x) (patch (*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x) #<representation binary64>) () ())) ())
#s(alt (* -1/24 (pow x 2)) (taylor inf x) (#s(alt (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) (patch (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- (* 1/2 (/ 1 (pow x 2))) 1/24)) (taylor inf x) (#s(alt (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) (patch (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- (* 1/2 (/ 1 (pow x 2))) 1/24)) (taylor inf x) (#s(alt (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) (patch (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- (* 1/2 (/ 1 (pow x 2))) 1/24)) (taylor inf x) (#s(alt (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) (patch (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (- 1 (cos x)) (taylor inf x) (#s(alt (-.f64 #s(literal 1 binary64) #s(approx (cos x) #s(literal 1 binary64))) (patch (-.f64 #s(literal 1 binary64) #s(approx (cos x) #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (- 1 (cos x)) (taylor inf x) (#s(alt (-.f64 #s(literal 1 binary64) #s(approx (cos x) #s(literal 1 binary64))) (patch (-.f64 #s(literal 1 binary64) #s(approx (cos x) #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (- 1 (cos x)) (taylor inf x) (#s(alt (-.f64 #s(literal 1 binary64) #s(approx (cos x) #s(literal 1 binary64))) (patch (-.f64 #s(literal 1 binary64) #s(approx (cos x) #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (- 1 (cos x)) (taylor inf x) (#s(alt (-.f64 #s(literal 1 binary64) #s(approx (cos x) #s(literal 1 binary64))) (patch (-.f64 #s(literal 1 binary64) #s(approx (cos x) #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (cos x) (taylor inf x) (#s(alt #s(approx (cos x) #s(literal 1 binary64)) (patch #s(approx (cos x) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (cos x) (taylor inf x) (#s(alt #s(approx (cos x) #s(literal 1 binary64)) (patch #s(approx (cos x) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (cos x) (taylor inf x) (#s(alt #s(approx (cos x) #s(literal 1 binary64)) (patch #s(approx (cos x) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (cos x) (taylor inf x) (#s(alt #s(approx (cos x) #s(literal 1 binary64)) (patch #s(approx (cos x) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (- 1 (cos x)) (taylor -inf x) (#s(alt #s(approx (- 1 (cos x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64))) (patch #s(approx (- 1 (cos x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt (- 1 (cos x)) (taylor -inf x) (#s(alt #s(approx (- 1 (cos x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64))) (patch #s(approx (- 1 (cos x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt (- 1 (cos x)) (taylor -inf x) (#s(alt #s(approx (- 1 (cos x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64))) (patch #s(approx (- 1 (cos x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt (- 1 (cos x)) (taylor -inf x) (#s(alt #s(approx (- 1 (cos x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64))) (patch #s(approx (- 1 (cos x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (pow x 2)) (taylor -inf x) (#s(alt (*.f64 (*.f64 x x) #s(literal 1/2 binary64)) (patch (*.f64 (*.f64 x x) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (pow x 2)) (taylor -inf x) (#s(alt (*.f64 (*.f64 x x) #s(literal 1/2 binary64)) (patch (*.f64 (*.f64 x x) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (pow x 2)) (taylor -inf x) (#s(alt (*.f64 (*.f64 x x) #s(literal 1/2 binary64)) (patch (*.f64 (*.f64 x x) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (pow x 2)) (taylor -inf x) (#s(alt (*.f64 (*.f64 x x) #s(literal 1/2 binary64)) (patch (*.f64 (*.f64 x x) #s(literal 1/2 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 (- 1 (cos x)) (taylor -inf x) (#s(alt #s(approx (- 1 (cos x)) (*.f64 (*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x) x)) (patch #s(approx (- 1 (cos x)) (*.f64 (*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x) x)) #<representation binary64>) () ())) ())
#s(alt (- 1 (cos x)) (taylor -inf x) (#s(alt #s(approx (- 1 (cos x)) (*.f64 (*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x) x)) (patch #s(approx (- 1 (cos x)) (*.f64 (*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x) x)) #<representation binary64>) () ())) ())
#s(alt (- 1 (cos x)) (taylor -inf x) (#s(alt #s(approx (- 1 (cos x)) (*.f64 (*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x) x)) (patch #s(approx (- 1 (cos x)) (*.f64 (*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x) x)) #<representation binary64>) () ())) ())
#s(alt (- 1 (cos x)) (taylor -inf x) (#s(alt #s(approx (- 1 (cos x)) (*.f64 (*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x) x)) (patch #s(approx (- 1 (cos x)) (*.f64 (*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x) x)) #<representation binary64>) () ())) ())
#s(alt (* -1/24 (pow x 4)) (taylor -inf x) (#s(alt (*.f64 (*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x) x) (patch (*.f64 (*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x) x) #<representation binary64>) () ())) ())
#s(alt (* (pow x 4) (- (* 1/2 (/ 1 (pow x 2))) 1/24)) (taylor -inf x) (#s(alt (*.f64 (*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x) x) (patch (*.f64 (*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x) x) #<representation binary64>) () ())) ())
#s(alt (* (pow x 4) (- (* 1/2 (/ 1 (pow x 2))) 1/24)) (taylor -inf x) (#s(alt (*.f64 (*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x) x) (patch (*.f64 (*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x) x) #<representation binary64>) () ())) ())
#s(alt (* (pow x 4) (- (* 1/2 (/ 1 (pow x 2))) 1/24)) (taylor -inf x) (#s(alt (*.f64 (*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x) x) (patch (*.f64 (*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x) x) #<representation binary64>) () ())) ())
#s(alt (* -1/24 (pow x 3)) (taylor -inf x) (#s(alt (*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x) (patch (*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x) #<representation binary64>) () ())) ())
#s(alt (* -1 (* (pow x 3) (- 1/24 (* 1/2 (/ 1 (pow x 2)))))) (taylor -inf x) (#s(alt (*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x) (patch (*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x) #<representation binary64>) () ())) ())
#s(alt (* -1 (* (pow x 3) (- 1/24 (* 1/2 (/ 1 (pow x 2)))))) (taylor -inf x) (#s(alt (*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x) (patch (*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x) #<representation binary64>) () ())) ())
#s(alt (* -1 (* (pow x 3) (- 1/24 (* 1/2 (/ 1 (pow x 2)))))) (taylor -inf x) (#s(alt (*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x) (patch (*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x) #<representation binary64>) () ())) ())
#s(alt (* -1/24 (pow x 2)) (taylor -inf x) (#s(alt (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) (patch (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- (* 1/2 (/ 1 (pow x 2))) 1/24)) (taylor -inf x) (#s(alt (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) (patch (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- (* 1/2 (/ 1 (pow x 2))) 1/24)) (taylor -inf x) (#s(alt (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) (patch (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- (* 1/2 (/ 1 (pow x 2))) 1/24)) (taylor -inf x) (#s(alt (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) (patch (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (- 1 (cos x)) (taylor -inf x) (#s(alt (-.f64 #s(literal 1 binary64) #s(approx (cos x) #s(literal 1 binary64))) (patch (-.f64 #s(literal 1 binary64) #s(approx (cos x) #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (- 1 (cos x)) (taylor -inf x) (#s(alt (-.f64 #s(literal 1 binary64) #s(approx (cos x) #s(literal 1 binary64))) (patch (-.f64 #s(literal 1 binary64) #s(approx (cos x) #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (- 1 (cos x)) (taylor -inf x) (#s(alt (-.f64 #s(literal 1 binary64) #s(approx (cos x) #s(literal 1 binary64))) (patch (-.f64 #s(literal 1 binary64) #s(approx (cos x) #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (- 1 (cos x)) (taylor -inf x) (#s(alt (-.f64 #s(literal 1 binary64) #s(approx (cos x) #s(literal 1 binary64))) (patch (-.f64 #s(literal 1 binary64) #s(approx (cos x) #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (cos x) (taylor -inf x) (#s(alt #s(approx (cos x) #s(literal 1 binary64)) (patch #s(approx (cos x) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (cos x) (taylor -inf x) (#s(alt #s(approx (cos x) #s(literal 1 binary64)) (patch #s(approx (cos x) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (cos x) (taylor -inf x) (#s(alt #s(approx (cos x) #s(literal 1 binary64)) (patch #s(approx (cos x) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (cos x) (taylor -inf x) (#s(alt #s(approx (cos x) #s(literal 1 binary64)) (patch #s(approx (cos x) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
Calls

3 calls:

TimeVariablePointExpression
2.0ms
x
@inf
((- 1 (cos x)) (* (* x x) 1/2) (* x x) (- 1 (cos x)) (* (* (+ (* -1/24 (* x x)) 1/2) x) x) (* (+ (* -1/24 (* x x)) 1/2) x) (+ (* -1/24 (* x x)) 1/2) (- 1 (cos x)) (cos x))
1.0ms
x
@-inf
((- 1 (cos x)) (* (* x x) 1/2) (* x x) (- 1 (cos x)) (* (* (+ (* -1/24 (* x x)) 1/2) x) x) (* (+ (* -1/24 (* x x)) 1/2) x) (+ (* -1/24 (* x x)) 1/2) (- 1 (cos x)) (cos x))
1.0ms
x
@0
((- 1 (cos x)) (* (* x x) 1/2) (* x x) (- 1 (cos x)) (* (* (+ (* -1/24 (* x x)) 1/2) x) x) (* (+ (* -1/24 (* x x)) 1/2) x) (+ (* -1/24 (* x x)) 1/2) (- 1 (cos x)) (cos x))

simplify231.0ms (2.8%)

Memory
-24.2MiB live, 240.0MiB allocated
Algorithm
egg-herbie
Rules
9 614×lower-fma.f64
9 614×lower-fma.f32
3 170×lower-*.f64
3 170×lower-*.f32
1 448×times-frac
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
059698
1146698
2367698
3990698
42488698
55880698
08285647
Stop Event
iter limit
node limit
Counts
108 → 108
Calls
Call 1
Inputs
(* 1/2 (pow x 2))
(* (pow x 2) (+ 1/2 (* -1/24 (pow x 2))))
(* (pow x 2) (+ 1/2 (* (pow x 2) (- (* 1/720 (pow x 2)) 1/24))))
(* (pow x 2) (+ 1/2 (* (pow x 2) (- (* (pow x 2) (+ 1/720 (* -1/40320 (pow x 2)))) 1/24))))
(* 1/2 (pow x 2))
(* 1/2 (pow x 2))
(* 1/2 (pow x 2))
(* 1/2 (pow x 2))
(pow x 2)
(pow x 2)
(pow x 2)
(pow x 2)
(* 1/2 (pow x 2))
(* (pow x 2) (+ 1/2 (* -1/24 (pow x 2))))
(* (pow x 2) (+ 1/2 (* (pow x 2) (- (* 1/720 (pow x 2)) 1/24))))
(* (pow x 2) (+ 1/2 (* (pow x 2) (- (* (pow x 2) (+ 1/720 (* -1/40320 (pow x 2)))) 1/24))))
(* 1/2 (pow x 2))
(* (pow x 2) (+ 1/2 (* -1/24 (pow x 2))))
(* (pow x 2) (+ 1/2 (* -1/24 (pow x 2))))
(* (pow x 2) (+ 1/2 (* -1/24 (pow x 2))))
(* 1/2 x)
(* x (+ 1/2 (* -1/24 (pow x 2))))
(* x (+ 1/2 (* -1/24 (pow x 2))))
(* x (+ 1/2 (* -1/24 (pow x 2))))
1/2
(+ 1/2 (* -1/24 (pow x 2)))
(+ 1/2 (* -1/24 (pow x 2)))
(+ 1/2 (* -1/24 (pow x 2)))
(* 1/2 (pow x 2))
(* (pow x 2) (+ 1/2 (* -1/24 (pow x 2))))
(* (pow x 2) (+ 1/2 (* (pow x 2) (- (* 1/720 (pow x 2)) 1/24))))
(* (pow x 2) (+ 1/2 (* (pow x 2) (- (* (pow x 2) (+ 1/720 (* -1/40320 (pow x 2)))) 1/24))))
1
(+ 1 (* -1/2 (pow x 2)))
(+ 1 (* (pow x 2) (- (* 1/24 (pow x 2)) 1/2)))
(+ 1 (* (pow x 2) (- (* (pow x 2) (+ 1/24 (* -1/720 (pow x 2)))) 1/2)))
(- 1 (cos x))
(- 1 (cos x))
(- 1 (cos x))
(- 1 (cos x))
(* 1/2 (pow x 2))
(* 1/2 (pow x 2))
(* 1/2 (pow x 2))
(* 1/2 (pow x 2))
(pow x 2)
(pow x 2)
(pow x 2)
(pow x 2)
(- 1 (cos x))
(- 1 (cos x))
(- 1 (cos x))
(- 1 (cos x))
(* -1/24 (pow x 4))
(* (pow x 4) (- (* 1/2 (/ 1 (pow x 2))) 1/24))
(* (pow x 4) (- (* 1/2 (/ 1 (pow x 2))) 1/24))
(* (pow x 4) (- (* 1/2 (/ 1 (pow x 2))) 1/24))
(* -1/24 (pow x 3))
(* (pow x 3) (- (* 1/2 (/ 1 (pow x 2))) 1/24))
(* (pow x 3) (- (* 1/2 (/ 1 (pow x 2))) 1/24))
(* (pow x 3) (- (* 1/2 (/ 1 (pow x 2))) 1/24))
(* -1/24 (pow x 2))
(* (pow x 2) (- (* 1/2 (/ 1 (pow x 2))) 1/24))
(* (pow x 2) (- (* 1/2 (/ 1 (pow x 2))) 1/24))
(* (pow x 2) (- (* 1/2 (/ 1 (pow x 2))) 1/24))
(- 1 (cos x))
(- 1 (cos x))
(- 1 (cos x))
(- 1 (cos x))
(cos x)
(cos x)
(cos x)
(cos x)
(- 1 (cos x))
(- 1 (cos x))
(- 1 (cos x))
(- 1 (cos x))
(* 1/2 (pow x 2))
(* 1/2 (pow x 2))
(* 1/2 (pow x 2))
(* 1/2 (pow x 2))
(pow x 2)
(pow x 2)
(pow x 2)
(pow x 2)
(- 1 (cos x))
(- 1 (cos x))
(- 1 (cos x))
(- 1 (cos x))
(* -1/24 (pow x 4))
(* (pow x 4) (- (* 1/2 (/ 1 (pow x 2))) 1/24))
(* (pow x 4) (- (* 1/2 (/ 1 (pow x 2))) 1/24))
(* (pow x 4) (- (* 1/2 (/ 1 (pow x 2))) 1/24))
(* -1/24 (pow x 3))
(* -1 (* (pow x 3) (- 1/24 (* 1/2 (/ 1 (pow x 2))))))
(* -1 (* (pow x 3) (- 1/24 (* 1/2 (/ 1 (pow x 2))))))
(* -1 (* (pow x 3) (- 1/24 (* 1/2 (/ 1 (pow x 2))))))
(* -1/24 (pow x 2))
(* (pow x 2) (- (* 1/2 (/ 1 (pow x 2))) 1/24))
(* (pow x 2) (- (* 1/2 (/ 1 (pow x 2))) 1/24))
(* (pow x 2) (- (* 1/2 (/ 1 (pow x 2))) 1/24))
(- 1 (cos x))
(- 1 (cos x))
(- 1 (cos x))
(- 1 (cos x))
(cos x)
(cos x)
(cos x)
(cos x)
Outputs
(* 1/2 (pow x 2))
(*.f64 (*.f64 x #s(literal 1/2 binary64)) x)
(* (pow x 2) (+ 1/2 (* -1/24 (pow x 2))))
(*.f64 (fma.f64 #s(literal -1/24 binary64) x (/.f64 #s(literal 1/2 binary64) x)) (pow.f64 x #s(literal 3 binary64)))
(* (pow x 2) (+ 1/2 (* (pow x 2) (- (* 1/720 (pow x 2)) 1/24))))
(*.f64 (*.f64 (fma.f64 (fma.f64 #s(literal 1/720 binary64) (*.f64 x x) #s(literal -1/24 binary64)) (*.f64 x x) #s(literal 1/2 binary64)) x) x)
(* (pow x 2) (+ 1/2 (* (pow x 2) (- (* (pow x 2) (+ 1/720 (* -1/40320 (pow x 2)))) 1/24))))
(*.f64 (*.f64 (fma.f64 (fma.f64 (fma.f64 #s(literal -1/40320 binary64) (*.f64 x x) #s(literal 1/720 binary64)) (*.f64 x x) #s(literal -1/24 binary64)) (*.f64 x x) #s(literal 1/2 binary64)) x) x)
(* 1/2 (pow x 2))
(*.f64 (*.f64 x #s(literal 1/2 binary64)) x)
(* 1/2 (pow x 2))
(*.f64 (*.f64 x #s(literal 1/2 binary64)) x)
(* 1/2 (pow x 2))
(*.f64 (*.f64 x #s(literal 1/2 binary64)) x)
(* 1/2 (pow x 2))
(*.f64 (*.f64 x #s(literal 1/2 binary64)) 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)
(* 1/2 (pow x 2))
(*.f64 (*.f64 x #s(literal 1/2 binary64)) x)
(* (pow x 2) (+ 1/2 (* -1/24 (pow x 2))))
(*.f64 (fma.f64 #s(literal -1/24 binary64) x (/.f64 #s(literal 1/2 binary64) x)) (pow.f64 x #s(literal 3 binary64)))
(* (pow x 2) (+ 1/2 (* (pow x 2) (- (* 1/720 (pow x 2)) 1/24))))
(*.f64 (*.f64 (fma.f64 (fma.f64 #s(literal 1/720 binary64) (*.f64 x x) #s(literal -1/24 binary64)) (*.f64 x x) #s(literal 1/2 binary64)) x) x)
(* (pow x 2) (+ 1/2 (* (pow x 2) (- (* (pow x 2) (+ 1/720 (* -1/40320 (pow x 2)))) 1/24))))
(*.f64 (*.f64 (fma.f64 (fma.f64 (fma.f64 #s(literal -1/40320 binary64) (*.f64 x x) #s(literal 1/720 binary64)) (*.f64 x x) #s(literal -1/24 binary64)) (*.f64 x x) #s(literal 1/2 binary64)) x) x)
(* 1/2 (pow x 2))
(*.f64 (*.f64 x #s(literal 1/2 binary64)) x)
(* (pow x 2) (+ 1/2 (* -1/24 (pow x 2))))
(*.f64 (fma.f64 #s(literal -1/24 binary64) x (/.f64 #s(literal 1/2 binary64) x)) (pow.f64 x #s(literal 3 binary64)))
(* (pow x 2) (+ 1/2 (* -1/24 (pow x 2))))
(*.f64 (fma.f64 #s(literal -1/24 binary64) x (/.f64 #s(literal 1/2 binary64) x)) (pow.f64 x #s(literal 3 binary64)))
(* (pow x 2) (+ 1/2 (* -1/24 (pow x 2))))
(*.f64 (fma.f64 #s(literal -1/24 binary64) x (/.f64 #s(literal 1/2 binary64) x)) (pow.f64 x #s(literal 3 binary64)))
(* 1/2 x)
(*.f64 x #s(literal 1/2 binary64))
(* x (+ 1/2 (* -1/24 (pow x 2))))
(*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x)
(* x (+ 1/2 (* -1/24 (pow x 2))))
(*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x)
(* x (+ 1/2 (* -1/24 (pow x 2))))
(*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x)
1/2
#s(literal 1/2 binary64)
(+ 1/2 (* -1/24 (pow x 2)))
(fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64))
(+ 1/2 (* -1/24 (pow x 2)))
(fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64))
(+ 1/2 (* -1/24 (pow x 2)))
(fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64))
(* 1/2 (pow x 2))
(*.f64 (*.f64 x #s(literal 1/2 binary64)) x)
(* (pow x 2) (+ 1/2 (* -1/24 (pow x 2))))
(*.f64 (fma.f64 #s(literal -1/24 binary64) x (/.f64 #s(literal 1/2 binary64) x)) (pow.f64 x #s(literal 3 binary64)))
(* (pow x 2) (+ 1/2 (* (pow x 2) (- (* 1/720 (pow x 2)) 1/24))))
(*.f64 (*.f64 (fma.f64 (fma.f64 #s(literal 1/720 binary64) (*.f64 x x) #s(literal -1/24 binary64)) (*.f64 x x) #s(literal 1/2 binary64)) x) x)
(* (pow x 2) (+ 1/2 (* (pow x 2) (- (* (pow x 2) (+ 1/720 (* -1/40320 (pow x 2)))) 1/24))))
(*.f64 (*.f64 (fma.f64 (fma.f64 (fma.f64 #s(literal -1/40320 binary64) (*.f64 x x) #s(literal 1/720 binary64)) (*.f64 x x) #s(literal -1/24 binary64)) (*.f64 x x) #s(literal 1/2 binary64)) x) x)
1
#s(literal 1 binary64)
(+ 1 (* -1/2 (pow x 2)))
(fma.f64 #s(literal -1/2 binary64) (*.f64 x x) #s(literal 1 binary64))
(+ 1 (* (pow x 2) (- (* 1/24 (pow x 2)) 1/2)))
(fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))
(+ 1 (* (pow x 2) (- (* (pow x 2) (+ 1/24 (* -1/720 (pow x 2)))) 1/2)))
(fma.f64 (fma.f64 (fma.f64 #s(literal -1/720 binary64) (*.f64 x x) #s(literal 1/24 binary64)) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))
(- 1 (cos x))
(-.f64 #s(literal 1 binary64) (cos.f64 x))
(- 1 (cos x))
(-.f64 #s(literal 1 binary64) (cos.f64 x))
(- 1 (cos x))
(-.f64 #s(literal 1 binary64) (cos.f64 x))
(- 1 (cos x))
(-.f64 #s(literal 1 binary64) (cos.f64 x))
(* 1/2 (pow x 2))
(*.f64 (*.f64 x #s(literal 1/2 binary64)) x)
(* 1/2 (pow x 2))
(*.f64 (*.f64 x #s(literal 1/2 binary64)) x)
(* 1/2 (pow x 2))
(*.f64 (*.f64 x #s(literal 1/2 binary64)) x)
(* 1/2 (pow x 2))
(*.f64 (*.f64 x #s(literal 1/2 binary64)) 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)
(- 1 (cos x))
(-.f64 #s(literal 1 binary64) (cos.f64 x))
(- 1 (cos x))
(-.f64 #s(literal 1 binary64) (cos.f64 x))
(- 1 (cos x))
(-.f64 #s(literal 1 binary64) (cos.f64 x))
(- 1 (cos x))
(-.f64 #s(literal 1 binary64) (cos.f64 x))
(* -1/24 (pow x 4))
(*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64))
(* (pow x 4) (- (* 1/2 (/ 1 (pow x 2))) 1/24))
(*.f64 (fma.f64 #s(literal -1/24 binary64) x (/.f64 #s(literal 1/2 binary64) x)) (pow.f64 x #s(literal 3 binary64)))
(* (pow x 4) (- (* 1/2 (/ 1 (pow x 2))) 1/24))
(*.f64 (fma.f64 #s(literal -1/24 binary64) x (/.f64 #s(literal 1/2 binary64) x)) (pow.f64 x #s(literal 3 binary64)))
(* (pow x 4) (- (* 1/2 (/ 1 (pow x 2))) 1/24))
(*.f64 (fma.f64 #s(literal -1/24 binary64) x (/.f64 #s(literal 1/2 binary64) x)) (pow.f64 x #s(literal 3 binary64)))
(* -1/24 (pow x 3))
(*.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/24 binary64))
(* (pow x 3) (- (* 1/2 (/ 1 (pow x 2))) 1/24))
(*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x)
(* (pow x 3) (- (* 1/2 (/ 1 (pow x 2))) 1/24))
(*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x)
(* (pow x 3) (- (* 1/2 (/ 1 (pow x 2))) 1/24))
(*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x)
(* -1/24 (pow x 2))
(*.f64 #s(literal -1/24 binary64) (*.f64 x x))
(* (pow x 2) (- (* 1/2 (/ 1 (pow x 2))) 1/24))
(fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64))
(* (pow x 2) (- (* 1/2 (/ 1 (pow x 2))) 1/24))
(fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64))
(* (pow x 2) (- (* 1/2 (/ 1 (pow x 2))) 1/24))
(fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64))
(- 1 (cos x))
(-.f64 #s(literal 1 binary64) (cos.f64 x))
(- 1 (cos x))
(-.f64 #s(literal 1 binary64) (cos.f64 x))
(- 1 (cos x))
(-.f64 #s(literal 1 binary64) (cos.f64 x))
(- 1 (cos x))
(-.f64 #s(literal 1 binary64) (cos.f64 x))
(cos x)
(cos.f64 x)
(cos x)
(cos.f64 x)
(cos x)
(cos.f64 x)
(cos x)
(cos.f64 x)
(- 1 (cos x))
(-.f64 #s(literal 1 binary64) (cos.f64 x))
(- 1 (cos x))
(-.f64 #s(literal 1 binary64) (cos.f64 x))
(- 1 (cos x))
(-.f64 #s(literal 1 binary64) (cos.f64 x))
(- 1 (cos x))
(-.f64 #s(literal 1 binary64) (cos.f64 x))
(* 1/2 (pow x 2))
(*.f64 (*.f64 x #s(literal 1/2 binary64)) x)
(* 1/2 (pow x 2))
(*.f64 (*.f64 x #s(literal 1/2 binary64)) x)
(* 1/2 (pow x 2))
(*.f64 (*.f64 x #s(literal 1/2 binary64)) x)
(* 1/2 (pow x 2))
(*.f64 (*.f64 x #s(literal 1/2 binary64)) 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)
(- 1 (cos x))
(-.f64 #s(literal 1 binary64) (cos.f64 x))
(- 1 (cos x))
(-.f64 #s(literal 1 binary64) (cos.f64 x))
(- 1 (cos x))
(-.f64 #s(literal 1 binary64) (cos.f64 x))
(- 1 (cos x))
(-.f64 #s(literal 1 binary64) (cos.f64 x))
(* -1/24 (pow x 4))
(*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64))
(* (pow x 4) (- (* 1/2 (/ 1 (pow x 2))) 1/24))
(*.f64 (fma.f64 #s(literal -1/24 binary64) x (/.f64 #s(literal 1/2 binary64) x)) (pow.f64 x #s(literal 3 binary64)))
(* (pow x 4) (- (* 1/2 (/ 1 (pow x 2))) 1/24))
(*.f64 (fma.f64 #s(literal -1/24 binary64) x (/.f64 #s(literal 1/2 binary64) x)) (pow.f64 x #s(literal 3 binary64)))
(* (pow x 4) (- (* 1/2 (/ 1 (pow x 2))) 1/24))
(*.f64 (fma.f64 #s(literal -1/24 binary64) x (/.f64 #s(literal 1/2 binary64) x)) (pow.f64 x #s(literal 3 binary64)))
(* -1/24 (pow x 3))
(*.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/24 binary64))
(* -1 (* (pow x 3) (- 1/24 (* 1/2 (/ 1 (pow x 2))))))
(*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x)
(* -1 (* (pow x 3) (- 1/24 (* 1/2 (/ 1 (pow x 2))))))
(*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x)
(* -1 (* (pow x 3) (- 1/24 (* 1/2 (/ 1 (pow x 2))))))
(*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x)
(* -1/24 (pow x 2))
(*.f64 #s(literal -1/24 binary64) (*.f64 x x))
(* (pow x 2) (- (* 1/2 (/ 1 (pow x 2))) 1/24))
(fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64))
(* (pow x 2) (- (* 1/2 (/ 1 (pow x 2))) 1/24))
(fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64))
(* (pow x 2) (- (* 1/2 (/ 1 (pow x 2))) 1/24))
(fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64))
(- 1 (cos x))
(-.f64 #s(literal 1 binary64) (cos.f64 x))
(- 1 (cos x))
(-.f64 #s(literal 1 binary64) (cos.f64 x))
(- 1 (cos x))
(-.f64 #s(literal 1 binary64) (cos.f64 x))
(- 1 (cos x))
(-.f64 #s(literal 1 binary64) (cos.f64 x))
(cos x)
(cos.f64 x)
(cos x)
(cos.f64 x)
(cos x)
(cos.f64 x)
(cos x)
(cos.f64 x)

rewrite177.0ms (2.2%)

Memory
14.2MiB live, 284.0MiB allocated
Rules
6 496×lower-*.f32
6 488×lower-*.f64
6 218×lower-fma.f32
6 216×lower-fma.f64
3 166×lower-/.f64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01567
02267
17767
245867
3374167
01107067
Stop Event
iter limit
node limit
iter limit
Counts
9 → 290
Calls
Call 1
Inputs
#s(approx (- 1 (cos x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64)))
(*.f64 (*.f64 x x) #s(literal 1/2 binary64))
(*.f64 x x)
#s(approx (- 1 (cos x)) (*.f64 (*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x) x))
(*.f64 (*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x) x)
(*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x)
(fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64))
(-.f64 #s(literal 1 binary64) #s(approx (cos x) #s(literal 1 binary64)))
#s(approx (cos x) #s(literal 1 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>

eval51.0ms (0.6%)

Memory
-16.6MiB live, 103.5MiB allocated
Compiler

Compiled 7 206 to 1 152 computations (84% saved)

prune13.0ms (0.2%)

Memory
0.4MiB live, 38.5MiB allocated
Pruning

5 alts after pruning (3 fresh and 2 done)

PrunedKeptTotal
New4133416
Fresh000
Picked123
Done000
Total4145419
Accuracy
100.0%
Counts
419 → 5
Alt Table
Click to see full alt table
StatusAccuracyProgram
52.2%
(-.f64 #s(literal 1 binary64) #s(approx (cos x) #s(literal 1 binary64)))
4.3%
(+.f64 #s(approx (cos x) #s(literal 1 binary64)) #s(literal 1 binary64))
100.0%
#s(approx (- 1 (cos x)) (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64))))
100.0%
#s(approx (- 1 (cos x)) (*.f64 (*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x) x))
99.6%
#s(approx (- 1 (cos x)) (*.f64 (*.f64 #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) x) x))
Compiler

Compiled 37 to 31 computations (16.2% saved)

simplify7.0ms (0.1%)

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

Found 10 expressions of interest:

NewMetricScoreProgram
cost-diff0
#s(approx (cos x) #s(literal 1 binary64))
cost-diff0
(+.f64 #s(approx (cos x) #s(literal 1 binary64)) #s(literal 1 binary64))
cost-diff0
(*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64))
cost-diff0
(*.f64 #s(literal 1/2 binary64) x)
cost-diff0
(fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64)))
cost-diff0
#s(approx (- 1 (cos x)) (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64))))
cost-diff0
#s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64))
cost-diff0
(*.f64 #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) x)
cost-diff0
(*.f64 (*.f64 #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) x) x)
cost-diff0
#s(approx (- 1 (cos x)) (*.f64 (*.f64 #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) x) x))
Rules
50×lower-*.f32
42×lower-*.f64
36×lower-+.f32
34×lower-+.f64
32×lower-fma.f32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
021104
029104
146104
255104
360104
467104
575104
685104
796104
899104
099100
Stop Event
iter limit
saturated
iter limit
Calls
Call 1
Inputs
#s(approx (- 1 (cos x)) (*.f64 (*.f64 #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) x) x))
(*.f64 (*.f64 #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) x) x)
(*.f64 #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) x)
#s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64))
#s(literal 1/2 binary64)
x
#s(approx (- 1 (cos x)) (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64))))
(fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64)))
(*.f64 #s(literal 1/2 binary64) x)
#s(literal 1/2 binary64)
x
(*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64))
(pow.f64 x #s(literal 4 binary64))
#s(literal 4 binary64)
#s(literal -1/24 binary64)
(+.f64 #s(approx (cos x) #s(literal 1 binary64)) #s(literal 1 binary64))
#s(approx (cos x) #s(literal 1 binary64))
#s(literal 1 binary64)
Outputs
#s(approx (- 1 (cos x)) (*.f64 (*.f64 #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) x) x))
(*.f64 (*.f64 #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) x) x)
(*.f64 #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) x)
#s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64))
#s(literal 1/2 binary64)
x
#s(approx (- 1 (cos x)) (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64))))
(fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64)))
(*.f64 #s(literal 1/2 binary64) x)
#s(literal 1/2 binary64)
x
(*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64))
(pow.f64 x #s(literal 4 binary64))
#s(literal 4 binary64)
#s(literal -1/24 binary64)
(+.f64 #s(approx (cos x) #s(literal 1 binary64)) #s(literal 1 binary64))
#s(approx (cos x) #s(literal 1 binary64))
#s(literal 1 binary64)

localize204.0ms (2.5%)

Memory
-22.3MiB live, 219.4MiB allocated
Localize:

Found 10 expressions of interest:

NewMetricScoreProgram
accuracy0.0078125
(+.f64 #s(approx (cos x) #s(literal 1 binary64)) #s(literal 1 binary64))
accuracy0.3116564758023605
#s(approx (cos x) #s(literal 1 binary64))
accuracy0
(pow.f64 x #s(literal 4 binary64))
accuracy0
(*.f64 #s(literal 1/2 binary64) x)
accuracy0
#s(approx (- 1 (cos x)) (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64))))
accuracy0.109375
(*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64))
accuracy0
#s(approx (- 1 (cos x)) (*.f64 (*.f64 #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) x) x))
accuracy0.0078125
(*.f64 #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) x)
accuracy0.01171875
(*.f64 (*.f64 #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) x) x)
accuracy0.2673702184448668
#s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64))
Samples
109.0ms174×2valid
49.0ms80×1valid
30.0ms0valid
Compiler

Compiled 72 to 20 computations (72.2% saved)

Precisions
Click to see histograms. Total time spent on operations: 129.0ms
adjust: 60.0ms (46.4% of total)
ival-cos: 33.0ms (25.5% of total)
ival-mult: 20.0ms (15.5% of total)
ival-add: 6.0ms (4.6% of total)
const: 4.0ms (3.1% of total)
ival-sub: 3.0ms (2.3% of total)
ival-pow: 3.0ms (2.3% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)

series12.0ms (0.1%)

Memory
4.0MiB live, 40.3MiB allocated
Counts
11 → 132
Calls
Call 1
Inputs
#s(alt #s(approx (- 1 (cos x)) (*.f64 (*.f64 #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) x) x)) (patch #s(approx (- 1 (cos x)) (*.f64 (*.f64 #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) x) x)) #<representation binary64>) () ())
#s(alt (*.f64 (*.f64 #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) x) x) (patch (*.f64 (*.f64 #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) x) x) #<representation binary64>) () ())
#s(alt (*.f64 #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) x) (patch (*.f64 #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) x) #<representation binary64>) () ())
#s(alt #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) (patch #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) #<representation binary64>) () ())
#s(alt #s(approx (- 1 (cos x)) (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64)))) (patch #s(approx (- 1 (cos x)) (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64)))) #<representation binary64>) () ())
#s(alt (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64))) (patch (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64))) #<representation binary64>) () ())
#s(alt (*.f64 #s(literal 1/2 binary64) x) (patch (*.f64 #s(literal 1/2 binary64) x) #<representation binary64>) () ())
#s(alt (*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64)) (patch (*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64)) #<representation binary64>) () ())
#s(alt (+.f64 #s(approx (cos x) #s(literal 1 binary64)) #s(literal 1 binary64)) (patch (+.f64 #s(approx (cos x) #s(literal 1 binary64)) #s(literal 1 binary64)) #<representation binary64>) () ())
#s(alt #s(approx (cos x) #s(literal 1 binary64)) (patch #s(approx (cos x) #s(literal 1 binary64)) #<representation binary64>) () ())
#s(alt (pow.f64 x #s(literal 4 binary64)) (patch (pow.f64 x #s(literal 4 binary64)) #<representation binary64>) () ())
Outputs
#s(alt (* 1/2 (pow x 2)) (taylor 0 x) (#s(alt #s(approx (- 1 (cos x)) (*.f64 (*.f64 #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) x) x)) (patch #s(approx (- 1 (cos x)) (*.f64 (*.f64 #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) x) x)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1/2 (* -1/24 (pow x 2)))) (taylor 0 x) (#s(alt #s(approx (- 1 (cos x)) (*.f64 (*.f64 #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) x) x)) (patch #s(approx (- 1 (cos x)) (*.f64 (*.f64 #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) x) x)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1/2 (* (pow x 2) (- (* 1/720 (pow x 2)) 1/24)))) (taylor 0 x) (#s(alt #s(approx (- 1 (cos x)) (*.f64 (*.f64 #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) x) x)) (patch #s(approx (- 1 (cos x)) (*.f64 (*.f64 #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) x) x)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1/2 (* (pow x 2) (- (* (pow x 2) (+ 1/720 (* -1/40320 (pow x 2)))) 1/24)))) (taylor 0 x) (#s(alt #s(approx (- 1 (cos x)) (*.f64 (*.f64 #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) x) x)) (patch #s(approx (- 1 (cos x)) (*.f64 (*.f64 #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) x) x)) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (pow x 2)) (taylor 0 x) (#s(alt (*.f64 (*.f64 #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) x) x) (patch (*.f64 (*.f64 #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) x) x) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1/2 (* -1/24 (pow x 2)))) (taylor 0 x) (#s(alt (*.f64 (*.f64 #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) x) x) (patch (*.f64 (*.f64 #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) x) x) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1/2 (* -1/24 (pow x 2)))) (taylor 0 x) (#s(alt (*.f64 (*.f64 #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) x) x) (patch (*.f64 (*.f64 #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) x) x) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1/2 (* -1/24 (pow x 2)))) (taylor 0 x) (#s(alt (*.f64 (*.f64 #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) x) x) (patch (*.f64 (*.f64 #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) x) x) #<representation binary64>) () ())) ())
#s(alt (* 1/2 x) (taylor 0 x) (#s(alt (*.f64 #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) x) (patch (*.f64 #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) x) #<representation binary64>) () ())) ())
#s(alt (* x (+ 1/2 (* -1/24 (pow x 2)))) (taylor 0 x) (#s(alt (*.f64 #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) x) (patch (*.f64 #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) x) #<representation binary64>) () ())) ())
#s(alt (* x (+ 1/2 (* -1/24 (pow x 2)))) (taylor 0 x) (#s(alt (*.f64 #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) x) (patch (*.f64 #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) x) #<representation binary64>) () ())) ())
#s(alt (* x (+ 1/2 (* -1/24 (pow x 2)))) (taylor 0 x) (#s(alt (*.f64 #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) x) (patch (*.f64 #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) x) #<representation binary64>) () ())) ())
#s(alt 1/2 (taylor 0 x) (#s(alt #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) (patch #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (+ 1/2 (* -1/24 (pow x 2))) (taylor 0 x) (#s(alt #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) (patch #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (+ 1/2 (* -1/24 (pow x 2))) (taylor 0 x) (#s(alt #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) (patch #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (+ 1/2 (* -1/24 (pow x 2))) (taylor 0 x) (#s(alt #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) (patch #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (pow x 2)) (taylor 0 x) (#s(alt #s(approx (- 1 (cos x)) (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64)))) (patch #s(approx (- 1 (cos x)) (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64)))) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1/2 (* -1/24 (pow x 2)))) (taylor 0 x) (#s(alt #s(approx (- 1 (cos x)) (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64)))) (patch #s(approx (- 1 (cos x)) (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64)))) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1/2 (* (pow x 2) (- (* 1/720 (pow x 2)) 1/24)))) (taylor 0 x) (#s(alt #s(approx (- 1 (cos x)) (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64)))) (patch #s(approx (- 1 (cos x)) (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64)))) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1/2 (* (pow x 2) (- (* (pow x 2) (+ 1/720 (* -1/40320 (pow x 2)))) 1/24)))) (taylor 0 x) (#s(alt #s(approx (- 1 (cos x)) (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64)))) (patch #s(approx (- 1 (cos x)) (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64)))) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (pow x 2)) (taylor 0 x) (#s(alt (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64))) (patch (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64))) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1/2 (* -1/24 (pow x 2)))) (taylor 0 x) (#s(alt (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64))) (patch (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64))) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1/2 (* -1/24 (pow x 2)))) (taylor 0 x) (#s(alt (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64))) (patch (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64))) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1/2 (* -1/24 (pow x 2)))) (taylor 0 x) (#s(alt (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64))) (patch (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64))) #<representation binary64>) () ())) ())
#s(alt (* 1/2 x) (taylor 0 x) (#s(alt (*.f64 #s(literal 1/2 binary64) x) (patch (*.f64 #s(literal 1/2 binary64) x) #<representation binary64>) () ())) ())
#s(alt (* 1/2 x) (taylor 0 x) (#s(alt (*.f64 #s(literal 1/2 binary64) x) (patch (*.f64 #s(literal 1/2 binary64) x) #<representation binary64>) () ())) ())
#s(alt (* 1/2 x) (taylor 0 x) (#s(alt (*.f64 #s(literal 1/2 binary64) x) (patch (*.f64 #s(literal 1/2 binary64) x) #<representation binary64>) () ())) ())
#s(alt (* 1/2 x) (taylor 0 x) (#s(alt (*.f64 #s(literal 1/2 binary64) x) (patch (*.f64 #s(literal 1/2 binary64) x) #<representation binary64>) () ())) ())
#s(alt (* -1/24 (pow x 4)) (taylor 0 x) (#s(alt (*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64)) (patch (*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64)) #<representation binary64>) () ())) ())
#s(alt (* -1/24 (pow x 4)) (taylor 0 x) (#s(alt (*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64)) (patch (*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64)) #<representation binary64>) () ())) ())
#s(alt (* -1/24 (pow x 4)) (taylor 0 x) (#s(alt (*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64)) (patch (*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64)) #<representation binary64>) () ())) ())
#s(alt (* -1/24 (pow x 4)) (taylor 0 x) (#s(alt (*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64)) (patch (*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64)) #<representation binary64>) () ())) ())
#s(alt 2 (taylor 0 x) (#s(alt (+.f64 #s(approx (cos x) #s(literal 1 binary64)) #s(literal 1 binary64)) (patch (+.f64 #s(approx (cos x) #s(literal 1 binary64)) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (+ 2 (* -1/2 (pow x 2))) (taylor 0 x) (#s(alt (+.f64 #s(approx (cos x) #s(literal 1 binary64)) #s(literal 1 binary64)) (patch (+.f64 #s(approx (cos x) #s(literal 1 binary64)) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (+ 2 (* (pow x 2) (- (* 1/24 (pow x 2)) 1/2))) (taylor 0 x) (#s(alt (+.f64 #s(approx (cos x) #s(literal 1 binary64)) #s(literal 1 binary64)) (patch (+.f64 #s(approx (cos x) #s(literal 1 binary64)) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (+ 2 (* (pow x 2) (- (* (pow x 2) (+ 1/24 (* -1/720 (pow x 2)))) 1/2))) (taylor 0 x) (#s(alt (+.f64 #s(approx (cos x) #s(literal 1 binary64)) #s(literal 1 binary64)) (patch (+.f64 #s(approx (cos x) #s(literal 1 binary64)) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt 1 (taylor 0 x) (#s(alt #s(approx (cos x) #s(literal 1 binary64)) (patch #s(approx (cos x) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (+ 1 (* -1/2 (pow x 2))) (taylor 0 x) (#s(alt #s(approx (cos x) #s(literal 1 binary64)) (patch #s(approx (cos x) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (+ 1 (* (pow x 2) (- (* 1/24 (pow x 2)) 1/2))) (taylor 0 x) (#s(alt #s(approx (cos x) #s(literal 1 binary64)) (patch #s(approx (cos x) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (+ 1 (* (pow x 2) (- (* (pow x 2) (+ 1/24 (* -1/720 (pow x 2)))) 1/2))) (taylor 0 x) (#s(alt #s(approx (cos x) #s(literal 1 binary64)) (patch #s(approx (cos x) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (pow x 4) (taylor 0 x) (#s(alt (pow.f64 x #s(literal 4 binary64)) (patch (pow.f64 x #s(literal 4 binary64)) #<representation binary64>) () ())) ())
#s(alt (pow x 4) (taylor 0 x) (#s(alt (pow.f64 x #s(literal 4 binary64)) (patch (pow.f64 x #s(literal 4 binary64)) #<representation binary64>) () ())) ())
#s(alt (pow x 4) (taylor 0 x) (#s(alt (pow.f64 x #s(literal 4 binary64)) (patch (pow.f64 x #s(literal 4 binary64)) #<representation binary64>) () ())) ())
#s(alt (pow x 4) (taylor 0 x) (#s(alt (pow.f64 x #s(literal 4 binary64)) (patch (pow.f64 x #s(literal 4 binary64)) #<representation binary64>) () ())) ())
#s(alt (- 1 (cos x)) (taylor inf x) (#s(alt #s(approx (- 1 (cos x)) (*.f64 (*.f64 #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) x) x)) (patch #s(approx (- 1 (cos x)) (*.f64 (*.f64 #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) x) x)) #<representation binary64>) () ())) ())
#s(alt (- 1 (cos x)) (taylor inf x) (#s(alt #s(approx (- 1 (cos x)) (*.f64 (*.f64 #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) x) x)) (patch #s(approx (- 1 (cos x)) (*.f64 (*.f64 #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) x) x)) #<representation binary64>) () ())) ())
#s(alt (- 1 (cos x)) (taylor inf x) (#s(alt #s(approx (- 1 (cos x)) (*.f64 (*.f64 #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) x) x)) (patch #s(approx (- 1 (cos x)) (*.f64 (*.f64 #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) x) x)) #<representation binary64>) () ())) ())
#s(alt (- 1 (cos x)) (taylor inf x) (#s(alt #s(approx (- 1 (cos x)) (*.f64 (*.f64 #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) x) x)) (patch #s(approx (- 1 (cos x)) (*.f64 (*.f64 #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) x) x)) #<representation binary64>) () ())) ())
#s(alt (* -1/24 (pow x 4)) (taylor inf x) (#s(alt (*.f64 (*.f64 #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) x) x) (patch (*.f64 (*.f64 #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) x) x) #<representation binary64>) () ())) ())
#s(alt (* (pow x 4) (- (* 1/2 (/ 1 (pow x 2))) 1/24)) (taylor inf x) (#s(alt (*.f64 (*.f64 #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) x) x) (patch (*.f64 (*.f64 #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) x) x) #<representation binary64>) () ())) ())
#s(alt (* (pow x 4) (- (* 1/2 (/ 1 (pow x 2))) 1/24)) (taylor inf x) (#s(alt (*.f64 (*.f64 #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) x) x) (patch (*.f64 (*.f64 #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) x) x) #<representation binary64>) () ())) ())
#s(alt (* (pow x 4) (- (* 1/2 (/ 1 (pow x 2))) 1/24)) (taylor inf x) (#s(alt (*.f64 (*.f64 #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) x) x) (patch (*.f64 (*.f64 #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) x) x) #<representation binary64>) () ())) ())
#s(alt (* -1/24 (pow x 3)) (taylor inf x) (#s(alt (*.f64 #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) x) (patch (*.f64 #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) x) #<representation binary64>) () ())) ())
#s(alt (* (pow x 3) (- (* 1/2 (/ 1 (pow x 2))) 1/24)) (taylor inf x) (#s(alt (*.f64 #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) x) (patch (*.f64 #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) x) #<representation binary64>) () ())) ())
#s(alt (* (pow x 3) (- (* 1/2 (/ 1 (pow x 2))) 1/24)) (taylor inf x) (#s(alt (*.f64 #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) x) (patch (*.f64 #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) x) #<representation binary64>) () ())) ())
#s(alt (* (pow x 3) (- (* 1/2 (/ 1 (pow x 2))) 1/24)) (taylor inf x) (#s(alt (*.f64 #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) x) (patch (*.f64 #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) x) #<representation binary64>) () ())) ())
#s(alt (* -1/24 (pow x 2)) (taylor inf x) (#s(alt #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) (patch #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- (* 1/2 (/ 1 (pow x 2))) 1/24)) (taylor inf x) (#s(alt #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) (patch #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- (* 1/2 (/ 1 (pow x 2))) 1/24)) (taylor inf x) (#s(alt #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) (patch #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- (* 1/2 (/ 1 (pow x 2))) 1/24)) (taylor inf x) (#s(alt #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) (patch #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (- 1 (cos x)) (taylor inf x) (#s(alt #s(approx (- 1 (cos x)) (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64)))) (patch #s(approx (- 1 (cos x)) (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64)))) #<representation binary64>) () ())) ())
#s(alt (- 1 (cos x)) (taylor inf x) (#s(alt #s(approx (- 1 (cos x)) (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64)))) (patch #s(approx (- 1 (cos x)) (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64)))) #<representation binary64>) () ())) ())
#s(alt (- 1 (cos x)) (taylor inf x) (#s(alt #s(approx (- 1 (cos x)) (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64)))) (patch #s(approx (- 1 (cos x)) (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64)))) #<representation binary64>) () ())) ())
#s(alt (- 1 (cos x)) (taylor inf x) (#s(alt #s(approx (- 1 (cos x)) (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64)))) (patch #s(approx (- 1 (cos x)) (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64)))) #<representation binary64>) () ())) ())
#s(alt (* -1/24 (pow x 4)) (taylor inf x) (#s(alt (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64))) (patch (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64))) #<representation binary64>) () ())) ())
#s(alt (* (pow x 4) (- (* 1/2 (/ 1 (pow x 2))) 1/24)) (taylor inf x) (#s(alt (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64))) (patch (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64))) #<representation binary64>) () ())) ())
#s(alt (* (pow x 4) (- (* 1/2 (/ 1 (pow x 2))) 1/24)) (taylor inf x) (#s(alt (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64))) (patch (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64))) #<representation binary64>) () ())) ())
#s(alt (* (pow x 4) (- (* 1/2 (/ 1 (pow x 2))) 1/24)) (taylor inf x) (#s(alt (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64))) (patch (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64))) #<representation binary64>) () ())) ())
#s(alt (* 1/2 x) (taylor inf x) (#s(alt (*.f64 #s(literal 1/2 binary64) x) (patch (*.f64 #s(literal 1/2 binary64) x) #<representation binary64>) () ())) ())
#s(alt (* 1/2 x) (taylor inf x) (#s(alt (*.f64 #s(literal 1/2 binary64) x) (patch (*.f64 #s(literal 1/2 binary64) x) #<representation binary64>) () ())) ())
#s(alt (* 1/2 x) (taylor inf x) (#s(alt (*.f64 #s(literal 1/2 binary64) x) (patch (*.f64 #s(literal 1/2 binary64) x) #<representation binary64>) () ())) ())
#s(alt (* 1/2 x) (taylor inf x) (#s(alt (*.f64 #s(literal 1/2 binary64) x) (patch (*.f64 #s(literal 1/2 binary64) x) #<representation binary64>) () ())) ())
#s(alt (* -1/24 (pow x 4)) (taylor inf x) (#s(alt (*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64)) (patch (*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64)) #<representation binary64>) () ())) ())
#s(alt (* -1/24 (pow x 4)) (taylor inf x) (#s(alt (*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64)) (patch (*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64)) #<representation binary64>) () ())) ())
#s(alt (* -1/24 (pow x 4)) (taylor inf x) (#s(alt (*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64)) (patch (*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64)) #<representation binary64>) () ())) ())
#s(alt (* -1/24 (pow x 4)) (taylor inf x) (#s(alt (*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64)) (patch (*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64)) #<representation binary64>) () ())) ())
#s(alt (+ 1 (cos x)) (taylor inf x) (#s(alt (+.f64 #s(approx (cos x) #s(literal 1 binary64)) #s(literal 1 binary64)) (patch (+.f64 #s(approx (cos x) #s(literal 1 binary64)) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (+ 1 (cos x)) (taylor inf x) (#s(alt (+.f64 #s(approx (cos x) #s(literal 1 binary64)) #s(literal 1 binary64)) (patch (+.f64 #s(approx (cos x) #s(literal 1 binary64)) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (+ 1 (cos x)) (taylor inf x) (#s(alt (+.f64 #s(approx (cos x) #s(literal 1 binary64)) #s(literal 1 binary64)) (patch (+.f64 #s(approx (cos x) #s(literal 1 binary64)) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (+ 1 (cos x)) (taylor inf x) (#s(alt (+.f64 #s(approx (cos x) #s(literal 1 binary64)) #s(literal 1 binary64)) (patch (+.f64 #s(approx (cos x) #s(literal 1 binary64)) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (cos x) (taylor inf x) (#s(alt #s(approx (cos x) #s(literal 1 binary64)) (patch #s(approx (cos x) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (cos x) (taylor inf x) (#s(alt #s(approx (cos x) #s(literal 1 binary64)) (patch #s(approx (cos x) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (cos x) (taylor inf x) (#s(alt #s(approx (cos x) #s(literal 1 binary64)) (patch #s(approx (cos x) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (cos x) (taylor inf x) (#s(alt #s(approx (cos x) #s(literal 1 binary64)) (patch #s(approx (cos x) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (pow x 4) (taylor inf x) (#s(alt (pow.f64 x #s(literal 4 binary64)) (patch (pow.f64 x #s(literal 4 binary64)) #<representation binary64>) () ())) ())
#s(alt (pow x 4) (taylor inf x) (#s(alt (pow.f64 x #s(literal 4 binary64)) (patch (pow.f64 x #s(literal 4 binary64)) #<representation binary64>) () ())) ())
#s(alt (pow x 4) (taylor inf x) (#s(alt (pow.f64 x #s(literal 4 binary64)) (patch (pow.f64 x #s(literal 4 binary64)) #<representation binary64>) () ())) ())
#s(alt (pow x 4) (taylor inf x) (#s(alt (pow.f64 x #s(literal 4 binary64)) (patch (pow.f64 x #s(literal 4 binary64)) #<representation binary64>) () ())) ())
#s(alt (- 1 (cos x)) (taylor -inf x) (#s(alt #s(approx (- 1 (cos x)) (*.f64 (*.f64 #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) x) x)) (patch #s(approx (- 1 (cos x)) (*.f64 (*.f64 #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) x) x)) #<representation binary64>) () ())) ())
#s(alt (- 1 (cos x)) (taylor -inf x) (#s(alt #s(approx (- 1 (cos x)) (*.f64 (*.f64 #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) x) x)) (patch #s(approx (- 1 (cos x)) (*.f64 (*.f64 #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) x) x)) #<representation binary64>) () ())) ())
#s(alt (- 1 (cos x)) (taylor -inf x) (#s(alt #s(approx (- 1 (cos x)) (*.f64 (*.f64 #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) x) x)) (patch #s(approx (- 1 (cos x)) (*.f64 (*.f64 #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) x) x)) #<representation binary64>) () ())) ())
#s(alt (- 1 (cos x)) (taylor -inf x) (#s(alt #s(approx (- 1 (cos x)) (*.f64 (*.f64 #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) x) x)) (patch #s(approx (- 1 (cos x)) (*.f64 (*.f64 #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) x) x)) #<representation binary64>) () ())) ())
#s(alt (* -1/24 (pow x 4)) (taylor -inf x) (#s(alt (*.f64 (*.f64 #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) x) x) (patch (*.f64 (*.f64 #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) x) x) #<representation binary64>) () ())) ())
#s(alt (* (pow x 4) (- (* 1/2 (/ 1 (pow x 2))) 1/24)) (taylor -inf x) (#s(alt (*.f64 (*.f64 #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) x) x) (patch (*.f64 (*.f64 #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) x) x) #<representation binary64>) () ())) ())
#s(alt (* (pow x 4) (- (* 1/2 (/ 1 (pow x 2))) 1/24)) (taylor -inf x) (#s(alt (*.f64 (*.f64 #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) x) x) (patch (*.f64 (*.f64 #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) x) x) #<representation binary64>) () ())) ())
#s(alt (* (pow x 4) (- (* 1/2 (/ 1 (pow x 2))) 1/24)) (taylor -inf x) (#s(alt (*.f64 (*.f64 #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) x) x) (patch (*.f64 (*.f64 #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) x) x) #<representation binary64>) () ())) ())
#s(alt (* -1/24 (pow x 3)) (taylor -inf x) (#s(alt (*.f64 #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) x) (patch (*.f64 #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) x) #<representation binary64>) () ())) ())
#s(alt (* -1 (* (pow x 3) (- 1/24 (* 1/2 (/ 1 (pow x 2)))))) (taylor -inf x) (#s(alt (*.f64 #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) x) (patch (*.f64 #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) x) #<representation binary64>) () ())) ())
#s(alt (* -1 (* (pow x 3) (- 1/24 (* 1/2 (/ 1 (pow x 2)))))) (taylor -inf x) (#s(alt (*.f64 #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) x) (patch (*.f64 #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) x) #<representation binary64>) () ())) ())
#s(alt (* -1 (* (pow x 3) (- 1/24 (* 1/2 (/ 1 (pow x 2)))))) (taylor -inf x) (#s(alt (*.f64 #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) x) (patch (*.f64 #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) x) #<representation binary64>) () ())) ())
#s(alt (* -1/24 (pow x 2)) (taylor -inf x) (#s(alt #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) (patch #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- (* 1/2 (/ 1 (pow x 2))) 1/24)) (taylor -inf x) (#s(alt #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) (patch #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- (* 1/2 (/ 1 (pow x 2))) 1/24)) (taylor -inf x) (#s(alt #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) (patch #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- (* 1/2 (/ 1 (pow x 2))) 1/24)) (taylor -inf x) (#s(alt #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) (patch #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (- 1 (cos x)) (taylor -inf x) (#s(alt #s(approx (- 1 (cos x)) (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64)))) (patch #s(approx (- 1 (cos x)) (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64)))) #<representation binary64>) () ())) ())
#s(alt (- 1 (cos x)) (taylor -inf x) (#s(alt #s(approx (- 1 (cos x)) (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64)))) (patch #s(approx (- 1 (cos x)) (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64)))) #<representation binary64>) () ())) ())
#s(alt (- 1 (cos x)) (taylor -inf x) (#s(alt #s(approx (- 1 (cos x)) (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64)))) (patch #s(approx (- 1 (cos x)) (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64)))) #<representation binary64>) () ())) ())
#s(alt (- 1 (cos x)) (taylor -inf x) (#s(alt #s(approx (- 1 (cos x)) (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64)))) (patch #s(approx (- 1 (cos x)) (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64)))) #<representation binary64>) () ())) ())
#s(alt (* -1/24 (pow x 4)) (taylor -inf x) (#s(alt (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64))) (patch (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64))) #<representation binary64>) () ())) ())
#s(alt (* (pow x 4) (- (* 1/2 (/ 1 (pow x 2))) 1/24)) (taylor -inf x) (#s(alt (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64))) (patch (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64))) #<representation binary64>) () ())) ())
#s(alt (* (pow x 4) (- (* 1/2 (/ 1 (pow x 2))) 1/24)) (taylor -inf x) (#s(alt (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64))) (patch (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64))) #<representation binary64>) () ())) ())
#s(alt (* (pow x 4) (- (* 1/2 (/ 1 (pow x 2))) 1/24)) (taylor -inf x) (#s(alt (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64))) (patch (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64))) #<representation binary64>) () ())) ())
#s(alt (* 1/2 x) (taylor -inf x) (#s(alt (*.f64 #s(literal 1/2 binary64) x) (patch (*.f64 #s(literal 1/2 binary64) x) #<representation binary64>) () ())) ())
#s(alt (* 1/2 x) (taylor -inf x) (#s(alt (*.f64 #s(literal 1/2 binary64) x) (patch (*.f64 #s(literal 1/2 binary64) x) #<representation binary64>) () ())) ())
#s(alt (* 1/2 x) (taylor -inf x) (#s(alt (*.f64 #s(literal 1/2 binary64) x) (patch (*.f64 #s(literal 1/2 binary64) x) #<representation binary64>) () ())) ())
#s(alt (* 1/2 x) (taylor -inf x) (#s(alt (*.f64 #s(literal 1/2 binary64) x) (patch (*.f64 #s(literal 1/2 binary64) x) #<representation binary64>) () ())) ())
#s(alt (* -1/24 (pow x 4)) (taylor -inf x) (#s(alt (*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64)) (patch (*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64)) #<representation binary64>) () ())) ())
#s(alt (* -1/24 (pow x 4)) (taylor -inf x) (#s(alt (*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64)) (patch (*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64)) #<representation binary64>) () ())) ())
#s(alt (* -1/24 (pow x 4)) (taylor -inf x) (#s(alt (*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64)) (patch (*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64)) #<representation binary64>) () ())) ())
#s(alt (* -1/24 (pow x 4)) (taylor -inf x) (#s(alt (*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64)) (patch (*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64)) #<representation binary64>) () ())) ())
#s(alt (+ 1 (cos x)) (taylor -inf x) (#s(alt (+.f64 #s(approx (cos x) #s(literal 1 binary64)) #s(literal 1 binary64)) (patch (+.f64 #s(approx (cos x) #s(literal 1 binary64)) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (+ 1 (cos x)) (taylor -inf x) (#s(alt (+.f64 #s(approx (cos x) #s(literal 1 binary64)) #s(literal 1 binary64)) (patch (+.f64 #s(approx (cos x) #s(literal 1 binary64)) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (+ 1 (cos x)) (taylor -inf x) (#s(alt (+.f64 #s(approx (cos x) #s(literal 1 binary64)) #s(literal 1 binary64)) (patch (+.f64 #s(approx (cos x) #s(literal 1 binary64)) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (+ 1 (cos x)) (taylor -inf x) (#s(alt (+.f64 #s(approx (cos x) #s(literal 1 binary64)) #s(literal 1 binary64)) (patch (+.f64 #s(approx (cos x) #s(literal 1 binary64)) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (cos x) (taylor -inf x) (#s(alt #s(approx (cos x) #s(literal 1 binary64)) (patch #s(approx (cos x) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (cos x) (taylor -inf x) (#s(alt #s(approx (cos x) #s(literal 1 binary64)) (patch #s(approx (cos x) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (cos x) (taylor -inf x) (#s(alt #s(approx (cos x) #s(literal 1 binary64)) (patch #s(approx (cos x) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (cos x) (taylor -inf x) (#s(alt #s(approx (cos x) #s(literal 1 binary64)) (patch #s(approx (cos x) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (pow x 4) (taylor -inf x) (#s(alt (pow.f64 x #s(literal 4 binary64)) (patch (pow.f64 x #s(literal 4 binary64)) #<representation binary64>) () ())) ())
#s(alt (pow x 4) (taylor -inf x) (#s(alt (pow.f64 x #s(literal 4 binary64)) (patch (pow.f64 x #s(literal 4 binary64)) #<representation binary64>) () ())) ())
#s(alt (pow x 4) (taylor -inf x) (#s(alt (pow.f64 x #s(literal 4 binary64)) (patch (pow.f64 x #s(literal 4 binary64)) #<representation binary64>) () ())) ())
#s(alt (pow x 4) (taylor -inf x) (#s(alt (pow.f64 x #s(literal 4 binary64)) (patch (pow.f64 x #s(literal 4 binary64)) #<representation binary64>) () ())) ())
Calls

3 calls:

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

simplify218.0ms (2.7%)

Memory
-10.6MiB live, 113.0MiB allocated
Algorithm
egg-herbie
Rules
10 130×lower-fma.f64
10 130×lower-fma.f32
3 178×lower-*.f64
3 178×lower-*.f32
1 448×times-frac
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
063832
1154832
2375832
31011832
42546832
55941832
08123772
Stop Event
iter limit
node limit
Counts
132 → 132
Calls
Call 1
Inputs
(* 1/2 (pow x 2))
(* (pow x 2) (+ 1/2 (* -1/24 (pow x 2))))
(* (pow x 2) (+ 1/2 (* (pow x 2) (- (* 1/720 (pow x 2)) 1/24))))
(* (pow x 2) (+ 1/2 (* (pow x 2) (- (* (pow x 2) (+ 1/720 (* -1/40320 (pow x 2)))) 1/24))))
(* 1/2 (pow x 2))
(* (pow x 2) (+ 1/2 (* -1/24 (pow x 2))))
(* (pow x 2) (+ 1/2 (* -1/24 (pow x 2))))
(* (pow x 2) (+ 1/2 (* -1/24 (pow x 2))))
(* 1/2 x)
(* x (+ 1/2 (* -1/24 (pow x 2))))
(* x (+ 1/2 (* -1/24 (pow x 2))))
(* x (+ 1/2 (* -1/24 (pow x 2))))
1/2
(+ 1/2 (* -1/24 (pow x 2)))
(+ 1/2 (* -1/24 (pow x 2)))
(+ 1/2 (* -1/24 (pow x 2)))
(* 1/2 (pow x 2))
(* (pow x 2) (+ 1/2 (* -1/24 (pow x 2))))
(* (pow x 2) (+ 1/2 (* (pow x 2) (- (* 1/720 (pow x 2)) 1/24))))
(* (pow x 2) (+ 1/2 (* (pow x 2) (- (* (pow x 2) (+ 1/720 (* -1/40320 (pow x 2)))) 1/24))))
(* 1/2 (pow x 2))
(* (pow x 2) (+ 1/2 (* -1/24 (pow x 2))))
(* (pow x 2) (+ 1/2 (* -1/24 (pow x 2))))
(* (pow x 2) (+ 1/2 (* -1/24 (pow x 2))))
(* 1/2 x)
(* 1/2 x)
(* 1/2 x)
(* 1/2 x)
(* -1/24 (pow x 4))
(* -1/24 (pow x 4))
(* -1/24 (pow x 4))
(* -1/24 (pow x 4))
2
(+ 2 (* -1/2 (pow x 2)))
(+ 2 (* (pow x 2) (- (* 1/24 (pow x 2)) 1/2)))
(+ 2 (* (pow x 2) (- (* (pow x 2) (+ 1/24 (* -1/720 (pow x 2)))) 1/2)))
1
(+ 1 (* -1/2 (pow x 2)))
(+ 1 (* (pow x 2) (- (* 1/24 (pow x 2)) 1/2)))
(+ 1 (* (pow x 2) (- (* (pow x 2) (+ 1/24 (* -1/720 (pow x 2)))) 1/2)))
(pow x 4)
(pow x 4)
(pow x 4)
(pow x 4)
(- 1 (cos x))
(- 1 (cos x))
(- 1 (cos x))
(- 1 (cos x))
(* -1/24 (pow x 4))
(* (pow x 4) (- (* 1/2 (/ 1 (pow x 2))) 1/24))
(* (pow x 4) (- (* 1/2 (/ 1 (pow x 2))) 1/24))
(* (pow x 4) (- (* 1/2 (/ 1 (pow x 2))) 1/24))
(* -1/24 (pow x 3))
(* (pow x 3) (- (* 1/2 (/ 1 (pow x 2))) 1/24))
(* (pow x 3) (- (* 1/2 (/ 1 (pow x 2))) 1/24))
(* (pow x 3) (- (* 1/2 (/ 1 (pow x 2))) 1/24))
(* -1/24 (pow x 2))
(* (pow x 2) (- (* 1/2 (/ 1 (pow x 2))) 1/24))
(* (pow x 2) (- (* 1/2 (/ 1 (pow x 2))) 1/24))
(* (pow x 2) (- (* 1/2 (/ 1 (pow x 2))) 1/24))
(- 1 (cos x))
(- 1 (cos x))
(- 1 (cos x))
(- 1 (cos x))
(* -1/24 (pow x 4))
(* (pow x 4) (- (* 1/2 (/ 1 (pow x 2))) 1/24))
(* (pow x 4) (- (* 1/2 (/ 1 (pow x 2))) 1/24))
(* (pow x 4) (- (* 1/2 (/ 1 (pow x 2))) 1/24))
(* 1/2 x)
(* 1/2 x)
(* 1/2 x)
(* 1/2 x)
(* -1/24 (pow x 4))
(* -1/24 (pow x 4))
(* -1/24 (pow x 4))
(* -1/24 (pow x 4))
(+ 1 (cos x))
(+ 1 (cos x))
(+ 1 (cos x))
(+ 1 (cos x))
(cos x)
(cos x)
(cos x)
(cos x)
(pow x 4)
(pow x 4)
(pow x 4)
(pow x 4)
(- 1 (cos x))
(- 1 (cos x))
(- 1 (cos x))
(- 1 (cos x))
(* -1/24 (pow x 4))
(* (pow x 4) (- (* 1/2 (/ 1 (pow x 2))) 1/24))
(* (pow x 4) (- (* 1/2 (/ 1 (pow x 2))) 1/24))
(* (pow x 4) (- (* 1/2 (/ 1 (pow x 2))) 1/24))
(* -1/24 (pow x 3))
(* -1 (* (pow x 3) (- 1/24 (* 1/2 (/ 1 (pow x 2))))))
(* -1 (* (pow x 3) (- 1/24 (* 1/2 (/ 1 (pow x 2))))))
(* -1 (* (pow x 3) (- 1/24 (* 1/2 (/ 1 (pow x 2))))))
(* -1/24 (pow x 2))
(* (pow x 2) (- (* 1/2 (/ 1 (pow x 2))) 1/24))
(* (pow x 2) (- (* 1/2 (/ 1 (pow x 2))) 1/24))
(* (pow x 2) (- (* 1/2 (/ 1 (pow x 2))) 1/24))
(- 1 (cos x))
(- 1 (cos x))
(- 1 (cos x))
(- 1 (cos x))
(* -1/24 (pow x 4))
(* (pow x 4) (- (* 1/2 (/ 1 (pow x 2))) 1/24))
(* (pow x 4) (- (* 1/2 (/ 1 (pow x 2))) 1/24))
(* (pow x 4) (- (* 1/2 (/ 1 (pow x 2))) 1/24))
(* 1/2 x)
(* 1/2 x)
(* 1/2 x)
(* 1/2 x)
(* -1/24 (pow x 4))
(* -1/24 (pow x 4))
(* -1/24 (pow x 4))
(* -1/24 (pow x 4))
(+ 1 (cos x))
(+ 1 (cos x))
(+ 1 (cos x))
(+ 1 (cos x))
(cos x)
(cos x)
(cos x)
(cos x)
(pow x 4)
(pow x 4)
(pow x 4)
(pow x 4)
Outputs
(* 1/2 (pow x 2))
(*.f64 (*.f64 x #s(literal 1/2 binary64)) x)
(* (pow x 2) (+ 1/2 (* -1/24 (pow x 2))))
(*.f64 (fma.f64 #s(literal -1/24 binary64) x (/.f64 #s(literal 1/2 binary64) x)) (pow.f64 x #s(literal 3 binary64)))
(* (pow x 2) (+ 1/2 (* (pow x 2) (- (* 1/720 (pow x 2)) 1/24))))
(*.f64 (*.f64 (fma.f64 (fma.f64 #s(literal 1/720 binary64) (*.f64 x x) #s(literal -1/24 binary64)) (*.f64 x x) #s(literal 1/2 binary64)) x) x)
(* (pow x 2) (+ 1/2 (* (pow x 2) (- (* (pow x 2) (+ 1/720 (* -1/40320 (pow x 2)))) 1/24))))
(*.f64 (*.f64 (fma.f64 (fma.f64 (fma.f64 #s(literal -1/40320 binary64) (*.f64 x x) #s(literal 1/720 binary64)) (*.f64 x x) #s(literal -1/24 binary64)) (*.f64 x x) #s(literal 1/2 binary64)) x) x)
(* 1/2 (pow x 2))
(*.f64 (*.f64 x #s(literal 1/2 binary64)) x)
(* (pow x 2) (+ 1/2 (* -1/24 (pow x 2))))
(*.f64 (fma.f64 #s(literal -1/24 binary64) x (/.f64 #s(literal 1/2 binary64) x)) (pow.f64 x #s(literal 3 binary64)))
(* (pow x 2) (+ 1/2 (* -1/24 (pow x 2))))
(*.f64 (fma.f64 #s(literal -1/24 binary64) x (/.f64 #s(literal 1/2 binary64) x)) (pow.f64 x #s(literal 3 binary64)))
(* (pow x 2) (+ 1/2 (* -1/24 (pow x 2))))
(*.f64 (fma.f64 #s(literal -1/24 binary64) x (/.f64 #s(literal 1/2 binary64) x)) (pow.f64 x #s(literal 3 binary64)))
(* 1/2 x)
(*.f64 x #s(literal 1/2 binary64))
(* x (+ 1/2 (* -1/24 (pow x 2))))
(*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x)
(* x (+ 1/2 (* -1/24 (pow x 2))))
(*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x)
(* x (+ 1/2 (* -1/24 (pow x 2))))
(*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x)
1/2
#s(literal 1/2 binary64)
(+ 1/2 (* -1/24 (pow x 2)))
(fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64))
(+ 1/2 (* -1/24 (pow x 2)))
(fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64))
(+ 1/2 (* -1/24 (pow x 2)))
(fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64))
(* 1/2 (pow x 2))
(*.f64 (*.f64 x #s(literal 1/2 binary64)) x)
(* (pow x 2) (+ 1/2 (* -1/24 (pow x 2))))
(*.f64 (fma.f64 #s(literal -1/24 binary64) x (/.f64 #s(literal 1/2 binary64) x)) (pow.f64 x #s(literal 3 binary64)))
(* (pow x 2) (+ 1/2 (* (pow x 2) (- (* 1/720 (pow x 2)) 1/24))))
(*.f64 (*.f64 (fma.f64 (fma.f64 #s(literal 1/720 binary64) (*.f64 x x) #s(literal -1/24 binary64)) (*.f64 x x) #s(literal 1/2 binary64)) x) x)
(* (pow x 2) (+ 1/2 (* (pow x 2) (- (* (pow x 2) (+ 1/720 (* -1/40320 (pow x 2)))) 1/24))))
(*.f64 (*.f64 (fma.f64 (fma.f64 (fma.f64 #s(literal -1/40320 binary64) (*.f64 x x) #s(literal 1/720 binary64)) (*.f64 x x) #s(literal -1/24 binary64)) (*.f64 x x) #s(literal 1/2 binary64)) x) x)
(* 1/2 (pow x 2))
(*.f64 (*.f64 x #s(literal 1/2 binary64)) x)
(* (pow x 2) (+ 1/2 (* -1/24 (pow x 2))))
(*.f64 (fma.f64 #s(literal -1/24 binary64) x (/.f64 #s(literal 1/2 binary64) x)) (pow.f64 x #s(literal 3 binary64)))
(* (pow x 2) (+ 1/2 (* -1/24 (pow x 2))))
(*.f64 (fma.f64 #s(literal -1/24 binary64) x (/.f64 #s(literal 1/2 binary64) x)) (pow.f64 x #s(literal 3 binary64)))
(* (pow x 2) (+ 1/2 (* -1/24 (pow x 2))))
(*.f64 (fma.f64 #s(literal -1/24 binary64) x (/.f64 #s(literal 1/2 binary64) x)) (pow.f64 x #s(literal 3 binary64)))
(* 1/2 x)
(*.f64 x #s(literal 1/2 binary64))
(* 1/2 x)
(*.f64 x #s(literal 1/2 binary64))
(* 1/2 x)
(*.f64 x #s(literal 1/2 binary64))
(* 1/2 x)
(*.f64 x #s(literal 1/2 binary64))
(* -1/24 (pow x 4))
(*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64))
(* -1/24 (pow x 4))
(*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64))
(* -1/24 (pow x 4))
(*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64))
(* -1/24 (pow x 4))
(*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64))
2
#s(literal 2 binary64)
(+ 2 (* -1/2 (pow x 2)))
(fma.f64 #s(literal -1/2 binary64) (*.f64 x x) #s(literal 2 binary64))
(+ 2 (* (pow x 2) (- (* 1/24 (pow x 2)) 1/2)))
(fma.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1/24 binary64) (fma.f64 #s(literal -1/2 binary64) (*.f64 x x) #s(literal 2 binary64)))
(+ 2 (* (pow x 2) (- (* (pow x 2) (+ 1/24 (* -1/720 (pow x 2)))) 1/2)))
(fma.f64 (fma.f64 (fma.f64 #s(literal -1/720 binary64) (*.f64 x x) #s(literal 1/24 binary64)) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 2 binary64))
1
#s(literal 1 binary64)
(+ 1 (* -1/2 (pow x 2)))
(fma.f64 #s(literal -1/2 binary64) (*.f64 x x) #s(literal 1 binary64))
(+ 1 (* (pow x 2) (- (* 1/24 (pow x 2)) 1/2)))
(fma.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1/24 binary64) (fma.f64 #s(literal -1/2 binary64) (*.f64 x x) #s(literal 1 binary64)))
(+ 1 (* (pow x 2) (- (* (pow x 2) (+ 1/24 (* -1/720 (pow x 2)))) 1/2)))
(fma.f64 (fma.f64 (fma.f64 #s(literal -1/720 binary64) (*.f64 x x) #s(literal 1/24 binary64)) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))
(pow x 4)
(pow.f64 x #s(literal 4 binary64))
(pow x 4)
(pow.f64 x #s(literal 4 binary64))
(pow x 4)
(pow.f64 x #s(literal 4 binary64))
(pow x 4)
(pow.f64 x #s(literal 4 binary64))
(- 1 (cos x))
(-.f64 #s(literal 1 binary64) (cos.f64 x))
(- 1 (cos x))
(-.f64 #s(literal 1 binary64) (cos.f64 x))
(- 1 (cos x))
(-.f64 #s(literal 1 binary64) (cos.f64 x))
(- 1 (cos x))
(-.f64 #s(literal 1 binary64) (cos.f64 x))
(* -1/24 (pow x 4))
(*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64))
(* (pow x 4) (- (* 1/2 (/ 1 (pow x 2))) 1/24))
(*.f64 (fma.f64 #s(literal -1/24 binary64) x (/.f64 #s(literal 1/2 binary64) x)) (pow.f64 x #s(literal 3 binary64)))
(* (pow x 4) (- (* 1/2 (/ 1 (pow x 2))) 1/24))
(*.f64 (fma.f64 #s(literal -1/24 binary64) x (/.f64 #s(literal 1/2 binary64) x)) (pow.f64 x #s(literal 3 binary64)))
(* (pow x 4) (- (* 1/2 (/ 1 (pow x 2))) 1/24))
(*.f64 (fma.f64 #s(literal -1/24 binary64) x (/.f64 #s(literal 1/2 binary64) x)) (pow.f64 x #s(literal 3 binary64)))
(* -1/24 (pow x 3))
(*.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/24 binary64))
(* (pow x 3) (- (* 1/2 (/ 1 (pow x 2))) 1/24))
(*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x)
(* (pow x 3) (- (* 1/2 (/ 1 (pow x 2))) 1/24))
(*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x)
(* (pow x 3) (- (* 1/2 (/ 1 (pow x 2))) 1/24))
(*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x)
(* -1/24 (pow x 2))
(*.f64 #s(literal -1/24 binary64) (*.f64 x x))
(* (pow x 2) (- (* 1/2 (/ 1 (pow x 2))) 1/24))
(fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64))
(* (pow x 2) (- (* 1/2 (/ 1 (pow x 2))) 1/24))
(fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64))
(* (pow x 2) (- (* 1/2 (/ 1 (pow x 2))) 1/24))
(fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64))
(- 1 (cos x))
(-.f64 #s(literal 1 binary64) (cos.f64 x))
(- 1 (cos x))
(-.f64 #s(literal 1 binary64) (cos.f64 x))
(- 1 (cos x))
(-.f64 #s(literal 1 binary64) (cos.f64 x))
(- 1 (cos x))
(-.f64 #s(literal 1 binary64) (cos.f64 x))
(* -1/24 (pow x 4))
(*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64))
(* (pow x 4) (- (* 1/2 (/ 1 (pow x 2))) 1/24))
(*.f64 (fma.f64 #s(literal -1/24 binary64) x (/.f64 #s(literal 1/2 binary64) x)) (pow.f64 x #s(literal 3 binary64)))
(* (pow x 4) (- (* 1/2 (/ 1 (pow x 2))) 1/24))
(*.f64 (fma.f64 #s(literal -1/24 binary64) x (/.f64 #s(literal 1/2 binary64) x)) (pow.f64 x #s(literal 3 binary64)))
(* (pow x 4) (- (* 1/2 (/ 1 (pow x 2))) 1/24))
(*.f64 (fma.f64 #s(literal -1/24 binary64) x (/.f64 #s(literal 1/2 binary64) x)) (pow.f64 x #s(literal 3 binary64)))
(* 1/2 x)
(*.f64 x #s(literal 1/2 binary64))
(* 1/2 x)
(*.f64 x #s(literal 1/2 binary64))
(* 1/2 x)
(*.f64 x #s(literal 1/2 binary64))
(* 1/2 x)
(*.f64 x #s(literal 1/2 binary64))
(* -1/24 (pow x 4))
(*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64))
(* -1/24 (pow x 4))
(*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64))
(* -1/24 (pow x 4))
(*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64))
(* -1/24 (pow x 4))
(*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64))
(+ 1 (cos x))
(+.f64 (cos.f64 x) #s(literal 1 binary64))
(+ 1 (cos x))
(+.f64 (cos.f64 x) #s(literal 1 binary64))
(+ 1 (cos x))
(+.f64 (cos.f64 x) #s(literal 1 binary64))
(+ 1 (cos x))
(+.f64 (cos.f64 x) #s(literal 1 binary64))
(cos x)
(cos.f64 x)
(cos x)
(cos.f64 x)
(cos x)
(cos.f64 x)
(cos x)
(cos.f64 x)
(pow x 4)
(pow.f64 x #s(literal 4 binary64))
(pow x 4)
(pow.f64 x #s(literal 4 binary64))
(pow x 4)
(pow.f64 x #s(literal 4 binary64))
(pow x 4)
(pow.f64 x #s(literal 4 binary64))
(- 1 (cos x))
(-.f64 #s(literal 1 binary64) (cos.f64 x))
(- 1 (cos x))
(-.f64 #s(literal 1 binary64) (cos.f64 x))
(- 1 (cos x))
(-.f64 #s(literal 1 binary64) (cos.f64 x))
(- 1 (cos x))
(-.f64 #s(literal 1 binary64) (cos.f64 x))
(* -1/24 (pow x 4))
(*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64))
(* (pow x 4) (- (* 1/2 (/ 1 (pow x 2))) 1/24))
(*.f64 (fma.f64 #s(literal -1/24 binary64) x (/.f64 #s(literal 1/2 binary64) x)) (pow.f64 x #s(literal 3 binary64)))
(* (pow x 4) (- (* 1/2 (/ 1 (pow x 2))) 1/24))
(*.f64 (fma.f64 #s(literal -1/24 binary64) x (/.f64 #s(literal 1/2 binary64) x)) (pow.f64 x #s(literal 3 binary64)))
(* (pow x 4) (- (* 1/2 (/ 1 (pow x 2))) 1/24))
(*.f64 (fma.f64 #s(literal -1/24 binary64) x (/.f64 #s(literal 1/2 binary64) x)) (pow.f64 x #s(literal 3 binary64)))
(* -1/24 (pow x 3))
(*.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/24 binary64))
(* -1 (* (pow x 3) (- 1/24 (* 1/2 (/ 1 (pow x 2))))))
(*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x)
(* -1 (* (pow x 3) (- 1/24 (* 1/2 (/ 1 (pow x 2))))))
(*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x)
(* -1 (* (pow x 3) (- 1/24 (* 1/2 (/ 1 (pow x 2))))))
(*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x)
(* -1/24 (pow x 2))
(*.f64 #s(literal -1/24 binary64) (*.f64 x x))
(* (pow x 2) (- (* 1/2 (/ 1 (pow x 2))) 1/24))
(fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64))
(* (pow x 2) (- (* 1/2 (/ 1 (pow x 2))) 1/24))
(fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64))
(* (pow x 2) (- (* 1/2 (/ 1 (pow x 2))) 1/24))
(fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64))
(- 1 (cos x))
(-.f64 #s(literal 1 binary64) (cos.f64 x))
(- 1 (cos x))
(-.f64 #s(literal 1 binary64) (cos.f64 x))
(- 1 (cos x))
(-.f64 #s(literal 1 binary64) (cos.f64 x))
(- 1 (cos x))
(-.f64 #s(literal 1 binary64) (cos.f64 x))
(* -1/24 (pow x 4))
(*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64))
(* (pow x 4) (- (* 1/2 (/ 1 (pow x 2))) 1/24))
(*.f64 (fma.f64 #s(literal -1/24 binary64) x (/.f64 #s(literal 1/2 binary64) x)) (pow.f64 x #s(literal 3 binary64)))
(* (pow x 4) (- (* 1/2 (/ 1 (pow x 2))) 1/24))
(*.f64 (fma.f64 #s(literal -1/24 binary64) x (/.f64 #s(literal 1/2 binary64) x)) (pow.f64 x #s(literal 3 binary64)))
(* (pow x 4) (- (* 1/2 (/ 1 (pow x 2))) 1/24))
(*.f64 (fma.f64 #s(literal -1/24 binary64) x (/.f64 #s(literal 1/2 binary64) x)) (pow.f64 x #s(literal 3 binary64)))
(* 1/2 x)
(*.f64 x #s(literal 1/2 binary64))
(* 1/2 x)
(*.f64 x #s(literal 1/2 binary64))
(* 1/2 x)
(*.f64 x #s(literal 1/2 binary64))
(* 1/2 x)
(*.f64 x #s(literal 1/2 binary64))
(* -1/24 (pow x 4))
(*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64))
(* -1/24 (pow x 4))
(*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64))
(* -1/24 (pow x 4))
(*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64))
(* -1/24 (pow x 4))
(*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64))
(+ 1 (cos x))
(+.f64 (cos.f64 x) #s(literal 1 binary64))
(+ 1 (cos x))
(+.f64 (cos.f64 x) #s(literal 1 binary64))
(+ 1 (cos x))
(+.f64 (cos.f64 x) #s(literal 1 binary64))
(+ 1 (cos x))
(+.f64 (cos.f64 x) #s(literal 1 binary64))
(cos x)
(cos.f64 x)
(cos x)
(cos.f64 x)
(cos x)
(cos.f64 x)
(cos x)
(cos.f64 x)
(pow x 4)
(pow.f64 x #s(literal 4 binary64))
(pow x 4)
(pow.f64 x #s(literal 4 binary64))
(pow x 4)
(pow.f64 x #s(literal 4 binary64))
(pow x 4)
(pow.f64 x #s(literal 4 binary64))

rewrite183.0ms (2.2%)

Memory
47.3MiB live, 269.2MiB allocated
Rules
7 608×lower-fma.f32
7 606×lower-fma.f64
4 772×lower-*.f32
4 764×lower-*.f64
2 106×lower-/.f64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02197
02997
110297
261797
3553497
0836693
Stop Event
iter limit
node limit
iter limit
Counts
11 → 189
Calls
Call 1
Inputs
#s(approx (- 1 (cos x)) (*.f64 (*.f64 #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) x) x))
(*.f64 (*.f64 #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) x) x)
(*.f64 #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) x)
#s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64))
#s(approx (- 1 (cos x)) (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64))))
(fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64)))
(*.f64 #s(literal 1/2 binary64) x)
(*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64))
(+.f64 #s(approx (cos x) #s(literal 1 binary64)) #s(literal 1 binary64))
#s(approx (cos x) #s(literal 1 binary64))
(pow.f64 x #s(literal 4 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>

eval61.0ms (0.7%)

Memory
-17.8MiB live, 85.9MiB allocated
Compiler

Compiled 5 441 to 724 computations (86.7% saved)

prune9.0ms (0.1%)

Memory
-10.0MiB live, 26.1MiB allocated
Pruning

5 alts after pruning (2 fresh and 3 done)

PrunedKeptTotal
New3192321
Fresh000
Picked213
Done022
Total3215326
Accuracy
100.0%
Counts
326 → 5
Alt Table
Click to see full alt table
StatusAccuracyProgram
52.2%
(-.f64 #s(literal 1 binary64) #s(approx (cos x) #s(literal 1 binary64)))
100.0%
#s(approx (- 1 (cos x)) (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) #s(literal -1/24 binary64))))
100.0%
#s(approx (- 1 (cos x)) (*.f64 (*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x) x))
99.6%
#s(approx (- 1 (cos x)) (*.f64 (*.f64 #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) x) x))
4.3%
#s(approx (+ (cos x) 1) #s(literal 2 binary64))
Compiler

Compiled 39 to 30 computations (23.1% saved)

simplify7.0ms (0.1%)

Memory
12.8MiB live, 12.9MiB allocated
Algorithm
egg-herbie
Localize:

Found 5 expressions of interest:

NewMetricScoreProgram
cost-diff0
(*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) #s(literal -1/24 binary64))
cost-diff0
(*.f64 #s(literal 1/2 binary64) x)
cost-diff0
(fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) #s(literal -1/24 binary64)))
cost-diff0
#s(approx (- 1 (cos x)) (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) #s(literal -1/24 binary64))))
cost-diff0
#s(approx (+ (cos x) 1) #s(literal 2 binary64))
Rules
84×lower-*.f32
76×lower-*.f64
60×lower-fma.f32
58×lower-fma.f64
44×lower-+.f64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01565
02165
13757
26149
39649
410749
511849
612849
714249
814649
014649
Stop Event
iter limit
saturated
iter limit
Calls
Call 1
Inputs
#s(approx (+ (cos x) 1) #s(literal 2 binary64))
#s(literal 2 binary64)
#s(approx (- 1 (cos x)) (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) #s(literal -1/24 binary64))))
(fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) #s(literal -1/24 binary64)))
(*.f64 #s(literal 1/2 binary64) x)
#s(literal 1/2 binary64)
x
(*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) #s(literal -1/24 binary64))
(*.f64 (*.f64 x x) (*.f64 x x))
(*.f64 x x)
#s(literal -1/24 binary64)
Outputs
#s(approx (+ (cos x) 1) #s(literal 2 binary64))
#s(literal 2 binary64)
#s(approx (- 1 (cos x)) (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) #s(literal -1/24 binary64))))
#s(approx (- 1 (cos x)) (fma.f64 (*.f64 x x) #s(literal 1/2 binary64) (*.f64 #s(literal -1/24 binary64) (pow.f64 x #s(literal 4 binary64)))))
(fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) #s(literal -1/24 binary64)))
(fma.f64 (*.f64 x x) #s(literal 1/2 binary64) (*.f64 #s(literal -1/24 binary64) (pow.f64 x #s(literal 4 binary64))))
(*.f64 #s(literal 1/2 binary64) x)
#s(literal 1/2 binary64)
x
(*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) #s(literal -1/24 binary64))
(*.f64 #s(literal -1/24 binary64) (pow.f64 x #s(literal 4 binary64)))
(*.f64 (*.f64 x x) (*.f64 x x))
(pow.f64 x #s(literal 4 binary64))
(*.f64 x x)
#s(literal -1/24 binary64)

localize188.0ms (2.3%)

Memory
-15.0MiB live, 223.0MiB allocated
Localize:

Found 5 expressions of interest:

NewMetricScoreProgram
accuracy0
(*.f64 #s(literal 1/2 binary64) x)
accuracy0
#s(approx (- 1 (cos x)) (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) #s(literal -1/24 binary64))))
accuracy0.109375
(*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) #s(literal -1/24 binary64))
accuracy0.14128876953688402
(*.f64 (*.f64 x x) (*.f64 x x))
accuracy0.29212771239422625
#s(approx (+ (cos x) 1) #s(literal 2 binary64))
Samples
163.0ms174×2valid
14.0ms80×1valid
0.0ms0valid
Compiler

Compiled 51 to 16 computations (68.6% saved)

Precisions
Click to see histograms. Total time spent on operations: 147.0ms
ival-cos: 98.0ms (66.6% of total)
ival-mult: 24.0ms (16.3% of total)
adjust: 10.0ms (6.8% of total)
ival-add: 5.0ms (3.4% of total)
const: 5.0ms (3.4% of total)
ival-sub: 3.0ms (2% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)

series5.0ms (0.1%)

Memory
11.6MiB live, 11.6MiB allocated
Counts
6 → 72
Calls
Call 1
Inputs
#s(alt #s(approx (+ (cos x) 1) #s(literal 2 binary64)) (patch #s(approx (+ (cos x) 1) #s(literal 2 binary64)) #<representation binary64>) () ())
#s(alt #s(approx (- 1 (cos x)) (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) #s(literal -1/24 binary64)))) (patch #s(approx (- 1 (cos x)) (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) #s(literal -1/24 binary64)))) #<representation binary64>) () ())
#s(alt (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) #s(literal -1/24 binary64))) (patch (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) #s(literal -1/24 binary64))) #<representation binary64>) () ())
#s(alt (*.f64 #s(literal 1/2 binary64) x) (patch (*.f64 #s(literal 1/2 binary64) x) #<representation binary64>) () ())
#s(alt (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) #s(literal -1/24 binary64)) (patch (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) #s(literal -1/24 binary64)) #<representation binary64>) () ())
#s(alt (*.f64 (*.f64 x x) (*.f64 x x)) (patch (*.f64 (*.f64 x x) (*.f64 x x)) #<representation binary64>) () ())
Outputs
#s(alt 2 (taylor 0 x) (#s(alt #s(approx (+ (cos x) 1) #s(literal 2 binary64)) (patch #s(approx (+ (cos x) 1) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt (+ 2 (* -1/2 (pow x 2))) (taylor 0 x) (#s(alt #s(approx (+ (cos x) 1) #s(literal 2 binary64)) (patch #s(approx (+ (cos x) 1) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt (+ 2 (* (pow x 2) (- (* 1/24 (pow x 2)) 1/2))) (taylor 0 x) (#s(alt #s(approx (+ (cos x) 1) #s(literal 2 binary64)) (patch #s(approx (+ (cos x) 1) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt (+ 2 (* (pow x 2) (- (* (pow x 2) (+ 1/24 (* -1/720 (pow x 2)))) 1/2))) (taylor 0 x) (#s(alt #s(approx (+ (cos x) 1) #s(literal 2 binary64)) (patch #s(approx (+ (cos x) 1) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (pow x 2)) (taylor 0 x) (#s(alt #s(approx (- 1 (cos x)) (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) #s(literal -1/24 binary64)))) (patch #s(approx (- 1 (cos x)) (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) #s(literal -1/24 binary64)))) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1/2 (* -1/24 (pow x 2)))) (taylor 0 x) (#s(alt #s(approx (- 1 (cos x)) (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) #s(literal -1/24 binary64)))) (patch #s(approx (- 1 (cos x)) (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) #s(literal -1/24 binary64)))) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1/2 (* (pow x 2) (- (* 1/720 (pow x 2)) 1/24)))) (taylor 0 x) (#s(alt #s(approx (- 1 (cos x)) (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) #s(literal -1/24 binary64)))) (patch #s(approx (- 1 (cos x)) (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) #s(literal -1/24 binary64)))) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1/2 (* (pow x 2) (- (* (pow x 2) (+ 1/720 (* -1/40320 (pow x 2)))) 1/24)))) (taylor 0 x) (#s(alt #s(approx (- 1 (cos x)) (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) #s(literal -1/24 binary64)))) (patch #s(approx (- 1 (cos x)) (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) #s(literal -1/24 binary64)))) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (pow x 2)) (taylor 0 x) (#s(alt (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) #s(literal -1/24 binary64))) (patch (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) #s(literal -1/24 binary64))) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1/2 (* -1/24 (pow x 2)))) (taylor 0 x) (#s(alt (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) #s(literal -1/24 binary64))) (patch (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) #s(literal -1/24 binary64))) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1/2 (* -1/24 (pow x 2)))) (taylor 0 x) (#s(alt (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) #s(literal -1/24 binary64))) (patch (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) #s(literal -1/24 binary64))) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1/2 (* -1/24 (pow x 2)))) (taylor 0 x) (#s(alt (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) #s(literal -1/24 binary64))) (patch (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) #s(literal -1/24 binary64))) #<representation binary64>) () ())) ())
#s(alt (* 1/2 x) (taylor 0 x) (#s(alt (*.f64 #s(literal 1/2 binary64) x) (patch (*.f64 #s(literal 1/2 binary64) x) #<representation binary64>) () ())) ())
#s(alt (* 1/2 x) (taylor 0 x) (#s(alt (*.f64 #s(literal 1/2 binary64) x) (patch (*.f64 #s(literal 1/2 binary64) x) #<representation binary64>) () ())) ())
#s(alt (* 1/2 x) (taylor 0 x) (#s(alt (*.f64 #s(literal 1/2 binary64) x) (patch (*.f64 #s(literal 1/2 binary64) x) #<representation binary64>) () ())) ())
#s(alt (* 1/2 x) (taylor 0 x) (#s(alt (*.f64 #s(literal 1/2 binary64) x) (patch (*.f64 #s(literal 1/2 binary64) x) #<representation binary64>) () ())) ())
#s(alt (* -1/24 (pow x 4)) (taylor 0 x) (#s(alt (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) #s(literal -1/24 binary64)) (patch (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) #s(literal -1/24 binary64)) #<representation binary64>) () ())) ())
#s(alt (* -1/24 (pow x 4)) (taylor 0 x) (#s(alt (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) #s(literal -1/24 binary64)) (patch (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) #s(literal -1/24 binary64)) #<representation binary64>) () ())) ())
#s(alt (* -1/24 (pow x 4)) (taylor 0 x) (#s(alt (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) #s(literal -1/24 binary64)) (patch (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) #s(literal -1/24 binary64)) #<representation binary64>) () ())) ())
#s(alt (* -1/24 (pow x 4)) (taylor 0 x) (#s(alt (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) #s(literal -1/24 binary64)) (patch (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) #s(literal -1/24 binary64)) #<representation binary64>) () ())) ())
#s(alt (pow x 4) (taylor 0 x) (#s(alt (*.f64 (*.f64 x x) (*.f64 x x)) (patch (*.f64 (*.f64 x x) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (pow x 4) (taylor 0 x) (#s(alt (*.f64 (*.f64 x x) (*.f64 x x)) (patch (*.f64 (*.f64 x x) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (pow x 4) (taylor 0 x) (#s(alt (*.f64 (*.f64 x x) (*.f64 x x)) (patch (*.f64 (*.f64 x x) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (pow x 4) (taylor 0 x) (#s(alt (*.f64 (*.f64 x x) (*.f64 x x)) (patch (*.f64 (*.f64 x x) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (+ 1 (cos x)) (taylor inf x) (#s(alt #s(approx (+ (cos x) 1) #s(literal 2 binary64)) (patch #s(approx (+ (cos x) 1) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt (+ 1 (cos x)) (taylor inf x) (#s(alt #s(approx (+ (cos x) 1) #s(literal 2 binary64)) (patch #s(approx (+ (cos x) 1) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt (+ 1 (cos x)) (taylor inf x) (#s(alt #s(approx (+ (cos x) 1) #s(literal 2 binary64)) (patch #s(approx (+ (cos x) 1) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt (+ 1 (cos x)) (taylor inf x) (#s(alt #s(approx (+ (cos x) 1) #s(literal 2 binary64)) (patch #s(approx (+ (cos x) 1) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt (- 1 (cos x)) (taylor inf x) (#s(alt #s(approx (- 1 (cos x)) (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) #s(literal -1/24 binary64)))) (patch #s(approx (- 1 (cos x)) (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) #s(literal -1/24 binary64)))) #<representation binary64>) () ())) ())
#s(alt (- 1 (cos x)) (taylor inf x) (#s(alt #s(approx (- 1 (cos x)) (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) #s(literal -1/24 binary64)))) (patch #s(approx (- 1 (cos x)) (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) #s(literal -1/24 binary64)))) #<representation binary64>) () ())) ())
#s(alt (- 1 (cos x)) (taylor inf x) (#s(alt #s(approx (- 1 (cos x)) (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) #s(literal -1/24 binary64)))) (patch #s(approx (- 1 (cos x)) (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) #s(literal -1/24 binary64)))) #<representation binary64>) () ())) ())
#s(alt (- 1 (cos x)) (taylor inf x) (#s(alt #s(approx (- 1 (cos x)) (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) #s(literal -1/24 binary64)))) (patch #s(approx (- 1 (cos x)) (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) #s(literal -1/24 binary64)))) #<representation binary64>) () ())) ())
#s(alt (* -1/24 (pow x 4)) (taylor inf x) (#s(alt (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) #s(literal -1/24 binary64))) (patch (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) #s(literal -1/24 binary64))) #<representation binary64>) () ())) ())
#s(alt (* (pow x 4) (- (* 1/2 (/ 1 (pow x 2))) 1/24)) (taylor inf x) (#s(alt (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) #s(literal -1/24 binary64))) (patch (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) #s(literal -1/24 binary64))) #<representation binary64>) () ())) ())
#s(alt (* (pow x 4) (- (* 1/2 (/ 1 (pow x 2))) 1/24)) (taylor inf x) (#s(alt (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) #s(literal -1/24 binary64))) (patch (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) #s(literal -1/24 binary64))) #<representation binary64>) () ())) ())
#s(alt (* (pow x 4) (- (* 1/2 (/ 1 (pow x 2))) 1/24)) (taylor inf x) (#s(alt (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) #s(literal -1/24 binary64))) (patch (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) #s(literal -1/24 binary64))) #<representation binary64>) () ())) ())
#s(alt (* 1/2 x) (taylor inf x) (#s(alt (*.f64 #s(literal 1/2 binary64) x) (patch (*.f64 #s(literal 1/2 binary64) x) #<representation binary64>) () ())) ())
#s(alt (* 1/2 x) (taylor inf x) (#s(alt (*.f64 #s(literal 1/2 binary64) x) (patch (*.f64 #s(literal 1/2 binary64) x) #<representation binary64>) () ())) ())
#s(alt (* 1/2 x) (taylor inf x) (#s(alt (*.f64 #s(literal 1/2 binary64) x) (patch (*.f64 #s(literal 1/2 binary64) x) #<representation binary64>) () ())) ())
#s(alt (* 1/2 x) (taylor inf x) (#s(alt (*.f64 #s(literal 1/2 binary64) x) (patch (*.f64 #s(literal 1/2 binary64) x) #<representation binary64>) () ())) ())
#s(alt (* -1/24 (pow x 4)) (taylor inf x) (#s(alt (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) #s(literal -1/24 binary64)) (patch (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) #s(literal -1/24 binary64)) #<representation binary64>) () ())) ())
#s(alt (* -1/24 (pow x 4)) (taylor inf x) (#s(alt (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) #s(literal -1/24 binary64)) (patch (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) #s(literal -1/24 binary64)) #<representation binary64>) () ())) ())
#s(alt (* -1/24 (pow x 4)) (taylor inf x) (#s(alt (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) #s(literal -1/24 binary64)) (patch (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) #s(literal -1/24 binary64)) #<representation binary64>) () ())) ())
#s(alt (* -1/24 (pow x 4)) (taylor inf x) (#s(alt (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) #s(literal -1/24 binary64)) (patch (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) #s(literal -1/24 binary64)) #<representation binary64>) () ())) ())
#s(alt (pow x 4) (taylor inf x) (#s(alt (*.f64 (*.f64 x x) (*.f64 x x)) (patch (*.f64 (*.f64 x x) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (pow x 4) (taylor inf x) (#s(alt (*.f64 (*.f64 x x) (*.f64 x x)) (patch (*.f64 (*.f64 x x) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (pow x 4) (taylor inf x) (#s(alt (*.f64 (*.f64 x x) (*.f64 x x)) (patch (*.f64 (*.f64 x x) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (pow x 4) (taylor inf x) (#s(alt (*.f64 (*.f64 x x) (*.f64 x x)) (patch (*.f64 (*.f64 x x) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (+ 1 (cos x)) (taylor -inf x) (#s(alt #s(approx (+ (cos x) 1) #s(literal 2 binary64)) (patch #s(approx (+ (cos x) 1) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt (+ 1 (cos x)) (taylor -inf x) (#s(alt #s(approx (+ (cos x) 1) #s(literal 2 binary64)) (patch #s(approx (+ (cos x) 1) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt (+ 1 (cos x)) (taylor -inf x) (#s(alt #s(approx (+ (cos x) 1) #s(literal 2 binary64)) (patch #s(approx (+ (cos x) 1) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt (+ 1 (cos x)) (taylor -inf x) (#s(alt #s(approx (+ (cos x) 1) #s(literal 2 binary64)) (patch #s(approx (+ (cos x) 1) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt (- 1 (cos x)) (taylor -inf x) (#s(alt #s(approx (- 1 (cos x)) (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) #s(literal -1/24 binary64)))) (patch #s(approx (- 1 (cos x)) (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) #s(literal -1/24 binary64)))) #<representation binary64>) () ())) ())
#s(alt (- 1 (cos x)) (taylor -inf x) (#s(alt #s(approx (- 1 (cos x)) (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) #s(literal -1/24 binary64)))) (patch #s(approx (- 1 (cos x)) (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) #s(literal -1/24 binary64)))) #<representation binary64>) () ())) ())
#s(alt (- 1 (cos x)) (taylor -inf x) (#s(alt #s(approx (- 1 (cos x)) (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) #s(literal -1/24 binary64)))) (patch #s(approx (- 1 (cos x)) (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) #s(literal -1/24 binary64)))) #<representation binary64>) () ())) ())
#s(alt (- 1 (cos x)) (taylor -inf x) (#s(alt #s(approx (- 1 (cos x)) (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) #s(literal -1/24 binary64)))) (patch #s(approx (- 1 (cos x)) (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) #s(literal -1/24 binary64)))) #<representation binary64>) () ())) ())
#s(alt (* -1/24 (pow x 4)) (taylor -inf x) (#s(alt (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) #s(literal -1/24 binary64))) (patch (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) #s(literal -1/24 binary64))) #<representation binary64>) () ())) ())
#s(alt (* (pow x 4) (- (* 1/2 (/ 1 (pow x 2))) 1/24)) (taylor -inf x) (#s(alt (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) #s(literal -1/24 binary64))) (patch (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) #s(literal -1/24 binary64))) #<representation binary64>) () ())) ())
#s(alt (* (pow x 4) (- (* 1/2 (/ 1 (pow x 2))) 1/24)) (taylor -inf x) (#s(alt (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) #s(literal -1/24 binary64))) (patch (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) #s(literal -1/24 binary64))) #<representation binary64>) () ())) ())
#s(alt (* (pow x 4) (- (* 1/2 (/ 1 (pow x 2))) 1/24)) (taylor -inf x) (#s(alt (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) #s(literal -1/24 binary64))) (patch (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) #s(literal -1/24 binary64))) #<representation binary64>) () ())) ())
#s(alt (* 1/2 x) (taylor -inf x) (#s(alt (*.f64 #s(literal 1/2 binary64) x) (patch (*.f64 #s(literal 1/2 binary64) x) #<representation binary64>) () ())) ())
#s(alt (* 1/2 x) (taylor -inf x) (#s(alt (*.f64 #s(literal 1/2 binary64) x) (patch (*.f64 #s(literal 1/2 binary64) x) #<representation binary64>) () ())) ())
#s(alt (* 1/2 x) (taylor -inf x) (#s(alt (*.f64 #s(literal 1/2 binary64) x) (patch (*.f64 #s(literal 1/2 binary64) x) #<representation binary64>) () ())) ())
#s(alt (* 1/2 x) (taylor -inf x) (#s(alt (*.f64 #s(literal 1/2 binary64) x) (patch (*.f64 #s(literal 1/2 binary64) x) #<representation binary64>) () ())) ())
#s(alt (* -1/24 (pow x 4)) (taylor -inf x) (#s(alt (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) #s(literal -1/24 binary64)) (patch (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) #s(literal -1/24 binary64)) #<representation binary64>) () ())) ())
#s(alt (* -1/24 (pow x 4)) (taylor -inf x) (#s(alt (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) #s(literal -1/24 binary64)) (patch (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) #s(literal -1/24 binary64)) #<representation binary64>) () ())) ())
#s(alt (* -1/24 (pow x 4)) (taylor -inf x) (#s(alt (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) #s(literal -1/24 binary64)) (patch (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) #s(literal -1/24 binary64)) #<representation binary64>) () ())) ())
#s(alt (* -1/24 (pow x 4)) (taylor -inf x) (#s(alt (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) #s(literal -1/24 binary64)) (patch (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) #s(literal -1/24 binary64)) #<representation binary64>) () ())) ())
#s(alt (pow x 4) (taylor -inf x) (#s(alt (*.f64 (*.f64 x x) (*.f64 x x)) (patch (*.f64 (*.f64 x x) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (pow x 4) (taylor -inf x) (#s(alt (*.f64 (*.f64 x x) (*.f64 x x)) (patch (*.f64 (*.f64 x x) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (pow x 4) (taylor -inf x) (#s(alt (*.f64 (*.f64 x x) (*.f64 x x)) (patch (*.f64 (*.f64 x x) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (pow x 4) (taylor -inf x) (#s(alt (*.f64 (*.f64 x x) (*.f64 x x)) (patch (*.f64 (*.f64 x x) (*.f64 x x)) #<representation binary64>) () ())) ())
Calls

3 calls:

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

simplify138.0ms (1.7%)

Memory
9.9MiB live, 168.4MiB allocated
Algorithm
egg-herbie
Rules
10 310×lower-fma.f64
10 310×lower-fma.f32
4 134×lower-*.f64
4 134×lower-*.f32
2 360×lower-/.f32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
050406
1118406
2271406
3629406
41377406
52340406
63012406
75788406
08179385
Stop Event
iter limit
node limit
Counts
72 → 72
Calls
Call 1
Inputs
2
(+ 2 (* -1/2 (pow x 2)))
(+ 2 (* (pow x 2) (- (* 1/24 (pow x 2)) 1/2)))
(+ 2 (* (pow x 2) (- (* (pow x 2) (+ 1/24 (* -1/720 (pow x 2)))) 1/2)))
(* 1/2 (pow x 2))
(* (pow x 2) (+ 1/2 (* -1/24 (pow x 2))))
(* (pow x 2) (+ 1/2 (* (pow x 2) (- (* 1/720 (pow x 2)) 1/24))))
(* (pow x 2) (+ 1/2 (* (pow x 2) (- (* (pow x 2) (+ 1/720 (* -1/40320 (pow x 2)))) 1/24))))
(* 1/2 (pow x 2))
(* (pow x 2) (+ 1/2 (* -1/24 (pow x 2))))
(* (pow x 2) (+ 1/2 (* -1/24 (pow x 2))))
(* (pow x 2) (+ 1/2 (* -1/24 (pow x 2))))
(* 1/2 x)
(* 1/2 x)
(* 1/2 x)
(* 1/2 x)
(* -1/24 (pow x 4))
(* -1/24 (pow x 4))
(* -1/24 (pow x 4))
(* -1/24 (pow x 4))
(pow x 4)
(pow x 4)
(pow x 4)
(pow x 4)
(+ 1 (cos x))
(+ 1 (cos x))
(+ 1 (cos x))
(+ 1 (cos x))
(- 1 (cos x))
(- 1 (cos x))
(- 1 (cos x))
(- 1 (cos x))
(* -1/24 (pow x 4))
(* (pow x 4) (- (* 1/2 (/ 1 (pow x 2))) 1/24))
(* (pow x 4) (- (* 1/2 (/ 1 (pow x 2))) 1/24))
(* (pow x 4) (- (* 1/2 (/ 1 (pow x 2))) 1/24))
(* 1/2 x)
(* 1/2 x)
(* 1/2 x)
(* 1/2 x)
(* -1/24 (pow x 4))
(* -1/24 (pow x 4))
(* -1/24 (pow x 4))
(* -1/24 (pow x 4))
(pow x 4)
(pow x 4)
(pow x 4)
(pow x 4)
(+ 1 (cos x))
(+ 1 (cos x))
(+ 1 (cos x))
(+ 1 (cos x))
(- 1 (cos x))
(- 1 (cos x))
(- 1 (cos x))
(- 1 (cos x))
(* -1/24 (pow x 4))
(* (pow x 4) (- (* 1/2 (/ 1 (pow x 2))) 1/24))
(* (pow x 4) (- (* 1/2 (/ 1 (pow x 2))) 1/24))
(* (pow x 4) (- (* 1/2 (/ 1 (pow x 2))) 1/24))
(* 1/2 x)
(* 1/2 x)
(* 1/2 x)
(* 1/2 x)
(* -1/24 (pow x 4))
(* -1/24 (pow x 4))
(* -1/24 (pow x 4))
(* -1/24 (pow x 4))
(pow x 4)
(pow x 4)
(pow x 4)
(pow x 4)
Outputs
2
#s(literal 2 binary64)
(+ 2 (* -1/2 (pow x 2)))
(fma.f64 (*.f64 x x) #s(literal -1/2 binary64) #s(literal 2 binary64))
(+ 2 (* (pow x 2) (- (* 1/24 (pow x 2)) 1/2)))
(fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 2 binary64))
(+ 2 (* (pow x 2) (- (* (pow x 2) (+ 1/24 (* -1/720 (pow x 2)))) 1/2)))
(fma.f64 (fma.f64 (fma.f64 #s(literal -1/720 binary64) (*.f64 x x) #s(literal 1/24 binary64)) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 2 binary64))
(* 1/2 (pow x 2))
(*.f64 #s(literal 1/2 binary64) (*.f64 x x))
(* (pow x 2) (+ 1/2 (* -1/24 (pow x 2))))
(*.f64 (fma.f64 #s(literal -1/24 binary64) x (/.f64 #s(literal 1/2 binary64) x)) (pow.f64 x #s(literal 3 binary64)))
(* (pow x 2) (+ 1/2 (* (pow x 2) (- (* 1/720 (pow x 2)) 1/24))))
(*.f64 (*.f64 (fma.f64 (fma.f64 #s(literal 1/720 binary64) (*.f64 x x) #s(literal -1/24 binary64)) (*.f64 x x) #s(literal 1/2 binary64)) x) x)
(* (pow x 2) (+ 1/2 (* (pow x 2) (- (* (pow x 2) (+ 1/720 (* -1/40320 (pow x 2)))) 1/24))))
(*.f64 (*.f64 (fma.f64 (fma.f64 (fma.f64 #s(literal -1/40320 binary64) (*.f64 x x) #s(literal 1/720 binary64)) (*.f64 x x) #s(literal -1/24 binary64)) (*.f64 x x) #s(literal 1/2 binary64)) x) x)
(* 1/2 (pow x 2))
(*.f64 #s(literal 1/2 binary64) (*.f64 x x))
(* (pow x 2) (+ 1/2 (* -1/24 (pow x 2))))
(*.f64 (fma.f64 #s(literal -1/24 binary64) x (/.f64 #s(literal 1/2 binary64) x)) (pow.f64 x #s(literal 3 binary64)))
(* (pow x 2) (+ 1/2 (* -1/24 (pow x 2))))
(*.f64 (fma.f64 #s(literal -1/24 binary64) x (/.f64 #s(literal 1/2 binary64) x)) (pow.f64 x #s(literal 3 binary64)))
(* (pow x 2) (+ 1/2 (* -1/24 (pow x 2))))
(*.f64 (fma.f64 #s(literal -1/24 binary64) x (/.f64 #s(literal 1/2 binary64) x)) (pow.f64 x #s(literal 3 binary64)))
(* 1/2 x)
(*.f64 #s(literal 1/2 binary64) x)
(* 1/2 x)
(*.f64 #s(literal 1/2 binary64) x)
(* 1/2 x)
(*.f64 #s(literal 1/2 binary64) x)
(* 1/2 x)
(*.f64 #s(literal 1/2 binary64) x)
(* -1/24 (pow x 4))
(*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64))
(* -1/24 (pow x 4))
(*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64))
(* -1/24 (pow x 4))
(*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64))
(* -1/24 (pow x 4))
(*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64))
(pow x 4)
(pow.f64 x #s(literal 4 binary64))
(pow x 4)
(pow.f64 x #s(literal 4 binary64))
(pow x 4)
(pow.f64 x #s(literal 4 binary64))
(pow x 4)
(pow.f64 x #s(literal 4 binary64))
(+ 1 (cos x))
(-.f64 (cos.f64 x) #s(literal -1 binary64))
(+ 1 (cos x))
(-.f64 (cos.f64 x) #s(literal -1 binary64))
(+ 1 (cos x))
(-.f64 (cos.f64 x) #s(literal -1 binary64))
(+ 1 (cos x))
(-.f64 (cos.f64 x) #s(literal -1 binary64))
(- 1 (cos x))
(-.f64 #s(literal 1 binary64) (cos.f64 x))
(- 1 (cos x))
(-.f64 #s(literal 1 binary64) (cos.f64 x))
(- 1 (cos x))
(-.f64 #s(literal 1 binary64) (cos.f64 x))
(- 1 (cos x))
(-.f64 #s(literal 1 binary64) (cos.f64 x))
(* -1/24 (pow x 4))
(*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64))
(* (pow x 4) (- (* 1/2 (/ 1 (pow x 2))) 1/24))
(*.f64 (fma.f64 #s(literal -1/24 binary64) x (/.f64 #s(literal 1/2 binary64) x)) (pow.f64 x #s(literal 3 binary64)))
(* (pow x 4) (- (* 1/2 (/ 1 (pow x 2))) 1/24))
(*.f64 (fma.f64 #s(literal -1/24 binary64) x (/.f64 #s(literal 1/2 binary64) x)) (pow.f64 x #s(literal 3 binary64)))
(* (pow x 4) (- (* 1/2 (/ 1 (pow x 2))) 1/24))
(*.f64 (fma.f64 #s(literal -1/24 binary64) x (/.f64 #s(literal 1/2 binary64) x)) (pow.f64 x #s(literal 3 binary64)))
(* 1/2 x)
(*.f64 #s(literal 1/2 binary64) x)
(* 1/2 x)
(*.f64 #s(literal 1/2 binary64) x)
(* 1/2 x)
(*.f64 #s(literal 1/2 binary64) x)
(* 1/2 x)
(*.f64 #s(literal 1/2 binary64) x)
(* -1/24 (pow x 4))
(*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64))
(* -1/24 (pow x 4))
(*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64))
(* -1/24 (pow x 4))
(*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64))
(* -1/24 (pow x 4))
(*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64))
(pow x 4)
(pow.f64 x #s(literal 4 binary64))
(pow x 4)
(pow.f64 x #s(literal 4 binary64))
(pow x 4)
(pow.f64 x #s(literal 4 binary64))
(pow x 4)
(pow.f64 x #s(literal 4 binary64))
(+ 1 (cos x))
(-.f64 (cos.f64 x) #s(literal -1 binary64))
(+ 1 (cos x))
(-.f64 (cos.f64 x) #s(literal -1 binary64))
(+ 1 (cos x))
(-.f64 (cos.f64 x) #s(literal -1 binary64))
(+ 1 (cos x))
(-.f64 (cos.f64 x) #s(literal -1 binary64))
(- 1 (cos x))
(-.f64 #s(literal 1 binary64) (cos.f64 x))
(- 1 (cos x))
(-.f64 #s(literal 1 binary64) (cos.f64 x))
(- 1 (cos x))
(-.f64 #s(literal 1 binary64) (cos.f64 x))
(- 1 (cos x))
(-.f64 #s(literal 1 binary64) (cos.f64 x))
(* -1/24 (pow x 4))
(*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64))
(* (pow x 4) (- (* 1/2 (/ 1 (pow x 2))) 1/24))
(*.f64 (fma.f64 #s(literal -1/24 binary64) x (/.f64 #s(literal 1/2 binary64) x)) (pow.f64 x #s(literal 3 binary64)))
(* (pow x 4) (- (* 1/2 (/ 1 (pow x 2))) 1/24))
(*.f64 (fma.f64 #s(literal -1/24 binary64) x (/.f64 #s(literal 1/2 binary64) x)) (pow.f64 x #s(literal 3 binary64)))
(* (pow x 4) (- (* 1/2 (/ 1 (pow x 2))) 1/24))
(*.f64 (fma.f64 #s(literal -1/24 binary64) x (/.f64 #s(literal 1/2 binary64) x)) (pow.f64 x #s(literal 3 binary64)))
(* 1/2 x)
(*.f64 #s(literal 1/2 binary64) x)
(* 1/2 x)
(*.f64 #s(literal 1/2 binary64) x)
(* 1/2 x)
(*.f64 #s(literal 1/2 binary64) x)
(* 1/2 x)
(*.f64 #s(literal 1/2 binary64) x)
(* -1/24 (pow x 4))
(*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64))
(* -1/24 (pow x 4))
(*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64))
(* -1/24 (pow x 4))
(*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64))
(* -1/24 (pow x 4))
(*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64))
(pow x 4)
(pow.f64 x #s(literal 4 binary64))
(pow x 4)
(pow.f64 x #s(literal 4 binary64))
(pow x 4)
(pow.f64 x #s(literal 4 binary64))
(pow x 4)
(pow.f64 x #s(literal 4 binary64))

rewrite191.0ms (2.3%)

Memory
-12.6MiB live, 231.9MiB allocated
Rules
7 996×lower-fma.f32
7 994×lower-fma.f64
5 428×lower-*.f32
5 420×lower-*.f64
1 898×lower-pow.f64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01558
02150
17242
247442
3510142
0918442
Stop Event
iter limit
node limit
iter limit
Counts
6 → 129
Calls
Call 1
Inputs
#s(approx (+ (cos x) 1) #s(literal 2 binary64))
#s(approx (- 1 (cos x)) (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) #s(literal -1/24 binary64))))
(fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) #s(literal -1/24 binary64)))
(*.f64 #s(literal 1/2 binary64) x)
(*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) #s(literal -1/24 binary64))
(*.f64 (*.f64 x x) (*.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>

eval27.0ms (0.3%)

Memory
-26.1MiB live, 55.4MiB allocated
Compiler

Compiled 3 955 to 537 computations (86.4% saved)

prune6.0ms (0.1%)

Memory
20.1MiB live, 20.1MiB allocated
Pruning

5 alts after pruning (0 fresh and 5 done)

PrunedKeptTotal
New2010201
Fresh000
Picked022
Done033
Total2015206
Accuracy
100.0%
Counts
206 → 5
Alt Table
Click to see full alt table
StatusAccuracyProgram
52.2%
(-.f64 #s(literal 1 binary64) #s(approx (cos x) #s(literal 1 binary64)))
100.0%
#s(approx (- 1 (cos x)) (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) #s(literal -1/24 binary64))))
100.0%
#s(approx (- 1 (cos x)) (*.f64 (*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x) x))
99.6%
#s(approx (- 1 (cos x)) (*.f64 (*.f64 #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) x) x))
4.3%
#s(approx (+ (cos x) 1) #s(literal 2 binary64))
Compiler

Compiled 103 to 62 computations (39.8% saved)

regimes10.0ms (0.1%)

Memory
-14.0MiB live, 23.1MiB allocated
Counts
9 → 1
Calls
Call 1
Inputs
#s(approx (+ (cos x) 1) #s(literal 2 binary64))
(+.f64 #s(approx (cos x) #s(literal 1 binary64)) #s(literal 1 binary64))
(-.f64 #s(literal 1 binary64) #s(approx (cos x) #s(literal 1 binary64)))
#s(approx (- 1 (cos x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64)))
#s(approx (- 1 (cos x)) (*.f64 (*.f64 #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) x) x))
#s(approx (- 1 (cos x)) (*.f64 (*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x) x))
#s(approx (- 1 (cos x)) (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) #s(literal -1/24 binary64))))
(-.f64 #s(literal 1 binary64) (cos.f64 x))
#s(approx (- 1 (cos x)) (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/24 binary64))))
Outputs
#s(approx (- 1 (cos x)) (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) #s(literal -1/24 binary64))))
Calls

3 calls:

5.0ms
x
2.0ms
(-.f64 #s(literal 1 binary64) (cos.f64 x))
2.0ms
(cos.f64 x)
Results
AccuracySegmentsBranch
100.0%1x
100.0%1(-.f64 #s(literal 1 binary64) (cos.f64 x))
100.0%1(cos.f64 x)
Compiler

Compiled 7 to 7 computations (0% saved)

regimes7.0ms (0.1%)

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

3 calls:

3.0ms
x
2.0ms
(-.f64 #s(literal 1 binary64) (cos.f64 x))
2.0ms
(cos.f64 x)
Results
AccuracySegmentsBranch
100.0%1x
100.0%1(-.f64 #s(literal 1 binary64) (cos.f64 x))
100.0%1(cos.f64 x)
Compiler

Compiled 7 to 7 computations (0% saved)

regimes7.0ms (0.1%)

Memory
-19.9MiB live, 18.5MiB allocated
Counts
5 → 1
Calls
Call 1
Inputs
#s(approx (+ (cos x) 1) #s(literal 2 binary64))
(+.f64 #s(approx (cos x) #s(literal 1 binary64)) #s(literal 1 binary64))
(-.f64 #s(literal 1 binary64) #s(approx (cos x) #s(literal 1 binary64)))
#s(approx (- 1 (cos x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64)))
#s(approx (- 1 (cos x)) (*.f64 (*.f64 #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) x) x))
Outputs
#s(approx (- 1 (cos x)) (*.f64 (*.f64 #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) x) x))
Calls

3 calls:

3.0ms
x
2.0ms
(-.f64 #s(literal 1 binary64) (cos.f64 x))
2.0ms
(cos.f64 x)
Results
AccuracySegmentsBranch
99.6%1x
99.6%1(-.f64 #s(literal 1 binary64) (cos.f64 x))
99.6%1(cos.f64 x)
Compiler

Compiled 7 to 7 computations (0% saved)

regimes6.0ms (0.1%)

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

3 calls:

2.0ms
x
2.0ms
(-.f64 #s(literal 1 binary64) (cos.f64 x))
2.0ms
(cos.f64 x)
Results
AccuracySegmentsBranch
99.6%1x
99.6%1(-.f64 #s(literal 1 binary64) (cos.f64 x))
99.6%1(cos.f64 x)
Compiler

Compiled 7 to 7 computations (0% saved)

regimes5.0ms (0.1%)

Memory
12.8MiB live, 12.8MiB allocated
Counts
3 → 1
Calls
Call 1
Inputs
#s(approx (+ (cos x) 1) #s(literal 2 binary64))
(+.f64 #s(approx (cos x) #s(literal 1 binary64)) #s(literal 1 binary64))
(-.f64 #s(literal 1 binary64) #s(approx (cos x) #s(literal 1 binary64)))
Outputs
(-.f64 #s(literal 1 binary64) #s(approx (cos x) #s(literal 1 binary64)))
Calls

3 calls:

2.0ms
x
1.0ms
(-.f64 #s(literal 1 binary64) (cos.f64 x))
1.0ms
(cos.f64 x)
Results
AccuracySegmentsBranch
52.2%1x
52.2%1(-.f64 #s(literal 1 binary64) (cos.f64 x))
52.2%1(cos.f64 x)
Compiler

Compiled 7 to 7 computations (0% saved)

regimes24.0ms (0.3%)

Memory
-27.2MiB live, 11.2MiB allocated
Accuracy

Total 0.0b remaining (0%)

Threshold costs 0b (0%)

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

3 calls:

21.0ms
x
1.0ms
(-.f64 #s(literal 1 binary64) (cos.f64 x))
1.0ms
(cos.f64 x)
Results
AccuracySegmentsBranch
4.3%1(-.f64 #s(literal 1 binary64) (cos.f64 x))
4.3%1x
4.3%1(cos.f64 x)
Compiler

Compiled 7 to 7 computations (0% saved)

simplify48.0ms (0.6%)

Memory
19.5MiB live, 63.6MiB allocated
Algorithm
egg-herbie
Rules
16×*-commutative-binary64-*.f64
+-commutative-binary64-+.f64
sub-neg-binary64-neg.f64-+.f64--.f64
1-exp-binary32-exp.f32
1-exp-binary64-exp.f64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
03074
14274
24674
34874
44974
Stop Event
saturated
Calls
Call 1
Inputs
#s(approx (- 1 (cos x)) (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) #s(literal -1/24 binary64))))
#s(approx (- 1 (cos x)) (*.f64 (*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x) x))
#s(approx (- 1 (cos x)) (*.f64 (*.f64 #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) x) x))
#s(approx (- 1 (cos x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64)))
(-.f64 #s(literal 1 binary64) #s(approx (cos x) #s(literal 1 binary64)))
#s(approx (+ (cos x) 1) #s(literal 2 binary64))
Outputs
#s(approx (- 1 (cos x)) (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) #s(literal -1/24 binary64))))
#s(approx (- 1 (cos x)) (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x (*.f64 #s(literal -1/24 binary64) (*.f64 (*.f64 x x) (*.f64 x x)))))
#s(approx (- 1 (cos x)) (*.f64 (*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x) x))
#s(approx (- 1 (cos x)) (*.f64 (*.f64 #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) x) x))
#s(approx (- 1 (cos x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64)))
(-.f64 #s(literal 1 binary64) #s(approx (cos x) #s(literal 1 binary64)))
#s(approx (+ (cos x) 1) #s(literal 2 binary64))

soundness2.3s (28.1%)

Memory
-36.9MiB live, 505.7MiB allocated
Rules
32 720×lower-fma.f64
32 720×lower-fma.f32
10 130×lower-fma.f64
10 130×lower-fma.f32
9 614×lower-fma.f64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
059698
1146698
2367698
3990698
42488698
55880698
08285647
041144
1101144
2246144
3588144
41237144
51916144
62187144
72836144
84071144
95644144
106543144
116823144
126862144
136862144
147274144
157556144
167597144
177599144
187599144
197599144
207599144
217609144
227609144
237609144
08514132
01567
02267
17767
245867
3374167
01107067
063832
1154832
2375832
31011832
42546832
55941832
08123772
02197
02997
110297
261797
3553497
0836693
Stop Event
done
iter limit
node limit
iter limit
iter limit
node limit
iter limit
node limit
iter limit
iter limit
node limit
iter limit
node limit
Compiler

Compiled 119 to 83 computations (30.3% saved)

preprocess153.0ms (1.9%)

Memory
16.8MiB live, 94.5MiB allocated
Remove

(abs x)

Compiler

Compiled 178 to 106 computations (40.4% saved)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

Profiling

Loading profile data...