Details

Time bar (total: 13.4s)

analyze858.0ms (6.4%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%99.9%0.1%0%0%0%0
0%0%99.9%0.1%0%0%0%1
0%0%99.9%0.1%0%0%0%2
0%0%99.9%0.1%0%0%0%3
0%0%99.9%0.1%0%0%0%4
0%0%99.9%0.1%0%0%0%5
0%0%99.9%0.1%0%0%0%6
25%25%74.9%0.1%0%0%0%7
37.5%37.4%62.4%0.1%0%0%0%8
37.5%37.4%62.4%0.1%0%0%0%9
56.3%56.2%43.7%0.1%0%0%0%10
65.6%65.5%34.3%0.1%0%0%0%11
65.6%65.5%34.3%0.1%0%0%0%12
Compiler

Compiled 13 to 9 computations (30.8% saved)

sample6.4s (47.4%)

Results
3.2s6251×body256valid
2.3s1293×body1024valid
784.0ms708×body512valid
3.0msbody2048valid
Bogosity

preprocess181.0ms (1.3%)

Algorithm
egg-herbie
Rules
2560×rational.json-simplify-42
1726×rational.json-simplify-35
1368×rational.json-simplify-53
1012×rational.json-simplify-41
952×rational.json-simplify-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
024108
150108
289108
3141108
4219108
5365108
6805108
72073108
84650108
95558108
106550108
117417108
127720108
033
Stop Event
saturated
node limit
Calls
Call 1
Inputs
0
1
2
Outputs
0
1
2
Call 2
Inputs
(+.f64 (+.f64 x (sin.f64 y)) (*.f64 z (cos.f64 y)))
(+.f64 (+.f64 y (sin.f64 x)) (*.f64 z (cos.f64 x)))
(+.f64 (+.f64 z (sin.f64 y)) (*.f64 x (cos.f64 y)))
(+.f64 (+.f64 x (sin.f64 z)) (*.f64 y (cos.f64 z)))
Outputs
(+.f64 (+.f64 x (sin.f64 y)) (*.f64 z (cos.f64 y)))
(+.f64 x (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))))
(+.f64 (sin.f64 y) (+.f64 x (*.f64 z (cos.f64 y))))
(+.f64 (+.f64 y (sin.f64 x)) (*.f64 z (cos.f64 x)))
(+.f64 y (+.f64 (sin.f64 x) (*.f64 z (cos.f64 x))))
(+.f64 (+.f64 z (sin.f64 y)) (*.f64 x (cos.f64 y)))
(+.f64 (+.f64 (sin.f64 y) z) (*.f64 x (cos.f64 y)))
(+.f64 (sin.f64 y) (+.f64 z (*.f64 x (cos.f64 y))))
(+.f64 (+.f64 x (sin.f64 z)) (*.f64 y (cos.f64 z)))
(+.f64 (sin.f64 z) (+.f64 x (*.f64 y (cos.f64 z))))
(+.f64 x (+.f64 (sin.f64 z) (*.f64 y (cos.f64 z))))
Compiler

Compiled 15 to 11 computations (26.7% saved)

simplify198.0ms (1.5%)

Algorithm
egg-herbie
Rules
2166×rational.json-simplify-35
1778×rational.json-simplify-1
1258×rational.json-simplify-26
910×rational.json-simplify-2
654×rational.json-simplify-52
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01127
12027
23327
35127
48227
513827
629727
772227
8202227
9326127
10400427
11448027
12522727
13564127
14624527
15681627
Stop Event
node limit
Counts
1 → 3
Calls
Call 1
Inputs
(+.f64 (+.f64 x (sin.f64 y)) (*.f64 z (cos.f64 y)))
Outputs
(+.f64 (+.f64 x (sin.f64 y)) (*.f64 z (cos.f64 y)))
(+.f64 x (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))))
(+.f64 (sin.f64 y) (+.f64 x (*.f64 z (cos.f64 y))))

eval1.0ms (0%)

Compiler

Compiled 30 to 12 computations (60% saved)

prune1.0ms (0%)

Pruning

1 alts after pruning (1 fresh and 0 done)

PrunedKeptTotal
New213
Fresh101
Picked000
Done000
Total314
Error
0.1b
Counts
4 → 1
Alt Table
Click to see full alt table
StatusErrorProgram
0.1b
(+.f64 x (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))))
Compiler

Compiled 12 to 8 computations (33.3% saved)

localize11.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(sin.f64 y)
0.0b
(+.f64 x (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))))
0.0b
(+.f64 (sin.f64 y) (*.f64 z (cos.f64 y)))
0.1b
(*.f64 z (cos.f64 y))
Compiler

Compiled 30 to 8 computations (73.3% saved)

series6.0ms (0%)

Counts
4 → 80
Calls

24 calls:

TimeVariablePointExpression
1.0ms
z
@0
(*.f64 z (cos.f64 y))
0.0ms
y
@0
(*.f64 z (cos.f64 y))
0.0ms
y
@-inf
(+.f64 x (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))))
0.0ms
x
@0
(+.f64 x (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))))
0.0ms
z
@inf
(*.f64 z (cos.f64 y))

rewrite113.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
1646×rational.json-1
1646×rational.json-2
1646×rational.json-3
1306×rational.json-simplify-35
1058×exponential.json-3
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01164
17964
218964
342064
492864
5238764
6505464
7728964
Stop Event
node limit
Counts
4 → 82
Calls
Call 1
Inputs
(*.f64 z (cos.f64 y))
(+.f64 (sin.f64 y) (*.f64 z (cos.f64 y)))
(+.f64 x (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))))
(sin.f64 y)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 z (cos.f64 y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 z (cos.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (cos.f64 y) (*.f64 z 1/2)) (*.f64 (cos.f64 y) (*.f64 z 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 z (cos.f64 y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (cos.f64 y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (cos.f64 y) (+.f64 z z)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (*.f64 (cos.f64 y) 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 z (*.f64 (cos.f64 y) 4))) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 z (*.f64 (cos.f64 y) 4)))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 z (*.f64 (cos.f64 y) 4))))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 z (*.f64 (cos.f64 y) 4))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 z (*.f64 (cos.f64 y) 4)))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 z (cos.f64 y)) 1)))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)) 4)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)) 4))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)) 4)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)) 4)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)) 4))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)) 1)))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 z (cos.f64 y)) (+.f64 (sin.f64 y) x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 z (cos.f64 y)) (+.f64 (sin.f64 y) x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (*.f64 z (cos.f64 y)) (+.f64 (sin.f64 y) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) (+.f64 (sin.f64 y) x)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) (+.f64 (sin.f64 y) x)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (+.f64 (*.f64 z (cos.f64 y)) (+.f64 (sin.f64 y) x)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) (+.f64 (sin.f64 y) x)) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) (+.f64 (sin.f64 y) x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) (+.f64 (sin.f64 y) x)) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) (+.f64 (sin.f64 y) x)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (*.f64 z (cos.f64 y)) (+.f64 (sin.f64 y) x)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 z (cos.f64 y)) (+.f64 (sin.f64 y) x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) (+.f64 (sin.f64 y) x)) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) (+.f64 (sin.f64 y) x)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) (+.f64 (sin.f64 y) x)) 4)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) (+.f64 (sin.f64 y) x)) 4))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) (+.f64 (sin.f64 y) x)) 4)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) (+.f64 (sin.f64 y) x)) 4)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) (+.f64 (sin.f64 y) x)) 4))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 (*.f64 z (cos.f64 y)) (+.f64 (sin.f64 y) x)) 1)))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (sin.f64 y) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (sin.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (-.f64 1 (neg.f64 (sin.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sin.f64 y) 1/2) (*.f64 (sin.f64 y) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 1 (neg.f64 (sin.f64 y))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (sin.f64 y) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (neg.f64 (sin.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (-.f64 1 (neg.f64 (sin.f64 y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sin.f64 y) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (sin.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (neg.f64 (sin.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (sin.f64 y) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sin.f64 y) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (sin.f64 y) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sin.f64 y) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (sin.f64 y) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sin.f64 y) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (sin.f64 y)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (sin.f64 y) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sin.f64 y) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sin.f64 y) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 y) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 y) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (sin.f64 y) 4)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (sin.f64 y)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (sin.f64 y) 4))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (neg.f64 (sin.f64 y))) -2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (sin.f64 y) 4)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (neg.f64 (sin.f64 y))) (*.f64 2 (neg.f64 (sin.f64 y)))) -4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (sin.f64 y) 4)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (sin.f64 y) 4))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sin.f64 y) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (neg.f64 (sin.f64 y)))))))

simplify251.0ms (1.9%)

Algorithm
egg-herbie
Rules
2808×rational.json-simplify-2
1764×rational.json-simplify-35
1450×rational.json-simplify-51
1128×rational.json-simplify-52
860×rational.json-simplify-1
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01912938
13982938
210432938
325032926
442822926
549272926
657842926
766222926
875032926
976372926
Stop Event
node limit
Counts
162 → 144
Calls
Call 1
Inputs
(*.f64 (cos.f64 y) z)
(*.f64 (cos.f64 y) z)
(*.f64 (cos.f64 y) z)
(*.f64 (cos.f64 y) z)
(*.f64 (cos.f64 y) z)
(*.f64 (cos.f64 y) z)
(*.f64 (cos.f64 y) z)
(*.f64 (cos.f64 y) z)
(*.f64 (cos.f64 y) z)
(*.f64 (cos.f64 y) z)
(*.f64 (cos.f64 y) z)
(*.f64 (cos.f64 y) z)
z
(+.f64 (*.f64 -1/2 (*.f64 (pow.f64 y 2) z)) z)
(+.f64 (*.f64 -1/2 (*.f64 (pow.f64 y 2) z)) (+.f64 z (*.f64 1/24 (*.f64 (pow.f64 y 4) z))))
(+.f64 (*.f64 -1/2 (*.f64 (pow.f64 y 2) z)) (+.f64 (*.f64 -1/720 (*.f64 (pow.f64 y 6) z)) (+.f64 z (*.f64 1/24 (*.f64 (pow.f64 y 4) z)))))
z
(+.f64 y z)
(+.f64 (*.f64 -1/2 (*.f64 (pow.f64 y 2) z)) (+.f64 y z))
(+.f64 (*.f64 -1/6 (pow.f64 y 3)) (+.f64 (*.f64 -1/2 (*.f64 (pow.f64 y 2) z)) (+.f64 y z)))
(+.f64 (*.f64 (cos.f64 y) z) (sin.f64 y))
(+.f64 (*.f64 (cos.f64 y) z) (sin.f64 y))
(+.f64 (*.f64 (cos.f64 y) z) (sin.f64 y))
(+.f64 (*.f64 (cos.f64 y) z) (sin.f64 y))
(+.f64 (*.f64 (cos.f64 y) z) (sin.f64 y))
(+.f64 (*.f64 (cos.f64 y) z) (sin.f64 y))
(+.f64 (*.f64 (cos.f64 y) z) (sin.f64 y))
(+.f64 (*.f64 (cos.f64 y) z) (sin.f64 y))
(sin.f64 y)
(+.f64 (*.f64 (cos.f64 y) z) (sin.f64 y))
(+.f64 (*.f64 (cos.f64 y) z) (sin.f64 y))
(+.f64 (*.f64 (cos.f64 y) z) (sin.f64 y))
(*.f64 (cos.f64 y) z)
(+.f64 (*.f64 (cos.f64 y) z) (sin.f64 y))
(+.f64 (*.f64 (cos.f64 y) z) (sin.f64 y))
(+.f64 (*.f64 (cos.f64 y) z) (sin.f64 y))
(*.f64 (cos.f64 y) z)
(+.f64 (*.f64 (cos.f64 y) z) (sin.f64 y))
(+.f64 (*.f64 (cos.f64 y) z) (sin.f64 y))
(+.f64 (*.f64 (cos.f64 y) z) (sin.f64 y))
(+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y))
(+.f64 (*.f64 z (cos.f64 y)) (+.f64 (sin.f64 y) x))
(+.f64 (*.f64 z (cos.f64 y)) (+.f64 (sin.f64 y) x))
(+.f64 (*.f64 z (cos.f64 y)) (+.f64 (sin.f64 y) x))
x
(+.f64 (*.f64 z (cos.f64 y)) (+.f64 (sin.f64 y) x))
(+.f64 (*.f64 z (cos.f64 y)) (+.f64 (sin.f64 y) x))
(+.f64 (*.f64 z (cos.f64 y)) (+.f64 (sin.f64 y) x))
x
(+.f64 (*.f64 (cos.f64 y) z) (+.f64 (sin.f64 y) x))
(+.f64 (*.f64 (cos.f64 y) z) (+.f64 (sin.f64 y) x))
(+.f64 (*.f64 (cos.f64 y) z) (+.f64 (sin.f64 y) x))
(+.f64 z x)
(+.f64 y (+.f64 z x))
(+.f64 (*.f64 -1/2 (*.f64 (pow.f64 y 2) z)) (+.f64 y (+.f64 z x)))
(+.f64 (*.f64 -1/6 (pow.f64 y 3)) (+.f64 (*.f64 -1/2 (*.f64 (pow.f64 y 2) z)) (+.f64 y (+.f64 z x))))
(+.f64 (*.f64 (cos.f64 y) z) (+.f64 (sin.f64 y) x))
(+.f64 (*.f64 (cos.f64 y) z) (+.f64 (sin.f64 y) x))
(+.f64 (*.f64 (cos.f64 y) z) (+.f64 (sin.f64 y) x))
(+.f64 (*.f64 (cos.f64 y) z) (+.f64 (sin.f64 y) x))
(+.f64 (*.f64 (cos.f64 y) z) (+.f64 (sin.f64 y) x))
(+.f64 (*.f64 (cos.f64 y) z) (+.f64 (sin.f64 y) x))
(+.f64 (*.f64 (cos.f64 y) z) (+.f64 (sin.f64 y) x))
(+.f64 (*.f64 (cos.f64 y) z) (+.f64 (sin.f64 y) x))
(+.f64 (sin.f64 y) x)
(+.f64 (*.f64 (cos.f64 y) z) (+.f64 (sin.f64 y) x))
(+.f64 (*.f64 (cos.f64 y) z) (+.f64 (sin.f64 y) x))
(+.f64 (*.f64 (cos.f64 y) z) (+.f64 (sin.f64 y) x))
(*.f64 (cos.f64 y) z)
(+.f64 (*.f64 (cos.f64 y) z) (+.f64 (sin.f64 y) x))
(+.f64 (*.f64 (cos.f64 y) z) (+.f64 (sin.f64 y) x))
(+.f64 (*.f64 (cos.f64 y) z) (+.f64 (sin.f64 y) x))
(*.f64 (cos.f64 y) z)
(+.f64 (*.f64 (cos.f64 y) z) (+.f64 (sin.f64 y) x))
(+.f64 (*.f64 (cos.f64 y) z) (+.f64 (sin.f64 y) x))
(+.f64 (*.f64 (cos.f64 y) z) (+.f64 (sin.f64 y) x))
y
(+.f64 (*.f64 -1/6 (pow.f64 y 3)) y)
(+.f64 (*.f64 -1/6 (pow.f64 y 3)) (+.f64 (*.f64 1/120 (pow.f64 y 5)) y))
(+.f64 (*.f64 -1/6 (pow.f64 y 3)) (+.f64 (*.f64 1/120 (pow.f64 y 5)) (+.f64 y (*.f64 -1/5040 (pow.f64 y 7)))))
(+.f64 (*.f64 z (cos.f64 y)) 0)
(+.f64 0 (*.f64 z (cos.f64 y)))
(+.f64 (*.f64 (cos.f64 y) (*.f64 z 1/2)) (*.f64 (cos.f64 y) (*.f64 z 1/2)))
(-.f64 (*.f64 z (cos.f64 y)) 0)
(/.f64 (*.f64 z (cos.f64 y)) 1)
(/.f64 (*.f64 (cos.f64 y) (+.f64 z z)) 2)
(/.f64 (*.f64 z (*.f64 (cos.f64 y) 4)) 4)
(/.f64 (*.f64 2 (*.f64 z (*.f64 (cos.f64 y) 4))) 8)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 z (*.f64 (cos.f64 y) 4)))) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 z (*.f64 (cos.f64 y) 4))))) 32)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 z (*.f64 (cos.f64 y) 4))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 z (*.f64 (cos.f64 y) 4)))))) 64)
(pow.f64 (*.f64 z (cos.f64 y)) 1)
(-.f64 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)) 0)
(*.f64 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)) 1)
(*.f64 1 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)))
(*.f64 2 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)) 1/2))
(*.f64 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)) 2) 1/2)
(*.f64 4 (/.f64 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)) 4))
(*.f64 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)) 4) 1/4)
(*.f64 1/2 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)) 2))
(*.f64 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)) 1/2) 2)
(*.f64 1/4 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)) 4))
(*.f64 (/.f64 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)) 4) 4)
(/.f64 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)) 1)
(/.f64 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)) 2) 2)
(/.f64 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)) 4) 4)
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)) 4)) 8)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)) 4))) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)) 4)))) 32)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)) 4)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)) 4))))) 64)
(pow.f64 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)) 1)
(-.f64 (+.f64 (*.f64 z (cos.f64 y)) (+.f64 (sin.f64 y) x)) 0)
(*.f64 (+.f64 (*.f64 z (cos.f64 y)) (+.f64 (sin.f64 y) x)) 1)
(*.f64 1 (+.f64 (*.f64 z (cos.f64 y)) (+.f64 (sin.f64 y) x)))
(*.f64 2 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) (+.f64 (sin.f64 y) x)) 1/2))
(*.f64 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) (+.f64 (sin.f64 y) x)) 2) 1/2)
(*.f64 4 (/.f64 (+.f64 (*.f64 z (cos.f64 y)) (+.f64 (sin.f64 y) x)) 4))
(*.f64 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) (+.f64 (sin.f64 y) x)) 4) 1/4)
(*.f64 1/2 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) (+.f64 (sin.f64 y) x)) 2))
(*.f64 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) (+.f64 (sin.f64 y) x)) 1/2) 2)
(*.f64 1/4 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) (+.f64 (sin.f64 y) x)) 4))
(*.f64 (/.f64 (+.f64 (*.f64 z (cos.f64 y)) (+.f64 (sin.f64 y) x)) 4) 4)
(/.f64 (+.f64 (*.f64 z (cos.f64 y)) (+.f64 (sin.f64 y) x)) 1)
(/.f64 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) (+.f64 (sin.f64 y) x)) 2) 2)
(/.f64 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) (+.f64 (sin.f64 y) x)) 4) 4)
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) (+.f64 (sin.f64 y) x)) 4)) 8)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) (+.f64 (sin.f64 y) x)) 4))) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) (+.f64 (sin.f64 y) x)) 4)))) 32)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) (+.f64 (sin.f64 y) x)) 4)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) (+.f64 (sin.f64 y) x)) 4))))) 64)
(pow.f64 (+.f64 (*.f64 z (cos.f64 y)) (+.f64 (sin.f64 y) x)) 1)
(+.f64 (sin.f64 y) 0)
(+.f64 0 (sin.f64 y))
(+.f64 -1 (-.f64 1 (neg.f64 (sin.f64 y))))
(+.f64 (*.f64 (sin.f64 y) 1/2) (*.f64 (sin.f64 y) 1/2))
(+.f64 (-.f64 1 (neg.f64 (sin.f64 y))) -1)
(-.f64 (sin.f64 y) 0)
(-.f64 0 (neg.f64 (sin.f64 y)))
(-.f64 (-.f64 1 (neg.f64 (sin.f64 y))) 1)
(*.f64 (sin.f64 y) 1)
(*.f64 1 (sin.f64 y))
(*.f64 -1 (neg.f64 (sin.f64 y)))
(*.f64 2 (*.f64 (sin.f64 y) 1/2))
(*.f64 (*.f64 (sin.f64 y) 2) 1/2)
(*.f64 4 (/.f64 (sin.f64 y) 4))
(*.f64 (*.f64 (sin.f64 y) 4) 1/4)
(*.f64 1/2 (*.f64 (sin.f64 y) 2))
(*.f64 (*.f64 (sin.f64 y) 1/2) 2)
(*.f64 (neg.f64 (sin.f64 y)) -1)
(*.f64 1/4 (*.f64 (sin.f64 y) 4))
(*.f64 (/.f64 (sin.f64 y) 4) 4)
(/.f64 (sin.f64 y) 1)
(/.f64 (*.f64 (sin.f64 y) 2) 2)
(/.f64 (*.f64 (sin.f64 y) 4) 4)
(/.f64 (*.f64 2 (*.f64 (sin.f64 y) 4)) 8)
(/.f64 (neg.f64 (sin.f64 y)) -1)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (sin.f64 y) 4))) 16)
(/.f64 (*.f64 2 (neg.f64 (sin.f64 y))) -2)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (sin.f64 y) 4)))) 32)
(/.f64 (+.f64 (*.f64 2 (neg.f64 (sin.f64 y))) (*.f64 2 (neg.f64 (sin.f64 y)))) -4)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (sin.f64 y) 4)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (sin.f64 y) 4))))) 64)
(pow.f64 (sin.f64 y) 1)
(neg.f64 (neg.f64 (sin.f64 y)))
Outputs
(*.f64 (cos.f64 y) z)
(*.f64 (cos.f64 y) z)
(*.f64 (cos.f64 y) z)
(*.f64 (cos.f64 y) z)
(*.f64 (cos.f64 y) z)
(*.f64 (cos.f64 y) z)
(*.f64 (cos.f64 y) z)
(*.f64 (cos.f64 y) z)
(*.f64 (cos.f64 y) z)
(*.f64 (cos.f64 y) z)
(*.f64 (cos.f64 y) z)
(*.f64 (cos.f64 y) z)
z
(+.f64 (*.f64 -1/2 (*.f64 (pow.f64 y 2) z)) z)
(+.f64 z (*.f64 (pow.f64 y 2) (*.f64 z -1/2)))
(+.f64 z (*.f64 z (*.f64 (pow.f64 y 2) -1/2)))
(+.f64 z (*.f64 -1/2 (*.f64 z (pow.f64 y 2))))
(+.f64 (*.f64 -1/2 (*.f64 (pow.f64 y 2) z)) (+.f64 z (*.f64 1/24 (*.f64 (pow.f64 y 4) z))))
(+.f64 z (+.f64 (*.f64 (pow.f64 y 4) (*.f64 z 1/24)) (*.f64 (pow.f64 y 2) (*.f64 z -1/2))))
(+.f64 z (+.f64 (*.f64 z (*.f64 (pow.f64 y 2) -1/2)) (*.f64 z (*.f64 (pow.f64 y 4) 1/24))))
(+.f64 z (+.f64 (*.f64 (pow.f64 y 2) (*.f64 z -1/2)) (*.f64 (pow.f64 y 4) (*.f64 z 1/24))))
(+.f64 z (*.f64 z (+.f64 (*.f64 1/24 (pow.f64 y 4)) (*.f64 -1/2 (pow.f64 y 2)))))
(+.f64 (*.f64 -1/2 (*.f64 (pow.f64 y 2) z)) (+.f64 (*.f64 -1/720 (*.f64 (pow.f64 y 6) z)) (+.f64 z (*.f64 1/24 (*.f64 (pow.f64 y 4) z)))))
(+.f64 (*.f64 -1/720 (*.f64 z (pow.f64 y 6))) (+.f64 z (+.f64 (*.f64 (pow.f64 y 4) (*.f64 z 1/24)) (*.f64 (pow.f64 y 2) (*.f64 z -1/2)))))
(+.f64 (*.f64 z (*.f64 (pow.f64 y 2) -1/2)) (+.f64 (*.f64 z (*.f64 (pow.f64 y 4) 1/24)) (+.f64 (*.f64 z (*.f64 (pow.f64 y 6) -1/720)) z)))
(+.f64 z (+.f64 (*.f64 (pow.f64 y 6) (*.f64 z -1/720)) (+.f64 (*.f64 (pow.f64 y 2) (*.f64 z -1/2)) (*.f64 (pow.f64 y 4) (*.f64 z 1/24)))))
(+.f64 (+.f64 z (*.f64 (pow.f64 y 4) (*.f64 z 1/24))) (*.f64 z (+.f64 (*.f64 -1/720 (pow.f64 y 6)) (*.f64 -1/2 (pow.f64 y 2)))))
(+.f64 (+.f64 z (*.f64 (pow.f64 y 4) (*.f64 z 1/24))) (*.f64 z (+.f64 (*.f64 -1/2 (pow.f64 y 2)) (*.f64 -1/720 (pow.f64 y 6)))))
(+.f64 z (+.f64 (*.f64 -1/2 (*.f64 z (pow.f64 y 2))) (*.f64 z (+.f64 (*.f64 1/24 (pow.f64 y 4)) (*.f64 -1/720 (pow.f64 y 6))))))
z
(+.f64 y z)
(+.f64 (*.f64 -1/2 (*.f64 (pow.f64 y 2) z)) (+.f64 y z))
(+.f64 y (+.f64 z (*.f64 (pow.f64 y 2) (*.f64 z -1/2))))
(+.f64 y (+.f64 z (*.f64 z (*.f64 (pow.f64 y 2) -1/2))))
(+.f64 y (+.f64 z (*.f64 -1/2 (*.f64 z (pow.f64 y 2)))))
(+.f64 (*.f64 -1/6 (pow.f64 y 3)) (+.f64 (*.f64 -1/2 (*.f64 (pow.f64 y 2) z)) (+.f64 y z)))
(+.f64 (*.f64 (pow.f64 y 2) (*.f64 z -1/2)) (+.f64 (+.f64 y z) (*.f64 -1/6 (pow.f64 y 3))))
(+.f64 y (+.f64 (+.f64 z (*.f64 z (*.f64 (pow.f64 y 2) -1/2))) (*.f64 -1/6 (pow.f64 y 3))))
(+.f64 (*.f64 (pow.f64 y 2) (*.f64 z -1/2)) (+.f64 y (+.f64 z (*.f64 -1/6 (pow.f64 y 3)))))
(+.f64 (*.f64 -1/2 (*.f64 z (pow.f64 y 2))) (+.f64 y (+.f64 z (*.f64 -1/6 (pow.f64 y 3)))))
(+.f64 (*.f64 (cos.f64 y) z) (sin.f64 y))
(+.f64 (sin.f64 y) (*.f64 (cos.f64 y) z))
(+.f64 (*.f64 (cos.f64 y) z) (sin.f64 y))
(+.f64 (sin.f64 y) (*.f64 (cos.f64 y) z))
(+.f64 (*.f64 (cos.f64 y) z) (sin.f64 y))
(+.f64 (sin.f64 y) (*.f64 (cos.f64 y) z))
(+.f64 (*.f64 (cos.f64 y) z) (sin.f64 y))
(+.f64 (sin.f64 y) (*.f64 (cos.f64 y) z))
(+.f64 (*.f64 (cos.f64 y) z) (sin.f64 y))
(+.f64 (sin.f64 y) (*.f64 (cos.f64 y) z))
(+.f64 (*.f64 (cos.f64 y) z) (sin.f64 y))
(+.f64 (sin.f64 y) (*.f64 (cos.f64 y) z))
(+.f64 (*.f64 (cos.f64 y) z) (sin.f64 y))
(+.f64 (sin.f64 y) (*.f64 (cos.f64 y) z))
(+.f64 (*.f64 (cos.f64 y) z) (sin.f64 y))
(+.f64 (sin.f64 y) (*.f64 (cos.f64 y) z))
(sin.f64 y)
(+.f64 (*.f64 (cos.f64 y) z) (sin.f64 y))
(+.f64 (sin.f64 y) (*.f64 (cos.f64 y) z))
(+.f64 (*.f64 (cos.f64 y) z) (sin.f64 y))
(+.f64 (sin.f64 y) (*.f64 (cos.f64 y) z))
(+.f64 (*.f64 (cos.f64 y) z) (sin.f64 y))
(+.f64 (sin.f64 y) (*.f64 (cos.f64 y) z))
(*.f64 (cos.f64 y) z)
(+.f64 (*.f64 (cos.f64 y) z) (sin.f64 y))
(+.f64 (sin.f64 y) (*.f64 (cos.f64 y) z))
(+.f64 (*.f64 (cos.f64 y) z) (sin.f64 y))
(+.f64 (sin.f64 y) (*.f64 (cos.f64 y) z))
(+.f64 (*.f64 (cos.f64 y) z) (sin.f64 y))
(+.f64 (sin.f64 y) (*.f64 (cos.f64 y) z))
(*.f64 (cos.f64 y) z)
(+.f64 (*.f64 (cos.f64 y) z) (sin.f64 y))
(+.f64 (sin.f64 y) (*.f64 (cos.f64 y) z))
(+.f64 (*.f64 (cos.f64 y) z) (sin.f64 y))
(+.f64 (sin.f64 y) (*.f64 (cos.f64 y) z))
(+.f64 (*.f64 (cos.f64 y) z) (sin.f64 y))
(+.f64 (sin.f64 y) (*.f64 (cos.f64 y) z))
(+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y))
(+.f64 (sin.f64 y) (*.f64 (cos.f64 y) z))
(+.f64 (*.f64 z (cos.f64 y)) (+.f64 (sin.f64 y) x))
(+.f64 (sin.f64 y) (+.f64 x (*.f64 (cos.f64 y) z)))
(+.f64 (*.f64 (cos.f64 y) z) (+.f64 (sin.f64 y) x))
(+.f64 (*.f64 z (cos.f64 y)) (+.f64 (sin.f64 y) x))
(+.f64 (sin.f64 y) (+.f64 x (*.f64 (cos.f64 y) z)))
(+.f64 (*.f64 (cos.f64 y) z) (+.f64 (sin.f64 y) x))
(+.f64 (*.f64 z (cos.f64 y)) (+.f64 (sin.f64 y) x))
(+.f64 (sin.f64 y) (+.f64 x (*.f64 (cos.f64 y) z)))
(+.f64 (*.f64 (cos.f64 y) z) (+.f64 (sin.f64 y) x))
x
(+.f64 (*.f64 z (cos.f64 y)) (+.f64 (sin.f64 y) x))
(+.f64 (sin.f64 y) (+.f64 x (*.f64 (cos.f64 y) z)))
(+.f64 (*.f64 (cos.f64 y) z) (+.f64 (sin.f64 y) x))
(+.f64 (*.f64 z (cos.f64 y)) (+.f64 (sin.f64 y) x))
(+.f64 (sin.f64 y) (+.f64 x (*.f64 (cos.f64 y) z)))
(+.f64 (*.f64 (cos.f64 y) z) (+.f64 (sin.f64 y) x))
(+.f64 (*.f64 z (cos.f64 y)) (+.f64 (sin.f64 y) x))
(+.f64 (sin.f64 y) (+.f64 x (*.f64 (cos.f64 y) z)))
(+.f64 (*.f64 (cos.f64 y) z) (+.f64 (sin.f64 y) x))
x
(+.f64 (*.f64 (cos.f64 y) z) (+.f64 (sin.f64 y) x))
(+.f64 (sin.f64 y) (+.f64 x (*.f64 (cos.f64 y) z)))
(+.f64 (*.f64 (cos.f64 y) z) (+.f64 (sin.f64 y) x))
(+.f64 (sin.f64 y) (+.f64 x (*.f64 (cos.f64 y) z)))
(+.f64 (*.f64 (cos.f64 y) z) (+.f64 (sin.f64 y) x))
(+.f64 (sin.f64 y) (+.f64 x (*.f64 (cos.f64 y) z)))
(+.f64 z x)
(+.f64 y (+.f64 z x))
(+.f64 z (+.f64 x y))
(+.f64 (*.f64 -1/2 (*.f64 (pow.f64 y 2) z)) (+.f64 y (+.f64 z x)))
(+.f64 (*.f64 (pow.f64 y 2) (*.f64 z -1/2)) (+.f64 z (+.f64 x y)))
(+.f64 y (+.f64 (*.f64 z (*.f64 (pow.f64 y 2) -1/2)) (+.f64 z x)))
(+.f64 (*.f64 (pow.f64 y 2) (*.f64 z -1/2)) (+.f64 y (+.f64 z x)))
(+.f64 (*.f64 -1/2 (*.f64 z (pow.f64 y 2))) (+.f64 y (+.f64 z x)))
(+.f64 (*.f64 -1/6 (pow.f64 y 3)) (+.f64 (*.f64 -1/2 (*.f64 (pow.f64 y 2) z)) (+.f64 y (+.f64 z x))))
(+.f64 (*.f64 (pow.f64 y 2) (*.f64 z -1/2)) (+.f64 (+.f64 z (+.f64 x y)) (*.f64 -1/6 (pow.f64 y 3))))
(+.f64 (*.f64 z (*.f64 (pow.f64 y 2) -1/2)) (+.f64 (*.f64 -1/6 (pow.f64 y 3)) (+.f64 y (+.f64 z x))))
(+.f64 (*.f64 (pow.f64 y 2) (*.f64 z -1/2)) (+.f64 (*.f64 -1/6 (pow.f64 y 3)) (+.f64 y (+.f64 z x))))
(+.f64 (*.f64 -1/2 (*.f64 z (pow.f64 y 2))) (+.f64 y (+.f64 (*.f64 -1/6 (pow.f64 y 3)) (+.f64 z x))))
(+.f64 (*.f64 (cos.f64 y) z) (+.f64 (sin.f64 y) x))
(+.f64 (sin.f64 y) (+.f64 x (*.f64 (cos.f64 y) z)))
(+.f64 (*.f64 (cos.f64 y) z) (+.f64 (sin.f64 y) x))
(+.f64 (sin.f64 y) (+.f64 x (*.f64 (cos.f64 y) z)))
(+.f64 (*.f64 (cos.f64 y) z) (+.f64 (sin.f64 y) x))
(+.f64 (sin.f64 y) (+.f64 x (*.f64 (cos.f64 y) z)))
(+.f64 (*.f64 (cos.f64 y) z) (+.f64 (sin.f64 y) x))
(+.f64 (sin.f64 y) (+.f64 x (*.f64 (cos.f64 y) z)))
(+.f64 (*.f64 (cos.f64 y) z) (+.f64 (sin.f64 y) x))
(+.f64 (sin.f64 y) (+.f64 x (*.f64 (cos.f64 y) z)))
(+.f64 (*.f64 (cos.f64 y) z) (+.f64 (sin.f64 y) x))
(+.f64 (sin.f64 y) (+.f64 x (*.f64 (cos.f64 y) z)))
(+.f64 (*.f64 (cos.f64 y) z) (+.f64 (sin.f64 y) x))
(+.f64 (sin.f64 y) (+.f64 x (*.f64 (cos.f64 y) z)))
(+.f64 (*.f64 (cos.f64 y) z) (+.f64 (sin.f64 y) x))
(+.f64 (sin.f64 y) (+.f64 x (*.f64 (cos.f64 y) z)))
(+.f64 (sin.f64 y) x)
(+.f64 (*.f64 (cos.f64 y) z) (+.f64 (sin.f64 y) x))
(+.f64 (sin.f64 y) (+.f64 x (*.f64 (cos.f64 y) z)))
(+.f64 (*.f64 (cos.f64 y) z) (+.f64 (sin.f64 y) x))
(+.f64 (sin.f64 y) (+.f64 x (*.f64 (cos.f64 y) z)))
(+.f64 (*.f64 (cos.f64 y) z) (+.f64 (sin.f64 y) x))
(+.f64 (sin.f64 y) (+.f64 x (*.f64 (cos.f64 y) z)))
(*.f64 (cos.f64 y) z)
(+.f64 (*.f64 (cos.f64 y) z) (+.f64 (sin.f64 y) x))
(+.f64 (sin.f64 y) (+.f64 x (*.f64 (cos.f64 y) z)))
(+.f64 (*.f64 (cos.f64 y) z) (+.f64 (sin.f64 y) x))
(+.f64 (sin.f64 y) (+.f64 x (*.f64 (cos.f64 y) z)))
(+.f64 (*.f64 (cos.f64 y) z) (+.f64 (sin.f64 y) x))
(+.f64 (sin.f64 y) (+.f64 x (*.f64 (cos.f64 y) z)))
(*.f64 (cos.f64 y) z)
(+.f64 (*.f64 (cos.f64 y) z) (+.f64 (sin.f64 y) x))
(+.f64 (sin.f64 y) (+.f64 x (*.f64 (cos.f64 y) z)))
(+.f64 (*.f64 (cos.f64 y) z) (+.f64 (sin.f64 y) x))
(+.f64 (sin.f64 y) (+.f64 x (*.f64 (cos.f64 y) z)))
(+.f64 (*.f64 (cos.f64 y) z) (+.f64 (sin.f64 y) x))
(+.f64 (sin.f64 y) (+.f64 x (*.f64 (cos.f64 y) z)))
y
(+.f64 (*.f64 -1/6 (pow.f64 y 3)) y)
(+.f64 y (*.f64 -1/6 (pow.f64 y 3)))
(+.f64 (*.f64 -1/6 (pow.f64 y 3)) (+.f64 (*.f64 1/120 (pow.f64 y 5)) y))
(+.f64 (*.f64 1/120 (pow.f64 y 5)) (+.f64 y (*.f64 -1/6 (pow.f64 y 3))))
(+.f64 y (+.f64 (*.f64 -1/6 (pow.f64 y 3)) (*.f64 1/120 (pow.f64 y 5))))
(+.f64 (+.f64 y (*.f64 -1/6 (pow.f64 y 3))) (*.f64 1/120 (pow.f64 y 5)))
(+.f64 (*.f64 -1/6 (pow.f64 y 3)) (+.f64 (*.f64 1/120 (pow.f64 y 5)) (+.f64 y (*.f64 -1/5040 (pow.f64 y 7)))))
(+.f64 (*.f64 -1/6 (pow.f64 y 3)) (+.f64 y (+.f64 (*.f64 -1/5040 (pow.f64 y 7)) (*.f64 1/120 (pow.f64 y 5)))))
(+.f64 (*.f64 -1/6 (pow.f64 y 3)) (+.f64 y (+.f64 (*.f64 1/120 (pow.f64 y 5)) (*.f64 -1/5040 (pow.f64 y 7)))))
(+.f64 (*.f64 1/120 (pow.f64 y 5)) (+.f64 (*.f64 -1/5040 (pow.f64 y 7)) (+.f64 y (*.f64 -1/6 (pow.f64 y 3)))))
(+.f64 (+.f64 y (*.f64 -1/6 (pow.f64 y 3))) (+.f64 (*.f64 1/120 (pow.f64 y 5)) (*.f64 -1/5040 (pow.f64 y 7))))
(+.f64 (*.f64 z (cos.f64 y)) 0)
(*.f64 (cos.f64 y) z)
(+.f64 0 (*.f64 z (cos.f64 y)))
(*.f64 (cos.f64 y) z)
(+.f64 (*.f64 (cos.f64 y) (*.f64 z 1/2)) (*.f64 (cos.f64 y) (*.f64 z 1/2)))
(*.f64 (cos.f64 y) z)
(-.f64 (*.f64 z (cos.f64 y)) 0)
(*.f64 (cos.f64 y) z)
(/.f64 (*.f64 z (cos.f64 y)) 1)
(*.f64 (cos.f64 y) z)
(/.f64 (*.f64 (cos.f64 y) (+.f64 z z)) 2)
(*.f64 (cos.f64 y) z)
(/.f64 (*.f64 z (*.f64 (cos.f64 y) 4)) 4)
(*.f64 (cos.f64 y) z)
(/.f64 (*.f64 2 (*.f64 z (*.f64 (cos.f64 y) 4))) 8)
(*.f64 (cos.f64 y) z)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 z (*.f64 (cos.f64 y) 4)))) 16)
(*.f64 (cos.f64 y) z)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 z (*.f64 (cos.f64 y) 4))))) 32)
(*.f64 (cos.f64 y) z)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 z (*.f64 (cos.f64 y) 4))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 z (*.f64 (cos.f64 y) 4)))))) 64)
(*.f64 (cos.f64 y) z)
(pow.f64 (*.f64 z (cos.f64 y)) 1)
(*.f64 (cos.f64 y) z)
(-.f64 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)) 0)
(+.f64 (sin.f64 y) (*.f64 (cos.f64 y) z))
(*.f64 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)) 1)
(+.f64 (sin.f64 y) (*.f64 (cos.f64 y) z))
(*.f64 1 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)))
(+.f64 (sin.f64 y) (*.f64 (cos.f64 y) z))
(*.f64 2 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)) 1/2))
(+.f64 (sin.f64 y) (*.f64 (cos.f64 y) z))
(*.f64 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)) 2) 1/2)
(+.f64 (sin.f64 y) (*.f64 (cos.f64 y) z))
(*.f64 4 (/.f64 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)) 4))
(+.f64 (sin.f64 y) (*.f64 (cos.f64 y) z))
(*.f64 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)) 4) 1/4)
(+.f64 (sin.f64 y) (*.f64 (cos.f64 y) z))
(*.f64 1/2 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)) 2))
(+.f64 (sin.f64 y) (*.f64 (cos.f64 y) z))
(*.f64 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)) 1/2) 2)
(+.f64 (sin.f64 y) (*.f64 (cos.f64 y) z))
(*.f64 1/4 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)) 4))
(+.f64 (sin.f64 y) (*.f64 (cos.f64 y) z))
(*.f64 (/.f64 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)) 4) 4)
(+.f64 (sin.f64 y) (*.f64 (cos.f64 y) z))
(/.f64 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)) 1)
(+.f64 (sin.f64 y) (*.f64 (cos.f64 y) z))
(/.f64 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)) 2) 2)
(+.f64 (sin.f64 y) (*.f64 (cos.f64 y) z))
(/.f64 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)) 4) 4)
(+.f64 (sin.f64 y) (*.f64 (cos.f64 y) z))
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)) 4)) 8)
(+.f64 (sin.f64 y) (*.f64 (cos.f64 y) z))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)) 4))) 16)
(+.f64 (sin.f64 y) (*.f64 (cos.f64 y) z))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)) 4)))) 32)
(+.f64 (sin.f64 y) (*.f64 (cos.f64 y) z))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)) 4)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)) 4))))) 64)
(+.f64 (sin.f64 y) (*.f64 (cos.f64 y) z))
(pow.f64 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)) 1)
(+.f64 (sin.f64 y) (*.f64 (cos.f64 y) z))
(-.f64 (+.f64 (*.f64 z (cos.f64 y)) (+.f64 (sin.f64 y) x)) 0)
(+.f64 (sin.f64 y) (+.f64 x (*.f64 (cos.f64 y) z)))
(+.f64 (*.f64 (cos.f64 y) z) (+.f64 (sin.f64 y) x))
(*.f64 (+.f64 (*.f64 z (cos.f64 y)) (+.f64 (sin.f64 y) x)) 1)
(+.f64 (sin.f64 y) (+.f64 x (*.f64 (cos.f64 y) z)))
(+.f64 (*.f64 (cos.f64 y) z) (+.f64 (sin.f64 y) x))
(*.f64 1 (+.f64 (*.f64 z (cos.f64 y)) (+.f64 (sin.f64 y) x)))
(+.f64 (sin.f64 y) (+.f64 x (*.f64 (cos.f64 y) z)))
(+.f64 (*.f64 (cos.f64 y) z) (+.f64 (sin.f64 y) x))
(*.f64 2 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) (+.f64 (sin.f64 y) x)) 1/2))
(+.f64 (sin.f64 y) (+.f64 x (*.f64 (cos.f64 y) z)))
(+.f64 (*.f64 (cos.f64 y) z) (+.f64 (sin.f64 y) x))
(*.f64 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) (+.f64 (sin.f64 y) x)) 2) 1/2)
(+.f64 (sin.f64 y) (+.f64 x (*.f64 (cos.f64 y) z)))
(+.f64 (*.f64 (cos.f64 y) z) (+.f64 (sin.f64 y) x))
(*.f64 4 (/.f64 (+.f64 (*.f64 z (cos.f64 y)) (+.f64 (sin.f64 y) x)) 4))
(+.f64 (sin.f64 y) (+.f64 x (*.f64 (cos.f64 y) z)))
(+.f64 (*.f64 (cos.f64 y) z) (+.f64 (sin.f64 y) x))
(*.f64 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) (+.f64 (sin.f64 y) x)) 4) 1/4)
(+.f64 (sin.f64 y) (+.f64 x (*.f64 (cos.f64 y) z)))
(+.f64 (*.f64 (cos.f64 y) z) (+.f64 (sin.f64 y) x))
(*.f64 1/2 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) (+.f64 (sin.f64 y) x)) 2))
(+.f64 (sin.f64 y) (+.f64 x (*.f64 (cos.f64 y) z)))
(+.f64 (*.f64 (cos.f64 y) z) (+.f64 (sin.f64 y) x))
(*.f64 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) (+.f64 (sin.f64 y) x)) 1/2) 2)
(+.f64 (sin.f64 y) (+.f64 x (*.f64 (cos.f64 y) z)))
(+.f64 (*.f64 (cos.f64 y) z) (+.f64 (sin.f64 y) x))
(*.f64 1/4 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) (+.f64 (sin.f64 y) x)) 4))
(+.f64 (sin.f64 y) (+.f64 x (*.f64 (cos.f64 y) z)))
(+.f64 (*.f64 (cos.f64 y) z) (+.f64 (sin.f64 y) x))
(*.f64 (/.f64 (+.f64 (*.f64 z (cos.f64 y)) (+.f64 (sin.f64 y) x)) 4) 4)
(+.f64 (sin.f64 y) (+.f64 x (*.f64 (cos.f64 y) z)))
(+.f64 (*.f64 (cos.f64 y) z) (+.f64 (sin.f64 y) x))
(/.f64 (+.f64 (*.f64 z (cos.f64 y)) (+.f64 (sin.f64 y) x)) 1)
(+.f64 (sin.f64 y) (+.f64 x (*.f64 (cos.f64 y) z)))
(+.f64 (*.f64 (cos.f64 y) z) (+.f64 (sin.f64 y) x))
(/.f64 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) (+.f64 (sin.f64 y) x)) 2) 2)
(+.f64 (sin.f64 y) (+.f64 x (*.f64 (cos.f64 y) z)))
(+.f64 (*.f64 (cos.f64 y) z) (+.f64 (sin.f64 y) x))
(/.f64 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) (+.f64 (sin.f64 y) x)) 4) 4)
(+.f64 (sin.f64 y) (+.f64 x (*.f64 (cos.f64 y) z)))
(+.f64 (*.f64 (cos.f64 y) z) (+.f64 (sin.f64 y) x))
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) (+.f64 (sin.f64 y) x)) 4)) 8)
(+.f64 (sin.f64 y) (+.f64 x (*.f64 (cos.f64 y) z)))
(+.f64 (*.f64 (cos.f64 y) z) (+.f64 (sin.f64 y) x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) (+.f64 (sin.f64 y) x)) 4))) 16)
(+.f64 (sin.f64 y) (+.f64 x (*.f64 (cos.f64 y) z)))
(+.f64 (*.f64 (cos.f64 y) z) (+.f64 (sin.f64 y) x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) (+.f64 (sin.f64 y) x)) 4)))) 32)
(+.f64 (sin.f64 y) (+.f64 x (*.f64 (cos.f64 y) z)))
(+.f64 (*.f64 (cos.f64 y) z) (+.f64 (sin.f64 y) x))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) (+.f64 (sin.f64 y) x)) 4)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) (+.f64 (sin.f64 y) x)) 4))))) 64)
(+.f64 (sin.f64 y) (+.f64 x (*.f64 (cos.f64 y) z)))
(+.f64 (*.f64 (cos.f64 y) z) (+.f64 (sin.f64 y) x))
(pow.f64 (+.f64 (*.f64 z (cos.f64 y)) (+.f64 (sin.f64 y) x)) 1)
(+.f64 (sin.f64 y) (+.f64 x (*.f64 (cos.f64 y) z)))
(+.f64 (*.f64 (cos.f64 y) z) (+.f64 (sin.f64 y) x))
(+.f64 (sin.f64 y) 0)
(sin.f64 y)
(+.f64 0 (sin.f64 y))
(sin.f64 y)
(+.f64 -1 (-.f64 1 (neg.f64 (sin.f64 y))))
(sin.f64 y)
(+.f64 (*.f64 (sin.f64 y) 1/2) (*.f64 (sin.f64 y) 1/2))
(sin.f64 y)
(+.f64 (-.f64 1 (neg.f64 (sin.f64 y))) -1)
(sin.f64 y)
(-.f64 (sin.f64 y) 0)
(sin.f64 y)
(-.f64 0 (neg.f64 (sin.f64 y)))
(sin.f64 y)
(-.f64 (-.f64 1 (neg.f64 (sin.f64 y))) 1)
(sin.f64 y)
(*.f64 (sin.f64 y) 1)
(sin.f64 y)
(*.f64 1 (sin.f64 y))
(sin.f64 y)
(*.f64 -1 (neg.f64 (sin.f64 y)))
(sin.f64 y)
(*.f64 2 (*.f64 (sin.f64 y) 1/2))
(sin.f64 y)
(*.f64 (*.f64 (sin.f64 y) 2) 1/2)
(sin.f64 y)
(*.f64 4 (/.f64 (sin.f64 y) 4))
(sin.f64 y)
(*.f64 (*.f64 (sin.f64 y) 4) 1/4)
(sin.f64 y)
(*.f64 1/2 (*.f64 (sin.f64 y) 2))
(sin.f64 y)
(*.f64 (*.f64 (sin.f64 y) 1/2) 2)
(sin.f64 y)
(*.f64 (neg.f64 (sin.f64 y)) -1)
(sin.f64 y)
(*.f64 1/4 (*.f64 (sin.f64 y) 4))
(sin.f64 y)
(*.f64 (/.f64 (sin.f64 y) 4) 4)
(sin.f64 y)
(/.f64 (sin.f64 y) 1)
(sin.f64 y)
(/.f64 (*.f64 (sin.f64 y) 2) 2)
(sin.f64 y)
(/.f64 (*.f64 (sin.f64 y) 4) 4)
(sin.f64 y)
(/.f64 (*.f64 2 (*.f64 (sin.f64 y) 4)) 8)
(sin.f64 y)
(/.f64 (neg.f64 (sin.f64 y)) -1)
(sin.f64 y)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (sin.f64 y) 4))) 16)
(sin.f64 y)
(/.f64 (*.f64 2 (neg.f64 (sin.f64 y))) -2)
(sin.f64 y)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (sin.f64 y) 4)))) 32)
(sin.f64 y)
(/.f64 (+.f64 (*.f64 2 (neg.f64 (sin.f64 y))) (*.f64 2 (neg.f64 (sin.f64 y)))) -4)
(sin.f64 y)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (sin.f64 y) 4)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (sin.f64 y) 4))))) 64)
(sin.f64 y)
(pow.f64 (sin.f64 y) 1)
(sin.f64 y)
(neg.f64 (neg.f64 (sin.f64 y)))
(sin.f64 y)

eval35.0ms (0.3%)

Compiler

Compiled 2183 to 1096 computations (49.8% saved)

prune26.0ms (0.2%)

Pruning

7 alts after pruning (6 fresh and 1 done)

PrunedKeptTotal
New1386144
Fresh000
Picked011
Done000
Total1387145
Error
0.1b
Counts
145 → 7
Alt Table
Click to see full alt table
StatusErrorProgram
26.3b
(+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y))
27.4b
(+.f64 (sin.f64 y) x)
22.9b
(+.f64 z x)
0.1b
(+.f64 x (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))))
16.5b
(+.f64 x (+.f64 y (*.f64 z (cos.f64 y))))
22.7b
(+.f64 x (+.f64 y z))
37.4b
x
Compiler

Compiled 100 to 67 computations (33% saved)

localize8.0ms (0.1%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(+.f64 x (+.f64 y (*.f64 z (cos.f64 y))))
0.0b
(+.f64 y (*.f64 z (cos.f64 y)))
0.1b
(*.f64 z (cos.f64 y))
Compiler

Compiled 26 to 7 computations (73.1% saved)

series3.0ms (0%)

Counts
2 → 60
Calls

15 calls:

TimeVariablePointExpression
2.0ms
x
@0
(+.f64 x (+.f64 y (*.f64 z (cos.f64 y))))
0.0ms
y
@inf
(+.f64 y (*.f64 z (cos.f64 y)))
0.0ms
y
@0
(+.f64 y (*.f64 z (cos.f64 y)))
0.0ms
y
@-inf
(+.f64 x (+.f64 y (*.f64 z (cos.f64 y))))
0.0ms
x
@-inf
(+.f64 x (+.f64 y (*.f64 z (cos.f64 y))))

rewrite132.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
1430×rational.json-1
1430×rational.json-2
1430×rational.json-3
1426×exponential.json-3
1426×rational.json-4
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01040
16940
215840
335240
476540
5197340
6415940
7585740
8726640
Stop Event
node limit
Counts
2 → 50
Calls
Call 1
Inputs
(+.f64 y (*.f64 z (cos.f64 y)))
(+.f64 x (+.f64 y (*.f64 z (cos.f64 y))))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 y (*.f64 z (cos.f64 y))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 z (cos.f64 y)) (+.f64 y 1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 y (*.f64 z (cos.f64 y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 y (*.f64 z (cos.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 y (*.f64 z (cos.f64 y))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 (cos.f64 y) (*.f64 z 1/2)) (*.f64 y 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 y 1/2) (*.f64 (cos.f64 y) (*.f64 z 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 y (*.f64 z (cos.f64 y))) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (+.f64 y (*.f64 z (cos.f64 y))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 y (*.f64 z (cos.f64 y))) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (+.f64 y (*.f64 z (cos.f64 y))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 (cos.f64 y) (+.f64 z z)) (+.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (+.f64 y y) (*.f64 (cos.f64 y) (+.f64 z z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 y (*.f64 z (cos.f64 y))) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 y (*.f64 z (cos.f64 y))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 y (*.f64 z (cos.f64 y))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 y (*.f64 z (cos.f64 y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 y (*.f64 z (cos.f64 y))) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 y (*.f64 z (cos.f64 y))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 y (*.f64 z (cos.f64 y))) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 y (*.f64 z (cos.f64 y))) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y (*.f64 z (cos.f64 y))) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y (*.f64 z (cos.f64 y))) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 y (*.f64 z (cos.f64 y))) 1)))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 y (+.f64 (*.f64 z (cos.f64 y)) x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (+.f64 (*.f64 z (cos.f64 y)) x) (+.f64 y 1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 y (+.f64 (*.f64 z (cos.f64 y)) x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 y (+.f64 (*.f64 z (cos.f64 y)) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 y (+.f64 (*.f64 z (cos.f64 y)) x)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 x 1/2) (*.f64 (+.f64 y (*.f64 z (cos.f64 y))) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 (+.f64 y (*.f64 z (cos.f64 y))) 1/2) (*.f64 x 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 y 1/2) (/.f64 (+.f64 (*.f64 z (cos.f64 y)) x) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 y (+.f64 (*.f64 z (cos.f64 y)) x)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (+.f64 y (+.f64 (*.f64 z (cos.f64 y)) x)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 y (+.f64 (*.f64 z (cos.f64 y)) x)) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (+.f64 y (+.f64 (*.f64 z (cos.f64 y)) x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) x) 2) (+.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (+.f64 x x) (*.f64 (+.f64 y (*.f64 z (cos.f64 y))) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 (+.f64 y (*.f64 z (cos.f64 y))) 2) (+.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 y (+.f64 (*.f64 z (cos.f64 y)) x)) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 y (+.f64 (*.f64 z (cos.f64 y)) x)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 y (+.f64 (*.f64 z (cos.f64 y)) x)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 y (+.f64 (*.f64 z (cos.f64 y)) x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 y (+.f64 (*.f64 z (cos.f64 y)) x)) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 y (+.f64 (*.f64 z (cos.f64 y)) x)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 y (+.f64 (*.f64 z (cos.f64 y)) x)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 y (+.f64 (*.f64 z (cos.f64 y)) x)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y (+.f64 (*.f64 z (cos.f64 y)) x)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y (+.f64 (*.f64 z (cos.f64 y)) x)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 y (+.f64 (*.f64 z (cos.f64 y)) x)) 1)))))

simplify423.0ms (3.1%)

Algorithm
egg-herbie
Rules
1906×rational.json-simplify-1
1790×rational.json-simplify-35
1248×rational.json-simplify-2
1112×rational.json-simplify-48
914×rational.json-simplify-45
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01362136
12972136
27132136
318842124
434522124
539822124
646062124
748692124
852502124
954432124
1062492124
1163602124
1264442124
1365272124
1471512124
1575132124
1677742124
1779732124
Stop Event
node limit
Counts
110 → 87
Calls
Call 1
Inputs
z
(+.f64 y z)
(+.f64 (*.f64 -1/2 (*.f64 (pow.f64 y 2) z)) (+.f64 y z))
(+.f64 (*.f64 -1/2 (*.f64 (pow.f64 y 2) z)) (+.f64 y (+.f64 z (*.f64 1/24 (*.f64 (pow.f64 y 4) z)))))
y
(+.f64 (*.f64 z (cos.f64 y)) y)
(+.f64 (*.f64 z (cos.f64 y)) y)
(+.f64 (*.f64 z (cos.f64 y)) y)
y
(+.f64 (*.f64 z (cos.f64 y)) y)
(+.f64 (*.f64 z (cos.f64 y)) y)
(+.f64 (*.f64 z (cos.f64 y)) y)
y
(+.f64 (*.f64 (cos.f64 y) z) y)
(+.f64 (*.f64 (cos.f64 y) z) y)
(+.f64 (*.f64 (cos.f64 y) z) y)
(*.f64 (cos.f64 y) z)
(+.f64 (*.f64 (cos.f64 y) z) y)
(+.f64 (*.f64 (cos.f64 y) z) y)
(+.f64 (*.f64 (cos.f64 y) z) y)
(*.f64 (cos.f64 y) z)
(+.f64 (*.f64 (cos.f64 y) z) y)
(+.f64 (*.f64 (cos.f64 y) z) y)
(+.f64 (*.f64 (cos.f64 y) z) y)
(+.f64 y (*.f64 z (cos.f64 y)))
(+.f64 (*.f64 z (cos.f64 y)) (+.f64 y x))
(+.f64 (*.f64 z (cos.f64 y)) (+.f64 y x))
(+.f64 (*.f64 z (cos.f64 y)) (+.f64 y x))
x
(+.f64 (*.f64 z (cos.f64 y)) (+.f64 y x))
(+.f64 (*.f64 z (cos.f64 y)) (+.f64 y x))
(+.f64 (*.f64 z (cos.f64 y)) (+.f64 y x))
x
(+.f64 (*.f64 (cos.f64 y) z) (+.f64 y x))
(+.f64 (*.f64 (cos.f64 y) z) (+.f64 y x))
(+.f64 (*.f64 (cos.f64 y) z) (+.f64 y x))
(+.f64 z x)
(+.f64 y (+.f64 z x))
(+.f64 (*.f64 -1/2 (*.f64 (pow.f64 y 2) z)) (+.f64 y (+.f64 z x)))
(+.f64 (*.f64 -1/2 (*.f64 (pow.f64 y 2) z)) (+.f64 y (+.f64 z (+.f64 (*.f64 1/24 (*.f64 (pow.f64 y 4) z)) x))))
y
(+.f64 (*.f64 (cos.f64 y) z) (+.f64 y x))
(+.f64 (*.f64 (cos.f64 y) z) (+.f64 y x))
(+.f64 (*.f64 (cos.f64 y) z) (+.f64 y x))
y
(+.f64 (*.f64 (cos.f64 y) z) (+.f64 y x))
(+.f64 (*.f64 (cos.f64 y) z) (+.f64 y x))
(+.f64 (*.f64 (cos.f64 y) z) (+.f64 y x))
(+.f64 y x)
(+.f64 (*.f64 (cos.f64 y) z) (+.f64 y x))
(+.f64 (*.f64 (cos.f64 y) z) (+.f64 y x))
(+.f64 (*.f64 (cos.f64 y) z) (+.f64 y x))
(*.f64 (cos.f64 y) z)
(+.f64 (*.f64 (cos.f64 y) z) (+.f64 y x))
(+.f64 (*.f64 (cos.f64 y) z) (+.f64 y x))
(+.f64 (*.f64 (cos.f64 y) z) (+.f64 y x))
(*.f64 (cos.f64 y) z)
(+.f64 (*.f64 (cos.f64 y) z) (+.f64 y x))
(+.f64 (*.f64 (cos.f64 y) z) (+.f64 y x))
(+.f64 (*.f64 (cos.f64 y) z) (+.f64 y x))
(-.f64 (+.f64 y (*.f64 z (cos.f64 y))) 0)
(-.f64 (+.f64 (*.f64 z (cos.f64 y)) (+.f64 y 1)) 1)
(*.f64 (+.f64 y (*.f64 z (cos.f64 y))) 1)
(*.f64 1 (+.f64 y (*.f64 z (cos.f64 y))))
(*.f64 2 (*.f64 (+.f64 y (*.f64 z (cos.f64 y))) 1/2))
(*.f64 2 (+.f64 (*.f64 (cos.f64 y) (*.f64 z 1/2)) (*.f64 y 1/2)))
(*.f64 2 (+.f64 (*.f64 y 1/2) (*.f64 (cos.f64 y) (*.f64 z 1/2))))
(*.f64 (*.f64 (+.f64 y (*.f64 z (cos.f64 y))) 2) 1/2)
(*.f64 4 (/.f64 (+.f64 y (*.f64 z (cos.f64 y))) 4))
(*.f64 (*.f64 (+.f64 y (*.f64 z (cos.f64 y))) 4) 1/4)
(*.f64 1/2 (*.f64 (+.f64 y (*.f64 z (cos.f64 y))) 2))
(*.f64 1/2 (+.f64 (*.f64 (cos.f64 y) (+.f64 z z)) (+.f64 y y)))
(*.f64 1/2 (+.f64 (+.f64 y y) (*.f64 (cos.f64 y) (+.f64 z z))))
(*.f64 (*.f64 (+.f64 y (*.f64 z (cos.f64 y))) 1/2) 2)
(*.f64 1/4 (*.f64 (+.f64 y (*.f64 z (cos.f64 y))) 4))
(*.f64 (/.f64 (+.f64 y (*.f64 z (cos.f64 y))) 4) 4)
(/.f64 (+.f64 y (*.f64 z (cos.f64 y))) 1)
(/.f64 (*.f64 (+.f64 y (*.f64 z (cos.f64 y))) 2) 2)
(/.f64 (*.f64 (+.f64 y (*.f64 z (cos.f64 y))) 4) 4)
(/.f64 (*.f64 (+.f64 y (*.f64 z (cos.f64 y))) 8) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 y (*.f64 z (cos.f64 y))) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y (*.f64 z (cos.f64 y))) 8))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y (*.f64 z (cos.f64 y))) 8)))) 64)
(pow.f64 (+.f64 y (*.f64 z (cos.f64 y))) 1)
(-.f64 (+.f64 y (+.f64 (*.f64 z (cos.f64 y)) x)) 0)
(-.f64 (+.f64 (+.f64 (*.f64 z (cos.f64 y)) x) (+.f64 y 1)) 1)
(*.f64 (+.f64 y (+.f64 (*.f64 z (cos.f64 y)) x)) 1)
(*.f64 1 (+.f64 y (+.f64 (*.f64 z (cos.f64 y)) x)))
(*.f64 2 (*.f64 (+.f64 y (+.f64 (*.f64 z (cos.f64 y)) x)) 1/2))
(*.f64 2 (+.f64 (*.f64 x 1/2) (*.f64 (+.f64 y (*.f64 z (cos.f64 y))) 1/2)))
(*.f64 2 (+.f64 (*.f64 (+.f64 y (*.f64 z (cos.f64 y))) 1/2) (*.f64 x 1/2)))
(*.f64 2 (+.f64 (*.f64 y 1/2) (/.f64 (+.f64 (*.f64 z (cos.f64 y)) x) 2)))
(*.f64 (*.f64 (+.f64 y (+.f64 (*.f64 z (cos.f64 y)) x)) 2) 1/2)
(*.f64 4 (/.f64 (+.f64 y (+.f64 (*.f64 z (cos.f64 y)) x)) 4))
(*.f64 (*.f64 (+.f64 y (+.f64 (*.f64 z (cos.f64 y)) x)) 4) 1/4)
(*.f64 1/2 (*.f64 (+.f64 y (+.f64 (*.f64 z (cos.f64 y)) x)) 2))
(*.f64 1/2 (+.f64 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) x) 2) (+.f64 y y)))
(*.f64 1/2 (+.f64 (+.f64 x x) (*.f64 (+.f64 y (*.f64 z (cos.f64 y))) 2)))
(*.f64 1/2 (+.f64 (*.f64 (+.f64 y (*.f64 z (cos.f64 y))) 2) (+.f64 x x)))
(*.f64 (*.f64 (+.f64 y (+.f64 (*.f64 z (cos.f64 y)) x)) 1/2) 2)
(*.f64 1/4 (*.f64 (+.f64 y (+.f64 (*.f64 z (cos.f64 y)) x)) 4))
(*.f64 (/.f64 (+.f64 y (+.f64 (*.f64 z (cos.f64 y)) x)) 4) 4)
(/.f64 (+.f64 y (+.f64 (*.f64 z (cos.f64 y)) x)) 1)
(/.f64 (*.f64 (+.f64 y (+.f64 (*.f64 z (cos.f64 y)) x)) 2) 2)
(/.f64 (*.f64 (+.f64 y (+.f64 (*.f64 z (cos.f64 y)) x)) 4) 4)
(/.f64 (*.f64 (+.f64 y (+.f64 (*.f64 z (cos.f64 y)) x)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 y (+.f64 (*.f64 z (cos.f64 y)) x)) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y (+.f64 (*.f64 z (cos.f64 y)) x)) 8))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y (+.f64 (*.f64 z (cos.f64 y)) x)) 8)))) 64)
(pow.f64 (+.f64 y (+.f64 (*.f64 z (cos.f64 y)) x)) 1)
Outputs
z
(+.f64 y z)
(+.f64 z y)
(+.f64 (*.f64 -1/2 (*.f64 (pow.f64 y 2) z)) (+.f64 y z))
(+.f64 (+.f64 z y) (*.f64 (pow.f64 y 2) (*.f64 z -1/2)))
(+.f64 z (+.f64 y (*.f64 (pow.f64 y 2) (*.f64 z -1/2))))
(+.f64 z (+.f64 y (*.f64 z (*.f64 -1/2 (pow.f64 y 2)))))
(+.f64 (*.f64 -1/2 (*.f64 (pow.f64 y 2) z)) (+.f64 y (+.f64 z (*.f64 1/24 (*.f64 (pow.f64 y 4) z)))))
(+.f64 y (+.f64 (+.f64 z (*.f64 1/24 (*.f64 z (pow.f64 y 4)))) (*.f64 (pow.f64 y 2) (*.f64 z -1/2))))
(+.f64 (*.f64 (pow.f64 y 2) (*.f64 z -1/2)) (+.f64 (*.f64 z (*.f64 (pow.f64 y 4) 1/24)) (+.f64 z y)))
(+.f64 (*.f64 z (*.f64 -1/2 (pow.f64 y 2))) (+.f64 z (+.f64 y (*.f64 z (*.f64 1/24 (pow.f64 y 4))))))
(+.f64 (+.f64 z y) (*.f64 z (+.f64 (*.f64 -1/2 (pow.f64 y 2)) (*.f64 1/24 (pow.f64 y 4)))))
y
(+.f64 (*.f64 z (cos.f64 y)) y)
(+.f64 y (*.f64 z (cos.f64 y)))
(+.f64 (*.f64 z (cos.f64 y)) y)
(+.f64 y (*.f64 z (cos.f64 y)))
(+.f64 (*.f64 z (cos.f64 y)) y)
(+.f64 y (*.f64 z (cos.f64 y)))
y
(+.f64 (*.f64 z (cos.f64 y)) y)
(+.f64 y (*.f64 z (cos.f64 y)))
(+.f64 (*.f64 z (cos.f64 y)) y)
(+.f64 y (*.f64 z (cos.f64 y)))
(+.f64 (*.f64 z (cos.f64 y)) y)
(+.f64 y (*.f64 z (cos.f64 y)))
y
(+.f64 (*.f64 (cos.f64 y) z) y)
(+.f64 y (*.f64 z (cos.f64 y)))
(+.f64 (*.f64 (cos.f64 y) z) y)
(+.f64 y (*.f64 z (cos.f64 y)))
(+.f64 (*.f64 (cos.f64 y) z) y)
(+.f64 y (*.f64 z (cos.f64 y)))
(*.f64 (cos.f64 y) z)
(*.f64 z (cos.f64 y))
(+.f64 (*.f64 (cos.f64 y) z) y)
(+.f64 y (*.f64 z (cos.f64 y)))
(+.f64 (*.f64 (cos.f64 y) z) y)
(+.f64 y (*.f64 z (cos.f64 y)))
(+.f64 (*.f64 (cos.f64 y) z) y)
(+.f64 y (*.f64 z (cos.f64 y)))
(*.f64 (cos.f64 y) z)
(*.f64 z (cos.f64 y))
(+.f64 (*.f64 (cos.f64 y) z) y)
(+.f64 y (*.f64 z (cos.f64 y)))
(+.f64 (*.f64 (cos.f64 y) z) y)
(+.f64 y (*.f64 z (cos.f64 y)))
(+.f64 (*.f64 (cos.f64 y) z) y)
(+.f64 y (*.f64 z (cos.f64 y)))
(+.f64 y (*.f64 z (cos.f64 y)))
(+.f64 (*.f64 z (cos.f64 y)) (+.f64 y x))
(+.f64 (*.f64 z (cos.f64 y)) (+.f64 y x))
(+.f64 (*.f64 z (cos.f64 y)) (+.f64 y x))
x
(+.f64 (*.f64 z (cos.f64 y)) (+.f64 y x))
(+.f64 (*.f64 z (cos.f64 y)) (+.f64 y x))
(+.f64 (*.f64 z (cos.f64 y)) (+.f64 y x))
x
(+.f64 (*.f64 (cos.f64 y) z) (+.f64 y x))
(+.f64 (*.f64 z (cos.f64 y)) (+.f64 y x))
(+.f64 (*.f64 (cos.f64 y) z) (+.f64 y x))
(+.f64 (*.f64 z (cos.f64 y)) (+.f64 y x))
(+.f64 (*.f64 (cos.f64 y) z) (+.f64 y x))
(+.f64 (*.f64 z (cos.f64 y)) (+.f64 y x))
(+.f64 z x)
(+.f64 y (+.f64 z x))
(+.f64 z (+.f64 y x))
(+.f64 (*.f64 -1/2 (*.f64 (pow.f64 y 2) z)) (+.f64 y (+.f64 z x)))
(+.f64 y (+.f64 (+.f64 z x) (*.f64 (pow.f64 y 2) (*.f64 z -1/2))))
(+.f64 z (+.f64 (+.f64 y x) (*.f64 (pow.f64 y 2) (*.f64 z -1/2))))
(+.f64 z (+.f64 (*.f64 z (*.f64 -1/2 (pow.f64 y 2))) (+.f64 y x)))
(+.f64 (*.f64 -1/2 (*.f64 (pow.f64 y 2) z)) (+.f64 y (+.f64 z (+.f64 (*.f64 1/24 (*.f64 (pow.f64 y 4) z)) x))))
(+.f64 y (+.f64 (+.f64 (*.f64 1/24 (*.f64 z (pow.f64 y 4))) (+.f64 z x)) (*.f64 (pow.f64 y 2) (*.f64 z -1/2))))
(+.f64 y (+.f64 (*.f64 (pow.f64 y 2) (*.f64 z -1/2)) (+.f64 (*.f64 z (*.f64 (pow.f64 y 4) 1/24)) (+.f64 z x))))
(+.f64 (*.f64 z (*.f64 1/24 (pow.f64 y 4))) (+.f64 z (+.f64 (*.f64 z (*.f64 -1/2 (pow.f64 y 2))) (+.f64 y x))))
(+.f64 y (+.f64 z (+.f64 (*.f64 z (+.f64 (*.f64 -1/2 (pow.f64 y 2)) (*.f64 1/24 (pow.f64 y 4)))) x)))
(+.f64 y (+.f64 z (+.f64 x (*.f64 z (+.f64 (*.f64 -1/2 (pow.f64 y 2)) (*.f64 1/24 (pow.f64 y 4)))))))
(+.f64 z (+.f64 x (+.f64 y (*.f64 z (+.f64 (*.f64 -1/2 (pow.f64 y 2)) (*.f64 1/24 (pow.f64 y 4)))))))
y
(+.f64 (*.f64 (cos.f64 y) z) (+.f64 y x))
(+.f64 (*.f64 z (cos.f64 y)) (+.f64 y x))
(+.f64 (*.f64 (cos.f64 y) z) (+.f64 y x))
(+.f64 (*.f64 z (cos.f64 y)) (+.f64 y x))
(+.f64 (*.f64 (cos.f64 y) z) (+.f64 y x))
(+.f64 (*.f64 z (cos.f64 y)) (+.f64 y x))
y
(+.f64 (*.f64 (cos.f64 y) z) (+.f64 y x))
(+.f64 (*.f64 z (cos.f64 y)) (+.f64 y x))
(+.f64 (*.f64 (cos.f64 y) z) (+.f64 y x))
(+.f64 (*.f64 z (cos.f64 y)) (+.f64 y x))
(+.f64 (*.f64 (cos.f64 y) z) (+.f64 y x))
(+.f64 (*.f64 z (cos.f64 y)) (+.f64 y x))
(+.f64 y x)
(+.f64 (*.f64 (cos.f64 y) z) (+.f64 y x))
(+.f64 (*.f64 z (cos.f64 y)) (+.f64 y x))
(+.f64 (*.f64 (cos.f64 y) z) (+.f64 y x))
(+.f64 (*.f64 z (cos.f64 y)) (+.f64 y x))
(+.f64 (*.f64 (cos.f64 y) z) (+.f64 y x))
(+.f64 (*.f64 z (cos.f64 y)) (+.f64 y x))
(*.f64 (cos.f64 y) z)
(*.f64 z (cos.f64 y))
(+.f64 (*.f64 (cos.f64 y) z) (+.f64 y x))
(+.f64 (*.f64 z (cos.f64 y)) (+.f64 y x))
(+.f64 (*.f64 (cos.f64 y) z) (+.f64 y x))
(+.f64 (*.f64 z (cos.f64 y)) (+.f64 y x))
(+.f64 (*.f64 (cos.f64 y) z) (+.f64 y x))
(+.f64 (*.f64 z (cos.f64 y)) (+.f64 y x))
(*.f64 (cos.f64 y) z)
(*.f64 z (cos.f64 y))
(+.f64 (*.f64 (cos.f64 y) z) (+.f64 y x))
(+.f64 (*.f64 z (cos.f64 y)) (+.f64 y x))
(+.f64 (*.f64 (cos.f64 y) z) (+.f64 y x))
(+.f64 (*.f64 z (cos.f64 y)) (+.f64 y x))
(+.f64 (*.f64 (cos.f64 y) z) (+.f64 y x))
(+.f64 (*.f64 z (cos.f64 y)) (+.f64 y x))
(-.f64 (+.f64 y (*.f64 z (cos.f64 y))) 0)
(+.f64 y (*.f64 z (cos.f64 y)))
(-.f64 (+.f64 (*.f64 z (cos.f64 y)) (+.f64 y 1)) 1)
(+.f64 y (*.f64 z (cos.f64 y)))
(*.f64 (+.f64 y (*.f64 z (cos.f64 y))) 1)
(+.f64 y (*.f64 z (cos.f64 y)))
(*.f64 1 (+.f64 y (*.f64 z (cos.f64 y))))
(+.f64 y (*.f64 z (cos.f64 y)))
(*.f64 2 (*.f64 (+.f64 y (*.f64 z (cos.f64 y))) 1/2))
(+.f64 y (*.f64 z (cos.f64 y)))
(*.f64 2 (+.f64 (*.f64 (cos.f64 y) (*.f64 z 1/2)) (*.f64 y 1/2)))
(+.f64 y (*.f64 z (cos.f64 y)))
(*.f64 2 (+.f64 (*.f64 y 1/2) (*.f64 (cos.f64 y) (*.f64 z 1/2))))
(+.f64 y (*.f64 z (cos.f64 y)))
(*.f64 (*.f64 (+.f64 y (*.f64 z (cos.f64 y))) 2) 1/2)
(+.f64 y (*.f64 z (cos.f64 y)))
(*.f64 4 (/.f64 (+.f64 y (*.f64 z (cos.f64 y))) 4))
(+.f64 y (*.f64 z (cos.f64 y)))
(*.f64 (*.f64 (+.f64 y (*.f64 z (cos.f64 y))) 4) 1/4)
(+.f64 y (*.f64 z (cos.f64 y)))
(*.f64 1/2 (*.f64 (+.f64 y (*.f64 z (cos.f64 y))) 2))
(+.f64 y (*.f64 z (cos.f64 y)))
(*.f64 1/2 (+.f64 (*.f64 (cos.f64 y) (+.f64 z z)) (+.f64 y y)))
(+.f64 y (*.f64 z (cos.f64 y)))
(*.f64 1/2 (+.f64 (+.f64 y y) (*.f64 (cos.f64 y) (+.f64 z z))))
(+.f64 y (*.f64 z (cos.f64 y)))
(*.f64 (*.f64 (+.f64 y (*.f64 z (cos.f64 y))) 1/2) 2)
(+.f64 y (*.f64 z (cos.f64 y)))
(*.f64 1/4 (*.f64 (+.f64 y (*.f64 z (cos.f64 y))) 4))
(+.f64 y (*.f64 z (cos.f64 y)))
(*.f64 (/.f64 (+.f64 y (*.f64 z (cos.f64 y))) 4) 4)
(+.f64 y (*.f64 z (cos.f64 y)))
(/.f64 (+.f64 y (*.f64 z (cos.f64 y))) 1)
(+.f64 y (*.f64 z (cos.f64 y)))
(/.f64 (*.f64 (+.f64 y (*.f64 z (cos.f64 y))) 2) 2)
(+.f64 y (*.f64 z (cos.f64 y)))
(/.f64 (*.f64 (+.f64 y (*.f64 z (cos.f64 y))) 4) 4)
(+.f64 y (*.f64 z (cos.f64 y)))
(/.f64 (*.f64 (+.f64 y (*.f64 z (cos.f64 y))) 8) 8)
(+.f64 y (*.f64 z (cos.f64 y)))
(/.f64 (*.f64 2 (*.f64 (+.f64 y (*.f64 z (cos.f64 y))) 8)) 16)
(+.f64 y (*.f64 z (cos.f64 y)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y (*.f64 z (cos.f64 y))) 8))) 32)
(+.f64 y (*.f64 z (cos.f64 y)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y (*.f64 z (cos.f64 y))) 8)))) 64)
(+.f64 y (*.f64 z (cos.f64 y)))
(pow.f64 (+.f64 y (*.f64 z (cos.f64 y))) 1)
(+.f64 y (*.f64 z (cos.f64 y)))
(-.f64 (+.f64 y (+.f64 (*.f64 z (cos.f64 y)) x)) 0)
(+.f64 (*.f64 z (cos.f64 y)) (+.f64 y x))
(-.f64 (+.f64 (+.f64 (*.f64 z (cos.f64 y)) x) (+.f64 y 1)) 1)
(+.f64 (*.f64 z (cos.f64 y)) (+.f64 y x))
(*.f64 (+.f64 y (+.f64 (*.f64 z (cos.f64 y)) x)) 1)
(+.f64 (*.f64 z (cos.f64 y)) (+.f64 y x))
(*.f64 1 (+.f64 y (+.f64 (*.f64 z (cos.f64 y)) x)))
(+.f64 (*.f64 z (cos.f64 y)) (+.f64 y x))
(*.f64 2 (*.f64 (+.f64 y (+.f64 (*.f64 z (cos.f64 y)) x)) 1/2))
(+.f64 (*.f64 z (cos.f64 y)) (+.f64 y x))
(*.f64 2 (+.f64 (*.f64 x 1/2) (*.f64 (+.f64 y (*.f64 z (cos.f64 y))) 1/2)))
(+.f64 (*.f64 z (cos.f64 y)) (+.f64 y x))
(*.f64 2 (+.f64 (*.f64 (+.f64 y (*.f64 z (cos.f64 y))) 1/2) (*.f64 x 1/2)))
(+.f64 (*.f64 z (cos.f64 y)) (+.f64 y x))
(*.f64 2 (+.f64 (*.f64 y 1/2) (/.f64 (+.f64 (*.f64 z (cos.f64 y)) x) 2)))
(*.f64 (*.f64 (+.f64 y (+.f64 (*.f64 z (cos.f64 y)) x)) 2) 1/2)
(+.f64 (*.f64 z (cos.f64 y)) (+.f64 y x))
(*.f64 4 (/.f64 (+.f64 y (+.f64 (*.f64 z (cos.f64 y)) x)) 4))
(+.f64 (*.f64 z (cos.f64 y)) (+.f64 y x))
(*.f64 (*.f64 (+.f64 y (+.f64 (*.f64 z (cos.f64 y)) x)) 4) 1/4)
(+.f64 (*.f64 z (cos.f64 y)) (+.f64 y x))
(*.f64 1/2 (*.f64 (+.f64 y (+.f64 (*.f64 z (cos.f64 y)) x)) 2))
(+.f64 (*.f64 z (cos.f64 y)) (+.f64 y x))
(*.f64 1/2 (+.f64 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) x) 2) (+.f64 y y)))
(*.f64 1/2 (+.f64 y (+.f64 y (*.f64 2 (+.f64 (*.f64 z (cos.f64 y)) x)))))
(*.f64 1/2 (+.f64 (+.f64 x x) (*.f64 (+.f64 y (*.f64 z (cos.f64 y))) 2)))
(+.f64 (*.f64 z (cos.f64 y)) (+.f64 y x))
(*.f64 1/2 (+.f64 (*.f64 (+.f64 y (*.f64 z (cos.f64 y))) 2) (+.f64 x x)))
(+.f64 (*.f64 z (cos.f64 y)) (+.f64 y x))
(*.f64 (*.f64 (+.f64 y (+.f64 (*.f64 z (cos.f64 y)) x)) 1/2) 2)
(+.f64 (*.f64 z (cos.f64 y)) (+.f64 y x))
(*.f64 1/4 (*.f64 (+.f64 y (+.f64 (*.f64 z (cos.f64 y)) x)) 4))
(+.f64 (*.f64 z (cos.f64 y)) (+.f64 y x))
(*.f64 (/.f64 (+.f64 y (+.f64 (*.f64 z (cos.f64 y)) x)) 4) 4)
(+.f64 (*.f64 z (cos.f64 y)) (+.f64 y x))
(/.f64 (+.f64 y (+.f64 (*.f64 z (cos.f64 y)) x)) 1)
(+.f64 (*.f64 z (cos.f64 y)) (+.f64 y x))
(/.f64 (*.f64 (+.f64 y (+.f64 (*.f64 z (cos.f64 y)) x)) 2) 2)
(+.f64 (*.f64 z (cos.f64 y)) (+.f64 y x))
(/.f64 (*.f64 (+.f64 y (+.f64 (*.f64 z (cos.f64 y)) x)) 4) 4)
(+.f64 (*.f64 z (cos.f64 y)) (+.f64 y x))
(/.f64 (*.f64 (+.f64 y (+.f64 (*.f64 z (cos.f64 y)) x)) 8) 8)
(+.f64 (*.f64 z (cos.f64 y)) (+.f64 y x))
(/.f64 (*.f64 2 (*.f64 (+.f64 y (+.f64 (*.f64 z (cos.f64 y)) x)) 8)) 16)
(+.f64 (*.f64 z (cos.f64 y)) (+.f64 y x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y (+.f64 (*.f64 z (cos.f64 y)) x)) 8))) 32)
(+.f64 (*.f64 z (cos.f64 y)) (+.f64 y x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y (+.f64 (*.f64 z (cos.f64 y)) x)) 8)))) 64)
(+.f64 (*.f64 z (cos.f64 y)) (+.f64 y x))
(pow.f64 (+.f64 y (+.f64 (*.f64 z (cos.f64 y)) x)) 1)
(+.f64 (*.f64 z (cos.f64 y)) (+.f64 y x))

localize3.0ms (0%)

Compiler

Compiled 8 to 4 computations (50% saved)

localize5.0ms (0%)

Compiler

Compiled 14 to 5 computations (64.3% saved)

localize5.0ms (0%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(sin.f64 y)
0.0b
(+.f64 (sin.f64 y) x)
Compiler

Compiled 11 to 5 computations (54.5% saved)

series1.0ms (0%)

Counts
1 → 7
Calls

6 calls:

TimeVariablePointExpression
0.0ms
y
@0
(+.f64 (sin.f64 y) x)
0.0ms
y
@inf
(+.f64 (sin.f64 y) x)
0.0ms
x
@-inf
(+.f64 (sin.f64 y) x)
0.0ms
y
@-inf
(+.f64 (sin.f64 y) x)
0.0ms
x
@inf
(+.f64 (sin.f64 y) x)

rewrite88.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
1380×rational.json-simplify-35
1210×exponential.json-3
1210×rational.json-1
1210×rational.json-2
1210×rational.json-4
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0711
14911
212111
325311
450911
5117711
6299811
7566411
Stop Event
node limit
Counts
1 → 24
Calls
Call 1
Inputs
(+.f64 (sin.f64 y) x)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (sin.f64 y) x) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (sin.f64 y) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (sin.f64 y) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 (sin.f64 y) x) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (sin.f64 y) x) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (+.f64 (sin.f64 y) x) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (sin.f64 y) x) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (+.f64 (sin.f64 y) x) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (+.f64 x x) (*.f64 (sin.f64 y) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (sin.f64 y) x) 8) 1/8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (sin.f64 y) x) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 (sin.f64 y) x) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (sin.f64 y) x) 1/4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/8 (*.f64 (+.f64 (sin.f64 y) x) 8))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (+.f64 x x) (*.f64 (sin.f64 y) 2)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (sin.f64 y) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (sin.f64 y) x) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (sin.f64 y) x) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (sin.f64 y) x) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 (sin.f64 y) x) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (sin.f64 y) x) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (sin.f64 y) x) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (sin.f64 y) x) 8)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (sin.f64 y) x) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 (sin.f64 y) x) 1)))))

simplify202.0ms (1.5%)

Algorithm
egg-herbie
Rules
2150×rational.json-simplify-1
1672×rational.json-simplify-52
1138×rational.json-simplify-26
1080×rational.json-simplify-48
1008×rational.json-simplify-35
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
068383
1140383
2450383
31119383
41723383
52623383
63163383
73330383
83794383
94677383
105116383
115379383
126349383
137262383
Stop Event
node limit
Counts
31 → 40
Calls
Call 1
Inputs
x
(+.f64 y x)
(+.f64 (*.f64 -1/6 (pow.f64 y 3)) (+.f64 y x))
(+.f64 (*.f64 -1/6 (pow.f64 y 3)) (+.f64 y (+.f64 (*.f64 1/120 (pow.f64 y 5)) x)))
(sin.f64 y)
x
x
(-.f64 (+.f64 (sin.f64 y) x) 0)
(*.f64 (+.f64 (sin.f64 y) x) 1)
(*.f64 1 (+.f64 (sin.f64 y) x))
(*.f64 2 (*.f64 (+.f64 (sin.f64 y) x) 1/2))
(*.f64 (*.f64 (+.f64 (sin.f64 y) x) 2) 1/2)
(*.f64 4 (*.f64 (+.f64 (sin.f64 y) x) 1/4))
(*.f64 (*.f64 (+.f64 (sin.f64 y) x) 4) 1/4)
(*.f64 1/2 (*.f64 (+.f64 (sin.f64 y) x) 2))
(*.f64 1/2 (+.f64 (+.f64 x x) (*.f64 (sin.f64 y) 2)))
(*.f64 (*.f64 (+.f64 (sin.f64 y) x) 8) 1/8)
(*.f64 (*.f64 (+.f64 (sin.f64 y) x) 1/2) 2)
(*.f64 1/4 (*.f64 (+.f64 (sin.f64 y) x) 4))
(*.f64 (*.f64 (+.f64 (sin.f64 y) x) 1/4) 4)
(*.f64 1/8 (*.f64 (+.f64 (sin.f64 y) x) 8))
(*.f64 (+.f64 (+.f64 x x) (*.f64 (sin.f64 y) 2)) 1/2)
(/.f64 (+.f64 (sin.f64 y) x) 1)
(/.f64 (*.f64 (+.f64 (sin.f64 y) x) 2) 2)
(/.f64 (*.f64 (+.f64 (sin.f64 y) x) 4) 4)
(/.f64 (*.f64 (+.f64 (sin.f64 y) x) 8) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 (sin.f64 y) x) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (sin.f64 y) x) 8))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (sin.f64 y) x) 8)))) 64)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (sin.f64 y) x) 8)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (sin.f64 y) x) 8))))) 128)
(pow.f64 (+.f64 (sin.f64 y) x) 1)
Outputs
x
(+.f64 y x)
(+.f64 x y)
(+.f64 (*.f64 -1/6 (pow.f64 y 3)) (+.f64 y x))
(+.f64 (+.f64 x y) (*.f64 -1/6 (pow.f64 y 3)))
(+.f64 x (+.f64 (*.f64 -1/6 (pow.f64 y 3)) y))
(+.f64 x (+.f64 y (*.f64 -1/6 (pow.f64 y 3))))
(+.f64 (*.f64 -1/6 (pow.f64 y 3)) (+.f64 y (+.f64 (*.f64 1/120 (pow.f64 y 5)) x)))
(+.f64 (*.f64 -1/6 (pow.f64 y 3)) (+.f64 y (+.f64 x (*.f64 1/120 (pow.f64 y 5)))))
(+.f64 (*.f64 -1/6 (pow.f64 y 3)) (+.f64 (+.f64 x y) (*.f64 1/120 (pow.f64 y 5))))
(+.f64 x (+.f64 (+.f64 y (*.f64 -1/6 (pow.f64 y 3))) (*.f64 1/120 (pow.f64 y 5))))
(+.f64 x (+.f64 (*.f64 1/120 (pow.f64 y 5)) (+.f64 y (*.f64 -1/6 (pow.f64 y 3)))))
(+.f64 x (+.f64 y (+.f64 (*.f64 -1/6 (pow.f64 y 3)) (*.f64 1/120 (pow.f64 y 5)))))
(sin.f64 y)
x
x
(-.f64 (+.f64 (sin.f64 y) x) 0)
(+.f64 x (sin.f64 y))
(*.f64 (+.f64 (sin.f64 y) x) 1)
(+.f64 x (sin.f64 y))
(*.f64 1 (+.f64 (sin.f64 y) x))
(+.f64 x (sin.f64 y))
(*.f64 2 (*.f64 (+.f64 (sin.f64 y) x) 1/2))
(+.f64 x (sin.f64 y))
(*.f64 (*.f64 (+.f64 (sin.f64 y) x) 2) 1/2)
(+.f64 x (sin.f64 y))
(*.f64 4 (*.f64 (+.f64 (sin.f64 y) x) 1/4))
(+.f64 x (sin.f64 y))
(*.f64 (*.f64 (+.f64 (sin.f64 y) x) 4) 1/4)
(+.f64 x (sin.f64 y))
(*.f64 1/2 (*.f64 (+.f64 (sin.f64 y) x) 2))
(+.f64 x (sin.f64 y))
(*.f64 1/2 (+.f64 (+.f64 x x) (*.f64 (sin.f64 y) 2)))
(*.f64 1/2 (+.f64 x (+.f64 x (*.f64 (sin.f64 y) 2))))
(*.f64 (*.f64 (+.f64 (sin.f64 y) x) 8) 1/8)
(+.f64 x (sin.f64 y))
(*.f64 (*.f64 (+.f64 (sin.f64 y) x) 1/2) 2)
(+.f64 x (sin.f64 y))
(*.f64 1/4 (*.f64 (+.f64 (sin.f64 y) x) 4))
(+.f64 x (sin.f64 y))
(*.f64 (*.f64 (+.f64 (sin.f64 y) x) 1/4) 4)
(+.f64 x (sin.f64 y))
(*.f64 1/8 (*.f64 (+.f64 (sin.f64 y) x) 8))
(+.f64 x (sin.f64 y))
(*.f64 (+.f64 (+.f64 x x) (*.f64 (sin.f64 y) 2)) 1/2)
(*.f64 1/2 (+.f64 (+.f64 x x) (*.f64 (sin.f64 y) 2)))
(*.f64 1/2 (+.f64 x (+.f64 x (*.f64 (sin.f64 y) 2))))
(/.f64 (+.f64 (sin.f64 y) x) 1)
(+.f64 x (sin.f64 y))
(/.f64 (*.f64 (+.f64 (sin.f64 y) x) 2) 2)
(+.f64 x (sin.f64 y))
(/.f64 (*.f64 (+.f64 (sin.f64 y) x) 4) 4)
(+.f64 x (sin.f64 y))
(/.f64 (*.f64 (+.f64 (sin.f64 y) x) 8) 8)
(+.f64 x (sin.f64 y))
(/.f64 (*.f64 2 (*.f64 (+.f64 (sin.f64 y) x) 8)) 16)
(+.f64 x (sin.f64 y))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (sin.f64 y) x) 8))) 32)
(+.f64 x (sin.f64 y))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (sin.f64 y) x) 8)))) 64)
(+.f64 x (sin.f64 y))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (sin.f64 y) x) 8)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (sin.f64 y) x) 8))))) 128)
(+.f64 x (sin.f64 y))
(pow.f64 (+.f64 (sin.f64 y) x) 1)
(+.f64 x (sin.f64 y))

localize9.0ms (0.1%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(sin.f64 y)
0.0b
(+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y))
0.1b
(*.f64 z (cos.f64 y))
Compiler

Compiled 20 to 7 computations (65% saved)

series1.0ms (0%)

Counts
1 → 24
Calls

6 calls:

TimeVariablePointExpression
0.0ms
z
@0
(+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y))
0.0ms
y
@0
(+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y))
0.0ms
z
@inf
(+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y))
0.0ms
y
@inf
(+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y))
0.0ms
z
@-inf
(+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y))

rewrite94.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
1314×exponential.json-3
1314×rational.json-1
1314×rational.json-2
1314×rational.json-4
1314×rational.json-3
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0921
16421
215521
334021
470921
5170921
6397621
7658121
Stop Event
node limit
Counts
1 → 23
Calls
Call 1
Inputs
(+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 z (*.f64 (cos.f64 y) 1/2)) (*.f64 (sin.f64 y) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 (sin.f64 y) 2) (*.f64 z (*.f64 (cos.f64 y) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 z (*.f64 (cos.f64 y) 1/2)) (*.f64 (sin.f64 y) 1/2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 (sin.f64 y) 2) (*.f64 z (*.f64 (cos.f64 y) 2))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)) 1)))))

simplify253.0ms (1.9%)

Algorithm
egg-herbie
Rules
2144×rational.json-simplify-1
1600×rational.json-simplify-2
1164×rational.json-simplify-35
1112×rational.json-simplify-51
1012×rational.json-simplify-52
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
071955
1154955
2369955
3959955
41546955
53183955
64193955
74441955
85084955
95416955
105641955
115826955
126495955
137093955
Stop Event
node limit
Counts
47 → 41
Calls
Call 1
Inputs
(sin.f64 y)
(+.f64 (*.f64 (cos.f64 y) z) (sin.f64 y))
(+.f64 (*.f64 (cos.f64 y) z) (sin.f64 y))
(+.f64 (*.f64 (cos.f64 y) z) (sin.f64 y))
(*.f64 (cos.f64 y) z)
(+.f64 (*.f64 (cos.f64 y) z) (sin.f64 y))
(+.f64 (*.f64 (cos.f64 y) z) (sin.f64 y))
(+.f64 (*.f64 (cos.f64 y) z) (sin.f64 y))
(*.f64 (cos.f64 y) z)
(+.f64 (*.f64 (cos.f64 y) z) (sin.f64 y))
(+.f64 (*.f64 (cos.f64 y) z) (sin.f64 y))
(+.f64 (*.f64 (cos.f64 y) z) (sin.f64 y))
z
(+.f64 y z)
(+.f64 (*.f64 -1/2 (*.f64 (pow.f64 y 2) z)) (+.f64 y z))
(+.f64 (*.f64 -1/6 (pow.f64 y 3)) (+.f64 (*.f64 -1/2 (*.f64 (pow.f64 y 2) z)) (+.f64 y z)))
(+.f64 (*.f64 (cos.f64 y) z) (sin.f64 y))
(+.f64 (*.f64 (cos.f64 y) z) (sin.f64 y))
(+.f64 (*.f64 (cos.f64 y) z) (sin.f64 y))
(+.f64 (*.f64 (cos.f64 y) z) (sin.f64 y))
(+.f64 (*.f64 (cos.f64 y) z) (sin.f64 y))
(+.f64 (*.f64 (cos.f64 y) z) (sin.f64 y))
(+.f64 (*.f64 (cos.f64 y) z) (sin.f64 y))
(+.f64 (*.f64 (cos.f64 y) z) (sin.f64 y))
(-.f64 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)) 0)
(*.f64 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)) 1)
(*.f64 1 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)))
(*.f64 2 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)) 1/2))
(*.f64 2 (+.f64 (*.f64 z (*.f64 (cos.f64 y) 1/2)) (*.f64 (sin.f64 y) 1/2)))
(*.f64 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)) 2) 1/2)
(*.f64 4 (/.f64 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)) 4))
(*.f64 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)) 4) 1/4)
(*.f64 1/2 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)) 2))
(*.f64 1/2 (+.f64 (*.f64 (sin.f64 y) 2) (*.f64 z (*.f64 (cos.f64 y) 2))))
(*.f64 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)) 1/2) 2)
(*.f64 1/4 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)) 4))
(*.f64 (/.f64 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)) 4) 4)
(*.f64 (+.f64 (*.f64 z (*.f64 (cos.f64 y) 1/2)) (*.f64 (sin.f64 y) 1/2)) 2)
(*.f64 (+.f64 (*.f64 (sin.f64 y) 2) (*.f64 z (*.f64 (cos.f64 y) 2))) 1/2)
(/.f64 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)) 1)
(/.f64 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)) 2) 2)
(/.f64 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)) 4) 4)
(/.f64 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)) 8))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)) 8)))) 64)
(pow.f64 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)) 1)
Outputs
(sin.f64 y)
(+.f64 (*.f64 (cos.f64 y) z) (sin.f64 y))
(+.f64 (sin.f64 y) (*.f64 (cos.f64 y) z))
(+.f64 (*.f64 (cos.f64 y) z) (sin.f64 y))
(+.f64 (sin.f64 y) (*.f64 (cos.f64 y) z))
(+.f64 (*.f64 (cos.f64 y) z) (sin.f64 y))
(+.f64 (sin.f64 y) (*.f64 (cos.f64 y) z))
(*.f64 (cos.f64 y) z)
(+.f64 (*.f64 (cos.f64 y) z) (sin.f64 y))
(+.f64 (sin.f64 y) (*.f64 (cos.f64 y) z))
(+.f64 (*.f64 (cos.f64 y) z) (sin.f64 y))
(+.f64 (sin.f64 y) (*.f64 (cos.f64 y) z))
(+.f64 (*.f64 (cos.f64 y) z) (sin.f64 y))
(+.f64 (sin.f64 y) (*.f64 (cos.f64 y) z))
(*.f64 (cos.f64 y) z)
(+.f64 (*.f64 (cos.f64 y) z) (sin.f64 y))
(+.f64 (sin.f64 y) (*.f64 (cos.f64 y) z))
(+.f64 (*.f64 (cos.f64 y) z) (sin.f64 y))
(+.f64 (sin.f64 y) (*.f64 (cos.f64 y) z))
(+.f64 (*.f64 (cos.f64 y) z) (sin.f64 y))
(+.f64 (sin.f64 y) (*.f64 (cos.f64 y) z))
z
(+.f64 y z)
(+.f64 (*.f64 -1/2 (*.f64 (pow.f64 y 2) z)) (+.f64 y z))
(+.f64 y (+.f64 z (*.f64 -1/2 (*.f64 z (pow.f64 y 2)))))
(+.f64 z (+.f64 (*.f64 z (*.f64 -1/2 (pow.f64 y 2))) y))
(+.f64 (+.f64 y z) (*.f64 z (*.f64 -1/2 (pow.f64 y 2))))
(+.f64 y (+.f64 z (*.f64 (pow.f64 y 2) (*.f64 z -1/2))))
(+.f64 (*.f64 -1/6 (pow.f64 y 3)) (+.f64 (*.f64 -1/2 (*.f64 (pow.f64 y 2) z)) (+.f64 y z)))
(+.f64 (*.f64 -1/2 (*.f64 z (pow.f64 y 2))) (+.f64 (+.f64 y z) (*.f64 -1/6 (pow.f64 y 3))))
(+.f64 (+.f64 y z) (+.f64 (*.f64 -1/6 (pow.f64 y 3)) (*.f64 z (*.f64 -1/2 (pow.f64 y 2)))))
(+.f64 z (+.f64 (+.f64 y (*.f64 z (*.f64 -1/2 (pow.f64 y 2)))) (*.f64 -1/6 (pow.f64 y 3))))
(+.f64 y (+.f64 z (+.f64 (*.f64 z (*.f64 -1/2 (pow.f64 y 2))) (*.f64 -1/6 (pow.f64 y 3)))))
(+.f64 z (+.f64 (*.f64 (pow.f64 y 2) (*.f64 z -1/2)) (+.f64 y (*.f64 -1/6 (pow.f64 y 3)))))
(+.f64 z (+.f64 y (+.f64 (*.f64 -1/2 (*.f64 z (pow.f64 y 2))) (*.f64 -1/6 (pow.f64 y 3)))))
(+.f64 (*.f64 (cos.f64 y) z) (sin.f64 y))
(+.f64 (sin.f64 y) (*.f64 (cos.f64 y) z))
(+.f64 (*.f64 (cos.f64 y) z) (sin.f64 y))
(+.f64 (sin.f64 y) (*.f64 (cos.f64 y) z))
(+.f64 (*.f64 (cos.f64 y) z) (sin.f64 y))
(+.f64 (sin.f64 y) (*.f64 (cos.f64 y) z))
(+.f64 (*.f64 (cos.f64 y) z) (sin.f64 y))
(+.f64 (sin.f64 y) (*.f64 (cos.f64 y) z))
(+.f64 (*.f64 (cos.f64 y) z) (sin.f64 y))
(+.f64 (sin.f64 y) (*.f64 (cos.f64 y) z))
(+.f64 (*.f64 (cos.f64 y) z) (sin.f64 y))
(+.f64 (sin.f64 y) (*.f64 (cos.f64 y) z))
(+.f64 (*.f64 (cos.f64 y) z) (sin.f64 y))
(+.f64 (sin.f64 y) (*.f64 (cos.f64 y) z))
(+.f64 (*.f64 (cos.f64 y) z) (sin.f64 y))
(+.f64 (sin.f64 y) (*.f64 (cos.f64 y) z))
(-.f64 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)) 0)
(+.f64 (sin.f64 y) (*.f64 (cos.f64 y) z))
(*.f64 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)) 1)
(+.f64 (sin.f64 y) (*.f64 (cos.f64 y) z))
(*.f64 1 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)))
(+.f64 (sin.f64 y) (*.f64 (cos.f64 y) z))
(*.f64 2 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)) 1/2))
(+.f64 (sin.f64 y) (*.f64 (cos.f64 y) z))
(*.f64 2 (+.f64 (*.f64 z (*.f64 (cos.f64 y) 1/2)) (*.f64 (sin.f64 y) 1/2)))
(+.f64 (sin.f64 y) (*.f64 (cos.f64 y) z))
(*.f64 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)) 2) 1/2)
(+.f64 (sin.f64 y) (*.f64 (cos.f64 y) z))
(*.f64 4 (/.f64 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)) 4))
(+.f64 (sin.f64 y) (*.f64 (cos.f64 y) z))
(*.f64 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)) 4) 1/4)
(+.f64 (sin.f64 y) (*.f64 (cos.f64 y) z))
(*.f64 1/2 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)) 2))
(+.f64 (sin.f64 y) (*.f64 (cos.f64 y) z))
(*.f64 1/2 (+.f64 (*.f64 (sin.f64 y) 2) (*.f64 z (*.f64 (cos.f64 y) 2))))
(+.f64 (sin.f64 y) (*.f64 (cos.f64 y) z))
(*.f64 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)) 1/2) 2)
(+.f64 (sin.f64 y) (*.f64 (cos.f64 y) z))
(*.f64 1/4 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)) 4))
(+.f64 (sin.f64 y) (*.f64 (cos.f64 y) z))
(*.f64 (/.f64 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)) 4) 4)
(+.f64 (sin.f64 y) (*.f64 (cos.f64 y) z))
(*.f64 (+.f64 (*.f64 z (*.f64 (cos.f64 y) 1/2)) (*.f64 (sin.f64 y) 1/2)) 2)
(+.f64 (sin.f64 y) (*.f64 (cos.f64 y) z))
(*.f64 (+.f64 (*.f64 (sin.f64 y) 2) (*.f64 z (*.f64 (cos.f64 y) 2))) 1/2)
(+.f64 (sin.f64 y) (*.f64 (cos.f64 y) z))
(/.f64 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)) 1)
(+.f64 (sin.f64 y) (*.f64 (cos.f64 y) z))
(/.f64 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)) 2) 2)
(+.f64 (sin.f64 y) (*.f64 (cos.f64 y) z))
(/.f64 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)) 4) 4)
(+.f64 (sin.f64 y) (*.f64 (cos.f64 y) z))
(/.f64 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)) 8) 8)
(+.f64 (sin.f64 y) (*.f64 (cos.f64 y) z))
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)) 8)) 16)
(+.f64 (sin.f64 y) (*.f64 (cos.f64 y) z))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)) 8))) 32)
(+.f64 (sin.f64 y) (*.f64 (cos.f64 y) z))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)) 8)))) 64)
(+.f64 (sin.f64 y) (*.f64 (cos.f64 y) z))
(pow.f64 (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)) 1)
(+.f64 (sin.f64 y) (*.f64 (cos.f64 y) z))

eval68.0ms (0.5%)

Compiler

Compiled 4003 to 2187 computations (45.4% saved)

prune57.0ms (0.4%)

Pruning

12 alts after pruning (8 fresh and 4 done)

PrunedKeptTotal
New3097316
Fresh011
Picked011
Done235
Total31112323
Error
0.1b
Counts
323 → 12
Alt Table
Click to see full alt table
StatusErrorProgram
29.9b
(+.f64 (-.f64 (-.f64 1 (neg.f64 (sin.f64 y))) 1) x)
26.3b
(+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y))
27.4b
(+.f64 (sin.f64 y) x)
22.9b
(+.f64 z x)
45.7b
(+.f64 y z)
37.3b
(+.f64 y x)
22.7b
(+.f64 x (+.f64 y z))
10.7b
(+.f64 x (*.f64 (cos.f64 y) z))
36.6b
(*.f64 (cos.f64 y) z)
52.4b
(sin.f64 y)
48.5b
z
37.4b
x
Compiler

Compiled 129 to 93 computations (27.9% saved)

localize7.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(+.f64 x (*.f64 (cos.f64 y) z))
0.1b
(*.f64 (cos.f64 y) z)
Compiler

Compiled 18 to 6 computations (66.7% saved)

series2.0ms (0%)

Counts
2 → 48
Calls

15 calls:

TimeVariablePointExpression
0.0ms
z
@0
(*.f64 (cos.f64 y) z)
0.0ms
y
@0
(*.f64 (cos.f64 y) z)
0.0ms
x
@0
(+.f64 x (*.f64 (cos.f64 y) z))
0.0ms
y
@0
(+.f64 x (*.f64 (cos.f64 y) z))
0.0ms
x
@inf
(+.f64 x (*.f64 (cos.f64 y) z))

rewrite435.0ms (3.2%)

Algorithm
batch-egg-rewrite
Rules
1374×rational.json-simplify-35
1310×exponential.json-3
1310×rational.json-1
1310×rational.json-2
1310×rational.json-4
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0928
16028
213428
329228
458328
5135428
6297128
7503528
8637928
Stop Event
node limit
Counts
2 → 33
Calls
Call 1
Inputs
(*.f64 (cos.f64 y) z)
(+.f64 x (*.f64 (cos.f64 y) z))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (cos.f64 y) z) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (cos.f64 y) z))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (cos.f64 y) (*.f64 z 1/2)) (*.f64 (cos.f64 y) (*.f64 z 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (cos.f64 y) z) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (cos.f64 y) z) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (cos.f64 y) (+.f64 z z)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (cos.f64 y) (*.f64 z 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (cos.f64 y) (*.f64 z 8)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 z z) (*.f64 (cos.f64 y) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 z z) (*.f64 (cos.f64 y) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 z z) (*.f64 (cos.f64 y) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 z z) (*.f64 (cos.f64 y) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (cos.f64 y) z) 1)))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 (cos.f64 y) z) x) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 (cos.f64 y) z) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (*.f64 (cos.f64 y) z) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 (*.f64 (cos.f64 y) z) x) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 (cos.f64 y) z) x) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (+.f64 (*.f64 (cos.f64 y) z) x) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 (cos.f64 y) z) x) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (+.f64 (*.f64 (cos.f64 y) z) x) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 (cos.f64 y) z) x) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 (*.f64 (cos.f64 y) z) x) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (*.f64 (cos.f64 y) z) x) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 (cos.f64 y) z) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 (cos.f64 y) z) x) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 (cos.f64 y) z) x) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 (cos.f64 y) z) x) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 (cos.f64 y) z) x) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (cos.f64 y) z) x) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (cos.f64 y) z) x) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (cos.f64 y) z) x) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 (*.f64 (cos.f64 y) z) x) 1)))))

simplify850.0ms (6.3%)

Algorithm
egg-herbie
Rules
2126×rational.json-simplify-35
2060×rational.json-simplify-2
1136×rational.json-simplify-1
818×rational.json-simplify-51
786×exponential.json-simplify-26
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01021369
12531369
26181369
316501345
431361345
537681345
641101345
743971345
846111345
947931345
1054261345
1159061345
1268721345
1371671345
1473021345
1573831345
1676061345
1778311345
Stop Event
node limit
Counts
81 → 76
Calls
Call 1
Inputs
z
(+.f64 (*.f64 -1/2 (*.f64 (pow.f64 y 2) z)) z)
(+.f64 (*.f64 -1/2 (*.f64 (pow.f64 y 2) z)) (+.f64 z (*.f64 1/24 (*.f64 (pow.f64 y 4) z))))
(+.f64 (*.f64 -1/2 (*.f64 (pow.f64 y 2) z)) (+.f64 (*.f64 -1/720 (*.f64 (pow.f64 y 6) z)) (+.f64 z (*.f64 1/24 (*.f64 (pow.f64 y 4) z)))))
(*.f64 z (cos.f64 y))
(*.f64 z (cos.f64 y))
(*.f64 z (cos.f64 y))
(*.f64 z (cos.f64 y))
(*.f64 z (cos.f64 y))
(*.f64 z (cos.f64 y))
(*.f64 z (cos.f64 y))
(*.f64 z (cos.f64 y))
(*.f64 z (cos.f64 y))
(+.f64 (*.f64 z (cos.f64 y)) x)
(+.f64 (*.f64 z (cos.f64 y)) x)
(+.f64 (*.f64 z (cos.f64 y)) x)
x
(+.f64 (*.f64 z (cos.f64 y)) x)
(+.f64 (*.f64 z (cos.f64 y)) x)
(+.f64 (*.f64 z (cos.f64 y)) x)
x
(+.f64 (*.f64 z (cos.f64 y)) x)
(+.f64 (*.f64 z (cos.f64 y)) x)
(+.f64 (*.f64 z (cos.f64 y)) x)
(+.f64 z x)
(+.f64 (*.f64 -1/2 (*.f64 (pow.f64 y 2) z)) (+.f64 z x))
(+.f64 (*.f64 -1/2 (*.f64 (pow.f64 y 2) z)) (+.f64 z (+.f64 (*.f64 1/24 (*.f64 (pow.f64 y 4) z)) x)))
(+.f64 (*.f64 -1/2 (*.f64 (pow.f64 y 2) z)) (+.f64 (*.f64 -1/720 (*.f64 (pow.f64 y 6) z)) (+.f64 z (+.f64 (*.f64 1/24 (*.f64 (pow.f64 y 4) z)) x))))
(+.f64 (*.f64 (cos.f64 y) z) x)
(+.f64 (*.f64 (cos.f64 y) z) x)
(+.f64 (*.f64 (cos.f64 y) z) x)
(+.f64 (*.f64 (cos.f64 y) z) x)
(+.f64 (*.f64 (cos.f64 y) z) x)
(+.f64 (*.f64 (cos.f64 y) z) x)
(+.f64 (*.f64 (cos.f64 y) z) x)
(+.f64 (*.f64 (cos.f64 y) z) x)
x
(+.f64 (*.f64 (cos.f64 y) z) x)
(+.f64 (*.f64 (cos.f64 y) z) x)
(+.f64 (*.f64 (cos.f64 y) z) x)
(*.f64 (cos.f64 y) z)
(+.f64 (*.f64 (cos.f64 y) z) x)
(+.f64 (*.f64 (cos.f64 y) z) x)
(+.f64 (*.f64 (cos.f64 y) z) x)
(*.f64 (cos.f64 y) z)
(+.f64 (*.f64 (cos.f64 y) z) x)
(+.f64 (*.f64 (cos.f64 y) z) x)
(+.f64 (*.f64 (cos.f64 y) z) x)
(+.f64 (*.f64 (cos.f64 y) z) 0)
(+.f64 0 (*.f64 (cos.f64 y) z))
(+.f64 (*.f64 (cos.f64 y) (*.f64 z 1/2)) (*.f64 (cos.f64 y) (*.f64 z 1/2)))
(-.f64 (*.f64 (cos.f64 y) z) 0)
(/.f64 (*.f64 (cos.f64 y) z) 1)
(/.f64 (*.f64 (cos.f64 y) (+.f64 z z)) 2)
(/.f64 (*.f64 (cos.f64 y) (*.f64 z 4)) 4)
(/.f64 (*.f64 (cos.f64 y) (*.f64 z 8)) 8)
(/.f64 (*.f64 (+.f64 z z) (*.f64 (cos.f64 y) 8)) 16)
(/.f64 (*.f64 2 (*.f64 (+.f64 z z) (*.f64 (cos.f64 y) 8))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 z z) (*.f64 (cos.f64 y) 8)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 z z) (*.f64 (cos.f64 y) 8))))) 128)
(pow.f64 (*.f64 (cos.f64 y) z) 1)
(-.f64 (+.f64 (*.f64 (cos.f64 y) z) x) 0)
(*.f64 (+.f64 (*.f64 (cos.f64 y) z) x) 1)
(*.f64 1 (+.f64 (*.f64 (cos.f64 y) z) x))
(*.f64 2 (*.f64 (+.f64 (*.f64 (cos.f64 y) z) x) 1/2))
(*.f64 (*.f64 (+.f64 (*.f64 (cos.f64 y) z) x) 2) 1/2)
(*.f64 4 (/.f64 (+.f64 (*.f64 (cos.f64 y) z) x) 4))
(*.f64 (*.f64 (+.f64 (*.f64 (cos.f64 y) z) x) 4) 1/4)
(*.f64 1/2 (*.f64 (+.f64 (*.f64 (cos.f64 y) z) x) 2))
(*.f64 (*.f64 (+.f64 (*.f64 (cos.f64 y) z) x) 1/2) 2)
(*.f64 1/4 (*.f64 (+.f64 (*.f64 (cos.f64 y) z) x) 4))
(*.f64 (/.f64 (+.f64 (*.f64 (cos.f64 y) z) x) 4) 4)
(/.f64 (+.f64 (*.f64 (cos.f64 y) z) x) 1)
(/.f64 (*.f64 (+.f64 (*.f64 (cos.f64 y) z) x) 2) 2)
(/.f64 (*.f64 (+.f64 (*.f64 (cos.f64 y) z) x) 4) 4)
(/.f64 (*.f64 (+.f64 (*.f64 (cos.f64 y) z) x) 8) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 (cos.f64 y) z) x) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (cos.f64 y) z) x) 8))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (cos.f64 y) z) x) 8)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (cos.f64 y) z) x) 8))))) 128)
(pow.f64 (+.f64 (*.f64 (cos.f64 y) z) x) 1)
Outputs
z
(+.f64 (*.f64 -1/2 (*.f64 (pow.f64 y 2) z)) z)
(+.f64 z (*.f64 -1/2 (*.f64 z (pow.f64 y 2))))
(+.f64 z (*.f64 z (*.f64 (pow.f64 y 2) -1/2)))
(+.f64 z (*.f64 z (*.f64 -1/2 (pow.f64 y 2))))
(+.f64 z (*.f64 (pow.f64 y 2) (*.f64 z -1/2)))
(+.f64 (*.f64 -1/2 (*.f64 (pow.f64 y 2) z)) (+.f64 z (*.f64 1/24 (*.f64 (pow.f64 y 4) z))))
(+.f64 (*.f64 -1/2 (*.f64 z (pow.f64 y 2))) (+.f64 z (*.f64 (pow.f64 y 4) (*.f64 z 1/24))))
(+.f64 (*.f64 z (*.f64 (pow.f64 y 2) -1/2)) (+.f64 z (*.f64 (pow.f64 y 4) (*.f64 z 1/24))))
(+.f64 z (+.f64 (*.f64 z (*.f64 -1/2 (pow.f64 y 2))) (*.f64 z (*.f64 1/24 (pow.f64 y 4)))))
(+.f64 z (*.f64 z (+.f64 (*.f64 1/24 (pow.f64 y 4)) (*.f64 -1/2 (pow.f64 y 2)))))
(+.f64 (*.f64 -1/2 (*.f64 (pow.f64 y 2) z)) (+.f64 (*.f64 -1/720 (*.f64 (pow.f64 y 6) z)) (+.f64 z (*.f64 1/24 (*.f64 (pow.f64 y 4) z)))))
(+.f64 (*.f64 -1/2 (*.f64 z (pow.f64 y 2))) (+.f64 z (+.f64 (*.f64 (pow.f64 y 4) (*.f64 z 1/24)) (*.f64 (pow.f64 y 6) (*.f64 z -1/720)))))
(+.f64 (*.f64 z (*.f64 (pow.f64 y 2) -1/2)) (+.f64 z (+.f64 (*.f64 (pow.f64 y 4) (*.f64 z 1/24)) (*.f64 (pow.f64 y 6) (*.f64 z -1/720)))))
(+.f64 (*.f64 z (*.f64 -1/2 (pow.f64 y 2))) (+.f64 (+.f64 z (*.f64 z (*.f64 1/24 (pow.f64 y 4)))) (*.f64 z (*.f64 -1/720 (pow.f64 y 6)))))
(+.f64 (+.f64 z (*.f64 (pow.f64 y 2) (*.f64 z -1/2))) (*.f64 z (+.f64 (*.f64 -1/720 (pow.f64 y 6)) (*.f64 1/24 (pow.f64 y 4)))))
(+.f64 (+.f64 z (*.f64 (pow.f64 y 2) (*.f64 z -1/2))) (*.f64 z (+.f64 (*.f64 1/24 (pow.f64 y 4)) (*.f64 -1/720 (pow.f64 y 6)))))
(+.f64 z (+.f64 (*.f64 z (*.f64 -1/2 (pow.f64 y 2))) (*.f64 z (+.f64 (*.f64 1/24 (pow.f64 y 4)) (*.f64 -1/720 (pow.f64 y 6))))))
(*.f64 z (cos.f64 y))
(*.f64 z (cos.f64 y))
(*.f64 z (cos.f64 y))
(*.f64 z (cos.f64 y))
(*.f64 z (cos.f64 y))
(*.f64 z (cos.f64 y))
(*.f64 z (cos.f64 y))
(*.f64 z (cos.f64 y))
(*.f64 z (cos.f64 y))
(+.f64 (*.f64 z (cos.f64 y)) x)
(+.f64 x (*.f64 z (cos.f64 y)))
(+.f64 (*.f64 z (cos.f64 y)) x)
(+.f64 x (*.f64 z (cos.f64 y)))
(+.f64 (*.f64 z (cos.f64 y)) x)
(+.f64 x (*.f64 z (cos.f64 y)))
x
(+.f64 (*.f64 z (cos.f64 y)) x)
(+.f64 x (*.f64 z (cos.f64 y)))
(+.f64 (*.f64 z (cos.f64 y)) x)
(+.f64 x (*.f64 z (cos.f64 y)))
(+.f64 (*.f64 z (cos.f64 y)) x)
(+.f64 x (*.f64 z (cos.f64 y)))
x
(+.f64 (*.f64 z (cos.f64 y)) x)
(+.f64 x (*.f64 z (cos.f64 y)))
(+.f64 (*.f64 z (cos.f64 y)) x)
(+.f64 x (*.f64 z (cos.f64 y)))
(+.f64 (*.f64 z (cos.f64 y)) x)
(+.f64 x (*.f64 z (cos.f64 y)))
(+.f64 z x)
(+.f64 (*.f64 -1/2 (*.f64 (pow.f64 y 2) z)) (+.f64 z x))
(+.f64 z (+.f64 x (*.f64 -1/2 (*.f64 z (pow.f64 y 2)))))
(+.f64 z (+.f64 (*.f64 z (*.f64 (pow.f64 y 2) -1/2)) x))
(+.f64 z (+.f64 (*.f64 z (*.f64 -1/2 (pow.f64 y 2))) x))
(+.f64 z (+.f64 (*.f64 (pow.f64 y 2) (*.f64 z -1/2)) x))
(+.f64 (*.f64 -1/2 (*.f64 (pow.f64 y 2) z)) (+.f64 z (+.f64 (*.f64 1/24 (*.f64 (pow.f64 y 4) z)) x)))
(+.f64 (*.f64 -1/2 (*.f64 z (pow.f64 y 2))) (+.f64 (*.f64 (pow.f64 y 4) (*.f64 z 1/24)) (+.f64 z x)))
(+.f64 (*.f64 z (*.f64 (pow.f64 y 2) -1/2)) (+.f64 (*.f64 (pow.f64 y 4) (*.f64 z 1/24)) (+.f64 z x)))
(+.f64 (*.f64 z (*.f64 -1/2 (pow.f64 y 2))) (+.f64 (*.f64 z (*.f64 1/24 (pow.f64 y 4))) (+.f64 z x)))
(+.f64 z (+.f64 x (*.f64 z (+.f64 (*.f64 1/24 (pow.f64 y 4)) (*.f64 -1/2 (pow.f64 y 2))))))
(+.f64 (+.f64 z x) (*.f64 z (+.f64 (*.f64 1/24 (pow.f64 y 4)) (*.f64 -1/2 (pow.f64 y 2)))))
(+.f64 (*.f64 -1/2 (*.f64 (pow.f64 y 2) z)) (+.f64 (*.f64 -1/720 (*.f64 (pow.f64 y 6) z)) (+.f64 z (+.f64 (*.f64 1/24 (*.f64 (pow.f64 y 4) z)) x))))
(+.f64 (*.f64 -1/2 (*.f64 z (pow.f64 y 2))) (+.f64 (*.f64 (pow.f64 y 6) (*.f64 z -1/720)) (+.f64 (*.f64 (pow.f64 y 4) (*.f64 z 1/24)) (+.f64 z x))))
(+.f64 (*.f64 z (*.f64 (pow.f64 y 2) -1/2)) (+.f64 (*.f64 (pow.f64 y 4) (*.f64 z 1/24)) (+.f64 (+.f64 z x) (*.f64 (pow.f64 y 6) (*.f64 z -1/720)))))
(+.f64 (*.f64 z (*.f64 -1/2 (pow.f64 y 2))) (+.f64 (*.f64 z (*.f64 1/24 (pow.f64 y 4))) (+.f64 (*.f64 z (*.f64 -1/720 (pow.f64 y 6))) (+.f64 z x))))
(+.f64 (+.f64 z (+.f64 (*.f64 (pow.f64 y 2) (*.f64 z -1/2)) x)) (*.f64 z (+.f64 (*.f64 -1/720 (pow.f64 y 6)) (*.f64 1/24 (pow.f64 y 4)))))
(+.f64 (+.f64 z (+.f64 (*.f64 (pow.f64 y 2) (*.f64 z -1/2)) x)) (*.f64 z (+.f64 (*.f64 1/24 (pow.f64 y 4)) (*.f64 -1/720 (pow.f64 y 6)))))
(+.f64 (*.f64 z (*.f64 -1/2 (pow.f64 y 2))) (+.f64 (+.f64 z x) (*.f64 z (+.f64 (*.f64 1/24 (pow.f64 y 4)) (*.f64 -1/720 (pow.f64 y 6))))))
(+.f64 (*.f64 (cos.f64 y) z) x)
(+.f64 x (*.f64 z (cos.f64 y)))
(+.f64 (*.f64 (cos.f64 y) z) x)
(+.f64 x (*.f64 z (cos.f64 y)))
(+.f64 (*.f64 (cos.f64 y) z) x)
(+.f64 x (*.f64 z (cos.f64 y)))
(+.f64 (*.f64 (cos.f64 y) z) x)
(+.f64 x (*.f64 z (cos.f64 y)))
(+.f64 (*.f64 (cos.f64 y) z) x)
(+.f64 x (*.f64 z (cos.f64 y)))
(+.f64 (*.f64 (cos.f64 y) z) x)
(+.f64 x (*.f64 z (cos.f64 y)))
(+.f64 (*.f64 (cos.f64 y) z) x)
(+.f64 x (*.f64 z (cos.f64 y)))
(+.f64 (*.f64 (cos.f64 y) z) x)
(+.f64 x (*.f64 z (cos.f64 y)))
x
(+.f64 (*.f64 (cos.f64 y) z) x)
(+.f64 x (*.f64 z (cos.f64 y)))
(+.f64 (*.f64 (cos.f64 y) z) x)
(+.f64 x (*.f64 z (cos.f64 y)))
(+.f64 (*.f64 (cos.f64 y) z) x)
(+.f64 x (*.f64 z (cos.f64 y)))
(*.f64 (cos.f64 y) z)
(*.f64 z (cos.f64 y))
(+.f64 (*.f64 (cos.f64 y) z) x)
(+.f64 x (*.f64 z (cos.f64 y)))
(+.f64 (*.f64 (cos.f64 y) z) x)
(+.f64 x (*.f64 z (cos.f64 y)))
(+.f64 (*.f64 (cos.f64 y) z) x)
(+.f64 x (*.f64 z (cos.f64 y)))
(*.f64 (cos.f64 y) z)
(*.f64 z (cos.f64 y))
(+.f64 (*.f64 (cos.f64 y) z) x)
(+.f64 x (*.f64 z (cos.f64 y)))
(+.f64 (*.f64 (cos.f64 y) z) x)
(+.f64 x (*.f64 z (cos.f64 y)))
(+.f64 (*.f64 (cos.f64 y) z) x)
(+.f64 x (*.f64 z (cos.f64 y)))
(+.f64 (*.f64 (cos.f64 y) z) 0)
(*.f64 z (cos.f64 y))
(+.f64 0 (*.f64 (cos.f64 y) z))
(*.f64 z (cos.f64 y))
(+.f64 (*.f64 (cos.f64 y) (*.f64 z 1/2)) (*.f64 (cos.f64 y) (*.f64 z 1/2)))
(*.f64 z (cos.f64 y))
(-.f64 (*.f64 (cos.f64 y) z) 0)
(*.f64 z (cos.f64 y))
(/.f64 (*.f64 (cos.f64 y) z) 1)
(*.f64 z (cos.f64 y))
(/.f64 (*.f64 (cos.f64 y) (+.f64 z z)) 2)
(*.f64 z (cos.f64 y))
(/.f64 (*.f64 (cos.f64 y) (*.f64 z 4)) 4)
(*.f64 z (cos.f64 y))
(/.f64 (*.f64 (cos.f64 y) (*.f64 z 8)) 8)
(*.f64 z (cos.f64 y))
(/.f64 (*.f64 (+.f64 z z) (*.f64 (cos.f64 y) 8)) 16)
(*.f64 z (cos.f64 y))
(/.f64 (*.f64 2 (*.f64 (+.f64 z z) (*.f64 (cos.f64 y) 8))) 32)
(*.f64 z (cos.f64 y))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 z z) (*.f64 (cos.f64 y) 8)))) 64)
(*.f64 z (cos.f64 y))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 z z) (*.f64 (cos.f64 y) 8))))) 128)
(*.f64 z (cos.f64 y))
(pow.f64 (*.f64 (cos.f64 y) z) 1)
(*.f64 z (cos.f64 y))
(-.f64 (+.f64 (*.f64 (cos.f64 y) z) x) 0)
(+.f64 x (*.f64 z (cos.f64 y)))
(*.f64 (+.f64 (*.f64 (cos.f64 y) z) x) 1)
(+.f64 x (*.f64 z (cos.f64 y)))
(*.f64 1 (+.f64 (*.f64 (cos.f64 y) z) x))
(+.f64 x (*.f64 z (cos.f64 y)))
(*.f64 2 (*.f64 (+.f64 (*.f64 (cos.f64 y) z) x) 1/2))
(+.f64 x (*.f64 z (cos.f64 y)))
(*.f64 (*.f64 (+.f64 (*.f64 (cos.f64 y) z) x) 2) 1/2)
(+.f64 x (*.f64 z (cos.f64 y)))
(*.f64 4 (/.f64 (+.f64 (*.f64 (cos.f64 y) z) x) 4))
(+.f64 x (*.f64 z (cos.f64 y)))
(*.f64 (*.f64 (+.f64 (*.f64 (cos.f64 y) z) x) 4) 1/4)
(+.f64 x (*.f64 z (cos.f64 y)))
(*.f64 1/2 (*.f64 (+.f64 (*.f64 (cos.f64 y) z) x) 2))
(+.f64 x (*.f64 z (cos.f64 y)))
(*.f64 (*.f64 (+.f64 (*.f64 (cos.f64 y) z) x) 1/2) 2)
(+.f64 x (*.f64 z (cos.f64 y)))
(*.f64 1/4 (*.f64 (+.f64 (*.f64 (cos.f64 y) z) x) 4))
(+.f64 x (*.f64 z (cos.f64 y)))
(*.f64 (/.f64 (+.f64 (*.f64 (cos.f64 y) z) x) 4) 4)
(+.f64 x (*.f64 z (cos.f64 y)))
(/.f64 (+.f64 (*.f64 (cos.f64 y) z) x) 1)
(+.f64 x (*.f64 z (cos.f64 y)))
(/.f64 (*.f64 (+.f64 (*.f64 (cos.f64 y) z) x) 2) 2)
(+.f64 x (*.f64 z (cos.f64 y)))
(/.f64 (*.f64 (+.f64 (*.f64 (cos.f64 y) z) x) 4) 4)
(+.f64 x (*.f64 z (cos.f64 y)))
(/.f64 (*.f64 (+.f64 (*.f64 (cos.f64 y) z) x) 8) 8)
(+.f64 x (*.f64 z (cos.f64 y)))
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 (cos.f64 y) z) x) 8)) 16)
(+.f64 x (*.f64 z (cos.f64 y)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (cos.f64 y) z) x) 8))) 32)
(+.f64 x (*.f64 z (cos.f64 y)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (cos.f64 y) z) x) 8)))) 64)
(+.f64 x (*.f64 z (cos.f64 y)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (cos.f64 y) z) x) 8))))) 128)
(+.f64 x (*.f64 z (cos.f64 y)))
(pow.f64 (+.f64 (*.f64 (cos.f64 y) z) x) 1)
(+.f64 x (*.f64 z (cos.f64 y)))

localize3.0ms (0%)

Compiler

Compiled 8 to 4 computations (50% saved)

localize5.0ms (0%)

Compiler

Compiled 8 to 4 computations (50% saved)

localize4.0ms (0%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.0b
(sin.f64 y)
Compiler

Compiled 6 to 4 computations (33.3% saved)

localize5.0ms (0%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.1b
(*.f64 (cos.f64 y) z)
Compiler

Compiled 11 to 5 computations (54.5% saved)

eval35.0ms (0.3%)

Compiler

Compiled 1870 to 1172 computations (37.3% saved)

prune26.0ms (0.2%)

Pruning

12 alts after pruning (4 fresh and 8 done)

PrunedKeptTotal
New1502152
Fresh123
Picked011
Done178
Total15212164
Error
0.1b
Counts
164 → 12
Alt Table
Click to see full alt table
StatusErrorProgram
55.1b
(-.f64 (-.f64 1 (neg.f64 (sin.f64 y))) 1)
26.3b
(+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y))
27.4b
(+.f64 (sin.f64 y) x)
22.9b
(+.f64 z x)
45.7b
(+.f64 y z)
22.7b
(+.f64 x (+.f64 y z))
10.7b
(+.f64 x (*.f64 (cos.f64 y) z))
36.6b
(*.f64 (cos.f64 y) z)
52.4b
(sin.f64 y)
48.5b
z
59.4b
y
37.4b
x
Compiler

Compiled 80 to 58 computations (27.5% saved)

localize9.0ms (0.1%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(sin.f64 y)
0.4b
(-.f64 1 (neg.f64 (sin.f64 y)))
2.8b
(-.f64 (-.f64 1 (neg.f64 (sin.f64 y))) 1)
Compiler

Compiled 22 to 12 computations (45.5% saved)

series1.0ms (0%)

Counts
2 → 24
Calls

6 calls:

TimeVariablePointExpression
0.0ms
y
@0
(-.f64 (-.f64 1 (neg.f64 (sin.f64 y))) 1)
0.0ms
y
@0
(-.f64 1 (neg.f64 (sin.f64 y)))
0.0ms
y
@inf
(-.f64 1 (neg.f64 (sin.f64 y)))
0.0ms
y
@-inf
(-.f64 1 (neg.f64 (sin.f64 y)))
0.0ms
y
@inf
(-.f64 (-.f64 1 (neg.f64 (sin.f64 y))) 1)

rewrite87.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
1312×rational.json-simplify-35
1108×exponential.json-3
1108×rational.json-1
1108×rational.json-2
1108×rational.json-4
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0930
17616
219116
341416
492216
5231116
6529016
Stop Event
node limit
Counts
2 → 106
Calls
Call 1
Inputs
(-.f64 (-.f64 1 (neg.f64 (sin.f64 y))) 1)
(-.f64 1 (neg.f64 (sin.f64 y)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 1 (+.f64 (sin.f64 y) -1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (sin.f64 y) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 1 (sin.f64 y)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (sin.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (+.f64 1 (sin.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sin.f64 y) 2) (neg.f64 (sin.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -2 (+.f64 (sin.f64 y) 2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (sin.f64 y) -1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (sin.f64 y) 2) -2)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sin.f64 y) 1/2) (*.f64 (sin.f64 y) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -3 (+.f64 3 (sin.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 -1 (*.f64 (sin.f64 y) -2)) (-.f64 1 (sin.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 -1 (*.f64 (sin.f64 y) -1/2)) (-.f64 1 (*.f64 (sin.f64 y) -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (sin.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sin.f64 y) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (sin.f64 y)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (neg.f64 (sin.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (sin.f64 y) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sin.f64 y) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -2 (*.f64 (sin.f64 y) -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sin.f64 y) -2) -1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (sin.f64 y) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (-.f64 (/.f64 (sin.f64 y) -4) (*.f64 (sin.f64 y) -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sin.f64 y) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sin.f64 y) -4) -1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (sin.f64 y) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1/2 (*.f64 (sin.f64 y) -2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sin.f64 y) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sin.f64 y) -1/2) -2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (sin.f64 y) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1/4 (*.f64 (sin.f64 y) -4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sin.f64 y) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sin.f64 y) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (sin.f64 y)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 y) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 y) -2) -2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 y) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 y) -4) -4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 y) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 y) -8) -8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (sin.f64 y) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (sin.f64 y) -8)) -16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 (sin.f64 y) 8)) -8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 (sin.f64 y) -8)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (sin.f64 y) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (sin.f64 y) -8))) -32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (neg.f64 (*.f64 (sin.f64 y) 8))) -16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (neg.f64 (*.f64 (sin.f64 y) -8))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 2 (*.f64 (sin.f64 y) 8))) -16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (neg.f64 (*.f64 (sin.f64 y) 8))) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 2 (*.f64 (sin.f64 y) -8))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (sin.f64 y) 8))) (*.f64 2 (*.f64 2 (*.f64 (sin.f64 y) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (neg.f64 (*.f64 (sin.f64 y) 8))) (*.f64 2 (neg.f64 (*.f64 (sin.f64 y) 8)))) -32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (neg.f64 (*.f64 (sin.f64 y) -8))) (*.f64 2 (neg.f64 (*.f64 (sin.f64 y) -8)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (neg.f64 (*.f64 2 (*.f64 (sin.f64 y) 8))) (neg.f64 (*.f64 2 (*.f64 (sin.f64 y) 8)))) -32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (neg.f64 (neg.f64 (*.f64 (sin.f64 y) 8))) (neg.f64 (neg.f64 (*.f64 (sin.f64 y) 8)))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (neg.f64 (*.f64 2 (*.f64 (sin.f64 y) -8))) (neg.f64 (*.f64 2 (*.f64 (sin.f64 y) -8)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sin.f64 y) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (neg.f64 (sin.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x sin.f64 y)))) (#(struct:change #<rule egg-rr> (2) ((x sin.f64 (-.f64 (PI.f64) y))))) (#(struct:change #<rule egg-rr> (2) ((x sin.f64 (-.f64 (neg.f64 (PI.f64)) y))))) (#(struct:change #<rule egg-rr> (2) ((x sin.f64 (-.f64 y (*.f64 (PI.f64) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x sin.f64 (-.f64 y (*.f64 (PI.f64) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x sin.f64 (-.f64 (PI.f64) (-.f64 y (*.f64 (PI.f64) 2))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 1 (sin.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (sin.f64 y) 1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 1 (sin.f64 y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (+.f64 1 (sin.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (+.f64 (sin.f64 y) 2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 2 (+.f64 (sin.f64 y) -1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -2 (+.f64 3 (sin.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (sin.f64 y) -1) 2)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (sin.f64 y) 2) -1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 3 (sin.f64 y)) -2)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (/.f64 (-.f64 -1 (sin.f64 y)) -2) (/.f64 (-.f64 -1 (sin.f64 y)) -2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 -1 (*.f64 2 (-.f64 -1 (sin.f64 y)))) (neg.f64 (sin.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 -1 (/.f64 (-.f64 -1 (sin.f64 y)) 2)) (-.f64 1 (/.f64 (-.f64 -1 (sin.f64 y)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 1 (sin.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 1 (sin.f64 y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (-.f64 -1 (sin.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (/.f64 (-.f64 -1 (sin.f64 y)) -2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 (sin.f64 y) 2) -2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (-.f64 -1 (sin.f64 y)) -4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 -1 (sin.f64 y)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 1 (sin.f64 y)) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (-.f64 (*.f64 (sin.f64 y) 2) -2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 1 (sin.f64 y)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (-.f64 -1 (sin.f64 y)) -2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (-.f64 -1 (sin.f64 y)) 2) -2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (-.f64 -1 (sin.f64 y)) -4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 1 (sin.f64 y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (sin.f64 y) 2) -2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 -1 (sin.f64 y)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 1 (sin.f64 y)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 1 (sin.f64 y)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (-.f64 -1 (sin.f64 y))) -2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 1 (sin.f64 y)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 -1 (sin.f64 y)) 4) -4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 1 (sin.f64 y)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (-.f64 -1 (sin.f64 y)) 4)) -8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 (-.f64 -1 (sin.f64 y)) 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 1 (sin.f64 y)) 8))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 1 (sin.f64 y)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (neg.f64 (*.f64 (-.f64 -1 (sin.f64 y)) 4)) (neg.f64 (*.f64 (-.f64 -1 (sin.f64 y)) 4))) 8)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 1 (sin.f64 y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (-.f64 -1 (sin.f64 y)))))))

simplify232.0ms (1.7%)

Algorithm
egg-herbie
Rules
2146×rational.json-simplify-42
2088×rational.json-simplify-35
1506×rational.json-simplify-1
1130×rational.json-simplify-2
620×rational.json-simplify-48
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02161170
14541170
213311170
331981170
448391170
555351170
659401170
763001170
867351170
971521170
Stop Event
node limit
Counts
130 → 130
Calls
Call 1
Inputs
y
(+.f64 (*.f64 -1/6 (pow.f64 y 3)) y)
(+.f64 (*.f64 -1/6 (pow.f64 y 3)) (+.f64 (*.f64 1/120 (pow.f64 y 5)) y))
(+.f64 (*.f64 -1/6 (pow.f64 y 3)) (+.f64 (*.f64 1/120 (pow.f64 y 5)) (+.f64 y (*.f64 -1/5040 (pow.f64 y 7)))))
(sin.f64 y)
(sin.f64 y)
(sin.f64 y)
(sin.f64 y)
(sin.f64 y)
(sin.f64 y)
(sin.f64 y)
(sin.f64 y)
1
(+.f64 1 y)
(+.f64 (*.f64 -1/6 (pow.f64 y 3)) (+.f64 1 y))
(+.f64 (*.f64 -1/6 (pow.f64 y 3)) (+.f64 1 (+.f64 y (*.f64 1/120 (pow.f64 y 5)))))
(+.f64 1 (sin.f64 y))
(+.f64 1 (sin.f64 y))
(+.f64 1 (sin.f64 y))
(+.f64 1 (sin.f64 y))
(+.f64 1 (sin.f64 y))
(+.f64 1 (sin.f64 y))
(+.f64 1 (sin.f64 y))
(+.f64 1 (sin.f64 y))
(+.f64 1 (+.f64 (sin.f64 y) -1))
(+.f64 (sin.f64 y) 0)
(+.f64 (+.f64 1 (sin.f64 y)) -1)
(+.f64 0 (sin.f64 y))
(+.f64 -1 (+.f64 1 (sin.f64 y)))
(+.f64 (*.f64 (sin.f64 y) 2) (neg.f64 (sin.f64 y)))
(+.f64 -2 (+.f64 (sin.f64 y) 2))
(+.f64 (+.f64 (sin.f64 y) -1) 1)
(+.f64 (+.f64 (sin.f64 y) 2) -2)
(+.f64 (*.f64 (sin.f64 y) 1/2) (*.f64 (sin.f64 y) 1/2))
(+.f64 -3 (+.f64 3 (sin.f64 y)))
(+.f64 (-.f64 -1 (*.f64 (sin.f64 y) -2)) (-.f64 1 (sin.f64 y)))
(+.f64 (-.f64 -1 (*.f64 (sin.f64 y) -1/2)) (-.f64 1 (*.f64 (sin.f64 y) -1/2)))
(*.f64 1 (sin.f64 y))
(*.f64 (sin.f64 y) 1)
(*.f64 (neg.f64 (sin.f64 y)) -1)
(*.f64 -1 (neg.f64 (sin.f64 y)))
(*.f64 2 (*.f64 (sin.f64 y) 1/2))
(*.f64 (*.f64 (sin.f64 y) 2) 1/2)
(*.f64 -2 (*.f64 (sin.f64 y) -1/2))
(*.f64 (*.f64 (sin.f64 y) -2) -1/2)
(*.f64 4 (/.f64 (sin.f64 y) 4))
(*.f64 4 (-.f64 (/.f64 (sin.f64 y) -4) (*.f64 (sin.f64 y) -1/2)))
(*.f64 (*.f64 (sin.f64 y) 4) 1/4)
(*.f64 (*.f64 (sin.f64 y) -4) -1/4)
(*.f64 1/2 (*.f64 (sin.f64 y) 2))
(*.f64 -1/2 (*.f64 (sin.f64 y) -2))
(*.f64 (*.f64 (sin.f64 y) 1/2) 2)
(*.f64 (*.f64 (sin.f64 y) -1/2) -2)
(*.f64 1/4 (*.f64 (sin.f64 y) 4))
(*.f64 -1/4 (*.f64 (sin.f64 y) -4))
(*.f64 (/.f64 (sin.f64 y) 4) 4)
(/.f64 (sin.f64 y) 1)
(/.f64 (neg.f64 (sin.f64 y)) -1)
(/.f64 (*.f64 (sin.f64 y) 2) 2)
(/.f64 (*.f64 (sin.f64 y) -2) -2)
(/.f64 (*.f64 (sin.f64 y) 4) 4)
(/.f64 (*.f64 (sin.f64 y) -4) -4)
(/.f64 (*.f64 (sin.f64 y) 8) 8)
(/.f64 (*.f64 (sin.f64 y) -8) -8)
(/.f64 (*.f64 2 (*.f64 (sin.f64 y) 8)) 16)
(/.f64 (*.f64 2 (*.f64 (sin.f64 y) -8)) -16)
(/.f64 (neg.f64 (*.f64 (sin.f64 y) 8)) -8)
(/.f64 (neg.f64 (*.f64 (sin.f64 y) -8)) 8)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (sin.f64 y) 8))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (sin.f64 y) -8))) -32)
(/.f64 (*.f64 2 (neg.f64 (*.f64 (sin.f64 y) 8))) -16)
(/.f64 (*.f64 2 (neg.f64 (*.f64 (sin.f64 y) -8))) 16)
(/.f64 (neg.f64 (*.f64 2 (*.f64 (sin.f64 y) 8))) -16)
(/.f64 (neg.f64 (neg.f64 (*.f64 (sin.f64 y) 8))) 8)
(/.f64 (neg.f64 (*.f64 2 (*.f64 (sin.f64 y) -8))) 16)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (sin.f64 y) 8))) (*.f64 2 (*.f64 2 (*.f64 (sin.f64 y) 8)))) 64)
(/.f64 (+.f64 (*.f64 2 (neg.f64 (*.f64 (sin.f64 y) 8))) (*.f64 2 (neg.f64 (*.f64 (sin.f64 y) 8)))) -32)
(/.f64 (+.f64 (*.f64 2 (neg.f64 (*.f64 (sin.f64 y) -8))) (*.f64 2 (neg.f64 (*.f64 (sin.f64 y) -8)))) 32)
(/.f64 (+.f64 (neg.f64 (*.f64 2 (*.f64 (sin.f64 y) 8))) (neg.f64 (*.f64 2 (*.f64 (sin.f64 y) 8)))) -32)
(/.f64 (+.f64 (neg.f64 (neg.f64 (*.f64 (sin.f64 y) 8))) (neg.f64 (neg.f64 (*.f64 (sin.f64 y) 8)))) 16)
(/.f64 (+.f64 (neg.f64 (*.f64 2 (*.f64 (sin.f64 y) -8))) (neg.f64 (*.f64 2 (*.f64 (sin.f64 y) -8)))) 32)
(pow.f64 (sin.f64 y) 1)
(neg.f64 (neg.f64 (sin.f64 y)))
(sin.f64 y)
(sin.f64 (-.f64 (PI.f64) y))
(sin.f64 (-.f64 (neg.f64 (PI.f64)) y))
(sin.f64 (-.f64 y (*.f64 (PI.f64) 2)))
(sin.f64 (-.f64 y (*.f64 (PI.f64) -2)))
(sin.f64 (-.f64 (PI.f64) (-.f64 y (*.f64 (PI.f64) 2))))
(+.f64 1 (sin.f64 y))
(+.f64 (sin.f64 y) 1)
(+.f64 (+.f64 1 (sin.f64 y)) 0)
(+.f64 0 (+.f64 1 (sin.f64 y)))
(+.f64 -1 (+.f64 (sin.f64 y) 2))
(+.f64 2 (+.f64 (sin.f64 y) -1))
(+.f64 -2 (+.f64 3 (sin.f64 y)))
(+.f64 (+.f64 (sin.f64 y) -1) 2)
(+.f64 (+.f64 (sin.f64 y) 2) -1)
(+.f64 (+.f64 3 (sin.f64 y)) -2)
(+.f64 (/.f64 (-.f64 -1 (sin.f64 y)) -2) (/.f64 (-.f64 -1 (sin.f64 y)) -2))
(+.f64 (-.f64 -1 (*.f64 2 (-.f64 -1 (sin.f64 y)))) (neg.f64 (sin.f64 y)))
(+.f64 (-.f64 -1 (/.f64 (-.f64 -1 (sin.f64 y)) 2)) (-.f64 1 (/.f64 (-.f64 -1 (sin.f64 y)) 2)))
(*.f64 1 (+.f64 1 (sin.f64 y)))
(*.f64 (+.f64 1 (sin.f64 y)) 1)
(*.f64 -1 (-.f64 -1 (sin.f64 y)))
(*.f64 2 (/.f64 (-.f64 -1 (sin.f64 y)) -2))
(*.f64 (-.f64 (*.f64 (sin.f64 y) 2) -2) 1/2)
(*.f64 4 (/.f64 (-.f64 -1 (sin.f64 y)) -4))
(*.f64 (-.f64 -1 (sin.f64 y)) -1)
(*.f64 (*.f64 (+.f64 1 (sin.f64 y)) 4) 1/4)
(*.f64 1/2 (-.f64 (*.f64 (sin.f64 y) 2) -2))
(*.f64 1/4 (*.f64 (+.f64 1 (sin.f64 y)) 4))
(*.f64 (/.f64 (-.f64 -1 (sin.f64 y)) -2) 2)
(*.f64 (/.f64 (-.f64 -1 (sin.f64 y)) 2) -2)
(*.f64 (/.f64 (-.f64 -1 (sin.f64 y)) -4) 4)
(/.f64 (+.f64 1 (sin.f64 y)) 1)
(/.f64 (-.f64 (*.f64 (sin.f64 y) 2) -2) 2)
(/.f64 (-.f64 -1 (sin.f64 y)) -1)
(/.f64 (*.f64 (+.f64 1 (sin.f64 y)) 4) 4)
(/.f64 (*.f64 (+.f64 1 (sin.f64 y)) 8) 8)
(/.f64 (*.f64 2 (-.f64 -1 (sin.f64 y))) -2)
(/.f64 (*.f64 2 (*.f64 (+.f64 1 (sin.f64 y)) 8)) 16)
(/.f64 (*.f64 (-.f64 -1 (sin.f64 y)) 4) -4)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 1 (sin.f64 y)) 8))) 32)
(/.f64 (*.f64 2 (*.f64 (-.f64 -1 (sin.f64 y)) 4)) -8)
(/.f64 (neg.f64 (*.f64 (-.f64 -1 (sin.f64 y)) 4)) 4)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 1 (sin.f64 y)) 8))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 1 (sin.f64 y)) 8)))) 64)
(/.f64 (+.f64 (neg.f64 (*.f64 (-.f64 -1 (sin.f64 y)) 4)) (neg.f64 (*.f64 (-.f64 -1 (sin.f64 y)) 4))) 8)
(pow.f64 (+.f64 1 (sin.f64 y)) 1)
(neg.f64 (-.f64 -1 (sin.f64 y)))
Outputs
y
(+.f64 (*.f64 -1/6 (pow.f64 y 3)) y)
(+.f64 y (*.f64 -1/6 (pow.f64 y 3)))
(+.f64 (*.f64 -1/6 (pow.f64 y 3)) (+.f64 (*.f64 1/120 (pow.f64 y 5)) y))
(+.f64 (*.f64 -1/6 (pow.f64 y 3)) (+.f64 y (*.f64 1/120 (pow.f64 y 5))))
(+.f64 y (+.f64 (*.f64 -1/6 (pow.f64 y 3)) (*.f64 1/120 (pow.f64 y 5))))
(+.f64 (*.f64 -1/6 (pow.f64 y 3)) (+.f64 (*.f64 1/120 (pow.f64 y 5)) (+.f64 y (*.f64 -1/5040 (pow.f64 y 7)))))
(+.f64 (*.f64 -1/6 (pow.f64 y 3)) (+.f64 y (+.f64 (*.f64 -1/5040 (pow.f64 y 7)) (*.f64 1/120 (pow.f64 y 5)))))
(+.f64 (*.f64 -1/6 (pow.f64 y 3)) (+.f64 y (+.f64 (*.f64 1/120 (pow.f64 y 5)) (*.f64 -1/5040 (pow.f64 y 7)))))
(+.f64 y (+.f64 (*.f64 -1/6 (pow.f64 y 3)) (+.f64 (*.f64 1/120 (pow.f64 y 5)) (*.f64 -1/5040 (pow.f64 y 7)))))
(sin.f64 y)
(sin.f64 y)
(sin.f64 y)
(sin.f64 y)
(sin.f64 y)
(sin.f64 y)
(sin.f64 y)
(sin.f64 y)
1
(+.f64 1 y)
(+.f64 y 1)
(+.f64 (*.f64 -1/6 (pow.f64 y 3)) (+.f64 1 y))
(+.f64 (*.f64 -1/6 (pow.f64 y 3)) (+.f64 y 1))
(+.f64 y (+.f64 1 (*.f64 -1/6 (pow.f64 y 3))))
(+.f64 y (+.f64 (*.f64 -1/6 (pow.f64 y 3)) 1))
(+.f64 (*.f64 -1/6 (pow.f64 y 3)) (+.f64 1 (+.f64 y (*.f64 1/120 (pow.f64 y 5)))))
(+.f64 (*.f64 -1/6 (pow.f64 y 3)) (+.f64 y (+.f64 (*.f64 1/120 (pow.f64 y 5)) 1)))
(+.f64 1 (sin.f64 y))
(+.f64 (sin.f64 y) 1)
(+.f64 1 (sin.f64 y))
(+.f64 (sin.f64 y) 1)
(+.f64 1 (sin.f64 y))
(+.f64 (sin.f64 y) 1)
(+.f64 1 (sin.f64 y))
(+.f64 (sin.f64 y) 1)
(+.f64 1 (sin.f64 y))
(+.f64 (sin.f64 y) 1)
(+.f64 1 (sin.f64 y))
(+.f64 (sin.f64 y) 1)
(+.f64 1 (sin.f64 y))
(+.f64 (sin.f64 y) 1)
(+.f64 1 (sin.f64 y))
(+.f64 (sin.f64 y) 1)
(+.f64 1 (+.f64 (sin.f64 y) -1))
(sin.f64 y)
(+.f64 (sin.f64 y) 0)
(sin.f64 y)
(+.f64 (+.f64 1 (sin.f64 y)) -1)
(sin.f64 y)
(+.f64 0 (sin.f64 y))
(sin.f64 y)
(+.f64 -1 (+.f64 1 (sin.f64 y)))
(sin.f64 y)
(+.f64 (*.f64 (sin.f64 y) 2) (neg.f64 (sin.f64 y)))
(sin.f64 y)
(+.f64 -2 (+.f64 (sin.f64 y) 2))
(sin.f64 y)
(+.f64 (+.f64 (sin.f64 y) -1) 1)
(sin.f64 y)
(+.f64 (+.f64 (sin.f64 y) 2) -2)
(sin.f64 y)
(+.f64 (*.f64 (sin.f64 y) 1/2) (*.f64 (sin.f64 y) 1/2))
(sin.f64 y)
(+.f64 -3 (+.f64 3 (sin.f64 y)))
(sin.f64 y)
(+.f64 (-.f64 -1 (*.f64 (sin.f64 y) -2)) (-.f64 1 (sin.f64 y)))
(sin.f64 y)
(+.f64 (-.f64 -1 (*.f64 (sin.f64 y) -1/2)) (-.f64 1 (*.f64 (sin.f64 y) -1/2)))
(sin.f64 y)
(*.f64 1 (sin.f64 y))
(sin.f64 y)
(*.f64 (sin.f64 y) 1)
(sin.f64 y)
(*.f64 (neg.f64 (sin.f64 y)) -1)
(sin.f64 y)
(*.f64 -1 (neg.f64 (sin.f64 y)))
(sin.f64 y)
(*.f64 2 (*.f64 (sin.f64 y) 1/2))
(sin.f64 y)
(*.f64 (*.f64 (sin.f64 y) 2) 1/2)
(sin.f64 y)
(*.f64 -2 (*.f64 (sin.f64 y) -1/2))
(sin.f64 y)
(*.f64 (*.f64 (sin.f64 y) -2) -1/2)
(sin.f64 y)
(*.f64 4 (/.f64 (sin.f64 y) 4))
(sin.f64 y)
(*.f64 4 (-.f64 (/.f64 (sin.f64 y) -4) (*.f64 (sin.f64 y) -1/2)))
(sin.f64 y)
(*.f64 (*.f64 (sin.f64 y) 4) 1/4)
(sin.f64 y)
(*.f64 (*.f64 (sin.f64 y) -4) -1/4)
(sin.f64 y)
(*.f64 1/2 (*.f64 (sin.f64 y) 2))
(sin.f64 y)
(*.f64 -1/2 (*.f64 (sin.f64 y) -2))
(sin.f64 y)
(*.f64 (*.f64 (sin.f64 y) 1/2) 2)
(sin.f64 y)
(*.f64 (*.f64 (sin.f64 y) -1/2) -2)
(sin.f64 y)
(*.f64 1/4 (*.f64 (sin.f64 y) 4))
(sin.f64 y)
(*.f64 -1/4 (*.f64 (sin.f64 y) -4))
(sin.f64 y)
(*.f64 (/.f64 (sin.f64 y) 4) 4)
(sin.f64 y)
(/.f64 (sin.f64 y) 1)
(sin.f64 y)
(/.f64 (neg.f64 (sin.f64 y)) -1)
(sin.f64 y)
(/.f64 (*.f64 (sin.f64 y) 2) 2)
(sin.f64 y)
(/.f64 (*.f64 (sin.f64 y) -2) -2)
(sin.f64 y)
(/.f64 (*.f64 (sin.f64 y) 4) 4)
(sin.f64 y)
(/.f64 (*.f64 (sin.f64 y) -4) -4)
(sin.f64 y)
(/.f64 (*.f64 (sin.f64 y) 8) 8)
(sin.f64 y)
(/.f64 (*.f64 (sin.f64 y) -8) -8)
(sin.f64 y)
(/.f64 (*.f64 2 (*.f64 (sin.f64 y) 8)) 16)
(sin.f64 y)
(/.f64 (*.f64 2 (*.f64 (sin.f64 y) -8)) -16)
(sin.f64 y)
(/.f64 (neg.f64 (*.f64 (sin.f64 y) 8)) -8)
(sin.f64 y)
(/.f64 (neg.f64 (*.f64 (sin.f64 y) -8)) 8)
(sin.f64 y)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (sin.f64 y) 8))) 32)
(sin.f64 y)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (sin.f64 y) -8))) -32)
(sin.f64 y)
(/.f64 (*.f64 2 (neg.f64 (*.f64 (sin.f64 y) 8))) -16)
(sin.f64 y)
(/.f64 (*.f64 2 (neg.f64 (*.f64 (sin.f64 y) -8))) 16)
(sin.f64 y)
(/.f64 (neg.f64 (*.f64 2 (*.f64 (sin.f64 y) 8))) -16)
(sin.f64 y)
(/.f64 (neg.f64 (neg.f64 (*.f64 (sin.f64 y) 8))) 8)
(sin.f64 y)
(/.f64 (neg.f64 (*.f64 2 (*.f64 (sin.f64 y) -8))) 16)
(sin.f64 y)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (sin.f64 y) 8))) (*.f64 2 (*.f64 2 (*.f64 (sin.f64 y) 8)))) 64)
(sin.f64 y)
(/.f64 (+.f64 (*.f64 2 (neg.f64 (*.f64 (sin.f64 y) 8))) (*.f64 2 (neg.f64 (*.f64 (sin.f64 y) 8)))) -32)
(sin.f64 y)
(/.f64 (+.f64 (*.f64 2 (neg.f64 (*.f64 (sin.f64 y) -8))) (*.f64 2 (neg.f64 (*.f64 (sin.f64 y) -8)))) 32)
(sin.f64 y)
(/.f64 (+.f64 (neg.f64 (*.f64 2 (*.f64 (sin.f64 y) 8))) (neg.f64 (*.f64 2 (*.f64 (sin.f64 y) 8)))) -32)
(sin.f64 y)
(/.f64 (+.f64 (neg.f64 (neg.f64 (*.f64 (sin.f64 y) 8))) (neg.f64 (neg.f64 (*.f64 (sin.f64 y) 8)))) 16)
(sin.f64 y)
(/.f64 (+.f64 (neg.f64 (*.f64 2 (*.f64 (sin.f64 y) -8))) (neg.f64 (*.f64 2 (*.f64 (sin.f64 y) -8)))) 32)
(sin.f64 y)
(pow.f64 (sin.f64 y) 1)
(sin.f64 y)
(neg.f64 (neg.f64 (sin.f64 y)))
(sin.f64 y)
(sin.f64 y)
(sin.f64 (-.f64 (PI.f64) y))
(sin.f64 y)
(sin.f64 (-.f64 (neg.f64 (PI.f64)) y))
(sin.f64 y)
(sin.f64 (-.f64 y (*.f64 (PI.f64) 2)))
(sin.f64 (-.f64 y (*.f64 2 (PI.f64))))
(sin.f64 (-.f64 y (*.f64 (PI.f64) -2)))
(sin.f64 (-.f64 y (*.f64 -2 (PI.f64))))
(sin.f64 (-.f64 (PI.f64) (-.f64 y (*.f64 (PI.f64) 2))))
(sin.f64 (-.f64 y (*.f64 2 (PI.f64))))
(+.f64 1 (sin.f64 y))
(+.f64 (sin.f64 y) 1)
(+.f64 (sin.f64 y) 1)
(+.f64 (+.f64 1 (sin.f64 y)) 0)
(+.f64 (sin.f64 y) 1)
(+.f64 0 (+.f64 1 (sin.f64 y)))
(+.f64 (sin.f64 y) 1)
(+.f64 -1 (+.f64 (sin.f64 y) 2))
(+.f64 (sin.f64 y) 1)
(+.f64 2 (+.f64 (sin.f64 y) -1))
(+.f64 (sin.f64 y) 1)
(+.f64 -2 (+.f64 3 (sin.f64 y)))
(+.f64 (sin.f64 y) 1)
(+.f64 (+.f64 (sin.f64 y) -1) 2)
(+.f64 (sin.f64 y) 1)
(+.f64 (+.f64 (sin.f64 y) 2) -1)
(+.f64 (sin.f64 y) 1)
(+.f64 (+.f64 3 (sin.f64 y)) -2)
(+.f64 (sin.f64 y) 1)
(+.f64 (/.f64 (-.f64 -1 (sin.f64 y)) -2) (/.f64 (-.f64 -1 (sin.f64 y)) -2))
(+.f64 (sin.f64 y) 1)
(+.f64 (-.f64 -1 (*.f64 2 (-.f64 -1 (sin.f64 y)))) (neg.f64 (sin.f64 y)))
(+.f64 (sin.f64 y) 1)
(+.f64 (-.f64 -1 (/.f64 (-.f64 -1 (sin.f64 y)) 2)) (-.f64 1 (/.f64 (-.f64 -1 (sin.f64 y)) 2)))
(+.f64 (sin.f64 y) 1)
(*.f64 1 (+.f64 1 (sin.f64 y)))
(+.f64 (sin.f64 y) 1)
(*.f64 (+.f64 1 (sin.f64 y)) 1)
(+.f64 (sin.f64 y) 1)
(*.f64 -1 (-.f64 -1 (sin.f64 y)))
(+.f64 (sin.f64 y) 1)
(*.f64 2 (/.f64 (-.f64 -1 (sin.f64 y)) -2))
(+.f64 (sin.f64 y) 1)
(*.f64 (-.f64 (*.f64 (sin.f64 y) 2) -2) 1/2)
(*.f64 1/2 (-.f64 (*.f64 (sin.f64 y) 2) -2))
(*.f64 1/2 (*.f64 (+.f64 (sin.f64 y) 1) 2))
(*.f64 1/2 (-.f64 2 (*.f64 (sin.f64 y) -2)))
(*.f64 4 (/.f64 (-.f64 -1 (sin.f64 y)) -4))
(+.f64 (sin.f64 y) 1)
(*.f64 (-.f64 -1 (sin.f64 y)) -1)
(+.f64 (sin.f64 y) 1)
(*.f64 (*.f64 (+.f64 1 (sin.f64 y)) 4) 1/4)
(+.f64 (sin.f64 y) 1)
(*.f64 1/2 (-.f64 (*.f64 (sin.f64 y) 2) -2))
(*.f64 1/2 (*.f64 (+.f64 (sin.f64 y) 1) 2))
(*.f64 1/2 (-.f64 2 (*.f64 (sin.f64 y) -2)))
(*.f64 1/4 (*.f64 (+.f64 1 (sin.f64 y)) 4))
(+.f64 (sin.f64 y) 1)
(*.f64 (/.f64 (-.f64 -1 (sin.f64 y)) -2) 2)
(+.f64 (sin.f64 y) 1)
(*.f64 (/.f64 (-.f64 -1 (sin.f64 y)) 2) -2)
(*.f64 -2 (/.f64 (-.f64 -1 (sin.f64 y)) 2))
(*.f64 (/.f64 (-.f64 -1 (sin.f64 y)) -4) 4)
(+.f64 (sin.f64 y) 1)
(/.f64 (+.f64 1 (sin.f64 y)) 1)
(+.f64 (sin.f64 y) 1)
(/.f64 (-.f64 (*.f64 (sin.f64 y) 2) -2) 2)
(+.f64 (sin.f64 y) 1)
(/.f64 (-.f64 -1 (sin.f64 y)) -1)
(+.f64 (sin.f64 y) 1)
(/.f64 (*.f64 (+.f64 1 (sin.f64 y)) 4) 4)
(+.f64 (sin.f64 y) 1)
(/.f64 (*.f64 (+.f64 1 (sin.f64 y)) 8) 8)
(+.f64 (sin.f64 y) 1)
(/.f64 (*.f64 2 (-.f64 -1 (sin.f64 y))) -2)
(+.f64 (sin.f64 y) 1)
(/.f64 (*.f64 2 (*.f64 (+.f64 1 (sin.f64 y)) 8)) 16)
(+.f64 (sin.f64 y) 1)
(/.f64 (*.f64 (-.f64 -1 (sin.f64 y)) 4) -4)
(+.f64 (sin.f64 y) 1)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 1 (sin.f64 y)) 8))) 32)
(+.f64 (sin.f64 y) 1)
(/.f64 (*.f64 2 (*.f64 (-.f64 -1 (sin.f64 y)) 4)) -8)
(+.f64 (sin.f64 y) 1)
(/.f64 (neg.f64 (*.f64 (-.f64 -1 (sin.f64 y)) 4)) 4)
(+.f64 (sin.f64 y) 1)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 1 (sin.f64 y)) 8))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 1 (sin.f64 y)) 8)))) 64)
(+.f64 (sin.f64 y) 1)
(/.f64 (+.f64 (neg.f64 (*.f64 (-.f64 -1 (sin.f64 y)) 4)) (neg.f64 (*.f64 (-.f64 -1 (sin.f64 y)) 4))) 8)
(+.f64 (sin.f64 y) 1)
(pow.f64 (+.f64 1 (sin.f64 y)) 1)
(+.f64 (sin.f64 y) 1)
(neg.f64 (-.f64 -1 (sin.f64 y)))
(+.f64 (sin.f64 y) 1)

eval38.0ms (0.3%)

Compiler

Compiled 1767 to 1344 computations (23.9% saved)

prune32.0ms (0.2%)

Pruning

13 alts after pruning (5 fresh and 8 done)

PrunedKeptTotal
New1722174
Fresh033
Picked101
Done088
Total17313186
Error
0.1b
Counts
186 → 13
Alt Table
Click to see full alt table
StatusErrorProgram
62.3b
(-.f64 1 1)
55.1b
(+.f64 (+.f64 (sin.f64 y) 2) -2)
26.3b
(+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y))
27.4b
(+.f64 (sin.f64 y) x)
22.9b
(+.f64 z x)
45.7b
(+.f64 y z)
22.7b
(+.f64 x (+.f64 y z))
10.7b
(+.f64 x (*.f64 (cos.f64 y) z))
36.6b
(*.f64 (cos.f64 y) z)
52.4b
(sin.f64 y)
48.5b
z
59.4b
y
37.4b
x
Compiler

Compiled 85 to 63 computations (25.9% saved)

regimes46.0ms (0.3%)

Counts
19 → 1
Calls
Call 1
Inputs
x
y
z
(+.f64 y x)
(+.f64 y z)
(+.f64 z x)
(-.f64 1 1)
(+.f64 x (+.f64 y z))
(sin.f64 y)
(*.f64 (cos.f64 y) z)
(+.f64 (sin.f64 y) x)
(+.f64 x (*.f64 (cos.f64 y) z))
(+.f64 (+.f64 (sin.f64 y) 2) -2)
(-.f64 (-.f64 1 (neg.f64 (sin.f64 y))) 1)
(+.f64 x (+.f64 y (*.f64 z (cos.f64 y))))
(+.f64 (-.f64 (-.f64 1 (neg.f64 (sin.f64 y))) 1) x)
(+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y))
(+.f64 x (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))))
(+.f64 (+.f64 x (sin.f64 y)) (*.f64 z (cos.f64 y)))
Outputs
(+.f64 x (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))))
Calls

4 calls:

11.0ms
z
11.0ms
(+.f64 (+.f64 x (sin.f64 y)) (*.f64 z (cos.f64 y)))
10.0ms
x
10.0ms
y
Results
ErrorSegmentsBranch
0.1b1x
0.1b1y
0.1b1z
0.1b1(+.f64 (+.f64 x (sin.f64 y)) (*.f64 z (cos.f64 y)))
Compiler

Compiled 118 to 54 computations (54.2% saved)

regimes106.0ms (0.8%)

Counts
17 → 3
Calls
Call 1
Inputs
x
y
z
(+.f64 y x)
(+.f64 y z)
(+.f64 z x)
(-.f64 1 1)
(+.f64 x (+.f64 y z))
(sin.f64 y)
(*.f64 (cos.f64 y) z)
(+.f64 (sin.f64 y) x)
(+.f64 x (*.f64 (cos.f64 y) z))
(+.f64 (+.f64 (sin.f64 y) 2) -2)
(-.f64 (-.f64 1 (neg.f64 (sin.f64 y))) 1)
(+.f64 x (+.f64 y (*.f64 z (cos.f64 y))))
(+.f64 (-.f64 (-.f64 1 (neg.f64 (sin.f64 y))) 1) x)
(+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y))
Outputs
(+.f64 x (*.f64 (cos.f64 y) z))
(+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y))
(+.f64 x (*.f64 (cos.f64 y) z))
Calls

3 calls:

49.0ms
y
28.0ms
z
26.0ms
x
Results
ErrorSegmentsBranch
2.4b3x
5.5b5y
3.1b3z
Compiler

Compiled 88 to 42 computations (52.3% saved)

bsearch72.0ms (0.5%)

Algorithm
binary-search
Steps
TimeLeftRight
30.0ms
1.9803709431611504e-123
5.1266758654558536e-120
42.0ms
-4.541483412886858e-33
-3.0325965885754623e-50
Results
30.0ms194×body256valid
26.0ms59×body1024valid
12.0ms35×body512valid
Compiler

Compiled 396 to 283 computations (28.5% saved)

regimes102.0ms (0.8%)

Counts
16 → 3
Calls
Call 1
Inputs
x
y
z
(+.f64 y x)
(+.f64 y z)
(+.f64 z x)
(-.f64 1 1)
(+.f64 x (+.f64 y z))
(sin.f64 y)
(*.f64 (cos.f64 y) z)
(+.f64 (sin.f64 y) x)
(+.f64 x (*.f64 (cos.f64 y) z))
(+.f64 (+.f64 (sin.f64 y) 2) -2)
(-.f64 (-.f64 1 (neg.f64 (sin.f64 y))) 1)
(+.f64 x (+.f64 y (*.f64 z (cos.f64 y))))
(+.f64 (-.f64 (-.f64 1 (neg.f64 (sin.f64 y))) 1) x)
Outputs
(+.f64 x (*.f64 (cos.f64 y) z))
(+.f64 (sin.f64 y) x)
(+.f64 x (*.f64 (cos.f64 y) z))
Calls

3 calls:

40.0ms
x
31.0ms
y
24.0ms
z
Results
ErrorSegmentsBranch
8.1b5x
6.5b4y
3.1b3z
Compiler

Compiled 81 to 41 computations (49.4% saved)

bsearch63.0ms (0.5%)

Algorithm
binary-search
Steps
TimeLeftRight
25.0ms
5.344244026119274e-96
3.047743489228366e-92
38.0ms
-2.027318938271089e-94
-4.897970308693416e-122
Results
40.0ms254×body256valid
12.0ms30×body1024valid
6.0ms20×body512valid
Compiler

Compiled 360 to 260 computations (27.8% saved)

regimes119.0ms (0.9%)

Counts
11 → 5
Calls
Call 1
Inputs
x
y
z
(+.f64 y x)
(+.f64 y z)
(+.f64 z x)
(-.f64 1 1)
(+.f64 x (+.f64 y z))
(sin.f64 y)
(*.f64 (cos.f64 y) z)
(+.f64 (sin.f64 y) x)
Outputs
(*.f64 (cos.f64 y) z)
(+.f64 z x)
(+.f64 (sin.f64 y) x)
(+.f64 z x)
(*.f64 (cos.f64 y) z)
Calls

3 calls:

45.0ms
x
39.0ms
z
33.0ms
y
Results
ErrorSegmentsBranch
14.0b7x
11.6b5y
8.5b5z
Compiler

Compiled 45 to 23 computations (48.9% saved)

bsearch120.0ms (0.9%)

Algorithm
binary-search
Steps
TimeLeftRight
29.0ms
4.8197878202955225e+86
2.0452011764922292e+91
30.0ms
5.344244026119274e-96
3.047743489228366e-92
40.0ms
-2.027318938271089e-94
-4.897970308693416e-122
21.0ms
-5.948919237619794e+33
-4.154191212525283e+32
Results
69.0ms421×body256valid
29.0ms61×body1024valid
15.0ms46×body512valid
Compiler

Compiled 513 to 376 computations (26.7% saved)

regimes94.0ms (0.7%)

Counts
10 → 7
Calls
Call 1
Inputs
x
y
z
(+.f64 y x)
(+.f64 y z)
(+.f64 z x)
(-.f64 1 1)
(+.f64 x (+.f64 y z))
(sin.f64 y)
(*.f64 (cos.f64 y) z)
Outputs
(+.f64 z x)
(*.f64 (cos.f64 y) z)
(+.f64 x (+.f64 y z))
(*.f64 (cos.f64 y) z)
(sin.f64 y)
(*.f64 (cos.f64 y) z)
(+.f64 z x)
Calls

3 calls:

42.0ms
x
31.0ms
y
19.0ms
z
Results
ErrorSegmentsBranch
14.0b7x
14.4b5y
15.5b3z
Compiler

Compiled 41 to 22 computations (46.3% saved)

bsearch180.0ms (1.3%)

Algorithm
binary-search
Steps
TimeLeftRight
28.0ms
2.527030286859391e+61
6.833011673675897e+69
29.0ms
1.9803709431611504e-123
5.1266758654558536e-120
24.0ms
1.234720871031825e-149
4.994371571282251e-149
36.0ms
-1.4326434961585473e-237
-1.5053162826004023e-243
31.0ms
-7.05206165402244e-156
-2.1459842797021617e-158
33.0ms
-4.2232530242564945e-8
-5.344896761193552e-11
Results
91.0ms566×body256valid
57.0ms131×body1024valid
20.0ms71×body512valid
Compiler

Compiled 758 to 558 computations (26.4% saved)

regimes51.0ms (0.4%)

Counts
9 → 4
Calls
Call 1
Inputs
x
y
z
(+.f64 y x)
(+.f64 y z)
(+.f64 z x)
(-.f64 1 1)
(+.f64 x (+.f64 y z))
(sin.f64 y)
Outputs
(+.f64 z x)
(+.f64 x (+.f64 y z))
(sin.f64 y)
(+.f64 z x)
Calls

3 calls:

22.0ms
x
17.0ms
y
11.0ms
z
Results
ErrorSegmentsBranch
18.3b4x
19.6b3y
21.6b2z
Compiler

Compiled 37 to 20 computations (45.9% saved)

bsearch117.0ms (0.9%)

Algorithm
binary-search
Steps
TimeLeftRight
41.0ms
3.060619887587405e-117
1.1323537813540663e-97
40.0ms
1.1443662303546564e-190
2.980848856663866e-179
36.0ms
-3.0325965885754623e-50
-3.7513762513143105e-59
Results
48.0ms319×body256valid
42.0ms91×body1024valid
20.0ms70×body512valid
Compiler

Compiled 455 to 332 computations (27% saved)

regimes43.0ms (0.3%)

Counts
8 → 3
Calls
Call 1
Inputs
x
y
z
(+.f64 y x)
(+.f64 y z)
(+.f64 z x)
(-.f64 1 1)
(+.f64 x (+.f64 y z))
Outputs
(+.f64 z x)
(+.f64 x (+.f64 y z))
(+.f64 z x)
Calls

3 calls:

16.0ms
y
15.0ms
x
11.0ms
z
Results
ErrorSegmentsBranch
20.1b3x
19.9b3y
21.6b2z
Compiler

Compiled 35 to 19 computations (45.7% saved)

bsearch40.0ms (0.3%)

Algorithm
binary-search
Steps
TimeLeftRight
17.0ms
719.2912491436618
3003.5870428582048
23.0ms
-1.0934151849052162e+58
-1.0984496148594947e+55
Results
38.0ms224×body256valid
Compiler

Compiled 242 to 167 computations (31% saved)

regimes36.0ms (0.3%)

Counts
7 → 3
Calls
Call 1
Inputs
x
y
z
(+.f64 y x)
(+.f64 y z)
(+.f64 z x)
(-.f64 1 1)
Outputs
(+.f64 z x)
(+.f64 y z)
(+.f64 z x)
Calls

3 calls:

14.0ms
x
14.0ms
z
5.0ms
y
Results
ErrorSegmentsBranch
20.8b3x
22.9b1y
21.7b3z
Compiler

Compiled 30 to 18 computations (40% saved)

bsearch58.0ms (0.4%)

Algorithm
binary-search
Steps
TimeLeftRight
30.0ms
1.9803709431611504e-123
5.1266758654558536e-120
28.0ms
-2.152391404115652e-169
-9.51333634770047e-171
Results
28.0ms165×body256valid
18.0ms43×body1024valid
9.0ms32×body512valid
Compiler

Compiled 228 to 163 computations (28.5% saved)

regimes42.0ms (0.3%)

Counts
5 → 3
Calls
Call 1
Inputs
x
y
z
(+.f64 y x)
(+.f64 y z)
Outputs
x
(+.f64 y z)
x
Calls

3 calls:

16.0ms
y
12.0ms
x
12.0ms
z
Results
ErrorSegmentsBranch
25.9b3x
32.8b4y
32.2b3z
Compiler

Compiled 24 to 14 computations (41.7% saved)

bsearch68.0ms (0.5%)

Algorithm
binary-search
Steps
TimeLeftRight
31.0ms
3.198844297219295e+21
4.78363786639239e+30
37.0ms
-9.387385652817198e-26
-8.5913134411718e-31
Results
33.0ms203×body256valid
21.0ms49×body1024valid
10.0ms36×body512valid
Compiler

Compiled 234 to 175 computations (25.2% saved)

regimes173.0ms (1.3%)

Counts
4 → 5
Calls
Call 1
Inputs
x
y
z
(+.f64 y x)
Outputs
x
z
(+.f64 y x)
z
x
Calls

3 calls:

147.0ms
x
14.0ms
y
11.0ms
z
Results
ErrorSegmentsBranch
27.6b5x
33.3b4y
32.2b3z
Compiler

Compiled 21 to 13 computations (38.1% saved)

bsearch237.0ms (1.8%)

Algorithm
binary-search
Steps
TimeLeftRight
30.0ms
3.198844297219295e+21
4.78363786639239e+30
29.0ms
-3.313584287898941e-193
-2.162537257764136e-195
19.0ms
-9.51333634770047e-171
-3.073245641241508e-171
160.0ms
-9.387385652817198e-26
-8.5913134411718e-31
Results
152.0ms58×body1024valid
60.0ms361×body256valid
19.0ms61×body512valid
Compiler

Compiled 342 to 265 computations (22.5% saved)

regimes36.0ms (0.3%)

Counts
3 → 3
Calls
Call 1
Inputs
x
y
z
Outputs
x
z
x
Calls

3 calls:

13.0ms
y
11.0ms
z
11.0ms
x
Results
ErrorSegmentsBranch
28.7b3x
35.1b3y
32.3b3z
Compiler

Compiled 18 to 12 computations (33.3% saved)

bsearch67.0ms (0.5%)

Algorithm
binary-search
Steps
TimeLeftRight
30.0ms
3.198844297219295e+21
4.78363786639239e+30
36.0ms
-9.387385652817198e-26
-8.5913134411718e-31
Results
34.0ms215×body256valid
24.0ms50×body1024valid
6.0ms23×body512valid
Compiler

Compiled 198 to 157 computations (20.7% saved)

regimes16.0ms (0.1%)

Accuracy

Total -27.2b remaining (-77.4%)

Threshold costs -27.2b (-77.4%)

Counts
2 → 3
Calls
Call 1
Inputs
x
y
Outputs
x
y
x
Calls

3 calls:

8.0ms
x
4.0ms
z
3.0ms
y
Results
ErrorSegmentsBranch
35.2b3x
37.4b1y
37.4b1z
Compiler

Compiled 17 to 12 computations (29.4% saved)

bsearch60.0ms (0.4%)

Algorithm
binary-search
Steps
TimeLeftRight
41.0ms
3.060619887587405e-117
1.1323537813540663e-97
19.0ms
-9.51333634770047e-171
-3.073245641241508e-171
Results
27.0ms181×body256valid
23.0ms51×body1024valid
7.0ms24×body512valid
Compiler

Compiled 178 to 141 computations (20.8% saved)

simplify12.0ms (0.1%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0115625
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(+.f64 x (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))))
(if (<=.f64 x -4789048565205903/2993155353253689176481146537402947624255349848014848) (+.f64 x (*.f64 (cos.f64 y) z)) (if (<=.f64 x 7268387242956069/1453677448591213781098647615776009068707282721374636120562980398361278576226795846652382101427527131121525043212532355867069203257229312) (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)) (+.f64 x (*.f64 (cos.f64 y) z))))
(if (<=.f64 z -7932671625482983/2644223875160994395807661232131084159313618731857124877138595181097623164945245383300756841758861139390364848100093433217024) (+.f64 x (*.f64 (cos.f64 y) z)) (if (<=.f64 z 96326941871583/9173994463960286046443283581208347763186259956673124494950355357547691504353939232280074212440502746218496) (+.f64 (sin.f64 y) x) (+.f64 x (*.f64 (cos.f64 y) z))))
(if (<=.f64 z -1220000000000000054658539787911168) (*.f64 (cos.f64 y) z) (if (<=.f64 z -3757668132438133/18788340662190665823115844774314696219005460391266558965658327772257672200916867547709591987078149624255479808) (+.f64 z x) (if (<=.f64 z 8807034685401875/293567822846729153486185074598667128421960318613539983838411371441526128139326055432962374798096087878991872) (+.f64 (sin.f64 y) x) (if (<=.f64 z 240000000000000004394790387751161692224459067458976472140608537358560606481078672464805888) (+.f64 z x) (*.f64 (cos.f64 y) z)))))
(if (<=.f64 x -3929008913747545/604462909807314587353088) (+.f64 z x) (if (<=.f64 x -463744502762071/966134380754314586173837972732996836074731832426608749664308812862879785572390106134048441645480644490615904007875544294341269665260746913935727168366770187174245203705856) (*.f64 (cos.f64 y) z) (if (<=.f64 x -6891665838941815/7331559403129590068331208687020758653624765228075687047537011123791632385370343464792392772051104864109916034360063928339045596353810784435313926666640532382851295822842678298180301122938618566718730242107326783353838221723324821405531849499257419595776) (+.f64 x (+.f64 y z)) (if (<=.f64 x 691033158841835/14396524142538228424993723224595141948383030778566133225922417832357880258148761185020930195532450742879746914027266864394266451377581759004827248578768524336431104) (*.f64 (cos.f64 y) z) (if (<=.f64 x 1488565707357403/744282853678701455922507579277316643178128753343813693728245963960974631028119473486019635930893891134220822124816566203939432067701407744) (sin.f64 y) (if (<=.f64 x 37000000000000000268195545050678519665083819581738877278224384) (*.f64 (cos.f64 y) z) (+.f64 z x)))))))
(if (<=.f64 x -3706992666733213/842498333348457493583344221469363458551160763204392890034487820288) (+.f64 z x) (if (<=.f64 x 7942296627156717/1167984798111281975972139931059274579172666497855631342228273284582214442805421410945513679697247078343332431250840168271536308408672112127552681297848886832192510636636227827221215793215130566656) (+.f64 x (+.f64 y z)) (if (<=.f64 x 643259369036029/11090678776483259438313656736572334813745748301503266300681918322458485231222502492159897624416558312389564843845614287315896631296) (sin.f64 y) (+.f64 z x))))
(if (<=.f64 y -11000000000000000520924577529620218801984355866979074048) (+.f64 z x) (if (<=.f64 y 1000) (+.f64 x (+.f64 y z)) (+.f64 z x)))
(if (<=.f64 x -6628602150353253/33992831540273094316133645219357992149093959534530043084764424844825827831094543535306400144974674282808917087119776064982181077609773263322209278641061590524405201333465166018030600192) (+.f64 z x) (if (<=.f64 x 6400832541636833/2977131414714805823690030317109266572712515013375254774912983855843898524112477893944078543723575564536883288499266264815757728270805630976) (+.f64 y z) (+.f64 z x)))
(if (<=.f64 x -35681192317649/5575186299632655785383929568162090376495104) x (if (<=.f64 x 3200000000000000000000) (+.f64 y z) x))
(if (<=.f64 x -8474283175441637/11150372599265311570767859136324180752990208) x (if (<=.f64 x -3372088888795091/1087770609288739018116276647019455748771006705104961378712461595034426490595025393129804804639189577049885346787832834079429794483512744426310696916513970896780966442670885312576979206144) z (if (<=.f64 x -3184847909140617/10273702932711667006330058365000251299903007427389011444332579888806117488861485980690754953667164943802701111047223081470741078613640241920171513223929454785068796232672743355843093277117817807170494632296448) (+.f64 y x) (if (<=.f64 x 4500000000000000000000) z x))))
(if (<=.f64 x -3679622957757553/22300745198530623141535718272648361505980416) x (if (<=.f64 x 4700000000000000000000) z x))
(if (<=.f64 x -2447483870899663/543885304644369509058138323509727874385503352552480689356230797517213245297512696564902402319594788524942673393916417039714897241756372213155348458256985448390483221335442656288489603072) x (if (<=.f64 x 1619587123536109/82631996098781074868989413504096379978550585370535152410581099409300723904538918228148651304964410605948901503127919788032) y x))
x
Outputs
(+.f64 x (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))))
(if (<=.f64 x -4789048565205903/2993155353253689176481146537402947624255349848014848) (+.f64 x (*.f64 (cos.f64 y) z)) (if (<=.f64 x 7268387242956069/1453677448591213781098647615776009068707282721374636120562980398361278576226795846652382101427527131121525043212532355867069203257229312) (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y)) (+.f64 x (*.f64 (cos.f64 y) z))))
(if (<=.f64 z -7932671625482983/2644223875160994395807661232131084159313618731857124877138595181097623164945245383300756841758861139390364848100093433217024) (+.f64 x (*.f64 (cos.f64 y) z)) (if (<=.f64 z 96326941871583/9173994463960286046443283581208347763186259956673124494950355357547691504353939232280074212440502746218496) (+.f64 (sin.f64 y) x) (+.f64 x (*.f64 (cos.f64 y) z))))
(if (<=.f64 z -1220000000000000054658539787911168) (*.f64 (cos.f64 y) z) (if (<=.f64 z -3757668132438133/18788340662190665823115844774314696219005460391266558965658327772257672200916867547709591987078149624255479808) (+.f64 z x) (if (<=.f64 z 8807034685401875/293567822846729153486185074598667128421960318613539983838411371441526128139326055432962374798096087878991872) (+.f64 (sin.f64 y) x) (if (<=.f64 z 240000000000000004394790387751161692224459067458976472140608537358560606481078672464805888) (+.f64 z x) (*.f64 (cos.f64 y) z)))))
(if (<=.f64 x -3929008913747545/604462909807314587353088) (+.f64 z x) (if (<=.f64 x -463744502762071/966134380754314586173837972732996836074731832426608749664308812862879785572390106134048441645480644490615904007875544294341269665260746913935727168366770187174245203705856) (*.f64 (cos.f64 y) z) (if (<=.f64 x -6891665838941815/7331559403129590068331208687020758653624765228075687047537011123791632385370343464792392772051104864109916034360063928339045596353810784435313926666640532382851295822842678298180301122938618566718730242107326783353838221723324821405531849499257419595776) (+.f64 x (+.f64 y z)) (if (<=.f64 x 691033158841835/14396524142538228424993723224595141948383030778566133225922417832357880258148761185020930195532450742879746914027266864394266451377581759004827248578768524336431104) (*.f64 (cos.f64 y) z) (if (<=.f64 x 1488565707357403/744282853678701455922507579277316643178128753343813693728245963960974631028119473486019635930893891134220822124816566203939432067701407744) (sin.f64 y) (if (<=.f64 x 37000000000000000268195545050678519665083819581738877278224384) (*.f64 (cos.f64 y) z) (+.f64 z x)))))))
(if (<=.f64 x -3706992666733213/842498333348457493583344221469363458551160763204392890034487820288) (+.f64 z x) (if (<=.f64 x 7942296627156717/1167984798111281975972139931059274579172666497855631342228273284582214442805421410945513679697247078343332431250840168271536308408672112127552681297848886832192510636636227827221215793215130566656) (+.f64 x (+.f64 y z)) (if (<=.f64 x 643259369036029/11090678776483259438313656736572334813745748301503266300681918322458485231222502492159897624416558312389564843845614287315896631296) (sin.f64 y) (+.f64 z x))))
(if (<=.f64 y -11000000000000000520924577529620218801984355866979074048) (+.f64 z x) (if (<=.f64 y 1000) (+.f64 x (+.f64 y z)) (+.f64 z x)))
(if (<=.f64 x -6628602150353253/33992831540273094316133645219357992149093959534530043084764424844825827831094543535306400144974674282808917087119776064982181077609773263322209278641061590524405201333465166018030600192) (+.f64 z x) (if (<=.f64 x 6400832541636833/2977131414714805823690030317109266572712515013375254774912983855843898524112477893944078543723575564536883288499266264815757728270805630976) (+.f64 y z) (+.f64 z x)))
(if (<=.f64 x -35681192317649/5575186299632655785383929568162090376495104) x (if (<=.f64 x 3200000000000000000000) (+.f64 y z) x))
(if (<=.f64 x -8474283175441637/11150372599265311570767859136324180752990208) x (if (<=.f64 x -3372088888795091/1087770609288739018116276647019455748771006705104961378712461595034426490595025393129804804639189577049885346787832834079429794483512744426310696916513970896780966442670885312576979206144) z (if (<=.f64 x -3184847909140617/10273702932711667006330058365000251299903007427389011444332579888806117488861485980690754953667164943802701111047223081470741078613640241920171513223929454785068796232672743355843093277117817807170494632296448) (+.f64 y x) (if (<=.f64 x 4500000000000000000000) z x))))
(if (<=.f64 x -3679622957757553/22300745198530623141535718272648361505980416) x (if (<=.f64 x 4700000000000000000000) z x))
(if (<=.f64 x -2447483870899663/543885304644369509058138323509727874385503352552480689356230797517213245297512696564902402319594788524942673393916417039714897241756372213155348458256985448390483221335442656288489603072) x (if (<=.f64 x 1619587123536109/82631996098781074868989413504096379978550585370535152410581099409300723904538918228148651304964410605948901503127919788032) y x))
x
Compiler

Compiled 302 to 170 computations (43.7% saved)

soundness217.0ms (1.6%)

Algorithm
egg-herbie
Rules
2166×rational.json-simplify-35
1778×rational.json-simplify-1
1258×rational.json-simplify-26
910×rational.json-simplify-2
654×rational.json-simplify-52
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01127
12027
23327
35127
48227
513827
629727
772227
8202227
9326127
10400427
11448027
12522727
13564127
14624527
15681627
Stop Event
node limit
Compiler

Compiled 30 to 11 computations (63.3% saved)

end89.0ms (0.7%)

Compiler

Compiled 266 to 109 computations (59% saved)

Profiling

Loading profile data...