Details

Time bar (total: 16.3s)

analyze817.0ms (5%)

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.6s (40.7%)

Results
2.9s2147×body1024valid
2.4s5079×body256valid
1.3s1029×body512valid
2.0msbody2048valid
Bogosity

preprocess152.0ms (0.9%)

Algorithm
egg-herbie
Rules
2522×rational.json-simplify-42
1858×rational.json-simplify-45
1718×rational.json-simplify-35
1012×rational.json-simplify-2
846×rational.json-simplify-48
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
024108
146108
269108
3105108
4185108
5335108
6804108
72051108
84417108
95365108
105768108
116239108
126542108
033
Stop Event
saturated
node limit
Calls
Call 1
Inputs
0
1
2
Outputs
0
1
2
Call 2
Inputs
(-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y)))
(-.f64 (*.f64 y (cos.f64 x)) (*.f64 z (sin.f64 x)))
(-.f64 (*.f64 z (cos.f64 y)) (*.f64 x (sin.f64 y)))
(-.f64 (*.f64 x (cos.f64 z)) (*.f64 y (sin.f64 z)))
Outputs
(-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y)))
(-.f64 (*.f64 y (cos.f64 x)) (*.f64 z (sin.f64 x)))
(-.f64 (*.f64 z (cos.f64 y)) (*.f64 x (sin.f64 y)))
(-.f64 (*.f64 (cos.f64 y) z) (*.f64 x (sin.f64 y)))
(-.f64 (*.f64 x (cos.f64 z)) (*.f64 y (sin.f64 z)))
Compiler

Compiled 15 to 11 computations (26.7% saved)

simplify178.0ms (1.1%)

Algorithm
egg-herbie
Rules
2186×rational.json-simplify-35
1772×rational.json-simplify-1
1260×rational.json-simplify-26
926×rational.json-simplify-2
678×rational.json-simplify-52
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01127
11927
22827
34227
47427
513427
629227
771927
8204427
9331227
10405827
11454127
12531127
13572927
14633727
15691227
Stop Event
node limit
Counts
1 → 1
Calls
Call 1
Inputs
(-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y)))
Outputs
(-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y)))

eval0.0ms (0%)

Compiler

Compiled 12 to 8 computations (33.3% saved)

prune1.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New011
Fresh011
Picked000
Done000
Total022
Error
0.1b
Counts
2 → 1
Alt Table
Click to see full alt table
StatusErrorProgram
0.1b
(-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.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
(-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y)))
0.0b
(sin.f64 y)
0.1b
(*.f64 x (cos.f64 y))
0.2b
(*.f64 z (sin.f64 y))
Compiler

Compiled 27 to 8 computations (70.4% saved)

series7.0ms (0%)

Counts
4 → 68
Calls

24 calls:

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

rewrite117.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
2030×bool.json-1
1046×bool.json-2
1012×rational.json-1
1012×rational.json-2
1012×rational.json-4
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01154
111254
231954
370154
4152354
5350154
6776654
Stop Event
node limit
Counts
4 → 81
Calls
Call 1
Inputs
(*.f64 z (sin.f64 y))
(*.f64 x (cos.f64 y))
(sin.f64 y)
(-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 z (sin.f64 y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 z (sin.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sin.f64 y) (*.f64 z 1/2)) (*.f64 (sin.f64 y) (*.f64 z 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 z (sin.f64 y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (sin.f64 y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 y) (+.f64 z z)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 y) (*.f64 z 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 z (sin.f64 y)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 z (sin.f64 y)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 z (sin.f64 y)) 8)) (*.f64 2 (*.f64 (*.f64 z (sin.f64 y)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 z (sin.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 z (sin.f64 y)) (*.f64 z (sin.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 z (sin.f64 y)) (*.f64 z (sin.f64 y)))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (cos.f64 y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 x (cos.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (cos.f64 y) (*.f64 x 1/2)) (*.f64 (cos.f64 y) (*.f64 x 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x (cos.f64 y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (cos.f64 y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (cos.f64 y) (+.f64 x x)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (cos.f64 y) (*.f64 x 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 x (cos.f64 y)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 x (cos.f64 y)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 x (cos.f64 y)) 8)) (*.f64 2 (*.f64 (*.f64 x (cos.f64 y)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 x (cos.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 x (cos.f64 y)) (*.f64 x (cos.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 x (cos.f64 y)) (*.f64 x (cos.f64 y)))))))
((#(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 (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 (sin.f64 y) 8) 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 (sin.f64 y) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (neg.f64 (sin.f64 y)) (neg.f64 (sin.f64 y))) -2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (sin.f64 y) 8)) (*.f64 2 (*.f64 (sin.f64 y) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (neg.f64 (sin.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x not (not (sin.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x and (sin.f64 y) (sin.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x or (sin.f64 y) (sin.f64 y))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (cos.f64 y)) (neg.f64 (*.f64 z (sin.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (+.f64 (*.f64 x (cos.f64 y)) (-.f64 1 (*.f64 z (sin.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 (*.f64 z (sin.f64 y))) (*.f64 x (cos.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (*.f64 x (cos.f64 y)) (-.f64 1 (*.f64 z (sin.f64 y)))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) 1/2) (*.f64 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (-.f64 (*.f64 z (sin.f64 y)) (*.f64 x (cos.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (-.f64 (*.f64 (cos.f64 y) (*.f64 x 1/2)) (*.f64 (sin.f64 y) (*.f64 z 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 z (sin.f64 y)) (*.f64 x (cos.f64 y))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (-.f64 (*.f64 (cos.f64 y) (+.f64 x x)) (*.f64 (sin.f64 y) (+.f64 z z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 z (sin.f64 y)) (*.f64 x (cos.f64 y))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (-.f64 (*.f64 z (sin.f64 y)) (*.f64 x (cos.f64 y)))) -2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (*.f64 z (sin.f64 y)) (*.f64 x (cos.f64 y))) 4) -4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 2 (-.f64 (*.f64 z (sin.f64 y)) (*.f64 x (cos.f64 y))))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) 8)) (*.f64 2 (*.f64 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (neg.f64 (*.f64 2 (-.f64 (*.f64 z (sin.f64 y)) (*.f64 x (cos.f64 y))))) (neg.f64 (*.f64 2 (-.f64 (*.f64 z (sin.f64 y)) (*.f64 x (cos.f64 y)))))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (-.f64 (*.f64 z (sin.f64 y)) (*.f64 x (cos.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x not (not (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x and (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x or (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))))))))

simplify653.0ms (4%)

Algorithm
egg-herbie
Rules
1990×rational.json-simplify-35
1206×rational.json-simplify-51
1158×rational.json-simplify-2
1076×rational.json-simplify-48
824×rational.json-simplify-49
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
02083049
14412807
210902789
325902759
452042759
559652759
675062759
Stop Event
node limit
Counts
149 → 140
Calls
Call 1
Inputs
(*.f64 y z)
(+.f64 (*.f64 -1/6 (*.f64 (pow.f64 y 3) z)) (*.f64 y z))
(+.f64 (*.f64 -1/6 (*.f64 (pow.f64 y 3) z)) (+.f64 (*.f64 y z) (*.f64 1/120 (*.f64 (pow.f64 y 5) z))))
(+.f64 (*.f64 -1/6 (*.f64 (pow.f64 y 3) z)) (+.f64 (*.f64 y z) (+.f64 (*.f64 -1/5040 (*.f64 (pow.f64 y 7) z)) (*.f64 1/120 (*.f64 (pow.f64 y 5) z)))))
(*.f64 (cos.f64 y) x)
(*.f64 (cos.f64 y) x)
(*.f64 (cos.f64 y) x)
(*.f64 (cos.f64 y) x)
(*.f64 (cos.f64 y) x)
(*.f64 (cos.f64 y) x)
(*.f64 (cos.f64 y) x)
(*.f64 (cos.f64 y) x)
(*.f64 (cos.f64 y) x)
(*.f64 (cos.f64 y) x)
(*.f64 (cos.f64 y) x)
(*.f64 (cos.f64 y) x)
x
(+.f64 (*.f64 -1/2 (*.f64 (pow.f64 y 2) x)) x)
(+.f64 (*.f64 1/24 (*.f64 (pow.f64 y 4) x)) (+.f64 (*.f64 -1/2 (*.f64 (pow.f64 y 2) x)) x))
(+.f64 (*.f64 -1/720 (*.f64 (pow.f64 y 6) x)) (+.f64 (*.f64 1/24 (*.f64 (pow.f64 y 4) x)) (+.f64 (*.f64 -1/2 (*.f64 (pow.f64 y 2) x)) x)))
(*.f64 (cos.f64 y) x)
(*.f64 (cos.f64 y) x)
(*.f64 (cos.f64 y) x)
(*.f64 (cos.f64 y) x)
(*.f64 (cos.f64 y) x)
(*.f64 (cos.f64 y) x)
(*.f64 (cos.f64 y) x)
(*.f64 (cos.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 -1 (*.f64 z (sin.f64 y)))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (*.f64 (cos.f64 y) x))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (*.f64 (cos.f64 y) x))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (*.f64 (cos.f64 y) x))
(*.f64 (cos.f64 y) x)
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (*.f64 (cos.f64 y) x))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (*.f64 (cos.f64 y) x))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (*.f64 (cos.f64 y) x))
(*.f64 (cos.f64 y) x)
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (*.f64 (cos.f64 y) x))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (*.f64 (cos.f64 y) x))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (*.f64 (cos.f64 y) x))
x
(+.f64 (*.f64 -1 (*.f64 y z)) x)
(+.f64 (*.f64 -1 (*.f64 y z)) (+.f64 (*.f64 -1/2 (*.f64 (pow.f64 y 2) x)) x))
(+.f64 (*.f64 -1 (*.f64 y z)) (+.f64 (*.f64 -1/2 (*.f64 (pow.f64 y 2) x)) (+.f64 (*.f64 1/6 (*.f64 (pow.f64 y 3) z)) x)))
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(*.f64 (cos.f64 y) x)
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (*.f64 (cos.f64 y) x))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (*.f64 (cos.f64 y) x))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (*.f64 (cos.f64 y) x))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (*.f64 (cos.f64 y) x))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (*.f64 (cos.f64 y) x))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (*.f64 (cos.f64 y) x))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (*.f64 (cos.f64 y) x))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (*.f64 (cos.f64 y) x))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (*.f64 (cos.f64 y) x))
(+.f64 (*.f64 z (sin.f64 y)) 0)
(+.f64 0 (*.f64 z (sin.f64 y)))
(+.f64 (*.f64 (sin.f64 y) (*.f64 z 1/2)) (*.f64 (sin.f64 y) (*.f64 z 1/2)))
(-.f64 (*.f64 z (sin.f64 y)) 0)
(/.f64 (*.f64 z (sin.f64 y)) 1)
(/.f64 (*.f64 (sin.f64 y) (+.f64 z z)) 2)
(/.f64 (*.f64 (sin.f64 y) (*.f64 z 4)) 4)
(/.f64 (*.f64 (*.f64 z (sin.f64 y)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 z (sin.f64 y)) 8)) 16)
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 z (sin.f64 y)) 8)) (*.f64 2 (*.f64 (*.f64 z (sin.f64 y)) 8))) 32)
(+.f64 (*.f64 x (cos.f64 y)) 0)
(+.f64 0 (*.f64 x (cos.f64 y)))
(+.f64 (*.f64 (cos.f64 y) (*.f64 x 1/2)) (*.f64 (cos.f64 y) (*.f64 x 1/2)))
(-.f64 (*.f64 x (cos.f64 y)) 0)
(/.f64 (*.f64 x (cos.f64 y)) 1)
(/.f64 (*.f64 (cos.f64 y) (+.f64 x x)) 2)
(/.f64 (*.f64 (cos.f64 y) (*.f64 x 4)) 4)
(/.f64 (*.f64 (*.f64 x (cos.f64 y)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 x (cos.f64 y)) 8)) 16)
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 x (cos.f64 y)) 8)) (*.f64 2 (*.f64 (*.f64 x (cos.f64 y)) 8))) 32)
(+.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 (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 (sin.f64 y) 8) 8)
(/.f64 (neg.f64 (sin.f64 y)) -1)
(/.f64 (*.f64 2 (*.f64 (sin.f64 y) 8)) 16)
(/.f64 (+.f64 (neg.f64 (sin.f64 y)) (neg.f64 (sin.f64 y))) -2)
(/.f64 (+.f64 (*.f64 2 (*.f64 (sin.f64 y) 8)) (*.f64 2 (*.f64 (sin.f64 y) 8))) 32)
(neg.f64 (neg.f64 (sin.f64 y)))
(+.f64 (*.f64 x (cos.f64 y)) (neg.f64 (*.f64 z (sin.f64 y))))
(+.f64 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) 0)
(+.f64 0 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))))
(+.f64 -1 (+.f64 (*.f64 x (cos.f64 y)) (-.f64 1 (*.f64 z (sin.f64 y)))))
(+.f64 (neg.f64 (*.f64 z (sin.f64 y))) (*.f64 x (cos.f64 y)))
(+.f64 (+.f64 (*.f64 x (cos.f64 y)) (-.f64 1 (*.f64 z (sin.f64 y)))) -1)
(+.f64 (*.f64 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) 1/2) (*.f64 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) 1/2))
(*.f64 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) 1)
(*.f64 1 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))))
(*.f64 -1 (-.f64 (*.f64 z (sin.f64 y)) (*.f64 x (cos.f64 y))))
(*.f64 2 (*.f64 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) 1/2))
(*.f64 2 (-.f64 (*.f64 (cos.f64 y) (*.f64 x 1/2)) (*.f64 (sin.f64 y) (*.f64 z 1/2))))
(*.f64 (*.f64 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) 2) 1/2)
(*.f64 (-.f64 (*.f64 z (sin.f64 y)) (*.f64 x (cos.f64 y))) -1)
(*.f64 4 (/.f64 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) 4))
(*.f64 (*.f64 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) 4) 1/4)
(*.f64 1/2 (*.f64 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) 2))
(*.f64 1/2 (-.f64 (*.f64 (cos.f64 y) (+.f64 x x)) (*.f64 (sin.f64 y) (+.f64 z z))))
(*.f64 (*.f64 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) 1/2) 2)
(*.f64 1/4 (*.f64 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) 4))
(*.f64 (/.f64 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) 4) 4)
(/.f64 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) 1)
(/.f64 (*.f64 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) 2) 2)
(/.f64 (-.f64 (*.f64 z (sin.f64 y)) (*.f64 x (cos.f64 y))) -1)
(/.f64 (*.f64 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) 4) 4)
(/.f64 (*.f64 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) 8) 8)
(/.f64 (*.f64 2 (-.f64 (*.f64 z (sin.f64 y)) (*.f64 x (cos.f64 y)))) -2)
(/.f64 (*.f64 2 (*.f64 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) 8)) 16)
(/.f64 (*.f64 (-.f64 (*.f64 z (sin.f64 y)) (*.f64 x (cos.f64 y))) 4) -4)
(/.f64 (neg.f64 (*.f64 2 (-.f64 (*.f64 z (sin.f64 y)) (*.f64 x (cos.f64 y))))) 2)
(/.f64 (+.f64 (*.f64 2 (*.f64 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) 8)) (*.f64 2 (*.f64 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) 8))) 32)
(/.f64 (+.f64 (neg.f64 (*.f64 2 (-.f64 (*.f64 z (sin.f64 y)) (*.f64 x (cos.f64 y))))) (neg.f64 (*.f64 2 (-.f64 (*.f64 z (sin.f64 y)) (*.f64 x (cos.f64 y)))))) 4)
(neg.f64 (-.f64 (*.f64 z (sin.f64 y)) (*.f64 x (cos.f64 y))))
Outputs
(*.f64 y z)
(+.f64 (*.f64 -1/6 (*.f64 (pow.f64 y 3) z)) (*.f64 y z))
(+.f64 (*.f64 y z) (*.f64 -1/6 (*.f64 z (pow.f64 y 3))))
(*.f64 z (+.f64 y (*.f64 -1/6 (pow.f64 y 3))))
(+.f64 (*.f64 -1/6 (*.f64 (pow.f64 y 3) z)) (+.f64 (*.f64 y z) (*.f64 1/120 (*.f64 (pow.f64 y 5) z))))
(+.f64 (*.f64 -1/6 (*.f64 z (pow.f64 y 3))) (+.f64 (*.f64 y z) (*.f64 (pow.f64 y 5) (*.f64 z 1/120))))
(+.f64 (*.f64 -1/6 (*.f64 z (pow.f64 y 3))) (+.f64 (*.f64 y z) (*.f64 1/120 (*.f64 z (pow.f64 y 5)))))
(+.f64 (*.f64 (pow.f64 y 3) (*.f64 z -1/6)) (*.f64 z (+.f64 y (*.f64 1/120 (pow.f64 y 5)))))
(*.f64 z (+.f64 y (+.f64 (*.f64 -1/6 (pow.f64 y 3)) (*.f64 1/120 (pow.f64 y 5)))))
(+.f64 (*.f64 -1/6 (*.f64 (pow.f64 y 3) z)) (+.f64 (*.f64 y z) (+.f64 (*.f64 -1/5040 (*.f64 (pow.f64 y 7) z)) (*.f64 1/120 (*.f64 (pow.f64 y 5) z)))))
(+.f64 (*.f64 y z) (+.f64 (+.f64 (*.f64 (pow.f64 y 5) (*.f64 z 1/120)) (*.f64 -1/5040 (*.f64 z (pow.f64 y 7)))) (*.f64 -1/6 (*.f64 z (pow.f64 y 3)))))
(+.f64 (*.f64 -1/6 (*.f64 z (pow.f64 y 3))) (+.f64 (*.f64 y z) (+.f64 (*.f64 1/120 (*.f64 z (pow.f64 y 5))) (*.f64 -1/5040 (*.f64 z (pow.f64 y 7))))))
(+.f64 (*.f64 (pow.f64 y 5) (*.f64 z 1/120)) (+.f64 (*.f64 z (+.f64 y (*.f64 -1/5040 (pow.f64 y 7)))) (*.f64 (pow.f64 y 3) (*.f64 z -1/6))))
(+.f64 (*.f64 z (*.f64 -1/6 (pow.f64 y 3))) (*.f64 z (+.f64 (*.f64 1/120 (pow.f64 y 5)) (+.f64 y (*.f64 -1/5040 (pow.f64 y 7))))))
(*.f64 (cos.f64 y) x)
(*.f64 (cos.f64 y) x)
(*.f64 (cos.f64 y) x)
(*.f64 (cos.f64 y) x)
(*.f64 (cos.f64 y) x)
(*.f64 (cos.f64 y) x)
(*.f64 (cos.f64 y) x)
(*.f64 (cos.f64 y) x)
(*.f64 (cos.f64 y) x)
(*.f64 (cos.f64 y) x)
(*.f64 (cos.f64 y) x)
(*.f64 (cos.f64 y) x)
x
(+.f64 (*.f64 -1/2 (*.f64 (pow.f64 y 2) x)) x)
(+.f64 x (*.f64 -1/2 (*.f64 x (pow.f64 y 2))))
(+.f64 x (*.f64 x (*.f64 (pow.f64 y 2) -1/2)))
(+.f64 x (*.f64 x (*.f64 -1/2 (pow.f64 y 2))))
(+.f64 (*.f64 1/24 (*.f64 (pow.f64 y 4) x)) (+.f64 (*.f64 -1/2 (*.f64 (pow.f64 y 2) x)) x))
(+.f64 (*.f64 -1/2 (*.f64 x (pow.f64 y 2))) (+.f64 x (*.f64 1/24 (*.f64 x (pow.f64 y 4)))))
(+.f64 x (+.f64 (*.f64 x (*.f64 (pow.f64 y 4) 1/24)) (*.f64 x (*.f64 (pow.f64 y 2) -1/2))))
(+.f64 (*.f64 x (*.f64 -1/2 (pow.f64 y 2))) (+.f64 x (*.f64 (pow.f64 y 4) (*.f64 x 1/24))))
(+.f64 x (*.f64 x (+.f64 (*.f64 1/24 (pow.f64 y 4)) (*.f64 -1/2 (pow.f64 y 2)))))
(+.f64 (*.f64 -1/720 (*.f64 (pow.f64 y 6) x)) (+.f64 (*.f64 1/24 (*.f64 (pow.f64 y 4) x)) (+.f64 (*.f64 -1/2 (*.f64 (pow.f64 y 2) x)) x)))
(+.f64 (*.f64 1/24 (*.f64 x (pow.f64 y 4))) (+.f64 (+.f64 x (*.f64 -1/2 (*.f64 x (pow.f64 y 2)))) (*.f64 -1/720 (*.f64 x (pow.f64 y 6)))))
(+.f64 (*.f64 x (*.f64 (pow.f64 y 2) -1/2)) (+.f64 (+.f64 x (*.f64 x (*.f64 (pow.f64 y 4) 1/24))) (*.f64 x (*.f64 (pow.f64 y 6) -1/720))))
(+.f64 (*.f64 x (*.f64 -1/2 (pow.f64 y 2))) (+.f64 (*.f64 x (*.f64 -1/720 (pow.f64 y 6))) (+.f64 x (*.f64 (pow.f64 y 4) (*.f64 x 1/24)))))
(+.f64 x (+.f64 (*.f64 x (+.f64 (*.f64 -1/720 (pow.f64 y 6)) (*.f64 -1/2 (pow.f64 y 2)))) (*.f64 x (*.f64 1/24 (pow.f64 y 4)))))
(*.f64 (cos.f64 y) x)
(*.f64 (cos.f64 y) x)
(*.f64 (cos.f64 y) x)
(*.f64 (cos.f64 y) x)
(*.f64 (cos.f64 y) x)
(*.f64 (cos.f64 y) x)
(*.f64 (cos.f64 y) x)
(*.f64 (cos.f64 y) x)
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/120 (pow.f64 y 5)) (+.f64 (+.f64 y (*.f64 -1/5040 (pow.f64 y 7))) (*.f64 -1/6 (pow.f64 y 3))))
(+.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)))))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(*.f64 z (sin.f64 (neg.f64 y)))
(*.f64 z (neg.f64 (sin.f64 y)))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (*.f64 (cos.f64 y) x))
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y))))
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (*.f64 (cos.f64 y) x))
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y))))
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (*.f64 (cos.f64 y) x))
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y))))
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(*.f64 (cos.f64 y) x)
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (*.f64 (cos.f64 y) x))
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y))))
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (*.f64 (cos.f64 y) x))
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y))))
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (*.f64 (cos.f64 y) x))
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y))))
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(*.f64 (cos.f64 y) x)
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (*.f64 (cos.f64 y) x))
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y))))
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (*.f64 (cos.f64 y) x))
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y))))
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (*.f64 (cos.f64 y) x))
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y))))
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
x
(+.f64 (*.f64 -1 (*.f64 y z)) x)
(+.f64 x (*.f64 y (*.f64 z -1)))
(+.f64 x (*.f64 y (neg.f64 z)))
(+.f64 (*.f64 -1 (*.f64 y z)) (+.f64 (*.f64 -1/2 (*.f64 (pow.f64 y 2) x)) x))
(+.f64 (*.f64 -1/2 (*.f64 x (pow.f64 y 2))) (+.f64 x (*.f64 y (*.f64 z -1))))
(+.f64 x (+.f64 (*.f64 x (*.f64 (pow.f64 y 2) -1/2)) (*.f64 y (neg.f64 z))))
(+.f64 x (+.f64 (*.f64 x (*.f64 -1/2 (pow.f64 y 2))) (*.f64 y (neg.f64 z))))
(+.f64 (*.f64 -1 (*.f64 y z)) (+.f64 (*.f64 -1/2 (*.f64 (pow.f64 y 2) x)) (+.f64 (*.f64 1/6 (*.f64 (pow.f64 y 3) z)) x)))
(+.f64 (*.f64 -1/2 (*.f64 x (pow.f64 y 2))) (+.f64 (+.f64 x (*.f64 (pow.f64 y 3) (*.f64 z 1/6))) (*.f64 y (*.f64 z -1))))
(+.f64 (*.f64 x (*.f64 (pow.f64 y 2) -1/2)) (+.f64 (*.f64 y (neg.f64 z)) (+.f64 x (*.f64 (pow.f64 y 3) (*.f64 z 1/6)))))
(+.f64 x (+.f64 (+.f64 (*.f64 x (*.f64 -1/2 (pow.f64 y 2))) (*.f64 (pow.f64 y 3) (*.f64 z 1/6))) (*.f64 y (neg.f64 z))))
(+.f64 x (+.f64 (*.f64 z (+.f64 (neg.f64 y) (*.f64 (pow.f64 y 3) 1/6))) (*.f64 x (*.f64 -1/2 (pow.f64 y 2)))))
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y))))
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y))))
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y))))
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y))))
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y))))
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y))))
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y))))
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y))))
(*.f64 (cos.f64 y) x)
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (*.f64 (cos.f64 y) x))
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y))))
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (*.f64 (cos.f64 y) x))
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y))))
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (*.f64 (cos.f64 y) x))
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y))))
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(*.f64 z (sin.f64 (neg.f64 y)))
(*.f64 z (neg.f64 (sin.f64 y)))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (*.f64 (cos.f64 y) x))
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y))))
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (*.f64 (cos.f64 y) x))
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y))))
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (*.f64 (cos.f64 y) x))
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y))))
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(*.f64 z (sin.f64 (neg.f64 y)))
(*.f64 z (neg.f64 (sin.f64 y)))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (*.f64 (cos.f64 y) x))
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y))))
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (*.f64 (cos.f64 y) x))
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y))))
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (*.f64 (cos.f64 y) x))
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y))))
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(+.f64 (*.f64 z (sin.f64 y)) 0)
(*.f64 z (sin.f64 y))
(+.f64 0 (*.f64 z (sin.f64 y)))
(*.f64 z (sin.f64 y))
(+.f64 (*.f64 (sin.f64 y) (*.f64 z 1/2)) (*.f64 (sin.f64 y) (*.f64 z 1/2)))
(*.f64 z (sin.f64 y))
(-.f64 (*.f64 z (sin.f64 y)) 0)
(*.f64 z (sin.f64 y))
(/.f64 (*.f64 z (sin.f64 y)) 1)
(*.f64 z (sin.f64 y))
(/.f64 (*.f64 (sin.f64 y) (+.f64 z z)) 2)
(*.f64 z (sin.f64 y))
(/.f64 (*.f64 (sin.f64 y) (*.f64 z 4)) 4)
(*.f64 z (sin.f64 y))
(/.f64 (*.f64 (*.f64 z (sin.f64 y)) 8) 8)
(*.f64 z (sin.f64 y))
(/.f64 (*.f64 2 (*.f64 (*.f64 z (sin.f64 y)) 8)) 16)
(*.f64 z (sin.f64 y))
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 z (sin.f64 y)) 8)) (*.f64 2 (*.f64 (*.f64 z (sin.f64 y)) 8))) 32)
(*.f64 z (sin.f64 y))
(+.f64 (*.f64 x (cos.f64 y)) 0)
(*.f64 (cos.f64 y) x)
(+.f64 0 (*.f64 x (cos.f64 y)))
(*.f64 (cos.f64 y) x)
(+.f64 (*.f64 (cos.f64 y) (*.f64 x 1/2)) (*.f64 (cos.f64 y) (*.f64 x 1/2)))
(*.f64 (cos.f64 y) x)
(-.f64 (*.f64 x (cos.f64 y)) 0)
(*.f64 (cos.f64 y) x)
(/.f64 (*.f64 x (cos.f64 y)) 1)
(*.f64 (cos.f64 y) x)
(/.f64 (*.f64 (cos.f64 y) (+.f64 x x)) 2)
(*.f64 (cos.f64 y) x)
(/.f64 (*.f64 (cos.f64 y) (*.f64 x 4)) 4)
(*.f64 (cos.f64 y) x)
(/.f64 (*.f64 (*.f64 x (cos.f64 y)) 8) 8)
(*.f64 (cos.f64 y) x)
(/.f64 (*.f64 2 (*.f64 (*.f64 x (cos.f64 y)) 8)) 16)
(*.f64 (cos.f64 y) x)
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 x (cos.f64 y)) 8)) (*.f64 2 (*.f64 (*.f64 x (cos.f64 y)) 8))) 32)
(*.f64 (cos.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 (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 (sin.f64 y) 8) 8)
(sin.f64 y)
(/.f64 (neg.f64 (sin.f64 y)) -1)
(sin.f64 y)
(/.f64 (*.f64 2 (*.f64 (sin.f64 y) 8)) 16)
(sin.f64 y)
(/.f64 (+.f64 (neg.f64 (sin.f64 y)) (neg.f64 (sin.f64 y))) -2)
(sin.f64 y)
(/.f64 (+.f64 (*.f64 2 (*.f64 (sin.f64 y) 8)) (*.f64 2 (*.f64 (sin.f64 y) 8))) 32)
(sin.f64 y)
(neg.f64 (neg.f64 (sin.f64 y)))
(sin.f64 y)
(+.f64 (*.f64 x (cos.f64 y)) (neg.f64 (*.f64 z (sin.f64 y))))
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y))))
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(+.f64 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) 0)
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y))))
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(+.f64 0 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))))
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y))))
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(+.f64 -1 (+.f64 (*.f64 x (cos.f64 y)) (-.f64 1 (*.f64 z (sin.f64 y)))))
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y))))
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(+.f64 (neg.f64 (*.f64 z (sin.f64 y))) (*.f64 x (cos.f64 y)))
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y))))
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(+.f64 (+.f64 (*.f64 x (cos.f64 y)) (-.f64 1 (*.f64 z (sin.f64 y)))) -1)
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y))))
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(+.f64 (*.f64 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) 1/2) (*.f64 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) 1/2))
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y))))
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(*.f64 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) 1)
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y))))
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(*.f64 1 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))))
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y))))
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(*.f64 -1 (-.f64 (*.f64 z (sin.f64 y)) (*.f64 x (cos.f64 y))))
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y))))
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(*.f64 2 (*.f64 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) 1/2))
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y))))
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(*.f64 2 (-.f64 (*.f64 (cos.f64 y) (*.f64 x 1/2)) (*.f64 (sin.f64 y) (*.f64 z 1/2))))
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y))))
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(*.f64 (*.f64 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) 2) 1/2)
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y))))
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(*.f64 (-.f64 (*.f64 z (sin.f64 y)) (*.f64 x (cos.f64 y))) -1)
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y))))
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(*.f64 4 (/.f64 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) 4))
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y))))
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(*.f64 (*.f64 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) 4) 1/4)
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y))))
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(*.f64 1/2 (*.f64 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) 2))
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y))))
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(*.f64 1/2 (-.f64 (*.f64 (cos.f64 y) (+.f64 x x)) (*.f64 (sin.f64 y) (+.f64 z z))))
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y))))
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(*.f64 (*.f64 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) 1/2) 2)
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y))))
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(*.f64 1/4 (*.f64 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) 4))
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y))))
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(*.f64 (/.f64 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) 4) 4)
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y))))
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(/.f64 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) 1)
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y))))
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(/.f64 (*.f64 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) 2) 2)
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y))))
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(/.f64 (-.f64 (*.f64 z (sin.f64 y)) (*.f64 x (cos.f64 y))) -1)
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y))))
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(/.f64 (*.f64 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) 4) 4)
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y))))
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(/.f64 (*.f64 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) 8) 8)
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y))))
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(/.f64 (*.f64 2 (-.f64 (*.f64 z (sin.f64 y)) (*.f64 x (cos.f64 y)))) -2)
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y))))
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(/.f64 (*.f64 2 (*.f64 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) 8)) 16)
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y))))
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(/.f64 (*.f64 (-.f64 (*.f64 z (sin.f64 y)) (*.f64 x (cos.f64 y))) 4) -4)
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y))))
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(/.f64 (neg.f64 (*.f64 2 (-.f64 (*.f64 z (sin.f64 y)) (*.f64 x (cos.f64 y))))) 2)
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y))))
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(/.f64 (+.f64 (*.f64 2 (*.f64 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) 8)) (*.f64 2 (*.f64 (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y))) 8))) 32)
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y))))
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(/.f64 (+.f64 (neg.f64 (*.f64 2 (-.f64 (*.f64 z (sin.f64 y)) (*.f64 x (cos.f64 y))))) (neg.f64 (*.f64 2 (-.f64 (*.f64 z (sin.f64 y)) (*.f64 x (cos.f64 y)))))) 4)
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y))))
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(neg.f64 (-.f64 (*.f64 z (sin.f64 y)) (*.f64 x (cos.f64 y))))
(+.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 (neg.f64 y))))
(-.f64 (*.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))

eval30.0ms (0.2%)

Compiler

Compiled 2174 to 1000 computations (54% saved)

prune24.0ms (0.1%)

Pruning

7 alts after pruning (6 fresh and 1 done)

PrunedKeptTotal
New1346140
Fresh000
Picked011
Done000
Total1347141
Error
0.1b
Counts
141 → 7
Alt Table
Click to see full alt table
StatusErrorProgram
7.8b
(-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (+.f64 (-.f64 1 (neg.f64 (sin.f64 y))) -1)))
0.1b
(-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y)))
23.4b
(-.f64 (*.f64 x (cos.f64 y)) (*.f64 z y))
16.7b
(-.f64 x (*.f64 z (sin.f64 y)))
35.5b
(+.f64 x (+.f64 (*.f64 x (*.f64 (pow.f64 y 2) -1/2)) (*.f64 y (neg.f64 z))))
34.2b
(+.f64 x (*.f64 y (neg.f64 z)))
36.9b
(*.f64 z (sin.f64 (neg.f64 y)))
Compiler

Compiled 154 to 108 computations (29.9% saved)

localize20.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(*.f64 x (cos.f64 y))
0.2b
(*.f64 z (+.f64 (-.f64 1 (neg.f64 (sin.f64 y))) -1))
0.5b
(-.f64 1 (neg.f64 (sin.f64 y)))
3.4b
(+.f64 (-.f64 1 (neg.f64 (sin.f64 y))) -1)
Compiler

Compiled 54 to 26 computations (51.9% saved)

series1.0ms (0%)

Counts
3 → 48
Calls

12 calls:

TimeVariablePointExpression
0.0ms
y
@0
(+.f64 (-.f64 1 (neg.f64 (sin.f64 y))) -1)
0.0ms
y
@0
(*.f64 z (+.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)))

rewrite365.0ms (2.2%)

Algorithm
batch-egg-rewrite
Rules
1190×bool.json-1
1190×bool.json-2
1148×rational.json-1
1148×rational.json-2
1148×rational.json-4
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01263
113147
236927
380327
4172127
5402627
Stop Event
node limit
Counts
3 → 101
Calls
Call 1
Inputs
(+.f64 (-.f64 1 (neg.f64 (sin.f64 y))) -1)
(-.f64 1 (neg.f64 (sin.f64 y)))
(*.f64 z (+.f64 (-.f64 1 (neg.f64 (sin.f64 y))) -1))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 1 (-.f64 1 (sin.f64 y)))))) (#(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 -1 (-.f64 -1 (sin.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (neg.f64 (sin.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 2 (-.f64 2 (sin.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 -2 (-.f64 -2 (sin.f64 y)))))) (#(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) -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 (-.f64 3 (neg.f64 (sin.f64 y))) 3)))) (#(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 4 (/.f64 (sin.f64 y) 4))))) (#(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 (*.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 (neg.f64 (*.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 1/4 (*.f64 (sin.f64 y) 4))))) (#(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 (*.f64 (sin.f64 y) -2)) 1/2)))) (#(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 2 (*.f64 (sin.f64 y) 4)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (sin.f64 y) -4)) -8)))) (#(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 (*.f64 2 (*.f64 (sin.f64 y) -4))) -16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 2 (*.f64 (sin.f64 y) 4))) -8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 (sin.f64 y) -2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 (sin.f64 y) -4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 2 (*.f64 (sin.f64 y) -4))) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (sin.f64 y) 4))) (*.f64 2 (*.f64 2 (*.f64 (sin.f64 y) 4)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (neg.f64 (*.f64 2 (*.f64 (sin.f64 y) 4))) (neg.f64 (*.f64 2 (*.f64 (sin.f64 y) 4)))) -16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (neg.f64 (*.f64 (sin.f64 y) -2)) (neg.f64 (*.f64 (sin.f64 y) -2))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (neg.f64 (*.f64 (sin.f64 y) -4)) (neg.f64 (*.f64 (sin.f64 y) -4))) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (neg.f64 (*.f64 2 (*.f64 (sin.f64 y) -4))) (neg.f64 (*.f64 2 (*.f64 (sin.f64 y) -4)))) 16)))) (#(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 (neg.f64 (+.f64 y (PI.f64))))))) (#(struct:change #<rule egg-rr> (2) ((x sin.f64 (-.f64 (-.f64 y (PI.f64)) (PI.f64)))))) (#(struct:change #<rule egg-rr> (2) ((x sin.f64 (-.f64 y (-.f64 (neg.f64 (PI.f64)) (PI.f64))))))) (#(struct:change #<rule egg-rr> (2) ((x sin.f64 (-.f64 (PI.f64) (-.f64 (-.f64 y (PI.f64)) (PI.f64))))))) (#(struct:change #<rule egg-rr> (2) ((x not (not (sin.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x and (sin.f64 y) (sin.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x or (sin.f64 y) (sin.f64 y))))))
((#(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 -1 (+.f64 (sin.f64 y) 2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (+.f64 1 (sin.f64 y)))))) (#(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 (neg.f64 (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 (+.f64 1 (sin.f64 y)) 1/2) (*.f64 (+.f64 1 (sin.f64 y)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 3 (neg.f64 (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)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 1 (sin.f64 y)) 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 1 (sin.f64 y)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 1 (sin.f64 y)) 1/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)) 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 1 (sin.f64 y)) 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 2 (*.f64 (+.f64 1 (sin.f64 y)) 4)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 -2 (*.f64 (sin.f64 y) -2)) -2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 1 (sin.f64 y)) 4))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (+.f64 -2 (*.f64 (sin.f64 y) -2))) -4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 -2 (*.f64 (sin.f64 y) -2))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 1 (sin.f64 y)) 4))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 1 (sin.f64 y)) 4)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (neg.f64 (+.f64 -2 (*.f64 (sin.f64 y) -2))) (neg.f64 (+.f64 -2 (*.f64 (sin.f64 y) -2)))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (-.f64 -1 (sin.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x not (not (+.f64 1 (sin.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x and (+.f64 1 (sin.f64 y)) (+.f64 1 (sin.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x or (+.f64 1 (sin.f64 y)) (+.f64 1 (sin.f64 y)))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sin.f64 y) z) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (sin.f64 y) z))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sin.f64 y) (*.f64 z 1/2)) (*.f64 (sin.f64 y) (*.f64 z 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (sin.f64 y) z) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 y) z) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 y) (+.f64 z z)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 y) (*.f64 z 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (sin.f64 y) (*.f64 z 4))) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (sin.f64 y) (*.f64 z 4)))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (sin.f64 y) (*.f64 z 4)))) (*.f64 2 (*.f64 2 (*.f64 (sin.f64 y) (*.f64 z 4))))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 (sin.f64 y) z)))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 (sin.f64 y) z) (*.f64 (sin.f64 y) z))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 (sin.f64 y) z) (*.f64 (sin.f64 y) z))))))

simplify389.0ms (2.4%)

Algorithm
egg-herbie
Rules
1838×rational.json-simplify-35
1032×rational.json-simplify-1
906×trig.json-simplify-16
846×rational.json-simplify-2
628×rational.json-simplify-52
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02191587
14671587
213641569
330391569
445291569
556241569
661251569
766591569
875281569
Stop Event
node limit
Counts
149 → 139
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 z (sin.f64 y))
(*.f64 z (sin.f64 y))
(*.f64 z (sin.f64 y))
(*.f64 z (sin.f64 y))
(*.f64 z (sin.f64 y))
(*.f64 z (sin.f64 y))
(*.f64 z (sin.f64 y))
(*.f64 z (sin.f64 y))
(*.f64 z (sin.f64 y))
(*.f64 z (sin.f64 y))
(*.f64 z (sin.f64 y))
(*.f64 z (sin.f64 y))
(*.f64 y z)
(+.f64 (*.f64 -1/6 (*.f64 (pow.f64 y 3) z)) (*.f64 y z))
(+.f64 (*.f64 -1/6 (*.f64 (pow.f64 y 3) z)) (+.f64 (*.f64 y z) (*.f64 1/120 (*.f64 (pow.f64 y 5) z))))
(+.f64 (*.f64 -1/6 (*.f64 (pow.f64 y 3) z)) (+.f64 (*.f64 y z) (+.f64 (*.f64 -1/5040 (*.f64 (pow.f64 y 7) z)) (*.f64 1/120 (*.f64 (pow.f64 y 5) z)))))
(*.f64 z (sin.f64 y))
(*.f64 z (sin.f64 y))
(*.f64 z (sin.f64 y))
(*.f64 z (sin.f64 y))
(*.f64 z (sin.f64 y))
(*.f64 z (sin.f64 y))
(*.f64 z (sin.f64 y))
(*.f64 z (sin.f64 y))
(-.f64 1 (-.f64 1 (sin.f64 y)))
(-.f64 (sin.f64 y) 0)
(-.f64 (+.f64 1 (sin.f64 y)) 1)
(-.f64 -1 (-.f64 -1 (sin.f64 y)))
(-.f64 0 (neg.f64 (sin.f64 y)))
(-.f64 2 (-.f64 2 (sin.f64 y)))
(-.f64 -2 (-.f64 -2 (sin.f64 y)))
(-.f64 (+.f64 (sin.f64 y) -1) -1)
(-.f64 (+.f64 (sin.f64 y) 2) 2)
(-.f64 (+.f64 (sin.f64 y) -2) -2)
(-.f64 (*.f64 (sin.f64 y) 1/2) (*.f64 (sin.f64 y) -1/2))
(-.f64 (-.f64 3 (neg.f64 (sin.f64 y))) 3)
(*.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 4 (/.f64 (sin.f64 y) 4))
(*.f64 -2 (*.f64 (sin.f64 y) -1/2))
(*.f64 (*.f64 (sin.f64 y) -2) -1/2)
(*.f64 (*.f64 (sin.f64 y) 4) 1/4)
(*.f64 1/2 (*.f64 (sin.f64 y) 2))
(*.f64 1/2 (neg.f64 (*.f64 (sin.f64 y) -2)))
(*.f64 -1/2 (*.f64 (sin.f64 y) -2))
(*.f64 (*.f64 (sin.f64 y) 1/2) 2)
(*.f64 1/4 (*.f64 (sin.f64 y) 4))
(*.f64 (*.f64 (sin.f64 y) -1/2) -2)
(*.f64 (neg.f64 (*.f64 (sin.f64 y) -2)) 1/2)
(*.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 2 (*.f64 (sin.f64 y) 4)) 8)
(/.f64 (*.f64 2 (*.f64 (sin.f64 y) -4)) -8)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (sin.f64 y) 4))) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (sin.f64 y) -4))) -16)
(/.f64 (neg.f64 (*.f64 2 (*.f64 (sin.f64 y) 4))) -8)
(/.f64 (neg.f64 (*.f64 (sin.f64 y) -2)) 2)
(/.f64 (neg.f64 (*.f64 (sin.f64 y) -4)) 4)
(/.f64 (neg.f64 (*.f64 2 (*.f64 (sin.f64 y) -4))) 8)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (sin.f64 y) 4))) (*.f64 2 (*.f64 2 (*.f64 (sin.f64 y) 4)))) 32)
(/.f64 (+.f64 (neg.f64 (*.f64 2 (*.f64 (sin.f64 y) 4))) (neg.f64 (*.f64 2 (*.f64 (sin.f64 y) 4)))) -16)
(/.f64 (+.f64 (neg.f64 (*.f64 (sin.f64 y) -2)) (neg.f64 (*.f64 (sin.f64 y) -2))) 4)
(/.f64 (+.f64 (neg.f64 (*.f64 (sin.f64 y) -4)) (neg.f64 (*.f64 (sin.f64 y) -4))) 8)
(/.f64 (+.f64 (neg.f64 (*.f64 2 (*.f64 (sin.f64 y) -4))) (neg.f64 (*.f64 2 (*.f64 (sin.f64 y) -4)))) 16)
(neg.f64 (neg.f64 (sin.f64 y)))
(sin.f64 y)
(sin.f64 (-.f64 (PI.f64) y))
(sin.f64 (neg.f64 (+.f64 y (PI.f64))))
(sin.f64 (-.f64 (-.f64 y (PI.f64)) (PI.f64)))
(sin.f64 (-.f64 y (-.f64 (neg.f64 (PI.f64)) (PI.f64))))
(sin.f64 (-.f64 (PI.f64) (-.f64 (-.f64 y (PI.f64)) (PI.f64))))
(+.f64 1 (sin.f64 y))
(+.f64 (sin.f64 y) 1)
(+.f64 (+.f64 1 (sin.f64 y)) 0)
(+.f64 -1 (+.f64 (sin.f64 y) 2))
(+.f64 0 (+.f64 1 (sin.f64 y)))
(+.f64 2 (+.f64 (sin.f64 y) -1))
(+.f64 -2 (-.f64 3 (neg.f64 (sin.f64 y))))
(+.f64 (+.f64 (sin.f64 y) -1) 2)
(+.f64 (+.f64 (sin.f64 y) 2) -1)
(+.f64 (*.f64 (+.f64 1 (sin.f64 y)) 1/2) (*.f64 (+.f64 1 (sin.f64 y)) 1/2))
(+.f64 (-.f64 3 (neg.f64 (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)) 1/2))
(*.f64 (*.f64 (+.f64 1 (sin.f64 y)) 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 1 (sin.f64 y)) 2))
(*.f64 (*.f64 (+.f64 1 (sin.f64 y)) 1/2) 2)
(*.f64 1/4 (*.f64 (+.f64 1 (sin.f64 y)) 4))
(*.f64 (/.f64 (+.f64 1 (sin.f64 y)) 4) 4)
(/.f64 (+.f64 1 (sin.f64 y)) 1)
(/.f64 (*.f64 (+.f64 1 (sin.f64 y)) 2) 2)
(/.f64 (-.f64 -1 (sin.f64 y)) -1)
(/.f64 (*.f64 (+.f64 1 (sin.f64 y)) 4) 4)
(/.f64 (*.f64 2 (*.f64 (+.f64 1 (sin.f64 y)) 4)) 8)
(/.f64 (+.f64 -2 (*.f64 (sin.f64 y) -2)) -2)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 1 (sin.f64 y)) 4))) 16)
(/.f64 (*.f64 2 (+.f64 -2 (*.f64 (sin.f64 y) -2))) -4)
(/.f64 (neg.f64 (+.f64 -2 (*.f64 (sin.f64 y) -2))) 2)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 1 (sin.f64 y)) 4))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 1 (sin.f64 y)) 4)))) 32)
(/.f64 (+.f64 (neg.f64 (+.f64 -2 (*.f64 (sin.f64 y) -2))) (neg.f64 (+.f64 -2 (*.f64 (sin.f64 y) -2)))) 4)
(neg.f64 (-.f64 -1 (sin.f64 y)))
(+.f64 (*.f64 (sin.f64 y) z) 0)
(+.f64 0 (*.f64 (sin.f64 y) z))
(+.f64 (*.f64 (sin.f64 y) (*.f64 z 1/2)) (*.f64 (sin.f64 y) (*.f64 z 1/2)))
(-.f64 (*.f64 (sin.f64 y) z) 0)
(/.f64 (*.f64 (sin.f64 y) z) 1)
(/.f64 (*.f64 (sin.f64 y) (+.f64 z z)) 2)
(/.f64 (*.f64 (sin.f64 y) (*.f64 z 4)) 4)
(/.f64 (*.f64 2 (*.f64 (sin.f64 y) (*.f64 z 4))) 8)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (sin.f64 y) (*.f64 z 4)))) 16)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (sin.f64 y) (*.f64 z 4)))) (*.f64 2 (*.f64 2 (*.f64 (sin.f64 y) (*.f64 z 4))))) 32)
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 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 (*.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 (+.f64 y (*.f64 1/120 (pow.f64 y 5))) 1))
(+.f64 (*.f64 -1/6 (pow.f64 y 3)) (+.f64 (*.f64 1/120 (pow.f64 y 5)) (+.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 (sin.f64 y))
(+.f64 (sin.f64 y) 1)
(*.f64 z (sin.f64 y))
(*.f64 (sin.f64 y) z)
(*.f64 z (sin.f64 y))
(*.f64 (sin.f64 y) z)
(*.f64 z (sin.f64 y))
(*.f64 (sin.f64 y) z)
(*.f64 z (sin.f64 y))
(*.f64 (sin.f64 y) z)
(*.f64 z (sin.f64 y))
(*.f64 (sin.f64 y) z)
(*.f64 z (sin.f64 y))
(*.f64 (sin.f64 y) z)
(*.f64 z (sin.f64 y))
(*.f64 (sin.f64 y) z)
(*.f64 z (sin.f64 y))
(*.f64 (sin.f64 y) z)
(*.f64 z (sin.f64 y))
(*.f64 (sin.f64 y) z)
(*.f64 z (sin.f64 y))
(*.f64 (sin.f64 y) z)
(*.f64 z (sin.f64 y))
(*.f64 (sin.f64 y) z)
(*.f64 z (sin.f64 y))
(*.f64 (sin.f64 y) z)
(*.f64 y z)
(+.f64 (*.f64 -1/6 (*.f64 (pow.f64 y 3) z)) (*.f64 y z))
(+.f64 (*.f64 y z) (*.f64 -1/6 (*.f64 (pow.f64 y 3) z)))
(*.f64 z (+.f64 y (*.f64 -1/6 (pow.f64 y 3))))
(*.f64 (+.f64 y (*.f64 -1/6 (pow.f64 y 3))) z)
(+.f64 (*.f64 -1/6 (*.f64 (pow.f64 y 3) z)) (+.f64 (*.f64 y z) (*.f64 1/120 (*.f64 (pow.f64 y 5) z))))
(+.f64 (*.f64 y z) (+.f64 (*.f64 1/120 (*.f64 (pow.f64 y 5) z)) (*.f64 -1/6 (*.f64 (pow.f64 y 3) z))))
(+.f64 (*.f64 y z) (+.f64 (*.f64 -1/6 (*.f64 (pow.f64 y 3) z)) (*.f64 1/120 (*.f64 (pow.f64 y 5) z))))
(+.f64 (*.f64 -1/6 (*.f64 (pow.f64 y 3) z)) (*.f64 z (+.f64 y (*.f64 1/120 (pow.f64 y 5)))))
(+.f64 (*.f64 -1/6 (*.f64 (pow.f64 y 3) z)) (*.f64 (+.f64 y (*.f64 1/120 (pow.f64 y 5))) z))
(+.f64 (*.f64 -1/6 (*.f64 (pow.f64 y 3) z)) (+.f64 (*.f64 y z) (+.f64 (*.f64 -1/5040 (*.f64 (pow.f64 y 7) z)) (*.f64 1/120 (*.f64 (pow.f64 y 5) z)))))
(+.f64 (*.f64 y z) (+.f64 (+.f64 (*.f64 1/120 (*.f64 (pow.f64 y 5) z)) (*.f64 -1/5040 (*.f64 (pow.f64 y 7) z))) (*.f64 -1/6 (*.f64 (pow.f64 y 3) z))))
(+.f64 (*.f64 y z) (+.f64 (*.f64 -1/6 (*.f64 (pow.f64 y 3) z)) (+.f64 (*.f64 1/120 (*.f64 (pow.f64 y 5) z)) (*.f64 -1/5040 (*.f64 (pow.f64 y 7) z)))))
(+.f64 (*.f64 (pow.f64 y 5) (*.f64 1/120 z)) (+.f64 (*.f64 z (+.f64 y (*.f64 -1/5040 (pow.f64 y 7)))) (*.f64 -1/6 (*.f64 (pow.f64 y 3) z))))
(+.f64 (*.f64 (pow.f64 y 5) (*.f64 1/120 z)) (+.f64 (*.f64 -1/6 (*.f64 (pow.f64 y 3) z)) (*.f64 (+.f64 y (*.f64 -1/5040 (pow.f64 y 7))) z)))
(+.f64 (*.f64 -1/6 (*.f64 (pow.f64 y 3) z)) (+.f64 (*.f64 1/120 (*.f64 (pow.f64 y 5) z)) (*.f64 (+.f64 y (*.f64 -1/5040 (pow.f64 y 7))) z)))
(*.f64 z (sin.f64 y))
(*.f64 (sin.f64 y) z)
(*.f64 z (sin.f64 y))
(*.f64 (sin.f64 y) z)
(*.f64 z (sin.f64 y))
(*.f64 (sin.f64 y) z)
(*.f64 z (sin.f64 y))
(*.f64 (sin.f64 y) z)
(*.f64 z (sin.f64 y))
(*.f64 (sin.f64 y) z)
(*.f64 z (sin.f64 y))
(*.f64 (sin.f64 y) z)
(*.f64 z (sin.f64 y))
(*.f64 (sin.f64 y) z)
(*.f64 z (sin.f64 y))
(*.f64 (sin.f64 y) z)
(-.f64 1 (-.f64 1 (sin.f64 y)))
(sin.f64 y)
(-.f64 (sin.f64 y) 0)
(sin.f64 y)
(-.f64 (+.f64 1 (sin.f64 y)) 1)
(sin.f64 y)
(-.f64 -1 (-.f64 -1 (sin.f64 y)))
(sin.f64 y)
(-.f64 0 (neg.f64 (sin.f64 y)))
(sin.f64 y)
(-.f64 2 (-.f64 2 (sin.f64 y)))
(sin.f64 y)
(-.f64 -2 (-.f64 -2 (sin.f64 y)))
(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) -2) -2)
(sin.f64 y)
(-.f64 (*.f64 (sin.f64 y) 1/2) (*.f64 (sin.f64 y) -1/2))
(sin.f64 y)
(-.f64 (-.f64 3 (neg.f64 (sin.f64 y))) 3)
(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 4 (/.f64 (sin.f64 y) 4))
(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 (*.f64 (sin.f64 y) 4) 1/4)
(sin.f64 y)
(*.f64 1/2 (*.f64 (sin.f64 y) 2))
(sin.f64 y)
(*.f64 1/2 (neg.f64 (*.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 1/4 (*.f64 (sin.f64 y) 4))
(sin.f64 y)
(*.f64 (*.f64 (sin.f64 y) -1/2) -2)
(sin.f64 y)
(*.f64 (neg.f64 (*.f64 (sin.f64 y) -2)) 1/2)
(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 2 (*.f64 (sin.f64 y) 4)) 8)
(sin.f64 y)
(/.f64 (*.f64 2 (*.f64 (sin.f64 y) -4)) -8)
(sin.f64 y)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (sin.f64 y) 4))) 16)
(sin.f64 y)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (sin.f64 y) -4))) -16)
(sin.f64 y)
(/.f64 (neg.f64 (*.f64 2 (*.f64 (sin.f64 y) 4))) -8)
(sin.f64 y)
(/.f64 (neg.f64 (*.f64 (sin.f64 y) -2)) 2)
(sin.f64 y)
(/.f64 (neg.f64 (*.f64 (sin.f64 y) -4)) 4)
(sin.f64 y)
(/.f64 (neg.f64 (*.f64 2 (*.f64 (sin.f64 y) -4))) 8)
(sin.f64 y)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (sin.f64 y) 4))) (*.f64 2 (*.f64 2 (*.f64 (sin.f64 y) 4)))) 32)
(sin.f64 y)
(/.f64 (+.f64 (neg.f64 (*.f64 2 (*.f64 (sin.f64 y) 4))) (neg.f64 (*.f64 2 (*.f64 (sin.f64 y) 4)))) -16)
(sin.f64 y)
(/.f64 (+.f64 (neg.f64 (*.f64 (sin.f64 y) -2)) (neg.f64 (*.f64 (sin.f64 y) -2))) 4)
(sin.f64 y)
(/.f64 (+.f64 (neg.f64 (*.f64 (sin.f64 y) -4)) (neg.f64 (*.f64 (sin.f64 y) -4))) 8)
(sin.f64 y)
(/.f64 (+.f64 (neg.f64 (*.f64 2 (*.f64 (sin.f64 y) -4))) (neg.f64 (*.f64 2 (*.f64 (sin.f64 y) -4)))) 16)
(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 (neg.f64 (+.f64 y (PI.f64))))
(neg.f64 (sin.f64 (+.f64 y (PI.f64))))
(sin.f64 (-.f64 (-.f64 y (PI.f64)) (PI.f64)))
(sin.f64 (-.f64 y (-.f64 (neg.f64 (PI.f64)) (PI.f64))))
(neg.f64 (sin.f64 (+.f64 y (PI.f64))))
(sin.f64 (-.f64 (PI.f64) (-.f64 (-.f64 y (PI.f64)) (PI.f64))))
(sin.f64 (-.f64 (-.f64 y (PI.f64)) (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 -1 (+.f64 (sin.f64 y) 2))
(+.f64 (sin.f64 y) 1)
(+.f64 0 (+.f64 1 (sin.f64 y)))
(+.f64 (sin.f64 y) 1)
(+.f64 2 (+.f64 (sin.f64 y) -1))
(+.f64 (sin.f64 y) 1)
(+.f64 -2 (-.f64 3 (neg.f64 (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 (+.f64 1 (sin.f64 y)) 1/2) (*.f64 (+.f64 1 (sin.f64 y)) 1/2))
(+.f64 (sin.f64 y) 1)
(+.f64 (-.f64 3 (neg.f64 (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)) 1/2))
(+.f64 (sin.f64 y) 1)
(*.f64 (*.f64 (+.f64 1 (sin.f64 y)) 2) 1/2)
(+.f64 (sin.f64 y) 1)
(*.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 1 (sin.f64 y)) 2))
(+.f64 (sin.f64 y) 1)
(*.f64 (*.f64 (+.f64 1 (sin.f64 y)) 1/2) 2)
(+.f64 (sin.f64 y) 1)
(*.f64 1/4 (*.f64 (+.f64 1 (sin.f64 y)) 4))
(+.f64 (sin.f64 y) 1)
(*.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 1 (sin.f64 y)) 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 2 (*.f64 (+.f64 1 (sin.f64 y)) 4)) 8)
(+.f64 (sin.f64 y) 1)
(/.f64 (+.f64 -2 (*.f64 (sin.f64 y) -2)) -2)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 1 (sin.f64 y)) 4))) 16)
(+.f64 (sin.f64 y) 1)
(/.f64 (*.f64 2 (+.f64 -2 (*.f64 (sin.f64 y) -2))) -4)
(*.f64 (+.f64 -2 (*.f64 (sin.f64 y) -2)) -1/2)
(*.f64 -1/2 (+.f64 -2 (*.f64 (sin.f64 y) -2)))
(/.f64 (neg.f64 (+.f64 -2 (*.f64 (sin.f64 y) -2))) 2)
(/.f64 (+.f64 -2 (*.f64 (sin.f64 y) -2)) -2)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 1 (sin.f64 y)) 4))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 1 (sin.f64 y)) 4)))) 32)
(+.f64 (sin.f64 y) 1)
(/.f64 (+.f64 (neg.f64 (+.f64 -2 (*.f64 (sin.f64 y) -2))) (neg.f64 (+.f64 -2 (*.f64 (sin.f64 y) -2)))) 4)
(/.f64 (+.f64 -2 (*.f64 (sin.f64 y) -2)) -2)
(neg.f64 (-.f64 -1 (sin.f64 y)))
(+.f64 (sin.f64 y) 1)
(+.f64 (*.f64 (sin.f64 y) z) 0)
(*.f64 (sin.f64 y) z)
(+.f64 0 (*.f64 (sin.f64 y) z))
(*.f64 (sin.f64 y) z)
(+.f64 (*.f64 (sin.f64 y) (*.f64 z 1/2)) (*.f64 (sin.f64 y) (*.f64 z 1/2)))
(*.f64 (sin.f64 y) z)
(-.f64 (*.f64 (sin.f64 y) z) 0)
(*.f64 (sin.f64 y) z)
(/.f64 (*.f64 (sin.f64 y) z) 1)
(*.f64 (sin.f64 y) z)
(/.f64 (*.f64 (sin.f64 y) (+.f64 z z)) 2)
(*.f64 (sin.f64 y) z)
(/.f64 (*.f64 (sin.f64 y) (*.f64 z 4)) 4)
(*.f64 (sin.f64 y) z)
(/.f64 (*.f64 2 (*.f64 (sin.f64 y) (*.f64 z 4))) 8)
(*.f64 (sin.f64 y) z)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (sin.f64 y) (*.f64 z 4)))) 16)
(*.f64 (sin.f64 y) z)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (sin.f64 y) (*.f64 z 4)))) (*.f64 2 (*.f64 2 (*.f64 (sin.f64 y) (*.f64 z 4))))) 32)
(*.f64 (sin.f64 y) z)

localize64.0ms (0.4%)

Local error

Found 1 expressions with local error:

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

Compiled 18 to 6 computations (66.7% saved)

series3.0ms (0%)

Counts
1 → 36
Calls

9 calls:

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

rewrite229.0ms (1.4%)

Algorithm
batch-egg-rewrite
Rules
1518×bool.json-1
1518×bool.json-2
1464×rational.json-1
1464×rational.json-2
1464×rational.json-4
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0917
19217
225617
355517
4120717
5276817
6578917
Stop Event
node limit
Counts
1 → 21
Calls
Call 1
Inputs
(+.f64 x (*.f64 y (neg.f64 z)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 x (*.f64 y (neg.f64 z))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x (*.f64 y (neg.f64 z))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 x (*.f64 y (neg.f64 z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 x (*.f64 y (neg.f64 z))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 y (*.f64 z -1/2)) (*.f64 x 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 x 1/2) (*.f64 y (*.f64 z -1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x (*.f64 y (neg.f64 z))) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (+.f64 x (*.f64 y (neg.f64 z))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x (*.f64 y (neg.f64 z))) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (+.f64 x (*.f64 y (neg.f64 z))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 y (*.f64 z -2)) (+.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (+.f64 x x) (*.f64 y (*.f64 z -2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x (*.f64 y (neg.f64 z))) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 x (*.f64 y (neg.f64 z))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 x (*.f64 y (neg.f64 z))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 x (*.f64 y (neg.f64 z))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x (*.f64 y (neg.f64 z))) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x (*.f64 y (neg.f64 z))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x (*.f64 y (neg.f64 z))) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 x (*.f64 y (neg.f64 z))) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 x (*.f64 y (neg.f64 z))) 8)) (*.f64 2 (*.f64 (+.f64 x (*.f64 y (neg.f64 z))) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (+.f64 x (*.f64 y (neg.f64 z)))))))) (#(struct:change #<rule egg-rr> (2) ((x and (+.f64 x (*.f64 y (neg.f64 z))) (+.f64 x (*.f64 y (neg.f64 z))))))) (#(struct:change #<rule egg-rr> (2) ((x or (+.f64 x (*.f64 y (neg.f64 z))) (+.f64 x (*.f64 y (neg.f64 z))))))))

simplify535.0ms (3.3%)

Algorithm
egg-herbie
Rules
3362×rational.json-simplify-48
3116×rational.json-simplify-1
1518×rational.json-simplify-35
1232×rational.json-simplify-2
1054×rational.json-simplify-49
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
062903
1121903
2294903
3666903
41053903
52430903
63294903
73445903
83626903
94007903
104364903
114514903
124610903
134653903
144692903
154731903
164770903
174809903
184871903
195665903
205719903
215768903
226307903
236448903
247031903
257817903
Stop Event
node limit
Counts
57 → 29
Calls
Call 1
Inputs
(*.f64 -1 (*.f64 y z))
(+.f64 (*.f64 -1 (*.f64 y z)) x)
(+.f64 (*.f64 -1 (*.f64 y z)) x)
(+.f64 (*.f64 -1 (*.f64 y z)) x)
x
(+.f64 (*.f64 -1 (*.f64 y z)) x)
(+.f64 (*.f64 -1 (*.f64 y z)) x)
(+.f64 (*.f64 -1 (*.f64 y z)) x)
x
(+.f64 (*.f64 -1 (*.f64 y z)) x)
(+.f64 (*.f64 -1 (*.f64 y z)) x)
(+.f64 (*.f64 -1 (*.f64 y z)) x)
x
(+.f64 (*.f64 -1 (*.f64 y z)) x)
(+.f64 (*.f64 -1 (*.f64 y z)) x)
(+.f64 (*.f64 -1 (*.f64 y z)) x)
(*.f64 -1 (*.f64 y z))
(+.f64 (*.f64 -1 (*.f64 y z)) x)
(+.f64 (*.f64 -1 (*.f64 y z)) x)
(+.f64 (*.f64 -1 (*.f64 y z)) x)
(*.f64 -1 (*.f64 y z))
(+.f64 (*.f64 -1 (*.f64 y z)) x)
(+.f64 (*.f64 -1 (*.f64 y z)) x)
(+.f64 (*.f64 -1 (*.f64 y z)) x)
x
(+.f64 (*.f64 -1 (*.f64 y z)) x)
(+.f64 (*.f64 -1 (*.f64 y z)) x)
(+.f64 (*.f64 -1 (*.f64 y z)) x)
(*.f64 -1 (*.f64 y z))
(+.f64 (*.f64 -1 (*.f64 y z)) x)
(+.f64 (*.f64 -1 (*.f64 y z)) x)
(+.f64 (*.f64 -1 (*.f64 y z)) x)
(*.f64 -1 (*.f64 y z))
(+.f64 (*.f64 -1 (*.f64 y z)) x)
(+.f64 (*.f64 -1 (*.f64 y z)) x)
(+.f64 (*.f64 -1 (*.f64 y z)) x)
(-.f64 (+.f64 x (*.f64 y (neg.f64 z))) 0)
(*.f64 (+.f64 x (*.f64 y (neg.f64 z))) 1)
(*.f64 1 (+.f64 x (*.f64 y (neg.f64 z))))
(*.f64 2 (*.f64 (+.f64 x (*.f64 y (neg.f64 z))) 1/2))
(*.f64 2 (+.f64 (*.f64 y (*.f64 z -1/2)) (*.f64 x 1/2)))
(*.f64 2 (+.f64 (*.f64 x 1/2) (*.f64 y (*.f64 z -1/2))))
(*.f64 (*.f64 (+.f64 x (*.f64 y (neg.f64 z))) 2) 1/2)
(*.f64 4 (/.f64 (+.f64 x (*.f64 y (neg.f64 z))) 4))
(*.f64 (*.f64 (+.f64 x (*.f64 y (neg.f64 z))) 4) 1/4)
(*.f64 1/2 (*.f64 (+.f64 x (*.f64 y (neg.f64 z))) 2))
(*.f64 1/2 (+.f64 (*.f64 y (*.f64 z -2)) (+.f64 x x)))
(*.f64 1/2 (+.f64 (+.f64 x x) (*.f64 y (*.f64 z -2))))
(*.f64 (*.f64 (+.f64 x (*.f64 y (neg.f64 z))) 1/2) 2)
(*.f64 1/4 (*.f64 (+.f64 x (*.f64 y (neg.f64 z))) 4))
(*.f64 (/.f64 (+.f64 x (*.f64 y (neg.f64 z))) 4) 4)
(/.f64 (+.f64 x (*.f64 y (neg.f64 z))) 1)
(/.f64 (*.f64 (+.f64 x (*.f64 y (neg.f64 z))) 2) 2)
(/.f64 (*.f64 (+.f64 x (*.f64 y (neg.f64 z))) 4) 4)
(/.f64 (*.f64 (+.f64 x (*.f64 y (neg.f64 z))) 8) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 x (*.f64 y (neg.f64 z))) 8)) 16)
(/.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 x (*.f64 y (neg.f64 z))) 8)) (*.f64 2 (*.f64 (+.f64 x (*.f64 y (neg.f64 z))) 8))) 32)
Outputs
(*.f64 -1 (*.f64 y z))
(*.f64 y (neg.f64 z))
(neg.f64 (*.f64 y z))
(+.f64 (*.f64 -1 (*.f64 y z)) x)
(+.f64 (*.f64 y (neg.f64 z)) x)
(+.f64 (neg.f64 (*.f64 y z)) x)
(+.f64 (*.f64 -1 (*.f64 y z)) x)
(+.f64 (*.f64 y (neg.f64 z)) x)
(+.f64 (neg.f64 (*.f64 y z)) x)
(+.f64 (*.f64 -1 (*.f64 y z)) x)
(+.f64 (*.f64 y (neg.f64 z)) x)
(+.f64 (neg.f64 (*.f64 y z)) x)
x
(+.f64 (*.f64 -1 (*.f64 y z)) x)
(+.f64 (*.f64 y (neg.f64 z)) x)
(+.f64 (neg.f64 (*.f64 y z)) x)
(+.f64 (*.f64 -1 (*.f64 y z)) x)
(+.f64 (*.f64 y (neg.f64 z)) x)
(+.f64 (neg.f64 (*.f64 y z)) x)
(+.f64 (*.f64 -1 (*.f64 y z)) x)
(+.f64 (*.f64 y (neg.f64 z)) x)
(+.f64 (neg.f64 (*.f64 y z)) x)
x
(+.f64 (*.f64 -1 (*.f64 y z)) x)
(+.f64 (*.f64 y (neg.f64 z)) x)
(+.f64 (neg.f64 (*.f64 y z)) x)
(+.f64 (*.f64 -1 (*.f64 y z)) x)
(+.f64 (*.f64 y (neg.f64 z)) x)
(+.f64 (neg.f64 (*.f64 y z)) x)
(+.f64 (*.f64 -1 (*.f64 y z)) x)
(+.f64 (*.f64 y (neg.f64 z)) x)
(+.f64 (neg.f64 (*.f64 y z)) x)
x
(+.f64 (*.f64 -1 (*.f64 y z)) x)
(+.f64 (*.f64 y (neg.f64 z)) x)
(+.f64 (neg.f64 (*.f64 y z)) x)
(+.f64 (*.f64 -1 (*.f64 y z)) x)
(+.f64 (*.f64 y (neg.f64 z)) x)
(+.f64 (neg.f64 (*.f64 y z)) x)
(+.f64 (*.f64 -1 (*.f64 y z)) x)
(+.f64 (*.f64 y (neg.f64 z)) x)
(+.f64 (neg.f64 (*.f64 y z)) x)
(*.f64 -1 (*.f64 y z))
(*.f64 y (neg.f64 z))
(neg.f64 (*.f64 y z))
(+.f64 (*.f64 -1 (*.f64 y z)) x)
(+.f64 (*.f64 y (neg.f64 z)) x)
(+.f64 (neg.f64 (*.f64 y z)) x)
(+.f64 (*.f64 -1 (*.f64 y z)) x)
(+.f64 (*.f64 y (neg.f64 z)) x)
(+.f64 (neg.f64 (*.f64 y z)) x)
(+.f64 (*.f64 -1 (*.f64 y z)) x)
(+.f64 (*.f64 y (neg.f64 z)) x)
(+.f64 (neg.f64 (*.f64 y z)) x)
(*.f64 -1 (*.f64 y z))
(*.f64 y (neg.f64 z))
(neg.f64 (*.f64 y z))
(+.f64 (*.f64 -1 (*.f64 y z)) x)
(+.f64 (*.f64 y (neg.f64 z)) x)
(+.f64 (neg.f64 (*.f64 y z)) x)
(+.f64 (*.f64 -1 (*.f64 y z)) x)
(+.f64 (*.f64 y (neg.f64 z)) x)
(+.f64 (neg.f64 (*.f64 y z)) x)
(+.f64 (*.f64 -1 (*.f64 y z)) x)
(+.f64 (*.f64 y (neg.f64 z)) x)
(+.f64 (neg.f64 (*.f64 y z)) x)
x
(+.f64 (*.f64 -1 (*.f64 y z)) x)
(+.f64 (*.f64 y (neg.f64 z)) x)
(+.f64 (neg.f64 (*.f64 y z)) x)
(+.f64 (*.f64 -1 (*.f64 y z)) x)
(+.f64 (*.f64 y (neg.f64 z)) x)
(+.f64 (neg.f64 (*.f64 y z)) x)
(+.f64 (*.f64 -1 (*.f64 y z)) x)
(+.f64 (*.f64 y (neg.f64 z)) x)
(+.f64 (neg.f64 (*.f64 y z)) x)
(*.f64 -1 (*.f64 y z))
(*.f64 y (neg.f64 z))
(neg.f64 (*.f64 y z))
(+.f64 (*.f64 -1 (*.f64 y z)) x)
(+.f64 (*.f64 y (neg.f64 z)) x)
(+.f64 (neg.f64 (*.f64 y z)) x)
(+.f64 (*.f64 -1 (*.f64 y z)) x)
(+.f64 (*.f64 y (neg.f64 z)) x)
(+.f64 (neg.f64 (*.f64 y z)) x)
(+.f64 (*.f64 -1 (*.f64 y z)) x)
(+.f64 (*.f64 y (neg.f64 z)) x)
(+.f64 (neg.f64 (*.f64 y z)) x)
(*.f64 -1 (*.f64 y z))
(*.f64 y (neg.f64 z))
(neg.f64 (*.f64 y z))
(+.f64 (*.f64 -1 (*.f64 y z)) x)
(+.f64 (*.f64 y (neg.f64 z)) x)
(+.f64 (neg.f64 (*.f64 y z)) x)
(+.f64 (*.f64 -1 (*.f64 y z)) x)
(+.f64 (*.f64 y (neg.f64 z)) x)
(+.f64 (neg.f64 (*.f64 y z)) x)
(+.f64 (*.f64 -1 (*.f64 y z)) x)
(+.f64 (*.f64 y (neg.f64 z)) x)
(+.f64 (neg.f64 (*.f64 y z)) x)
(-.f64 (+.f64 x (*.f64 y (neg.f64 z))) 0)
(+.f64 (*.f64 y (neg.f64 z)) x)
(+.f64 (neg.f64 (*.f64 y z)) x)
(*.f64 (+.f64 x (*.f64 y (neg.f64 z))) 1)
(+.f64 (*.f64 y (neg.f64 z)) x)
(+.f64 (neg.f64 (*.f64 y z)) x)
(*.f64 1 (+.f64 x (*.f64 y (neg.f64 z))))
(+.f64 (*.f64 y (neg.f64 z)) x)
(+.f64 (neg.f64 (*.f64 y z)) x)
(*.f64 2 (*.f64 (+.f64 x (*.f64 y (neg.f64 z))) 1/2))
(+.f64 (*.f64 y (neg.f64 z)) x)
(+.f64 (neg.f64 (*.f64 y z)) x)
(*.f64 2 (+.f64 (*.f64 y (*.f64 z -1/2)) (*.f64 x 1/2)))
(*.f64 2 (+.f64 (*.f64 (*.f64 y z) -1/2) (*.f64 x 1/2)))
(*.f64 2 (+.f64 (*.f64 x 1/2) (*.f64 y (*.f64 z -1/2))))
(*.f64 2 (+.f64 (*.f64 y (*.f64 z -1/2)) (*.f64 x 1/2)))
(*.f64 2 (+.f64 (*.f64 (*.f64 y z) -1/2) (*.f64 x 1/2)))
(*.f64 (*.f64 (+.f64 x (*.f64 y (neg.f64 z))) 2) 1/2)
(+.f64 (*.f64 y (neg.f64 z)) x)
(+.f64 (neg.f64 (*.f64 y z)) x)
(*.f64 4 (/.f64 (+.f64 x (*.f64 y (neg.f64 z))) 4))
(+.f64 (*.f64 y (neg.f64 z)) x)
(+.f64 (neg.f64 (*.f64 y z)) x)
(*.f64 (*.f64 (+.f64 x (*.f64 y (neg.f64 z))) 4) 1/4)
(+.f64 (*.f64 y (neg.f64 z)) x)
(+.f64 (neg.f64 (*.f64 y z)) x)
(*.f64 1/2 (*.f64 (+.f64 x (*.f64 y (neg.f64 z))) 2))
(+.f64 (*.f64 y (neg.f64 z)) x)
(+.f64 (neg.f64 (*.f64 y z)) x)
(*.f64 1/2 (+.f64 (*.f64 y (*.f64 z -2)) (+.f64 x x)))
(+.f64 (*.f64 y (neg.f64 z)) x)
(+.f64 (neg.f64 (*.f64 y z)) x)
(*.f64 1/2 (+.f64 (+.f64 x x) (*.f64 y (*.f64 z -2))))
(+.f64 (*.f64 y (neg.f64 z)) x)
(+.f64 (neg.f64 (*.f64 y z)) x)
(*.f64 (*.f64 (+.f64 x (*.f64 y (neg.f64 z))) 1/2) 2)
(+.f64 (*.f64 y (neg.f64 z)) x)
(+.f64 (neg.f64 (*.f64 y z)) x)
(*.f64 1/4 (*.f64 (+.f64 x (*.f64 y (neg.f64 z))) 4))
(+.f64 (*.f64 y (neg.f64 z)) x)
(+.f64 (neg.f64 (*.f64 y z)) x)
(*.f64 (/.f64 (+.f64 x (*.f64 y (neg.f64 z))) 4) 4)
(+.f64 (*.f64 y (neg.f64 z)) x)
(+.f64 (neg.f64 (*.f64 y z)) x)
(/.f64 (+.f64 x (*.f64 y (neg.f64 z))) 1)
(+.f64 (*.f64 y (neg.f64 z)) x)
(+.f64 (neg.f64 (*.f64 y z)) x)
(/.f64 (*.f64 (+.f64 x (*.f64 y (neg.f64 z))) 2) 2)
(+.f64 (*.f64 y (neg.f64 z)) x)
(+.f64 (neg.f64 (*.f64 y z)) x)
(/.f64 (*.f64 (+.f64 x (*.f64 y (neg.f64 z))) 4) 4)
(+.f64 (*.f64 y (neg.f64 z)) x)
(+.f64 (neg.f64 (*.f64 y z)) x)
(/.f64 (*.f64 (+.f64 x (*.f64 y (neg.f64 z))) 8) 8)
(+.f64 (*.f64 y (neg.f64 z)) x)
(+.f64 (neg.f64 (*.f64 y z)) x)
(/.f64 (*.f64 2 (*.f64 (+.f64 x (*.f64 y (neg.f64 z))) 8)) 16)
(+.f64 (*.f64 y (neg.f64 z)) x)
(+.f64 (neg.f64 (*.f64 y z)) x)
(/.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 x (*.f64 y (neg.f64 z))) 8)) (*.f64 2 (*.f64 (+.f64 x (*.f64 y (neg.f64 z))) 8))) 32)
(+.f64 (*.f64 y (neg.f64 z)) x)
(+.f64 (neg.f64 (*.f64 y z)) x)

localize7.0ms (0%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(sin.f64 (neg.f64 y))
0.2b
(*.f64 z (sin.f64 (neg.f64 y)))
Compiler

Compiled 15 to 6 computations (60% saved)

series2.0ms (0%)

Counts
2 → 16
Calls

9 calls:

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

rewrite90.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
1100×bool.json-1
1100×bool.json-2
1062×rational.json-1
1062×rational.json-2
1062×rational.json-4
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0824
18824
228324
364724
4146524
5355924
Stop Event
node limit
Counts
2 → 55
Calls
Call 1
Inputs
(*.f64 z (sin.f64 (neg.f64 y)))
(sin.f64 (neg.f64 y))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 z (neg.f64 (sin.f64 y))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 z (neg.f64 (sin.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 z (*.f64 (sin.f64 y) -1/2)) (*.f64 z (*.f64 (sin.f64 y) -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 z (neg.f64 (sin.f64 y))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (neg.f64 (sin.f64 y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 y) (*.f64 z -2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (*.f64 (sin.f64 y) -4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 z (neg.f64 (sin.f64 y))) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 z (neg.f64 (sin.f64 y))) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 z (neg.f64 (sin.f64 y))) 8)) (*.f64 2 (*.f64 (*.f64 z (neg.f64 (sin.f64 y))) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (*.f64 z (sin.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 z (neg.f64 (sin.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 z (neg.f64 (sin.f64 y))) (*.f64 z (neg.f64 (sin.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 z (neg.f64 (sin.f64 y))) (*.f64 z (neg.f64 (sin.f64 y))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.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 -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 -2 (-.f64 1 (+.f64 -1 (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 (+.f64 -1 (sin.f64 y))) -2)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (neg.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 0 (-.f64 (+.f64 -1 (sin.f64 y)) -1))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 1 (-.f64 (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 (-.f64 1 (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 -1 (sin.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sin.f64 y) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (sin.f64 y) -1/2))))) (#(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) -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) 2) -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 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 -1/2 (*.f64 (sin.f64 y) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sin.f64 y) 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 (/.f64 (sin.f64 y) -4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (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 (*.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 (neg.f64 (sin.f64 y)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (sin.f64 y) 4)) -8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (neg.f64 (sin.f64 y)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 (sin.f64 y) 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (sin.f64 y) 4)) (*.f64 2 (*.f64 (sin.f64 y) 4))) -16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (neg.f64 (sin.f64 y)) 8)) (*.f64 2 (*.f64 (neg.f64 (sin.f64 y)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (neg.f64 (*.f64 (sin.f64 y) 4)) (neg.f64 (*.f64 (sin.f64 y) 4))) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 2 (*.f64 (sin.f64 y) 4)) -1) 8)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (sin.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x not (not (neg.f64 (sin.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x and (neg.f64 (sin.f64 y)) (neg.f64 (sin.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x or (neg.f64 (sin.f64 y)) (neg.f64 (sin.f64 y)))))))

simplify449.0ms (2.8%)

Algorithm
egg-herbie
Rules
2556×rational.json-simplify-2
1802×rational.json-simplify-35
1558×rational.json-simplify-52
928×rational.json-simplify-1
836×rational.json-simplify-43
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01351115
1300973
2670973
32317973
43421973
54116973
65253973
75845973
86533973
Stop Event
node limit
Counts
71 → 90
Calls
Call 1
Inputs
(*.f64 -1 (*.f64 y z))
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 1/6 (*.f64 (pow.f64 y 3) z)))
(+.f64 (*.f64 -1 (*.f64 y z)) (+.f64 (*.f64 -1/120 (*.f64 (pow.f64 y 5) z)) (*.f64 1/6 (*.f64 (pow.f64 y 3) z))))
(+.f64 (*.f64 1/5040 (*.f64 (pow.f64 y 7) z)) (+.f64 (*.f64 -1 (*.f64 y z)) (+.f64 (*.f64 -1/120 (*.f64 (pow.f64 y 5) z)) (*.f64 1/6 (*.f64 (pow.f64 y 3) z)))))
(*.f64 (sin.f64 (*.f64 -1 y)) z)
(*.f64 (sin.f64 (*.f64 -1 y)) z)
(*.f64 (sin.f64 (*.f64 -1 y)) z)
(*.f64 (sin.f64 (*.f64 -1 y)) z)
(*.f64 -1 y)
(+.f64 (*.f64 1/6 (pow.f64 y 3)) (*.f64 -1 y))
(+.f64 (*.f64 -1/120 (pow.f64 y 5)) (+.f64 (*.f64 1/6 (pow.f64 y 3)) (*.f64 -1 y)))
(+.f64 (*.f64 1/5040 (pow.f64 y 7)) (+.f64 (*.f64 -1/120 (pow.f64 y 5)) (+.f64 (*.f64 1/6 (pow.f64 y 3)) (*.f64 -1 y))))
(sin.f64 (*.f64 -1 y))
(sin.f64 (*.f64 -1 y))
(sin.f64 (*.f64 -1 y))
(sin.f64 (*.f64 -1 y))
(+.f64 (*.f64 z (neg.f64 (sin.f64 y))) 0)
(+.f64 0 (*.f64 z (neg.f64 (sin.f64 y))))
(+.f64 (*.f64 z (*.f64 (sin.f64 y) -1/2)) (*.f64 z (*.f64 (sin.f64 y) -1/2)))
(-.f64 (*.f64 z (neg.f64 (sin.f64 y))) 0)
(/.f64 (*.f64 z (neg.f64 (sin.f64 y))) 1)
(/.f64 (*.f64 (sin.f64 y) (*.f64 z -2)) 2)
(/.f64 (*.f64 z (*.f64 (sin.f64 y) -4)) 4)
(/.f64 (*.f64 (*.f64 z (neg.f64 (sin.f64 y))) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 z (neg.f64 (sin.f64 y))) 8)) 16)
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 z (neg.f64 (sin.f64 y))) 8)) (*.f64 2 (*.f64 (*.f64 z (neg.f64 (sin.f64 y))) 8))) 32)
(neg.f64 (*.f64 z (sin.f64 y)))
(+.f64 (neg.f64 (sin.f64 y)) 0)
(+.f64 0 (neg.f64 (sin.f64 y)))
(+.f64 -1 (-.f64 1 (sin.f64 y)))
(+.f64 (-.f64 1 (sin.f64 y)) -1)
(+.f64 -2 (-.f64 1 (+.f64 -1 (sin.f64 y))))
(+.f64 (*.f64 (sin.f64 y) -1/2) (*.f64 (sin.f64 y) -1/2))
(+.f64 (-.f64 1 (+.f64 -1 (sin.f64 y))) -2)
(-.f64 (neg.f64 (sin.f64 y)) 0)
(-.f64 0 (sin.f64 y))
(-.f64 0 (-.f64 (+.f64 -1 (sin.f64 y)) -1))
(-.f64 1 (-.f64 (sin.f64 y) -1))
(-.f64 -1 (+.f64 -1 (sin.f64 y)))
(-.f64 (-.f64 1 (sin.f64 y)) 1)
(*.f64 (neg.f64 (sin.f64 y)) 1)
(*.f64 1 (neg.f64 (sin.f64 y)))
(*.f64 -1 (sin.f64 y))
(*.f64 (sin.f64 y) -1)
(*.f64 2 (*.f64 (sin.f64 y) -1/2))
(*.f64 -2 (/.f64 (sin.f64 y) 2))
(*.f64 (*.f64 (sin.f64 y) -2) 1/2)
(*.f64 4 (/.f64 (sin.f64 y) -4))
(*.f64 (*.f64 (sin.f64 y) 2) -1/2)
(*.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 -1/2 (*.f64 (sin.f64 y) 2))
(*.f64 (/.f64 (sin.f64 y) 2) -2)
(*.f64 1/4 (*.f64 (sin.f64 y) -4))
(*.f64 (/.f64 (sin.f64 y) -4) 4)
(/.f64 (neg.f64 (sin.f64 y)) 1)
(/.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 (neg.f64 (sin.f64 y)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (sin.f64 y) 4)) -8)
(/.f64 (*.f64 2 (*.f64 (neg.f64 (sin.f64 y)) 8)) 16)
(/.f64 (neg.f64 (*.f64 (sin.f64 y) 4)) 4)
(/.f64 (+.f64 (*.f64 2 (*.f64 (sin.f64 y) 4)) (*.f64 2 (*.f64 (sin.f64 y) 4))) -16)
(/.f64 (+.f64 (*.f64 2 (*.f64 (neg.f64 (sin.f64 y)) 8)) (*.f64 2 (*.f64 (neg.f64 (sin.f64 y)) 8))) 32)
(/.f64 (+.f64 (neg.f64 (*.f64 (sin.f64 y) 4)) (neg.f64 (*.f64 (sin.f64 y) 4))) 8)
(/.f64 (/.f64 (*.f64 2 (*.f64 (sin.f64 y) 4)) -1) 8)
(neg.f64 (sin.f64 y))
Outputs
(*.f64 -1 (*.f64 y z))
(*.f64 y (neg.f64 z))
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 1/6 (*.f64 (pow.f64 y 3) z)))
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 1/6 (*.f64 z (pow.f64 y 3))))
(+.f64 (*.f64 y (neg.f64 z)) (*.f64 z (*.f64 1/6 (pow.f64 y 3))))
(+.f64 (*.f64 y (neg.f64 z)) (*.f64 (pow.f64 y 3) (*.f64 z 1/6)))
(+.f64 (*.f64 y (neg.f64 z)) (*.f64 1/6 (*.f64 z (pow.f64 y 3))))
(+.f64 (*.f64 -1 (*.f64 y z)) (+.f64 (*.f64 -1/120 (*.f64 (pow.f64 y 5) z)) (*.f64 1/6 (*.f64 (pow.f64 y 3) z))))
(+.f64 (*.f64 -1 (*.f64 y z)) (+.f64 (*.f64 1/6 (*.f64 z (pow.f64 y 3))) (*.f64 (pow.f64 y 5) (*.f64 z -1/120))))
(+.f64 (*.f64 y (neg.f64 z)) (+.f64 (*.f64 z (*.f64 1/6 (pow.f64 y 3))) (*.f64 -1/120 (*.f64 z (pow.f64 y 5)))))
(+.f64 (*.f64 y (neg.f64 z)) (+.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 (pow.f64 y 5) (*.f64 z -1/120))))
(+.f64 (*.f64 y (neg.f64 z)) (+.f64 (*.f64 1/6 (*.f64 z (pow.f64 y 3))) (*.f64 z (*.f64 -1/120 (pow.f64 y 5)))))
(+.f64 (*.f64 1/5040 (*.f64 (pow.f64 y 7) z)) (+.f64 (*.f64 -1 (*.f64 y z)) (+.f64 (*.f64 -1/120 (*.f64 (pow.f64 y 5) z)) (*.f64 1/6 (*.f64 (pow.f64 y 3) z)))))
(+.f64 (*.f64 -1 (*.f64 y z)) (+.f64 (+.f64 (*.f64 1/6 (*.f64 z (pow.f64 y 3))) (*.f64 (pow.f64 y 5) (*.f64 z -1/120))) (*.f64 1/5040 (*.f64 z (pow.f64 y 7)))))
(+.f64 (*.f64 y (neg.f64 z)) (+.f64 (+.f64 (*.f64 z (*.f64 1/6 (pow.f64 y 3))) (*.f64 -1/120 (*.f64 z (pow.f64 y 5)))) (*.f64 z (*.f64 1/5040 (pow.f64 y 7)))))
(+.f64 (*.f64 y (neg.f64 z)) (+.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (+.f64 (*.f64 (pow.f64 y 5) (*.f64 z -1/120)) (*.f64 (pow.f64 y 7) (*.f64 z 1/5040)))))
(+.f64 (+.f64 (*.f64 y (neg.f64 z)) (*.f64 1/6 (*.f64 z (pow.f64 y 3)))) (+.f64 (*.f64 z (*.f64 -1/120 (pow.f64 y 5))) (*.f64 1/5040 (*.f64 z (pow.f64 y 7)))))
(*.f64 (sin.f64 (*.f64 -1 y)) z)
(*.f64 z (sin.f64 (*.f64 -1 y)))
(*.f64 z (neg.f64 (sin.f64 y)))
(*.f64 (sin.f64 (*.f64 -1 y)) z)
(*.f64 z (sin.f64 (*.f64 -1 y)))
(*.f64 z (neg.f64 (sin.f64 y)))
(*.f64 (sin.f64 (*.f64 -1 y)) z)
(*.f64 z (sin.f64 (*.f64 -1 y)))
(*.f64 z (neg.f64 (sin.f64 y)))
(*.f64 (sin.f64 (*.f64 -1 y)) z)
(*.f64 z (sin.f64 (*.f64 -1 y)))
(*.f64 z (neg.f64 (sin.f64 y)))
(*.f64 -1 y)
(neg.f64 y)
(+.f64 (*.f64 1/6 (pow.f64 y 3)) (*.f64 -1 y))
(+.f64 (*.f64 -1 y) (*.f64 1/6 (pow.f64 y 3)))
(+.f64 (neg.f64 y) (*.f64 1/6 (pow.f64 y 3)))
(+.f64 (*.f64 -1/120 (pow.f64 y 5)) (+.f64 (*.f64 1/6 (pow.f64 y 3)) (*.f64 -1 y)))
(+.f64 (*.f64 1/6 (pow.f64 y 3)) (+.f64 (*.f64 -1 y) (*.f64 -1/120 (pow.f64 y 5))))
(+.f64 (neg.f64 y) (+.f64 (*.f64 1/6 (pow.f64 y 3)) (*.f64 -1/120 (pow.f64 y 5))))
(+.f64 (*.f64 1/5040 (pow.f64 y 7)) (+.f64 (*.f64 -1/120 (pow.f64 y 5)) (+.f64 (*.f64 1/6 (pow.f64 y 3)) (*.f64 -1 y))))
(+.f64 (*.f64 -1/120 (pow.f64 y 5)) (+.f64 (+.f64 (*.f64 -1 y) (*.f64 1/6 (pow.f64 y 3))) (*.f64 1/5040 (pow.f64 y 7))))
(+.f64 (+.f64 (neg.f64 y) (*.f64 1/6 (pow.f64 y 3))) (+.f64 (*.f64 1/5040 (pow.f64 y 7)) (*.f64 -1/120 (pow.f64 y 5))))
(+.f64 (neg.f64 y) (+.f64 (+.f64 (*.f64 1/6 (pow.f64 y 3)) (*.f64 -1/120 (pow.f64 y 5))) (*.f64 1/5040 (pow.f64 y 7))))
(+.f64 (neg.f64 y) (+.f64 (*.f64 1/5040 (pow.f64 y 7)) (+.f64 (*.f64 1/6 (pow.f64 y 3)) (*.f64 -1/120 (pow.f64 y 5)))))
(+.f64 (neg.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 (*.f64 -1 y))
(neg.f64 (sin.f64 y))
(sin.f64 (*.f64 -1 y))
(neg.f64 (sin.f64 y))
(sin.f64 (*.f64 -1 y))
(neg.f64 (sin.f64 y))
(sin.f64 (*.f64 -1 y))
(neg.f64 (sin.f64 y))
(+.f64 (*.f64 z (neg.f64 (sin.f64 y))) 0)
(*.f64 z (sin.f64 (*.f64 -1 y)))
(*.f64 z (neg.f64 (sin.f64 y)))
(+.f64 0 (*.f64 z (neg.f64 (sin.f64 y))))
(*.f64 z (sin.f64 (*.f64 -1 y)))
(*.f64 z (neg.f64 (sin.f64 y)))
(+.f64 (*.f64 z (*.f64 (sin.f64 y) -1/2)) (*.f64 z (*.f64 (sin.f64 y) -1/2)))
(*.f64 z (sin.f64 (*.f64 -1 y)))
(*.f64 z (neg.f64 (sin.f64 y)))
(-.f64 (*.f64 z (neg.f64 (sin.f64 y))) 0)
(*.f64 z (sin.f64 (*.f64 -1 y)))
(*.f64 z (neg.f64 (sin.f64 y)))
(/.f64 (*.f64 z (neg.f64 (sin.f64 y))) 1)
(*.f64 z (sin.f64 (*.f64 -1 y)))
(*.f64 z (neg.f64 (sin.f64 y)))
(/.f64 (*.f64 (sin.f64 y) (*.f64 z -2)) 2)
(*.f64 z (sin.f64 (*.f64 -1 y)))
(*.f64 z (neg.f64 (sin.f64 y)))
(/.f64 (*.f64 z (*.f64 (sin.f64 y) -4)) 4)
(*.f64 z (sin.f64 (*.f64 -1 y)))
(*.f64 z (neg.f64 (sin.f64 y)))
(/.f64 (*.f64 (*.f64 z (neg.f64 (sin.f64 y))) 8) 8)
(*.f64 z (sin.f64 (*.f64 -1 y)))
(*.f64 z (neg.f64 (sin.f64 y)))
(/.f64 (*.f64 2 (*.f64 (*.f64 z (neg.f64 (sin.f64 y))) 8)) 16)
(*.f64 z (sin.f64 (*.f64 -1 y)))
(*.f64 z (neg.f64 (sin.f64 y)))
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 z (neg.f64 (sin.f64 y))) 8)) (*.f64 2 (*.f64 (*.f64 z (neg.f64 (sin.f64 y))) 8))) 32)
(*.f64 z (sin.f64 (*.f64 -1 y)))
(*.f64 z (neg.f64 (sin.f64 y)))
(neg.f64 (*.f64 z (sin.f64 y)))
(*.f64 z (sin.f64 (*.f64 -1 y)))
(*.f64 z (neg.f64 (sin.f64 y)))
(+.f64 (neg.f64 (sin.f64 y)) 0)
(sin.f64 (*.f64 -1 y))
(neg.f64 (sin.f64 y))
(+.f64 0 (neg.f64 (sin.f64 y)))
(sin.f64 (*.f64 -1 y))
(neg.f64 (sin.f64 y))
(+.f64 -1 (-.f64 1 (sin.f64 y)))
(sin.f64 (*.f64 -1 y))
(neg.f64 (sin.f64 y))
(+.f64 (-.f64 1 (sin.f64 y)) -1)
(sin.f64 (*.f64 -1 y))
(neg.f64 (sin.f64 y))
(+.f64 -2 (-.f64 1 (+.f64 -1 (sin.f64 y))))
(sin.f64 (*.f64 -1 y))
(neg.f64 (sin.f64 y))
(+.f64 (*.f64 (sin.f64 y) -1/2) (*.f64 (sin.f64 y) -1/2))
(sin.f64 (*.f64 -1 y))
(neg.f64 (sin.f64 y))
(+.f64 (-.f64 1 (+.f64 -1 (sin.f64 y))) -2)
(sin.f64 (*.f64 -1 y))
(neg.f64 (sin.f64 y))
(-.f64 (neg.f64 (sin.f64 y)) 0)
(sin.f64 (*.f64 -1 y))
(neg.f64 (sin.f64 y))
(-.f64 0 (sin.f64 y))
(sin.f64 (*.f64 -1 y))
(neg.f64 (sin.f64 y))
(-.f64 0 (-.f64 (+.f64 -1 (sin.f64 y)) -1))
(sin.f64 (*.f64 -1 y))
(neg.f64 (sin.f64 y))
(-.f64 1 (-.f64 (sin.f64 y) -1))
(sin.f64 (*.f64 -1 y))
(neg.f64 (sin.f64 y))
(-.f64 -1 (+.f64 -1 (sin.f64 y)))
(sin.f64 (*.f64 -1 y))
(neg.f64 (sin.f64 y))
(-.f64 (-.f64 1 (sin.f64 y)) 1)
(sin.f64 (*.f64 -1 y))
(neg.f64 (sin.f64 y))
(*.f64 (neg.f64 (sin.f64 y)) 1)
(sin.f64 (*.f64 -1 y))
(neg.f64 (sin.f64 y))
(*.f64 1 (neg.f64 (sin.f64 y)))
(sin.f64 (*.f64 -1 y))
(neg.f64 (sin.f64 y))
(*.f64 -1 (sin.f64 y))
(sin.f64 (*.f64 -1 y))
(neg.f64 (sin.f64 y))
(*.f64 (sin.f64 y) -1)
(sin.f64 (*.f64 -1 y))
(neg.f64 (sin.f64 y))
(*.f64 2 (*.f64 (sin.f64 y) -1/2))
(sin.f64 (*.f64 -1 y))
(neg.f64 (sin.f64 y))
(*.f64 -2 (/.f64 (sin.f64 y) 2))
(sin.f64 (*.f64 -1 y))
(neg.f64 (sin.f64 y))
(*.f64 (*.f64 (sin.f64 y) -2) 1/2)
(sin.f64 (*.f64 -1 y))
(neg.f64 (sin.f64 y))
(*.f64 4 (/.f64 (sin.f64 y) -4))
(sin.f64 (*.f64 -1 y))
(neg.f64 (sin.f64 y))
(*.f64 (*.f64 (sin.f64 y) 2) -1/2)
(sin.f64 (*.f64 -1 y))
(neg.f64 (sin.f64 y))
(*.f64 (*.f64 (sin.f64 y) -4) 1/4)
(sin.f64 (*.f64 -1 y))
(neg.f64 (sin.f64 y))
(*.f64 1/2 (*.f64 (sin.f64 y) -2))
(sin.f64 (*.f64 -1 y))
(neg.f64 (sin.f64 y))
(*.f64 (*.f64 (sin.f64 y) -1/2) 2)
(sin.f64 (*.f64 -1 y))
(neg.f64 (sin.f64 y))
(*.f64 -1/2 (*.f64 (sin.f64 y) 2))
(sin.f64 (*.f64 -1 y))
(neg.f64 (sin.f64 y))
(*.f64 (/.f64 (sin.f64 y) 2) -2)
(sin.f64 (*.f64 -1 y))
(neg.f64 (sin.f64 y))
(*.f64 1/4 (*.f64 (sin.f64 y) -4))
(sin.f64 (*.f64 -1 y))
(neg.f64 (sin.f64 y))
(*.f64 (/.f64 (sin.f64 y) -4) 4)
(sin.f64 (*.f64 -1 y))
(neg.f64 (sin.f64 y))
(/.f64 (neg.f64 (sin.f64 y)) 1)
(sin.f64 (*.f64 -1 y))
(neg.f64 (sin.f64 y))
(/.f64 (sin.f64 y) -1)
(sin.f64 (*.f64 -1 y))
(neg.f64 (sin.f64 y))
(/.f64 (*.f64 (sin.f64 y) -2) 2)
(sin.f64 (*.f64 -1 y))
(neg.f64 (sin.f64 y))
(/.f64 (*.f64 (sin.f64 y) 2) -2)
(sin.f64 (*.f64 -1 y))
(neg.f64 (sin.f64 y))
(/.f64 (*.f64 (sin.f64 y) -4) 4)
(sin.f64 (*.f64 -1 y))
(neg.f64 (sin.f64 y))
(/.f64 (*.f64 (sin.f64 y) 4) -4)
(sin.f64 (*.f64 -1 y))
(neg.f64 (sin.f64 y))
(/.f64 (*.f64 (neg.f64 (sin.f64 y)) 8) 8)
(sin.f64 (*.f64 -1 y))
(neg.f64 (sin.f64 y))
(/.f64 (*.f64 2 (*.f64 (sin.f64 y) 4)) -8)
(sin.f64 (*.f64 -1 y))
(neg.f64 (sin.f64 y))
(/.f64 (*.f64 2 (*.f64 (neg.f64 (sin.f64 y)) 8)) 16)
(sin.f64 (*.f64 -1 y))
(neg.f64 (sin.f64 y))
(/.f64 (neg.f64 (*.f64 (sin.f64 y) 4)) 4)
(sin.f64 (*.f64 -1 y))
(neg.f64 (sin.f64 y))
(/.f64 (+.f64 (*.f64 2 (*.f64 (sin.f64 y) 4)) (*.f64 2 (*.f64 (sin.f64 y) 4))) -16)
(sin.f64 (*.f64 -1 y))
(neg.f64 (sin.f64 y))
(/.f64 (+.f64 (*.f64 2 (*.f64 (neg.f64 (sin.f64 y)) 8)) (*.f64 2 (*.f64 (neg.f64 (sin.f64 y)) 8))) 32)
(sin.f64 (*.f64 -1 y))
(neg.f64 (sin.f64 y))
(/.f64 (+.f64 (neg.f64 (*.f64 (sin.f64 y) 4)) (neg.f64 (*.f64 (sin.f64 y) 4))) 8)
(sin.f64 (*.f64 -1 y))
(neg.f64 (sin.f64 y))
(/.f64 (/.f64 (*.f64 2 (*.f64 (sin.f64 y) 4)) -1) 8)
(sin.f64 (*.f64 -1 y))
(neg.f64 (sin.f64 y))
(neg.f64 (sin.f64 y))
(sin.f64 (*.f64 -1 y))

localize8.0ms (0%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(sin.f64 y)
0.2b
(*.f64 z (sin.f64 y))
Compiler

Compiled 18 to 6 computations (66.7% saved)

localize9.0ms (0.1%)

Local error

Found 2 expressions with local error:

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

Compiled 23 to 7 computations (69.6% saved)

series0.0ms (0%)

Counts
1 → 4
Calls

3 calls:

TimeVariablePointExpression
0.0ms
y
@0
(cos.f64 y)
0.0ms
y
@inf
(cos.f64 y)
0.0ms
y
@-inf
(cos.f64 y)

rewrite91.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
1670×bool.json-1
1670×bool.json-2
1608×rational.json-1
1078×rational.json-simplify-2
1018×bool.json-3
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
045
1445
21615
33705
47815
516915
637275
769645
Stop Event
node limit
Counts
1 → 23
Calls
Call 1
Inputs
(cos.f64 y)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (cos.f64 y) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (cos.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (cos.f64 y) 1/2) (*.f64 (cos.f64 y) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (cos.f64 y) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cos.f64 y) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (cos.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (cos.f64 y) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cos.f64 y) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (cos.f64 y) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 1/2 (*.f64 (cos.f64 y) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cos.f64 y) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (cos.f64 y) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cos.f64 y) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (cos.f64 y) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cos.f64 y) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 1/2 (*.f64 (cos.f64 y) 1/2)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (cos.f64 y) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (cos.f64 y) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (cos.f64 y) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (cos.f64 y) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (cos.f64 y) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (cos.f64 y) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (cos.f64 y) 8))) (*.f64 2 (*.f64 2 (*.f64 (cos.f64 y) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (cos.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x and (cos.f64 y) (cos.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x or (cos.f64 y) (cos.f64 y))))))

simplify377.0ms (2.3%)

Algorithm
egg-herbie
Rules
2144×rational.json-simplify-2
1700×rational.json-simplify-35
1692×rational.json-simplify-1
1322×rational.json-simplify-49
926×rational.json-simplify-51
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
061227
1124227
2298227
3723227
41165227
52333227
63001227
73081227
83162227
93259227
103367227
113649227
123811227
133902227
143987227
154070227
164154227
175311227
185840227
197173227
207826227
Stop Event
node limit
Counts
27 → 34
Calls
Call 1
Inputs
1
(+.f64 1 (*.f64 -1/2 (pow.f64 y 2)))
(+.f64 1 (+.f64 (*.f64 -1/2 (pow.f64 y 2)) (*.f64 1/24 (pow.f64 y 4))))
(+.f64 (*.f64 -1/720 (pow.f64 y 6)) (+.f64 1 (+.f64 (*.f64 -1/2 (pow.f64 y 2)) (*.f64 1/24 (pow.f64 y 4)))))
(+.f64 (cos.f64 y) 0)
(+.f64 0 (cos.f64 y))
(+.f64 (*.f64 (cos.f64 y) 1/2) (*.f64 (cos.f64 y) 1/2))
(-.f64 (cos.f64 y) 0)
(*.f64 (cos.f64 y) 1)
(*.f64 1 (cos.f64 y))
(*.f64 2 (*.f64 (cos.f64 y) 1/2))
(*.f64 (*.f64 (cos.f64 y) 2) 1/2)
(*.f64 4 (/.f64 (cos.f64 y) 4))
(*.f64 4 (*.f64 1/2 (*.f64 (cos.f64 y) 1/2)))
(*.f64 (*.f64 (cos.f64 y) 4) 1/4)
(*.f64 1/2 (*.f64 (cos.f64 y) 2))
(*.f64 (*.f64 (cos.f64 y) 1/2) 2)
(*.f64 1/4 (*.f64 (cos.f64 y) 4))
(*.f64 (/.f64 (cos.f64 y) 4) 4)
(*.f64 (*.f64 1/2 (*.f64 (cos.f64 y) 1/2)) 4)
(/.f64 (cos.f64 y) 1)
(/.f64 (*.f64 (cos.f64 y) 2) 2)
(/.f64 (*.f64 (cos.f64 y) 4) 4)
(/.f64 (*.f64 (cos.f64 y) 8) 8)
(/.f64 (*.f64 2 (*.f64 (cos.f64 y) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (cos.f64 y) 8))) 32)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (cos.f64 y) 8))) (*.f64 2 (*.f64 2 (*.f64 (cos.f64 y) 8)))) 64)
Outputs
1
(+.f64 1 (*.f64 -1/2 (pow.f64 y 2)))
(+.f64 1 (+.f64 (*.f64 -1/2 (pow.f64 y 2)) (*.f64 1/24 (pow.f64 y 4))))
(+.f64 (*.f64 -1/720 (pow.f64 y 6)) (+.f64 1 (+.f64 (*.f64 -1/2 (pow.f64 y 2)) (*.f64 1/24 (pow.f64 y 4)))))
(+.f64 1 (+.f64 (+.f64 (*.f64 -1/2 (pow.f64 y 2)) (*.f64 1/24 (pow.f64 y 4))) (*.f64 -1/720 (pow.f64 y 6))))
(+.f64 (*.f64 -1/2 (pow.f64 y 2)) (+.f64 (+.f64 1 (*.f64 1/24 (pow.f64 y 4))) (*.f64 -1/720 (pow.f64 y 6))))
(+.f64 (*.f64 -1/2 (pow.f64 y 2)) (+.f64 (*.f64 -1/720 (pow.f64 y 6)) (+.f64 1 (*.f64 1/24 (pow.f64 y 4)))))
(+.f64 (*.f64 -1/2 (pow.f64 y 2)) (+.f64 (*.f64 1/24 (pow.f64 y 4)) (+.f64 1 (*.f64 -1/720 (pow.f64 y 6)))))
(+.f64 (*.f64 1/24 (pow.f64 y 4)) (+.f64 (*.f64 -1/2 (pow.f64 y 2)) (+.f64 1 (*.f64 -1/720 (pow.f64 y 6)))))
(+.f64 1 (+.f64 (*.f64 -1/2 (pow.f64 y 2)) (+.f64 (*.f64 1/24 (pow.f64 y 4)) (*.f64 -1/720 (pow.f64 y 6)))))
(+.f64 (cos.f64 y) 0)
(cos.f64 y)
(+.f64 0 (cos.f64 y))
(cos.f64 y)
(+.f64 (*.f64 (cos.f64 y) 1/2) (*.f64 (cos.f64 y) 1/2))
(cos.f64 y)
(-.f64 (cos.f64 y) 0)
(cos.f64 y)
(*.f64 (cos.f64 y) 1)
(cos.f64 y)
(*.f64 1 (cos.f64 y))
(cos.f64 y)
(*.f64 2 (*.f64 (cos.f64 y) 1/2))
(cos.f64 y)
(*.f64 (*.f64 (cos.f64 y) 2) 1/2)
(cos.f64 y)
(*.f64 4 (/.f64 (cos.f64 y) 4))
(cos.f64 y)
(*.f64 4 (*.f64 1/2 (*.f64 (cos.f64 y) 1/2)))
(cos.f64 y)
(*.f64 (*.f64 (cos.f64 y) 4) 1/4)
(cos.f64 y)
(*.f64 1/2 (*.f64 (cos.f64 y) 2))
(cos.f64 y)
(*.f64 (*.f64 (cos.f64 y) 1/2) 2)
(cos.f64 y)
(*.f64 1/4 (*.f64 (cos.f64 y) 4))
(cos.f64 y)
(*.f64 (/.f64 (cos.f64 y) 4) 4)
(cos.f64 y)
(*.f64 (*.f64 1/2 (*.f64 (cos.f64 y) 1/2)) 4)
(cos.f64 y)
(/.f64 (cos.f64 y) 1)
(cos.f64 y)
(/.f64 (*.f64 (cos.f64 y) 2) 2)
(cos.f64 y)
(/.f64 (*.f64 (cos.f64 y) 4) 4)
(cos.f64 y)
(/.f64 (*.f64 (cos.f64 y) 8) 8)
(cos.f64 y)
(/.f64 (*.f64 2 (*.f64 (cos.f64 y) 8)) 16)
(cos.f64 y)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (cos.f64 y) 8))) 32)
(cos.f64 y)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (cos.f64 y) 8))) (*.f64 2 (*.f64 2 (*.f64 (cos.f64 y) 8)))) 64)
(cos.f64 y)

eval336.0ms (2.1%)

Compiler

Compiled 5967 to 3369 computations (43.5% saved)

prune264.0ms (1.6%)

Pruning

10 alts after pruning (6 fresh and 4 done)

PrunedKeptTotal
New4016407
Fresh101
Picked011
Done235
Total40410414
Error
0.1b
Counts
414 → 10
Alt Table
Click to see full alt table
StatusErrorProgram
26.0b
(-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (+.f64 1 -1)))
0.1b
(-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y)))
23.4b
(-.f64 (*.f64 x (cos.f64 y)) (*.f64 z y))
16.7b
(-.f64 x (*.f64 z (sin.f64 y)))
34.2b
(-.f64 x (*.f64 z y))
44.4b
(*.f64 z (-.f64 (-.f64 1 (sin.f64 y)) 1))
44.4b
(*.f64 z (-.f64 1 (-.f64 (sin.f64 y) -1)))
36.9b
(*.f64 z (sin.f64 (neg.f64 y)))
54.1b
(*.f64 z (neg.f64 y))
41.8b
x
Compiler

Compiled 144 to 106 computations (26.4% saved)

localize15.0ms (0.1%)

Local error

Found 2 expressions with local error:

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

Compiled 32 to 19 computations (40.6% saved)

localize4.0ms (0%)

Compiler

Compiled 11 to 5 computations (54.5% saved)

localize5.0ms (0%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.0b
(-.f64 x (*.f64 z y))
Compiler

Compiled 14 to 5 computations (64.3% saved)

series3.0ms (0%)

Counts
1 → 36
Calls

9 calls:

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

rewrite114.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
1320×bool.json-1
1320×bool.json-2
1278×rational.json-1
1278×rational.json-2
1278×rational.json-4
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0713
16913
219713
342913
488313
5194513
6443513
7795613
Stop Event
node limit
Counts
1 → 37
Calls
Call 1
Inputs
(-.f64 x (*.f64 z y))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 x (neg.f64 (*.f64 z y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 x (*.f64 z y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (-.f64 x (*.f64 z y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 (*.f64 z y)) x)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (+.f64 x (-.f64 1 (*.f64 z y))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (+.f64 (-.f64 1 (*.f64 z y)) x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 x (-.f64 1 (*.f64 z y))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (-.f64 x (*.f64 z y)) 1/2) (*.f64 (-.f64 x (*.f64 z y)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -2 (-.f64 2 (-.f64 (*.f64 z y) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 x (*.f64 z y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (-.f64 x (*.f64 z y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (-.f64 x (*.f64 z y)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 x (*.f64 z y)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 z y) x) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (-.f64 x (*.f64 z y)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (-.f64 (/.f64 x 4) (/.f64 (*.f64 z y) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 x (*.f64 z y)) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (-.f64 (*.f64 z y) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (-.f64 x (*.f64 z y)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 x (*.f64 z y)) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (-.f64 x (*.f64 z y)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (-.f64 (*.f64 x 4) (*.f64 z (*.f64 y 4))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (-.f64 x (*.f64 z y)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 x (*.f64 z y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 x (*.f64 z y)) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 z y) x) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 x (*.f64 z y)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (-.f64 (*.f64 z y) x)) -2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 x (*.f64 z y)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (*.f64 z y) x) 4) -4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (-.f64 x (*.f64 z y)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (-.f64 (*.f64 z y) x) 4)) -8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (-.f64 x (*.f64 z y)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 (-.f64 (*.f64 z y) x) 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (-.f64 x (*.f64 z y)) 8))) (*.f64 2 (*.f64 2 (*.f64 (-.f64 x (*.f64 z y)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (neg.f64 (*.f64 (-.f64 (*.f64 z y) x) 4)) (neg.f64 (*.f64 (-.f64 (*.f64 z y) x) 4))) 8)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (-.f64 (*.f64 z y) x))))) (#(struct:change #<rule egg-rr> (2) ((x not (not (-.f64 x (*.f64 z y))))))) (#(struct:change #<rule egg-rr> (2) ((x and (-.f64 x (*.f64 z y)) (-.f64 x (*.f64 z y)))))) (#(struct:change #<rule egg-rr> (2) ((x or (-.f64 x (*.f64 z y)) (-.f64 x (*.f64 z y)))))))

simplify426.0ms (2.6%)

Algorithm
egg-herbie
Rules
1986×rational.json-simplify-35
1902×rational.json-simplify-1
1816×rational.json-simplify-2
1310×rational.json-simplify-52
898×rational.json-simplify-41
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0881037
11891037
24221037
39671037
418541037
530061037
636621037
738101037
839221037
940581037
1042621037
1147571037
1258521037
1365731037
1475461037
1575981037
1676111037
1776111037
1876111037
Stop Event
node limit
Counts
73 → 49
Calls
Call 1
Inputs
(*.f64 -1 (*.f64 y z))
(+.f64 (*.f64 -1 (*.f64 y z)) x)
(+.f64 (*.f64 -1 (*.f64 y z)) x)
(+.f64 (*.f64 -1 (*.f64 y z)) x)
x
(+.f64 (*.f64 -1 (*.f64 y z)) x)
(+.f64 (*.f64 -1 (*.f64 y z)) x)
(+.f64 (*.f64 -1 (*.f64 y z)) x)
x
(+.f64 (*.f64 -1 (*.f64 y z)) x)
(+.f64 (*.f64 -1 (*.f64 y z)) x)
(+.f64 (*.f64 -1 (*.f64 y z)) x)
x
(+.f64 (*.f64 -1 (*.f64 y z)) x)
(+.f64 (*.f64 -1 (*.f64 y z)) x)
(+.f64 (*.f64 -1 (*.f64 y z)) x)
(*.f64 -1 (*.f64 y z))
(+.f64 (*.f64 -1 (*.f64 y z)) x)
(+.f64 (*.f64 -1 (*.f64 y z)) x)
(+.f64 (*.f64 -1 (*.f64 y z)) x)
(*.f64 -1 (*.f64 y z))
(+.f64 (*.f64 -1 (*.f64 y z)) x)
(+.f64 (*.f64 -1 (*.f64 y z)) x)
(+.f64 (*.f64 -1 (*.f64 y z)) x)
x
(+.f64 (*.f64 -1 (*.f64 y z)) x)
(+.f64 (*.f64 -1 (*.f64 y z)) x)
(+.f64 (*.f64 -1 (*.f64 y z)) x)
(*.f64 -1 (*.f64 y z))
(+.f64 (*.f64 -1 (*.f64 y z)) x)
(+.f64 (*.f64 -1 (*.f64 y z)) x)
(+.f64 (*.f64 -1 (*.f64 y z)) x)
(*.f64 -1 (*.f64 y z))
(+.f64 (*.f64 -1 (*.f64 y z)) x)
(+.f64 (*.f64 -1 (*.f64 y z)) x)
(+.f64 (*.f64 -1 (*.f64 y z)) x)
(+.f64 x (neg.f64 (*.f64 z y)))
(+.f64 (-.f64 x (*.f64 z y)) 0)
(+.f64 0 (-.f64 x (*.f64 z y)))
(+.f64 (neg.f64 (*.f64 z y)) x)
(+.f64 -1 (+.f64 x (-.f64 1 (*.f64 z y))))
(+.f64 -1 (+.f64 (-.f64 1 (*.f64 z y)) x))
(+.f64 (+.f64 x (-.f64 1 (*.f64 z y))) -1)
(+.f64 (*.f64 (-.f64 x (*.f64 z y)) 1/2) (*.f64 (-.f64 x (*.f64 z y)) 1/2))
(+.f64 -2 (-.f64 2 (-.f64 (*.f64 z y) x)))
(*.f64 (-.f64 x (*.f64 z y)) 1)
(*.f64 1 (-.f64 x (*.f64 z y)))
(*.f64 2 (*.f64 (-.f64 x (*.f64 z y)) 1/2))
(*.f64 (*.f64 (-.f64 x (*.f64 z y)) 2) 1/2)
(*.f64 (-.f64 (*.f64 z y) x) -1)
(*.f64 4 (/.f64 (-.f64 x (*.f64 z y)) 4))
(*.f64 4 (-.f64 (/.f64 x 4) (/.f64 (*.f64 z y) 4)))
(*.f64 (*.f64 (-.f64 x (*.f64 z y)) 4) 1/4)
(*.f64 -1 (-.f64 (*.f64 z y) x))
(*.f64 1/2 (*.f64 (-.f64 x (*.f64 z y)) 2))
(*.f64 (*.f64 (-.f64 x (*.f64 z y)) 1/2) 2)
(*.f64 1/4 (*.f64 (-.f64 x (*.f64 z y)) 4))
(*.f64 1/4 (-.f64 (*.f64 x 4) (*.f64 z (*.f64 y 4))))
(*.f64 (/.f64 (-.f64 x (*.f64 z y)) 4) 4)
(/.f64 (-.f64 x (*.f64 z y)) 1)
(/.f64 (*.f64 (-.f64 x (*.f64 z y)) 2) 2)
(/.f64 (-.f64 (*.f64 z y) x) -1)
(/.f64 (*.f64 (-.f64 x (*.f64 z y)) 4) 4)
(/.f64 (*.f64 2 (-.f64 (*.f64 z y) x)) -2)
(/.f64 (*.f64 (-.f64 x (*.f64 z y)) 8) 8)
(/.f64 (*.f64 (-.f64 (*.f64 z y) x) 4) -4)
(/.f64 (*.f64 2 (*.f64 (-.f64 x (*.f64 z y)) 8)) 16)
(/.f64 (*.f64 2 (*.f64 (-.f64 (*.f64 z y) x) 4)) -8)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (-.f64 x (*.f64 z y)) 8))) 32)
(/.f64 (neg.f64 (*.f64 (-.f64 (*.f64 z y) x) 4)) 4)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (-.f64 x (*.f64 z y)) 8))) (*.f64 2 (*.f64 2 (*.f64 (-.f64 x (*.f64 z y)) 8)))) 64)
(/.f64 (+.f64 (neg.f64 (*.f64 (-.f64 (*.f64 z y) x) 4)) (neg.f64 (*.f64 (-.f64 (*.f64 z y) x) 4))) 8)
(neg.f64 (-.f64 (*.f64 z y) x))
Outputs
(*.f64 -1 (*.f64 y z))
(neg.f64 (*.f64 y z))
(*.f64 y (neg.f64 z))
(*.f64 z (neg.f64 y))
(+.f64 (*.f64 -1 (*.f64 y z)) x)
(+.f64 x (neg.f64 (*.f64 y z)))
(+.f64 x (*.f64 y (neg.f64 z)))
(+.f64 x (*.f64 z (neg.f64 y)))
(+.f64 (*.f64 -1 (*.f64 y z)) x)
(+.f64 x (neg.f64 (*.f64 y z)))
(+.f64 x (*.f64 y (neg.f64 z)))
(+.f64 x (*.f64 z (neg.f64 y)))
(+.f64 (*.f64 -1 (*.f64 y z)) x)
(+.f64 x (neg.f64 (*.f64 y z)))
(+.f64 x (*.f64 y (neg.f64 z)))
(+.f64 x (*.f64 z (neg.f64 y)))
x
(+.f64 (*.f64 -1 (*.f64 y z)) x)
(+.f64 x (neg.f64 (*.f64 y z)))
(+.f64 x (*.f64 y (neg.f64 z)))
(+.f64 x (*.f64 z (neg.f64 y)))
(+.f64 (*.f64 -1 (*.f64 y z)) x)
(+.f64 x (neg.f64 (*.f64 y z)))
(+.f64 x (*.f64 y (neg.f64 z)))
(+.f64 x (*.f64 z (neg.f64 y)))
(+.f64 (*.f64 -1 (*.f64 y z)) x)
(+.f64 x (neg.f64 (*.f64 y z)))
(+.f64 x (*.f64 y (neg.f64 z)))
(+.f64 x (*.f64 z (neg.f64 y)))
x
(+.f64 (*.f64 -1 (*.f64 y z)) x)
(+.f64 x (neg.f64 (*.f64 y z)))
(+.f64 x (*.f64 y (neg.f64 z)))
(+.f64 x (*.f64 z (neg.f64 y)))
(+.f64 (*.f64 -1 (*.f64 y z)) x)
(+.f64 x (neg.f64 (*.f64 y z)))
(+.f64 x (*.f64 y (neg.f64 z)))
(+.f64 x (*.f64 z (neg.f64 y)))
(+.f64 (*.f64 -1 (*.f64 y z)) x)
(+.f64 x (neg.f64 (*.f64 y z)))
(+.f64 x (*.f64 y (neg.f64 z)))
(+.f64 x (*.f64 z (neg.f64 y)))
x
(+.f64 (*.f64 -1 (*.f64 y z)) x)
(+.f64 x (neg.f64 (*.f64 y z)))
(+.f64 x (*.f64 y (neg.f64 z)))
(+.f64 x (*.f64 z (neg.f64 y)))
(+.f64 (*.f64 -1 (*.f64 y z)) x)
(+.f64 x (neg.f64 (*.f64 y z)))
(+.f64 x (*.f64 y (neg.f64 z)))
(+.f64 x (*.f64 z (neg.f64 y)))
(+.f64 (*.f64 -1 (*.f64 y z)) x)
(+.f64 x (neg.f64 (*.f64 y z)))
(+.f64 x (*.f64 y (neg.f64 z)))
(+.f64 x (*.f64 z (neg.f64 y)))
(*.f64 -1 (*.f64 y z))
(neg.f64 (*.f64 y z))
(*.f64 y (neg.f64 z))
(*.f64 z (neg.f64 y))
(+.f64 (*.f64 -1 (*.f64 y z)) x)
(+.f64 x (neg.f64 (*.f64 y z)))
(+.f64 x (*.f64 y (neg.f64 z)))
(+.f64 x (*.f64 z (neg.f64 y)))
(+.f64 (*.f64 -1 (*.f64 y z)) x)
(+.f64 x (neg.f64 (*.f64 y z)))
(+.f64 x (*.f64 y (neg.f64 z)))
(+.f64 x (*.f64 z (neg.f64 y)))
(+.f64 (*.f64 -1 (*.f64 y z)) x)
(+.f64 x (neg.f64 (*.f64 y z)))
(+.f64 x (*.f64 y (neg.f64 z)))
(+.f64 x (*.f64 z (neg.f64 y)))
(*.f64 -1 (*.f64 y z))
(neg.f64 (*.f64 y z))
(*.f64 y (neg.f64 z))
(*.f64 z (neg.f64 y))
(+.f64 (*.f64 -1 (*.f64 y z)) x)
(+.f64 x (neg.f64 (*.f64 y z)))
(+.f64 x (*.f64 y (neg.f64 z)))
(+.f64 x (*.f64 z (neg.f64 y)))
(+.f64 (*.f64 -1 (*.f64 y z)) x)
(+.f64 x (neg.f64 (*.f64 y z)))
(+.f64 x (*.f64 y (neg.f64 z)))
(+.f64 x (*.f64 z (neg.f64 y)))
(+.f64 (*.f64 -1 (*.f64 y z)) x)
(+.f64 x (neg.f64 (*.f64 y z)))
(+.f64 x (*.f64 y (neg.f64 z)))
(+.f64 x (*.f64 z (neg.f64 y)))
x
(+.f64 (*.f64 -1 (*.f64 y z)) x)
(+.f64 x (neg.f64 (*.f64 y z)))
(+.f64 x (*.f64 y (neg.f64 z)))
(+.f64 x (*.f64 z (neg.f64 y)))
(+.f64 (*.f64 -1 (*.f64 y z)) x)
(+.f64 x (neg.f64 (*.f64 y z)))
(+.f64 x (*.f64 y (neg.f64 z)))
(+.f64 x (*.f64 z (neg.f64 y)))
(+.f64 (*.f64 -1 (*.f64 y z)) x)
(+.f64 x (neg.f64 (*.f64 y z)))
(+.f64 x (*.f64 y (neg.f64 z)))
(+.f64 x (*.f64 z (neg.f64 y)))
(*.f64 -1 (*.f64 y z))
(neg.f64 (*.f64 y z))
(*.f64 y (neg.f64 z))
(*.f64 z (neg.f64 y))
(+.f64 (*.f64 -1 (*.f64 y z)) x)
(+.f64 x (neg.f64 (*.f64 y z)))
(+.f64 x (*.f64 y (neg.f64 z)))
(+.f64 x (*.f64 z (neg.f64 y)))
(+.f64 (*.f64 -1 (*.f64 y z)) x)
(+.f64 x (neg.f64 (*.f64 y z)))
(+.f64 x (*.f64 y (neg.f64 z)))
(+.f64 x (*.f64 z (neg.f64 y)))
(+.f64 (*.f64 -1 (*.f64 y z)) x)
(+.f64 x (neg.f64 (*.f64 y z)))
(+.f64 x (*.f64 y (neg.f64 z)))
(+.f64 x (*.f64 z (neg.f64 y)))
(*.f64 -1 (*.f64 y z))
(neg.f64 (*.f64 y z))
(*.f64 y (neg.f64 z))
(*.f64 z (neg.f64 y))
(+.f64 (*.f64 -1 (*.f64 y z)) x)
(+.f64 x (neg.f64 (*.f64 y z)))
(+.f64 x (*.f64 y (neg.f64 z)))
(+.f64 x (*.f64 z (neg.f64 y)))
(+.f64 (*.f64 -1 (*.f64 y z)) x)
(+.f64 x (neg.f64 (*.f64 y z)))
(+.f64 x (*.f64 y (neg.f64 z)))
(+.f64 x (*.f64 z (neg.f64 y)))
(+.f64 (*.f64 -1 (*.f64 y z)) x)
(+.f64 x (neg.f64 (*.f64 y z)))
(+.f64 x (*.f64 y (neg.f64 z)))
(+.f64 x (*.f64 z (neg.f64 y)))
(+.f64 x (neg.f64 (*.f64 z y)))
(+.f64 x (neg.f64 (*.f64 y z)))
(+.f64 x (*.f64 y (neg.f64 z)))
(+.f64 x (*.f64 z (neg.f64 y)))
(+.f64 (-.f64 x (*.f64 z y)) 0)
(-.f64 x (*.f64 y z))
(+.f64 0 (-.f64 x (*.f64 z y)))
(-.f64 x (*.f64 y z))
(+.f64 (neg.f64 (*.f64 z y)) x)
(+.f64 x (neg.f64 (*.f64 y z)))
(+.f64 x (*.f64 y (neg.f64 z)))
(+.f64 x (*.f64 z (neg.f64 y)))
(+.f64 -1 (+.f64 x (-.f64 1 (*.f64 z y))))
(+.f64 x (neg.f64 (*.f64 y z)))
(+.f64 x (*.f64 y (neg.f64 z)))
(+.f64 x (*.f64 z (neg.f64 y)))
(+.f64 -1 (+.f64 (-.f64 1 (*.f64 z y)) x))
(+.f64 x (neg.f64 (*.f64 y z)))
(+.f64 x (*.f64 y (neg.f64 z)))
(+.f64 x (*.f64 z (neg.f64 y)))
(+.f64 (+.f64 x (-.f64 1 (*.f64 z y))) -1)
(+.f64 x (neg.f64 (*.f64 y z)))
(+.f64 x (*.f64 y (neg.f64 z)))
(+.f64 x (*.f64 z (neg.f64 y)))
(+.f64 (*.f64 (-.f64 x (*.f64 z y)) 1/2) (*.f64 (-.f64 x (*.f64 z y)) 1/2))
(-.f64 x (*.f64 y z))
(+.f64 -2 (-.f64 2 (-.f64 (*.f64 z y) x)))
(-.f64 x (*.f64 y z))
(*.f64 (-.f64 x (*.f64 z y)) 1)
(-.f64 x (*.f64 y z))
(*.f64 1 (-.f64 x (*.f64 z y)))
(-.f64 x (*.f64 y z))
(*.f64 2 (*.f64 (-.f64 x (*.f64 z y)) 1/2))
(-.f64 x (*.f64 y z))
(*.f64 (*.f64 (-.f64 x (*.f64 z y)) 2) 1/2)
(-.f64 x (*.f64 y z))
(*.f64 (-.f64 (*.f64 z y) x) -1)
(-.f64 x (*.f64 y z))
(*.f64 4 (/.f64 (-.f64 x (*.f64 z y)) 4))
(-.f64 x (*.f64 y z))
(*.f64 4 (-.f64 (/.f64 x 4) (/.f64 (*.f64 z y) 4)))
(*.f64 4 (-.f64 (/.f64 x 4) (*.f64 y (/.f64 z 4))))
(*.f64 4 (-.f64 (/.f64 x 4) (/.f64 (*.f64 y z) 4)))
(*.f64 (*.f64 (-.f64 x (*.f64 z y)) 4) 1/4)
(-.f64 x (*.f64 y z))
(*.f64 -1 (-.f64 (*.f64 z y) x))
(-.f64 x (*.f64 y z))
(*.f64 1/2 (*.f64 (-.f64 x (*.f64 z y)) 2))
(-.f64 x (*.f64 y z))
(*.f64 (*.f64 (-.f64 x (*.f64 z y)) 1/2) 2)
(-.f64 x (*.f64 y z))
(*.f64 1/4 (*.f64 (-.f64 x (*.f64 z y)) 4))
(-.f64 x (*.f64 y z))
(*.f64 1/4 (-.f64 (*.f64 x 4) (*.f64 z (*.f64 y 4))))
(-.f64 x (*.f64 y z))
(*.f64 (/.f64 (-.f64 x (*.f64 z y)) 4) 4)
(-.f64 x (*.f64 y z))
(/.f64 (-.f64 x (*.f64 z y)) 1)
(-.f64 x (*.f64 y z))
(/.f64 (*.f64 (-.f64 x (*.f64 z y)) 2) 2)
(-.f64 x (*.f64 y z))
(/.f64 (-.f64 (*.f64 z y) x) -1)
(-.f64 x (*.f64 y z))
(/.f64 (*.f64 (-.f64 x (*.f64 z y)) 4) 4)
(-.f64 x (*.f64 y z))
(/.f64 (*.f64 2 (-.f64 (*.f64 z y) x)) -2)
(-.f64 x (*.f64 y z))
(/.f64 (*.f64 (-.f64 x (*.f64 z y)) 8) 8)
(-.f64 x (*.f64 y z))
(/.f64 (*.f64 (-.f64 (*.f64 z y) x) 4) -4)
(-.f64 x (*.f64 y z))
(/.f64 (*.f64 2 (*.f64 (-.f64 x (*.f64 z y)) 8)) 16)
(-.f64 x (*.f64 y z))
(/.f64 (*.f64 2 (*.f64 (-.f64 (*.f64 z y) x) 4)) -8)
(-.f64 x (*.f64 y z))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (-.f64 x (*.f64 z y)) 8))) 32)
(-.f64 x (*.f64 y z))
(/.f64 (neg.f64 (*.f64 (-.f64 (*.f64 z y) x) 4)) 4)
(-.f64 x (*.f64 y z))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (-.f64 x (*.f64 z y)) 8))) (*.f64 2 (*.f64 2 (*.f64 (-.f64 x (*.f64 z y)) 8)))) 64)
(-.f64 x (*.f64 y z))
(/.f64 (+.f64 (neg.f64 (*.f64 (-.f64 (*.f64 z y) x) 4)) (neg.f64 (*.f64 (-.f64 (*.f64 z y) x) 4))) 8)
(-.f64 x (*.f64 y z))
(neg.f64 (-.f64 (*.f64 z y) x))
(-.f64 x (*.f64 y z))

localize15.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(sin.f64 y)
0.2b
(*.f64 z (-.f64 1 (-.f64 (sin.f64 y) -1)))
0.5b
(-.f64 (sin.f64 y) -1)
3.4b
(-.f64 1 (-.f64 (sin.f64 y) -1))
Compiler

Compiled 27 to 17 computations (37% saved)

series2.0ms (0%)

Counts
3 → 48
Calls

12 calls:

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

rewrite98.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
1930×bool.json-1
1930×bool.json-2
938×rational.json-1
938×rational.json-2
938×rational.json-4
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01151
111851
233035
366935
4138335
5319535
6722035
Stop Event
node limit
Counts
3 → 83
Calls
Call 1
Inputs
(-.f64 1 (-.f64 (sin.f64 y) -1))
(-.f64 (sin.f64 y) -1)
(*.f64 z (-.f64 1 (-.f64 (sin.f64 y) -1)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (-.f64 1 (sin.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (sin.f64 (neg.f64 y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (sin.f64 (neg.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 1 (sin.f64 y)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (/.f64 (sin.f64 y) -2) (/.f64 (sin.f64 y) -2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (sin.f64 (neg.f64 y)))))) (#(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 (sin.f64 (neg.f64 y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (/.f64 (sin.f64 y) -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) -2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sin.f64 (neg.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 (neg.f64 (*.f64 (sin.f64 y) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -2 (*.f64 (sin.f64 y) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (sin.f64 (neg.f64 y)) 4))))) (#(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) -2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (*.f64 (sin.f64 y) 2)) 1/2)))) (#(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 (sin.f64 (neg.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 (neg.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 (neg.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 (neg.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) 2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 (sin.f64 y) 4)) 4)))) (#(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 (*.f64 2 (*.f64 (sin.f64 (neg.f64 y)) 8)) (*.f64 2 (*.f64 (sin.f64 (neg.f64 y)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (neg.f64 (*.f64 (sin.f64 y) 2)) (neg.f64 (*.f64 (sin.f64 y) 2))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (neg.f64 (*.f64 (sin.f64 y) 4)) (neg.f64 (*.f64 (sin.f64 y) 4))) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (neg.f64 (*.f64 (sin.f64 y) 8)) (neg.f64 (*.f64 (sin.f64 y) 8))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 2 (*.f64 (sin.f64 y) 8)) -1) 16)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (sin.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x sin.f64 (-.f64 y (PI.f64)))))) (#(struct:change #<rule egg-rr> (2) ((x sin.f64 (neg.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x sin.f64 (+.f64 y (PI.f64)))))) (#(struct:change #<rule egg-rr> (2) ((x sin.f64 (-.f64 (*.f64 (PI.f64) 2) y))))) (#(struct:change #<rule egg-rr> (2) ((x not (not (sin.f64 (neg.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x and (sin.f64 (neg.f64 y)) (sin.f64 (neg.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x or (sin.f64 (neg.f64 y)) (sin.f64 (neg.f64 y)))))))
((#(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 -1 (+.f64 (sin.f64 y) 2))))) (#(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 (+.f64 (sin.f64 y) -1) 2)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 2 (+.f64 (sin.f64 y) -1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (sin.f64 y) 2) -1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (sin.f64 y) -2) 3)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -2 (+.f64 (sin.f64 y) 3))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 1 (sin.f64 y)) 1/2) (*.f64 (+.f64 1 (sin.f64 y)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (sin.f64 y) 3) -2)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 3 (+.f64 (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 2 (*.f64 (+.f64 1 (sin.f64 y)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 2 (*.f64 (sin.f64 y) 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 (+.f64 1 (sin.f64 y)) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 2 (*.f64 (sin.f64 y) 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)) 1/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 2 (*.f64 (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 (+.f64 1 (sin.f64 y)) 8) 8)))) (#(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 2 (*.f64 (+.f64 1 (sin.f64 y)) 8)) (*.f64 2 (*.f64 (+.f64 1 (sin.f64 y)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (+.f64 1 (sin.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x and (+.f64 1 (sin.f64 y)) (+.f64 1 (sin.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x or (+.f64 1 (sin.f64 y)) (+.f64 1 (sin.f64 y)))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sin.f64 (neg.f64 y)) z) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (sin.f64 (neg.f64 y)) z))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 z (/.f64 (sin.f64 y) -2)) (*.f64 z (/.f64 (sin.f64 y) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (sin.f64 (neg.f64 y)) z) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 (neg.f64 y)) z) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 y) (*.f64 -2 z)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 (neg.f64 y)) (*.f64 z 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 (sin.f64 (neg.f64 y)) z) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 (sin.f64 (neg.f64 y)) z) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 (sin.f64 (neg.f64 y)) z) 8)) (*.f64 2 (*.f64 (*.f64 (sin.f64 (neg.f64 y)) z) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 (sin.f64 (neg.f64 y)) z)))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 (sin.f64 (neg.f64 y)) z) (*.f64 (sin.f64 (neg.f64 y)) z))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 (sin.f64 (neg.f64 y)) z) (*.f64 (sin.f64 (neg.f64 y)) z))))))

simplify254.0ms (1.6%)

Algorithm
egg-herbie
Rules
1932×rational.json-simplify-35
1126×rational.json-simplify-51
1050×rational.json-simplify-2
950×rational.json-simplify-52
918×rational.json-simplify-53
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01891735
14061727
210071727
325401703
444681703
553071703
662671703
768431703
873931703
977571703
1079831703
Stop Event
node limit
Counts
131 → 127
Calls
Call 1
Inputs
(*.f64 -1 y)
(+.f64 (*.f64 1/6 (pow.f64 y 3)) (*.f64 -1 y))
(+.f64 (*.f64 -1/120 (pow.f64 y 5)) (+.f64 (*.f64 1/6 (pow.f64 y 3)) (*.f64 -1 y)))
(+.f64 (*.f64 1/5040 (pow.f64 y 7)) (+.f64 (*.f64 -1/120 (pow.f64 y 5)) (+.f64 (*.f64 1/6 (pow.f64 y 3)) (*.f64 -1 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 (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 z (sin.f64 y)))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(*.f64 -1 (*.f64 y z))
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 1/6 (*.f64 (pow.f64 y 3) z)))
(+.f64 (*.f64 -1 (*.f64 y z)) (+.f64 (*.f64 -1/120 (*.f64 (pow.f64 y 5) z)) (*.f64 1/6 (*.f64 (pow.f64 y 3) z))))
(+.f64 (*.f64 1/5040 (*.f64 (pow.f64 y 7) z)) (+.f64 (*.f64 -1 (*.f64 y z)) (+.f64 (*.f64 -1/120 (*.f64 (pow.f64 y 5) z)) (*.f64 1/6 (*.f64 (pow.f64 y 3) z)))))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(+.f64 -1 (-.f64 1 (sin.f64 y)))
(+.f64 (sin.f64 (neg.f64 y)) 0)
(+.f64 0 (sin.f64 (neg.f64 y)))
(+.f64 (-.f64 1 (sin.f64 y)) -1)
(+.f64 (/.f64 (sin.f64 y) -2) (/.f64 (sin.f64 y) -2))
(*.f64 1 (sin.f64 (neg.f64 y)))
(*.f64 (sin.f64 y) -1)
(*.f64 -1 (sin.f64 y))
(*.f64 (sin.f64 (neg.f64 y)) 1)
(*.f64 2 (/.f64 (sin.f64 y) -2))
(*.f64 4 (/.f64 (sin.f64 y) -4))
(*.f64 (*.f64 (sin.f64 y) -2) 1/2)
(*.f64 (*.f64 (sin.f64 (neg.f64 y)) 4) 1/4)
(*.f64 1/2 (*.f64 (sin.f64 y) -2))
(*.f64 1/2 (neg.f64 (*.f64 (sin.f64 y) 2)))
(*.f64 -2 (*.f64 (sin.f64 y) 1/2))
(*.f64 1/4 (*.f64 (sin.f64 (neg.f64 y)) 4))
(*.f64 (/.f64 (sin.f64 y) -2) 2)
(*.f64 (*.f64 (sin.f64 y) 1/2) -2)
(*.f64 (neg.f64 (*.f64 (sin.f64 y) 2)) 1/2)
(*.f64 (/.f64 (sin.f64 y) -4) 4)
(/.f64 (sin.f64 y) -1)
(/.f64 (sin.f64 (neg.f64 y)) 1)
(/.f64 (*.f64 (sin.f64 y) -2) 2)
(/.f64 (*.f64 (sin.f64 y) 2) -2)
(/.f64 (*.f64 (sin.f64 (neg.f64 y)) 4) 4)
(/.f64 (*.f64 (sin.f64 y) 4) -4)
(/.f64 (*.f64 (sin.f64 (neg.f64 y)) 8) 8)
(/.f64 (*.f64 (sin.f64 y) 8) -8)
(/.f64 (*.f64 2 (*.f64 (sin.f64 (neg.f64 y)) 8)) 16)
(/.f64 (*.f64 2 (*.f64 (sin.f64 y) 8)) -16)
(/.f64 (neg.f64 (*.f64 (sin.f64 y) 2)) 2)
(/.f64 (neg.f64 (*.f64 (sin.f64 y) 4)) 4)
(/.f64 (neg.f64 (*.f64 (sin.f64 y) 8)) 8)
(/.f64 (+.f64 (*.f64 2 (*.f64 (sin.f64 (neg.f64 y)) 8)) (*.f64 2 (*.f64 (sin.f64 (neg.f64 y)) 8))) 32)
(/.f64 (+.f64 (neg.f64 (*.f64 (sin.f64 y) 2)) (neg.f64 (*.f64 (sin.f64 y) 2))) 4)
(/.f64 (+.f64 (neg.f64 (*.f64 (sin.f64 y) 4)) (neg.f64 (*.f64 (sin.f64 y) 4))) 8)
(/.f64 (+.f64 (neg.f64 (*.f64 (sin.f64 y) 8)) (neg.f64 (*.f64 (sin.f64 y) 8))) 16)
(/.f64 (/.f64 (*.f64 2 (*.f64 (sin.f64 y) 8)) -1) 16)
(neg.f64 (sin.f64 y))
(sin.f64 (-.f64 y (PI.f64)))
(sin.f64 (neg.f64 y))
(sin.f64 (+.f64 y (PI.f64)))
(sin.f64 (-.f64 (*.f64 (PI.f64) 2) y))
(+.f64 1 (sin.f64 y))
(+.f64 (sin.f64 y) 1)
(+.f64 -1 (+.f64 (sin.f64 y) 2))
(+.f64 (+.f64 1 (sin.f64 y)) 0)
(+.f64 0 (+.f64 1 (sin.f64 y)))
(+.f64 (+.f64 (sin.f64 y) -1) 2)
(+.f64 2 (+.f64 (sin.f64 y) -1))
(+.f64 (+.f64 (sin.f64 y) 2) -1)
(+.f64 (+.f64 (sin.f64 y) -2) 3)
(+.f64 -2 (+.f64 (sin.f64 y) 3))
(+.f64 (*.f64 (+.f64 1 (sin.f64 y)) 1/2) (*.f64 (+.f64 1 (sin.f64 y)) 1/2))
(+.f64 (+.f64 (sin.f64 y) 3) -2)
(+.f64 3 (+.f64 (sin.f64 y) -2))
(*.f64 1 (+.f64 1 (sin.f64 y)))
(*.f64 (+.f64 1 (sin.f64 y)) 1)
(*.f64 2 (*.f64 (+.f64 1 (sin.f64 y)) 1/2))
(*.f64 (+.f64 2 (*.f64 (sin.f64 y) 2)) 1/2)
(*.f64 4 (/.f64 (+.f64 1 (sin.f64 y)) 4))
(*.f64 (*.f64 (+.f64 1 (sin.f64 y)) 4) 1/4)
(*.f64 1/2 (+.f64 2 (*.f64 (sin.f64 y) 2)))
(*.f64 1/4 (*.f64 (+.f64 1 (sin.f64 y)) 4))
(*.f64 (*.f64 (+.f64 1 (sin.f64 y)) 1/2) 2)
(*.f64 (/.f64 (+.f64 1 (sin.f64 y)) 4) 4)
(/.f64 (+.f64 1 (sin.f64 y)) 1)
(/.f64 (+.f64 2 (*.f64 (sin.f64 y) 2)) 2)
(/.f64 (*.f64 (+.f64 1 (sin.f64 y)) 4) 4)
(/.f64 (*.f64 (+.f64 1 (sin.f64 y)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 1 (sin.f64 y)) 8)) 16)
(/.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 1 (sin.f64 y)) 8)) (*.f64 2 (*.f64 (+.f64 1 (sin.f64 y)) 8))) 32)
(+.f64 (*.f64 (sin.f64 (neg.f64 y)) z) 0)
(+.f64 0 (*.f64 (sin.f64 (neg.f64 y)) z))
(+.f64 (*.f64 z (/.f64 (sin.f64 y) -2)) (*.f64 z (/.f64 (sin.f64 y) -2)))
(-.f64 (*.f64 (sin.f64 (neg.f64 y)) z) 0)
(/.f64 (*.f64 (sin.f64 (neg.f64 y)) z) 1)
(/.f64 (*.f64 (sin.f64 y) (*.f64 -2 z)) 2)
(/.f64 (*.f64 (sin.f64 (neg.f64 y)) (*.f64 z 4)) 4)
(/.f64 (*.f64 (*.f64 (sin.f64 (neg.f64 y)) z) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 (sin.f64 (neg.f64 y)) z) 8)) 16)
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 (sin.f64 (neg.f64 y)) z) 8)) (*.f64 2 (*.f64 (*.f64 (sin.f64 (neg.f64 y)) z) 8))) 32)
Outputs
(*.f64 -1 y)
(neg.f64 y)
(+.f64 (*.f64 1/6 (pow.f64 y 3)) (*.f64 -1 y))
(+.f64 (neg.f64 y) (*.f64 1/6 (pow.f64 y 3)))
(+.f64 (*.f64 -1/120 (pow.f64 y 5)) (+.f64 (*.f64 1/6 (pow.f64 y 3)) (*.f64 -1 y)))
(+.f64 (*.f64 1/6 (pow.f64 y 3)) (+.f64 (neg.f64 y) (*.f64 -1/120 (pow.f64 y 5))))
(+.f64 (neg.f64 y) (+.f64 (*.f64 1/6 (pow.f64 y 3)) (*.f64 -1/120 (pow.f64 y 5))))
(+.f64 (+.f64 (neg.f64 y) (*.f64 1/6 (pow.f64 y 3))) (*.f64 -1/120 (pow.f64 y 5)))
(+.f64 (*.f64 1/5040 (pow.f64 y 7)) (+.f64 (*.f64 -1/120 (pow.f64 y 5)) (+.f64 (*.f64 1/6 (pow.f64 y 3)) (*.f64 -1 y))))
(+.f64 (+.f64 (*.f64 1/6 (pow.f64 y 3)) (+.f64 (neg.f64 y) (*.f64 -1/120 (pow.f64 y 5)))) (*.f64 1/5040 (pow.f64 y 7)))
(+.f64 (+.f64 (neg.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 -1 (sin.f64 y))
(neg.f64 (sin.f64 y))
(*.f64 -1 (sin.f64 y))
(neg.f64 (sin.f64 y))
(*.f64 -1 (sin.f64 y))
(neg.f64 (sin.f64 y))
(*.f64 -1 (sin.f64 y))
(neg.f64 (sin.f64 y))
(*.f64 -1 (sin.f64 y))
(neg.f64 (sin.f64 y))
(*.f64 -1 (sin.f64 y))
(neg.f64 (sin.f64 y))
(*.f64 -1 (sin.f64 y))
(neg.f64 (sin.f64 y))
(*.f64 -1 (sin.f64 y))
(neg.f64 (sin.f64 y))
1
(+.f64 1 y)
(+.f64 y 1)
(+.f64 (*.f64 -1/6 (pow.f64 y 3)) (+.f64 1 y))
(+.f64 (+.f64 y 1) (*.f64 (pow.f64 y 3) -1/6))
(+.f64 y (+.f64 1 (*.f64 (pow.f64 y 3) -1/6)))
(+.f64 (*.f64 -1/6 (pow.f64 y 3)) (+.f64 1 (+.f64 y (*.f64 1/120 (pow.f64 y 5)))))
(+.f64 (*.f64 (pow.f64 y 3) -1/6) (+.f64 y (+.f64 (*.f64 (pow.f64 y 5) 1/120) 1)))
(+.f64 y (+.f64 (+.f64 1 (*.f64 (pow.f64 y 5) 1/120)) (*.f64 (pow.f64 y 3) -1/6)))
(+.f64 y (+.f64 (*.f64 (pow.f64 y 3) -1/6) (+.f64 1 (*.f64 (pow.f64 y 5) 1/120))))
(+.f64 y (+.f64 (*.f64 (pow.f64 y 5) 1/120) (+.f64 1 (*.f64 (pow.f64 y 3) -1/6))))
(+.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 z (sin.f64 y)))
(*.f64 z (neg.f64 (sin.f64 y)))
(*.f64 (sin.f64 y) (neg.f64 z))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(*.f64 z (neg.f64 (sin.f64 y)))
(*.f64 (sin.f64 y) (neg.f64 z))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(*.f64 z (neg.f64 (sin.f64 y)))
(*.f64 (sin.f64 y) (neg.f64 z))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(*.f64 z (neg.f64 (sin.f64 y)))
(*.f64 (sin.f64 y) (neg.f64 z))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(*.f64 z (neg.f64 (sin.f64 y)))
(*.f64 (sin.f64 y) (neg.f64 z))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(*.f64 z (neg.f64 (sin.f64 y)))
(*.f64 (sin.f64 y) (neg.f64 z))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(*.f64 z (neg.f64 (sin.f64 y)))
(*.f64 (sin.f64 y) (neg.f64 z))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(*.f64 z (neg.f64 (sin.f64 y)))
(*.f64 (sin.f64 y) (neg.f64 z))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(*.f64 z (neg.f64 (sin.f64 y)))
(*.f64 (sin.f64 y) (neg.f64 z))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(*.f64 z (neg.f64 (sin.f64 y)))
(*.f64 (sin.f64 y) (neg.f64 z))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(*.f64 z (neg.f64 (sin.f64 y)))
(*.f64 (sin.f64 y) (neg.f64 z))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(*.f64 z (neg.f64 (sin.f64 y)))
(*.f64 (sin.f64 y) (neg.f64 z))
(*.f64 -1 (*.f64 y z))
(*.f64 y (neg.f64 z))
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 1/6 (*.f64 (pow.f64 y 3) z)))
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 (pow.f64 y 3) (*.f64 z 1/6)))
(+.f64 (*.f64 y (neg.f64 z)) (*.f64 1/6 (*.f64 (pow.f64 y 3) z)))
(+.f64 (*.f64 y (neg.f64 z)) (*.f64 (pow.f64 y 3) (*.f64 1/6 z)))
(*.f64 z (+.f64 (neg.f64 y) (*.f64 1/6 (pow.f64 y 3))))
(+.f64 (*.f64 -1 (*.f64 y z)) (+.f64 (*.f64 -1/120 (*.f64 (pow.f64 y 5) z)) (*.f64 1/6 (*.f64 (pow.f64 y 3) z))))
(+.f64 (*.f64 -1 (*.f64 y z)) (+.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 -1/120 (*.f64 (pow.f64 y 5) z))))
(+.f64 (*.f64 y (neg.f64 z)) (+.f64 (*.f64 1/6 (*.f64 (pow.f64 y 3) z)) (*.f64 (pow.f64 y 5) (*.f64 -1/120 z))))
(+.f64 (*.f64 y (neg.f64 z)) (+.f64 (*.f64 (pow.f64 y 3) (*.f64 1/6 z)) (*.f64 (pow.f64 y 5) (*.f64 -1/120 z))))
(+.f64 (*.f64 y (neg.f64 z)) (*.f64 z (+.f64 (*.f64 1/6 (pow.f64 y 3)) (*.f64 -1/120 (pow.f64 y 5)))))
(+.f64 (*.f64 z (+.f64 (neg.f64 y) (*.f64 1/6 (pow.f64 y 3)))) (*.f64 (pow.f64 y 5) (*.f64 -1/120 z)))
(+.f64 (*.f64 1/5040 (*.f64 (pow.f64 y 7) z)) (+.f64 (*.f64 -1 (*.f64 y z)) (+.f64 (*.f64 -1/120 (*.f64 (pow.f64 y 5) z)) (*.f64 1/6 (*.f64 (pow.f64 y 3) z)))))
(+.f64 (*.f64 -1 (*.f64 y z)) (+.f64 (+.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 -1/120 (*.f64 (pow.f64 y 5) z))) (*.f64 (pow.f64 y 7) (*.f64 z 1/5040))))
(+.f64 (*.f64 y (neg.f64 z)) (+.f64 (+.f64 (*.f64 1/6 (*.f64 (pow.f64 y 3) z)) (*.f64 (pow.f64 y 5) (*.f64 -1/120 z))) (*.f64 1/5040 (*.f64 (pow.f64 y 7) z))))
(+.f64 (*.f64 y (neg.f64 z)) (+.f64 (*.f64 (pow.f64 y 3) (*.f64 1/6 z)) (+.f64 (*.f64 (pow.f64 y 5) (*.f64 -1/120 z)) (*.f64 (pow.f64 y 7) (*.f64 1/5040 z)))))
(+.f64 (*.f64 z (+.f64 (neg.f64 y) (*.f64 1/6 (pow.f64 y 3)))) (*.f64 z (+.f64 (*.f64 -1/120 (pow.f64 y 5)) (*.f64 1/5040 (pow.f64 y 7)))))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(*.f64 z (neg.f64 (sin.f64 y)))
(*.f64 (sin.f64 y) (neg.f64 z))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(*.f64 z (neg.f64 (sin.f64 y)))
(*.f64 (sin.f64 y) (neg.f64 z))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(*.f64 z (neg.f64 (sin.f64 y)))
(*.f64 (sin.f64 y) (neg.f64 z))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(*.f64 z (neg.f64 (sin.f64 y)))
(*.f64 (sin.f64 y) (neg.f64 z))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(*.f64 z (neg.f64 (sin.f64 y)))
(*.f64 (sin.f64 y) (neg.f64 z))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(*.f64 z (neg.f64 (sin.f64 y)))
(*.f64 (sin.f64 y) (neg.f64 z))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(*.f64 z (neg.f64 (sin.f64 y)))
(*.f64 (sin.f64 y) (neg.f64 z))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(*.f64 z (neg.f64 (sin.f64 y)))
(*.f64 (sin.f64 y) (neg.f64 z))
(+.f64 -1 (-.f64 1 (sin.f64 y)))
(neg.f64 (sin.f64 y))
(+.f64 (sin.f64 (neg.f64 y)) 0)
(neg.f64 (sin.f64 y))
(+.f64 0 (sin.f64 (neg.f64 y)))
(neg.f64 (sin.f64 y))
(+.f64 (-.f64 1 (sin.f64 y)) -1)
(neg.f64 (sin.f64 y))
(+.f64 (/.f64 (sin.f64 y) -2) (/.f64 (sin.f64 y) -2))
(neg.f64 (sin.f64 y))
(*.f64 1 (sin.f64 (neg.f64 y)))
(neg.f64 (sin.f64 y))
(*.f64 (sin.f64 y) -1)
(neg.f64 (sin.f64 y))
(*.f64 -1 (sin.f64 y))
(neg.f64 (sin.f64 y))
(*.f64 (sin.f64 (neg.f64 y)) 1)
(neg.f64 (sin.f64 y))
(*.f64 2 (/.f64 (sin.f64 y) -2))
(neg.f64 (sin.f64 y))
(*.f64 4 (/.f64 (sin.f64 y) -4))
(neg.f64 (sin.f64 y))
(*.f64 (*.f64 (sin.f64 y) -2) 1/2)
(neg.f64 (sin.f64 y))
(*.f64 (*.f64 (sin.f64 (neg.f64 y)) 4) 1/4)
(neg.f64 (sin.f64 y))
(*.f64 1/2 (*.f64 (sin.f64 y) -2))
(neg.f64 (sin.f64 y))
(*.f64 1/2 (neg.f64 (*.f64 (sin.f64 y) 2)))
(neg.f64 (sin.f64 y))
(*.f64 -2 (*.f64 (sin.f64 y) 1/2))
(neg.f64 (sin.f64 y))
(*.f64 1/4 (*.f64 (sin.f64 (neg.f64 y)) 4))
(neg.f64 (sin.f64 y))
(*.f64 (/.f64 (sin.f64 y) -2) 2)
(neg.f64 (sin.f64 y))
(*.f64 (*.f64 (sin.f64 y) 1/2) -2)
(neg.f64 (sin.f64 y))
(*.f64 (neg.f64 (*.f64 (sin.f64 y) 2)) 1/2)
(neg.f64 (sin.f64 y))
(*.f64 (/.f64 (sin.f64 y) -4) 4)
(neg.f64 (sin.f64 y))
(/.f64 (sin.f64 y) -1)
(neg.f64 (sin.f64 y))
(/.f64 (sin.f64 (neg.f64 y)) 1)
(neg.f64 (sin.f64 y))
(/.f64 (*.f64 (sin.f64 y) -2) 2)
(neg.f64 (sin.f64 y))
(/.f64 (*.f64 (sin.f64 y) 2) -2)
(neg.f64 (sin.f64 y))
(/.f64 (*.f64 (sin.f64 (neg.f64 y)) 4) 4)
(neg.f64 (sin.f64 y))
(/.f64 (*.f64 (sin.f64 y) 4) -4)
(neg.f64 (sin.f64 y))
(/.f64 (*.f64 (sin.f64 (neg.f64 y)) 8) 8)
(neg.f64 (sin.f64 y))
(/.f64 (*.f64 (sin.f64 y) 8) -8)
(neg.f64 (sin.f64 y))
(/.f64 (*.f64 2 (*.f64 (sin.f64 (neg.f64 y)) 8)) 16)
(neg.f64 (sin.f64 y))
(/.f64 (*.f64 2 (*.f64 (sin.f64 y) 8)) -16)
(neg.f64 (sin.f64 y))
(/.f64 (neg.f64 (*.f64 (sin.f64 y) 2)) 2)
(neg.f64 (sin.f64 y))
(/.f64 (neg.f64 (*.f64 (sin.f64 y) 4)) 4)
(neg.f64 (sin.f64 y))
(/.f64 (neg.f64 (*.f64 (sin.f64 y) 8)) 8)
(neg.f64 (sin.f64 y))
(/.f64 (+.f64 (*.f64 2 (*.f64 (sin.f64 (neg.f64 y)) 8)) (*.f64 2 (*.f64 (sin.f64 (neg.f64 y)) 8))) 32)
(neg.f64 (sin.f64 y))
(/.f64 (+.f64 (neg.f64 (*.f64 (sin.f64 y) 2)) (neg.f64 (*.f64 (sin.f64 y) 2))) 4)
(neg.f64 (sin.f64 y))
(/.f64 (+.f64 (neg.f64 (*.f64 (sin.f64 y) 4)) (neg.f64 (*.f64 (sin.f64 y) 4))) 8)
(neg.f64 (sin.f64 y))
(/.f64 (+.f64 (neg.f64 (*.f64 (sin.f64 y) 8)) (neg.f64 (*.f64 (sin.f64 y) 8))) 16)
(neg.f64 (sin.f64 y))
(/.f64 (/.f64 (*.f64 2 (*.f64 (sin.f64 y) 8)) -1) 16)
(neg.f64 (sin.f64 y))
(neg.f64 (sin.f64 y))
(sin.f64 (-.f64 y (PI.f64)))
(neg.f64 (sin.f64 y))
(sin.f64 (neg.f64 y))
(neg.f64 (sin.f64 y))
(sin.f64 (+.f64 y (PI.f64)))
(neg.f64 (sin.f64 y))
(sin.f64 (-.f64 (*.f64 (PI.f64) 2) y))
(sin.f64 (-.f64 (*.f64 2 (PI.f64)) y))
(+.f64 1 (sin.f64 y))
(+.f64 (sin.f64 y) 1)
(+.f64 (sin.f64 y) 1)
(+.f64 -1 (+.f64 (sin.f64 y) 2))
(+.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 (+.f64 (sin.f64 y) -1) 2)
(+.f64 (sin.f64 y) 1)
(+.f64 2 (+.f64 (sin.f64 y) -1))
(+.f64 (sin.f64 y) 1)
(+.f64 (+.f64 (sin.f64 y) 2) -1)
(+.f64 (sin.f64 y) 1)
(+.f64 (+.f64 (sin.f64 y) -2) 3)
(+.f64 (sin.f64 y) 1)
(+.f64 -2 (+.f64 (sin.f64 y) 3))
(+.f64 (sin.f64 y) 1)
(+.f64 (*.f64 (+.f64 1 (sin.f64 y)) 1/2) (*.f64 (+.f64 1 (sin.f64 y)) 1/2))
(+.f64 (sin.f64 y) 1)
(+.f64 (+.f64 (sin.f64 y) 3) -2)
(+.f64 (sin.f64 y) 1)
(+.f64 3 (+.f64 (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 2 (*.f64 (+.f64 1 (sin.f64 y)) 1/2))
(+.f64 (sin.f64 y) 1)
(*.f64 (+.f64 2 (*.f64 (sin.f64 y) 2)) 1/2)
(+.f64 (sin.f64 y) 1)
(*.f64 4 (/.f64 (+.f64 1 (sin.f64 y)) 4))
(+.f64 (sin.f64 y) 1)
(*.f64 (*.f64 (+.f64 1 (sin.f64 y)) 4) 1/4)
(+.f64 (sin.f64 y) 1)
(*.f64 1/2 (+.f64 2 (*.f64 (sin.f64 y) 2)))
(+.f64 (sin.f64 y) 1)
(*.f64 1/4 (*.f64 (+.f64 1 (sin.f64 y)) 4))
(+.f64 (sin.f64 y) 1)
(*.f64 (*.f64 (+.f64 1 (sin.f64 y)) 1/2) 2)
(+.f64 (sin.f64 y) 1)
(*.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 2 (*.f64 (sin.f64 y) 2)) 2)
(+.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 (+.f64 1 (sin.f64 y)) 8)) 16)
(+.f64 (sin.f64 y) 1)
(/.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 1 (sin.f64 y)) 8)) (*.f64 2 (*.f64 (+.f64 1 (sin.f64 y)) 8))) 32)
(+.f64 (sin.f64 y) 1)
(+.f64 (*.f64 (sin.f64 (neg.f64 y)) z) 0)
(*.f64 z (neg.f64 (sin.f64 y)))
(*.f64 (sin.f64 y) (neg.f64 z))
(+.f64 0 (*.f64 (sin.f64 (neg.f64 y)) z))
(*.f64 z (neg.f64 (sin.f64 y)))
(*.f64 (sin.f64 y) (neg.f64 z))
(+.f64 (*.f64 z (/.f64 (sin.f64 y) -2)) (*.f64 z (/.f64 (sin.f64 y) -2)))
(*.f64 z (neg.f64 (sin.f64 y)))
(*.f64 (sin.f64 y) (neg.f64 z))
(-.f64 (*.f64 (sin.f64 (neg.f64 y)) z) 0)
(*.f64 z (neg.f64 (sin.f64 y)))
(*.f64 (sin.f64 y) (neg.f64 z))
(/.f64 (*.f64 (sin.f64 (neg.f64 y)) z) 1)
(*.f64 z (neg.f64 (sin.f64 y)))
(*.f64 (sin.f64 y) (neg.f64 z))
(/.f64 (*.f64 (sin.f64 y) (*.f64 -2 z)) 2)
(*.f64 z (neg.f64 (sin.f64 y)))
(*.f64 (sin.f64 y) (neg.f64 z))
(/.f64 (*.f64 (sin.f64 (neg.f64 y)) (*.f64 z 4)) 4)
(*.f64 z (neg.f64 (sin.f64 y)))
(*.f64 (sin.f64 y) (neg.f64 z))
(/.f64 (*.f64 (*.f64 (sin.f64 (neg.f64 y)) z) 8) 8)
(*.f64 z (neg.f64 (sin.f64 y)))
(*.f64 (sin.f64 y) (neg.f64 z))
(/.f64 (*.f64 2 (*.f64 (*.f64 (sin.f64 (neg.f64 y)) z) 8)) 16)
(*.f64 z (neg.f64 (sin.f64 y)))
(*.f64 (sin.f64 y) (neg.f64 z))
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 (sin.f64 (neg.f64 y)) z) 8)) (*.f64 2 (*.f64 (*.f64 (sin.f64 (neg.f64 y)) z) 8))) 32)
(*.f64 z (neg.f64 (sin.f64 y)))
(*.f64 (sin.f64 y) (neg.f64 z))

localize12.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(sin.f64 y)
0.2b
(*.f64 z (-.f64 (-.f64 1 (sin.f64 y)) 1))
0.5b
(-.f64 1 (sin.f64 y))
3.4b
(-.f64 (-.f64 1 (sin.f64 y)) 1)
Compiler

Compiled 26 to 16 computations (38.5% saved)

series1.0ms (0%)

Counts
3 → 40
Calls

12 calls:

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

rewrite99.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
1892×bool.json-1
1892×bool.json-2
1252×bool.json-3
946×rational.json-1
946×rational.json-2
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01039
110935
231435
365035
4137835
5319235
6707035
Stop Event
node limit
Counts
3 → 84
Calls
Call 1
Inputs
(-.f64 (-.f64 1 (sin.f64 y)) 1)
(-.f64 1 (sin.f64 y))
(*.f64 z (-.f64 (-.f64 1 (sin.f64 y)) 1))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 1 (sin.f64 y)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.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 -1 (-.f64 1 (sin.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -2 (neg.f64 (+.f64 (sin.f64 y) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.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 1 (neg.f64 (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 (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 (*.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 (neg.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 (*.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 -2 (*.f64 (sin.f64 y) 1/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 (*.f64 (sin.f64 y) 1/2) -2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1/2 (*.f64 (sin.f64 y) 2))))) (#(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 (/.f64 (neg.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 (neg.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 (neg.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 (+.f64 (*.f64 2 (*.f64 (neg.f64 (sin.f64 y)) 8)) (*.f64 2 (*.f64 (neg.f64 (sin.f64 y)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (neg.f64 (*.f64 (sin.f64 y) 8)) (neg.f64 (*.f64 (sin.f64 y) 8))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (sin.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x sin.f64 (-.f64 y (PI.f64)))))) (#(struct:change #<rule egg-rr> (2) ((x sin.f64 (neg.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x sin.f64 (+.f64 y (PI.f64)))))) (#(struct:change #<rule egg-rr> (2) ((x sin.f64 (-.f64 (*.f64 (PI.f64) 2) y))))) (#(struct:change #<rule egg-rr> (2) ((x not (not (neg.f64 (sin.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x and (neg.f64 (sin.f64 y)) (neg.f64 (sin.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x or (neg.f64 (sin.f64 y)) (neg.f64 (sin.f64 y)))))))
((#(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 (neg.f64 (+.f64 (sin.f64 y) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 (+.f64 (sin.f64 y) -2)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (-.f64 1 (sin.f64 y)) 1/2) (*.f64 (-.f64 1 (sin.f64 y)) 1/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 (sin.f64 y) -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (-.f64 1 (sin.f64 y)) 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 (-.f64 1 (sin.f64 y)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (sin.f64 y) -1) -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 1 (sin.f64 y)) 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)) 1/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 1 (sin.f64 y)) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (sin.f64 y) -1) -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 2 (+.f64 (sin.f64 y) -1)) -2)))) (#(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 (+.f64 (sin.f64 y) -1) 4) -4)))) (#(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 (neg.f64 (*.f64 2 (+.f64 (sin.f64 y) -1))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (-.f64 1 (sin.f64 y)) 8)) (*.f64 2 (*.f64 (-.f64 1 (sin.f64 y)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (neg.f64 (*.f64 2 (+.f64 (sin.f64 y) -1))) (neg.f64 (*.f64 2 (+.f64 (sin.f64 y) -1)))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (+.f64 (sin.f64 y) -1))))) (#(struct:change #<rule egg-rr> (2) ((x not (not (-.f64 1 (sin.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x and (-.f64 1 (sin.f64 y)) (-.f64 1 (sin.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x or (-.f64 1 (sin.f64 y)) (-.f64 1 (sin.f64 y)))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sin.f64 y) (neg.f64 z)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (sin.f64 y) (neg.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 z (*.f64 (sin.f64 y) -1/2)) (*.f64 z (*.f64 (sin.f64 y) -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (sin.f64 y) (neg.f64 z)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 y) (neg.f64 z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 y) (*.f64 z -2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (*.f64 (sin.f64 y) -4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 (sin.f64 y) (neg.f64 z)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 (sin.f64 y) (neg.f64 z)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 (sin.f64 y) (neg.f64 z)) 8)) (*.f64 2 (*.f64 (*.f64 (sin.f64 y) (neg.f64 z)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 (sin.f64 y) (neg.f64 z))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 (sin.f64 y) (neg.f64 z)) (*.f64 (sin.f64 y) (neg.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 (sin.f64 y) (neg.f64 z)) (*.f64 (sin.f64 y) (neg.f64 z)))))))

simplify209.0ms (1.3%)

Algorithm
egg-herbie
Rules
2716×rational.json-simplify-2
1870×rational.json-simplify-35
1176×rational.json-simplify-48
1162×rational.json-simplify-1
1096×rational.json-simplify-51
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01871660
14101648
210261648
323311624
441201624
552271624
657741624
768251624
874501624
978491624
Stop Event
node limit
Counts
124 → 131
Calls
Call 1
Inputs
(*.f64 -1 y)
(+.f64 (*.f64 1/6 (pow.f64 y 3)) (*.f64 -1 y))
(+.f64 (*.f64 -1/120 (pow.f64 y 5)) (+.f64 (*.f64 1/6 (pow.f64 y 3)) (*.f64 -1 y)))
(+.f64 (*.f64 1/5040 (pow.f64 y 7)) (+.f64 (*.f64 -1/120 (pow.f64 y 5)) (+.f64 (*.f64 1/6 (pow.f64 y 3)) (*.f64 -1 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 (sin.f64 y))
1
(+.f64 1 (*.f64 -1 y))
(+.f64 1 (+.f64 (*.f64 -1 y) (*.f64 1/6 (pow.f64 y 3))))
(+.f64 1 (+.f64 (*.f64 -1/120 (pow.f64 y 5)) (+.f64 (*.f64 -1 y) (*.f64 1/6 (pow.f64 y 3)))))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(*.f64 -1 (*.f64 y z))
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 1/6 (*.f64 (pow.f64 y 3) z)))
(+.f64 (*.f64 -1 (*.f64 y z)) (+.f64 (*.f64 -1/120 (*.f64 (pow.f64 y 5) z)) (*.f64 1/6 (*.f64 (pow.f64 y 3) z))))
(+.f64 (*.f64 1/5040 (*.f64 (pow.f64 y 7) z)) (+.f64 (*.f64 -1 (*.f64 y z)) (+.f64 (*.f64 -1/120 (*.f64 (pow.f64 y 5) z)) (*.f64 1/6 (*.f64 (pow.f64 y 3) z)))))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(+.f64 (-.f64 1 (sin.f64 y)) -1)
(+.f64 (neg.f64 (sin.f64 y)) 0)
(+.f64 0 (neg.f64 (sin.f64 y)))
(+.f64 -1 (-.f64 1 (sin.f64 y)))
(+.f64 -2 (neg.f64 (+.f64 (sin.f64 y) -2)))
(+.f64 (neg.f64 (+.f64 (sin.f64 y) -2)) -2)
(+.f64 (*.f64 (sin.f64 y) -1/2) (*.f64 (sin.f64 y) -1/2))
(*.f64 1 (neg.f64 (sin.f64 y)))
(*.f64 (sin.f64 y) -1)
(*.f64 (neg.f64 (sin.f64 y)) 1)
(*.f64 -1 (sin.f64 y))
(*.f64 2 (*.f64 (sin.f64 y) -1/2))
(*.f64 (*.f64 (sin.f64 y) -2) 1/2)
(*.f64 (*.f64 (sin.f64 y) 2) -1/2)
(*.f64 4 (/.f64 (sin.f64 y) -4))
(*.f64 4 (/.f64 (neg.f64 (sin.f64 y)) 4))
(*.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 -2 (*.f64 (sin.f64 y) 1/2))
(*.f64 (*.f64 (sin.f64 y) -1/2) 2)
(*.f64 1/4 (*.f64 (sin.f64 y) -4))
(*.f64 (*.f64 (sin.f64 y) 1/2) -2)
(*.f64 -1/2 (*.f64 (sin.f64 y) 2))
(*.f64 -1/4 (*.f64 (sin.f64 y) 4))
(*.f64 (/.f64 (sin.f64 y) -4) 4)
(*.f64 (/.f64 (neg.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 (neg.f64 (sin.f64 y)) 8) 8)
(/.f64 (*.f64 (sin.f64 y) 8) -8)
(/.f64 (*.f64 2 (*.f64 (neg.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 (+.f64 (*.f64 2 (*.f64 (neg.f64 (sin.f64 y)) 8)) (*.f64 2 (*.f64 (neg.f64 (sin.f64 y)) 8))) 32)
(/.f64 (+.f64 (neg.f64 (*.f64 (sin.f64 y) 8)) (neg.f64 (*.f64 (sin.f64 y) 8))) 16)
(neg.f64 (sin.f64 y))
(sin.f64 (-.f64 y (PI.f64)))
(sin.f64 (neg.f64 y))
(sin.f64 (+.f64 y (PI.f64)))
(sin.f64 (-.f64 (*.f64 (PI.f64) 2) y))
(+.f64 (-.f64 1 (sin.f64 y)) 0)
(+.f64 0 (-.f64 1 (sin.f64 y)))
(+.f64 -1 (neg.f64 (+.f64 (sin.f64 y) -2)))
(+.f64 (neg.f64 (+.f64 (sin.f64 y) -2)) -1)
(+.f64 (*.f64 (-.f64 1 (sin.f64 y)) 1/2) (*.f64 (-.f64 1 (sin.f64 y)) 1/2))
(*.f64 1 (-.f64 1 (sin.f64 y)))
(*.f64 (-.f64 1 (sin.f64 y)) 1)
(*.f64 -1 (+.f64 (sin.f64 y) -1))
(*.f64 2 (*.f64 (-.f64 1 (sin.f64 y)) 1/2))
(*.f64 4 (/.f64 (-.f64 1 (sin.f64 y)) 4))
(*.f64 (*.f64 (-.f64 1 (sin.f64 y)) 2) 1/2)
(*.f64 (+.f64 (sin.f64 y) -1) -1)
(*.f64 (*.f64 (-.f64 1 (sin.f64 y)) 4) 1/4)
(*.f64 1/2 (*.f64 (-.f64 1 (sin.f64 y)) 2))
(*.f64 1/4 (*.f64 (-.f64 1 (sin.f64 y)) 4))
(*.f64 (*.f64 (-.f64 1 (sin.f64 y)) 1/2) 2)
(*.f64 (/.f64 (-.f64 1 (sin.f64 y)) 4) 4)
(/.f64 (-.f64 1 (sin.f64 y)) 1)
(/.f64 (*.f64 (-.f64 1 (sin.f64 y)) 2) 2)
(/.f64 (+.f64 (sin.f64 y) -1) -1)
(/.f64 (*.f64 (-.f64 1 (sin.f64 y)) 4) 4)
(/.f64 (*.f64 2 (+.f64 (sin.f64 y) -1)) -2)
(/.f64 (*.f64 (-.f64 1 (sin.f64 y)) 8) 8)
(/.f64 (*.f64 (+.f64 (sin.f64 y) -1) 4) -4)
(/.f64 (*.f64 2 (*.f64 (-.f64 1 (sin.f64 y)) 8)) 16)
(/.f64 (neg.f64 (*.f64 2 (+.f64 (sin.f64 y) -1))) 2)
(/.f64 (+.f64 (*.f64 2 (*.f64 (-.f64 1 (sin.f64 y)) 8)) (*.f64 2 (*.f64 (-.f64 1 (sin.f64 y)) 8))) 32)
(/.f64 (+.f64 (neg.f64 (*.f64 2 (+.f64 (sin.f64 y) -1))) (neg.f64 (*.f64 2 (+.f64 (sin.f64 y) -1)))) 4)
(neg.f64 (+.f64 (sin.f64 y) -1))
(+.f64 (*.f64 (sin.f64 y) (neg.f64 z)) 0)
(+.f64 0 (*.f64 (sin.f64 y) (neg.f64 z)))
(+.f64 (*.f64 z (*.f64 (sin.f64 y) -1/2)) (*.f64 z (*.f64 (sin.f64 y) -1/2)))
(-.f64 (*.f64 (sin.f64 y) (neg.f64 z)) 0)
(/.f64 (*.f64 (sin.f64 y) (neg.f64 z)) 1)
(/.f64 (*.f64 (sin.f64 y) (*.f64 z -2)) 2)
(/.f64 (*.f64 z (*.f64 (sin.f64 y) -4)) 4)
(/.f64 (*.f64 (*.f64 (sin.f64 y) (neg.f64 z)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 (sin.f64 y) (neg.f64 z)) 8)) 16)
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 (sin.f64 y) (neg.f64 z)) 8)) (*.f64 2 (*.f64 (*.f64 (sin.f64 y) (neg.f64 z)) 8))) 32)
Outputs
(*.f64 -1 y)
(neg.f64 y)
(+.f64 (*.f64 1/6 (pow.f64 y 3)) (*.f64 -1 y))
(+.f64 (neg.f64 y) (*.f64 1/6 (pow.f64 y 3)))
(+.f64 (*.f64 -1/120 (pow.f64 y 5)) (+.f64 (*.f64 1/6 (pow.f64 y 3)) (*.f64 -1 y)))
(+.f64 (neg.f64 y) (+.f64 (*.f64 1/6 (pow.f64 y 3)) (*.f64 -1/120 (pow.f64 y 5))))
(+.f64 (*.f64 1/5040 (pow.f64 y 7)) (+.f64 (*.f64 -1/120 (pow.f64 y 5)) (+.f64 (*.f64 1/6 (pow.f64 y 3)) (*.f64 -1 y))))
(+.f64 (*.f64 -1/120 (pow.f64 y 5)) (+.f64 (+.f64 (neg.f64 y) (*.f64 1/6 (pow.f64 y 3))) (*.f64 1/5040 (pow.f64 y 7))))
(+.f64 (*.f64 1/6 (pow.f64 y 3)) (+.f64 (+.f64 (neg.f64 y) (*.f64 -1/120 (pow.f64 y 5))) (*.f64 1/5040 (pow.f64 y 7))))
(+.f64 (neg.f64 y) (+.f64 (*.f64 1/5040 (pow.f64 y 7)) (+.f64 (*.f64 1/6 (pow.f64 y 3)) (*.f64 -1/120 (pow.f64 y 5)))))
(+.f64 (neg.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)))))
(+.f64 (*.f64 1/6 (pow.f64 y 3)) (+.f64 (neg.f64 y) (+.f64 (*.f64 -1/120 (pow.f64 y 5)) (*.f64 1/5040 (pow.f64 y 7)))))
(*.f64 -1 (sin.f64 y))
(neg.f64 (sin.f64 y))
(*.f64 -1 (sin.f64 y))
(neg.f64 (sin.f64 y))
(*.f64 -1 (sin.f64 y))
(neg.f64 (sin.f64 y))
(*.f64 -1 (sin.f64 y))
(neg.f64 (sin.f64 y))
(*.f64 -1 (sin.f64 y))
(neg.f64 (sin.f64 y))
(*.f64 -1 (sin.f64 y))
(neg.f64 (sin.f64 y))
(*.f64 -1 (sin.f64 y))
(neg.f64 (sin.f64 y))
(*.f64 -1 (sin.f64 y))
(neg.f64 (sin.f64 y))
1
(+.f64 1 (*.f64 -1 y))
(+.f64 (neg.f64 y) 1)
(-.f64 1 y)
(+.f64 1 (+.f64 (*.f64 -1 y) (*.f64 1/6 (pow.f64 y 3))))
(+.f64 (neg.f64 y) (+.f64 (*.f64 1/6 (pow.f64 y 3)) 1))
(+.f64 (*.f64 1/6 (pow.f64 y 3)) (-.f64 1 y))
(+.f64 1 (+.f64 (*.f64 -1/120 (pow.f64 y 5)) (+.f64 (*.f64 -1 y) (*.f64 1/6 (pow.f64 y 3)))))
(+.f64 (*.f64 -1/120 (pow.f64 y 5)) (+.f64 (neg.f64 y) (+.f64 (*.f64 1/6 (pow.f64 y 3)) 1)))
(+.f64 (*.f64 -1/120 (pow.f64 y 5)) (+.f64 (*.f64 1/6 (pow.f64 y 3)) (-.f64 1 y)))
(+.f64 (*.f64 1/6 (pow.f64 y 3)) (+.f64 (-.f64 1 y) (*.f64 -1/120 (pow.f64 y 5))))
(+.f64 (*.f64 1/6 (pow.f64 y 3)) (+.f64 (*.f64 -1/120 (pow.f64 y 5)) (-.f64 1 y)))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(*.f64 z (neg.f64 (sin.f64 y)))
(*.f64 (sin.f64 y) (neg.f64 z))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(*.f64 z (neg.f64 (sin.f64 y)))
(*.f64 (sin.f64 y) (neg.f64 z))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(*.f64 z (neg.f64 (sin.f64 y)))
(*.f64 (sin.f64 y) (neg.f64 z))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(*.f64 z (neg.f64 (sin.f64 y)))
(*.f64 (sin.f64 y) (neg.f64 z))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(*.f64 z (neg.f64 (sin.f64 y)))
(*.f64 (sin.f64 y) (neg.f64 z))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(*.f64 z (neg.f64 (sin.f64 y)))
(*.f64 (sin.f64 y) (neg.f64 z))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(*.f64 z (neg.f64 (sin.f64 y)))
(*.f64 (sin.f64 y) (neg.f64 z))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(*.f64 z (neg.f64 (sin.f64 y)))
(*.f64 (sin.f64 y) (neg.f64 z))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(*.f64 z (neg.f64 (sin.f64 y)))
(*.f64 (sin.f64 y) (neg.f64 z))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(*.f64 z (neg.f64 (sin.f64 y)))
(*.f64 (sin.f64 y) (neg.f64 z))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(*.f64 z (neg.f64 (sin.f64 y)))
(*.f64 (sin.f64 y) (neg.f64 z))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(*.f64 z (neg.f64 (sin.f64 y)))
(*.f64 (sin.f64 y) (neg.f64 z))
(*.f64 -1 (*.f64 y z))
(*.f64 y (neg.f64 z))
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 1/6 (*.f64 (pow.f64 y 3) z)))
(+.f64 (*.f64 y (neg.f64 z)) (*.f64 1/6 (*.f64 (pow.f64 y 3) z)))
(+.f64 (*.f64 y (neg.f64 z)) (*.f64 (pow.f64 y 3) (*.f64 1/6 z)))
(*.f64 z (+.f64 (neg.f64 y) (*.f64 1/6 (pow.f64 y 3))))
(*.f64 (+.f64 (neg.f64 y) (*.f64 1/6 (pow.f64 y 3))) z)
(+.f64 (*.f64 -1 (*.f64 y z)) (+.f64 (*.f64 -1/120 (*.f64 (pow.f64 y 5) z)) (*.f64 1/6 (*.f64 (pow.f64 y 3) z))))
(+.f64 (*.f64 y (neg.f64 z)) (+.f64 (*.f64 1/6 (*.f64 (pow.f64 y 3) z)) (*.f64 -1/120 (*.f64 (pow.f64 y 5) z))))
(+.f64 (*.f64 (pow.f64 y 3) (*.f64 1/6 z)) (+.f64 (*.f64 y (neg.f64 z)) (*.f64 -1/120 (*.f64 (pow.f64 y 5) z))))
(+.f64 (*.f64 (pow.f64 y 3) (*.f64 1/6 z)) (*.f64 z (+.f64 (neg.f64 y) (*.f64 -1/120 (pow.f64 y 5)))))
(+.f64 (*.f64 y (neg.f64 z)) (*.f64 z (+.f64 (*.f64 1/6 (pow.f64 y 3)) (*.f64 -1/120 (pow.f64 y 5)))))
(+.f64 (*.f64 1/5040 (*.f64 (pow.f64 y 7) z)) (+.f64 (*.f64 -1 (*.f64 y z)) (+.f64 (*.f64 -1/120 (*.f64 (pow.f64 y 5) z)) (*.f64 1/6 (*.f64 (pow.f64 y 3) z)))))
(+.f64 (*.f64 y (neg.f64 z)) (+.f64 (+.f64 (*.f64 1/6 (*.f64 (pow.f64 y 3) z)) (*.f64 -1/120 (*.f64 (pow.f64 y 5) z))) (*.f64 (pow.f64 y 7) (*.f64 z 1/5040))))
(+.f64 (+.f64 (*.f64 1/6 (*.f64 (pow.f64 y 3) z)) (*.f64 -1/120 (*.f64 (pow.f64 y 5) z))) (+.f64 (*.f64 (pow.f64 y 7) (*.f64 1/5040 z)) (*.f64 y (neg.f64 z))))
(+.f64 (*.f64 y (neg.f64 z)) (+.f64 (*.f64 -1/120 (*.f64 (pow.f64 y 5) z)) (+.f64 (*.f64 (pow.f64 y 3) (*.f64 1/6 z)) (*.f64 (pow.f64 y 7) (*.f64 1/5040 z)))))
(+.f64 (*.f64 z (+.f64 (neg.f64 y) (*.f64 1/6 (pow.f64 y 3)))) (*.f64 z (+.f64 (*.f64 -1/120 (pow.f64 y 5)) (*.f64 1/5040 (pow.f64 y 7)))))
(+.f64 (*.f64 (+.f64 (neg.f64 y) (*.f64 1/6 (pow.f64 y 3))) z) (*.f64 z (+.f64 (*.f64 -1/120 (pow.f64 y 5)) (*.f64 1/5040 (pow.f64 y 7)))))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(*.f64 z (neg.f64 (sin.f64 y)))
(*.f64 (sin.f64 y) (neg.f64 z))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(*.f64 z (neg.f64 (sin.f64 y)))
(*.f64 (sin.f64 y) (neg.f64 z))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(*.f64 z (neg.f64 (sin.f64 y)))
(*.f64 (sin.f64 y) (neg.f64 z))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(*.f64 z (neg.f64 (sin.f64 y)))
(*.f64 (sin.f64 y) (neg.f64 z))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(*.f64 z (neg.f64 (sin.f64 y)))
(*.f64 (sin.f64 y) (neg.f64 z))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(*.f64 z (neg.f64 (sin.f64 y)))
(*.f64 (sin.f64 y) (neg.f64 z))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(*.f64 z (neg.f64 (sin.f64 y)))
(*.f64 (sin.f64 y) (neg.f64 z))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(*.f64 z (neg.f64 (sin.f64 y)))
(*.f64 (sin.f64 y) (neg.f64 z))
(+.f64 (-.f64 1 (sin.f64 y)) -1)
(neg.f64 (sin.f64 y))
(+.f64 (neg.f64 (sin.f64 y)) 0)
(neg.f64 (sin.f64 y))
(+.f64 0 (neg.f64 (sin.f64 y)))
(neg.f64 (sin.f64 y))
(+.f64 -1 (-.f64 1 (sin.f64 y)))
(neg.f64 (sin.f64 y))
(+.f64 -2 (neg.f64 (+.f64 (sin.f64 y) -2)))
(neg.f64 (sin.f64 y))
(+.f64 (neg.f64 (+.f64 (sin.f64 y) -2)) -2)
(neg.f64 (sin.f64 y))
(+.f64 (*.f64 (sin.f64 y) -1/2) (*.f64 (sin.f64 y) -1/2))
(neg.f64 (sin.f64 y))
(*.f64 1 (neg.f64 (sin.f64 y)))
(neg.f64 (sin.f64 y))
(*.f64 (sin.f64 y) -1)
(neg.f64 (sin.f64 y))
(*.f64 (neg.f64 (sin.f64 y)) 1)
(neg.f64 (sin.f64 y))
(*.f64 -1 (sin.f64 y))
(neg.f64 (sin.f64 y))
(*.f64 2 (*.f64 (sin.f64 y) -1/2))
(neg.f64 (sin.f64 y))
(*.f64 (*.f64 (sin.f64 y) -2) 1/2)
(neg.f64 (sin.f64 y))
(*.f64 (*.f64 (sin.f64 y) 2) -1/2)
(neg.f64 (sin.f64 y))
(*.f64 4 (/.f64 (sin.f64 y) -4))
(neg.f64 (sin.f64 y))
(*.f64 4 (/.f64 (neg.f64 (sin.f64 y)) 4))
(neg.f64 (sin.f64 y))
(*.f64 (*.f64 (sin.f64 y) 4) -1/4)
(neg.f64 (sin.f64 y))
(*.f64 (*.f64 (sin.f64 y) -4) 1/4)
(neg.f64 (sin.f64 y))
(*.f64 1/2 (*.f64 (sin.f64 y) -2))
(neg.f64 (sin.f64 y))
(*.f64 -2 (*.f64 (sin.f64 y) 1/2))
(neg.f64 (sin.f64 y))
(*.f64 (*.f64 (sin.f64 y) -1/2) 2)
(neg.f64 (sin.f64 y))
(*.f64 1/4 (*.f64 (sin.f64 y) -4))
(neg.f64 (sin.f64 y))
(*.f64 (*.f64 (sin.f64 y) 1/2) -2)
(neg.f64 (sin.f64 y))
(*.f64 -1/2 (*.f64 (sin.f64 y) 2))
(neg.f64 (sin.f64 y))
(*.f64 -1/4 (*.f64 (sin.f64 y) 4))
(neg.f64 (sin.f64 y))
(*.f64 (/.f64 (sin.f64 y) -4) 4)
(neg.f64 (sin.f64 y))
(*.f64 (/.f64 (neg.f64 (sin.f64 y)) 4) 4)
(neg.f64 (sin.f64 y))
(/.f64 (sin.f64 y) -1)
(neg.f64 (sin.f64 y))
(/.f64 (neg.f64 (sin.f64 y)) 1)
(neg.f64 (sin.f64 y))
(/.f64 (*.f64 (sin.f64 y) -2) 2)
(neg.f64 (sin.f64 y))
(/.f64 (*.f64 (sin.f64 y) 2) -2)
(neg.f64 (sin.f64 y))
(/.f64 (*.f64 (sin.f64 y) 4) -4)
(neg.f64 (sin.f64 y))
(/.f64 (*.f64 (sin.f64 y) -4) 4)
(neg.f64 (sin.f64 y))
(/.f64 (*.f64 (neg.f64 (sin.f64 y)) 8) 8)
(neg.f64 (sin.f64 y))
(/.f64 (*.f64 (sin.f64 y) 8) -8)
(neg.f64 (sin.f64 y))
(/.f64 (*.f64 2 (*.f64 (neg.f64 (sin.f64 y)) 8)) 16)
(neg.f64 (sin.f64 y))
(/.f64 (*.f64 2 (*.f64 (sin.f64 y) 8)) -16)
(neg.f64 (sin.f64 y))
(/.f64 (neg.f64 (*.f64 (sin.f64 y) 8)) 8)
(neg.f64 (sin.f64 y))
(/.f64 (+.f64 (*.f64 2 (*.f64 (neg.f64 (sin.f64 y)) 8)) (*.f64 2 (*.f64 (neg.f64 (sin.f64 y)) 8))) 32)
(neg.f64 (sin.f64 y))
(/.f64 (+.f64 (neg.f64 (*.f64 (sin.f64 y) 8)) (neg.f64 (*.f64 (sin.f64 y) 8))) 16)
(neg.f64 (sin.f64 y))
(neg.f64 (sin.f64 y))
(sin.f64 (-.f64 y (PI.f64)))
(neg.f64 (sin.f64 y))
(sin.f64 (neg.f64 y))
(neg.f64 (sin.f64 y))
(sin.f64 (+.f64 y (PI.f64)))
(neg.f64 (sin.f64 y))
(sin.f64 (-.f64 (*.f64 (PI.f64) 2) y))
(sin.f64 (-.f64 (*.f64 2 (PI.f64)) y))
(+.f64 (-.f64 1 (sin.f64 y)) 0)
(-.f64 1 (sin.f64 y))
(+.f64 0 (-.f64 1 (sin.f64 y)))
(-.f64 1 (sin.f64 y))
(+.f64 -1 (neg.f64 (+.f64 (sin.f64 y) -2)))
(-.f64 1 (sin.f64 y))
(+.f64 (neg.f64 (+.f64 (sin.f64 y) -2)) -1)
(-.f64 1 (sin.f64 y))
(+.f64 (*.f64 (-.f64 1 (sin.f64 y)) 1/2) (*.f64 (-.f64 1 (sin.f64 y)) 1/2))
(-.f64 1 (sin.f64 y))
(*.f64 1 (-.f64 1 (sin.f64 y)))
(-.f64 1 (sin.f64 y))
(*.f64 (-.f64 1 (sin.f64 y)) 1)
(-.f64 1 (sin.f64 y))
(*.f64 -1 (+.f64 (sin.f64 y) -1))
(-.f64 1 (sin.f64 y))
(*.f64 2 (*.f64 (-.f64 1 (sin.f64 y)) 1/2))
(-.f64 1 (sin.f64 y))
(*.f64 4 (/.f64 (-.f64 1 (sin.f64 y)) 4))
(-.f64 1 (sin.f64 y))
(*.f64 (*.f64 (-.f64 1 (sin.f64 y)) 2) 1/2)
(-.f64 1 (sin.f64 y))
(*.f64 (+.f64 (sin.f64 y) -1) -1)
(-.f64 1 (sin.f64 y))
(*.f64 (*.f64 (-.f64 1 (sin.f64 y)) 4) 1/4)
(-.f64 1 (sin.f64 y))
(*.f64 1/2 (*.f64 (-.f64 1 (sin.f64 y)) 2))
(-.f64 1 (sin.f64 y))
(*.f64 1/4 (*.f64 (-.f64 1 (sin.f64 y)) 4))
(-.f64 1 (sin.f64 y))
(*.f64 (*.f64 (-.f64 1 (sin.f64 y)) 1/2) 2)
(-.f64 1 (sin.f64 y))
(*.f64 (/.f64 (-.f64 1 (sin.f64 y)) 4) 4)
(-.f64 1 (sin.f64 y))
(/.f64 (-.f64 1 (sin.f64 y)) 1)
(-.f64 1 (sin.f64 y))
(/.f64 (*.f64 (-.f64 1 (sin.f64 y)) 2) 2)
(-.f64 1 (sin.f64 y))
(/.f64 (+.f64 (sin.f64 y) -1) -1)
(-.f64 1 (sin.f64 y))
(/.f64 (*.f64 (-.f64 1 (sin.f64 y)) 4) 4)
(-.f64 1 (sin.f64 y))
(/.f64 (*.f64 2 (+.f64 (sin.f64 y) -1)) -2)
(-.f64 1 (sin.f64 y))
(/.f64 (*.f64 (-.f64 1 (sin.f64 y)) 8) 8)
(-.f64 1 (sin.f64 y))
(/.f64 (*.f64 (+.f64 (sin.f64 y) -1) 4) -4)
(-.f64 1 (sin.f64 y))
(/.f64 (*.f64 2 (*.f64 (-.f64 1 (sin.f64 y)) 8)) 16)
(-.f64 1 (sin.f64 y))
(/.f64 (neg.f64 (*.f64 2 (+.f64 (sin.f64 y) -1))) 2)
(-.f64 1 (sin.f64 y))
(/.f64 (+.f64 (*.f64 2 (*.f64 (-.f64 1 (sin.f64 y)) 8)) (*.f64 2 (*.f64 (-.f64 1 (sin.f64 y)) 8))) 32)
(-.f64 1 (sin.f64 y))
(/.f64 (+.f64 (neg.f64 (*.f64 2 (+.f64 (sin.f64 y) -1))) (neg.f64 (*.f64 2 (+.f64 (sin.f64 y) -1)))) 4)
(-.f64 1 (sin.f64 y))
(neg.f64 (+.f64 (sin.f64 y) -1))
(-.f64 1 (sin.f64 y))
(+.f64 (*.f64 (sin.f64 y) (neg.f64 z)) 0)
(*.f64 z (neg.f64 (sin.f64 y)))
(*.f64 (sin.f64 y) (neg.f64 z))
(+.f64 0 (*.f64 (sin.f64 y) (neg.f64 z)))
(*.f64 z (neg.f64 (sin.f64 y)))
(*.f64 (sin.f64 y) (neg.f64 z))
(+.f64 (*.f64 z (*.f64 (sin.f64 y) -1/2)) (*.f64 z (*.f64 (sin.f64 y) -1/2)))
(*.f64 z (neg.f64 (sin.f64 y)))
(*.f64 (sin.f64 y) (neg.f64 z))
(-.f64 (*.f64 (sin.f64 y) (neg.f64 z)) 0)
(*.f64 z (neg.f64 (sin.f64 y)))
(*.f64 (sin.f64 y) (neg.f64 z))
(/.f64 (*.f64 (sin.f64 y) (neg.f64 z)) 1)
(*.f64 z (neg.f64 (sin.f64 y)))
(*.f64 (sin.f64 y) (neg.f64 z))
(/.f64 (*.f64 (sin.f64 y) (*.f64 z -2)) 2)
(*.f64 z (neg.f64 (sin.f64 y)))
(*.f64 (sin.f64 y) (neg.f64 z))
(/.f64 (*.f64 z (*.f64 (sin.f64 y) -4)) 4)
(*.f64 z (neg.f64 (sin.f64 y)))
(*.f64 (sin.f64 y) (neg.f64 z))
(/.f64 (*.f64 (*.f64 (sin.f64 y) (neg.f64 z)) 8) 8)
(*.f64 z (neg.f64 (sin.f64 y)))
(*.f64 (sin.f64 y) (neg.f64 z))
(/.f64 (*.f64 2 (*.f64 (*.f64 (sin.f64 y) (neg.f64 z)) 8)) 16)
(*.f64 z (neg.f64 (sin.f64 y)))
(*.f64 (sin.f64 y) (neg.f64 z))
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 (sin.f64 y) (neg.f64 z)) 8)) (*.f64 2 (*.f64 (*.f64 (sin.f64 y) (neg.f64 z)) 8))) 32)
(*.f64 z (neg.f64 (sin.f64 y)))
(*.f64 (sin.f64 y) (neg.f64 z))

eval467.0ms (2.9%)

Compiler

Compiled 5543 to 3691 computations (33.4% saved)

prune79.0ms (0.5%)

Pruning

12 alts after pruning (3 fresh and 9 done)

PrunedKeptTotal
New4412443
Fresh011
Picked011
Done088
Total44112453
Error
0.1b
Counts
453 → 12
Alt Table
Click to see full alt table
StatusErrorProgram
26.0b
(-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (+.f64 1 -1)))
0.1b
(-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y)))
23.4b
(-.f64 (*.f64 x (cos.f64 y)) (*.f64 z y))
16.7b
(-.f64 x (*.f64 z (sin.f64 y)))
34.2b
(-.f64 x (*.f64 z y))
44.4b
(*.f64 z (-.f64 (-.f64 1 (sin.f64 y)) 1))
61.4b
(*.f64 z (-.f64 (-.f64 1 y) 1))
44.4b
(*.f64 z (-.f64 1 (-.f64 (sin.f64 y) -1)))
62.1b
(*.f64 z (-.f64 1 1))
36.9b
(*.f64 z (sin.f64 (neg.f64 y)))
54.1b
(*.f64 z (neg.f64 y))
41.8b
x
Compiler

Compiled 112 to 83 computations (25.9% saved)

localize5.0ms (0%)

Compiler

Compiled 13 to 11 computations (15.4% saved)

localize8.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
3.0b
(-.f64 (-.f64 1 y) 1)
Compiler

Compiled 21 to 15 computations (28.6% saved)

series0.0ms (0%)

Counts
1 → 12
Calls

3 calls:

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

rewrite104.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
1862×bool.json-1
1862×bool.json-2
1228×rational.json-simplify-35
1136×bool.json-3
1122×rational.json-1
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
067
1715
22325
34635
49125
520465
644065
773095
Stop Event
node limit
Counts
1 → 47
Calls
Call 1
Inputs
(-.f64 (-.f64 1 y) 1)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 1 y) -1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 y) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (neg.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (-.f64 1 y))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 (+.f64 y -2)) -2)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -2 (neg.f64 (+.f64 y -2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (-.f64 1 y) 1/2) (-.f64 (*.f64 (-.f64 1 y) 1/2) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y -1/2) (*.f64 y -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (neg.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 y -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 y) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 y)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 y -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y -2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 y -4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (*.f64 y -1/2) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (/.f64 y -4) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 y y) -1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y -4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y 4) -1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 y -2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -2 (*.f64 y 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y 1/2) -2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y -1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 y -4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1/2 (+.f64 y y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1/4 (*.f64 y 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 y -4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 y -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 y) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y -2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 y y) -2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y -4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y 4) -4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y 8) -8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y -8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 y 8)) -16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 y -8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 y 8)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 y 8))) -32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 y -8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (neg.f64 (*.f64 y 8))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 2 (*.f64 y 8))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 y -8))) (*.f64 2 (*.f64 2 (*.f64 y -8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (neg.f64 (*.f64 y 8))) (*.f64 2 (neg.f64 (*.f64 y 8)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (neg.f64 (*.f64 2 (*.f64 y 8))) (neg.f64 (*.f64 2 (*.f64 y 8)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 y)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (neg.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x and (neg.f64 y) (neg.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x or (neg.f64 y) (neg.f64 y))))))

simplify655.0ms (4%)

Algorithm
egg-herbie
Rules
3438×rational.json-simplify-35
2462×rational.json-simplify-1
1426×rational.json-simplify-2
1234×rational.json-simplify-41
1210×rational.json-simplify-48
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
095319
1202319
2411319
31171319
42532319
54224319
64487319
74728319
84913319
95062319
105204319
115992319
126053319
136239319
146545319
156729319
166769319
176913319
187055319
197197319
207339319
217481319
227884319
Stop Event
node limit
Counts
59 → 47
Calls
Call 1
Inputs
(*.f64 -1 y)
(*.f64 -1 y)
(*.f64 -1 y)
(*.f64 -1 y)
(*.f64 -1 y)
(*.f64 -1 y)
(*.f64 -1 y)
(*.f64 -1 y)
(*.f64 -1 y)
(*.f64 -1 y)
(*.f64 -1 y)
(*.f64 -1 y)
(+.f64 (-.f64 1 y) -1)
(+.f64 (neg.f64 y) 0)
(+.f64 0 (neg.f64 y))
(+.f64 -1 (-.f64 1 y))
(+.f64 (neg.f64 (+.f64 y -2)) -2)
(+.f64 -2 (neg.f64 (+.f64 y -2)))
(+.f64 (*.f64 (-.f64 1 y) 1/2) (-.f64 (*.f64 (-.f64 1 y) 1/2) 1))
(+.f64 (*.f64 y -1/2) (*.f64 y -1/2))
(*.f64 1 (neg.f64 y))
(*.f64 y -1)
(*.f64 (neg.f64 y) 1)
(*.f64 -1 y)
(*.f64 2 (*.f64 y -1/2))
(*.f64 (*.f64 y -2) 1/2)
(*.f64 4 (/.f64 y -4))
(*.f64 4 (*.f64 (*.f64 y -1/2) 1/2))
(*.f64 4 (*.f64 (/.f64 y -4) 1))
(*.f64 (+.f64 y y) -1/2)
(*.f64 (*.f64 y -4) 1/4)
(*.f64 (*.f64 y 4) -1/4)
(*.f64 1/2 (*.f64 y -2))
(*.f64 -2 (*.f64 y 1/2))
(*.f64 (*.f64 y 1/2) -2)
(*.f64 (*.f64 y -1/2) 2)
(*.f64 1/4 (*.f64 y -4))
(*.f64 -1/2 (+.f64 y y))
(*.f64 -1/4 (*.f64 y 4))
(*.f64 (/.f64 y -4) 4)
(/.f64 y -1)
(/.f64 (neg.f64 y) 1)
(/.f64 (*.f64 y -2) 2)
(/.f64 (+.f64 y y) -2)
(/.f64 (*.f64 y -4) 4)
(/.f64 (*.f64 y 4) -4)
(/.f64 (*.f64 y 8) -8)
(/.f64 (*.f64 y -8) 8)
(/.f64 (*.f64 2 (*.f64 y 8)) -16)
(/.f64 (*.f64 2 (*.f64 y -8)) 16)
(/.f64 (neg.f64 (*.f64 y 8)) 8)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 y 8))) -32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 y -8))) 32)
(/.f64 (*.f64 2 (neg.f64 (*.f64 y 8))) 16)
(/.f64 (neg.f64 (*.f64 2 (*.f64 y 8))) 16)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 y -8))) (*.f64 2 (*.f64 2 (*.f64 y -8)))) 64)
(/.f64 (+.f64 (*.f64 2 (neg.f64 (*.f64 y 8))) (*.f64 2 (neg.f64 (*.f64 y 8)))) 32)
(/.f64 (+.f64 (neg.f64 (*.f64 2 (*.f64 y 8))) (neg.f64 (*.f64 2 (*.f64 y 8)))) 32)
(neg.f64 y)
Outputs
(*.f64 -1 y)
(neg.f64 y)
(*.f64 -1 y)
(neg.f64 y)
(*.f64 -1 y)
(neg.f64 y)
(*.f64 -1 y)
(neg.f64 y)
(*.f64 -1 y)
(neg.f64 y)
(*.f64 -1 y)
(neg.f64 y)
(*.f64 -1 y)
(neg.f64 y)
(*.f64 -1 y)
(neg.f64 y)
(*.f64 -1 y)
(neg.f64 y)
(*.f64 -1 y)
(neg.f64 y)
(*.f64 -1 y)
(neg.f64 y)
(*.f64 -1 y)
(neg.f64 y)
(+.f64 (-.f64 1 y) -1)
(neg.f64 y)
(+.f64 (neg.f64 y) 0)
(neg.f64 y)
(+.f64 0 (neg.f64 y))
(neg.f64 y)
(+.f64 -1 (-.f64 1 y))
(neg.f64 y)
(+.f64 (neg.f64 (+.f64 y -2)) -2)
(+.f64 -2 (neg.f64 (+.f64 y -2)))
(+.f64 -2 (neg.f64 (+.f64 y -2)))
(+.f64 (*.f64 (-.f64 1 y) 1/2) (-.f64 (*.f64 (-.f64 1 y) 1/2) 1))
(neg.f64 y)
(+.f64 (*.f64 y -1/2) (*.f64 y -1/2))
(neg.f64 y)
(*.f64 1 (neg.f64 y))
(neg.f64 y)
(*.f64 y -1)
(neg.f64 y)
(*.f64 (neg.f64 y) 1)
(neg.f64 y)
(*.f64 -1 y)
(neg.f64 y)
(*.f64 2 (*.f64 y -1/2))
(neg.f64 y)
(*.f64 (*.f64 y -2) 1/2)
(neg.f64 y)
(*.f64 4 (/.f64 y -4))
(neg.f64 y)
(*.f64 4 (*.f64 (*.f64 y -1/2) 1/2))
(neg.f64 y)
(*.f64 4 (*.f64 (/.f64 y -4) 1))
(neg.f64 y)
(*.f64 (+.f64 y y) -1/2)
(neg.f64 y)
(*.f64 (*.f64 y -4) 1/4)
(neg.f64 y)
(*.f64 (*.f64 y 4) -1/4)
(neg.f64 y)
(*.f64 1/2 (*.f64 y -2))
(neg.f64 y)
(*.f64 -2 (*.f64 y 1/2))
(neg.f64 y)
(*.f64 (*.f64 y 1/2) -2)
(neg.f64 y)
(*.f64 (*.f64 y -1/2) 2)
(neg.f64 y)
(*.f64 1/4 (*.f64 y -4))
(neg.f64 y)
(*.f64 -1/2 (+.f64 y y))
(neg.f64 y)
(*.f64 -1/4 (*.f64 y 4))
(neg.f64 y)
(*.f64 (/.f64 y -4) 4)
(neg.f64 y)
(/.f64 y -1)
(neg.f64 y)
(/.f64 (neg.f64 y) 1)
(neg.f64 y)
(/.f64 (*.f64 y -2) 2)
(neg.f64 y)
(/.f64 (+.f64 y y) -2)
(neg.f64 y)
(/.f64 (*.f64 y -4) 4)
(neg.f64 y)
(/.f64 (*.f64 y 4) -4)
(neg.f64 y)
(/.f64 (*.f64 y 8) -8)
(neg.f64 y)
(/.f64 (*.f64 y -8) 8)
(neg.f64 y)
(/.f64 (*.f64 2 (*.f64 y 8)) -16)
(neg.f64 y)
(/.f64 (*.f64 2 (*.f64 y -8)) 16)
(neg.f64 y)
(/.f64 (neg.f64 (*.f64 y 8)) 8)
(neg.f64 y)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 y 8))) -32)
(neg.f64 y)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 y -8))) 32)
(neg.f64 y)
(/.f64 (*.f64 2 (neg.f64 (*.f64 y 8))) 16)
(neg.f64 y)
(/.f64 (neg.f64 (*.f64 2 (*.f64 y 8))) 16)
(neg.f64 y)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 y -8))) (*.f64 2 (*.f64 2 (*.f64 y -8)))) 64)
(neg.f64 y)
(/.f64 (+.f64 (*.f64 2 (neg.f64 (*.f64 y 8))) (*.f64 2 (neg.f64 (*.f64 y 8)))) 32)
(neg.f64 y)
(/.f64 (+.f64 (neg.f64 (*.f64 2 (*.f64 y 8))) (neg.f64 (*.f64 2 (*.f64 y 8)))) 32)
(neg.f64 y)
(neg.f64 y)

eval10.0ms (0.1%)

Compiler

Compiled 385 to 276 computations (28.3% saved)

prune14.0ms (0.1%)

Pruning

13 alts after pruning (2 fresh and 11 done)

PrunedKeptTotal
New46147
Fresh011
Picked011
Done01010
Total461359
Error
0.1b
Counts
59 → 13
Alt Table
Click to see full alt table
StatusErrorProgram
26.0b
(-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (+.f64 1 -1)))
0.1b
(-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y)))
23.4b
(-.f64 (*.f64 x (cos.f64 y)) (*.f64 z y))
16.7b
(-.f64 x (*.f64 z (sin.f64 y)))
34.2b
(-.f64 x (*.f64 z y))
44.4b
(*.f64 z (-.f64 (-.f64 1 (sin.f64 y)) 1))
61.4b
(*.f64 z (-.f64 (-.f64 1 y) 1))
44.4b
(*.f64 z (-.f64 1 (-.f64 (sin.f64 y) -1)))
62.1b
(*.f64 z (-.f64 1 1))
61.4b
(*.f64 z (+.f64 (*.f64 (-.f64 1 y) 1/2) (-.f64 (*.f64 (-.f64 1 y) 1/2) 1)))
36.9b
(*.f64 z (sin.f64 (neg.f64 y)))
54.1b
(*.f64 z (neg.f64 y))
41.8b
x
Compiler

Compiled 130 to 98 computations (24.6% saved)

regimes39.0ms (0.2%)

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

4 calls:

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

Compiled 152 to 86 computations (43.4% saved)

regimes112.0ms (0.7%)

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

3 calls:

63.0ms
y
23.0ms
x
21.0ms
z
Results
ErrorSegmentsBranch
7.7b3x
10.8b7y
9.2b3z
Compiler

Compiled 117 to 70 computations (40.2% saved)

bsearch301.0ms (1.9%)

Algorithm
binary-search
Steps
TimeLeftRight
134.0ms
1.0360179452069724e+39
1.2050067684050333e+40
167.0ms
-2.002576489452528e+156
-1.1976594960232068e+150
Results
138.0ms37×body512valid
134.0ms145×body256valid
25.0ms58×body1024valid
Compiler

Compiled 378 to 283 computations (25.1% saved)

regimes233.0ms (1.4%)

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

3 calls:

99.0ms
y
66.0ms
x
66.0ms
z
Results
ErrorSegmentsBranch
10.3b3x
14.2b3y
10.3b3z
Compiler

Compiled 93 to 58 computations (37.6% saved)

bsearch221.0ms (1.4%)

Algorithm
binary-search
Steps
TimeLeftRight
77.0ms
3.2046065110439475e-142
1.890858445800975e-141
144.0ms
-1.8516526064442985e-17
-2.8076507109945895e-31
Results
131.0ms73×body1024valid
76.0ms146×body256valid
11.0ms37×body512valid
Compiler

Compiled 370 to 253 computations (31.6% saved)

regimes105.0ms (0.6%)

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

3 calls:

90.0ms
y
6.0ms
x
6.0ms
z
Results
ErrorSegmentsBranch
16.7b1x
16.7b1y
16.7b1z
Compiler

Compiled 85 to 55 computations (35.3% saved)

regimes125.0ms (0.8%)

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

3 calls:

94.0ms
x
15.0ms
z
15.0ms
y
Results
ErrorSegmentsBranch
26.4b3x
17.9b3y
27.1b3z
Compiler

Compiled 63 to 42 computations (33.3% saved)

bsearch93.0ms (0.6%)

Algorithm
binary-search
Steps
TimeLeftRight
87.0ms
802218.0443287347
4026122207.468995
6.0ms
-793397.5379758866
-712437.9739472561
Results
91.0ms160×body256valid
Compiler

Compiled 198 to 143 computations (27.8% saved)

regimes16.0ms (0.1%)

Counts
7 → 1
Calls
Call 1
Inputs
x
(*.f64 z (neg.f64 y))
(*.f64 z (-.f64 1 1))
(-.f64 x (*.f64 z y))
(+.f64 x (*.f64 y (neg.f64 z)))
(*.f64 z (-.f64 (-.f64 1 y) 1))
(*.f64 z (+.f64 (*.f64 (-.f64 1 y) 1/2) (-.f64 (*.f64 (-.f64 1 y) 1/2) 1)))
Outputs
(-.f64 x (*.f64 z y))
Calls

3 calls:

5.0ms
y
5.0ms
z
5.0ms
x
Results
ErrorSegmentsBranch
34.2b1x
34.2b1y
34.2b1z
Compiler

Compiled 58 to 40 computations (31% saved)

regimes72.0ms (0.4%)

Accuracy

Total -24.1b remaining (-62.5%)

Threshold costs -24.1b (-62.5%)

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

3 calls:

60.0ms
y
8.0ms
x
3.0ms
z
Results
ErrorSegmentsBranch
38.6b3x
40.7b3y
41.8b1z
Compiler

Compiled 25 to 18 computations (28% saved)

bsearch140.0ms (0.9%)

Algorithm
binary-search
Steps
TimeLeftRight
109.0ms
1.2597865723105145e-253
1.0621364758699423e-244
31.0ms
-2.5603412135012383e-26
-4.322801147823336e-30
Results
83.0ms44×body512valid
28.0ms166×body256valid
27.0ms62×body1024valid
Compiler

Compiled 239 to 183 computations (23.4% saved)

simplify6.0ms (0%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
052306
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y)))
(if (<=.f64 x -1200000000000000013344651621705194036153934411236609269391465806550823148718924258603522328009361548664795008007589484566806519110758981414610129649664) (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (+.f64 1 -1))) (if (<=.f64 x 2600000000000000054805850998728369897472) (-.f64 x (*.f64 z (sin.f64 y))) (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (+.f64 1 -1)))))
(if (<=.f64 z -178405961588245/356811923176489970264571492362373784095686656) (-.f64 x (*.f64 z (sin.f64 y))) (if (<=.f64 z 3706990736470529/3432398830065304857490950399540696608634717650071652704697231729592771591698828026061279820330727277488648155695740429018560993999858321906287014145557528576) (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z y)) (-.f64 x (*.f64 z (sin.f64 y)))))
(-.f64 x (*.f64 z (sin.f64 y)))
(if (<=.f64 y -720000) (*.f64 z (sin.f64 (neg.f64 y))) (if (<=.f64 y 820000) (-.f64 x (*.f64 z y)) (*.f64 z (sin.f64 (neg.f64 y)))))
(-.f64 x (*.f64 z y))
(if (<=.f64 x -6279889847906223/1427247692705959881058285969449495136382746624) x (if (<=.f64 x 3075078893078405/30750788930784052141961861920805916103932967295178766486232675904563738880488373075752592173385037335955677262580553574888172300969173988400174943873597051535522721474932336956770829721145939608862637129391729156728137068727028191720507858482133392040241659904) (*.f64 z (neg.f64 y)) x))
x
Outputs
(-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y)))
(if (<=.f64 x -1200000000000000013344651621705194036153934411236609269391465806550823148718924258603522328009361548664795008007589484566806519110758981414610129649664) (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (+.f64 1 -1))) (if (<=.f64 x 2600000000000000054805850998728369897472) (-.f64 x (*.f64 z (sin.f64 y))) (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z (+.f64 1 -1)))))
(if (<=.f64 x -1200000000000000013344651621705194036153934411236609269391465806550823148718924258603522328009361548664795008007589484566806519110758981414610129649664) (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z 0)) (if (<=.f64 x 2600000000000000054805850998728369897472) (-.f64 x (*.f64 z (sin.f64 y))) (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z 0))))
(if (<=.f64 z -178405961588245/356811923176489970264571492362373784095686656) (-.f64 x (*.f64 z (sin.f64 y))) (if (<=.f64 z 3706990736470529/3432398830065304857490950399540696608634717650071652704697231729592771591698828026061279820330727277488648155695740429018560993999858321906287014145557528576) (-.f64 (*.f64 x (cos.f64 y)) (*.f64 z y)) (-.f64 x (*.f64 z (sin.f64 y)))))
(-.f64 x (*.f64 z (sin.f64 y)))
(if (<=.f64 y -720000) (*.f64 z (sin.f64 (neg.f64 y))) (if (<=.f64 y 820000) (-.f64 x (*.f64 z y)) (*.f64 z (sin.f64 (neg.f64 y)))))
(-.f64 x (*.f64 z y))
(if (<=.f64 x -6279889847906223/1427247692705959881058285969449495136382746624) x (if (<=.f64 x 3075078893078405/30750788930784052141961861920805916103932967295178766486232675904563738880488373075752592173385037335955677262580553574888172300969173988400174943873597051535522721474932336956770829721145939608862637129391729156728137068727028191720507858482133392040241659904) (*.f64 z (neg.f64 y)) x))
x
Compiler

Compiled 140 to 83 computations (40.7% saved)

soundness0.0ms (0%)

end371.0ms (2.3%)

Compiler

Compiled 119 to 46 computations (61.3% saved)

Profiling

Loading profile data...