tanhf (example 3.4)

Time bar (total: 4.3s)

start0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

analyze110.0ms (2.5%)

Memory
20.6MiB live, 136.3MiB allocated
Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%100%0%0%0%0%0
0%0%100%0%0%0%0%1
0%0%100%0%0%0%0%2
25%25%75%0%0%0%0%3
37.5%37.5%62.5%0%0%0%0%4
43.8%43.7%56.2%0%0%0%0%5
46.9%46.9%53.1%0%0%0%0%6
48.4%48.4%51.5%0%0%0%0%7
49.2%49.2%50.8%0%0%0%0%8
49.6%49.6%50.4%0%0%0%0%9
49.8%49.8%50.2%0%0%0%0%10
49.9%49.9%50.1%0%0%0%0%11
50%49.9%50%0%0%0%0%12
Compiler

Compiled 9 to 8 computations (11.1% saved)

sample2.0s (46.5%)

Memory
14.5MiB live, 1 650.2MiB allocated
Samples
746.0ms2 239×2valid
543.0ms4 195×0valid
209.0ms560×3valid
161.0ms1 260×1valid
2.0ms4valid
Precisions
Click to see histograms. Total time spent on operations: 1.3s
ival-cos: 831.0ms (61.8% of total)
ival-sin: 186.0ms (13.8% of total)
adjust: 116.0ms (8.6% of total)
ival-div: 107.0ms (8% of total)
ival-sub: 91.0ms (6.8% of total)
ival-true: 6.0ms (0.4% of total)
exact: 5.0ms (0.4% of total)
ival-assert: 3.0ms (0.2% of total)
Bogosity

explain225.0ms (5.2%)

Memory
16.1MiB live, 221.4MiB allocated
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
700-1(2.8441913110461176e+240)(-.f64 #s(literal 1 binary64) (cos.f64 x))
650-4(-4.784237852149848e-158)(/.f64 (-.f64 #s(literal 1 binary64) (cos.f64 x)) (sin.f64 x))
00-0-#s(literal 1 binary64)
00-0-(cos.f64 x)
00-0-(sin.f64 x)
00-0-x
Explanations
Click to see full explanations table
OperatorSubexpressionExplanationCount
-.f64(-.f64 #s(literal 1 binary64) (cos.f64 x))cancellation693
/.f64(/.f64 (-.f64 #s(literal 1 binary64) (cos.f64 x)) (sin.f64 x))u/n610
(-.f64 #s(literal 1 binary64) (cos.f64 x))underflow61
Confusion
Predicted +Predicted -
+1301
-0125
Precision
1.0
Recall
0.9923664122137404
Confusion?
Predicted +Predicted MaybePredicted -
+13010
-02123
Precision?
0.9849624060150376
Recall?
1.0
Freqs
test
numberfreq
0126
1130
Total Confusion?
Predicted +Predicted MaybePredicted -
+100
-000
Precision?
1.0
Recall?
1.0
Samples
73.0ms140×2valid
45.0ms260×0valid
15.0ms38×3valid
10.0ms74×1valid
Compiler

Compiled 62 to 28 computations (54.8% saved)

Precisions
Click to see histograms. Total time spent on operations: 120.0ms
ival-cos: 85.0ms (71% of total)
ival-sin: 13.0ms (10.9% of total)
adjust: 8.0ms (6.7% of total)
ival-div: 7.0ms (5.8% of total)
ival-sub: 6.0ms (5% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)

preprocess42.0ms (1%)

Memory
7.8MiB live, 45.9MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0811
13011
2738
31808
44438
56818
67068
067
0104
1204
2264
3374
4584
5814
61144
71884
83104
95194
105614
115644
125724
135784
145824
155894
165964
175974
05974
Stop Event
iter limit
saturated
iter limit
saturated
Calls
Call 1
Inputs
(/.f64 (-.f64 #s(literal 1 binary64) (cos.f64 x)) (sin.f64 x))
Outputs
(tan.f64 (/.f64 x #s(literal 2 binary64)))
Symmetry

(negabs x)

Compiler

Compiled 7 to 6 computations (14.3% saved)

eval0.0ms (0%)

Memory
0.5MiB live, 0.5MiB allocated
Compiler

Compiled 4 to 4 computations (0% saved)

prune0.0ms (0%)

Memory
0.9MiB live, 0.9MiB allocated
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(tan.f64 (/.f64 x #s(literal 2 binary64)))
Compiler

Compiled 4 to 4 computations (0% saved)

simplify3.0ms (0.1%)

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

Found 2 expressions of interest:

NewMetricScoreProgram
cost-diff0
(/.f64 x #s(literal 2 binary64))
cost-diff0
(tan.f64 (/.f64 x #s(literal 2 binary64)))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
049
069
069
Stop Event
iter limit
saturated
iter limit
Calls
Call 1
Inputs
(tan.f64 (/.f64 x #s(literal 2 binary64)))
(/.f64 x #s(literal 2 binary64))
x
#s(literal 2 binary64)
Outputs
(tan.f64 (/.f64 x #s(literal 2 binary64)))
(/.f64 x #s(literal 2 binary64))
x
#s(literal 2 binary64)

localize22.0ms (0.5%)

Memory
-17.5MiB live, 19.2MiB allocated
Localize:

Found 2 expressions of interest:

NewMetricScoreProgram
accuracy0
(/.f64 x #s(literal 2 binary64))
accuracy0
(tan.f64 (/.f64 x #s(literal 2 binary64)))
Samples
14.0ms256×0valid
Compiler

Compiled 20 to 10 computations (50% saved)

Precisions
Click to see histograms. Total time spent on operations: 7.0ms
ival-tan: 5.0ms (67.9% of total)
ival-div: 2.0ms (27.2% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series3.0ms (0.1%)

Memory
3.0MiB live, 3.0MiB allocated
Counts
2 → 24
Calls
Call 1
Inputs
#s(alt #<batchref> (patch (tan.f64 (/.f64 x #s(literal 2 binary64))) #<representation binary64>) () ())
#s(alt #<batchref> (patch (/.f64 x #s(literal 2 binary64)) #<representation binary64>) () ())
Outputs
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (tan.f64 (/.f64 x #s(literal 2 binary64))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (tan.f64 (/.f64 x #s(literal 2 binary64))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (tan.f64 (/.f64 x #s(literal 2 binary64))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (tan.f64 (/.f64 x #s(literal 2 binary64))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (/.f64 x #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (/.f64 x #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (/.f64 x #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (/.f64 x #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (tan.f64 (/.f64 x #s(literal 2 binary64))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (tan.f64 (/.f64 x #s(literal 2 binary64))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (tan.f64 (/.f64 x #s(literal 2 binary64))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (tan.f64 (/.f64 x #s(literal 2 binary64))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (/.f64 x #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (/.f64 x #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (/.f64 x #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (/.f64 x #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (tan.f64 (/.f64 x #s(literal 2 binary64))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (tan.f64 (/.f64 x #s(literal 2 binary64))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (tan.f64 (/.f64 x #s(literal 2 binary64))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (tan.f64 (/.f64 x #s(literal 2 binary64))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (/.f64 x #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (/.f64 x #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (/.f64 x #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (/.f64 x #s(literal 2 binary64)) #<representation binary64>) () ())) ())
Calls

3 calls:

TimeVariablePointExpression
1.0ms
x
@-inf
((tan (/ x 2)) (/ x 2))
1.0ms
x
@inf
((tan (/ x 2)) (/ x 2))
1.0ms
x
@0
((tan (/ x 2)) (/ x 2))

simplify15.0ms (0.3%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
026156
173156
2190156
3441156
4653156
5711156
6714156
0714150
Stop Event
iter limit
saturated
Counts
24 → 24
Calls
Call 1
Inputs
(* 1/2 x)
(* x (+ 1/2 (* 1/24 (pow x 2))))
(* x (+ 1/2 (* (pow x 2) (+ 1/24 (* 1/240 (pow x 2))))))
(* x (+ 1/2 (* (pow x 2) (+ 1/24 (* (pow x 2) (+ 1/240 (* 17/40320 (pow x 2))))))))
(* 1/2 x)
(* 1/2 x)
(* 1/2 x)
(* 1/2 x)
(/ (sin (* 1/2 x)) (cos (* 1/2 x)))
(/ (sin (* 1/2 x)) (cos (* 1/2 x)))
(/ (sin (* 1/2 x)) (cos (* 1/2 x)))
(/ (sin (* 1/2 x)) (cos (* 1/2 x)))
(* 1/2 x)
(* 1/2 x)
(* 1/2 x)
(* 1/2 x)
(/ (sin (* 1/2 x)) (cos (* 1/2 x)))
(/ (sin (* 1/2 x)) (cos (* 1/2 x)))
(/ (sin (* 1/2 x)) (cos (* 1/2 x)))
(/ (sin (* 1/2 x)) (cos (* 1/2 x)))
(* 1/2 x)
(* 1/2 x)
(* 1/2 x)
(* 1/2 x)
Outputs
(*.f64 #s(literal 1/2 binary64) x)
(*.f64 (fma.f64 (*.f64 x x) #s(literal 1/24 binary64) #s(literal 1/2 binary64)) x)
(*.f64 (fma.f64 (fma.f64 #s(literal 1/240 binary64) (*.f64 x x) #s(literal 1/24 binary64)) (*.f64 x x) #s(literal 1/2 binary64)) x)
(*.f64 (fma.f64 (fma.f64 (fma.f64 #s(literal 17/40320 binary64) (*.f64 x x) #s(literal 1/240 binary64)) (*.f64 x x) #s(literal 1/24 binary64)) (*.f64 x x) #s(literal 1/2 binary64)) x)
(*.f64 #s(literal 1/2 binary64) x)
(*.f64 #s(literal 1/2 binary64) x)
(*.f64 #s(literal 1/2 binary64) x)
(*.f64 #s(literal 1/2 binary64) x)
(/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (cos.f64 (*.f64 #s(literal 1/2 binary64) x)))
(/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (cos.f64 (*.f64 #s(literal 1/2 binary64) x)))
(/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (cos.f64 (*.f64 #s(literal 1/2 binary64) x)))
(/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (cos.f64 (*.f64 #s(literal 1/2 binary64) x)))
(*.f64 #s(literal 1/2 binary64) x)
(*.f64 #s(literal 1/2 binary64) x)
(*.f64 #s(literal 1/2 binary64) x)
(*.f64 #s(literal 1/2 binary64) x)
(/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (cos.f64 (*.f64 #s(literal 1/2 binary64) x)))
(/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (cos.f64 (*.f64 #s(literal 1/2 binary64) x)))
(/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (cos.f64 (*.f64 #s(literal 1/2 binary64) x)))
(/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (cos.f64 (*.f64 #s(literal 1/2 binary64) x)))
(*.f64 #s(literal 1/2 binary64) x)
(*.f64 #s(literal 1/2 binary64) x)
(*.f64 #s(literal 1/2 binary64) x)
(*.f64 #s(literal 1/2 binary64) x)

rewrite113.0ms (2.6%)

Memory
-2.2MiB live, 82.9MiB allocated
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
047
067
1197
2517
31887
48887
080997
Stop Event
iter limit
node limit
iter limit
Counts
2 → 432
Calls
Call 1
Inputs
(tan.f64 (/.f64 x #s(literal 2 binary64)))
(/.f64 x #s(literal 2 binary64))
Outputs
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>

eval110.0ms (2.5%)

Memory
14.4MiB live, 123.4MiB allocated
Compiler

Compiled 5 446 to 1 109 computations (79.6% saved)

prune19.0ms (0.4%)

Memory
-28.1MiB live, 20.1MiB allocated
Pruning

4 alts after pruning (4 fresh and 0 done)

PrunedKeptTotal
New4524456
Fresh000
Picked101
Done000
Total4534457
Accuracy
100.0%
Counts
457 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(tan.f64 (*.f64 x #s(literal 1/2 binary64)))
50.8%
#s(approx (tan (/ x 2)) (*.f64 (fma.f64 (fma.f64 #s(literal 1/240 binary64) (*.f64 x x) #s(literal 1/24 binary64)) (*.f64 x x) #s(literal 1/2 binary64)) x))
50.8%
#s(approx (tan (/ x 2)) (*.f64 (fma.f64 (*.f64 x x) #s(literal 1/24 binary64) #s(literal 1/2 binary64)) x))
51.1%
#s(approx (tan (/ x 2)) (*.f64 #s(literal 1/2 binary64) x))
Compiler

Compiled 43 to 33 computations (23.3% saved)

simplify7.0ms (0.2%)

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

Found 12 expressions of interest:

NewMetricScoreProgram
cost-diff0
(*.f64 x #s(literal 1/2 binary64))
cost-diff0
(tan.f64 (*.f64 x #s(literal 1/2 binary64)))
cost-diff0
(fma.f64 #s(literal 1/240 binary64) (*.f64 x x) #s(literal 1/24 binary64))
cost-diff0
(fma.f64 (fma.f64 #s(literal 1/240 binary64) (*.f64 x x) #s(literal 1/24 binary64)) (*.f64 x x) #s(literal 1/2 binary64))
cost-diff0
(*.f64 (fma.f64 (fma.f64 #s(literal 1/240 binary64) (*.f64 x x) #s(literal 1/24 binary64)) (*.f64 x x) #s(literal 1/2 binary64)) x)
cost-diff0
#s(approx (tan (/ x 2)) (*.f64 (fma.f64 (fma.f64 #s(literal 1/240 binary64) (*.f64 x x) #s(literal 1/24 binary64)) (*.f64 x x) #s(literal 1/2 binary64)) x))
cost-diff0
(*.f64 x x)
cost-diff0
(fma.f64 (*.f64 x x) #s(literal 1/24 binary64) #s(literal 1/2 binary64))
cost-diff0
(*.f64 (fma.f64 (*.f64 x x) #s(literal 1/24 binary64) #s(literal 1/2 binary64)) x)
cost-diff0
#s(approx (tan (/ x 2)) (*.f64 (fma.f64 (*.f64 x x) #s(literal 1/24 binary64) #s(literal 1/2 binary64)) x))
cost-diff0
(*.f64 #s(literal 1/2 binary64) x)
cost-diff0
#s(approx (tan (/ x 2)) (*.f64 #s(literal 1/2 binary64) x))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
019110
031110
146110
273110
3126110
4206110
5216110
6221110
0221110
Stop Event
iter limit
saturated
iter limit
Calls
Call 1
Inputs
#s(approx (tan (/ x 2)) (*.f64 #s(literal 1/2 binary64) x))
(*.f64 #s(literal 1/2 binary64) x)
#s(literal 1/2 binary64)
x
#s(approx (tan (/ x 2)) (*.f64 (fma.f64 (*.f64 x x) #s(literal 1/24 binary64) #s(literal 1/2 binary64)) x))
(*.f64 (fma.f64 (*.f64 x x) #s(literal 1/24 binary64) #s(literal 1/2 binary64)) x)
(fma.f64 (*.f64 x x) #s(literal 1/24 binary64) #s(literal 1/2 binary64))
(*.f64 x x)
x
#s(literal 1/24 binary64)
#s(literal 1/2 binary64)
#s(approx (tan (/ x 2)) (*.f64 (fma.f64 (fma.f64 #s(literal 1/240 binary64) (*.f64 x x) #s(literal 1/24 binary64)) (*.f64 x x) #s(literal 1/2 binary64)) x))
(*.f64 (fma.f64 (fma.f64 #s(literal 1/240 binary64) (*.f64 x x) #s(literal 1/24 binary64)) (*.f64 x x) #s(literal 1/2 binary64)) x)
(fma.f64 (fma.f64 #s(literal 1/240 binary64) (*.f64 x x) #s(literal 1/24 binary64)) (*.f64 x x) #s(literal 1/2 binary64))
(fma.f64 #s(literal 1/240 binary64) (*.f64 x x) #s(literal 1/24 binary64))
#s(literal 1/240 binary64)
(*.f64 x x)
x
#s(literal 1/24 binary64)
#s(literal 1/2 binary64)
(tan.f64 (*.f64 x #s(literal 1/2 binary64)))
(*.f64 x #s(literal 1/2 binary64))
x
#s(literal 1/2 binary64)
Outputs
#s(approx (tan (/ x 2)) (*.f64 #s(literal 1/2 binary64) x))
(*.f64 #s(literal 1/2 binary64) x)
#s(literal 1/2 binary64)
x
#s(approx (tan (/ x 2)) (*.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) 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 x x)
x
#s(literal 1/24 binary64)
#s(literal 1/2 binary64)
#s(approx (tan (/ x 2)) (*.f64 (fma.f64 (fma.f64 #s(literal 1/240 binary64) (*.f64 x x) #s(literal 1/24 binary64)) (*.f64 x x) #s(literal 1/2 binary64)) x))
(*.f64 (fma.f64 (fma.f64 #s(literal 1/240 binary64) (*.f64 x x) #s(literal 1/24 binary64)) (*.f64 x x) #s(literal 1/2 binary64)) x)
(fma.f64 (fma.f64 #s(literal 1/240 binary64) (*.f64 x x) #s(literal 1/24 binary64)) (*.f64 x x) #s(literal 1/2 binary64))
(fma.f64 #s(literal 1/240 binary64) (*.f64 x x) #s(literal 1/24 binary64))
#s(literal 1/240 binary64)
(*.f64 x x)
x
#s(literal 1/24 binary64)
#s(literal 1/2 binary64)
(tan.f64 (*.f64 #s(literal 1/2 binary64) x))
(*.f64 #s(literal 1/2 binary64) x)
x
#s(literal 1/2 binary64)

localize108.0ms (2.5%)

Memory
5.2MiB live, 112.1MiB allocated
Localize:

Found 12 expressions of interest:

NewMetricScoreProgram
accuracy0
(*.f64 x #s(literal 1/2 binary64))
accuracy0
(tan.f64 (*.f64 x #s(literal 1/2 binary64)))
accuracy0.04296875
(*.f64 (fma.f64 (fma.f64 #s(literal 1/240 binary64) (*.f64 x x) #s(literal 1/24 binary64)) (*.f64 x x) #s(literal 1/2 binary64)) x)
accuracy0.060878759768442016
(fma.f64 (fma.f64 #s(literal 1/240 binary64) (*.f64 x x) #s(literal 1/24 binary64)) (*.f64 x x) #s(literal 1/2 binary64))
accuracy0.06640625
(fma.f64 #s(literal 1/240 binary64) (*.f64 x x) #s(literal 1/24 binary64))
accuracy31.485103338399043
#s(approx (tan (/ x 2)) (*.f64 (fma.f64 (fma.f64 #s(literal 1/240 binary64) (*.f64 x x) #s(literal 1/24 binary64)) (*.f64 x x) #s(literal 1/2 binary64)) x))
accuracy0
(*.f64 x x)
accuracy0.0703125
(*.f64 (fma.f64 (*.f64 x x) #s(literal 1/24 binary64) #s(literal 1/2 binary64)) x)
accuracy0.09375
(fma.f64 (*.f64 x x) #s(literal 1/24 binary64) #s(literal 1/2 binary64))
accuracy31.471016495589602
#s(approx (tan (/ x 2)) (*.f64 (fma.f64 (*.f64 x x) #s(literal 1/24 binary64) #s(literal 1/2 binary64)) x))
accuracy0
(*.f64 #s(literal 1/2 binary64) x)
accuracy31.295315347723506
#s(approx (tan (/ x 2)) (*.f64 #s(literal 1/2 binary64) x))
Samples
74.0ms256×0valid
Compiler

Compiled 202 to 40 computations (80.2% saved)

Precisions
Click to see histograms. Total time spent on operations: 58.0ms
ival-mult: 22.0ms (37.9% of total)
ival-tan: 14.0ms (24.1% of total)
const: 9.0ms (15.5% of total)
ival-div: 7.0ms (12% of total)
ival-add: 5.0ms (8.6% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series9.0ms (0.2%)

Memory
12.2MiB live, 12.2MiB allocated
Counts
12 → 144
Calls
Call 1
Inputs
#s(alt #<batchref> (patch #s(approx (tan (/ x 2)) (*.f64 #s(literal 1/2 binary64) x)) #<representation binary64>) () ())
#s(alt #<batchref> (patch (*.f64 #s(literal 1/2 binary64) x) #<representation binary64>) () ())
#s(alt #<batchref> (patch #s(approx (tan (/ x 2)) (*.f64 (fma.f64 (*.f64 x x) #s(literal 1/24 binary64) #s(literal 1/2 binary64)) x)) #<representation binary64>) () ())
#s(alt #<batchref> (patch (*.f64 (fma.f64 (*.f64 x x) #s(literal 1/24 binary64) #s(literal 1/2 binary64)) x) #<representation binary64>) () ())
#s(alt #<batchref> (patch (fma.f64 (*.f64 x x) #s(literal 1/24 binary64) #s(literal 1/2 binary64)) #<representation binary64>) () ())
#s(alt #<batchref> (patch (*.f64 x x) #<representation binary64>) () ())
#s(alt #<batchref> (patch #s(approx (tan (/ x 2)) (*.f64 (fma.f64 (fma.f64 #s(literal 1/240 binary64) (*.f64 x x) #s(literal 1/24 binary64)) (*.f64 x x) #s(literal 1/2 binary64)) x)) #<representation binary64>) () ())
#s(alt #<batchref> (patch (*.f64 (fma.f64 (fma.f64 #s(literal 1/240 binary64) (*.f64 x x) #s(literal 1/24 binary64)) (*.f64 x x) #s(literal 1/2 binary64)) x) #<representation binary64>) () ())
#s(alt #<batchref> (patch (fma.f64 (fma.f64 #s(literal 1/240 binary64) (*.f64 x x) #s(literal 1/24 binary64)) (*.f64 x x) #s(literal 1/2 binary64)) #<representation binary64>) () ())
#s(alt #<batchref> (patch (fma.f64 #s(literal 1/240 binary64) (*.f64 x x) #s(literal 1/24 binary64)) #<representation binary64>) () ())
#s(alt #<batchref> (patch (tan.f64 (*.f64 x #s(literal 1/2 binary64))) #<representation binary64>) () ())
#s(alt #<batchref> (patch (*.f64 x #s(literal 1/2 binary64)) #<representation binary64>) () ())
Outputs
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch #s(approx (tan (/ x 2)) (*.f64 #s(literal 1/2 binary64) x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch #s(approx (tan (/ x 2)) (*.f64 #s(literal 1/2 binary64) x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch #s(approx (tan (/ x 2)) (*.f64 #s(literal 1/2 binary64) x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch #s(approx (tan (/ x 2)) (*.f64 #s(literal 1/2 binary64) x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (*.f64 #s(literal 1/2 binary64) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (*.f64 #s(literal 1/2 binary64) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (*.f64 #s(literal 1/2 binary64) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (*.f64 #s(literal 1/2 binary64) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch #s(approx (tan (/ x 2)) (*.f64 (fma.f64 (*.f64 x x) #s(literal 1/24 binary64) #s(literal 1/2 binary64)) x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch #s(approx (tan (/ x 2)) (*.f64 (fma.f64 (*.f64 x x) #s(literal 1/24 binary64) #s(literal 1/2 binary64)) x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch #s(approx (tan (/ x 2)) (*.f64 (fma.f64 (*.f64 x x) #s(literal 1/24 binary64) #s(literal 1/2 binary64)) x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch #s(approx (tan (/ x 2)) (*.f64 (fma.f64 (*.f64 x x) #s(literal 1/24 binary64) #s(literal 1/2 binary64)) x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (*.f64 (fma.f64 (*.f64 x x) #s(literal 1/24 binary64) #s(literal 1/2 binary64)) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (*.f64 (fma.f64 (*.f64 x x) #s(literal 1/24 binary64) #s(literal 1/2 binary64)) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (*.f64 (fma.f64 (*.f64 x x) #s(literal 1/24 binary64) #s(literal 1/2 binary64)) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (*.f64 (fma.f64 (*.f64 x x) #s(literal 1/24 binary64) #s(literal 1/2 binary64)) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (fma.f64 (*.f64 x x) #s(literal 1/24 binary64) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (fma.f64 (*.f64 x x) #s(literal 1/24 binary64) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (fma.f64 (*.f64 x x) #s(literal 1/24 binary64) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (fma.f64 (*.f64 x x) #s(literal 1/24 binary64) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch #s(approx (tan (/ x 2)) (*.f64 (fma.f64 (fma.f64 #s(literal 1/240 binary64) (*.f64 x x) #s(literal 1/24 binary64)) (*.f64 x x) #s(literal 1/2 binary64)) x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch #s(approx (tan (/ x 2)) (*.f64 (fma.f64 (fma.f64 #s(literal 1/240 binary64) (*.f64 x x) #s(literal 1/24 binary64)) (*.f64 x x) #s(literal 1/2 binary64)) x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch #s(approx (tan (/ x 2)) (*.f64 (fma.f64 (fma.f64 #s(literal 1/240 binary64) (*.f64 x x) #s(literal 1/24 binary64)) (*.f64 x x) #s(literal 1/2 binary64)) x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch #s(approx (tan (/ x 2)) (*.f64 (fma.f64 (fma.f64 #s(literal 1/240 binary64) (*.f64 x x) #s(literal 1/24 binary64)) (*.f64 x x) #s(literal 1/2 binary64)) x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (*.f64 (fma.f64 (fma.f64 #s(literal 1/240 binary64) (*.f64 x x) #s(literal 1/24 binary64)) (*.f64 x x) #s(literal 1/2 binary64)) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (*.f64 (fma.f64 (fma.f64 #s(literal 1/240 binary64) (*.f64 x x) #s(literal 1/24 binary64)) (*.f64 x x) #s(literal 1/2 binary64)) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (*.f64 (fma.f64 (fma.f64 #s(literal 1/240 binary64) (*.f64 x x) #s(literal 1/24 binary64)) (*.f64 x x) #s(literal 1/2 binary64)) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (*.f64 (fma.f64 (fma.f64 #s(literal 1/240 binary64) (*.f64 x x) #s(literal 1/24 binary64)) (*.f64 x x) #s(literal 1/2 binary64)) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (fma.f64 (fma.f64 #s(literal 1/240 binary64) (*.f64 x x) #s(literal 1/24 binary64)) (*.f64 x x) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (fma.f64 (fma.f64 #s(literal 1/240 binary64) (*.f64 x x) #s(literal 1/24 binary64)) (*.f64 x x) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (fma.f64 (fma.f64 #s(literal 1/240 binary64) (*.f64 x x) #s(literal 1/24 binary64)) (*.f64 x x) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (fma.f64 (fma.f64 #s(literal 1/240 binary64) (*.f64 x x) #s(literal 1/24 binary64)) (*.f64 x x) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (fma.f64 #s(literal 1/240 binary64) (*.f64 x x) #s(literal 1/24 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (fma.f64 #s(literal 1/240 binary64) (*.f64 x x) #s(literal 1/24 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (fma.f64 #s(literal 1/240 binary64) (*.f64 x x) #s(literal 1/24 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (fma.f64 #s(literal 1/240 binary64) (*.f64 x x) #s(literal 1/24 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (tan.f64 (*.f64 x #s(literal 1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (tan.f64 (*.f64 x #s(literal 1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (tan.f64 (*.f64 x #s(literal 1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (tan.f64 (*.f64 x #s(literal 1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (*.f64 x #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (*.f64 x #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (*.f64 x #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (*.f64 x #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch #s(approx (tan (/ x 2)) (*.f64 #s(literal 1/2 binary64) x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch #s(approx (tan (/ x 2)) (*.f64 #s(literal 1/2 binary64) x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch #s(approx (tan (/ x 2)) (*.f64 #s(literal 1/2 binary64) x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch #s(approx (tan (/ x 2)) (*.f64 #s(literal 1/2 binary64) x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (*.f64 #s(literal 1/2 binary64) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (*.f64 #s(literal 1/2 binary64) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (*.f64 #s(literal 1/2 binary64) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (*.f64 #s(literal 1/2 binary64) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch #s(approx (tan (/ x 2)) (*.f64 (fma.f64 (*.f64 x x) #s(literal 1/24 binary64) #s(literal 1/2 binary64)) x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch #s(approx (tan (/ x 2)) (*.f64 (fma.f64 (*.f64 x x) #s(literal 1/24 binary64) #s(literal 1/2 binary64)) x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch #s(approx (tan (/ x 2)) (*.f64 (fma.f64 (*.f64 x x) #s(literal 1/24 binary64) #s(literal 1/2 binary64)) x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch #s(approx (tan (/ x 2)) (*.f64 (fma.f64 (*.f64 x x) #s(literal 1/24 binary64) #s(literal 1/2 binary64)) x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (*.f64 (fma.f64 (*.f64 x x) #s(literal 1/24 binary64) #s(literal 1/2 binary64)) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (*.f64 (fma.f64 (*.f64 x x) #s(literal 1/24 binary64) #s(literal 1/2 binary64)) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (*.f64 (fma.f64 (*.f64 x x) #s(literal 1/24 binary64) #s(literal 1/2 binary64)) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (*.f64 (fma.f64 (*.f64 x x) #s(literal 1/24 binary64) #s(literal 1/2 binary64)) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (fma.f64 (*.f64 x x) #s(literal 1/24 binary64) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (fma.f64 (*.f64 x x) #s(literal 1/24 binary64) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (fma.f64 (*.f64 x x) #s(literal 1/24 binary64) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (fma.f64 (*.f64 x x) #s(literal 1/24 binary64) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch #s(approx (tan (/ x 2)) (*.f64 (fma.f64 (fma.f64 #s(literal 1/240 binary64) (*.f64 x x) #s(literal 1/24 binary64)) (*.f64 x x) #s(literal 1/2 binary64)) x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch #s(approx (tan (/ x 2)) (*.f64 (fma.f64 (fma.f64 #s(literal 1/240 binary64) (*.f64 x x) #s(literal 1/24 binary64)) (*.f64 x x) #s(literal 1/2 binary64)) x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch #s(approx (tan (/ x 2)) (*.f64 (fma.f64 (fma.f64 #s(literal 1/240 binary64) (*.f64 x x) #s(literal 1/24 binary64)) (*.f64 x x) #s(literal 1/2 binary64)) x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch #s(approx (tan (/ x 2)) (*.f64 (fma.f64 (fma.f64 #s(literal 1/240 binary64) (*.f64 x x) #s(literal 1/24 binary64)) (*.f64 x x) #s(literal 1/2 binary64)) x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (*.f64 (fma.f64 (fma.f64 #s(literal 1/240 binary64) (*.f64 x x) #s(literal 1/24 binary64)) (*.f64 x x) #s(literal 1/2 binary64)) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (*.f64 (fma.f64 (fma.f64 #s(literal 1/240 binary64) (*.f64 x x) #s(literal 1/24 binary64)) (*.f64 x x) #s(literal 1/2 binary64)) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (*.f64 (fma.f64 (fma.f64 #s(literal 1/240 binary64) (*.f64 x x) #s(literal 1/24 binary64)) (*.f64 x x) #s(literal 1/2 binary64)) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (*.f64 (fma.f64 (fma.f64 #s(literal 1/240 binary64) (*.f64 x x) #s(literal 1/24 binary64)) (*.f64 x x) #s(literal 1/2 binary64)) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (fma.f64 (fma.f64 #s(literal 1/240 binary64) (*.f64 x x) #s(literal 1/24 binary64)) (*.f64 x x) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (fma.f64 (fma.f64 #s(literal 1/240 binary64) (*.f64 x x) #s(literal 1/24 binary64)) (*.f64 x x) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (fma.f64 (fma.f64 #s(literal 1/240 binary64) (*.f64 x x) #s(literal 1/24 binary64)) (*.f64 x x) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (fma.f64 (fma.f64 #s(literal 1/240 binary64) (*.f64 x x) #s(literal 1/24 binary64)) (*.f64 x x) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (fma.f64 #s(literal 1/240 binary64) (*.f64 x x) #s(literal 1/24 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (fma.f64 #s(literal 1/240 binary64) (*.f64 x x) #s(literal 1/24 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (fma.f64 #s(literal 1/240 binary64) (*.f64 x x) #s(literal 1/24 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (fma.f64 #s(literal 1/240 binary64) (*.f64 x x) #s(literal 1/24 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (tan.f64 (*.f64 x #s(literal 1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (tan.f64 (*.f64 x #s(literal 1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (tan.f64 (*.f64 x #s(literal 1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (tan.f64 (*.f64 x #s(literal 1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (*.f64 x #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (*.f64 x #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (*.f64 x #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (*.f64 x #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch #s(approx (tan (/ x 2)) (*.f64 #s(literal 1/2 binary64) x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch #s(approx (tan (/ x 2)) (*.f64 #s(literal 1/2 binary64) x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch #s(approx (tan (/ x 2)) (*.f64 #s(literal 1/2 binary64) x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch #s(approx (tan (/ x 2)) (*.f64 #s(literal 1/2 binary64) x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (*.f64 #s(literal 1/2 binary64) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (*.f64 #s(literal 1/2 binary64) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (*.f64 #s(literal 1/2 binary64) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (*.f64 #s(literal 1/2 binary64) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch #s(approx (tan (/ x 2)) (*.f64 (fma.f64 (*.f64 x x) #s(literal 1/24 binary64) #s(literal 1/2 binary64)) x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch #s(approx (tan (/ x 2)) (*.f64 (fma.f64 (*.f64 x x) #s(literal 1/24 binary64) #s(literal 1/2 binary64)) x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch #s(approx (tan (/ x 2)) (*.f64 (fma.f64 (*.f64 x x) #s(literal 1/24 binary64) #s(literal 1/2 binary64)) x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch #s(approx (tan (/ x 2)) (*.f64 (fma.f64 (*.f64 x x) #s(literal 1/24 binary64) #s(literal 1/2 binary64)) x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (*.f64 (fma.f64 (*.f64 x x) #s(literal 1/24 binary64) #s(literal 1/2 binary64)) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (*.f64 (fma.f64 (*.f64 x x) #s(literal 1/24 binary64) #s(literal 1/2 binary64)) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (*.f64 (fma.f64 (*.f64 x x) #s(literal 1/24 binary64) #s(literal 1/2 binary64)) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (*.f64 (fma.f64 (*.f64 x x) #s(literal 1/24 binary64) #s(literal 1/2 binary64)) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (fma.f64 (*.f64 x x) #s(literal 1/24 binary64) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (fma.f64 (*.f64 x x) #s(literal 1/24 binary64) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (fma.f64 (*.f64 x x) #s(literal 1/24 binary64) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (fma.f64 (*.f64 x x) #s(literal 1/24 binary64) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch #s(approx (tan (/ x 2)) (*.f64 (fma.f64 (fma.f64 #s(literal 1/240 binary64) (*.f64 x x) #s(literal 1/24 binary64)) (*.f64 x x) #s(literal 1/2 binary64)) x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch #s(approx (tan (/ x 2)) (*.f64 (fma.f64 (fma.f64 #s(literal 1/240 binary64) (*.f64 x x) #s(literal 1/24 binary64)) (*.f64 x x) #s(literal 1/2 binary64)) x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch #s(approx (tan (/ x 2)) (*.f64 (fma.f64 (fma.f64 #s(literal 1/240 binary64) (*.f64 x x) #s(literal 1/24 binary64)) (*.f64 x x) #s(literal 1/2 binary64)) x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch #s(approx (tan (/ x 2)) (*.f64 (fma.f64 (fma.f64 #s(literal 1/240 binary64) (*.f64 x x) #s(literal 1/24 binary64)) (*.f64 x x) #s(literal 1/2 binary64)) x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (*.f64 (fma.f64 (fma.f64 #s(literal 1/240 binary64) (*.f64 x x) #s(literal 1/24 binary64)) (*.f64 x x) #s(literal 1/2 binary64)) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (*.f64 (fma.f64 (fma.f64 #s(literal 1/240 binary64) (*.f64 x x) #s(literal 1/24 binary64)) (*.f64 x x) #s(literal 1/2 binary64)) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (*.f64 (fma.f64 (fma.f64 #s(literal 1/240 binary64) (*.f64 x x) #s(literal 1/24 binary64)) (*.f64 x x) #s(literal 1/2 binary64)) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (*.f64 (fma.f64 (fma.f64 #s(literal 1/240 binary64) (*.f64 x x) #s(literal 1/24 binary64)) (*.f64 x x) #s(literal 1/2 binary64)) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (fma.f64 (fma.f64 #s(literal 1/240 binary64) (*.f64 x x) #s(literal 1/24 binary64)) (*.f64 x x) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (fma.f64 (fma.f64 #s(literal 1/240 binary64) (*.f64 x x) #s(literal 1/24 binary64)) (*.f64 x x) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (fma.f64 (fma.f64 #s(literal 1/240 binary64) (*.f64 x x) #s(literal 1/24 binary64)) (*.f64 x x) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (fma.f64 (fma.f64 #s(literal 1/240 binary64) (*.f64 x x) #s(literal 1/24 binary64)) (*.f64 x x) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (fma.f64 #s(literal 1/240 binary64) (*.f64 x x) #s(literal 1/24 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (fma.f64 #s(literal 1/240 binary64) (*.f64 x x) #s(literal 1/24 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (fma.f64 #s(literal 1/240 binary64) (*.f64 x x) #s(literal 1/24 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (fma.f64 #s(literal 1/240 binary64) (*.f64 x x) #s(literal 1/24 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (tan.f64 (*.f64 x #s(literal 1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (tan.f64 (*.f64 x #s(literal 1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (tan.f64 (*.f64 x #s(literal 1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (tan.f64 (*.f64 x #s(literal 1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (*.f64 x #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (*.f64 x #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (*.f64 x #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (*.f64 x #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
Calls

3 calls:

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

simplify191.0ms (4.4%)

Memory
-5.4MiB live, 200.2MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0571082
11771082
24661082
311311082
422831082
554701082
081511001
Stop Event
iter limit
node limit
Counts
144 → 144
Calls
Call 1
Inputs
(* 1/2 x)
(* x (+ 1/2 (* 1/24 (pow x 2))))
(* x (+ 1/2 (* (pow x 2) (+ 1/24 (* 1/240 (pow x 2))))))
(* x (+ 1/2 (* (pow x 2) (+ 1/24 (* (pow x 2) (+ 1/240 (* 17/40320 (pow x 2))))))))
(* 1/2 x)
(* 1/2 x)
(* 1/2 x)
(* 1/2 x)
(* 1/2 x)
(* x (+ 1/2 (* 1/24 (pow x 2))))
(* x (+ 1/2 (* (pow x 2) (+ 1/24 (* 1/240 (pow x 2))))))
(* x (+ 1/2 (* (pow x 2) (+ 1/24 (* (pow x 2) (+ 1/240 (* 17/40320 (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)))
(pow x 2)
(pow x 2)
(pow x 2)
(pow x 2)
(* 1/2 x)
(* x (+ 1/2 (* 1/24 (pow x 2))))
(* x (+ 1/2 (* (pow x 2) (+ 1/24 (* 1/240 (pow x 2))))))
(* x (+ 1/2 (* (pow x 2) (+ 1/24 (* (pow x 2) (+ 1/240 (* 17/40320 (pow x 2))))))))
(* 1/2 x)
(* x (+ 1/2 (* 1/24 (pow x 2))))
(* x (+ 1/2 (* (pow x 2) (+ 1/24 (* 1/240 (pow x 2))))))
(* x (+ 1/2 (* (pow x 2) (+ 1/24 (* 1/240 (pow x 2))))))
1/2
(+ 1/2 (* 1/24 (pow x 2)))
(+ 1/2 (* (pow x 2) (+ 1/24 (* 1/240 (pow x 2)))))
(+ 1/2 (* (pow x 2) (+ 1/24 (* 1/240 (pow x 2)))))
1/24
(+ 1/24 (* 1/240 (pow x 2)))
(+ 1/24 (* 1/240 (pow x 2)))
(+ 1/24 (* 1/240 (pow x 2)))
(* 1/2 x)
(* x (+ 1/2 (* 1/24 (pow x 2))))
(* x (+ 1/2 (* (pow x 2) (+ 1/24 (* 1/240 (pow x 2))))))
(* x (+ 1/2 (* (pow x 2) (+ 1/24 (* (pow x 2) (+ 1/240 (* 17/40320 (pow x 2))))))))
(* 1/2 x)
(* 1/2 x)
(* 1/2 x)
(* 1/2 x)
(/ (sin (* 1/2 x)) (cos (* 1/2 x)))
(/ (sin (* 1/2 x)) (cos (* 1/2 x)))
(/ (sin (* 1/2 x)) (cos (* 1/2 x)))
(/ (sin (* 1/2 x)) (cos (* 1/2 x)))
(* 1/2 x)
(* 1/2 x)
(* 1/2 x)
(* 1/2 x)
(/ (sin (* 1/2 x)) (cos (* 1/2 x)))
(/ (sin (* 1/2 x)) (cos (* 1/2 x)))
(/ (sin (* 1/2 x)) (cos (* 1/2 x)))
(/ (sin (* 1/2 x)) (cos (* 1/2 x)))
(* 1/24 (pow x 3))
(* (pow x 3) (+ 1/24 (* 1/2 (/ 1 (pow x 2)))))
(* (pow x 3) (+ 1/24 (* 1/2 (/ 1 (pow x 2)))))
(* (pow x 3) (+ 1/24 (* 1/2 (/ 1 (pow x 2)))))
(* 1/24 (pow x 2))
(* (pow x 2) (+ 1/24 (* 1/2 (/ 1 (pow x 2)))))
(* (pow x 2) (+ 1/24 (* 1/2 (/ 1 (pow x 2)))))
(* (pow x 2) (+ 1/24 (* 1/2 (/ 1 (pow x 2)))))
(pow x 2)
(pow x 2)
(pow x 2)
(pow x 2)
(/ (sin (* 1/2 x)) (cos (* 1/2 x)))
(/ (sin (* 1/2 x)) (cos (* 1/2 x)))
(/ (sin (* 1/2 x)) (cos (* 1/2 x)))
(/ (sin (* 1/2 x)) (cos (* 1/2 x)))
(* 1/240 (pow x 5))
(* (pow x 5) (+ 1/240 (* 1/24 (/ 1 (pow x 2)))))
(* (pow x 5) (+ 1/240 (+ (/ 1/2 (pow x 4)) (* 1/24 (/ 1 (pow x 2))))))
(* (pow x 5) (+ 1/240 (+ (/ 1/2 (pow x 4)) (* 1/24 (/ 1 (pow x 2))))))
(* 1/240 (pow x 4))
(* (pow x 4) (+ 1/240 (* 1/24 (/ 1 (pow x 2)))))
(* (pow x 4) (+ 1/240 (+ (/ 1/2 (pow x 4)) (* 1/24 (/ 1 (pow x 2))))))
(* (pow x 4) (+ 1/240 (+ (/ 1/2 (pow x 4)) (* 1/24 (/ 1 (pow x 2))))))
(* 1/240 (pow x 2))
(* (pow x 2) (+ 1/240 (* 1/24 (/ 1 (pow x 2)))))
(* (pow x 2) (+ 1/240 (* 1/24 (/ 1 (pow x 2)))))
(* (pow x 2) (+ 1/240 (* 1/24 (/ 1 (pow x 2)))))
(/ (sin (* 1/2 x)) (cos (* 1/2 x)))
(/ (sin (* 1/2 x)) (cos (* 1/2 x)))
(/ (sin (* 1/2 x)) (cos (* 1/2 x)))
(/ (sin (* 1/2 x)) (cos (* 1/2 x)))
(* 1/2 x)
(* 1/2 x)
(* 1/2 x)
(* 1/2 x)
(/ (sin (* 1/2 x)) (cos (* 1/2 x)))
(/ (sin (* 1/2 x)) (cos (* 1/2 x)))
(/ (sin (* 1/2 x)) (cos (* 1/2 x)))
(/ (sin (* 1/2 x)) (cos (* 1/2 x)))
(* 1/2 x)
(* 1/2 x)
(* 1/2 x)
(* 1/2 x)
(/ (sin (* 1/2 x)) (cos (* 1/2 x)))
(/ (sin (* 1/2 x)) (cos (* 1/2 x)))
(/ (sin (* 1/2 x)) (cos (* 1/2 x)))
(/ (sin (* 1/2 x)) (cos (* 1/2 x)))
(* 1/24 (pow x 3))
(* (pow x 3) (+ 1/24 (* 1/2 (/ 1 (pow x 2)))))
(* (pow x 3) (+ 1/24 (* 1/2 (/ 1 (pow x 2)))))
(* (pow x 3) (+ 1/24 (* 1/2 (/ 1 (pow x 2)))))
(* 1/24 (pow x 2))
(* (pow x 2) (+ 1/24 (* 1/2 (/ 1 (pow x 2)))))
(* (pow x 2) (+ 1/24 (* 1/2 (/ 1 (pow x 2)))))
(* (pow x 2) (+ 1/24 (* 1/2 (/ 1 (pow x 2)))))
(pow x 2)
(pow x 2)
(pow x 2)
(pow x 2)
(/ (sin (* 1/2 x)) (cos (* 1/2 x)))
(/ (sin (* 1/2 x)) (cos (* 1/2 x)))
(/ (sin (* 1/2 x)) (cos (* 1/2 x)))
(/ (sin (* 1/2 x)) (cos (* 1/2 x)))
(* 1/240 (pow x 5))
(* (pow x 5) (+ 1/240 (* 1/24 (/ 1 (pow x 2)))))
(* -1 (* (pow x 5) (- (* -1 (/ (+ 1/24 (* 1/2 (/ 1 (pow x 2)))) (pow x 2))) 1/240)))
(* -1 (* (pow x 5) (- (* -1 (/ (+ 1/24 (* 1/2 (/ 1 (pow x 2)))) (pow x 2))) 1/240)))
(* 1/240 (pow x 4))
(* (pow x 4) (+ 1/240 (* 1/24 (/ 1 (pow x 2)))))
(* (pow x 4) (+ 1/240 (+ (/ 1/2 (pow x 4)) (* 1/24 (/ 1 (pow x 2))))))
(* (pow x 4) (+ 1/240 (+ (/ 1/2 (pow x 4)) (* 1/24 (/ 1 (pow x 2))))))
(* 1/240 (pow x 2))
(* (pow x 2) (+ 1/240 (* 1/24 (/ 1 (pow x 2)))))
(* (pow x 2) (+ 1/240 (* 1/24 (/ 1 (pow x 2)))))
(* (pow x 2) (+ 1/240 (* 1/24 (/ 1 (pow x 2)))))
(/ (sin (* 1/2 x)) (cos (* 1/2 x)))
(/ (sin (* 1/2 x)) (cos (* 1/2 x)))
(/ (sin (* 1/2 x)) (cos (* 1/2 x)))
(/ (sin (* 1/2 x)) (cos (* 1/2 x)))
(* 1/2 x)
(* 1/2 x)
(* 1/2 x)
(* 1/2 x)
Outputs
(*.f64 #s(literal 1/2 binary64) x)
(*.f64 (fma.f64 (*.f64 x x) #s(literal 1/24 binary64) #s(literal 1/2 binary64)) x)
(*.f64 (fma.f64 (fma.f64 #s(literal 1/240 binary64) (*.f64 x x) #s(literal 1/24 binary64)) (*.f64 x x) #s(literal 1/2 binary64)) x)
(*.f64 (fma.f64 (fma.f64 (fma.f64 #s(literal 17/40320 binary64) (*.f64 x x) #s(literal 1/240 binary64)) (*.f64 x x) #s(literal 1/24 binary64)) (*.f64 x x) #s(literal 1/2 binary64)) x)
(*.f64 #s(literal 1/2 binary64) x)
(*.f64 #s(literal 1/2 binary64) x)
(*.f64 #s(literal 1/2 binary64) x)
(*.f64 #s(literal 1/2 binary64) x)
(*.f64 #s(literal 1/2 binary64) x)
(*.f64 (fma.f64 (*.f64 x x) #s(literal 1/24 binary64) #s(literal 1/2 binary64)) x)
(*.f64 (fma.f64 (fma.f64 #s(literal 1/240 binary64) (*.f64 x x) #s(literal 1/24 binary64)) (*.f64 x x) #s(literal 1/2 binary64)) x)
(*.f64 (fma.f64 (fma.f64 (fma.f64 #s(literal 17/40320 binary64) (*.f64 x x) #s(literal 1/240 binary64)) (*.f64 x x) #s(literal 1/24 binary64)) (*.f64 x x) #s(literal 1/2 binary64)) x)
(*.f64 #s(literal 1/2 binary64) x)
(*.f64 (fma.f64 (*.f64 x x) #s(literal 1/24 binary64) #s(literal 1/2 binary64)) x)
(*.f64 (fma.f64 (*.f64 x x) #s(literal 1/24 binary64) #s(literal 1/2 binary64)) x)
(*.f64 (fma.f64 (*.f64 x x) #s(literal 1/24 binary64) #s(literal 1/2 binary64)) x)
#s(literal 1/2 binary64)
(fma.f64 (*.f64 x x) #s(literal 1/24 binary64) #s(literal 1/2 binary64))
(fma.f64 (*.f64 x x) #s(literal 1/24 binary64) #s(literal 1/2 binary64))
(fma.f64 (*.f64 x x) #s(literal 1/24 binary64) #s(literal 1/2 binary64))
(*.f64 x x)
(*.f64 x x)
(*.f64 x x)
(*.f64 x x)
(*.f64 #s(literal 1/2 binary64) x)
(*.f64 (fma.f64 (*.f64 x x) #s(literal 1/24 binary64) #s(literal 1/2 binary64)) x)
(*.f64 (fma.f64 (fma.f64 #s(literal 1/240 binary64) (*.f64 x x) #s(literal 1/24 binary64)) (*.f64 x x) #s(literal 1/2 binary64)) x)
(*.f64 (fma.f64 (fma.f64 (fma.f64 #s(literal 17/40320 binary64) (*.f64 x x) #s(literal 1/240 binary64)) (*.f64 x x) #s(literal 1/24 binary64)) (*.f64 x x) #s(literal 1/2 binary64)) x)
(*.f64 #s(literal 1/2 binary64) x)
(*.f64 (fma.f64 (*.f64 x x) #s(literal 1/24 binary64) #s(literal 1/2 binary64)) x)
(*.f64 (fma.f64 (fma.f64 #s(literal 1/240 binary64) (*.f64 x x) #s(literal 1/24 binary64)) (*.f64 x x) #s(literal 1/2 binary64)) x)
(*.f64 (fma.f64 (fma.f64 #s(literal 1/240 binary64) (*.f64 x x) #s(literal 1/24 binary64)) (*.f64 x x) #s(literal 1/2 binary64)) x)
#s(literal 1/2 binary64)
(fma.f64 (*.f64 x x) #s(literal 1/24 binary64) #s(literal 1/2 binary64))
(fma.f64 (fma.f64 #s(literal 1/240 binary64) (*.f64 x x) #s(literal 1/24 binary64)) (*.f64 x x) #s(literal 1/2 binary64))
(fma.f64 (fma.f64 #s(literal 1/240 binary64) (*.f64 x x) #s(literal 1/24 binary64)) (*.f64 x x) #s(literal 1/2 binary64))
#s(literal 1/24 binary64)
(fma.f64 #s(literal 1/240 binary64) (*.f64 x x) #s(literal 1/24 binary64))
(fma.f64 #s(literal 1/240 binary64) (*.f64 x x) #s(literal 1/24 binary64))
(fma.f64 #s(literal 1/240 binary64) (*.f64 x x) #s(literal 1/24 binary64))
(*.f64 #s(literal 1/2 binary64) x)
(*.f64 (fma.f64 (*.f64 x x) #s(literal 1/24 binary64) #s(literal 1/2 binary64)) x)
(*.f64 (fma.f64 (fma.f64 #s(literal 1/240 binary64) (*.f64 x x) #s(literal 1/24 binary64)) (*.f64 x x) #s(literal 1/2 binary64)) x)
(*.f64 (fma.f64 (fma.f64 (fma.f64 #s(literal 17/40320 binary64) (*.f64 x x) #s(literal 1/240 binary64)) (*.f64 x x) #s(literal 1/24 binary64)) (*.f64 x x) #s(literal 1/2 binary64)) x)
(*.f64 #s(literal 1/2 binary64) x)
(*.f64 #s(literal 1/2 binary64) x)
(*.f64 #s(literal 1/2 binary64) x)
(*.f64 #s(literal 1/2 binary64) x)
(/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (cos.f64 (*.f64 #s(literal -1/2 binary64) x)))
(/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (cos.f64 (*.f64 #s(literal -1/2 binary64) x)))
(/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (cos.f64 (*.f64 #s(literal -1/2 binary64) x)))
(/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (cos.f64 (*.f64 #s(literal -1/2 binary64) x)))
(*.f64 #s(literal 1/2 binary64) x)
(*.f64 #s(literal 1/2 binary64) x)
(*.f64 #s(literal 1/2 binary64) x)
(*.f64 #s(literal 1/2 binary64) x)
(/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (cos.f64 (*.f64 #s(literal -1/2 binary64) x)))
(/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (cos.f64 (*.f64 #s(literal -1/2 binary64) x)))
(/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (cos.f64 (*.f64 #s(literal -1/2 binary64) x)))
(/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (cos.f64 (*.f64 #s(literal -1/2 binary64) x)))
(*.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal 1/24 binary64))
(*.f64 (fma.f64 (*.f64 x x) #s(literal 1/24 binary64) #s(literal 1/2 binary64)) x)
(*.f64 (fma.f64 (*.f64 x x) #s(literal 1/24 binary64) #s(literal 1/2 binary64)) x)
(*.f64 (fma.f64 (*.f64 x x) #s(literal 1/24 binary64) #s(literal 1/2 binary64)) x)
(*.f64 (*.f64 x x) #s(literal 1/24 binary64))
(fma.f64 (*.f64 x x) #s(literal 1/24 binary64) #s(literal 1/2 binary64))
(fma.f64 (*.f64 x x) #s(literal 1/24 binary64) #s(literal 1/2 binary64))
(fma.f64 (*.f64 x x) #s(literal 1/24 binary64) #s(literal 1/2 binary64))
(*.f64 x x)
(*.f64 x x)
(*.f64 x x)
(*.f64 x x)
(/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (cos.f64 (*.f64 #s(literal -1/2 binary64) x)))
(/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (cos.f64 (*.f64 #s(literal -1/2 binary64) x)))
(/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (cos.f64 (*.f64 #s(literal -1/2 binary64) x)))
(/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (cos.f64 (*.f64 #s(literal -1/2 binary64) x)))
(*.f64 (pow.f64 x #s(literal 5 binary64)) #s(literal 1/240 binary64))
(*.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 #s(literal 1/240 binary64) (*.f64 x x) #s(literal 1/24 binary64)))
(*.f64 (fma.f64 (fma.f64 #s(literal 1/240 binary64) (*.f64 x x) #s(literal 1/24 binary64)) (*.f64 x x) #s(literal 1/2 binary64)) x)
(*.f64 (fma.f64 (fma.f64 #s(literal 1/240 binary64) (*.f64 x x) #s(literal 1/24 binary64)) (*.f64 x x) #s(literal 1/2 binary64)) x)
(*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1/240 binary64))
(*.f64 (*.f64 (fma.f64 #s(literal 1/240 binary64) (*.f64 x x) #s(literal 1/24 binary64)) x) x)
(fma.f64 (fma.f64 #s(literal 1/240 binary64) (*.f64 x x) #s(literal 1/24 binary64)) (*.f64 x x) #s(literal 1/2 binary64))
(fma.f64 (fma.f64 #s(literal 1/240 binary64) (*.f64 x x) #s(literal 1/24 binary64)) (*.f64 x x) #s(literal 1/2 binary64))
(*.f64 #s(literal 1/240 binary64) (*.f64 x x))
(fma.f64 #s(literal 1/240 binary64) (*.f64 x x) #s(literal 1/24 binary64))
(fma.f64 #s(literal 1/240 binary64) (*.f64 x x) #s(literal 1/24 binary64))
(fma.f64 #s(literal 1/240 binary64) (*.f64 x x) #s(literal 1/24 binary64))
(/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (cos.f64 (*.f64 #s(literal -1/2 binary64) x)))
(/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (cos.f64 (*.f64 #s(literal -1/2 binary64) x)))
(/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (cos.f64 (*.f64 #s(literal -1/2 binary64) x)))
(/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (cos.f64 (*.f64 #s(literal -1/2 binary64) x)))
(*.f64 #s(literal 1/2 binary64) x)
(*.f64 #s(literal 1/2 binary64) x)
(*.f64 #s(literal 1/2 binary64) x)
(*.f64 #s(literal 1/2 binary64) x)
(/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (cos.f64 (*.f64 #s(literal -1/2 binary64) x)))
(/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (cos.f64 (*.f64 #s(literal -1/2 binary64) x)))
(/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (cos.f64 (*.f64 #s(literal -1/2 binary64) x)))
(/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (cos.f64 (*.f64 #s(literal -1/2 binary64) x)))
(*.f64 #s(literal 1/2 binary64) x)
(*.f64 #s(literal 1/2 binary64) x)
(*.f64 #s(literal 1/2 binary64) x)
(*.f64 #s(literal 1/2 binary64) x)
(/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (cos.f64 (*.f64 #s(literal -1/2 binary64) x)))
(/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (cos.f64 (*.f64 #s(literal -1/2 binary64) x)))
(/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (cos.f64 (*.f64 #s(literal -1/2 binary64) x)))
(/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (cos.f64 (*.f64 #s(literal -1/2 binary64) x)))
(*.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal 1/24 binary64))
(*.f64 (fma.f64 (*.f64 x x) #s(literal 1/24 binary64) #s(literal 1/2 binary64)) x)
(*.f64 (fma.f64 (*.f64 x x) #s(literal 1/24 binary64) #s(literal 1/2 binary64)) x)
(*.f64 (fma.f64 (*.f64 x x) #s(literal 1/24 binary64) #s(literal 1/2 binary64)) x)
(*.f64 (*.f64 x x) #s(literal 1/24 binary64))
(fma.f64 (*.f64 x x) #s(literal 1/24 binary64) #s(literal 1/2 binary64))
(fma.f64 (*.f64 x x) #s(literal 1/24 binary64) #s(literal 1/2 binary64))
(fma.f64 (*.f64 x x) #s(literal 1/24 binary64) #s(literal 1/2 binary64))
(*.f64 x x)
(*.f64 x x)
(*.f64 x x)
(*.f64 x x)
(/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (cos.f64 (*.f64 #s(literal -1/2 binary64) x)))
(/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (cos.f64 (*.f64 #s(literal -1/2 binary64) x)))
(/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (cos.f64 (*.f64 #s(literal -1/2 binary64) x)))
(/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (cos.f64 (*.f64 #s(literal -1/2 binary64) x)))
(*.f64 (pow.f64 x #s(literal 5 binary64)) #s(literal 1/240 binary64))
(*.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 #s(literal 1/240 binary64) (*.f64 x x) #s(literal 1/24 binary64)))
(*.f64 (fma.f64 (fma.f64 #s(literal 1/240 binary64) (*.f64 x x) #s(literal 1/24 binary64)) (*.f64 x x) #s(literal 1/2 binary64)) x)
(*.f64 (fma.f64 (fma.f64 #s(literal 1/240 binary64) (*.f64 x x) #s(literal 1/24 binary64)) (*.f64 x x) #s(literal 1/2 binary64)) x)
(*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1/240 binary64))
(*.f64 (*.f64 (fma.f64 #s(literal 1/240 binary64) (*.f64 x x) #s(literal 1/24 binary64)) x) x)
(fma.f64 (fma.f64 #s(literal 1/240 binary64) (*.f64 x x) #s(literal 1/24 binary64)) (*.f64 x x) #s(literal 1/2 binary64))
(fma.f64 (fma.f64 #s(literal 1/240 binary64) (*.f64 x x) #s(literal 1/24 binary64)) (*.f64 x x) #s(literal 1/2 binary64))
(*.f64 #s(literal 1/240 binary64) (*.f64 x x))
(fma.f64 #s(literal 1/240 binary64) (*.f64 x x) #s(literal 1/24 binary64))
(fma.f64 #s(literal 1/240 binary64) (*.f64 x x) #s(literal 1/24 binary64))
(fma.f64 #s(literal 1/240 binary64) (*.f64 x x) #s(literal 1/24 binary64))
(/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (cos.f64 (*.f64 #s(literal -1/2 binary64) x)))
(/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (cos.f64 (*.f64 #s(literal -1/2 binary64) x)))
(/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (cos.f64 (*.f64 #s(literal -1/2 binary64) x)))
(/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (cos.f64 (*.f64 #s(literal -1/2 binary64) x)))
(*.f64 #s(literal 1/2 binary64) x)
(*.f64 #s(literal 1/2 binary64) x)
(*.f64 #s(literal 1/2 binary64) x)
(*.f64 #s(literal 1/2 binary64) x)

rewrite181.0ms (4.2%)

Memory
21.5MiB live, 211.5MiB allocated
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01996
03196
110196
255896
3548096
0912696
Stop Event
iter limit
node limit
iter limit
Counts
12 → 444
Calls
Call 1
Inputs
#s(approx (tan (/ x 2)) (*.f64 #s(literal 1/2 binary64) x))
(*.f64 #s(literal 1/2 binary64) x)
#s(approx (tan (/ x 2)) (*.f64 (fma.f64 (*.f64 x x) #s(literal 1/24 binary64) #s(literal 1/2 binary64)) x))
(*.f64 (fma.f64 (*.f64 x x) #s(literal 1/24 binary64) #s(literal 1/2 binary64)) x)
(fma.f64 (*.f64 x x) #s(literal 1/24 binary64) #s(literal 1/2 binary64))
(*.f64 x x)
#s(approx (tan (/ x 2)) (*.f64 (fma.f64 (fma.f64 #s(literal 1/240 binary64) (*.f64 x x) #s(literal 1/24 binary64)) (*.f64 x x) #s(literal 1/2 binary64)) x))
(*.f64 (fma.f64 (fma.f64 #s(literal 1/240 binary64) (*.f64 x x) #s(literal 1/24 binary64)) (*.f64 x x) #s(literal 1/2 binary64)) x)
(fma.f64 (fma.f64 #s(literal 1/240 binary64) (*.f64 x x) #s(literal 1/24 binary64)) (*.f64 x x) #s(literal 1/2 binary64))
(fma.f64 #s(literal 1/240 binary64) (*.f64 x x) #s(literal 1/24 binary64))
(tan.f64 (*.f64 x #s(literal 1/2 binary64)))
(*.f64 x #s(literal 1/2 binary64))
Outputs
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>

eval105.0ms (2.4%)

Memory
-43.0MiB live, 127.0MiB allocated
Compiler

Compiled 15 788 to 1 854 computations (88.3% saved)

prune19.0ms (0.4%)

Memory
8.0MiB live, 46.8MiB allocated
Pruning

6 alts after pruning (2 fresh and 4 done)

PrunedKeptTotal
New6222624
Fresh000
Picked044
Done000
Total6226628
Accuracy
100.0%
Counts
628 → 6
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(tan.f64 (*.f64 x #s(literal 1/2 binary64)))
50.8%
#s(approx (tan (/ x 2)) (fma.f64 (*.f64 x x) (*.f64 #s(literal 1/24 binary64) x) (*.f64 #s(literal 1/2 binary64) x)))
50.9%
#s(approx (tan (/ x 2)) (/.f64 #s(literal 1 binary64) (/.f64 #s(literal 2 binary64) x)))
50.8%
#s(approx (tan (/ x 2)) (*.f64 (fma.f64 (fma.f64 #s(literal 1/240 binary64) (*.f64 x x) #s(literal 1/24 binary64)) (*.f64 x x) #s(literal 1/2 binary64)) x))
50.8%
#s(approx (tan (/ x 2)) (*.f64 (fma.f64 (*.f64 x x) #s(literal 1/24 binary64) #s(literal 1/2 binary64)) x))
51.1%
#s(approx (tan (/ x 2)) (*.f64 #s(literal 1/2 binary64) x))
Compiler

Compiled 68 to 53 computations (22.1% saved)

simplify4.0ms (0.1%)

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

Found 7 expressions of interest:

NewMetricScoreProgram
cost-diff0
(*.f64 #s(literal 1/24 binary64) x)
cost-diff0
(*.f64 x x)
cost-diff0
#s(approx (tan (/ x 2)) (fma.f64 (*.f64 x x) (*.f64 #s(literal 1/24 binary64) x) (*.f64 #s(literal 1/2 binary64) x)))
cost-diff320
(fma.f64 (*.f64 x x) (*.f64 #s(literal 1/24 binary64) x) (*.f64 #s(literal 1/2 binary64) x))
cost-diff0
(/.f64 #s(literal 2 binary64) x)
cost-diff0
#s(approx (tan (/ x 2)) (/.f64 #s(literal 1 binary64) (/.f64 #s(literal 2 binary64) x)))
cost-diff1088
(/.f64 #s(literal 1 binary64) (/.f64 #s(literal 2 binary64) x))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01558
02254
13452
25152
35552
05550
Stop Event
iter limit
saturated
iter limit
Calls
Call 1
Inputs
#s(approx (tan (/ x 2)) (/.f64 #s(literal 1 binary64) (/.f64 #s(literal 2 binary64) x)))
(/.f64 #s(literal 1 binary64) (/.f64 #s(literal 2 binary64) x))
#s(literal 1 binary64)
(/.f64 #s(literal 2 binary64) x)
#s(literal 2 binary64)
x
#s(approx (tan (/ x 2)) (fma.f64 (*.f64 x x) (*.f64 #s(literal 1/24 binary64) x) (*.f64 #s(literal 1/2 binary64) x)))
(fma.f64 (*.f64 x x) (*.f64 #s(literal 1/24 binary64) x) (*.f64 #s(literal 1/2 binary64) x))
(*.f64 x x)
x
(*.f64 #s(literal 1/24 binary64) x)
#s(literal 1/24 binary64)
(*.f64 #s(literal 1/2 binary64) x)
#s(literal 1/2 binary64)
Outputs
#s(approx (tan (/ x 2)) (*.f64 #s(literal 1/2 binary64) x))
(*.f64 #s(literal 1/2 binary64) x)
#s(literal 1 binary64)
(/.f64 #s(literal 2 binary64) x)
#s(literal 2 binary64)
x
#s(approx (tan (/ x 2)) (*.f64 (fma.f64 (*.f64 #s(literal 1/24 binary64) x) x #s(literal 1/2 binary64)) x))
(*.f64 (fma.f64 (*.f64 #s(literal 1/24 binary64) x) x #s(literal 1/2 binary64)) x)
(*.f64 x x)
x
(*.f64 #s(literal 1/24 binary64) x)
#s(literal 1/24 binary64)
(*.f64 #s(literal 1/2 binary64) x)
#s(literal 1/2 binary64)

localize43.0ms (1%)

Memory
2.3MiB live, 40.3MiB allocated
Localize:

Found 7 expressions of interest:

NewMetricScoreProgram
accuracy0
(*.f64 #s(literal 1/2 binary64) x)
accuracy0.0625
(fma.f64 (*.f64 x x) (*.f64 #s(literal 1/24 binary64) x) (*.f64 #s(literal 1/2 binary64) x))
accuracy0.30078125
(*.f64 #s(literal 1/24 binary64) x)
accuracy31.471016495589602
#s(approx (tan (/ x 2)) (fma.f64 (*.f64 x x) (*.f64 #s(literal 1/24 binary64) x) (*.f64 #s(literal 1/2 binary64) x)))
accuracy0
(/.f64 #s(literal 2 binary64) x)
accuracy0.20703125
(/.f64 #s(literal 1 binary64) (/.f64 #s(literal 2 binary64) x))
accuracy31.295315347723506
#s(approx (tan (/ x 2)) (/.f64 #s(literal 1 binary64) (/.f64 #s(literal 2 binary64) x)))
Samples
34.0ms256×0valid
Compiler

Compiled 102 to 32 computations (68.6% saved)

Precisions
Click to see histograms. Total time spent on operations: 25.0ms
ival-tan: 9.0ms (36% of total)
ival-mult: 6.0ms (24% of total)
ival-div: 5.0ms (20% of total)
const: 4.0ms (16% of total)
ival-add: 1.0ms (4% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series6.0ms (0.1%)

Memory
6.9MiB live, 6.9MiB allocated
Counts
8 → 96
Calls
Call 1
Inputs
#s(alt #<batchref> (patch (/.f64 #s(literal 1 binary64) (/.f64 #s(literal 2 binary64) x)) #<representation binary64>) () ())
#s(alt #<batchref> (patch #s(approx (tan (/ x 2)) (/.f64 #s(literal 1 binary64) (/.f64 #s(literal 2 binary64) x))) #<representation binary64>) () ())
#s(alt #<batchref> (patch (/.f64 #s(literal 2 binary64) x) #<representation binary64>) () ())
#s(alt #<batchref> (patch (fma.f64 (*.f64 x x) (*.f64 #s(literal 1/24 binary64) x) (*.f64 #s(literal 1/2 binary64) x)) #<representation binary64>) () ())
#s(alt #<batchref> (patch #s(approx (tan (/ x 2)) (fma.f64 (*.f64 x x) (*.f64 #s(literal 1/24 binary64) x) (*.f64 #s(literal 1/2 binary64) x))) #<representation binary64>) () ())
#s(alt #<batchref> (patch (*.f64 x x) #<representation binary64>) () ())
#s(alt #<batchref> (patch (*.f64 #s(literal 1/24 binary64) x) #<representation binary64>) () ())
#s(alt #<batchref> (patch (*.f64 #s(literal 1/2 binary64) x) #<representation binary64>) () ())
Outputs
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (/.f64 #s(literal 1 binary64) (/.f64 #s(literal 2 binary64) x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (/.f64 #s(literal 1 binary64) (/.f64 #s(literal 2 binary64) x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (/.f64 #s(literal 1 binary64) (/.f64 #s(literal 2 binary64) x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (/.f64 #s(literal 1 binary64) (/.f64 #s(literal 2 binary64) x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch #s(approx (tan (/ x 2)) (/.f64 #s(literal 1 binary64) (/.f64 #s(literal 2 binary64) x))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch #s(approx (tan (/ x 2)) (/.f64 #s(literal 1 binary64) (/.f64 #s(literal 2 binary64) x))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch #s(approx (tan (/ x 2)) (/.f64 #s(literal 1 binary64) (/.f64 #s(literal 2 binary64) x))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch #s(approx (tan (/ x 2)) (/.f64 #s(literal 1 binary64) (/.f64 #s(literal 2 binary64) x))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (/.f64 #s(literal 2 binary64) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (/.f64 #s(literal 2 binary64) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (/.f64 #s(literal 2 binary64) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (/.f64 #s(literal 2 binary64) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (fma.f64 (*.f64 x x) (*.f64 #s(literal 1/24 binary64) x) (*.f64 #s(literal 1/2 binary64) x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (fma.f64 (*.f64 x x) (*.f64 #s(literal 1/24 binary64) x) (*.f64 #s(literal 1/2 binary64) x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (fma.f64 (*.f64 x x) (*.f64 #s(literal 1/24 binary64) x) (*.f64 #s(literal 1/2 binary64) x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (fma.f64 (*.f64 x x) (*.f64 #s(literal 1/24 binary64) x) (*.f64 #s(literal 1/2 binary64) x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch #s(approx (tan (/ x 2)) (fma.f64 (*.f64 x x) (*.f64 #s(literal 1/24 binary64) x) (*.f64 #s(literal 1/2 binary64) x))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch #s(approx (tan (/ x 2)) (fma.f64 (*.f64 x x) (*.f64 #s(literal 1/24 binary64) x) (*.f64 #s(literal 1/2 binary64) x))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch #s(approx (tan (/ x 2)) (fma.f64 (*.f64 x x) (*.f64 #s(literal 1/24 binary64) x) (*.f64 #s(literal 1/2 binary64) x))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch #s(approx (tan (/ x 2)) (fma.f64 (*.f64 x x) (*.f64 #s(literal 1/24 binary64) x) (*.f64 #s(literal 1/2 binary64) x))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (*.f64 #s(literal 1/24 binary64) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (*.f64 #s(literal 1/24 binary64) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (*.f64 #s(literal 1/24 binary64) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (*.f64 #s(literal 1/24 binary64) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (*.f64 #s(literal 1/2 binary64) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (*.f64 #s(literal 1/2 binary64) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (*.f64 #s(literal 1/2 binary64) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (*.f64 #s(literal 1/2 binary64) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (/.f64 #s(literal 1 binary64) (/.f64 #s(literal 2 binary64) x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (/.f64 #s(literal 1 binary64) (/.f64 #s(literal 2 binary64) x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (/.f64 #s(literal 1 binary64) (/.f64 #s(literal 2 binary64) x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (/.f64 #s(literal 1 binary64) (/.f64 #s(literal 2 binary64) x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch #s(approx (tan (/ x 2)) (/.f64 #s(literal 1 binary64) (/.f64 #s(literal 2 binary64) x))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch #s(approx (tan (/ x 2)) (/.f64 #s(literal 1 binary64) (/.f64 #s(literal 2 binary64) x))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch #s(approx (tan (/ x 2)) (/.f64 #s(literal 1 binary64) (/.f64 #s(literal 2 binary64) x))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch #s(approx (tan (/ x 2)) (/.f64 #s(literal 1 binary64) (/.f64 #s(literal 2 binary64) x))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (/.f64 #s(literal 2 binary64) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (/.f64 #s(literal 2 binary64) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (/.f64 #s(literal 2 binary64) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (/.f64 #s(literal 2 binary64) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (fma.f64 (*.f64 x x) (*.f64 #s(literal 1/24 binary64) x) (*.f64 #s(literal 1/2 binary64) x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (fma.f64 (*.f64 x x) (*.f64 #s(literal 1/24 binary64) x) (*.f64 #s(literal 1/2 binary64) x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (fma.f64 (*.f64 x x) (*.f64 #s(literal 1/24 binary64) x) (*.f64 #s(literal 1/2 binary64) x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (fma.f64 (*.f64 x x) (*.f64 #s(literal 1/24 binary64) x) (*.f64 #s(literal 1/2 binary64) x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch #s(approx (tan (/ x 2)) (fma.f64 (*.f64 x x) (*.f64 #s(literal 1/24 binary64) x) (*.f64 #s(literal 1/2 binary64) x))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch #s(approx (tan (/ x 2)) (fma.f64 (*.f64 x x) (*.f64 #s(literal 1/24 binary64) x) (*.f64 #s(literal 1/2 binary64) x))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch #s(approx (tan (/ x 2)) (fma.f64 (*.f64 x x) (*.f64 #s(literal 1/24 binary64) x) (*.f64 #s(literal 1/2 binary64) x))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch #s(approx (tan (/ x 2)) (fma.f64 (*.f64 x x) (*.f64 #s(literal 1/24 binary64) x) (*.f64 #s(literal 1/2 binary64) x))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (*.f64 #s(literal 1/24 binary64) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (*.f64 #s(literal 1/24 binary64) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (*.f64 #s(literal 1/24 binary64) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (*.f64 #s(literal 1/24 binary64) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (*.f64 #s(literal 1/2 binary64) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (*.f64 #s(literal 1/2 binary64) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (*.f64 #s(literal 1/2 binary64) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (*.f64 #s(literal 1/2 binary64) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (/.f64 #s(literal 1 binary64) (/.f64 #s(literal 2 binary64) x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (/.f64 #s(literal 1 binary64) (/.f64 #s(literal 2 binary64) x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (/.f64 #s(literal 1 binary64) (/.f64 #s(literal 2 binary64) x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (/.f64 #s(literal 1 binary64) (/.f64 #s(literal 2 binary64) x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch #s(approx (tan (/ x 2)) (/.f64 #s(literal 1 binary64) (/.f64 #s(literal 2 binary64) x))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch #s(approx (tan (/ x 2)) (/.f64 #s(literal 1 binary64) (/.f64 #s(literal 2 binary64) x))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch #s(approx (tan (/ x 2)) (/.f64 #s(literal 1 binary64) (/.f64 #s(literal 2 binary64) x))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch #s(approx (tan (/ x 2)) (/.f64 #s(literal 1 binary64) (/.f64 #s(literal 2 binary64) x))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (/.f64 #s(literal 2 binary64) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (/.f64 #s(literal 2 binary64) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (/.f64 #s(literal 2 binary64) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (/.f64 #s(literal 2 binary64) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (fma.f64 (*.f64 x x) (*.f64 #s(literal 1/24 binary64) x) (*.f64 #s(literal 1/2 binary64) x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (fma.f64 (*.f64 x x) (*.f64 #s(literal 1/24 binary64) x) (*.f64 #s(literal 1/2 binary64) x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (fma.f64 (*.f64 x x) (*.f64 #s(literal 1/24 binary64) x) (*.f64 #s(literal 1/2 binary64) x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (fma.f64 (*.f64 x x) (*.f64 #s(literal 1/24 binary64) x) (*.f64 #s(literal 1/2 binary64) x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch #s(approx (tan (/ x 2)) (fma.f64 (*.f64 x x) (*.f64 #s(literal 1/24 binary64) x) (*.f64 #s(literal 1/2 binary64) x))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch #s(approx (tan (/ x 2)) (fma.f64 (*.f64 x x) (*.f64 #s(literal 1/24 binary64) x) (*.f64 #s(literal 1/2 binary64) x))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch #s(approx (tan (/ x 2)) (fma.f64 (*.f64 x x) (*.f64 #s(literal 1/24 binary64) x) (*.f64 #s(literal 1/2 binary64) x))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch #s(approx (tan (/ x 2)) (fma.f64 (*.f64 x x) (*.f64 #s(literal 1/24 binary64) x) (*.f64 #s(literal 1/2 binary64) x))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (*.f64 #s(literal 1/24 binary64) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (*.f64 #s(literal 1/24 binary64) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (*.f64 #s(literal 1/24 binary64) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (*.f64 #s(literal 1/24 binary64) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (*.f64 #s(literal 1/2 binary64) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (*.f64 #s(literal 1/2 binary64) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (*.f64 #s(literal 1/2 binary64) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (*.f64 #s(literal 1/2 binary64) x) #<representation binary64>) () ())) ())
Calls

3 calls:

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

simplify234.0ms (5.4%)

Memory
2.3MiB live, 150.5MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
036514
199514
2247514
3567514
4918514
51630514
62914514
73972514
84653514
95250514
106056514
116408514
126636514
136830514
147016514
157207514
08383493
Stop Event
iter limit
node limit
Counts
96 → 96
Calls
Call 1
Inputs
(* 1/2 x)
(* 1/2 x)
(* 1/2 x)
(* 1/2 x)
(* 1/2 x)
(* x (+ 1/2 (* 1/24 (pow x 2))))
(* x (+ 1/2 (* (pow x 2) (+ 1/24 (* 1/240 (pow x 2))))))
(* x (+ 1/2 (* (pow x 2) (+ 1/24 (* (pow x 2) (+ 1/240 (* 17/40320 (pow x 2))))))))
(/ 2 x)
(/ 2 x)
(/ 2 x)
(/ 2 x)
(* 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 x)
(* x (+ 1/2 (* 1/24 (pow x 2))))
(* x (+ 1/2 (* (pow x 2) (+ 1/24 (* 1/240 (pow x 2))))))
(* x (+ 1/2 (* (pow x 2) (+ 1/24 (* (pow x 2) (+ 1/240 (* 17/40320 (pow x 2))))))))
(pow x 2)
(pow x 2)
(pow x 2)
(pow x 2)
(* 1/24 x)
(* 1/24 x)
(* 1/24 x)
(* 1/24 x)
(* 1/2 x)
(* 1/2 x)
(* 1/2 x)
(* 1/2 x)
(* 1/2 x)
(* 1/2 x)
(* 1/2 x)
(* 1/2 x)
(/ (sin (* 1/2 x)) (cos (* 1/2 x)))
(/ (sin (* 1/2 x)) (cos (* 1/2 x)))
(/ (sin (* 1/2 x)) (cos (* 1/2 x)))
(/ (sin (* 1/2 x)) (cos (* 1/2 x)))
(/ 2 x)
(/ 2 x)
(/ 2 x)
(/ 2 x)
(* 1/24 (pow x 3))
(* (pow x 3) (+ 1/24 (* 1/2 (/ 1 (pow x 2)))))
(* (pow x 3) (+ 1/24 (* 1/2 (/ 1 (pow x 2)))))
(* (pow x 3) (+ 1/24 (* 1/2 (/ 1 (pow x 2)))))
(/ (sin (* 1/2 x)) (cos (* 1/2 x)))
(/ (sin (* 1/2 x)) (cos (* 1/2 x)))
(/ (sin (* 1/2 x)) (cos (* 1/2 x)))
(/ (sin (* 1/2 x)) (cos (* 1/2 x)))
(pow x 2)
(pow x 2)
(pow x 2)
(pow x 2)
(* 1/24 x)
(* 1/24 x)
(* 1/24 x)
(* 1/24 x)
(* 1/2 x)
(* 1/2 x)
(* 1/2 x)
(* 1/2 x)
(* 1/2 x)
(* 1/2 x)
(* 1/2 x)
(* 1/2 x)
(/ (sin (* 1/2 x)) (cos (* 1/2 x)))
(/ (sin (* 1/2 x)) (cos (* 1/2 x)))
(/ (sin (* 1/2 x)) (cos (* 1/2 x)))
(/ (sin (* 1/2 x)) (cos (* 1/2 x)))
(/ 2 x)
(/ 2 x)
(/ 2 x)
(/ 2 x)
(* 1/24 (pow x 3))
(* (pow x 3) (+ 1/24 (* 1/2 (/ 1 (pow x 2)))))
(* (pow x 3) (+ 1/24 (* 1/2 (/ 1 (pow x 2)))))
(* (pow x 3) (+ 1/24 (* 1/2 (/ 1 (pow x 2)))))
(/ (sin (* 1/2 x)) (cos (* 1/2 x)))
(/ (sin (* 1/2 x)) (cos (* 1/2 x)))
(/ (sin (* 1/2 x)) (cos (* 1/2 x)))
(/ (sin (* 1/2 x)) (cos (* 1/2 x)))
(pow x 2)
(pow x 2)
(pow x 2)
(pow x 2)
(* 1/24 x)
(* 1/24 x)
(* 1/24 x)
(* 1/24 x)
(* 1/2 x)
(* 1/2 x)
(* 1/2 x)
(* 1/2 x)
Outputs
(*.f64 #s(literal 1/2 binary64) x)
(*.f64 #s(literal 1/2 binary64) x)
(*.f64 #s(literal 1/2 binary64) x)
(*.f64 #s(literal 1/2 binary64) x)
(*.f64 #s(literal 1/2 binary64) x)
(*.f64 (fma.f64 (*.f64 x x) #s(literal 1/24 binary64) #s(literal 1/2 binary64)) x)
(*.f64 (fma.f64 (fma.f64 #s(literal 1/240 binary64) (*.f64 x x) #s(literal 1/24 binary64)) (*.f64 x x) #s(literal 1/2 binary64)) x)
(*.f64 (fma.f64 (fma.f64 (fma.f64 #s(literal 17/40320 binary64) (*.f64 x x) #s(literal 1/240 binary64)) (*.f64 x x) #s(literal 1/24 binary64)) (*.f64 x x) #s(literal 1/2 binary64)) x)
(/.f64 #s(literal 2 binary64) x)
(/.f64 #s(literal 2 binary64) x)
(/.f64 #s(literal 2 binary64) x)
(/.f64 #s(literal 2 binary64) x)
(*.f64 #s(literal 1/2 binary64) x)
(*.f64 (fma.f64 (*.f64 x x) #s(literal 1/24 binary64) #s(literal 1/2 binary64)) x)
(*.f64 (fma.f64 (*.f64 x x) #s(literal 1/24 binary64) #s(literal 1/2 binary64)) x)
(*.f64 (fma.f64 (*.f64 x x) #s(literal 1/24 binary64) #s(literal 1/2 binary64)) x)
(*.f64 #s(literal 1/2 binary64) x)
(*.f64 (fma.f64 (*.f64 x x) #s(literal 1/24 binary64) #s(literal 1/2 binary64)) x)
(*.f64 (fma.f64 (fma.f64 #s(literal 1/240 binary64) (*.f64 x x) #s(literal 1/24 binary64)) (*.f64 x x) #s(literal 1/2 binary64)) x)
(*.f64 (fma.f64 (fma.f64 (fma.f64 #s(literal 17/40320 binary64) (*.f64 x x) #s(literal 1/240 binary64)) (*.f64 x x) #s(literal 1/24 binary64)) (*.f64 x x) #s(literal 1/2 binary64)) x)
(*.f64 x x)
(*.f64 x x)
(*.f64 x x)
(*.f64 x x)
(*.f64 #s(literal 1/24 binary64) x)
(*.f64 #s(literal 1/24 binary64) x)
(*.f64 #s(literal 1/24 binary64) x)
(*.f64 #s(literal 1/24 binary64) x)
(*.f64 #s(literal 1/2 binary64) x)
(*.f64 #s(literal 1/2 binary64) x)
(*.f64 #s(literal 1/2 binary64) x)
(*.f64 #s(literal 1/2 binary64) x)
(*.f64 #s(literal 1/2 binary64) x)
(*.f64 #s(literal 1/2 binary64) x)
(*.f64 #s(literal 1/2 binary64) x)
(*.f64 #s(literal 1/2 binary64) x)
(/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (cos.f64 (*.f64 #s(literal 1/2 binary64) x)))
(/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (cos.f64 (*.f64 #s(literal 1/2 binary64) x)))
(/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (cos.f64 (*.f64 #s(literal 1/2 binary64) x)))
(/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (cos.f64 (*.f64 #s(literal 1/2 binary64) x)))
(/.f64 #s(literal 2 binary64) x)
(/.f64 #s(literal 2 binary64) x)
(/.f64 #s(literal 2 binary64) x)
(/.f64 #s(literal 2 binary64) x)
(*.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal 1/24 binary64))
(*.f64 (fma.f64 (*.f64 x x) #s(literal 1/24 binary64) #s(literal 1/2 binary64)) x)
(*.f64 (fma.f64 (*.f64 x x) #s(literal 1/24 binary64) #s(literal 1/2 binary64)) x)
(*.f64 (fma.f64 (*.f64 x x) #s(literal 1/24 binary64) #s(literal 1/2 binary64)) x)
(/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (cos.f64 (*.f64 #s(literal 1/2 binary64) x)))
(/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (cos.f64 (*.f64 #s(literal 1/2 binary64) x)))
(/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (cos.f64 (*.f64 #s(literal 1/2 binary64) x)))
(/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (cos.f64 (*.f64 #s(literal 1/2 binary64) x)))
(*.f64 x x)
(*.f64 x x)
(*.f64 x x)
(*.f64 x x)
(*.f64 #s(literal 1/24 binary64) x)
(*.f64 #s(literal 1/24 binary64) x)
(*.f64 #s(literal 1/24 binary64) x)
(*.f64 #s(literal 1/24 binary64) x)
(*.f64 #s(literal 1/2 binary64) x)
(*.f64 #s(literal 1/2 binary64) x)
(*.f64 #s(literal 1/2 binary64) x)
(*.f64 #s(literal 1/2 binary64) x)
(*.f64 #s(literal 1/2 binary64) x)
(*.f64 #s(literal 1/2 binary64) x)
(*.f64 #s(literal 1/2 binary64) x)
(*.f64 #s(literal 1/2 binary64) x)
(/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (cos.f64 (*.f64 #s(literal 1/2 binary64) x)))
(/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (cos.f64 (*.f64 #s(literal 1/2 binary64) x)))
(/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (cos.f64 (*.f64 #s(literal 1/2 binary64) x)))
(/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (cos.f64 (*.f64 #s(literal 1/2 binary64) x)))
(/.f64 #s(literal 2 binary64) x)
(/.f64 #s(literal 2 binary64) x)
(/.f64 #s(literal 2 binary64) x)
(/.f64 #s(literal 2 binary64) x)
(*.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal 1/24 binary64))
(*.f64 (fma.f64 (*.f64 x x) #s(literal 1/24 binary64) #s(literal 1/2 binary64)) x)
(*.f64 (fma.f64 (*.f64 x x) #s(literal 1/24 binary64) #s(literal 1/2 binary64)) x)
(*.f64 (fma.f64 (*.f64 x x) #s(literal 1/24 binary64) #s(literal 1/2 binary64)) x)
(/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (cos.f64 (*.f64 #s(literal 1/2 binary64) x)))
(/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (cos.f64 (*.f64 #s(literal 1/2 binary64) x)))
(/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (cos.f64 (*.f64 #s(literal 1/2 binary64) x)))
(/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (cos.f64 (*.f64 #s(literal 1/2 binary64) x)))
(*.f64 x x)
(*.f64 x x)
(*.f64 x x)
(*.f64 x x)
(*.f64 #s(literal 1/24 binary64) x)
(*.f64 #s(literal 1/24 binary64) x)
(*.f64 #s(literal 1/24 binary64) x)
(*.f64 #s(literal 1/24 binary64) x)
(*.f64 #s(literal 1/2 binary64) x)
(*.f64 #s(literal 1/2 binary64) x)
(*.f64 #s(literal 1/2 binary64) x)
(*.f64 #s(literal 1/2 binary64) x)

rewrite162.0ms (3.7%)

Memory
4.2MiB live, 128.2MiB allocated
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01552
02248
17246
246946
3502246
0982244
Stop Event
iter limit
node limit
iter limit
Counts
8 → 341
Calls
Call 1
Inputs
(/.f64 #s(literal 1 binary64) (/.f64 #s(literal 2 binary64) x))
#s(approx (tan (/ x 2)) (/.f64 #s(literal 1 binary64) (/.f64 #s(literal 2 binary64) x)))
(/.f64 #s(literal 2 binary64) x)
(fma.f64 (*.f64 x x) (*.f64 #s(literal 1/24 binary64) x) (*.f64 #s(literal 1/2 binary64) x))
#s(approx (tan (/ x 2)) (fma.f64 (*.f64 x x) (*.f64 #s(literal 1/24 binary64) x) (*.f64 #s(literal 1/2 binary64) x)))
(*.f64 x x)
(*.f64 #s(literal 1/24 binary64) x)
(*.f64 #s(literal 1/2 binary64) x)
Outputs
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>

eval69.0ms (1.6%)

Memory
-0.2MiB live, 122.9MiB allocated
Compiler

Compiled 8 245 to 1 029 computations (87.5% saved)

prune15.0ms (0.3%)

Memory
1.0MiB live, 37.7MiB allocated
Pruning

8 alts after pruning (2 fresh and 6 done)

PrunedKeptTotal
New4352437
Fresh000
Picked022
Done044
Total4358443
Accuracy
100.0%
Counts
443 → 8
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(tan.f64 (*.f64 x #s(literal 1/2 binary64)))
50.8%
#s(approx (tan (/ x 2)) (fma.f64 (*.f64 x x) (*.f64 #s(literal 1/24 binary64) x) (*.f64 #s(literal 1/2 binary64) x)))
50.9%
#s(approx (tan (/ x 2)) (/.f64 #s(literal 1 binary64) (/.f64 #s(literal 2 binary64) x)))
3.7%
#s(approx (tan (/ x 2)) (/.f64 #s(literal 1 binary64) (/.f64 #s(literal -2 binary64) x)))
50.8%
#s(approx (tan (/ x 2)) (*.f64 (fma.f64 (fma.f64 #s(literal 1/240 binary64) (*.f64 x x) #s(literal 1/24 binary64)) (*.f64 x x) #s(literal 1/2 binary64)) x))
50.8%
#s(approx (tan (/ x 2)) (*.f64 (fma.f64 (*.f64 x x) #s(literal 1/24 binary64) #s(literal 1/2 binary64)) x))
3.7%
#s(approx (tan (/ x 2)) (*.f64 x #s(literal -1/2 binary64)))
51.1%
#s(approx (tan (/ x 2)) (*.f64 #s(literal 1/2 binary64) x))
Compiler

Compiled 86 to 69 computations (19.8% saved)

simplify3.0ms (0.1%)

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

Found 5 expressions of interest:

NewMetricScoreProgram
cost-diff0
(/.f64 #s(literal -2 binary64) x)
cost-diff0
#s(approx (tan (/ x 2)) (/.f64 #s(literal 1 binary64) (/.f64 #s(literal -2 binary64) x)))
cost-diff1088
(/.f64 #s(literal 1 binary64) (/.f64 #s(literal -2 binary64) x))
cost-diff0
(*.f64 x #s(literal -1/2 binary64))
cost-diff0
#s(approx (tan (/ x 2)) (*.f64 x #s(literal -1/2 binary64)))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01234
01530
11930
01930
Stop Event
iter limit
saturated
iter limit
Calls
Call 1
Inputs
#s(approx (tan (/ x 2)) (*.f64 x #s(literal -1/2 binary64)))
(*.f64 x #s(literal -1/2 binary64))
x
#s(literal -1/2 binary64)
#s(approx (tan (/ x 2)) (/.f64 #s(literal 1 binary64) (/.f64 #s(literal -2 binary64) x)))
(/.f64 #s(literal 1 binary64) (/.f64 #s(literal -2 binary64) x))
#s(literal 1 binary64)
(/.f64 #s(literal -2 binary64) x)
#s(literal -2 binary64)
x
Outputs
#s(approx (tan (/ x 2)) (*.f64 #s(literal -1/2 binary64) x))
(*.f64 #s(literal -1/2 binary64) x)
x
#s(literal -1/2 binary64)
#s(approx (tan (/ x 2)) (*.f64 #s(literal -1/2 binary64) x))
(*.f64 #s(literal -1/2 binary64) x)
#s(literal 1 binary64)
(/.f64 #s(literal -2 binary64) x)
#s(literal -2 binary64)
x

localize53.0ms (1.2%)

Memory
-48.7MiB live, 55.9MiB allocated
Localize:

Found 5 expressions of interest:

NewMetricScoreProgram
accuracy0
(/.f64 #s(literal -2 binary64) x)
accuracy0.20703125
(/.f64 #s(literal 1 binary64) (/.f64 #s(literal -2 binary64) x))
accuracy61.65532964880974
#s(approx (tan (/ x 2)) (/.f64 #s(literal 1 binary64) (/.f64 #s(literal -2 binary64) x)))
accuracy0
(*.f64 x #s(literal -1/2 binary64))
accuracy61.65532964880974
#s(approx (tan (/ x 2)) (*.f64 x #s(literal -1/2 binary64)))
Samples
23.0ms256×0valid
Compiler

Compiled 60 to 24 computations (60% saved)

Precisions
Click to see histograms. Total time spent on operations: 16.0ms
ival-tan: 8.0ms (50.1% of total)
ival-div: 5.0ms (31.3% of total)
ival-mult: 2.0ms (12.5% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series3.0ms (0.1%)

Memory
4.4MiB live, 4.4MiB allocated
Counts
5 → 60
Calls
Call 1
Inputs
#s(alt #<batchref> (patch #s(approx (tan (/ x 2)) (*.f64 x #s(literal -1/2 binary64))) #<representation binary64>) () ())
#s(alt #<batchref> (patch (*.f64 x #s(literal -1/2 binary64)) #<representation binary64>) () ())
#s(alt #<batchref> (patch (/.f64 #s(literal 1 binary64) (/.f64 #s(literal -2 binary64) x)) #<representation binary64>) () ())
#s(alt #<batchref> (patch #s(approx (tan (/ x 2)) (/.f64 #s(literal 1 binary64) (/.f64 #s(literal -2 binary64) x))) #<representation binary64>) () ())
#s(alt #<batchref> (patch (/.f64 #s(literal -2 binary64) x) #<representation binary64>) () ())
Outputs
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch #s(approx (tan (/ x 2)) (*.f64 x #s(literal -1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch #s(approx (tan (/ x 2)) (*.f64 x #s(literal -1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch #s(approx (tan (/ x 2)) (*.f64 x #s(literal -1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch #s(approx (tan (/ x 2)) (*.f64 x #s(literal -1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (*.f64 x #s(literal -1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (*.f64 x #s(literal -1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (*.f64 x #s(literal -1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (*.f64 x #s(literal -1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (/.f64 #s(literal 1 binary64) (/.f64 #s(literal -2 binary64) x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (/.f64 #s(literal 1 binary64) (/.f64 #s(literal -2 binary64) x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (/.f64 #s(literal 1 binary64) (/.f64 #s(literal -2 binary64) x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (/.f64 #s(literal 1 binary64) (/.f64 #s(literal -2 binary64) x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch #s(approx (tan (/ x 2)) (/.f64 #s(literal 1 binary64) (/.f64 #s(literal -2 binary64) x))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch #s(approx (tan (/ x 2)) (/.f64 #s(literal 1 binary64) (/.f64 #s(literal -2 binary64) x))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch #s(approx (tan (/ x 2)) (/.f64 #s(literal 1 binary64) (/.f64 #s(literal -2 binary64) x))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch #s(approx (tan (/ x 2)) (/.f64 #s(literal 1 binary64) (/.f64 #s(literal -2 binary64) x))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (/.f64 #s(literal -2 binary64) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (/.f64 #s(literal -2 binary64) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (/.f64 #s(literal -2 binary64) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (/.f64 #s(literal -2 binary64) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch #s(approx (tan (/ x 2)) (*.f64 x #s(literal -1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch #s(approx (tan (/ x 2)) (*.f64 x #s(literal -1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch #s(approx (tan (/ x 2)) (*.f64 x #s(literal -1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch #s(approx (tan (/ x 2)) (*.f64 x #s(literal -1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (*.f64 x #s(literal -1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (*.f64 x #s(literal -1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (*.f64 x #s(literal -1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (*.f64 x #s(literal -1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (/.f64 #s(literal 1 binary64) (/.f64 #s(literal -2 binary64) x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (/.f64 #s(literal 1 binary64) (/.f64 #s(literal -2 binary64) x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (/.f64 #s(literal 1 binary64) (/.f64 #s(literal -2 binary64) x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (/.f64 #s(literal 1 binary64) (/.f64 #s(literal -2 binary64) x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch #s(approx (tan (/ x 2)) (/.f64 #s(literal 1 binary64) (/.f64 #s(literal -2 binary64) x))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch #s(approx (tan (/ x 2)) (/.f64 #s(literal 1 binary64) (/.f64 #s(literal -2 binary64) x))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch #s(approx (tan (/ x 2)) (/.f64 #s(literal 1 binary64) (/.f64 #s(literal -2 binary64) x))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch #s(approx (tan (/ x 2)) (/.f64 #s(literal 1 binary64) (/.f64 #s(literal -2 binary64) x))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (/.f64 #s(literal -2 binary64) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (/.f64 #s(literal -2 binary64) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (/.f64 #s(literal -2 binary64) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (/.f64 #s(literal -2 binary64) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch #s(approx (tan (/ x 2)) (*.f64 x #s(literal -1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch #s(approx (tan (/ x 2)) (*.f64 x #s(literal -1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch #s(approx (tan (/ x 2)) (*.f64 x #s(literal -1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch #s(approx (tan (/ x 2)) (*.f64 x #s(literal -1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (*.f64 x #s(literal -1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (*.f64 x #s(literal -1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (*.f64 x #s(literal -1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (*.f64 x #s(literal -1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (/.f64 #s(literal 1 binary64) (/.f64 #s(literal -2 binary64) x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (/.f64 #s(literal 1 binary64) (/.f64 #s(literal -2 binary64) x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (/.f64 #s(literal 1 binary64) (/.f64 #s(literal -2 binary64) x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (/.f64 #s(literal 1 binary64) (/.f64 #s(literal -2 binary64) x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch #s(approx (tan (/ x 2)) (/.f64 #s(literal 1 binary64) (/.f64 #s(literal -2 binary64) x))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch #s(approx (tan (/ x 2)) (/.f64 #s(literal 1 binary64) (/.f64 #s(literal -2 binary64) x))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch #s(approx (tan (/ x 2)) (/.f64 #s(literal 1 binary64) (/.f64 #s(literal -2 binary64) x))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch #s(approx (tan (/ x 2)) (/.f64 #s(literal 1 binary64) (/.f64 #s(literal -2 binary64) x))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (/.f64 #s(literal -2 binary64) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (/.f64 #s(literal -2 binary64) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (/.f64 #s(literal -2 binary64) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (/.f64 #s(literal -2 binary64) x) #<representation binary64>) () ())) ())
Calls

3 calls:

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

simplify16.0ms (0.4%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
030348
178348
2195348
3445348
4643348
5701348
6704348
0704336
Stop Event
iter limit
saturated
Counts
60 → 60
Calls
Call 1
Inputs
(* 1/2 x)
(* x (+ 1/2 (* 1/24 (pow x 2))))
(* x (+ 1/2 (* (pow x 2) (+ 1/24 (* 1/240 (pow x 2))))))
(* x (+ 1/2 (* (pow x 2) (+ 1/24 (* (pow x 2) (+ 1/240 (* 17/40320 (pow x 2))))))))
(* -1/2 x)
(* -1/2 x)
(* -1/2 x)
(* -1/2 x)
(* -1/2 x)
(* -1/2 x)
(* -1/2 x)
(* -1/2 x)
(* 1/2 x)
(* x (+ 1/2 (* 1/24 (pow x 2))))
(* x (+ 1/2 (* (pow x 2) (+ 1/24 (* 1/240 (pow x 2))))))
(* x (+ 1/2 (* (pow x 2) (+ 1/24 (* (pow x 2) (+ 1/240 (* 17/40320 (pow x 2))))))))
(/ -2 x)
(/ -2 x)
(/ -2 x)
(/ -2 x)
(/ (sin (* 1/2 x)) (cos (* 1/2 x)))
(/ (sin (* 1/2 x)) (cos (* 1/2 x)))
(/ (sin (* 1/2 x)) (cos (* 1/2 x)))
(/ (sin (* 1/2 x)) (cos (* 1/2 x)))
(* -1/2 x)
(* -1/2 x)
(* -1/2 x)
(* -1/2 x)
(* -1/2 x)
(* -1/2 x)
(* -1/2 x)
(* -1/2 x)
(/ (sin (* 1/2 x)) (cos (* 1/2 x)))
(/ (sin (* 1/2 x)) (cos (* 1/2 x)))
(/ (sin (* 1/2 x)) (cos (* 1/2 x)))
(/ (sin (* 1/2 x)) (cos (* 1/2 x)))
(/ -2 x)
(/ -2 x)
(/ -2 x)
(/ -2 x)
(/ (sin (* 1/2 x)) (cos (* 1/2 x)))
(/ (sin (* 1/2 x)) (cos (* 1/2 x)))
(/ (sin (* 1/2 x)) (cos (* 1/2 x)))
(/ (sin (* 1/2 x)) (cos (* 1/2 x)))
(* -1/2 x)
(* -1/2 x)
(* -1/2 x)
(* -1/2 x)
(* -1/2 x)
(* -1/2 x)
(* -1/2 x)
(* -1/2 x)
(/ (sin (* 1/2 x)) (cos (* 1/2 x)))
(/ (sin (* 1/2 x)) (cos (* 1/2 x)))
(/ (sin (* 1/2 x)) (cos (* 1/2 x)))
(/ (sin (* 1/2 x)) (cos (* 1/2 x)))
(/ -2 x)
(/ -2 x)
(/ -2 x)
(/ -2 x)
Outputs
(*.f64 #s(literal 1/2 binary64) x)
(*.f64 (fma.f64 (*.f64 x x) #s(literal 1/24 binary64) #s(literal 1/2 binary64)) x)
(*.f64 (fma.f64 (fma.f64 #s(literal 1/240 binary64) (*.f64 x x) #s(literal 1/24 binary64)) (*.f64 x x) #s(literal 1/2 binary64)) x)
(*.f64 (fma.f64 (fma.f64 (fma.f64 #s(literal 17/40320 binary64) (*.f64 x x) #s(literal 1/240 binary64)) (*.f64 x x) #s(literal 1/24 binary64)) (*.f64 x x) #s(literal 1/2 binary64)) x)
(*.f64 #s(literal -1/2 binary64) x)
(*.f64 #s(literal -1/2 binary64) x)
(*.f64 #s(literal -1/2 binary64) x)
(*.f64 #s(literal -1/2 binary64) x)
(*.f64 #s(literal -1/2 binary64) x)
(*.f64 #s(literal -1/2 binary64) x)
(*.f64 #s(literal -1/2 binary64) x)
(*.f64 #s(literal -1/2 binary64) x)
(*.f64 #s(literal 1/2 binary64) x)
(*.f64 (fma.f64 (*.f64 x x) #s(literal 1/24 binary64) #s(literal 1/2 binary64)) x)
(*.f64 (fma.f64 (fma.f64 #s(literal 1/240 binary64) (*.f64 x x) #s(literal 1/24 binary64)) (*.f64 x x) #s(literal 1/2 binary64)) x)
(*.f64 (fma.f64 (fma.f64 (fma.f64 #s(literal 17/40320 binary64) (*.f64 x x) #s(literal 1/240 binary64)) (*.f64 x x) #s(literal 1/24 binary64)) (*.f64 x x) #s(literal 1/2 binary64)) x)
(/.f64 #s(literal -2 binary64) x)
(/.f64 #s(literal -2 binary64) x)
(/.f64 #s(literal -2 binary64) x)
(/.f64 #s(literal -2 binary64) x)
(/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (cos.f64 (*.f64 #s(literal 1/2 binary64) x)))
(/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (cos.f64 (*.f64 #s(literal 1/2 binary64) x)))
(/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (cos.f64 (*.f64 #s(literal 1/2 binary64) x)))
(/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (cos.f64 (*.f64 #s(literal 1/2 binary64) x)))
(*.f64 #s(literal -1/2 binary64) x)
(*.f64 #s(literal -1/2 binary64) x)
(*.f64 #s(literal -1/2 binary64) x)
(*.f64 #s(literal -1/2 binary64) x)
(*.f64 #s(literal -1/2 binary64) x)
(*.f64 #s(literal -1/2 binary64) x)
(*.f64 #s(literal -1/2 binary64) x)
(*.f64 #s(literal -1/2 binary64) x)
(/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (cos.f64 (*.f64 #s(literal 1/2 binary64) x)))
(/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (cos.f64 (*.f64 #s(literal 1/2 binary64) x)))
(/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (cos.f64 (*.f64 #s(literal 1/2 binary64) x)))
(/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (cos.f64 (*.f64 #s(literal 1/2 binary64) x)))
(/.f64 #s(literal -2 binary64) x)
(/.f64 #s(literal -2 binary64) x)
(/.f64 #s(literal -2 binary64) x)
(/.f64 #s(literal -2 binary64) x)
(/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (cos.f64 (*.f64 #s(literal 1/2 binary64) x)))
(/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (cos.f64 (*.f64 #s(literal 1/2 binary64) x)))
(/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (cos.f64 (*.f64 #s(literal 1/2 binary64) x)))
(/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (cos.f64 (*.f64 #s(literal 1/2 binary64) x)))
(*.f64 #s(literal -1/2 binary64) x)
(*.f64 #s(literal -1/2 binary64) x)
(*.f64 #s(literal -1/2 binary64) x)
(*.f64 #s(literal -1/2 binary64) x)
(*.f64 #s(literal -1/2 binary64) x)
(*.f64 #s(literal -1/2 binary64) x)
(*.f64 #s(literal -1/2 binary64) x)
(*.f64 #s(literal -1/2 binary64) x)
(/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (cos.f64 (*.f64 #s(literal 1/2 binary64) x)))
(/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (cos.f64 (*.f64 #s(literal 1/2 binary64) x)))
(/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (cos.f64 (*.f64 #s(literal 1/2 binary64) x)))
(/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (cos.f64 (*.f64 #s(literal 1/2 binary64) x)))
(/.f64 #s(literal -2 binary64) x)
(/.f64 #s(literal -2 binary64) x)
(/.f64 #s(literal -2 binary64) x)
(/.f64 #s(literal -2 binary64) x)

rewrite66.0ms (1.5%)

Memory
8.8MiB live, 82.4MiB allocated
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01229
01525
14425
213425
345725
0233125
Stop Event
iter limit
iter limit
node limit
iter limit
Counts
5 → 349
Calls
Call 1
Inputs
#s(approx (tan (/ x 2)) (*.f64 x #s(literal -1/2 binary64)))
(*.f64 x #s(literal -1/2 binary64))
(/.f64 #s(literal 1 binary64) (/.f64 #s(literal -2 binary64) x))
#s(approx (tan (/ x 2)) (/.f64 #s(literal 1 binary64) (/.f64 #s(literal -2 binary64) x)))
(/.f64 #s(literal -2 binary64) x)
Outputs
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>

eval56.0ms (1.3%)

Memory
3.3MiB live, 118.0MiB allocated
Compiler

Compiled 5 986 to 808 computations (86.5% saved)

prune22.0ms (0.5%)

Memory
-1.5MiB live, 76.2MiB allocated
Pruning

18 alts after pruning (10 fresh and 8 done)

PrunedKeptTotal
New39910409
Fresh000
Picked022
Done066
Total39918417
Accuracy
100.0%
Counts
417 → 18
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(tan.f64 (*.f64 x #s(literal 1/2 binary64)))
50.8%
#s(approx (tan (/ x 2)) (fma.f64 (*.f64 x x) (*.f64 #s(literal 1/24 binary64) x) (*.f64 #s(literal 1/2 binary64) x)))
3.9%
#s(approx (tan (/ x 2)) (/.f64 (*.f64 (neg.f64 (*.f64 x x)) #s(literal 1/2 binary64)) x))
3.7%
#s(approx (tan (/ x 2)) (/.f64 #s(literal 1 binary64) (/.f64 (/.f64 #s(literal -1 binary64) (sqrt.f64 (*.f64 #s(literal 1/2 binary64) x))) (sqrt.f64 (*.f64 #s(literal 1/2 binary64) x)))))
50.6%
#s(approx (tan (/ x 2)) (/.f64 #s(literal 1 binary64) (/.f64 (/.f64 #s(literal -1 binary64) (sqrt.f64 (*.f64 #s(literal 1/2 binary64) x))) (neg.f64 (sqrt.f64 (*.f64 #s(literal 1/2 binary64) x))))))
50.9%
#s(approx (tan (/ x 2)) (/.f64 #s(literal 1 binary64) (/.f64 #s(literal 2 binary64) x)))
3.7%
#s(approx (tan (/ x 2)) (/.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (/.f64 (sqrt.f64 (*.f64 #s(literal 1/2 binary64) x)) (/.f64 #s(literal -1 binary64) (sqrt.f64 (*.f64 #s(literal 1/2 binary64) x)))))))
3.7%
#s(approx (tan (/ x 2)) (/.f64 #s(literal 1 binary64) (/.f64 #s(literal -2 binary64) x)))
4.0%
#s(approx (tan (/ x 2)) (/.f64 #s(literal 1 binary64) (*.f64 (/.f64 #s(literal 2 binary64) (neg.f64 (*.f64 x x))) x)))
27.2%
#s(approx (tan (/ x 2)) (/.f64 #s(literal 1 binary64) (*.f64 (/.f64 #s(literal -2 binary64) (neg.f64 (*.f64 x x))) x)))
50.8%
#s(approx (tan (/ x 2)) (*.f64 (fma.f64 (fma.f64 #s(literal 1/240 binary64) (*.f64 x x) #s(literal 1/24 binary64)) (*.f64 x x) #s(literal 1/2 binary64)) x))
50.8%
#s(approx (tan (/ x 2)) (*.f64 (fma.f64 (*.f64 x x) #s(literal 1/24 binary64) #s(literal 1/2 binary64)) x))
3.7%
#s(approx (tan (/ x 2)) (*.f64 (/.f64 #s(literal 1 binary64) (/.f64 #s(literal -1 binary64) (sqrt.f64 (*.f64 #s(literal 1/2 binary64) x)))) (sqrt.f64 (*.f64 #s(literal 1/2 binary64) x))))
50.6%
#s(approx (tan (/ x 2)) (*.f64 (/.f64 #s(literal -1 binary64) (/.f64 #s(literal -1 binary64) (sqrt.f64 (*.f64 #s(literal 1/2 binary64) x)))) (sqrt.f64 (*.f64 #s(literal 1/2 binary64) x))))
50.7%
#s(approx (tan (/ x 2)) (*.f64 (sqrt.f64 (*.f64 #s(literal 1/2 binary64) x)) (sqrt.f64 (*.f64 #s(literal 1/2 binary64) x))))
3.7%
#s(approx (tan (/ x 2)) (*.f64 (sqrt.f64 (*.f64 #s(literal 1/2 binary64) x)) (neg.f64 (sqrt.f64 (*.f64 #s(literal 1/2 binary64) x)))))
3.7%
#s(approx (tan (/ x 2)) (*.f64 x #s(literal -1/2 binary64)))
51.1%
#s(approx (tan (/ x 2)) (*.f64 #s(literal 1/2 binary64) x))
Compiler

Compiled 513 to 264 computations (48.5% saved)

regimes29.0ms (0.7%)

Memory
-29.4MiB live, 21.4MiB allocated
Counts
20 → 1
Calls
Call 1
Inputs
#s(approx (tan (/ x 2)) (*.f64 #s(literal 1/2 binary64) x))
#s(approx (tan (/ x 2)) (*.f64 x #s(literal -1/2 binary64)))
#s(approx (tan (/ x 2)) (*.f64 (fma.f64 (*.f64 x x) #s(literal 1/24 binary64) #s(literal 1/2 binary64)) x))
#s(approx (tan (/ x 2)) (fma.f64 (*.f64 x x) (*.f64 #s(literal 1/24 binary64) x) (*.f64 #s(literal 1/2 binary64) x)))
#s(approx (tan (/ x 2)) (/.f64 #s(literal 1 binary64) (/.f64 #s(literal -2 binary64) x)))
#s(approx (tan (/ x 2)) (/.f64 #s(literal 1 binary64) (/.f64 #s(literal 2 binary64) x)))
#s(approx (tan (/ x 2)) (/.f64 (*.f64 (neg.f64 (*.f64 x x)) #s(literal 1/2 binary64)) x))
#s(approx (tan (/ x 2)) (*.f64 (fma.f64 (fma.f64 #s(literal 1/240 binary64) (*.f64 x x) #s(literal 1/24 binary64)) (*.f64 x x) #s(literal 1/2 binary64)) x))
#s(approx (tan (/ x 2)) (/.f64 #s(literal 1 binary64) (*.f64 (/.f64 #s(literal -2 binary64) (neg.f64 (*.f64 x x))) x)))
#s(approx (tan (/ x 2)) (/.f64 #s(literal 1 binary64) (*.f64 (/.f64 #s(literal 2 binary64) (neg.f64 (*.f64 x x))) x)))
#s(approx (tan (/ x 2)) (*.f64 (sqrt.f64 (*.f64 #s(literal 1/2 binary64) x)) (sqrt.f64 (*.f64 #s(literal 1/2 binary64) x))))
#s(approx (tan (/ x 2)) (*.f64 (sqrt.f64 (*.f64 #s(literal 1/2 binary64) x)) (neg.f64 (sqrt.f64 (*.f64 #s(literal 1/2 binary64) x)))))
#s(approx (tan (/ x 2)) (*.f64 (/.f64 #s(literal -1 binary64) (/.f64 #s(literal -1 binary64) (sqrt.f64 (*.f64 #s(literal 1/2 binary64) x)))) (sqrt.f64 (*.f64 #s(literal 1/2 binary64) x))))
#s(approx (tan (/ x 2)) (*.f64 (/.f64 #s(literal 1 binary64) (/.f64 #s(literal -1 binary64) (sqrt.f64 (*.f64 #s(literal 1/2 binary64) x)))) (sqrt.f64 (*.f64 #s(literal 1/2 binary64) x))))
#s(approx (tan (/ x 2)) (/.f64 #s(literal 1 binary64) (/.f64 (/.f64 #s(literal -1 binary64) (sqrt.f64 (*.f64 #s(literal 1/2 binary64) x))) (sqrt.f64 (*.f64 #s(literal 1/2 binary64) x)))))
#s(approx (tan (/ x 2)) (/.f64 #s(literal 1 binary64) (/.f64 (/.f64 #s(literal -1 binary64) (sqrt.f64 (*.f64 #s(literal 1/2 binary64) x))) (neg.f64 (sqrt.f64 (*.f64 #s(literal 1/2 binary64) x))))))
#s(approx (tan (/ x 2)) (/.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (/.f64 (sqrt.f64 (*.f64 #s(literal 1/2 binary64) x)) (/.f64 #s(literal -1 binary64) (sqrt.f64 (*.f64 #s(literal 1/2 binary64) x)))))))
(tan.f64 (*.f64 x #s(literal 1/2 binary64)))
(tan.f64 (/.f64 x #s(literal 2 binary64)))
(/.f64 (-.f64 #s(literal 1 binary64) (cos.f64 x)) (sin.f64 x))
Outputs
(tan.f64 (*.f64 x #s(literal 1/2 binary64)))
Calls

2 calls:

22.0ms
x
6.0ms
(/.f64 (-.f64 #s(literal 1 binary64) (cos.f64 x)) (sin.f64 x))
Results
AccuracySegmentsBranch
100.0%1x
100.0%1(/.f64 (-.f64 #s(literal 1 binary64) (cos.f64 x)) (sin.f64 x))
Compiler

Compiled 8 to 7 computations (12.5% saved)

regimes12.0ms (0.3%)

Memory
14.5MiB live, 14.5MiB allocated
Accuracy

Total -31.2b remaining (-99.7%)

Threshold costs -31.2b (-99.7%)

Counts
17 → 1
Calls
Call 1
Inputs
#s(approx (tan (/ x 2)) (*.f64 #s(literal 1/2 binary64) x))
#s(approx (tan (/ x 2)) (*.f64 x #s(literal -1/2 binary64)))
#s(approx (tan (/ x 2)) (*.f64 (fma.f64 (*.f64 x x) #s(literal 1/24 binary64) #s(literal 1/2 binary64)) x))
#s(approx (tan (/ x 2)) (fma.f64 (*.f64 x x) (*.f64 #s(literal 1/24 binary64) x) (*.f64 #s(literal 1/2 binary64) x)))
#s(approx (tan (/ x 2)) (/.f64 #s(literal 1 binary64) (/.f64 #s(literal -2 binary64) x)))
#s(approx (tan (/ x 2)) (/.f64 #s(literal 1 binary64) (/.f64 #s(literal 2 binary64) x)))
#s(approx (tan (/ x 2)) (/.f64 (*.f64 (neg.f64 (*.f64 x x)) #s(literal 1/2 binary64)) x))
#s(approx (tan (/ x 2)) (*.f64 (fma.f64 (fma.f64 #s(literal 1/240 binary64) (*.f64 x x) #s(literal 1/24 binary64)) (*.f64 x x) #s(literal 1/2 binary64)) x))
#s(approx (tan (/ x 2)) (/.f64 #s(literal 1 binary64) (*.f64 (/.f64 #s(literal -2 binary64) (neg.f64 (*.f64 x x))) x)))
#s(approx (tan (/ x 2)) (/.f64 #s(literal 1 binary64) (*.f64 (/.f64 #s(literal 2 binary64) (neg.f64 (*.f64 x x))) x)))
#s(approx (tan (/ x 2)) (*.f64 (sqrt.f64 (*.f64 #s(literal 1/2 binary64) x)) (sqrt.f64 (*.f64 #s(literal 1/2 binary64) x))))
#s(approx (tan (/ x 2)) (*.f64 (sqrt.f64 (*.f64 #s(literal 1/2 binary64) x)) (neg.f64 (sqrt.f64 (*.f64 #s(literal 1/2 binary64) x)))))
#s(approx (tan (/ x 2)) (*.f64 (/.f64 #s(literal -1 binary64) (/.f64 #s(literal -1 binary64) (sqrt.f64 (*.f64 #s(literal 1/2 binary64) x)))) (sqrt.f64 (*.f64 #s(literal 1/2 binary64) x))))
#s(approx (tan (/ x 2)) (*.f64 (/.f64 #s(literal 1 binary64) (/.f64 #s(literal -1 binary64) (sqrt.f64 (*.f64 #s(literal 1/2 binary64) x)))) (sqrt.f64 (*.f64 #s(literal 1/2 binary64) x))))
#s(approx (tan (/ x 2)) (/.f64 #s(literal 1 binary64) (/.f64 (/.f64 #s(literal -1 binary64) (sqrt.f64 (*.f64 #s(literal 1/2 binary64) x))) (sqrt.f64 (*.f64 #s(literal 1/2 binary64) x)))))
#s(approx (tan (/ x 2)) (/.f64 #s(literal 1 binary64) (/.f64 (/.f64 #s(literal -1 binary64) (sqrt.f64 (*.f64 #s(literal 1/2 binary64) x))) (neg.f64 (sqrt.f64 (*.f64 #s(literal 1/2 binary64) x))))))
#s(approx (tan (/ x 2)) (/.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (/.f64 (sqrt.f64 (*.f64 #s(literal 1/2 binary64) x)) (/.f64 #s(literal -1 binary64) (sqrt.f64 (*.f64 #s(literal 1/2 binary64) x)))))))
Outputs
#s(approx (tan (/ x 2)) (*.f64 #s(literal 1/2 binary64) x))
Calls

2 calls:

5.0ms
x
5.0ms
(/.f64 (-.f64 #s(literal 1 binary64) (cos.f64 x)) (sin.f64 x))
Results
AccuracySegmentsBranch
51.1%1x
51.1%1(/.f64 (-.f64 #s(literal 1 binary64) (cos.f64 x)) (sin.f64 x))
Compiler

Compiled 8 to 7 computations (12.5% saved)

simplify39.0ms (0.9%)

Memory
-20.7MiB live, 19.0MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0912
11012
Stop Event
saturated
Calls
Call 1
Inputs
(tan.f64 (*.f64 x #s(literal 1/2 binary64)))
#s(approx (tan (/ x 2)) (*.f64 #s(literal 1/2 binary64) x))
Outputs
(tan.f64 (*.f64 #s(literal 1/2 binary64) x))
#s(approx (tan (/ x 2)) (*.f64 #s(literal 1/2 binary64) x))

soundness176.0ms (4%)

Memory
5.0MiB live, 44.0MiB allocated
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
067
0104
1204
2264
3374
4584
5814
61144
71884
83104
95194
105614
115644
125724
135784
145824
155894
165964
175974
05974
047
067
1197
2517
31887
48887
080997
026156
173156
2190156
3441156
4653156
5711156
6714156
0714150
Stop Event
fuel
iter limit
saturated
iter limit
node limit
iter limit
iter limit
saturated
iter limit
Compiler

Compiled 45 to 36 computations (20% saved)

preprocess36.0ms (0.8%)

Memory
11.6MiB live, 50.2MiB allocated
Remove

(negabs x)

Compiler

Compiled 62 to 52 computations (16.1% saved)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

Profiling

Loading profile data...