ENA, Section 1.4, Mentioned, A

Time bar (total: 8.3s)

start0.0ms (0%)

Memory
0.1MiB live, 0.1MiB allocated

analyze3.0ms (0%)

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

sample3.1s (37.6%)

Memory
0.2MiB live, 2 946.9MiB allocated
Samples
2.2s5 711×2valid
508.0ms2 464×1valid
6.0ms81×0valid
Precisions
Click to see histograms. Total time spent on operations: 2.3s
ival-cos: 1.4s (61.8% of total)
adjust: 303.0ms (13.1% of total)
const: 275.0ms (11.9% of total)
ival-sub: 186.0ms (8.1% of total)
ival-<=: 96.0ms (4.2% of total)
ival-and: 12.0ms (0.5% of total)
exact: 6.0ms (0.3% of total)
ival-assert: 3.0ms (0.1% of total)
Bogosity

explain167.0ms (2%)

Memory
-19.4MiB live, 218.3MiB allocated
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
1390-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))cancellation1390
Confusion
Predicted +Predicted -
+1390
-0117
Precision
1.0
Recall
1.0
Confusion?
Predicted +Predicted MaybePredicted -
+13900
-00117
Precision?
1.0
Recall?
1.0
Freqs
test
numberfreq
0117
1139
Total Confusion?
Predicted +Predicted MaybePredicted -
+100
-000
Precision?
1.0
Recall?
1.0
Samples
116.0ms360×2valid
12.0ms152×1valid
Compiler

Compiled 32 to 20 computations (37.5% saved)

Precisions
Click to see histograms. Total time spent on operations: 110.0ms
ival-cos: 52.0ms (47.5% of total)
adjust: 44.0ms (40.2% of total)
ival-sub: 12.0ms (11% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)

preprocess13.0ms (0.2%)

Memory
25.4MiB live, 25.4MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
069
1168
2358
3558
4878
51028
61098
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)

eval0.0ms (0%)

Memory
0.4MiB live, 0.4MiB allocated
Compiler

Compiled 0 to 1 computations (-∞% saved)

prune0.0ms (0%)

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

Compiled 4 to 4 computations (0% saved)

simplify3.0ms (0%)

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

localize62.0ms (0.7%)

Memory
-18.2MiB live, 99.1MiB allocated
Localize:

Found 2 expressions of interest:

NewMetricScoreProgram
accuracy0
(cos.f64 x)
accuracy31.66799108338649
(-.f64 #s(literal 1 binary64) (cos.f64 x))
Samples
50.0ms180×2valid
6.0ms76×1valid
Compiler

Compiled 18 to 10 computations (44.4% saved)

Precisions
Click to see histograms. Total time spent on operations: 45.0ms
ival-cos: 35.0ms (77.4% of total)
adjust: 6.0ms (13.3% of total)
ival-sub: 4.0ms (8.8% 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
1.7MiB live, 1.7MiB 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))

simplify509.0ms (6.1%)

Memory
29.7MiB live, 331.9MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
041144
1101144
2246144
3588144
41237144
51916144
62425144
73090144
84387144
95950144
106859144
117140144
127179144
137179144
147601144
157887144
167928144
177930144
187930144
197930144
207930144
217940144
227940144
237940144
08845132
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)

rewrite190.0ms (2.3%)

Memory
-6.2MiB live, 256.4MiB allocated
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
046
066
1236
21446
311816
089686
Stop Event
iter limit
node limit
iter limit
Counts
2 → 137
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>

eval20.0ms (0.2%)

Memory
-4.7MiB live, 44.5MiB allocated
Compiler

Compiled 3 413 to 442 computations (87% saved)

prune3.0ms (0%)

Memory
12.4MiB live, 12.4MiB allocated
Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New1583161
Fresh000
Picked101
Done000
Total1593162
Accuracy
100.0%
Counts
162 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
50.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.9%
#s(approx (- 1 (cos x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64)))
Compiler

Compiled 21 to 17 computations (19% saved)

simplify7.0ms (0.1%)

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

localize162.0ms (1.9%)

Memory
-57.4MiB live, 171.1MiB allocated
Localize:

Found 9 expressions of interest:

NewMetricScoreProgram
accuracy0.08557743051330956
#s(approx (cos x) #s(literal 1 binary64))
accuracy31.66799108338649
(-.f64 #s(literal 1 binary64) #s(approx (cos x) #s(literal 1 binary64)))
accuracy0
(*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x)
accuracy0
(*.f64 (*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x) x)
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
(*.f64 x x)
accuracy0.00390625
(*.f64 (*.f64 x x) #s(literal 1/2 binary64))
accuracy0.06239129719312811
#s(approx (- 1 (cos x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64)))
Samples
61.0ms180×2valid
14.0ms76×1valid
Compiler

Compiled 124 to 27 computations (78.2% saved)

Precisions
Click to see histograms. Total time spent on operations: 56.0ms
ival-cos: 28.0ms (50.4% of total)
adjust: 10.0ms (18% of total)
ival-mult: 8.0ms (14.4% of total)
ival-sub: 4.0ms (7.2% of total)
const: 4.0ms (7.2% of total)
ival-add: 1.0ms (1.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
11.1MiB live, 11.1MiB 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
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
@-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))

simplify173.0ms (2.1%)

Memory
15.8MiB live, 130.0MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
059698
1146698
2375698
3995698
42550698
55964698
08176647
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 (*.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 #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)

rewrite238.0ms (2.8%)

Memory
-3.5MiB live, 303.7MiB allocated
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01567
02267
17767
246067
3377267
01197567
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>

eval71.0ms (0.8%)

Memory
10.4MiB live, 122.2MiB allocated
Compiler

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

prune59.0ms (0.7%)

Memory
-39.6MiB live, 49.5MiB allocated
Pruning

4 alts after pruning (2 fresh and 2 done)

PrunedKeptTotal
New4142416
Fresh000
Picked123
Done000
Total4154419
Accuracy
100.0%
Counts
419 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
50.2%
(-.f64 #s(literal 1 binary64) #s(approx (cos x) #s(literal 1 binary64)))
4.1%
(+.f64 #s(approx (cos x) #s(literal 1 binary64)) #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.9%
#s(approx (- 1 (cos x)) (*.f64 (*.f64 #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) x) x))
Compiler

Compiled 26 to 22 computations (15.4% saved)

simplify5.0ms (0.1%)

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

Found 6 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
#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))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01564
01864
13064
23864
34364
45064
55864
66864
77964
88264
08260
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
(+.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
(+.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)

localize92.0ms (1.1%)

Memory
-8.8MiB live, 177.0MiB allocated
Localize:

Found 6 expressions of interest:

NewMetricScoreProgram
accuracy0
(+.f64 #s(approx (cos x) #s(literal 1 binary64)) #s(literal 1 binary64))
accuracy0.08557743051330956
#s(approx (cos x) #s(literal 1 binary64))
accuracy0
(*.f64 (*.f64 #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) x) x)
accuracy0
(*.f64 #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) x)
accuracy0
#s(approx (- 1 (cos x)) (*.f64 (*.f64 #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) x) x))
accuracy0.0664102901437474
#s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64))
Samples
64.0ms180×2valid
16.0ms76×1valid
Compiler

Compiled 70 to 23 computations (67.1% saved)

Precisions
Click to see histograms. Total time spent on operations: 65.0ms
ival-cos: 28.0ms (43.3% of total)
adjust: 12.0ms (18.6% of total)
ival-mult: 11.0ms (17% of total)
ival-add: 5.0ms (7.7% of total)
ival-sub: 4.0ms (6.2% of total)
const: 4.0ms (6.2% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)

series4.0ms (0%)

Memory
12.1MiB live, 12.1MiB allocated
Counts
6 → 72
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 (+.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>) () ())
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 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 (- 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 (+.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 (- 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 (+.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>) () ())) ())
Calls

3 calls:

TimeVariablePointExpression
1.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) (+ (cos x) 1) (cos x))
1.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) (+ (cos x) 1) (cos x))
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) (+ (cos x) 1) (cos x))

simplify113.0ms (1.4%)

Memory
32.5MiB live, 221.8MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
063498
1154498
2383498
31020498
42596498
56032498
08046453
Stop Event
iter limit
node limit
Counts
72 → 72
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)))
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)))
(- 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/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)
(* (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))
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))
(- 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 (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)
(- 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 (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)

rewrite264.0ms (3.2%)

Memory
-33.7MiB live, 265.3MiB allocated
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01561
01861
16961
242461
3351361
01091457
Stop Event
iter limit
node limit
iter limit
Counts
6 → 85
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))
(+.f64 #s(approx (cos x) #s(literal 1 binary64)) #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>

eval16.0ms (0.2%)

Memory
-0.6MiB live, 36.0MiB allocated
Compiler

Compiled 2 017 to 299 computations (85.2% saved)

prune5.0ms (0.1%)

Memory
12.6MiB live, 12.6MiB allocated
Pruning

4 alts after pruning (1 fresh and 3 done)

PrunedKeptTotal
New1561157
Fresh000
Picked112
Done022
Total1574161
Accuracy
100.0%
Counts
161 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
50.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.9%
#s(approx (- 1 (cos x)) (*.f64 (*.f64 #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) x) x))
4.1%
#s(approx (+ (cos x) 1) #s(literal 2 binary64))
Compiler

Compiled 24 to 21 computations (12.5% saved)

simplify3.0ms (0%)

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

Found 1 expressions of interest:

NewMetricScoreProgram
cost-diff0
#s(approx (+ (cos x) 1) #s(literal 2 binary64))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
067
067
197
097
Stop Event
iter limit
saturated
saturated
Calls
Call 1
Inputs
#s(approx (+ (cos x) 1) #s(literal 2 binary64))
#s(literal 2 binary64)
Outputs
#s(approx (+ (cos x) 1) #s(literal 2 binary64))
#s(literal 2 binary64)

localize13.0ms (0.2%)

Memory
-22.7MiB live, 16.3MiB allocated
Localize:

Found 1 expressions of interest:

NewMetricScoreProgram
accuracy0.07792378852281104
#s(approx (+ (cos x) 1) #s(literal 2 binary64))
Samples
10.0ms256×0valid
Compiler

Compiled 10 to 10 computations (0% saved)

Precisions
Click to see histograms. Total time spent on operations: 5.0ms
ival-cos: 3.0ms (59.4% of total)
ival-add: 1.0ms (19.8% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series1.0ms (0%)

Memory
0.5MiB live, 0.5MiB allocated
Counts
1 → 12
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>) () ())
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 (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 (+ (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>) () ())) ())
Calls

3 calls:

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

simplify221.0ms (2.6%)

Memory
11.6MiB live, 98.9MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02272
14472
29572
320672
436472
549072
659972
782172
8138272
9219672
10342372
11390872
12399772
13403072
14470772
15497172
16497172
17497172
18497172
19497172
20497372
0497366
Stop Event
iter limit
saturated
Counts
12 → 12
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 (cos x))
(+ 1 (cos x))
(+ 1 (cos x))
(+ 1 (cos x))
(+ 1 (cos x))
(+ 1 (cos x))
(+ 1 (cos x))
(+ 1 (cos x))
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 (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 (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))

rewrite193.0ms (2.3%)

Memory
-17.7MiB live, 173.8MiB allocated
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
066
066
1226
21346
312356
081946
Stop Event
iter limit
node limit
saturated
Counts
1 → 1
Calls
Call 1
Inputs
#s(approx (+ (cos x) 1) #s(literal 2 binary64))
Outputs
#<batchref>

eval2.0ms (0%)

Memory
4.0MiB live, 4.0MiB allocated
Compiler

Compiled 80 to 20 computations (75% saved)

prune3.0ms (0%)

Memory
6.9MiB live, 6.9MiB allocated
Pruning

4 alts after pruning (0 fresh and 4 done)

PrunedKeptTotal
New13013
Fresh000
Picked011
Done033
Total13417
Accuracy
100.0%
Counts
17 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
50.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.9%
#s(approx (- 1 (cos x)) (*.f64 (*.f64 #s(approx (+ (* -1/24 (* x x)) 1/2) #s(literal 1/2 binary64)) x) x))
4.1%
#s(approx (+ (cos x) 1) #s(literal 2 binary64))
Compiler

Compiled 62 to 43 computations (30.6% saved)

regimes8.0ms (0.1%)

Memory
15.7MiB live, 15.7MiB allocated
Counts
7 → 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))
(-.f64 #s(literal 1 binary64) (cos.f64 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
(cos.f64 x)
2.0ms
(-.f64 #s(literal 1 binary64) (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)

regimes19.0ms (0.2%)

Memory
-22.8MiB live, 13.1MiB 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:

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

Compiled 7 to 7 computations (0% saved)

regimes6.0ms (0.1%)

Memory
11.9MiB live, 11.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
(cos.f64 x)
2.0ms
(-.f64 #s(literal 1 binary64) (cos.f64 x))
Results
AccuracySegmentsBranch
99.9%1x
99.9%1(-.f64 #s(literal 1 binary64) (cos.f64 x))
99.9%1(cos.f64 x)
Compiler

Compiled 7 to 7 computations (0% saved)

regimes5.0ms (0.1%)

Memory
10.8MiB live, 10.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
50.2%1x
50.2%1(-.f64 #s(literal 1 binary64) (cos.f64 x))
50.2%1(cos.f64 x)
Compiler

Compiled 7 to 7 computations (0% saved)

regimes5.0ms (0.1%)

Memory
9.3MiB live, 9.3MiB 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:

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

Compiled 7 to 7 computations (0% saved)

simplify95.0ms (1.1%)

Memory
-12.5MiB live, 67.7MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02555
14155
25255
36255
47655
58855
614155
731455
8401455
9606755
10735755
Stop Event
node limit
Calls
Call 1
Inputs
#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)) (*.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)))
#s(approx (- 1 (cos x)) (*.f64 #s(literal 1/2 binary64) (*.f64 x x)))
(-.f64 #s(literal 1 binary64) #s(approx (cos x) #s(literal 1 binary64)))
#s(approx (+ (cos x) 1) #s(literal 2 binary64))

soundness2.4s (28.4%)

Memory
-12.7MiB live, 620.3MiB allocated
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01567
02267
17767
246067
3377267
01197567
059698
1146698
2375698
3995698
42550698
55964698
08176647
063498
1154498
2383498
31020498
42596498
56032498
08046453
041144
1101144
2246144
3588144
41237144
51916144
62425144
73090144
84387144
95950144
106859144
117140144
127179144
137179144
147601144
157887144
167928144
177930144
187930144
197930144
207930144
217940144
227940144
237940144
08845132
Stop Event
done
iter limit
node limit
iter limit
node limit
iter limit
node limit
iter limit
node limit
iter limit
Compiler

Compiled 72 to 54 computations (25% saved)

preprocess78.0ms (0.9%)

Memory
34.8MiB live, 111.7MiB allocated
Remove

(abs x)

Compiler

Compiled 132 to 92 computations (30.3% saved)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

Profiling

Loading profile data...