Details

Time bar (total: 7.9s)

analyze8.0ms (0.1%)

Algorithm
search
Search
TrueOtherFalseIter
0%0%100%0
0%0%100%1
Compiler

Compiled 118 to 85 computations (28% saved)

sample4.1s (51.5%)

Results
4.1s8256×body128valid
Compiler

Compiled 236 to 170 computations (28% saved)

preprocess63.0ms (0.8%)

Algorithm
egg-herbie
Rules
404×distribute-rgt-neg-in_binary32
374×distribute-lft-neg-in_binary32
320×distribute-rgt-in_binary32
274×distribute-lft-in_binary32
271×associate-*r*_binary32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01911584
16011552
222171120
348551120
066
Stop Event
saturated
node limit
Calls
Call 1
Inputs
0
1
2
3
4
5
Outputs
0
1
2
3
4
5
Call 2
Inputs
(+.f32 (+.f32 (*.f32 (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux))))) xi) (*.f32 (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux))))) yi)) (*.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) zi))
(+.f32 (+.f32 (*.f32 (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux))))) yi) (*.f32 (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux))))) xi)) (*.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) zi))
(+.f32 (+.f32 (*.f32 (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux))))) zi) (*.f32 (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux))))) yi)) (*.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) xi))
(+.f32 (+.f32 (*.f32 (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 (-.f32 1 xi) maxCos) xi) (*.f32 (*.f32 (-.f32 1 xi) maxCos) xi))))) ux) (*.f32 (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 (-.f32 1 xi) maxCos) xi) (*.f32 (*.f32 (-.f32 1 xi) maxCos) xi))))) yi)) (*.f32 (*.f32 (*.f32 (-.f32 1 xi) maxCos) xi) zi))
(+.f32 (+.f32 (*.f32 (*.f32 (cos.f32 (*.f32 (*.f32 xi 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux))))) uy) (*.f32 (*.f32 (sin.f32 (*.f32 (*.f32 xi 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux))))) yi)) (*.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) zi))
(+.f32 (+.f32 (*.f32 (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 (-.f32 1 ux) xi) ux) (*.f32 (*.f32 (-.f32 1 ux) xi) ux))))) maxCos) (*.f32 (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 (-.f32 1 ux) xi) ux) (*.f32 (*.f32 (-.f32 1 ux) xi) ux))))) yi)) (*.f32 (*.f32 (*.f32 (-.f32 1 ux) xi) ux) zi))
(+.f32 (+.f32 (*.f32 (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux))))) xi) (*.f32 (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux))))) zi)) (*.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) yi))
(+.f32 (+.f32 (*.f32 (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 (-.f32 1 yi) maxCos) yi) (*.f32 (*.f32 (-.f32 1 yi) maxCos) yi))))) xi) (*.f32 (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 (-.f32 1 yi) maxCos) yi) (*.f32 (*.f32 (-.f32 1 yi) maxCos) yi))))) ux)) (*.f32 (*.f32 (*.f32 (-.f32 1 yi) maxCos) yi) zi))
(+.f32 (+.f32 (*.f32 (*.f32 (cos.f32 (*.f32 (*.f32 yi 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux))))) xi) (*.f32 (*.f32 (sin.f32 (*.f32 (*.f32 yi 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux))))) uy)) (*.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) zi))
(+.f32 (+.f32 (*.f32 (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 (-.f32 1 ux) yi) ux) (*.f32 (*.f32 (-.f32 1 ux) yi) ux))))) xi) (*.f32 (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 (-.f32 1 ux) yi) ux) (*.f32 (*.f32 (-.f32 1 ux) yi) ux))))) maxCos)) (*.f32 (*.f32 (*.f32 (-.f32 1 ux) yi) ux) zi))
(+.f32 (+.f32 (*.f32 (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 (-.f32 1 zi) maxCos) zi) (*.f32 (*.f32 (-.f32 1 zi) maxCos) zi))))) xi) (*.f32 (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 (-.f32 1 zi) maxCos) zi) (*.f32 (*.f32 (-.f32 1 zi) maxCos) zi))))) yi)) (*.f32 (*.f32 (*.f32 (-.f32 1 zi) maxCos) zi) ux))
(+.f32 (+.f32 (*.f32 (*.f32 (cos.f32 (*.f32 (*.f32 zi 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux))))) xi) (*.f32 (*.f32 (sin.f32 (*.f32 (*.f32 zi 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux))))) yi)) (*.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) uy))
(+.f32 (+.f32 (*.f32 (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 (-.f32 1 ux) zi) ux) (*.f32 (*.f32 (-.f32 1 ux) zi) ux))))) xi) (*.f32 (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 (-.f32 1 ux) zi) ux) (*.f32 (*.f32 (-.f32 1 ux) zi) ux))))) yi)) (*.f32 (*.f32 (*.f32 (-.f32 1 ux) zi) ux) maxCos))
(+.f32 (+.f32 (*.f32 (*.f32 (cos.f32 (*.f32 (*.f32 ux 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 (-.f32 1 uy) maxCos) uy) (*.f32 (*.f32 (-.f32 1 uy) maxCos) uy))))) xi) (*.f32 (*.f32 (sin.f32 (*.f32 (*.f32 ux 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 (-.f32 1 uy) maxCos) uy) (*.f32 (*.f32 (-.f32 1 uy) maxCos) uy))))) yi)) (*.f32 (*.f32 (*.f32 (-.f32 1 uy) maxCos) uy) zi))
(+.f32 (+.f32 (*.f32 (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 (-.f32 1 maxCos) ux) maxCos) (*.f32 (*.f32 (-.f32 1 maxCos) ux) maxCos))))) xi) (*.f32 (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 (-.f32 1 maxCos) ux) maxCos) (*.f32 (*.f32 (-.f32 1 maxCos) ux) maxCos))))) yi)) (*.f32 (*.f32 (*.f32 (-.f32 1 maxCos) ux) maxCos) zi))
(+.f32 (+.f32 (*.f32 (*.f32 (cos.f32 (*.f32 (*.f32 maxCos 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 (-.f32 1 ux) uy) ux) (*.f32 (*.f32 (-.f32 1 ux) uy) ux))))) xi) (*.f32 (*.f32 (sin.f32 (*.f32 (*.f32 maxCos 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 (-.f32 1 ux) uy) ux) (*.f32 (*.f32 (-.f32 1 ux) uy) ux))))) yi)) (*.f32 (*.f32 (*.f32 (-.f32 1 ux) uy) ux) zi))
Outputs
(+.f32 (+.f32 (*.f32 (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux))))) xi) (*.f32 (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux))))) yi)) (*.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) zi))
(+.f32 (fma.f32 (*.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (-.f32 1 ux) maxCos) (*.f32 ux (*.f32 ux (*.f32 (-.f32 1 ux) maxCos))))))) xi (*.f32 (sin.f32 (*.f32 uy (*.f32 2 (PI.f32)))) (*.f32 (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (-.f32 1 ux) maxCos) (*.f32 ux (*.f32 ux (*.f32 (-.f32 1 ux) maxCos)))))) yi))) (*.f32 (*.f32 (-.f32 1 ux) maxCos) (*.f32 ux zi)))
(fma.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))) (*.f32 (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (-.f32 1 ux) maxCos) (*.f32 (*.f32 ux ux) (*.f32 (-.f32 1 ux) maxCos))))) xi) (fma.f32 (sin.f32 (*.f32 uy (*.f32 2 (PI.f32)))) (*.f32 (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (-.f32 1 ux) maxCos) (*.f32 (*.f32 ux ux) (*.f32 (-.f32 1 ux) maxCos))))) yi) (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) zi) maxCos))))
(fma.f32 (*.f32 (-.f32 1 ux) maxCos) (*.f32 ux zi) (*.f32 (sqrt.f32 (-.f32 1 (*.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) (*.f32 (-.f32 1 ux) maxCos)))))) (+.f32 (*.f32 yi (sin.f32 (*.f32 uy (*.f32 2 (PI.f32))))) (*.f32 xi (cos.f32 (*.f32 uy (*.f32 2 (PI.f32))))))))
(+.f32 (+.f32 (*.f32 (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux))))) yi) (*.f32 (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux))))) xi)) (*.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) zi))
(+.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) (*.f32 ux zi)) (fma.f32 (*.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (-.f32 1 ux) maxCos) (*.f32 ux (*.f32 ux (*.f32 (-.f32 1 ux) maxCos))))))) yi (*.f32 xi (*.f32 (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (-.f32 1 ux) maxCos) (*.f32 ux (*.f32 ux (*.f32 (-.f32 1 ux) maxCos)))))) (sin.f32 (*.f32 uy (*.f32 2 (PI.f32))))))))
(fma.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))) (*.f32 (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (-.f32 1 ux) maxCos) (*.f32 (*.f32 ux ux) (*.f32 (-.f32 1 ux) maxCos))))) yi) (fma.f32 xi (*.f32 (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (-.f32 1 ux) maxCos) (*.f32 (*.f32 ux ux) (*.f32 (-.f32 1 ux) maxCos))))) (sin.f32 (*.f32 uy (*.f32 2 (PI.f32))))) (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) zi) maxCos))))
(fma.f32 (*.f32 (-.f32 1 ux) maxCos) (*.f32 ux zi) (*.f32 (sqrt.f32 (-.f32 1 (*.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) (*.f32 (-.f32 1 ux) maxCos)))))) (+.f32 (*.f32 yi (cos.f32 (*.f32 uy (*.f32 2 (PI.f32))))) (*.f32 xi (sin.f32 (*.f32 uy (*.f32 2 (PI.f32))))))))
(+.f32 (+.f32 (*.f32 (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux))))) zi) (*.f32 (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux))))) yi)) (*.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) xi))
(+.f32 (fma.f32 (*.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (-.f32 1 ux) maxCos) (*.f32 ux (*.f32 ux (*.f32 (-.f32 1 ux) maxCos))))))) zi (*.f32 (sin.f32 (*.f32 uy (*.f32 2 (PI.f32)))) (*.f32 (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (-.f32 1 ux) maxCos) (*.f32 ux (*.f32 ux (*.f32 (-.f32 1 ux) maxCos)))))) yi))) (*.f32 (*.f32 (-.f32 1 ux) maxCos) (*.f32 ux xi)))
(fma.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))) (*.f32 (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (-.f32 1 ux) maxCos) (*.f32 (*.f32 ux ux) (*.f32 (-.f32 1 ux) maxCos))))) zi) (fma.f32 (sin.f32 (*.f32 uy (*.f32 2 (PI.f32)))) (*.f32 (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (-.f32 1 ux) maxCos) (*.f32 (*.f32 ux ux) (*.f32 (-.f32 1 ux) maxCos))))) yi) (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) xi))))
(fma.f32 (*.f32 (-.f32 1 ux) maxCos) (*.f32 ux xi) (*.f32 (sqrt.f32 (-.f32 1 (*.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) (*.f32 (-.f32 1 ux) maxCos)))))) (+.f32 (*.f32 yi (sin.f32 (*.f32 uy (*.f32 2 (PI.f32))))) (*.f32 zi (cos.f32 (*.f32 uy (*.f32 2 (PI.f32))))))))
(+.f32 (+.f32 (*.f32 (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 (-.f32 1 xi) maxCos) xi) (*.f32 (*.f32 (-.f32 1 xi) maxCos) xi))))) ux) (*.f32 (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 (-.f32 1 xi) maxCos) xi) (*.f32 (*.f32 (-.f32 1 xi) maxCos) xi))))) yi)) (*.f32 (*.f32 (*.f32 (-.f32 1 xi) maxCos) xi) zi))
(+.f32 (fma.f32 (*.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 maxCos (-.f32 1 xi)) (*.f32 xi (*.f32 xi (*.f32 maxCos (-.f32 1 xi)))))))) ux (*.f32 (sin.f32 (*.f32 uy (*.f32 2 (PI.f32)))) (*.f32 (sqrt.f32 (-.f32 1 (*.f32 (*.f32 maxCos (-.f32 1 xi)) (*.f32 xi (*.f32 xi (*.f32 maxCos (-.f32 1 xi))))))) yi))) (*.f32 zi (*.f32 xi (*.f32 maxCos (-.f32 1 xi)))))
(fma.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))) (*.f32 ux (sqrt.f32 (-.f32 1 (*.f32 maxCos (*.f32 (-.f32 1 xi) (*.f32 xi (*.f32 (-.f32 1 xi) (*.f32 maxCos xi)))))))) (fma.f32 (sin.f32 (*.f32 uy (*.f32 2 (PI.f32)))) (*.f32 yi (sqrt.f32 (-.f32 1 (*.f32 maxCos (*.f32 (-.f32 1 xi) (*.f32 xi (*.f32 (-.f32 1 xi) (*.f32 maxCos xi)))))))) (*.f32 maxCos (*.f32 (-.f32 1 xi) (*.f32 xi zi)))))
(fma.f32 zi (*.f32 maxCos (*.f32 (-.f32 1 xi) xi)) (*.f32 (sqrt.f32 (-.f32 1 (*.f32 xi (*.f32 (*.f32 maxCos (-.f32 1 xi)) (*.f32 maxCos (*.f32 (-.f32 1 xi) xi)))))) (+.f32 (*.f32 ux (cos.f32 (*.f32 uy (*.f32 2 (PI.f32))))) (*.f32 yi (sin.f32 (*.f32 uy (*.f32 2 (PI.f32))))))))
(+.f32 (+.f32 (*.f32 (*.f32 (cos.f32 (*.f32 (*.f32 xi 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux))))) uy) (*.f32 (*.f32 (sin.f32 (*.f32 (*.f32 xi 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux))))) yi)) (*.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) zi))
(+.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) (*.f32 ux zi)) (fma.f32 (*.f32 (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (-.f32 1 ux) maxCos) (*.f32 ux (*.f32 ux (*.f32 (-.f32 1 ux) maxCos)))))) (cos.f32 (*.f32 (PI.f32) (*.f32 2 xi)))) uy (*.f32 yi (*.f32 (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (-.f32 1 ux) maxCos) (*.f32 ux (*.f32 ux (*.f32 (-.f32 1 ux) maxCos)))))) (sin.f32 (*.f32 (PI.f32) (*.f32 2 xi)))))))
(fma.f32 uy (*.f32 (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (-.f32 1 ux) maxCos) (*.f32 (*.f32 ux ux) (*.f32 (-.f32 1 ux) maxCos))))) (cos.f32 (*.f32 2 (*.f32 xi (PI.f32))))) (fma.f32 yi (*.f32 (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (-.f32 1 ux) maxCos) (*.f32 (*.f32 ux ux) (*.f32 (-.f32 1 ux) maxCos))))) (sin.f32 (*.f32 2 (*.f32 xi (PI.f32))))) (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) zi) maxCos))))
(fma.f32 (*.f32 (-.f32 1 ux) maxCos) (*.f32 ux zi) (*.f32 (sqrt.f32 (-.f32 1 (*.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) (*.f32 (-.f32 1 ux) maxCos)))))) (+.f32 (*.f32 uy (cos.f32 (*.f32 2 (*.f32 xi (PI.f32))))) (*.f32 yi (sin.f32 (*.f32 2 (*.f32 xi (PI.f32))))))))
(+.f32 (+.f32 (*.f32 (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 (-.f32 1 ux) xi) ux) (*.f32 (*.f32 (-.f32 1 ux) xi) ux))))) maxCos) (*.f32 (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 (-.f32 1 ux) xi) ux) (*.f32 (*.f32 (-.f32 1 ux) xi) ux))))) yi)) (*.f32 (*.f32 (*.f32 (-.f32 1 ux) xi) ux) zi))
(+.f32 (fma.f32 (*.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 ux (*.f32 (-.f32 1 ux) xi)) (*.f32 ux (*.f32 (-.f32 1 ux) xi)))))) maxCos (*.f32 (sin.f32 (*.f32 uy (*.f32 2 (PI.f32)))) (*.f32 (sqrt.f32 (-.f32 1 (*.f32 (*.f32 ux (*.f32 (-.f32 1 ux) xi)) (*.f32 ux (*.f32 (-.f32 1 ux) xi))))) yi))) (*.f32 zi (*.f32 ux (*.f32 (-.f32 1 ux) xi))))
(fma.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))) (*.f32 maxCos (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 ux (-.f32 1 ux)) xi) (*.f32 (*.f32 ux (-.f32 1 ux)) xi))))) (fma.f32 (sin.f32 (*.f32 uy (*.f32 2 (PI.f32)))) (*.f32 yi (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 ux (-.f32 1 ux)) xi) (*.f32 (*.f32 ux (-.f32 1 ux)) xi))))) (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) xi) zi))))
(fma.f32 zi (*.f32 (-.f32 1 ux) (*.f32 ux xi)) (*.f32 (sqrt.f32 (-.f32 1 (*.f32 (-.f32 1 ux) (*.f32 (*.f32 ux xi) (*.f32 (-.f32 1 ux) (*.f32 ux xi)))))) (+.f32 (*.f32 maxCos (cos.f32 (*.f32 uy (*.f32 2 (PI.f32))))) (*.f32 yi (sin.f32 (*.f32 uy (*.f32 2 (PI.f32))))))))
(+.f32 (+.f32 (*.f32 (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux))))) xi) (*.f32 (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux))))) zi)) (*.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) yi))
(+.f32 (fma.f32 (*.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (-.f32 1 ux) maxCos) (*.f32 ux (*.f32 ux (*.f32 (-.f32 1 ux) maxCos))))))) xi (*.f32 (sin.f32 (*.f32 uy (*.f32 2 (PI.f32)))) (*.f32 (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (-.f32 1 ux) maxCos) (*.f32 ux (*.f32 ux (*.f32 (-.f32 1 ux) maxCos)))))) zi))) (*.f32 (*.f32 (-.f32 1 ux) maxCos) (*.f32 ux yi)))
(fma.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))) (*.f32 (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (-.f32 1 ux) maxCos) (*.f32 (*.f32 ux ux) (*.f32 (-.f32 1 ux) maxCos))))) xi) (fma.f32 (sin.f32 (*.f32 uy (*.f32 2 (PI.f32)))) (*.f32 (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (-.f32 1 ux) maxCos) (*.f32 (*.f32 ux ux) (*.f32 (-.f32 1 ux) maxCos))))) zi) (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) yi))))
(fma.f32 (*.f32 (-.f32 1 ux) maxCos) (*.f32 ux yi) (*.f32 (sqrt.f32 (-.f32 1 (*.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) (*.f32 (-.f32 1 ux) maxCos)))))) (+.f32 (*.f32 xi (cos.f32 (*.f32 uy (*.f32 2 (PI.f32))))) (*.f32 zi (sin.f32 (*.f32 uy (*.f32 2 (PI.f32))))))))
(+.f32 (+.f32 (*.f32 (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 (-.f32 1 yi) maxCos) yi) (*.f32 (*.f32 (-.f32 1 yi) maxCos) yi))))) xi) (*.f32 (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 (-.f32 1 yi) maxCos) yi) (*.f32 (*.f32 (-.f32 1 yi) maxCos) yi))))) ux)) (*.f32 (*.f32 (*.f32 (-.f32 1 yi) maxCos) yi) zi))
(+.f32 (fma.f32 (*.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 yi (*.f32 maxCos (-.f32 1 yi))) (*.f32 yi (*.f32 maxCos (-.f32 1 yi))))))) xi (*.f32 (sin.f32 (*.f32 uy (*.f32 2 (PI.f32)))) (*.f32 (sqrt.f32 (-.f32 1 (*.f32 (*.f32 yi (*.f32 maxCos (-.f32 1 yi))) (*.f32 yi (*.f32 maxCos (-.f32 1 yi)))))) ux))) (*.f32 zi (*.f32 yi (*.f32 maxCos (-.f32 1 yi)))))
(fma.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))) (*.f32 xi (sqrt.f32 (-.f32 1 (*.f32 (*.f32 maxCos (-.f32 1 yi)) (*.f32 (*.f32 maxCos (-.f32 1 yi)) (*.f32 yi yi)))))) (fma.f32 ux (*.f32 (sin.f32 (*.f32 uy (*.f32 2 (PI.f32)))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 maxCos (-.f32 1 yi)) (*.f32 (*.f32 maxCos (-.f32 1 yi)) (*.f32 yi yi)))))) (*.f32 yi (*.f32 (*.f32 maxCos (-.f32 1 yi)) zi))))
(fma.f32 zi (*.f32 maxCos (*.f32 (-.f32 1 yi) yi)) (*.f32 (sqrt.f32 (-.f32 1 (*.f32 yi (*.f32 yi (*.f32 maxCos (*.f32 (-.f32 1 yi) (*.f32 maxCos (-.f32 1 yi)))))))) (+.f32 (*.f32 ux (sin.f32 (*.f32 uy (*.f32 2 (PI.f32))))) (*.f32 xi (cos.f32 (*.f32 uy (*.f32 2 (PI.f32))))))))
(+.f32 (+.f32 (*.f32 (*.f32 (cos.f32 (*.f32 (*.f32 yi 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux))))) xi) (*.f32 (*.f32 (sin.f32 (*.f32 (*.f32 yi 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux))))) uy)) (*.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) zi))
(+.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) (*.f32 ux zi)) (fma.f32 (*.f32 (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (-.f32 1 ux) maxCos) (*.f32 ux (*.f32 ux (*.f32 (-.f32 1 ux) maxCos)))))) (cos.f32 (*.f32 (PI.f32) (*.f32 2 yi)))) xi (*.f32 uy (*.f32 (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (-.f32 1 ux) maxCos) (*.f32 ux (*.f32 ux (*.f32 (-.f32 1 ux) maxCos)))))) (sin.f32 (*.f32 (PI.f32) (*.f32 2 yi)))))))
(fma.f32 (*.f32 (-.f32 1 ux) maxCos) (*.f32 ux zi) (fma.f32 uy (*.f32 (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (-.f32 1 ux) maxCos) (*.f32 (*.f32 ux ux) (*.f32 (-.f32 1 ux) maxCos))))) (sin.f32 (*.f32 yi (*.f32 2 (PI.f32))))) (*.f32 (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (-.f32 1 ux) maxCos) (*.f32 (*.f32 ux ux) (*.f32 (-.f32 1 ux) maxCos))))) (*.f32 (cos.f32 (*.f32 yi (*.f32 2 (PI.f32)))) xi))))
(fma.f32 (*.f32 (-.f32 1 ux) maxCos) (*.f32 ux zi) (*.f32 (sqrt.f32 (-.f32 1 (*.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) (*.f32 (-.f32 1 ux) maxCos)))))) (+.f32 (*.f32 xi (cos.f32 (*.f32 2 (*.f32 yi (PI.f32))))) (*.f32 uy (sin.f32 (*.f32 2 (*.f32 yi (PI.f32))))))))
(+.f32 (+.f32 (*.f32 (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 (-.f32 1 ux) yi) ux) (*.f32 (*.f32 (-.f32 1 ux) yi) ux))))) xi) (*.f32 (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 (-.f32 1 ux) yi) ux) (*.f32 (*.f32 (-.f32 1 ux) yi) ux))))) maxCos)) (*.f32 (*.f32 (*.f32 (-.f32 1 ux) yi) ux) zi))
(+.f32 (fma.f32 (*.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 ux (*.f32 (-.f32 1 ux) yi)) (*.f32 ux (*.f32 (-.f32 1 ux) yi)))))) xi (*.f32 maxCos (*.f32 (sin.f32 (*.f32 uy (*.f32 2 (PI.f32)))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 ux (*.f32 (-.f32 1 ux) yi)) (*.f32 ux (*.f32 (-.f32 1 ux) yi)))))))) (*.f32 zi (*.f32 ux (*.f32 (-.f32 1 ux) yi))))
(fma.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))) (*.f32 xi (sqrt.f32 (-.f32 1 (*.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) yi) (*.f32 (-.f32 1 ux) yi))))))) (fma.f32 maxCos (*.f32 (sin.f32 (*.f32 uy (*.f32 2 (PI.f32)))) (sqrt.f32 (-.f32 1 (*.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) yi) (*.f32 (-.f32 1 ux) yi))))))) (*.f32 (-.f32 1 ux) (*.f32 yi (*.f32 ux zi)))))
(fma.f32 zi (*.f32 ux (*.f32 (-.f32 1 ux) yi)) (*.f32 (sqrt.f32 (-.f32 1 (*.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) yi) (*.f32 (-.f32 1 ux) yi)))))) (+.f32 (*.f32 maxCos (sin.f32 (*.f32 uy (*.f32 2 (PI.f32))))) (*.f32 xi (cos.f32 (*.f32 uy (*.f32 2 (PI.f32))))))))
(+.f32 (+.f32 (*.f32 (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 (-.f32 1 zi) maxCos) zi) (*.f32 (*.f32 (-.f32 1 zi) maxCos) zi))))) xi) (*.f32 (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 (-.f32 1 zi) maxCos) zi) (*.f32 (*.f32 (-.f32 1 zi) maxCos) zi))))) yi)) (*.f32 (*.f32 (*.f32 (-.f32 1 zi) maxCos) zi) ux))
(+.f32 (fma.f32 (*.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 maxCos (-.f32 1 zi)) (*.f32 zi (*.f32 zi (*.f32 maxCos (-.f32 1 zi)))))))) xi (*.f32 (sin.f32 (*.f32 uy (*.f32 2 (PI.f32)))) (*.f32 (sqrt.f32 (-.f32 1 (*.f32 (*.f32 maxCos (-.f32 1 zi)) (*.f32 zi (*.f32 zi (*.f32 maxCos (-.f32 1 zi))))))) yi))) (*.f32 ux (*.f32 zi (*.f32 maxCos (-.f32 1 zi)))))
(fma.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))) (*.f32 xi (sqrt.f32 (-.f32 1 (*.f32 maxCos (*.f32 (-.f32 1 zi) (*.f32 zi (*.f32 (-.f32 1 zi) (*.f32 maxCos zi)))))))) (fma.f32 (sin.f32 (*.f32 uy (*.f32 2 (PI.f32)))) (*.f32 yi (sqrt.f32 (-.f32 1 (*.f32 maxCos (*.f32 (-.f32 1 zi) (*.f32 zi (*.f32 (-.f32 1 zi) (*.f32 maxCos zi)))))))) (*.f32 (-.f32 1 zi) (*.f32 maxCos (*.f32 ux zi)))))
(fma.f32 ux (*.f32 zi (*.f32 maxCos (-.f32 1 zi))) (*.f32 (sqrt.f32 (-.f32 1 (*.f32 (*.f32 maxCos (-.f32 1 zi)) (*.f32 (*.f32 maxCos (-.f32 1 zi)) (*.f32 zi zi))))) (+.f32 (*.f32 yi (sin.f32 (*.f32 uy (*.f32 2 (PI.f32))))) (*.f32 xi (cos.f32 (*.f32 uy (*.f32 2 (PI.f32))))))))
(+.f32 (+.f32 (*.f32 (*.f32 (cos.f32 (*.f32 (*.f32 zi 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux))))) xi) (*.f32 (*.f32 (sin.f32 (*.f32 (*.f32 zi 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux))))) yi)) (*.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) uy))
(+.f32 (fma.f32 (*.f32 (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (-.f32 1 ux) maxCos) (*.f32 ux (*.f32 ux (*.f32 (-.f32 1 ux) maxCos)))))) (cos.f32 (*.f32 (PI.f32) (*.f32 2 zi)))) xi (*.f32 yi (*.f32 (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (-.f32 1 ux) maxCos) (*.f32 ux (*.f32 ux (*.f32 (-.f32 1 ux) maxCos)))))) (sin.f32 (*.f32 (PI.f32) (*.f32 2 zi)))))) (*.f32 uy (*.f32 ux (*.f32 (-.f32 1 ux) maxCos))))
(fma.f32 uy (*.f32 ux (*.f32 (-.f32 1 ux) maxCos)) (fma.f32 xi (*.f32 (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (-.f32 1 ux) maxCos) (*.f32 (*.f32 ux ux) (*.f32 (-.f32 1 ux) maxCos))))) (cos.f32 (*.f32 2 (*.f32 zi (PI.f32))))) (*.f32 (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (-.f32 1 ux) maxCos) (*.f32 (*.f32 ux ux) (*.f32 (-.f32 1 ux) maxCos))))) (*.f32 (sin.f32 (*.f32 2 (*.f32 zi (PI.f32)))) yi))))
(fma.f32 uy (*.f32 ux (*.f32 (-.f32 1 ux) maxCos)) (*.f32 (sqrt.f32 (-.f32 1 (*.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) (*.f32 (-.f32 1 ux) maxCos)))))) (+.f32 (*.f32 xi (cos.f32 (*.f32 2 (*.f32 zi (PI.f32))))) (*.f32 yi (sin.f32 (*.f32 2 (*.f32 zi (PI.f32))))))))
(+.f32 (+.f32 (*.f32 (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 (-.f32 1 ux) zi) ux) (*.f32 (*.f32 (-.f32 1 ux) zi) ux))))) xi) (*.f32 (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 (-.f32 1 ux) zi) ux) (*.f32 (*.f32 (-.f32 1 ux) zi) ux))))) yi)) (*.f32 (*.f32 (*.f32 (-.f32 1 ux) zi) ux) maxCos))
(+.f32 (fma.f32 (*.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (-.f32 1 ux) zi) (*.f32 ux (*.f32 ux (*.f32 (-.f32 1 ux) zi))))))) xi (*.f32 (sin.f32 (*.f32 uy (*.f32 2 (PI.f32)))) (*.f32 (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (-.f32 1 ux) zi) (*.f32 ux (*.f32 ux (*.f32 (-.f32 1 ux) zi)))))) yi))) (*.f32 maxCos (*.f32 ux (*.f32 (-.f32 1 ux) zi))))
(fma.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))) (*.f32 xi (sqrt.f32 (-.f32 1 (*.f32 ux (*.f32 ux (*.f32 (-.f32 1 ux) (*.f32 zi (*.f32 (-.f32 1 ux) zi)))))))) (fma.f32 (sin.f32 (*.f32 uy (*.f32 2 (PI.f32)))) (*.f32 yi (sqrt.f32 (-.f32 1 (*.f32 ux (*.f32 ux (*.f32 (-.f32 1 ux) (*.f32 zi (*.f32 (-.f32 1 ux) zi)))))))) (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) zi) maxCos))))
(fma.f32 maxCos (*.f32 ux (*.f32 (-.f32 1 ux) zi)) (*.f32 (sqrt.f32 (-.f32 1 (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) zi) (*.f32 ux (*.f32 (-.f32 1 ux) zi)))))) (+.f32 (*.f32 xi (cos.f32 (*.f32 uy (*.f32 2 (PI.f32))))) (*.f32 yi (sin.f32 (*.f32 uy (*.f32 2 (PI.f32))))))))
(+.f32 (+.f32 (*.f32 (*.f32 (cos.f32 (*.f32 (*.f32 ux 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 (-.f32 1 uy) maxCos) uy) (*.f32 (*.f32 (-.f32 1 uy) maxCos) uy))))) xi) (*.f32 (*.f32 (sin.f32 (*.f32 (*.f32 ux 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 (-.f32 1 uy) maxCos) uy) (*.f32 (*.f32 (-.f32 1 uy) maxCos) uy))))) yi)) (*.f32 (*.f32 (*.f32 (-.f32 1 uy) maxCos) uy) zi))
(+.f32 (fma.f32 (*.f32 (cos.f32 (*.f32 (PI.f32) (*.f32 2 ux))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 uy (*.f32 maxCos (-.f32 1 uy))) (*.f32 uy (*.f32 maxCos (-.f32 1 uy))))))) xi (*.f32 yi (*.f32 (sqrt.f32 (-.f32 1 (*.f32 (*.f32 uy (*.f32 maxCos (-.f32 1 uy))) (*.f32 uy (*.f32 maxCos (-.f32 1 uy)))))) (sin.f32 (*.f32 (PI.f32) (*.f32 2 ux)))))) (*.f32 (*.f32 maxCos (-.f32 1 uy)) (*.f32 uy zi)))
(fma.f32 xi (*.f32 (cos.f32 (*.f32 (PI.f32) (*.f32 2 ux))) (sqrt.f32 (-.f32 1 (*.f32 (-.f32 1 uy) (*.f32 maxCos (*.f32 uy (*.f32 (-.f32 1 uy) (*.f32 uy maxCos)))))))) (fma.f32 (sin.f32 (*.f32 (PI.f32) (*.f32 2 ux))) (*.f32 yi (sqrt.f32 (-.f32 1 (*.f32 (-.f32 1 uy) (*.f32 maxCos (*.f32 uy (*.f32 (-.f32 1 uy) (*.f32 uy maxCos)))))))) (*.f32 maxCos (*.f32 (-.f32 1 uy) (*.f32 uy zi)))))
(fma.f32 zi (*.f32 uy (*.f32 maxCos (-.f32 1 uy))) (*.f32 (sqrt.f32 (-.f32 1 (*.f32 uy (*.f32 (*.f32 maxCos (-.f32 1 uy)) (*.f32 uy (*.f32 maxCos (-.f32 1 uy))))))) (+.f32 (*.f32 xi (cos.f32 (*.f32 (PI.f32) (*.f32 2 ux)))) (*.f32 yi (sin.f32 (*.f32 (PI.f32) (*.f32 2 ux)))))))
(+.f32 (+.f32 (*.f32 (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 (-.f32 1 maxCos) ux) maxCos) (*.f32 (*.f32 (-.f32 1 maxCos) ux) maxCos))))) xi) (*.f32 (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 (-.f32 1 maxCos) ux) maxCos) (*.f32 (*.f32 (-.f32 1 maxCos) ux) maxCos))))) yi)) (*.f32 (*.f32 (*.f32 (-.f32 1 maxCos) ux) maxCos) zi))
(+.f32 (fma.f32 (*.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 ux (-.f32 1 maxCos)) (*.f32 maxCos (*.f32 maxCos (*.f32 ux (-.f32 1 maxCos)))))))) xi (*.f32 (sin.f32 (*.f32 uy (*.f32 2 (PI.f32)))) (*.f32 (sqrt.f32 (-.f32 1 (*.f32 (*.f32 ux (-.f32 1 maxCos)) (*.f32 maxCos (*.f32 maxCos (*.f32 ux (-.f32 1 maxCos))))))) yi))) (*.f32 zi (*.f32 maxCos (*.f32 ux (-.f32 1 maxCos)))))
(fma.f32 zi (*.f32 (-.f32 1 maxCos) (*.f32 ux maxCos)) (fma.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))) (*.f32 xi (sqrt.f32 (-.f32 1 (*.f32 (-.f32 1 maxCos) (*.f32 ux (*.f32 maxCos (*.f32 (-.f32 1 maxCos) (*.f32 ux maxCos)))))))) (*.f32 (sqrt.f32 (-.f32 1 (*.f32 (-.f32 1 maxCos) (*.f32 ux (*.f32 maxCos (*.f32 (-.f32 1 maxCos) (*.f32 ux maxCos))))))) (*.f32 (sin.f32 (*.f32 uy (*.f32 2 (PI.f32)))) yi))))
(fma.f32 zi (*.f32 ux (*.f32 (-.f32 1 maxCos) maxCos)) (*.f32 (sqrt.f32 (-.f32 1 (*.f32 (*.f32 ux (*.f32 (-.f32 1 maxCos) maxCos)) (*.f32 ux (*.f32 (-.f32 1 maxCos) maxCos))))) (+.f32 (*.f32 yi (sin.f32 (*.f32 uy (*.f32 2 (PI.f32))))) (*.f32 xi (cos.f32 (*.f32 uy (*.f32 2 (PI.f32))))))))
(+.f32 (+.f32 (*.f32 (*.f32 (cos.f32 (*.f32 (*.f32 maxCos 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 (-.f32 1 ux) uy) ux) (*.f32 (*.f32 (-.f32 1 ux) uy) ux))))) xi) (*.f32 (*.f32 (sin.f32 (*.f32 (*.f32 maxCos 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 (-.f32 1 ux) uy) ux) (*.f32 (*.f32 (-.f32 1 ux) uy) ux))))) yi)) (*.f32 (*.f32 (*.f32 (-.f32 1 ux) uy) ux) zi))
(+.f32 (fma.f32 (*.f32 (cos.f32 (*.f32 (PI.f32) (*.f32 2 maxCos))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 ux (*.f32 uy (-.f32 1 ux))) (*.f32 ux (*.f32 uy (-.f32 1 ux))))))) xi (*.f32 yi (*.f32 (sqrt.f32 (-.f32 1 (*.f32 (*.f32 ux (*.f32 uy (-.f32 1 ux))) (*.f32 ux (*.f32 uy (-.f32 1 ux)))))) (sin.f32 (*.f32 (PI.f32) (*.f32 2 maxCos)))))) (*.f32 zi (*.f32 ux (*.f32 uy (-.f32 1 ux)))))
(fma.f32 xi (*.f32 (cos.f32 (*.f32 maxCos (*.f32 2 (PI.f32)))) (sqrt.f32 (-.f32 1 (*.f32 uy (*.f32 (-.f32 1 ux) (*.f32 (*.f32 ux ux) (*.f32 uy (-.f32 1 ux)))))))) (fma.f32 yi (*.f32 (sqrt.f32 (-.f32 1 (*.f32 uy (*.f32 (-.f32 1 ux) (*.f32 (*.f32 ux ux) (*.f32 uy (-.f32 1 ux))))))) (sin.f32 (*.f32 maxCos (*.f32 2 (PI.f32))))) (*.f32 (*.f32 uy (-.f32 1 ux)) (*.f32 ux zi))))
(fma.f32 zi (*.f32 uy (*.f32 (-.f32 1 ux) ux)) (*.f32 (sqrt.f32 (-.f32 1 (*.f32 uy (*.f32 (-.f32 1 ux) (*.f32 (*.f32 ux (-.f32 1 ux)) (*.f32 uy ux)))))) (+.f32 (*.f32 xi (cos.f32 (*.f32 2 (*.f32 maxCos (PI.f32))))) (*.f32 yi (sin.f32 (*.f32 2 (*.f32 maxCos (PI.f32))))))))
Compiler

Compiled 71 to 50 computations (29.6% saved)

simplify32.0ms (0.4%)

Algorithm
egg-herbie
Rules
362×distribute-rgt-in_binary32
340×fma-def_binary32
335×distribute-lft-in_binary32
255×distribute-neg-in_binary32
228×distribute-rgt-neg-out_binary32
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
02799
16797
221470
383966
4290366
5499866
Stop Event
node limit
Counts
1 → 2
Calls
Call 1
Inputs
(+.f32 (+.f32 (*.f32 (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux))))) xi) (*.f32 (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux))))) yi)) (*.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) zi))
Outputs
(+.f32 (+.f32 (*.f32 (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux))))) xi) (*.f32 (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux))))) yi)) (*.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) zi))
(+.f32 (fma.f32 (*.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (-.f32 1 ux) maxCos) (*.f32 ux (*.f32 ux (*.f32 (-.f32 1 ux) maxCos))))))) xi (*.f32 (sin.f32 (*.f32 uy (*.f32 2 (PI.f32)))) (*.f32 (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (-.f32 1 ux) maxCos) (*.f32 ux (*.f32 ux (*.f32 (-.f32 1 ux) maxCos)))))) yi))) (*.f32 (*.f32 (-.f32 1 ux) maxCos) (*.f32 ux zi)))
(fma.f32 (*.f32 ux (*.f32 (-.f32 1 ux) maxCos)) zi (fma.f32 (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 ux (*.f32 (-.f32 1 ux) maxCos)) (*.f32 ux (*.f32 (-.f32 1 ux) maxCos)))))) xi (*.f32 (sqrt.f32 (-.f32 1 (*.f32 (*.f32 ux (*.f32 (-.f32 1 ux) maxCos)) (*.f32 ux (*.f32 (-.f32 1 ux) maxCos))))) (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) yi))))
(fma.f32 ux (*.f32 (*.f32 zi maxCos) (-.f32 1 ux)) (*.f32 (sqrt.f32 (-.f32 1 (*.f32 maxCos (*.f32 (*.f32 (-.f32 1 ux) (*.f32 ux ux)) (*.f32 (-.f32 1 ux) maxCos))))) (+.f32 (*.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))) xi) (*.f32 (sin.f32 (*.f32 uy (*.f32 2 (PI.f32)))) yi))))
(fma.f32 (sqrt.f32 (fma.f32 (-.f32 1 ux) (*.f32 (*.f32 ux (*.f32 maxCos (*.f32 ux maxCos))) (+.f32 ux -1)) 1)) (fma.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))) xi (*.f32 (sin.f32 (*.f32 uy (*.f32 2 (PI.f32)))) yi)) (*.f32 ux (*.f32 (-.f32 1 ux) (*.f32 maxCos zi))))
(fma.f32 ux (*.f32 (-.f32 1 ux) (*.f32 maxCos zi)) (*.f32 (sqrt.f32 (fma.f32 (-.f32 1 ux) (*.f32 (*.f32 ux (*.f32 maxCos (*.f32 ux maxCos))) (+.f32 ux -1)) 1)) (fma.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))) xi (*.f32 (sin.f32 (*.f32 uy (*.f32 2 (PI.f32)))) yi))))

prune7.0ms (0.1%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
0.4b
Counts
3 → 2
Alt Table
StatusErrorProgram
0.4b
(+.f32 (+.f32 (*.f32 (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux))))) xi) (*.f32 (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux))))) yi)) (*.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) zi))
0.4b
(fma.f32 ux (*.f32 (-.f32 1 ux) (*.f32 maxCos zi)) (*.f32 (sqrt.f32 (fma.f32 (-.f32 1 ux) (*.f32 (*.f32 ux (*.f32 maxCos (*.f32 ux maxCos))) (+.f32 ux -1)) 1)) (fma.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))) xi (*.f32 (sin.f32 (*.f32 uy (*.f32 2 (PI.f32)))) yi))))
Compiler

Compiled 354 to 245 computations (30.8% saved)

localize95.0ms (1.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(*.f32 (-.f32 1 ux) (*.f32 maxCos zi))
0.2b
(sin.f32 (*.f32 uy (*.f32 2 (PI.f32))))
0.2b
(*.f32 (sin.f32 (*.f32 uy (*.f32 2 (PI.f32)))) yi)
0.3b
(*.f32 uy (*.f32 2 (PI.f32)))

series16.0ms (0.2%)

Counts
4 → 68
Calls

21 calls:

TimeVariablePointExpression
2.0ms
yi
@0
(*.f32 (sin.f32 (*.f32 uy (*.f32 2 (PI.f32)))) yi)
2.0ms
maxCos
@inf
(*.f32 (-.f32 1 ux) (*.f32 maxCos zi))
2.0ms
uy
@0
(*.f32 (sin.f32 (*.f32 uy (*.f32 2 (PI.f32)))) yi)
1.0ms
uy
@0
(*.f32 uy (*.f32 2 (PI.f32)))
1.0ms
zi
@inf
(*.f32 (-.f32 1 ux) (*.f32 maxCos zi))

rewrite58.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
616×prod-diff_binary32
163×add-sqr-sqrt_binary32
159×*-un-lft-identity_binary32
159×pow1_binary32
149×add-cbrt-cube_binary32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01641
132241
2389941
Stop Event
node limit
Counts
4 → 69
Calls
Call 1
Inputs
(*.f32 uy (*.f32 2 (PI.f32)))
(*.f32 (sin.f32 (*.f32 uy (*.f32 2 (PI.f32)))) yi)
(sin.f32 (*.f32 uy (*.f32 2 (PI.f32))))
(*.f32 (-.f32 1 ux) (*.f32 maxCos zi))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f32 (exp.f32 (log1p.f32 (*.f32 (PI.f32) (*.f32 uy 2)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (*.f32 (PI.f32) (*.f32 uy 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (pow.f32 (*.f32 (PI.f32) (*.f32 uy 2)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (cbrt.f32 (*.f32 (PI.f32) (*.f32 uy 2))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (sqrt.f32 (*.f32 (PI.f32) (*.f32 uy 2))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f32 (pow.f32 (*.f32 (PI.f32) (*.f32 uy 2)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (pow.f32 (pow.f32 (exp.f32 2) (PI.f32)) uy))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (+.f32 1 (expm1.f32 (*.f32 (PI.f32) (*.f32 uy 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f32 (pow.f32 (*.f32 (PI.f32) (*.f32 uy 2)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f32 (*.f32 (pow.f32 uy 3) (pow.f32 (*.f32 2 (PI.f32)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f32 (*.f32 (pow.f32 (*.f32 2 (PI.f32)) 3) (pow.f32 uy 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f32 (log1p.f32 (*.f32 (PI.f32) (*.f32 uy 2))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f32 (expm1.f32 (*.f32 (PI.f32) (*.f32 uy 2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f32 (log.f32 (*.f32 (PI.f32) (*.f32 uy 2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f32 (*.f32 (log.f32 (*.f32 (PI.f32) (*.f32 uy 2))) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f32 (exp.f32 (log1p.f32 (*.f32 (sin.f32 (*.f32 (PI.f32) (*.f32 uy 2))) yi))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (*.f32 (sin.f32 (*.f32 (PI.f32) (*.f32 uy 2))) yi) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (pow.f32 (*.f32 (sin.f32 (*.f32 (PI.f32) (*.f32 uy 2))) yi) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (cbrt.f32 (*.f32 (sin.f32 (*.f32 (PI.f32) (*.f32 uy 2))) yi)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (sqrt.f32 (*.f32 (sin.f32 (*.f32 (PI.f32) (*.f32 uy 2))) yi)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f32 (pow.f32 (*.f32 (sin.f32 (*.f32 (PI.f32) (*.f32 uy 2))) yi) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (pow.f32 (exp.f32 yi) (sin.f32 (*.f32 (PI.f32) (*.f32 uy 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (+.f32 1 (expm1.f32 (*.f32 (sin.f32 (*.f32 (PI.f32) (*.f32 uy 2))) yi))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f32 (pow.f32 (*.f32 (sin.f32 (*.f32 (PI.f32) (*.f32 uy 2))) yi) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f32 (*.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) (*.f32 uy 2))) 3) (pow.f32 yi 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f32 (*.f32 (pow.f32 yi 3) (pow.f32 (sin.f32 (*.f32 (PI.f32) (*.f32 uy 2))) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f32 (log1p.f32 (*.f32 (sin.f32 (*.f32 (PI.f32) (*.f32 uy 2))) yi)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f32 (expm1.f32 (*.f32 (sin.f32 (*.f32 (PI.f32) (*.f32 uy 2))) yi)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f32 (log.f32 (*.f32 (sin.f32 (*.f32 (PI.f32) (*.f32 uy 2))) yi)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f32 (*.f32 (log.f32 (*.f32 (sin.f32 (*.f32 (PI.f32) (*.f32 uy 2))) yi)) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f32 (exp.f32 (log1p.f32 (sin.f32 (*.f32 (PI.f32) (*.f32 uy 2))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (sin.f32 (*.f32 (PI.f32) (*.f32 uy 2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 1 (sin.f32 (*.f32 (PI.f32) (*.f32 uy 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (cbrt.f32 (sin.f32 (*.f32 (PI.f32) (*.f32 uy 2)))) (pow.f32 (cbrt.f32 (sin.f32 (*.f32 (PI.f32) (*.f32 uy 2)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (pow.f32 (cbrt.f32 (sin.f32 (*.f32 (PI.f32) (*.f32 uy 2)))) 2) (cbrt.f32 (sin.f32 (*.f32 (PI.f32) (*.f32 uy 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (sqrt.f32 (sin.f32 (*.f32 (PI.f32) (*.f32 uy 2)))) (sqrt.f32 (sin.f32 (*.f32 (PI.f32) (*.f32 uy 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (sin.f32 (*.f32 (PI.f32) (*.f32 uy 2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) (*.f32 uy 2))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (cbrt.f32 (sin.f32 (*.f32 (PI.f32) (*.f32 uy 2)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (sqrt.f32 (sin.f32 (*.f32 (PI.f32) (*.f32 uy 2)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) (*.f32 uy 2))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (exp.f32 (sin.f32 (*.f32 (PI.f32) (*.f32 uy 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (+.f32 1 (expm1.f32 (sin.f32 (*.f32 (PI.f32) (*.f32 uy 2))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) (*.f32 uy 2))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f32 (log1p.f32 (sin.f32 (*.f32 (PI.f32) (*.f32 uy 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f32 (expm1.f32 (sin.f32 (*.f32 (PI.f32) (*.f32 uy 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f32 (log.f32 (sin.f32 (*.f32 (PI.f32) (*.f32 uy 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f32 (*.f32 (log.f32 (sin.f32 (*.f32 (PI.f32) (*.f32 uy 2)))) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f32 (*.f32 maxCos zi) (*.f32 (neg.f32 ux) (*.f32 maxCos zi)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f32 (*.f32 maxCos zi) (*.f32 (*.f32 maxCos zi) (neg.f32 ux)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f32 (exp.f32 (log1p.f32 (*.f32 (-.f32 1 ux) (*.f32 maxCos zi)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (*.f32 (-.f32 1 (pow.f32 ux 3)) (*.f32 maxCos zi)) (+.f32 1 (fma.f32 ux ux ux)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (*.f32 (-.f32 1 (*.f32 ux ux)) (*.f32 maxCos zi)) (+.f32 1 ux))))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (*.f32 (*.f32 maxCos zi) (-.f32 1 (pow.f32 ux 3))) (+.f32 1 (fma.f32 ux ux ux)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (*.f32 (*.f32 maxCos zi) (-.f32 1 (*.f32 ux ux))) (+.f32 1 ux))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (*.f32 (-.f32 1 ux) (*.f32 maxCos zi)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (pow.f32 (*.f32 (-.f32 1 ux) (*.f32 maxCos zi)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (cbrt.f32 (*.f32 (-.f32 1 ux) (*.f32 maxCos zi))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (sqrt.f32 (*.f32 (-.f32 1 ux) (*.f32 maxCos zi))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f32 (pow.f32 (*.f32 (-.f32 1 ux) (*.f32 maxCos zi)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (pow.f32 (pow.f32 (exp.f32 zi) maxCos) (-.f32 1 ux)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (+.f32 1 (expm1.f32 (*.f32 (-.f32 1 ux) (*.f32 maxCos zi)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f32 (pow.f32 (*.f32 (-.f32 1 ux) (*.f32 maxCos zi)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f32 (*.f32 (pow.f32 (-.f32 1 ux) 3) (pow.f32 (*.f32 maxCos zi) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f32 (*.f32 (pow.f32 (*.f32 maxCos zi) 3) (pow.f32 (-.f32 1 ux) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f32 (log1p.f32 (*.f32 (-.f32 1 ux) (*.f32 maxCos zi))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f32 (expm1.f32 (*.f32 (-.f32 1 ux) (*.f32 maxCos zi))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f32 (log.f32 (*.f32 (-.f32 1 ux) (*.f32 maxCos zi))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f32 (*.f32 (log.f32 (*.f32 (-.f32 1 ux) (*.f32 maxCos zi))) 1))))))

simplify43.0ms (0.5%)

Algorithm
egg-herbie
Rules
954×fma-neg_binary32
628×distribute-rgt-neg-in_binary32
505×associate-*l*_binary32
416×associate-*r*_binary32
229×fma-def_binary32
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
077902
1221894
2688880
33136878
Stop Event
node limit
Counts
137 → 97
Calls
Call 1
Inputs
(*.f32 2 (*.f32 uy (PI.f32)))
(*.f32 2 (*.f32 uy (PI.f32)))
(*.f32 2 (*.f32 uy (PI.f32)))
(*.f32 2 (*.f32 uy (PI.f32)))
(*.f32 2 (*.f32 uy (PI.f32)))
(*.f32 2 (*.f32 uy (PI.f32)))
(*.f32 2 (*.f32 uy (PI.f32)))
(*.f32 2 (*.f32 uy (PI.f32)))
(*.f32 2 (*.f32 uy (PI.f32)))
(*.f32 2 (*.f32 uy (PI.f32)))
(*.f32 2 (*.f32 uy (PI.f32)))
(*.f32 2 (*.f32 uy (PI.f32)))
(*.f32 2 (*.f32 uy (*.f32 (PI.f32) yi)))
(-.f32 (*.f32 2 (*.f32 uy (*.f32 yi (PI.f32)))) (*.f32 4/3 (*.f32 (pow.f32 uy 3) (*.f32 yi (pow.f32 (PI.f32) 3)))))
(-.f32 (+.f32 (*.f32 2 (*.f32 uy (*.f32 yi (PI.f32)))) (*.f32 4/15 (*.f32 (pow.f32 uy 5) (*.f32 (pow.f32 (PI.f32) 5) yi)))) (*.f32 4/3 (*.f32 (pow.f32 uy 3) (*.f32 (pow.f32 (PI.f32) 3) yi))))
(-.f32 (+.f32 (*.f32 2 (*.f32 uy (*.f32 yi (PI.f32)))) (*.f32 4/15 (*.f32 (pow.f32 uy 5) (*.f32 yi (pow.f32 (PI.f32) 5))))) (+.f32 (*.f32 4/3 (*.f32 (pow.f32 uy 3) (*.f32 (pow.f32 (PI.f32) 3) yi))) (*.f32 8/315 (*.f32 (pow.f32 uy 7) (*.f32 yi (pow.f32 (PI.f32) 7))))))
(*.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) yi)
(*.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) yi)
(*.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) yi)
(*.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) yi)
(*.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) yi)
(*.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) yi)
(*.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) yi)
(*.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) yi)
(*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) yi)
(*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) yi)
(*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) yi)
(*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) yi)
(*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) yi)
(*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) yi)
(*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) yi)
(*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) yi)
(*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) yi)
(*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) yi)
(*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) yi)
(*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) yi)
(*.f32 2 (*.f32 uy (PI.f32)))
(-.f32 (*.f32 2 (*.f32 uy (PI.f32))) (*.f32 4/3 (*.f32 (pow.f32 uy 3) (pow.f32 (PI.f32) 3))))
(-.f32 (+.f32 (*.f32 2 (*.f32 uy (PI.f32))) (*.f32 4/15 (*.f32 (pow.f32 uy 5) (pow.f32 (PI.f32) 5)))) (*.f32 4/3 (*.f32 (pow.f32 uy 3) (pow.f32 (PI.f32) 3))))
(-.f32 (+.f32 (*.f32 2 (*.f32 uy (PI.f32))) (*.f32 4/15 (*.f32 (pow.f32 uy 5) (pow.f32 (PI.f32) 5)))) (+.f32 (*.f32 4/3 (*.f32 (pow.f32 uy 3) (pow.f32 (PI.f32) 3))) (*.f32 8/315 (*.f32 (pow.f32 uy 7) (pow.f32 (PI.f32) 7)))))
(sin.f32 (*.f32 2 (*.f32 (PI.f32) uy)))
(sin.f32 (*.f32 2 (*.f32 (PI.f32) uy)))
(sin.f32 (*.f32 2 (*.f32 (PI.f32) uy)))
(sin.f32 (*.f32 2 (*.f32 (PI.f32) uy)))
(sin.f32 (*.f32 2 (*.f32 (PI.f32) uy)))
(sin.f32 (*.f32 2 (*.f32 (PI.f32) uy)))
(sin.f32 (*.f32 2 (*.f32 (PI.f32) uy)))
(sin.f32 (*.f32 2 (*.f32 (PI.f32) uy)))
(*.f32 maxCos zi)
(-.f32 (*.f32 maxCos zi) (*.f32 maxCos (*.f32 ux zi)))
(-.f32 (*.f32 maxCos zi) (*.f32 maxCos (*.f32 ux zi)))
(-.f32 (*.f32 maxCos zi) (*.f32 maxCos (*.f32 ux zi)))
(*.f32 -1 (*.f32 maxCos (*.f32 ux zi)))
(-.f32 (*.f32 maxCos zi) (*.f32 maxCos (*.f32 ux zi)))
(-.f32 (*.f32 maxCos zi) (*.f32 maxCos (*.f32 ux zi)))
(-.f32 (*.f32 maxCos zi) (*.f32 maxCos (*.f32 ux zi)))
(*.f32 -1 (*.f32 maxCos (*.f32 ux zi)))
(-.f32 (*.f32 maxCos zi) (*.f32 maxCos (*.f32 ux zi)))
(-.f32 (*.f32 maxCos zi) (*.f32 maxCos (*.f32 ux zi)))
(-.f32 (*.f32 maxCos zi) (*.f32 maxCos (*.f32 ux zi)))
(*.f32 (-.f32 zi (*.f32 ux zi)) maxCos)
(*.f32 (-.f32 zi (*.f32 ux zi)) maxCos)
(*.f32 (-.f32 zi (*.f32 ux zi)) maxCos)
(*.f32 (-.f32 zi (*.f32 ux zi)) maxCos)
(*.f32 (-.f32 maxCos (*.f32 maxCos ux)) zi)
(*.f32 (-.f32 maxCos (*.f32 maxCos ux)) zi)
(*.f32 (-.f32 maxCos (*.f32 maxCos ux)) zi)
(*.f32 (-.f32 maxCos (*.f32 maxCos ux)) zi)
Outputs
(*.f32 2 (*.f32 uy (PI.f32)))
(*.f32 (*.f32 2 (PI.f32)) uy)
(*.f32 (PI.f32) (*.f32 2 uy))
(*.f32 2 (*.f32 uy (PI.f32)))
(*.f32 (*.f32 2 (PI.f32)) uy)
(*.f32 (PI.f32) (*.f32 2 uy))
(*.f32 2 (*.f32 uy (PI.f32)))
(*.f32 (*.f32 2 (PI.f32)) uy)
(*.f32 (PI.f32) (*.f32 2 uy))
(*.f32 2 (*.f32 uy (PI.f32)))
(*.f32 (*.f32 2 (PI.f32)) uy)
(*.f32 (PI.f32) (*.f32 2 uy))
(*.f32 2 (*.f32 uy (PI.f32)))
(*.f32 (*.f32 2 (PI.f32)) uy)
(*.f32 (PI.f32) (*.f32 2 uy))
(*.f32 2 (*.f32 uy (PI.f32)))
(*.f32 (*.f32 2 (PI.f32)) uy)
(*.f32 (PI.f32) (*.f32 2 uy))
(*.f32 2 (*.f32 uy (PI.f32)))
(*.f32 (*.f32 2 (PI.f32)) uy)
(*.f32 (PI.f32) (*.f32 2 uy))
(*.f32 2 (*.f32 uy (PI.f32)))
(*.f32 (*.f32 2 (PI.f32)) uy)
(*.f32 (PI.f32) (*.f32 2 uy))
(*.f32 2 (*.f32 uy (PI.f32)))
(*.f32 (*.f32 2 (PI.f32)) uy)
(*.f32 (PI.f32) (*.f32 2 uy))
(*.f32 2 (*.f32 uy (PI.f32)))
(*.f32 (*.f32 2 (PI.f32)) uy)
(*.f32 (PI.f32) (*.f32 2 uy))
(*.f32 2 (*.f32 uy (PI.f32)))
(*.f32 (*.f32 2 (PI.f32)) uy)
(*.f32 (PI.f32) (*.f32 2 uy))
(*.f32 2 (*.f32 uy (PI.f32)))
(*.f32 (*.f32 2 (PI.f32)) uy)
(*.f32 (PI.f32) (*.f32 2 uy))
(*.f32 2 (*.f32 uy (*.f32 (PI.f32) yi)))
(*.f32 2 (*.f32 (PI.f32) (*.f32 uy yi)))
(-.f32 (*.f32 2 (*.f32 uy (*.f32 yi (PI.f32)))) (*.f32 4/3 (*.f32 (pow.f32 uy 3) (*.f32 yi (pow.f32 (PI.f32) 3)))))
(-.f32 (*.f32 2 (*.f32 uy (*.f32 (PI.f32) yi))) (*.f32 (*.f32 4/3 (pow.f32 uy 3)) (*.f32 yi (pow.f32 (PI.f32) 3))))
(fma.f32 2 (*.f32 uy (*.f32 (PI.f32) yi)) (*.f32 (*.f32 -4/3 (pow.f32 uy 3)) (*.f32 yi (pow.f32 (PI.f32) 3))))
(*.f32 yi (fma.f32 (*.f32 (pow.f32 uy 3) (pow.f32 (PI.f32) 3)) -4/3 (*.f32 (PI.f32) (*.f32 2 uy))))
(*.f32 yi (fma.f32 2 (*.f32 uy (PI.f32)) (*.f32 (pow.f32 uy 3) (*.f32 (pow.f32 (PI.f32) 3) -4/3))))
(-.f32 (+.f32 (*.f32 2 (*.f32 uy (*.f32 yi (PI.f32)))) (*.f32 4/15 (*.f32 (pow.f32 uy 5) (*.f32 (pow.f32 (PI.f32) 5) yi)))) (*.f32 4/3 (*.f32 (pow.f32 uy 3) (*.f32 (pow.f32 (PI.f32) 3) yi))))
(+.f32 (fma.f32 2 (*.f32 uy (*.f32 (PI.f32) yi)) (*.f32 4/15 (*.f32 (pow.f32 uy 5) (*.f32 yi (pow.f32 (PI.f32) 5))))) (*.f32 -4/3 (*.f32 (pow.f32 uy 3) (*.f32 yi (pow.f32 (PI.f32) 3)))))
(fma.f32 2 (*.f32 uy (*.f32 (PI.f32) yi)) (fma.f32 4/15 (*.f32 yi (*.f32 (pow.f32 uy 5) (pow.f32 (PI.f32) 5))) (*.f32 (*.f32 -4/3 (pow.f32 uy 3)) (*.f32 yi (pow.f32 (PI.f32) 3)))))
(fma.f32 4/15 (*.f32 yi (*.f32 (pow.f32 uy 5) (pow.f32 (PI.f32) 5))) (*.f32 yi (fma.f32 (*.f32 (pow.f32 uy 3) (pow.f32 (PI.f32) 3)) -4/3 (*.f32 (PI.f32) (*.f32 2 uy)))))
(fma.f32 yi (fma.f32 2 (*.f32 uy (PI.f32)) (*.f32 4/15 (*.f32 (pow.f32 uy 5) (pow.f32 (PI.f32) 5)))) (*.f32 (pow.f32 (PI.f32) 3) (*.f32 yi (*.f32 (pow.f32 uy 3) -4/3))))
(-.f32 (+.f32 (*.f32 2 (*.f32 uy (*.f32 yi (PI.f32)))) (*.f32 4/15 (*.f32 (pow.f32 uy 5) (*.f32 yi (pow.f32 (PI.f32) 5))))) (+.f32 (*.f32 4/3 (*.f32 (pow.f32 uy 3) (*.f32 (pow.f32 (PI.f32) 3) yi))) (*.f32 8/315 (*.f32 (pow.f32 uy 7) (*.f32 yi (pow.f32 (PI.f32) 7))))))
(-.f32 (fma.f32 2 (*.f32 uy (*.f32 (PI.f32) yi)) (*.f32 4/15 (*.f32 (pow.f32 uy 5) (*.f32 yi (pow.f32 (PI.f32) 5))))) (fma.f32 4/3 (*.f32 (pow.f32 uy 3) (*.f32 yi (pow.f32 (PI.f32) 3))) (*.f32 8/315 (*.f32 (*.f32 (pow.f32 uy 7) yi) (pow.f32 (PI.f32) 7)))))
(+.f32 (fma.f32 2 (*.f32 uy (*.f32 (PI.f32) yi)) (fma.f32 4/15 (*.f32 yi (*.f32 (pow.f32 uy 5) (pow.f32 (PI.f32) 5))) (*.f32 (*.f32 -4/3 (pow.f32 uy 3)) (*.f32 yi (pow.f32 (PI.f32) 3))))) (*.f32 -8/315 (*.f32 yi (*.f32 (pow.f32 uy 7) (pow.f32 (PI.f32) 7)))))
(-.f32 (*.f32 yi (fma.f32 4/15 (*.f32 (pow.f32 uy 5) (pow.f32 (PI.f32) 5)) (*.f32 (PI.f32) (*.f32 2 uy)))) (*.f32 yi (fma.f32 8/315 (*.f32 (pow.f32 uy 7) (pow.f32 (PI.f32) 7)) (*.f32 4/3 (*.f32 (pow.f32 uy 3) (pow.f32 (PI.f32) 3))))))
(fma.f32 yi (fma.f32 2 (*.f32 uy (PI.f32)) (*.f32 4/15 (*.f32 (pow.f32 uy 5) (pow.f32 (PI.f32) 5)))) (*.f32 yi (fma.f32 (pow.f32 (PI.f32) 7) (*.f32 (pow.f32 uy 7) -8/315) (*.f32 (pow.f32 uy 3) (*.f32 (pow.f32 (PI.f32) 3) -4/3)))))
(*.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) yi)
(*.f32 yi (sin.f32 (*.f32 (*.f32 2 (PI.f32)) uy)))
(*.f32 yi (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))))
(*.f32 yi (sin.f32 (*.f32 (PI.f32) (*.f32 2 uy))))
(*.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) yi)
(*.f32 yi (sin.f32 (*.f32 (*.f32 2 (PI.f32)) uy)))
(*.f32 yi (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))))
(*.f32 yi (sin.f32 (*.f32 (PI.f32) (*.f32 2 uy))))
(*.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) yi)
(*.f32 yi (sin.f32 (*.f32 (*.f32 2 (PI.f32)) uy)))
(*.f32 yi (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))))
(*.f32 yi (sin.f32 (*.f32 (PI.f32) (*.f32 2 uy))))
(*.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) yi)
(*.f32 yi (sin.f32 (*.f32 (*.f32 2 (PI.f32)) uy)))
(*.f32 yi (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))))
(*.f32 yi (sin.f32 (*.f32 (PI.f32) (*.f32 2 uy))))
(*.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) yi)
(*.f32 yi (sin.f32 (*.f32 (*.f32 2 (PI.f32)) uy)))
(*.f32 yi (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))))
(*.f32 yi (sin.f32 (*.f32 (PI.f32) (*.f32 2 uy))))
(*.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) yi)
(*.f32 yi (sin.f32 (*.f32 (*.f32 2 (PI.f32)) uy)))
(*.f32 yi (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))))
(*.f32 yi (sin.f32 (*.f32 (PI.f32) (*.f32 2 uy))))
(*.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) yi)
(*.f32 yi (sin.f32 (*.f32 (*.f32 2 (PI.f32)) uy)))
(*.f32 yi (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))))
(*.f32 yi (sin.f32 (*.f32 (PI.f32) (*.f32 2 uy))))
(*.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) yi)
(*.f32 yi (sin.f32 (*.f32 (*.f32 2 (PI.f32)) uy)))
(*.f32 yi (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))))
(*.f32 yi (sin.f32 (*.f32 (PI.f32) (*.f32 2 uy))))
(*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) yi)
(*.f32 yi (sin.f32 (*.f32 (*.f32 2 (PI.f32)) uy)))
(*.f32 yi (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))))
(*.f32 yi (sin.f32 (*.f32 (PI.f32) (*.f32 2 uy))))
(*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) yi)
(*.f32 yi (sin.f32 (*.f32 (*.f32 2 (PI.f32)) uy)))
(*.f32 yi (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))))
(*.f32 yi (sin.f32 (*.f32 (PI.f32) (*.f32 2 uy))))
(*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) yi)
(*.f32 yi (sin.f32 (*.f32 (*.f32 2 (PI.f32)) uy)))
(*.f32 yi (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))))
(*.f32 yi (sin.f32 (*.f32 (PI.f32) (*.f32 2 uy))))
(*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) yi)
(*.f32 yi (sin.f32 (*.f32 (*.f32 2 (PI.f32)) uy)))
(*.f32 yi (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))))
(*.f32 yi (sin.f32 (*.f32 (PI.f32) (*.f32 2 uy))))
(*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) yi)
(*.f32 yi (sin.f32 (*.f32 (*.f32 2 (PI.f32)) uy)))
(*.f32 yi (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))))
(*.f32 yi (sin.f32 (*.f32 (PI.f32) (*.f32 2 uy))))
(*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) yi)
(*.f32 yi (sin.f32 (*.f32 (*.f32 2 (PI.f32)) uy)))
(*.f32 yi (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))))
(*.f32 yi (sin.f32 (*.f32 (PI.f32) (*.f32 2 uy))))
(*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) yi)
(*.f32 yi (sin.f32 (*.f32 (*.f32 2 (PI.f32)) uy)))
(*.f32 yi (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))))
(*.f32 yi (sin.f32 (*.f32 (PI.f32) (*.f32 2 uy))))
(*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) yi)
(*.f32 yi (sin.f32 (*.f32 (*.f32 2 (PI.f32)) uy)))
(*.f32 yi (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))))
(*.f32 yi (sin.f32 (*.f32 (PI.f32) (*.f32 2 uy))))
(*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) yi)
(*.f32 yi (sin.f32 (*.f32 (*.f32 2 (PI.f32)) uy)))
(*.f32 yi (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))))
(*.f32 yi (sin.f32 (*.f32 (PI.f32) (*.f32 2 uy))))
(*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) yi)
(*.f32 yi (sin.f32 (*.f32 (*.f32 2 (PI.f32)) uy)))
(*.f32 yi (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))))
(*.f32 yi (sin.f32 (*.f32 (PI.f32) (*.f32 2 uy))))
(*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) yi)
(*.f32 yi (sin.f32 (*.f32 (*.f32 2 (PI.f32)) uy)))
(*.f32 yi (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))))
(*.f32 yi (sin.f32 (*.f32 (PI.f32) (*.f32 2 uy))))
(*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) yi)
(*.f32 yi (sin.f32 (*.f32 (*.f32 2 (PI.f32)) uy)))
(*.f32 yi (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))))
(*.f32 yi (sin.f32 (*.f32 (PI.f32) (*.f32 2 uy))))
(*.f32 2 (*.f32 uy (PI.f32)))
(*.f32 (*.f32 2 (PI.f32)) uy)
(*.f32 (PI.f32) (*.f32 2 uy))
(-.f32 (*.f32 2 (*.f32 uy (PI.f32))) (*.f32 4/3 (*.f32 (pow.f32 uy 3) (pow.f32 (PI.f32) 3))))
(-.f32 (*.f32 (*.f32 2 (PI.f32)) uy) (*.f32 (*.f32 4/3 (pow.f32 uy 3)) (pow.f32 (PI.f32) 3)))
(fma.f32 2 (*.f32 uy (PI.f32)) (*.f32 (*.f32 (pow.f32 uy 3) (pow.f32 (PI.f32) 3)) -4/3))
(fma.f32 (*.f32 (pow.f32 uy 3) (pow.f32 (PI.f32) 3)) -4/3 (*.f32 (PI.f32) (*.f32 2 uy)))
(fma.f32 2 (*.f32 uy (PI.f32)) (*.f32 (pow.f32 uy 3) (*.f32 (pow.f32 (PI.f32) 3) -4/3)))
(-.f32 (+.f32 (*.f32 2 (*.f32 uy (PI.f32))) (*.f32 4/15 (*.f32 (pow.f32 uy 5) (pow.f32 (PI.f32) 5)))) (*.f32 4/3 (*.f32 (pow.f32 uy 3) (pow.f32 (PI.f32) 3))))
(+.f32 (fma.f32 2 (*.f32 uy (PI.f32)) (*.f32 4/15 (*.f32 (pow.f32 uy 5) (pow.f32 (PI.f32) 5)))) (*.f32 -4/3 (*.f32 (pow.f32 uy 3) (pow.f32 (PI.f32) 3))))
(fma.f32 2 (*.f32 uy (PI.f32)) (fma.f32 4/15 (*.f32 (pow.f32 uy 5) (pow.f32 (PI.f32) 5)) (*.f32 (*.f32 (pow.f32 uy 3) (pow.f32 (PI.f32) 3)) -4/3)))
(fma.f32 4/15 (*.f32 (pow.f32 uy 5) (pow.f32 (PI.f32) 5)) (fma.f32 (*.f32 (pow.f32 uy 3) (pow.f32 (PI.f32) 3)) -4/3 (*.f32 (PI.f32) (*.f32 2 uy))))
(fma.f32 2 (*.f32 uy (PI.f32)) (fma.f32 4/15 (*.f32 (pow.f32 uy 5) (pow.f32 (PI.f32) 5)) (*.f32 (pow.f32 uy 3) (*.f32 (pow.f32 (PI.f32) 3) -4/3))))
(-.f32 (+.f32 (*.f32 2 (*.f32 uy (PI.f32))) (*.f32 4/15 (*.f32 (pow.f32 uy 5) (pow.f32 (PI.f32) 5)))) (+.f32 (*.f32 4/3 (*.f32 (pow.f32 uy 3) (pow.f32 (PI.f32) 3))) (*.f32 8/315 (*.f32 (pow.f32 uy 7) (pow.f32 (PI.f32) 7)))))
(-.f32 (fma.f32 2 (*.f32 uy (PI.f32)) (*.f32 4/15 (*.f32 (pow.f32 uy 5) (pow.f32 (PI.f32) 5)))) (fma.f32 4/3 (*.f32 (pow.f32 uy 3) (pow.f32 (PI.f32) 3)) (*.f32 8/315 (*.f32 (pow.f32 uy 7) (pow.f32 (PI.f32) 7)))))
(fma.f32 2 (*.f32 uy (PI.f32)) (fma.f32 4/15 (*.f32 (pow.f32 uy 5) (pow.f32 (PI.f32) 5)) (fma.f32 (*.f32 (pow.f32 uy 3) (pow.f32 (PI.f32) 3)) -4/3 (*.f32 (pow.f32 (PI.f32) 7) (*.f32 (pow.f32 uy 7) -8/315)))))
(fma.f32 2 (*.f32 uy (PI.f32)) (fma.f32 4/15 (*.f32 (pow.f32 uy 5) (pow.f32 (PI.f32) 5)) (fma.f32 (pow.f32 (PI.f32) 7) (*.f32 (pow.f32 uy 7) -8/315) (*.f32 (pow.f32 uy 3) (*.f32 (pow.f32 (PI.f32) 3) -4/3)))))
(sin.f32 (*.f32 2 (*.f32 (PI.f32) uy)))
(sin.f32 (*.f32 (*.f32 2 (PI.f32)) uy))
(sin.f32 (*.f32 2 (*.f32 uy (PI.f32))))
(sin.f32 (*.f32 (PI.f32) (*.f32 2 uy)))
(sin.f32 (*.f32 2 (*.f32 (PI.f32) uy)))
(sin.f32 (*.f32 (*.f32 2 (PI.f32)) uy))
(sin.f32 (*.f32 2 (*.f32 uy (PI.f32))))
(sin.f32 (*.f32 (PI.f32) (*.f32 2 uy)))
(sin.f32 (*.f32 2 (*.f32 (PI.f32) uy)))
(sin.f32 (*.f32 (*.f32 2 (PI.f32)) uy))
(sin.f32 (*.f32 2 (*.f32 uy (PI.f32))))
(sin.f32 (*.f32 (PI.f32) (*.f32 2 uy)))
(sin.f32 (*.f32 2 (*.f32 (PI.f32) uy)))
(sin.f32 (*.f32 (*.f32 2 (PI.f32)) uy))
(sin.f32 (*.f32 2 (*.f32 uy (PI.f32))))
(sin.f32 (*.f32 (PI.f32) (*.f32 2 uy)))
(sin.f32 (*.f32 2 (*.f32 (PI.f32) uy)))
(sin.f32 (*.f32 (*.f32 2 (PI.f32)) uy))
(sin.f32 (*.f32 2 (*.f32 uy (PI.f32))))
(sin.f32 (*.f32 (PI.f32) (*.f32 2 uy)))
(sin.f32 (*.f32 2 (*.f32 (PI.f32) uy)))
(sin.f32 (*.f32 (*.f32 2 (PI.f32)) uy))
(sin.f32 (*.f32 2 (*.f32 uy (PI.f32))))
(sin.f32 (*.f32 (PI.f32) (*.f32 2 uy)))
(sin.f32 (*.f32 2 (*.f32 (PI.f32) uy)))
(sin.f32 (*.f32 (*.f32 2 (PI.f32)) uy))
(sin.f32 (*.f32 2 (*.f32 uy (PI.f32))))
(sin.f32 (*.f32 (PI.f32) (*.f32 2 uy)))
(sin.f32 (*.f32 2 (*.f32 (PI.f32) uy)))
(sin.f32 (*.f32 (*.f32 2 (PI.f32)) uy))
(sin.f32 (*.f32 2 (*.f32 uy (PI.f32))))
(sin.f32 (*.f32 (PI.f32) (*.f32 2 uy)))
(*.f32 maxCos zi)
(-.f32 (*.f32 maxCos zi) (*.f32 maxCos (*.f32 ux zi)))
(*.f32 maxCos (-.f32 zi (*.f32 zi ux)))
(*.f32 zi (-.f32 maxCos (*.f32 maxCos ux)))
(*.f32 maxCos (*.f32 zi (-.f32 1 ux)))
(-.f32 (*.f32 maxCos zi) (*.f32 maxCos (*.f32 ux zi)))
(*.f32 maxCos (-.f32 zi (*.f32 zi ux)))
(*.f32 zi (-.f32 maxCos (*.f32 maxCos ux)))
(*.f32 maxCos (*.f32 zi (-.f32 1 ux)))
(-.f32 (*.f32 maxCos zi) (*.f32 maxCos (*.f32 ux zi)))
(*.f32 maxCos (-.f32 zi (*.f32 zi ux)))
(*.f32 zi (-.f32 maxCos (*.f32 maxCos ux)))
(*.f32 maxCos (*.f32 zi (-.f32 1 ux)))
(*.f32 -1 (*.f32 maxCos (*.f32 ux zi)))
(neg.f32 (*.f32 maxCos (*.f32 zi ux)))
(*.f32 (neg.f32 (*.f32 maxCos ux)) zi)
(*.f32 zi (neg.f32 (*.f32 maxCos ux)))
(-.f32 (*.f32 maxCos zi) (*.f32 maxCos (*.f32 ux zi)))
(*.f32 maxCos (-.f32 zi (*.f32 zi ux)))
(*.f32 zi (-.f32 maxCos (*.f32 maxCos ux)))
(*.f32 maxCos (*.f32 zi (-.f32 1 ux)))
(-.f32 (*.f32 maxCos zi) (*.f32 maxCos (*.f32 ux zi)))
(*.f32 maxCos (-.f32 zi (*.f32 zi ux)))
(*.f32 zi (-.f32 maxCos (*.f32 maxCos ux)))
(*.f32 maxCos (*.f32 zi (-.f32 1 ux)))
(-.f32 (*.f32 maxCos zi) (*.f32 maxCos (*.f32 ux zi)))
(*.f32 maxCos (-.f32 zi (*.f32 zi ux)))
(*.f32 zi (-.f32 maxCos (*.f32 maxCos ux)))
(*.f32 maxCos (*.f32 zi (-.f32 1 ux)))
(*.f32 -1 (*.f32 maxCos (*.f32 ux zi)))
(neg.f32 (*.f32 maxCos (*.f32 zi ux)))
(*.f32 (neg.f32 (*.f32 maxCos ux)) zi)
(*.f32 zi (neg.f32 (*.f32 maxCos ux)))
(-.f32 (*.f32 maxCos zi) (*.f32 maxCos (*.f32 ux zi)))
(*.f32 maxCos (-.f32 zi (*.f32 zi ux)))
(*.f32 zi (-.f32 maxCos (*.f32 maxCos ux)))
(*.f32 maxCos (*.f32 zi (-.f32 1 ux)))
(-.f32 (*.f32 maxCos zi) (*.f32 maxCos (*.f32 ux zi)))
(*.f32 maxCos (-.f32 zi (*.f32 zi ux)))
(*.f32 zi (-.f32 maxCos (*.f32 maxCos ux)))
(*.f32 maxCos (*.f32 zi (-.f32 1 ux)))
(-.f32 (*.f32 maxCos zi) (*.f32 maxCos (*.f32 ux zi)))
(*.f32 maxCos (-.f32 zi (*.f32 zi ux)))
(*.f32 zi (-.f32 maxCos (*.f32 maxCos ux)))
(*.f32 maxCos (*.f32 zi (-.f32 1 ux)))
(*.f32 (-.f32 zi (*.f32 ux zi)) maxCos)
(*.f32 maxCos (-.f32 zi (*.f32 zi ux)))
(*.f32 zi (-.f32 maxCos (*.f32 maxCos ux)))
(*.f32 maxCos (*.f32 zi (-.f32 1 ux)))
(*.f32 (-.f32 zi (*.f32 ux zi)) maxCos)
(*.f32 maxCos (-.f32 zi (*.f32 zi ux)))
(*.f32 zi (-.f32 maxCos (*.f32 maxCos ux)))
(*.f32 maxCos (*.f32 zi (-.f32 1 ux)))
(*.f32 (-.f32 zi (*.f32 ux zi)) maxCos)
(*.f32 maxCos (-.f32 zi (*.f32 zi ux)))
(*.f32 zi (-.f32 maxCos (*.f32 maxCos ux)))
(*.f32 maxCos (*.f32 zi (-.f32 1 ux)))
(*.f32 (-.f32 zi (*.f32 ux zi)) maxCos)
(*.f32 maxCos (-.f32 zi (*.f32 zi ux)))
(*.f32 zi (-.f32 maxCos (*.f32 maxCos ux)))
(*.f32 maxCos (*.f32 zi (-.f32 1 ux)))
(*.f32 (-.f32 maxCos (*.f32 maxCos ux)) zi)
(*.f32 maxCos (-.f32 zi (*.f32 zi ux)))
(*.f32 zi (-.f32 maxCos (*.f32 maxCos ux)))
(*.f32 maxCos (*.f32 zi (-.f32 1 ux)))
(*.f32 (-.f32 maxCos (*.f32 maxCos ux)) zi)
(*.f32 maxCos (-.f32 zi (*.f32 zi ux)))
(*.f32 zi (-.f32 maxCos (*.f32 maxCos ux)))
(*.f32 maxCos (*.f32 zi (-.f32 1 ux)))
(*.f32 (-.f32 maxCos (*.f32 maxCos ux)) zi)
(*.f32 maxCos (-.f32 zi (*.f32 zi ux)))
(*.f32 zi (-.f32 maxCos (*.f32 maxCos ux)))
(*.f32 maxCos (*.f32 zi (-.f32 1 ux)))
(*.f32 (-.f32 maxCos (*.f32 maxCos ux)) zi)
(*.f32 maxCos (-.f32 zi (*.f32 zi ux)))
(*.f32 zi (-.f32 maxCos (*.f32 maxCos ux)))
(*.f32 maxCos (*.f32 zi (-.f32 1 ux)))

prune383.0ms (4.8%)

Pruning

13 alts after pruning (13 fresh and 0 done)

PrunedKeptTotal
New10212114
Fresh011
Picked101
Done000
Total10313116
Error
0.2b
Counts
116 → 13
Alt Table
StatusErrorProgram
0.4b
(fma.f32 ux (*.f32 (-.f32 zi (*.f32 ux zi)) maxCos) (*.f32 (sqrt.f32 (fma.f32 (-.f32 1 ux) (*.f32 (*.f32 ux (*.f32 maxCos (*.f32 ux maxCos))) (+.f32 ux -1)) 1)) (fma.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))) xi (*.f32 (sin.f32 (*.f32 uy (*.f32 2 (PI.f32)))) yi))))
0.4b
(+.f32 (+.f32 (*.f32 (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux))))) xi) (*.f32 (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux))))) yi)) (*.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) zi))
7.8b
(fma.f32 ux (*.f32 (-.f32 1 ux) (*.f32 maxCos zi)) (*.f32 (sqrt.f32 (fma.f32 (-.f32 1 ux) (*.f32 (*.f32 ux (*.f32 maxCos (*.f32 ux maxCos))) (+.f32 ux -1)) 1)) (fma.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))) xi (sqrt.f32 (pow.f32 (*.f32 (sin.f32 (*.f32 (PI.f32) (*.f32 uy 2))) yi) 2)))))
5.0b
(fma.f32 ux (*.f32 (-.f32 1 ux) (*.f32 maxCos zi)) (*.f32 (sqrt.f32 (fma.f32 (-.f32 1 ux) (*.f32 (*.f32 ux (*.f32 maxCos (*.f32 ux maxCos))) (+.f32 ux -1)) 1)) (fma.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))) xi (*.f32 (sin.f32 (-.f32 (exp.f32 (log1p.f32 (*.f32 (PI.f32) (*.f32 uy 2)))) 1)) yi))))
1.5b
(fma.f32 ux (*.f32 (-.f32 1 ux) (*.f32 maxCos zi)) (*.f32 (sqrt.f32 (fma.f32 (-.f32 1 ux) (*.f32 (*.f32 ux (*.f32 maxCos (*.f32 ux maxCos))) (+.f32 ux -1)) 1)) (fma.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))) xi (-.f32 (*.f32 2 (*.f32 uy (*.f32 yi (PI.f32)))) (*.f32 4/3 (*.f32 (pow.f32 uy 3) (*.f32 yi (pow.f32 (PI.f32) 3))))))))
15.2b
(fma.f32 ux (*.f32 (-.f32 1 ux) (*.f32 maxCos zi)) (*.f32 (sqrt.f32 (fma.f32 (-.f32 1 ux) (*.f32 (*.f32 ux (*.f32 maxCos (*.f32 ux maxCos))) (+.f32 ux -1)) 1)) (fma.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))) xi (pow.f32 (sqrt.f32 (*.f32 (sin.f32 (*.f32 (PI.f32) (*.f32 uy 2))) yi)) 2))))
0.4b
(fma.f32 ux (*.f32 (-.f32 1 ux) (*.f32 maxCos zi)) (*.f32 (sqrt.f32 (fma.f32 (-.f32 1 ux) (*.f32 (*.f32 ux (*.f32 maxCos (*.f32 ux maxCos))) (+.f32 ux -1)) 1)) (fma.f32 (cos.f32 (cbrt.f32 (*.f32 (pow.f32 uy 3) (pow.f32 (*.f32 2 (PI.f32)) 3)))) xi (*.f32 (sin.f32 (*.f32 uy (*.f32 2 (PI.f32)))) yi))))
0.4b
(fma.f32 ux (*.f32 (-.f32 1 ux) (*.f32 maxCos zi)) (*.f32 (sqrt.f32 (fma.f32 (-.f32 1 ux) (*.f32 (*.f32 ux (*.f32 maxCos (*.f32 ux maxCos))) (+.f32 ux -1)) 1)) (fma.f32 (cos.f32 (log.f32 (pow.f32 (pow.f32 (exp.f32 2) (PI.f32)) uy))) xi (*.f32 (sin.f32 (*.f32 uy (*.f32 2 (PI.f32)))) yi))))
0.4b
(fma.f32 ux (*.f32 (-.f32 1 ux) (*.f32 maxCos zi)) (*.f32 (sqrt.f32 (fma.f32 (-.f32 1 ux) (*.f32 (*.f32 ux (*.f32 maxCos (*.f32 ux maxCos))) (+.f32 ux -1)) 1)) (fma.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))) xi (*.f32 (sin.f32 (pow.f32 (sqrt.f32 (*.f32 (PI.f32) (*.f32 uy 2))) 2)) yi))))
0.4b
(fma.f32 ux (*.f32 (-.f32 1 ux) (*.f32 maxCos zi)) (*.f32 (sqrt.f32 (fma.f32 (-.f32 1 ux) (*.f32 (*.f32 ux (*.f32 maxCos (*.f32 ux maxCos))) (+.f32 ux -1)) 1)) (fma.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))) xi (*.f32 (expm1.f32 (log1p.f32 (sin.f32 (*.f32 (PI.f32) (*.f32 uy 2))))) yi))))
0.5b
(fma.f32 ux (*.f32 (-.f32 1 ux) (*.f32 maxCos zi)) (*.f32 (sqrt.f32 (fma.f32 (-.f32 1 ux) (*.f32 (*.f32 ux (*.f32 maxCos (*.f32 ux maxCos))) (+.f32 ux -1)) 1)) (fma.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))) xi (*.f32 (sin.f32 (pow.f32 (cbrt.f32 (*.f32 (PI.f32) (*.f32 uy 2))) 3)) yi))))
0.5b
(fma.f32 ux (*.f32 (-.f32 1 ux) (*.f32 maxCos zi)) (*.f32 (sqrt.f32 (fma.f32 (-.f32 1 ux) (*.f32 (*.f32 ux (*.f32 maxCos (*.f32 ux maxCos))) (+.f32 ux -1)) 1)) (fma.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))) xi (*.f32 (*.f32 (cbrt.f32 (sin.f32 (*.f32 (PI.f32) (*.f32 uy 2)))) (pow.f32 (cbrt.f32 (sin.f32 (*.f32 (PI.f32) (*.f32 uy 2)))) 2)) yi))))
0.9b
(fma.f32 ux (*.f32 (-.f32 1 ux) (*.f32 maxCos zi)) (*.f32 (sqrt.f32 (fma.f32 (-.f32 1 ux) (*.f32 (*.f32 ux (*.f32 maxCos (*.f32 ux maxCos))) (+.f32 ux -1)) 1)) (fma.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))) xi (fma.f32 yi (fma.f32 2 (*.f32 uy (PI.f32)) (*.f32 4/15 (*.f32 (pow.f32 uy 5) (pow.f32 (PI.f32) 5)))) (*.f32 yi (fma.f32 (pow.f32 (PI.f32) 7) (*.f32 (pow.f32 uy 7) -8/315) (*.f32 (pow.f32 uy 3) (*.f32 (pow.f32 (PI.f32) 3) -4/3))))))))
Compiler

Compiled 6904 to 4103 computations (40.6% saved)

localize113.0ms (1.4%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(*.f32 (sin.f32 (*.f32 uy (*.f32 2 (PI.f32)))) yi)
0.3b
(*.f32 uy (*.f32 2 (PI.f32)))
0.3b
(*.f32 (pow.f32 uy 3) (pow.f32 (*.f32 2 (PI.f32)) 3))
1.0b
(pow.f32 (*.f32 2 (PI.f32)) 3)

series3.0ms (0%)

Counts
2 → 12
Calls

3 calls:

TimeVariablePointExpression
2.0ms
uy
@0
(*.f32 (pow.f32 uy 3) (pow.f32 (*.f32 2 (PI.f32)) 3))
1.0ms
uy
@inf
(*.f32 (pow.f32 uy 3) (pow.f32 (*.f32 2 (PI.f32)) 3))
1.0ms
uy
@-inf
(*.f32 (pow.f32 uy 3) (pow.f32 (*.f32 2 (PI.f32)) 3))

rewrite46.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
773×pow1_binary32
718×log1p-expm1-u_binary32
718×expm1-log1p-u_binary32
87×add-sqr-sqrt_binary32
83×add-log-exp_binary32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0919
119719
2209719
Stop Event
node limit
Counts
2 → 43
Calls
Call 1
Inputs
(pow.f32 (*.f32 2 (PI.f32)) 3)
(*.f32 (pow.f32 uy 3) (pow.f32 (*.f32 2 (PI.f32)) 3))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f32 (exp.f32 (log1p.f32 (*.f32 8 (pow.f32 (PI.f32) 3)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 2 (*.f32 (PI.f32) (*.f32 4 (pow.f32 (PI.f32) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (PI.f32) (*.f32 2 (*.f32 4 (pow.f32 (PI.f32) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (*.f32 2 (PI.f32)) (*.f32 4 (pow.f32 (PI.f32) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (*.f32 8 (pow.f32 (PI.f32) 3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 1 (*.f32 8 (pow.f32 (PI.f32) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 8 (pow.f32 (PI.f32) 3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (*.f32 4 (pow.f32 (PI.f32) 2)) (*.f32 2 (PI.f32)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (pow.f32 (cbrt.f32 (*.f32 2 (PI.f32))) 2) (*.f32 (cbrt.f32 (*.f32 2 (PI.f32))) (*.f32 4 (pow.f32 (PI.f32) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (sqrt.f32 (*.f32 2 (PI.f32))) (*.f32 (sqrt.f32 (*.f32 2 (PI.f32))) (*.f32 4 (pow.f32 (PI.f32) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (pow.f32 (PI.f32) 3) 8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (pow.f32 (*.f32 2 (PI.f32)) 3/2) (pow.f32 (*.f32 2 (PI.f32)) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (pow.f32 (pow.f32 (cbrt.f32 (*.f32 2 (PI.f32))) 2) 3) (*.f32 2 (PI.f32)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (pow.f32 (sqrt.f32 (*.f32 2 (PI.f32))) 3) (pow.f32 (sqrt.f32 (*.f32 2 (PI.f32))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (*.f32 (*.f32 4 (pow.f32 (PI.f32) 2)) 2) (PI.f32))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (*.f32 (*.f32 4 (pow.f32 (PI.f32) 2)) (PI.f32)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (*.f32 (*.f32 4 (pow.f32 (PI.f32) 2)) 1) (*.f32 2 (PI.f32)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (*.f32 (*.f32 4 (pow.f32 (PI.f32) 2)) (pow.f32 (cbrt.f32 (*.f32 2 (PI.f32))) 2)) (cbrt.f32 (*.f32 2 (PI.f32))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (*.f32 (*.f32 4 (pow.f32 (PI.f32) 2)) (sqrt.f32 (*.f32 2 (PI.f32)))) (sqrt.f32 (*.f32 2 (PI.f32))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f32 (pow.f32 (*.f32 2 (PI.f32)) 6))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (pow.f32 (exp.f32 8) (pow.f32 (PI.f32) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (+.f32 1 (expm1.f32 (*.f32 8 (pow.f32 (PI.f32) 3)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f32 (pow.f32 (*.f32 8 (pow.f32 (PI.f32) 3)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f32 (log1p.f32 (*.f32 8 (pow.f32 (PI.f32) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f32 (expm1.f32 (*.f32 8 (pow.f32 (PI.f32) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f32 (*.f32 3 (log.f32 (*.f32 2 (PI.f32)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f32 (*.f32 (*.f32 3 (log.f32 (*.f32 2 (PI.f32)))) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f32 (exp.f32 (log1p.f32 (pow.f32 (*.f32 (*.f32 2 (PI.f32)) uy) 3))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (pow.f32 (*.f32 (*.f32 2 (PI.f32)) uy) 3) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (pow.f32 (pow.f32 (*.f32 (*.f32 2 (PI.f32)) uy) 3) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (*.f32 (*.f32 2 (PI.f32)) uy) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (pow.f32 (*.f32 (*.f32 2 (PI.f32)) uy) 3/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f32 (pow.f32 (*.f32 (*.f32 2 (PI.f32)) uy) 6))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (exp.f32 (pow.f32 (*.f32 (*.f32 2 (PI.f32)) uy) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (+.f32 1 (expm1.f32 (pow.f32 (*.f32 (*.f32 2 (PI.f32)) uy) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f32 (pow.f32 (pow.f32 (*.f32 (*.f32 2 (PI.f32)) uy) 3) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f32 (*.f32 (pow.f32 (*.f32 8 (pow.f32 (PI.f32) 3)) 3) (pow.f32 (pow.f32 uy 3) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f32 (*.f32 (pow.f32 (pow.f32 uy 3) 3) (pow.f32 (*.f32 8 (pow.f32 (PI.f32) 3)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f32 (log1p.f32 (pow.f32 (*.f32 (*.f32 2 (PI.f32)) uy) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f32 (expm1.f32 (pow.f32 (*.f32 (*.f32 2 (PI.f32)) uy) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f32 (*.f32 3 (log.f32 (*.f32 (*.f32 2 (PI.f32)) uy))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f32 (*.f32 (*.f32 3 (log.f32 (*.f32 (*.f32 2 (PI.f32)) uy))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f32 (*.f32 (log.f32 (*.f32 (*.f32 2 (PI.f32)) uy)) 3))))))

simplify71.0ms (0.9%)

Algorithm
egg-herbie
Rules
974×unswap-sqr_binary32
508×*-commutative_binary32
505×associate-*l*_binary32
366×sqr-pow_binary32
337×associate-*r*_binary32
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
09168
126168
280168
3346168
41586132
52371132
63795132
73900132
84091132
94269132
104458132
114712132
Stop Event
node limit
Counts
55 → 45
Calls
Call 1
Inputs
(*.f32 8 (*.f32 (pow.f32 uy 3) (pow.f32 (PI.f32) 3)))
(*.f32 8 (*.f32 (pow.f32 uy 3) (pow.f32 (PI.f32) 3)))
(*.f32 8 (*.f32 (pow.f32 uy 3) (pow.f32 (PI.f32) 3)))
(*.f32 8 (*.f32 (pow.f32 uy 3) (pow.f32 (PI.f32) 3)))
(*.f32 8 (*.f32 (pow.f32 uy 3) (pow.f32 (PI.f32) 3)))
(*.f32 8 (*.f32 (pow.f32 uy 3) (pow.f32 (PI.f32) 3)))
(*.f32 8 (*.f32 (pow.f32 uy 3) (pow.f32 (PI.f32) 3)))
(*.f32 8 (*.f32 (pow.f32 uy 3) (pow.f32 (PI.f32) 3)))
(*.f32 8 (*.f32 (pow.f32 uy 3) (pow.f32 (PI.f32) 3)))
(*.f32 8 (*.f32 (pow.f32 uy 3) (pow.f32 (PI.f32) 3)))
(*.f32 8 (*.f32 (pow.f32 uy 3) (pow.f32 (PI.f32) 3)))
(*.f32 8 (*.f32 (pow.f32 uy 3) (pow.f32 (PI.f32) 3)))
Outputs
(*.f32 8 (*.f32 (pow.f32 uy 3) (pow.f32 (PI.f32) 3)))
(*.f32 (pow.f32 (PI.f32) 3) (*.f32 8 (pow.f32 uy 3)))
(*.f32 8 (pow.f32 (*.f32 uy (PI.f32)) 3))
(*.f32 8 (*.f32 (pow.f32 uy 3) (pow.f32 (PI.f32) 3)))
(*.f32 (pow.f32 (PI.f32) 3) (*.f32 8 (pow.f32 uy 3)))
(*.f32 8 (pow.f32 (*.f32 uy (PI.f32)) 3))
(*.f32 8 (*.f32 (pow.f32 uy 3) (pow.f32 (PI.f32) 3)))
(*.f32 (pow.f32 (PI.f32) 3) (*.f32 8 (pow.f32 uy 3)))
(*.f32 8 (pow.f32 (*.f32 uy (PI.f32)) 3))
(*.f32 8 (*.f32 (pow.f32 uy 3) (pow.f32 (PI.f32) 3)))
(*.f32 (pow.f32 (PI.f32) 3) (*.f32 8 (pow.f32 uy 3)))
(*.f32 8 (pow.f32 (*.f32 uy (PI.f32)) 3))
(*.f32 8 (*.f32 (pow.f32 uy 3) (pow.f32 (PI.f32) 3)))
(*.f32 (pow.f32 (PI.f32) 3) (*.f32 8 (pow.f32 uy 3)))
(*.f32 8 (pow.f32 (*.f32 uy (PI.f32)) 3))
(*.f32 8 (*.f32 (pow.f32 uy 3) (pow.f32 (PI.f32) 3)))
(*.f32 (pow.f32 (PI.f32) 3) (*.f32 8 (pow.f32 uy 3)))
(*.f32 8 (pow.f32 (*.f32 uy (PI.f32)) 3))
(*.f32 8 (*.f32 (pow.f32 uy 3) (pow.f32 (PI.f32) 3)))
(*.f32 (pow.f32 (PI.f32) 3) (*.f32 8 (pow.f32 uy 3)))
(*.f32 8 (pow.f32 (*.f32 uy (PI.f32)) 3))
(*.f32 8 (*.f32 (pow.f32 uy 3) (pow.f32 (PI.f32) 3)))
(*.f32 (pow.f32 (PI.f32) 3) (*.f32 8 (pow.f32 uy 3)))
(*.f32 8 (pow.f32 (*.f32 uy (PI.f32)) 3))
(*.f32 8 (*.f32 (pow.f32 uy 3) (pow.f32 (PI.f32) 3)))
(*.f32 (pow.f32 (PI.f32) 3) (*.f32 8 (pow.f32 uy 3)))
(*.f32 8 (pow.f32 (*.f32 uy (PI.f32)) 3))
(*.f32 8 (*.f32 (pow.f32 uy 3) (pow.f32 (PI.f32) 3)))
(*.f32 (pow.f32 (PI.f32) 3) (*.f32 8 (pow.f32 uy 3)))
(*.f32 8 (pow.f32 (*.f32 uy (PI.f32)) 3))
(*.f32 8 (*.f32 (pow.f32 uy 3) (pow.f32 (PI.f32) 3)))
(*.f32 (pow.f32 (PI.f32) 3) (*.f32 8 (pow.f32 uy 3)))
(*.f32 8 (pow.f32 (*.f32 uy (PI.f32)) 3))
(*.f32 8 (*.f32 (pow.f32 uy 3) (pow.f32 (PI.f32) 3)))
(*.f32 (pow.f32 (PI.f32) 3) (*.f32 8 (pow.f32 uy 3)))
(*.f32 8 (pow.f32 (*.f32 uy (PI.f32)) 3))

prune415.0ms (5.2%)

Pruning

13 alts after pruning (12 fresh and 1 done)

PrunedKeptTotal
New87188
Fresh11112
Picked011
Done000
Total8813101
Error
0.2b
Counts
101 → 13
Alt Table
StatusErrorProgram
0.4b
(fma.f32 ux (*.f32 (-.f32 zi (*.f32 ux zi)) maxCos) (*.f32 (sqrt.f32 (fma.f32 (-.f32 1 ux) (*.f32 (*.f32 ux (*.f32 maxCos (*.f32 ux maxCos))) (+.f32 ux -1)) 1)) (fma.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))) xi (*.f32 (sin.f32 (*.f32 uy (*.f32 2 (PI.f32)))) yi))))
0.4b
(+.f32 (+.f32 (*.f32 (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux))))) xi) (*.f32 (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux))))) yi)) (*.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) zi))
7.8b
(fma.f32 ux (*.f32 (-.f32 1 ux) (*.f32 maxCos zi)) (*.f32 (sqrt.f32 (fma.f32 (-.f32 1 ux) (*.f32 (*.f32 ux (*.f32 maxCos (*.f32 ux maxCos))) (+.f32 ux -1)) 1)) (fma.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))) xi (sqrt.f32 (pow.f32 (*.f32 (sin.f32 (*.f32 (PI.f32) (*.f32 uy 2))) yi) 2)))))
0.8b
(fma.f32 ux (*.f32 (-.f32 1 ux) (*.f32 maxCos zi)) (*.f32 (sqrt.f32 (fma.f32 (-.f32 1 ux) (*.f32 (*.f32 ux (*.f32 maxCos (*.f32 ux maxCos))) (+.f32 ux -1)) 1)) (fma.f32 (cos.f32 (cbrt.f32 (-.f32 (exp.f32 (log1p.f32 (pow.f32 (*.f32 (*.f32 2 (PI.f32)) uy) 3))) 1))) xi (*.f32 (sin.f32 (*.f32 uy (*.f32 2 (PI.f32)))) yi))))
0.4b
(fma.f32 ux (*.f32 (-.f32 1 ux) (*.f32 maxCos zi)) (*.f32 (sqrt.f32 (fma.f32 (-.f32 1 ux) (*.f32 (*.f32 ux (*.f32 maxCos (*.f32 ux maxCos))) (+.f32 ux -1)) 1)) (fma.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))) xi (*.f32 (expm1.f32 (log1p.f32 (sin.f32 (*.f32 (PI.f32) (*.f32 uy 2))))) yi))))
5.0b
(fma.f32 ux (*.f32 (-.f32 1 ux) (*.f32 maxCos zi)) (*.f32 (sqrt.f32 (fma.f32 (-.f32 1 ux) (*.f32 (*.f32 ux (*.f32 maxCos (*.f32 ux maxCos))) (+.f32 ux -1)) 1)) (fma.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))) xi (*.f32 (sin.f32 (-.f32 (exp.f32 (log1p.f32 (*.f32 (PI.f32) (*.f32 uy 2)))) 1)) yi))))
1.5b
(fma.f32 ux (*.f32 (-.f32 1 ux) (*.f32 maxCos zi)) (*.f32 (sqrt.f32 (fma.f32 (-.f32 1 ux) (*.f32 (*.f32 ux (*.f32 maxCos (*.f32 ux maxCos))) (+.f32 ux -1)) 1)) (fma.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))) xi (-.f32 (*.f32 2 (*.f32 uy (*.f32 yi (PI.f32)))) (*.f32 4/3 (*.f32 (pow.f32 uy 3) (*.f32 yi (pow.f32 (PI.f32) 3))))))))
15.2b
(fma.f32 ux (*.f32 (-.f32 1 ux) (*.f32 maxCos zi)) (*.f32 (sqrt.f32 (fma.f32 (-.f32 1 ux) (*.f32 (*.f32 ux (*.f32 maxCos (*.f32 ux maxCos))) (+.f32 ux -1)) 1)) (fma.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))) xi (pow.f32 (sqrt.f32 (*.f32 (sin.f32 (*.f32 (PI.f32) (*.f32 uy 2))) yi)) 2))))
0.4b
(fma.f32 ux (*.f32 (-.f32 1 ux) (*.f32 maxCos zi)) (*.f32 (sqrt.f32 (fma.f32 (-.f32 1 ux) (*.f32 (*.f32 ux (*.f32 maxCos (*.f32 ux maxCos))) (+.f32 ux -1)) 1)) (fma.f32 (cos.f32 (cbrt.f32 (*.f32 (pow.f32 uy 3) (pow.f32 (*.f32 2 (PI.f32)) 3)))) xi (*.f32 (sin.f32 (*.f32 uy (*.f32 2 (PI.f32)))) yi))))
0.4b
(fma.f32 ux (*.f32 (-.f32 1 ux) (*.f32 maxCos zi)) (*.f32 (sqrt.f32 (fma.f32 (-.f32 1 ux) (*.f32 (*.f32 ux (*.f32 maxCos (*.f32 ux maxCos))) (+.f32 ux -1)) 1)) (fma.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))) xi (*.f32 (sin.f32 (pow.f32 (sqrt.f32 (*.f32 (PI.f32) (*.f32 uy 2))) 2)) yi))))
0.5b
(fma.f32 ux (*.f32 (-.f32 1 ux) (*.f32 maxCos zi)) (*.f32 (sqrt.f32 (fma.f32 (-.f32 1 ux) (*.f32 (*.f32 ux (*.f32 maxCos (*.f32 ux maxCos))) (+.f32 ux -1)) 1)) (fma.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))) xi (*.f32 (sin.f32 (pow.f32 (cbrt.f32 (*.f32 (PI.f32) (*.f32 uy 2))) 3)) yi))))
0.5b
(fma.f32 ux (*.f32 (-.f32 1 ux) (*.f32 maxCos zi)) (*.f32 (sqrt.f32 (fma.f32 (-.f32 1 ux) (*.f32 (*.f32 ux (*.f32 maxCos (*.f32 ux maxCos))) (+.f32 ux -1)) 1)) (fma.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))) xi (*.f32 (*.f32 (cbrt.f32 (sin.f32 (*.f32 (PI.f32) (*.f32 uy 2)))) (pow.f32 (cbrt.f32 (sin.f32 (*.f32 (PI.f32) (*.f32 uy 2)))) 2)) yi))))
0.9b
(fma.f32 ux (*.f32 (-.f32 1 ux) (*.f32 maxCos zi)) (*.f32 (sqrt.f32 (fma.f32 (-.f32 1 ux) (*.f32 (*.f32 ux (*.f32 maxCos (*.f32 ux maxCos))) (+.f32 ux -1)) 1)) (fma.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))) xi (fma.f32 yi (fma.f32 2 (*.f32 uy (PI.f32)) (*.f32 4/15 (*.f32 (pow.f32 uy 5) (pow.f32 (PI.f32) 5)))) (*.f32 yi (fma.f32 (pow.f32 (PI.f32) 7) (*.f32 (pow.f32 uy 7) -8/315) (*.f32 (pow.f32 uy 3) (*.f32 (pow.f32 (PI.f32) 3) -4/3))))))))
Compiler

Compiled 6009 to 3782 computations (37.1% saved)

localize121.0ms (1.5%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(sin.f32 (*.f32 (PI.f32) (*.f32 uy 2)))
0.2b
(*.f32 (expm1.f32 (log1p.f32 (sin.f32 (*.f32 (PI.f32) (*.f32 uy 2))))) yi)
0.3b
(*.f32 uy (*.f32 2 (PI.f32)))
0.3b
(*.f32 (PI.f32) (*.f32 uy 2))

series7.0ms (0.1%)

Counts
3 → 48
Calls

12 calls:

TimeVariablePointExpression
2.0ms
yi
@0
(*.f32 (expm1.f32 (log1p.f32 (sin.f32 (*.f32 (PI.f32) (*.f32 uy 2))))) yi)
1.0ms
uy
@0
(*.f32 (PI.f32) (*.f32 uy 2))
1.0ms
yi
@inf
(*.f32 (expm1.f32 (log1p.f32 (sin.f32 (*.f32 (PI.f32) (*.f32 uy 2))))) yi)
1.0ms
uy
@0
(*.f32 (expm1.f32 (log1p.f32 (sin.f32 (*.f32 (PI.f32) (*.f32 uy 2))))) yi)
0.0ms
yi
@-inf
(*.f32 (expm1.f32 (log1p.f32 (sin.f32 (*.f32 (PI.f32) (*.f32 uy 2))))) yi)

rewrite46.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
844×expm1-log1p-u_binary32
843×log1p-expm1-u_binary32
98×add-sqr-sqrt_binary32
97×pow1_binary32
96×*-un-lft-identity_binary32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01131
120031
2230331
Stop Event
node limit
Counts
3 → 51
Calls
Call 1
Inputs
(*.f32 (PI.f32) (*.f32 uy 2))
(*.f32 (expm1.f32 (log1p.f32 (sin.f32 (*.f32 (PI.f32) (*.f32 uy 2))))) yi)
(sin.f32 (*.f32 (PI.f32) (*.f32 uy 2)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f32 (exp.f32 (log1p.f32 (*.f32 2 (*.f32 (PI.f32) uy)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (*.f32 2 (*.f32 (PI.f32) uy)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (pow.f32 (*.f32 2 (*.f32 (PI.f32) uy)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (cbrt.f32 (*.f32 2 (*.f32 (PI.f32) uy))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (sqrt.f32 (*.f32 2 (*.f32 (PI.f32) uy))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f32 (pow.f32 (*.f32 2 (*.f32 (PI.f32) uy)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (pow.f32 (exp.f32 (*.f32 (PI.f32) uy)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (+.f32 1 (expm1.f32 (*.f32 2 (*.f32 (PI.f32) uy)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f32 (pow.f32 (*.f32 2 (*.f32 (PI.f32) uy)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f32 (*.f32 (pow.f32 (PI.f32) 3) (pow.f32 (*.f32 uy 2) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f32 (*.f32 (pow.f32 (*.f32 uy 2) 3) (pow.f32 (PI.f32) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f32 (log1p.f32 (*.f32 2 (*.f32 (PI.f32) uy))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f32 (expm1.f32 (*.f32 2 (*.f32 (PI.f32) uy))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f32 (log.f32 (*.f32 2 (*.f32 (PI.f32) uy))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f32 (*.f32 (log.f32 (*.f32 2 (*.f32 (PI.f32) uy))) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f32 (exp.f32 (log1p.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) yi))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) yi) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (pow.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) yi) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (cbrt.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) yi)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (sqrt.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) yi)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f32 (pow.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) yi) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (pow.f32 (exp.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy)))) yi))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (+.f32 1 (expm1.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) yi))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f32 (pow.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) yi) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f32 (*.f32 (pow.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) 3) (pow.f32 yi 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f32 (*.f32 (pow.f32 yi 3) (pow.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f32 (log1p.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) yi)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f32 (expm1.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) yi)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f32 (log.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) yi)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f32 (*.f32 (log.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) yi)) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f32 (+.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f32 (+.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) 1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 1 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (cbrt.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy)))) (pow.f32 (cbrt.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (pow.f32 (cbrt.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy)))) 2) (cbrt.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (sqrt.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy)))) (sqrt.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (-.f32 (pow.f32 (+.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) 1) 3) 1) (+.f32 (*.f32 (+.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) 1) (+.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) 1)) (+.f32 1 (*.f32 (+.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) 1) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (-.f32 (*.f32 (+.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) 1) (+.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) 1)) 1) (+.f32 (+.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (pow.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (cbrt.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (sqrt.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f32 (pow.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (exp.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (+.f32 1 (expm1.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f32 (pow.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f32 (log1p.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f32 (expm1.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f32 (log.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f32 (*.f32 (log.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy)))) 1))))))

simplify37.0ms (0.5%)

Algorithm
egg-herbie
Rules
942×fma-neg_binary32
621×distribute-rgt-neg-in_binary32
616×distribute-lft-neg-in_binary32
487×associate-*l*_binary32
406×associate-*r*_binary32
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
061710
1180702
2602688
32957686
Stop Event
node limit
Counts
99 → 70
Calls
Call 1
Inputs
(*.f32 2 (*.f32 uy (PI.f32)))
(*.f32 2 (*.f32 uy (PI.f32)))
(*.f32 2 (*.f32 uy (PI.f32)))
(*.f32 2 (*.f32 uy (PI.f32)))
(*.f32 2 (*.f32 uy (PI.f32)))
(*.f32 2 (*.f32 uy (PI.f32)))
(*.f32 2 (*.f32 uy (PI.f32)))
(*.f32 2 (*.f32 uy (PI.f32)))
(*.f32 2 (*.f32 uy (PI.f32)))
(*.f32 2 (*.f32 uy (PI.f32)))
(*.f32 2 (*.f32 uy (PI.f32)))
(*.f32 2 (*.f32 uy (PI.f32)))
(*.f32 2 (*.f32 uy (*.f32 (PI.f32) yi)))
(-.f32 (*.f32 2 (*.f32 uy (*.f32 yi (PI.f32)))) (*.f32 4/3 (*.f32 (pow.f32 uy 3) (*.f32 yi (pow.f32 (PI.f32) 3)))))
(-.f32 (+.f32 (*.f32 2 (*.f32 uy (*.f32 yi (PI.f32)))) (*.f32 4/15 (*.f32 (pow.f32 uy 5) (*.f32 (pow.f32 (PI.f32) 5) yi)))) (*.f32 4/3 (*.f32 (pow.f32 uy 3) (*.f32 (pow.f32 (PI.f32) 3) yi))))
(-.f32 (+.f32 (*.f32 2 (*.f32 uy (*.f32 yi (PI.f32)))) (*.f32 4/15 (*.f32 (pow.f32 uy 5) (*.f32 yi (pow.f32 (PI.f32) 5))))) (+.f32 (*.f32 4/3 (*.f32 (pow.f32 uy 3) (*.f32 (pow.f32 (PI.f32) 3) yi))) (*.f32 8/315 (*.f32 (pow.f32 uy 7) (*.f32 yi (pow.f32 (PI.f32) 7))))))
(*.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) yi)
(*.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) yi)
(*.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) yi)
(*.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) yi)
(*.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) yi)
(*.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) yi)
(*.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) yi)
(*.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) yi)
(*.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) yi)
(*.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) yi)
(*.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) yi)
(*.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) yi)
(*.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) yi)
(*.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) yi)
(*.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) yi)
(*.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) yi)
(*.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) yi)
(*.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) yi)
(*.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) yi)
(*.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) yi)
(*.f32 2 (*.f32 uy (PI.f32)))
(-.f32 (*.f32 2 (*.f32 uy (PI.f32))) (*.f32 4/3 (*.f32 (pow.f32 uy 3) (pow.f32 (PI.f32) 3))))
(-.f32 (+.f32 (*.f32 2 (*.f32 uy (PI.f32))) (*.f32 4/15 (*.f32 (pow.f32 uy 5) (pow.f32 (PI.f32) 5)))) (*.f32 4/3 (*.f32 (pow.f32 uy 3) (pow.f32 (PI.f32) 3))))
(-.f32 (+.f32 (*.f32 2 (*.f32 uy (PI.f32))) (*.f32 4/15 (*.f32 (pow.f32 uy 5) (pow.f32 (PI.f32) 5)))) (+.f32 (*.f32 4/3 (*.f32 (pow.f32 uy 3) (pow.f32 (PI.f32) 3))) (*.f32 8/315 (*.f32 (pow.f32 uy 7) (pow.f32 (PI.f32) 7)))))
(sin.f32 (*.f32 2 (*.f32 (PI.f32) uy)))
(sin.f32 (*.f32 2 (*.f32 (PI.f32) uy)))
(sin.f32 (*.f32 2 (*.f32 (PI.f32) uy)))
(sin.f32 (*.f32 2 (*.f32 (PI.f32) uy)))
(sin.f32 (*.f32 2 (*.f32 (PI.f32) uy)))
(sin.f32 (*.f32 2 (*.f32 (PI.f32) uy)))
(sin.f32 (*.f32 2 (*.f32 (PI.f32) uy)))
(sin.f32 (*.f32 2 (*.f32 (PI.f32) uy)))
Outputs
(*.f32 2 (*.f32 uy (PI.f32)))
(*.f32 2 (*.f32 uy (PI.f32)))
(*.f32 2 (*.f32 uy (PI.f32)))
(*.f32 2 (*.f32 uy (PI.f32)))
(*.f32 2 (*.f32 uy (PI.f32)))
(*.f32 2 (*.f32 uy (PI.f32)))
(*.f32 2 (*.f32 uy (PI.f32)))
(*.f32 2 (*.f32 uy (PI.f32)))
(*.f32 2 (*.f32 uy (PI.f32)))
(*.f32 2 (*.f32 uy (PI.f32)))
(*.f32 2 (*.f32 uy (PI.f32)))
(*.f32 2 (*.f32 uy (PI.f32)))
(*.f32 2 (*.f32 uy (*.f32 (PI.f32) yi)))
(*.f32 (*.f32 uy (PI.f32)) (*.f32 2 yi))
(-.f32 (*.f32 2 (*.f32 uy (*.f32 yi (PI.f32)))) (*.f32 4/3 (*.f32 (pow.f32 uy 3) (*.f32 yi (pow.f32 (PI.f32) 3)))))
(+.f32 (*.f32 2 (*.f32 uy (*.f32 (PI.f32) yi))) (*.f32 -4/3 (*.f32 (pow.f32 uy 3) (*.f32 yi (pow.f32 (PI.f32) 3)))))
(fma.f32 2 (*.f32 uy (*.f32 (PI.f32) yi)) (*.f32 (*.f32 (pow.f32 (PI.f32) 3) (*.f32 yi (pow.f32 uy 3))) -4/3))
(*.f32 yi (fma.f32 2 (*.f32 uy (PI.f32)) (*.f32 (pow.f32 (PI.f32) 3) (*.f32 (pow.f32 uy 3) -4/3))))
(-.f32 (+.f32 (*.f32 2 (*.f32 uy (*.f32 yi (PI.f32)))) (*.f32 4/15 (*.f32 (pow.f32 uy 5) (*.f32 (pow.f32 (PI.f32) 5) yi)))) (*.f32 4/3 (*.f32 (pow.f32 uy 3) (*.f32 (pow.f32 (PI.f32) 3) yi))))
(+.f32 (fma.f32 2 (*.f32 uy (*.f32 (PI.f32) yi)) (*.f32 4/15 (*.f32 (pow.f32 uy 5) (*.f32 yi (pow.f32 (PI.f32) 5))))) (*.f32 -4/3 (*.f32 (pow.f32 uy 3) (*.f32 yi (pow.f32 (PI.f32) 3)))))
(fma.f32 2 (*.f32 uy (*.f32 (PI.f32) yi)) (fma.f32 4/15 (*.f32 yi (*.f32 (pow.f32 uy 5) (pow.f32 (PI.f32) 5))) (*.f32 (*.f32 (pow.f32 (PI.f32) 3) (*.f32 yi (pow.f32 uy 3))) -4/3)))
(fma.f32 4/15 (*.f32 (pow.f32 (PI.f32) 5) (*.f32 yi (pow.f32 uy 5))) (*.f32 yi (fma.f32 2 (*.f32 uy (PI.f32)) (*.f32 (pow.f32 (PI.f32) 3) (*.f32 (pow.f32 uy 3) -4/3)))))
(fma.f32 yi (*.f32 4/15 (*.f32 (pow.f32 uy 5) (pow.f32 (PI.f32) 5))) (*.f32 yi (fma.f32 2 (*.f32 uy (PI.f32)) (*.f32 (pow.f32 (PI.f32) 3) (*.f32 (pow.f32 uy 3) -4/3)))))
(-.f32 (+.f32 (*.f32 2 (*.f32 uy (*.f32 yi (PI.f32)))) (*.f32 4/15 (*.f32 (pow.f32 uy 5) (*.f32 yi (pow.f32 (PI.f32) 5))))) (+.f32 (*.f32 4/3 (*.f32 (pow.f32 uy 3) (*.f32 (pow.f32 (PI.f32) 3) yi))) (*.f32 8/315 (*.f32 (pow.f32 uy 7) (*.f32 yi (pow.f32 (PI.f32) 7))))))
(-.f32 (fma.f32 2 (*.f32 uy (*.f32 (PI.f32) yi)) (*.f32 4/15 (*.f32 (pow.f32 uy 5) (*.f32 yi (pow.f32 (PI.f32) 5))))) (fma.f32 4/3 (*.f32 (pow.f32 uy 3) (*.f32 yi (pow.f32 (PI.f32) 3))) (*.f32 8/315 (*.f32 (pow.f32 uy 7) (*.f32 yi (pow.f32 (PI.f32) 7))))))
(+.f32 (fma.f32 2 (*.f32 uy (*.f32 (PI.f32) yi)) (fma.f32 4/15 (*.f32 yi (*.f32 (pow.f32 uy 5) (pow.f32 (PI.f32) 5))) (*.f32 (*.f32 (pow.f32 (PI.f32) 3) (*.f32 yi (pow.f32 uy 3))) -4/3))) (*.f32 -8/315 (*.f32 (pow.f32 uy 7) (*.f32 yi (pow.f32 (PI.f32) 7)))))
(+.f32 (*.f32 yi (fma.f32 2 (*.f32 uy (PI.f32)) (*.f32 (pow.f32 (PI.f32) 5) (*.f32 4/15 (pow.f32 uy 5))))) (*.f32 yi (fma.f32 (*.f32 (pow.f32 uy 3) (pow.f32 (PI.f32) 3)) -4/3 (*.f32 (pow.f32 (PI.f32) 7) (*.f32 (pow.f32 uy 7) -8/315)))))
(fma.f32 yi (fma.f32 4/15 (*.f32 (pow.f32 uy 5) (pow.f32 (PI.f32) 5)) (*.f32 (pow.f32 uy 7) (*.f32 (pow.f32 (PI.f32) 7) -8/315))) (*.f32 yi (fma.f32 2 (*.f32 uy (PI.f32)) (*.f32 (pow.f32 (PI.f32) 3) (*.f32 (pow.f32 uy 3) -4/3)))))
(*.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) yi)
(*.f32 yi (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))))
(*.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) yi)
(*.f32 yi (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))))
(*.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) yi)
(*.f32 yi (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))))
(*.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) yi)
(*.f32 yi (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))))
(*.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) yi)
(*.f32 yi (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))))
(*.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) yi)
(*.f32 yi (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))))
(*.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) yi)
(*.f32 yi (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))))
(*.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) yi)
(*.f32 yi (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))))
(*.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) yi)
(*.f32 yi (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))))
(*.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) yi)
(*.f32 yi (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))))
(*.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) yi)
(*.f32 yi (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))))
(*.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) yi)
(*.f32 yi (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))))
(*.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) yi)
(*.f32 yi (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))))
(*.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) yi)
(*.f32 yi (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))))
(*.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) yi)
(*.f32 yi (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))))
(*.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) yi)
(*.f32 yi (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))))
(*.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) yi)
(*.f32 yi (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))))
(*.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) yi)
(*.f32 yi (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))))
(*.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) yi)
(*.f32 yi (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))))
(*.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) yi)
(*.f32 yi (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))))
(*.f32 2 (*.f32 uy (PI.f32)))
(-.f32 (*.f32 2 (*.f32 uy (PI.f32))) (*.f32 4/3 (*.f32 (pow.f32 uy 3) (pow.f32 (PI.f32) 3))))
(+.f32 (*.f32 2 (*.f32 uy (PI.f32))) (*.f32 -4/3 (*.f32 (pow.f32 uy 3) (pow.f32 (PI.f32) 3))))
(fma.f32 2 (*.f32 uy (PI.f32)) (*.f32 (*.f32 -4/3 (pow.f32 uy 3)) (pow.f32 (PI.f32) 3)))
(fma.f32 2 (*.f32 uy (PI.f32)) (*.f32 (pow.f32 (PI.f32) 3) (*.f32 (pow.f32 uy 3) -4/3)))
(-.f32 (+.f32 (*.f32 2 (*.f32 uy (PI.f32))) (*.f32 4/15 (*.f32 (pow.f32 uy 5) (pow.f32 (PI.f32) 5)))) (*.f32 4/3 (*.f32 (pow.f32 uy 3) (pow.f32 (PI.f32) 3))))
(+.f32 (fma.f32 2 (*.f32 uy (PI.f32)) (*.f32 4/15 (*.f32 (pow.f32 uy 5) (pow.f32 (PI.f32) 5)))) (*.f32 -4/3 (*.f32 (pow.f32 uy 3) (pow.f32 (PI.f32) 3))))
(fma.f32 2 (*.f32 uy (PI.f32)) (fma.f32 4/15 (*.f32 (pow.f32 uy 5) (pow.f32 (PI.f32) 5)) (*.f32 (*.f32 -4/3 (pow.f32 uy 3)) (pow.f32 (PI.f32) 3))))
(fma.f32 2 (*.f32 uy (PI.f32)) (fma.f32 4/15 (*.f32 (pow.f32 uy 5) (pow.f32 (PI.f32) 5)) (*.f32 (pow.f32 (PI.f32) 3) (*.f32 (pow.f32 uy 3) -4/3))))
(-.f32 (+.f32 (*.f32 2 (*.f32 uy (PI.f32))) (*.f32 4/15 (*.f32 (pow.f32 uy 5) (pow.f32 (PI.f32) 5)))) (+.f32 (*.f32 4/3 (*.f32 (pow.f32 uy 3) (pow.f32 (PI.f32) 3))) (*.f32 8/315 (*.f32 (pow.f32 uy 7) (pow.f32 (PI.f32) 7)))))
(-.f32 (fma.f32 2 (*.f32 uy (PI.f32)) (*.f32 4/15 (*.f32 (pow.f32 uy 5) (pow.f32 (PI.f32) 5)))) (fma.f32 4/3 (*.f32 (pow.f32 uy 3) (pow.f32 (PI.f32) 3)) (*.f32 8/315 (*.f32 (pow.f32 uy 7) (pow.f32 (PI.f32) 7)))))
(-.f32 (fma.f32 2 (*.f32 uy (PI.f32)) (*.f32 4/15 (*.f32 (pow.f32 uy 5) (pow.f32 (PI.f32) 5)))) (fma.f32 (*.f32 8/315 (pow.f32 uy 7)) (pow.f32 (PI.f32) 7) (*.f32 (pow.f32 uy 3) (*.f32 (pow.f32 (PI.f32) 3) 4/3))))
(fma.f32 2 (*.f32 uy (PI.f32)) (fma.f32 4/15 (*.f32 (pow.f32 uy 5) (pow.f32 (PI.f32) 5)) (fma.f32 (*.f32 (pow.f32 uy 3) (pow.f32 (PI.f32) 3)) -4/3 (*.f32 (pow.f32 (PI.f32) 7) (*.f32 (pow.f32 uy 7) -8/315)))))
(fma.f32 2 (*.f32 uy (PI.f32)) (fma.f32 4/15 (*.f32 (pow.f32 uy 5) (pow.f32 (PI.f32) 5)) (fma.f32 (pow.f32 uy 3) (*.f32 (pow.f32 (PI.f32) 3) -4/3) (*.f32 (pow.f32 uy 7) (*.f32 (pow.f32 (PI.f32) 7) -8/315)))))
(sin.f32 (*.f32 2 (*.f32 (PI.f32) uy)))
(sin.f32 (*.f32 2 (*.f32 uy (PI.f32))))
(sin.f32 (*.f32 2 (*.f32 (PI.f32) uy)))
(sin.f32 (*.f32 2 (*.f32 uy (PI.f32))))
(sin.f32 (*.f32 2 (*.f32 (PI.f32) uy)))
(sin.f32 (*.f32 2 (*.f32 uy (PI.f32))))
(sin.f32 (*.f32 2 (*.f32 (PI.f32) uy)))
(sin.f32 (*.f32 2 (*.f32 uy (PI.f32))))
(sin.f32 (*.f32 2 (*.f32 (PI.f32) uy)))
(sin.f32 (*.f32 2 (*.f32 uy (PI.f32))))
(sin.f32 (*.f32 2 (*.f32 (PI.f32) uy)))
(sin.f32 (*.f32 2 (*.f32 uy (PI.f32))))
(sin.f32 (*.f32 2 (*.f32 (PI.f32) uy)))
(sin.f32 (*.f32 2 (*.f32 uy (PI.f32))))
(sin.f32 (*.f32 2 (*.f32 (PI.f32) uy)))
(sin.f32 (*.f32 2 (*.f32 uy (PI.f32))))

prune359.0ms (4.5%)

Pruning

13 alts after pruning (11 fresh and 2 done)

PrunedKeptTotal
New86187
Fresh11011
Picked011
Done011
Total8713100
Error
0.2b
Counts
100 → 13
Alt Table
StatusErrorProgram
0.4b
(fma.f32 ux (*.f32 (-.f32 zi (*.f32 ux zi)) maxCos) (*.f32 (sqrt.f32 (fma.f32 (-.f32 1 ux) (*.f32 (*.f32 ux (*.f32 maxCos (*.f32 ux maxCos))) (+.f32 ux -1)) 1)) (fma.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))) xi (*.f32 (sin.f32 (*.f32 uy (*.f32 2 (PI.f32)))) yi))))
0.4b
(+.f32 (+.f32 (*.f32 (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux))))) xi) (*.f32 (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux))))) yi)) (*.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) zi))
7.8b
(fma.f32 ux (*.f32 (-.f32 1 ux) (*.f32 maxCos zi)) (*.f32 (sqrt.f32 (fma.f32 (-.f32 1 ux) (*.f32 (*.f32 ux (*.f32 maxCos (*.f32 ux maxCos))) (+.f32 ux -1)) 1)) (fma.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))) xi (sqrt.f32 (pow.f32 (*.f32 (sin.f32 (*.f32 (PI.f32) (*.f32 uy 2))) yi) 2)))))
0.8b
(fma.f32 ux (*.f32 (-.f32 1 ux) (*.f32 maxCos zi)) (*.f32 (sqrt.f32 (fma.f32 (-.f32 1 ux) (*.f32 (*.f32 ux (*.f32 maxCos (*.f32 ux maxCos))) (+.f32 ux -1)) 1)) (fma.f32 (cos.f32 (cbrt.f32 (-.f32 (exp.f32 (log1p.f32 (pow.f32 (*.f32 (*.f32 2 (PI.f32)) uy) 3))) 1))) xi (*.f32 (sin.f32 (*.f32 uy (*.f32 2 (PI.f32)))) yi))))
0.4b
(fma.f32 ux (*.f32 (-.f32 1 ux) (*.f32 maxCos zi)) (*.f32 (sqrt.f32 (fma.f32 (-.f32 1 ux) (*.f32 (*.f32 ux (*.f32 maxCos (*.f32 ux maxCos))) (+.f32 ux -1)) 1)) (fma.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))) xi (*.f32 (expm1.f32 (log1p.f32 (sin.f32 (*.f32 (PI.f32) (*.f32 uy 2))))) yi))))
5.0b
(fma.f32 ux (*.f32 (-.f32 1 ux) (*.f32 maxCos zi)) (*.f32 (sqrt.f32 (fma.f32 (-.f32 1 ux) (*.f32 (*.f32 ux (*.f32 maxCos (*.f32 ux maxCos))) (+.f32 ux -1)) 1)) (fma.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))) xi (*.f32 (sin.f32 (-.f32 (exp.f32 (log1p.f32 (*.f32 (PI.f32) (*.f32 uy 2)))) 1)) yi))))
1.5b
(fma.f32 ux (*.f32 (-.f32 1 ux) (*.f32 maxCos zi)) (*.f32 (sqrt.f32 (fma.f32 (-.f32 1 ux) (*.f32 (*.f32 ux (*.f32 maxCos (*.f32 ux maxCos))) (+.f32 ux -1)) 1)) (fma.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))) xi (-.f32 (*.f32 2 (*.f32 uy (*.f32 yi (PI.f32)))) (*.f32 4/3 (*.f32 (pow.f32 uy 3) (*.f32 yi (pow.f32 (PI.f32) 3))))))))
15.2b
(fma.f32 ux (*.f32 (-.f32 1 ux) (*.f32 maxCos zi)) (*.f32 (sqrt.f32 (fma.f32 (-.f32 1 ux) (*.f32 (*.f32 ux (*.f32 maxCos (*.f32 ux maxCos))) (+.f32 ux -1)) 1)) (fma.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))) xi (pow.f32 (sqrt.f32 (*.f32 (sin.f32 (*.f32 (PI.f32) (*.f32 uy 2))) yi)) 2))))
0.4b
(fma.f32 ux (*.f32 (-.f32 1 ux) (*.f32 maxCos zi)) (*.f32 (sqrt.f32 (fma.f32 (-.f32 1 ux) (*.f32 (*.f32 ux (*.f32 maxCos (*.f32 ux maxCos))) (+.f32 ux -1)) 1)) (fma.f32 (cos.f32 (cbrt.f32 (*.f32 (pow.f32 uy 3) (pow.f32 (*.f32 2 (PI.f32)) 3)))) xi (*.f32 (sin.f32 (*.f32 uy (*.f32 2 (PI.f32)))) yi))))
0.4b
(fma.f32 ux (*.f32 (-.f32 1 ux) (*.f32 maxCos zi)) (*.f32 (sqrt.f32 (fma.f32 (-.f32 1 ux) (*.f32 (*.f32 ux (*.f32 maxCos (*.f32 ux maxCos))) (+.f32 ux -1)) 1)) (fma.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))) xi (*.f32 (expm1.f32 (log1p.f32 (sin.f32 (pow.f32 (sqrt.f32 (*.f32 2 (*.f32 (PI.f32) uy))) 2)))) yi))))
0.5b
(fma.f32 ux (*.f32 (-.f32 1 ux) (*.f32 maxCos zi)) (*.f32 (sqrt.f32 (fma.f32 (-.f32 1 ux) (*.f32 (*.f32 ux (*.f32 maxCos (*.f32 ux maxCos))) (+.f32 ux -1)) 1)) (fma.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))) xi (*.f32 (sin.f32 (pow.f32 (cbrt.f32 (*.f32 (PI.f32) (*.f32 uy 2))) 3)) yi))))
0.5b
(fma.f32 ux (*.f32 (-.f32 1 ux) (*.f32 maxCos zi)) (*.f32 (sqrt.f32 (fma.f32 (-.f32 1 ux) (*.f32 (*.f32 ux (*.f32 maxCos (*.f32 ux maxCos))) (+.f32 ux -1)) 1)) (fma.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))) xi (*.f32 (*.f32 (cbrt.f32 (sin.f32 (*.f32 (PI.f32) (*.f32 uy 2)))) (pow.f32 (cbrt.f32 (sin.f32 (*.f32 (PI.f32) (*.f32 uy 2)))) 2)) yi))))
0.9b
(fma.f32 ux (*.f32 (-.f32 1 ux) (*.f32 maxCos zi)) (*.f32 (sqrt.f32 (fma.f32 (-.f32 1 ux) (*.f32 (*.f32 ux (*.f32 maxCos (*.f32 ux maxCos))) (+.f32 ux -1)) 1)) (fma.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))) xi (fma.f32 yi (fma.f32 2 (*.f32 uy (PI.f32)) (*.f32 4/15 (*.f32 (pow.f32 uy 5) (pow.f32 (PI.f32) 5)))) (*.f32 yi (fma.f32 (pow.f32 (PI.f32) 7) (*.f32 (pow.f32 uy 7) -8/315) (*.f32 (pow.f32 uy 3) (*.f32 (pow.f32 (PI.f32) 3) -4/3))))))))
Compiler

Compiled 5760 to 3480 computations (39.6% saved)

localize111.0ms (1.4%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(*.f32 (-.f32 zi (*.f32 ux zi)) maxCos)
0.2b
(sin.f32 (*.f32 uy (*.f32 2 (PI.f32))))
0.2b
(*.f32 (sin.f32 (*.f32 uy (*.f32 2 (PI.f32)))) yi)
0.3b
(*.f32 uy (*.f32 2 (PI.f32)))

series14.0ms (0.2%)

Counts
1 → 24
Calls

9 calls:

TimeVariablePointExpression
5.0ms
maxCos
@0
(*.f32 (-.f32 zi (*.f32 ux zi)) maxCos)
4.0ms
ux
@0
(*.f32 (-.f32 zi (*.f32 ux zi)) maxCos)
1.0ms
zi
@inf
(*.f32 (-.f32 zi (*.f32 ux zi)) maxCos)
1.0ms
zi
@0
(*.f32 (-.f32 zi (*.f32 ux zi)) maxCos)
1.0ms
ux
@inf
(*.f32 (-.f32 zi (*.f32 ux zi)) maxCos)

rewrite40.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
849×pow1_binary32
786×log1p-expm1-u_binary32
786×expm1-log1p-u_binary32
82×add-sqr-sqrt_binary32
81×*-un-lft-identity_binary32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0710
115210
2213510
Stop Event
node limit
Counts
1 → 21
Calls
Call 1
Inputs
(*.f32 (-.f32 zi (*.f32 ux zi)) maxCos)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f32 (*.f32 zi maxCos) (*.f32 (*.f32 zi (neg.f32 ux)) maxCos))))) (#(struct:change #<rule egg-rr> (2) ((x +.f32 (*.f32 maxCos zi) (*.f32 maxCos (*.f32 zi (neg.f32 ux))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f32 (exp.f32 (log1p.f32 (*.f32 (-.f32 zi (*.f32 zi ux)) maxCos))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (*.f32 (-.f32 (pow.f32 zi 3) (pow.f32 (*.f32 zi ux) 3)) maxCos) (fma.f32 zi zi (*.f32 (*.f32 zi ux) (*.f32 (+.f32 ux 1) zi))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (*.f32 (-.f32 (*.f32 zi zi) (pow.f32 (*.f32 zi ux) 2)) maxCos) (*.f32 (+.f32 ux 1) zi))))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (*.f32 maxCos (-.f32 (pow.f32 zi 3) (pow.f32 (*.f32 zi ux) 3))) (fma.f32 zi zi (*.f32 (*.f32 zi ux) (*.f32 (+.f32 ux 1) zi))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (*.f32 maxCos (-.f32 (*.f32 zi zi) (pow.f32 (*.f32 zi ux) 2))) (*.f32 (+.f32 ux 1) zi))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (*.f32 (-.f32 zi (*.f32 zi ux)) maxCos) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (pow.f32 (*.f32 (-.f32 zi (*.f32 zi ux)) maxCos) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (cbrt.f32 (*.f32 (-.f32 zi (*.f32 zi ux)) maxCos)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (sqrt.f32 (*.f32 (-.f32 zi (*.f32 zi ux)) maxCos)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f32 (pow.f32 (*.f32 (-.f32 zi (*.f32 zi ux)) maxCos) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (pow.f32 (exp.f32 maxCos) (-.f32 zi (*.f32 zi ux))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f32 (+.f32 1 (expm1.f32 (*.f32 (-.f32 zi (*.f32 zi ux)) maxCos))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f32 (pow.f32 (*.f32 (-.f32 zi (*.f32 zi ux)) maxCos) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f32 (*.f32 (pow.f32 (-.f32 zi (*.f32 zi ux)) 3) (pow.f32 maxCos 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f32 (*.f32 (pow.f32 maxCos 3) (pow.f32 (-.f32 zi (*.f32 zi ux)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f32 (log1p.f32 (*.f32 (-.f32 zi (*.f32 zi ux)) maxCos)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f32 (expm1.f32 (*.f32 (-.f32 zi (*.f32 zi ux)) maxCos)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f32 (log.f32 (*.f32 (-.f32 zi (*.f32 zi ux)) maxCos)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f32 (*.f32 (log.f32 (*.f32 (-.f32 zi (*.f32 zi ux)) maxCos)) 1))))))

simplify25.0ms (0.3%)

Algorithm
egg-herbie
Rules
667×fma-def_binary32
232×fma-neg_binary32
96×associate-*l*_binary32
94×cancel-sign-sub-inv_binary32
79×distribute-rgt-in_binary32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
019232
156232
2152232
3321232
4576232
51017232
61596232
71799232
Stop Event
saturated
Counts
45 → 29
Calls
Call 1
Inputs
(*.f32 (-.f32 maxCos (*.f32 maxCos ux)) zi)
(*.f32 (-.f32 maxCos (*.f32 maxCos ux)) zi)
(*.f32 (-.f32 maxCos (*.f32 maxCos ux)) zi)
(*.f32 (-.f32 maxCos (*.f32 maxCos ux)) zi)
(*.f32 (-.f32 1 ux) (*.f32 maxCos zi))
(*.f32 (-.f32 1 ux) (*.f32 maxCos zi))
(*.f32 (-.f32 1 ux) (*.f32 maxCos zi))
(*.f32 (-.f32 1 ux) (*.f32 maxCos zi))
(*.f32 -1 (*.f32 (-.f32 ux 1) (*.f32 maxCos zi)))
(*.f32 -1 (*.f32 (-.f32 ux 1) (*.f32 maxCos zi)))
(*.f32 -1 (*.f32 (-.f32 ux 1) (*.f32 maxCos zi)))
(*.f32 -1 (*.f32 (-.f32 ux 1) (*.f32 maxCos zi)))
(*.f32 maxCos zi)
(-.f32 (*.f32 maxCos zi) (*.f32 maxCos (*.f32 ux zi)))
(-.f32 (*.f32 maxCos zi) (*.f32 maxCos (*.f32 ux zi)))
(-.f32 (*.f32 maxCos zi) (*.f32 maxCos (*.f32 ux zi)))
(*.f32 -1 (*.f32 maxCos (*.f32 ux zi)))
(-.f32 (*.f32 maxCos zi) (*.f32 maxCos (*.f32 ux zi)))
(-.f32 (*.f32 maxCos zi) (*.f32 maxCos (*.f32 ux zi)))
(-.f32 (*.f32 maxCos zi) (*.f32 maxCos (*.f32 ux zi)))
(*.f32 -1 (*.f32 maxCos (*.f32 ux zi)))
(-.f32 (*.f32 maxCos zi) (*.f32 maxCos (*.f32 ux zi)))
(-.f32 (*.f32 maxCos zi) (*.f32 maxCos (*.f32 ux zi)))
(-.f32 (*.f32 maxCos zi) (*.f32 maxCos (*.f32 ux zi)))
Outputs
(*.f32 (-.f32 maxCos (*.f32 maxCos ux)) zi)
(*.f32 zi (-.f32 maxCos (*.f32 maxCos ux)))
(*.f32 maxCos (fma.f32 zi (neg.f32 ux) zi))
(*.f32 (-.f32 maxCos (*.f32 maxCos ux)) zi)
(*.f32 zi (-.f32 maxCos (*.f32 maxCos ux)))
(*.f32 maxCos (fma.f32 zi (neg.f32 ux) zi))
(*.f32 (-.f32 maxCos (*.f32 maxCos ux)) zi)
(*.f32 zi (-.f32 maxCos (*.f32 maxCos ux)))
(*.f32 maxCos (fma.f32 zi (neg.f32 ux) zi))
(*.f32 (-.f32 maxCos (*.f32 maxCos ux)) zi)
(*.f32 zi (-.f32 maxCos (*.f32 maxCos ux)))
(*.f32 maxCos (fma.f32 zi (neg.f32 ux) zi))
(*.f32 (-.f32 1 ux) (*.f32 maxCos zi))
(*.f32 (-.f32 maxCos (*.f32 maxCos ux)) zi)
(*.f32 zi (-.f32 maxCos (*.f32 maxCos ux)))
(*.f32 maxCos (fma.f32 zi (neg.f32 ux) zi))
(*.f32 (-.f32 1 ux) (*.f32 maxCos zi))
(*.f32 (-.f32 maxCos (*.f32 maxCos ux)) zi)
(*.f32 zi (-.f32 maxCos (*.f32 maxCos ux)))
(*.f32 maxCos (fma.f32 zi (neg.f32 ux) zi))
(*.f32 (-.f32 1 ux) (*.f32 maxCos zi))
(*.f32 (-.f32 maxCos (*.f32 maxCos ux)) zi)
(*.f32 zi (-.f32 maxCos (*.f32 maxCos ux)))
(*.f32 maxCos (fma.f32 zi (neg.f32 ux) zi))
(*.f32 (-.f32 1 ux) (*.f32 maxCos zi))
(*.f32 (-.f32 maxCos (*.f32 maxCos ux)) zi)
(*.f32 zi (-.f32 maxCos (*.f32 maxCos ux)))
(*.f32 maxCos (fma.f32 zi (neg.f32 ux) zi))
(*.f32 -1 (*.f32 (-.f32 ux 1) (*.f32 maxCos zi)))
(*.f32 (-.f32 maxCos (*.f32 maxCos ux)) zi)
(*.f32 zi (-.f32 maxCos (*.f32 maxCos ux)))
(*.f32 maxCos (fma.f32 zi (neg.f32 ux) zi))
(*.f32 -1 (*.f32 (-.f32 ux 1) (*.f32 maxCos zi)))
(*.f32 (-.f32 maxCos (*.f32 maxCos ux)) zi)
(*.f32 zi (-.f32 maxCos (*.f32 maxCos ux)))
(*.f32 maxCos (fma.f32 zi (neg.f32 ux) zi))
(*.f32 -1 (*.f32 (-.f32 ux 1) (*.f32 maxCos zi)))
(*.f32 (-.f32 maxCos (*.f32 maxCos ux)) zi)
(*.f32 zi (-.f32 maxCos (*.f32 maxCos ux)))
(*.f32 maxCos (fma.f32 zi (neg.f32 ux) zi))
(*.f32 -1 (*.f32 (-.f32 ux 1) (*.f32 maxCos zi)))
(*.f32 (-.f32 maxCos (*.f32 maxCos ux)) zi)
(*.f32 zi (-.f32 maxCos (*.f32 maxCos ux)))
(*.f32 maxCos (fma.f32 zi (neg.f32 ux) zi))
(*.f32 maxCos zi)
(-.f32 (*.f32 maxCos zi) (*.f32 maxCos (*.f32 ux zi)))
(*.f32 (-.f32 maxCos (*.f32 maxCos ux)) zi)
(*.f32 zi (-.f32 maxCos (*.f32 maxCos ux)))
(*.f32 maxCos (fma.f32 zi (neg.f32 ux) zi))
(-.f32 (*.f32 maxCos zi) (*.f32 maxCos (*.f32 ux zi)))
(*.f32 (-.f32 maxCos (*.f32 maxCos ux)) zi)
(*.f32 zi (-.f32 maxCos (*.f32 maxCos ux)))
(*.f32 maxCos (fma.f32 zi (neg.f32 ux) zi))
(-.f32 (*.f32 maxCos zi) (*.f32 maxCos (*.f32 ux zi)))
(*.f32 (-.f32 maxCos (*.f32 maxCos ux)) zi)
(*.f32 zi (-.f32 maxCos (*.f32 maxCos ux)))
(*.f32 maxCos (fma.f32 zi (neg.f32 ux) zi))
(*.f32 -1 (*.f32 maxCos (*.f32 ux zi)))
(neg.f32 (*.f32 maxCos (*.f32 ux zi)))
(*.f32 (*.f32 maxCos (neg.f32 ux)) zi)
(*.f32 maxCos (*.f32 zi (neg.f32 ux)))
(-.f32 (*.f32 maxCos zi) (*.f32 maxCos (*.f32 ux zi)))
(*.f32 (-.f32 maxCos (*.f32 maxCos ux)) zi)
(*.f32 zi (-.f32 maxCos (*.f32 maxCos ux)))
(*.f32 maxCos (fma.f32 zi (neg.f32 ux) zi))
(-.f32 (*.f32 maxCos zi) (*.f32 maxCos (*.f32 ux zi)))
(*.f32 (-.f32 maxCos (*.f32 maxCos ux)) zi)
(*.f32 zi (-.f32 maxCos (*.f32 maxCos ux)))
(*.f32 maxCos (fma.f32 zi (neg.f32 ux) zi))
(-.f32 (*.f32 maxCos zi) (*.f32 maxCos (*.f32 ux zi)))
(*.f32 (-.f32 maxCos (*.f32 maxCos ux)) zi)
(*.f32 zi (-.f32 maxCos (*.f32 maxCos ux)))
(*.f32 maxCos (fma.f32 zi (neg.f32 ux) zi))
(*.f32 -1 (*.f32 maxCos (*.f32 ux zi)))
(neg.f32 (*.f32 maxCos (*.f32 ux zi)))
(*.f32 (*.f32 maxCos (neg.f32 ux)) zi)
(*.f32 maxCos (*.f32 zi (neg.f32 ux)))
(-.f32 (*.f32 maxCos zi) (*.f32 maxCos (*.f32 ux zi)))
(*.f32 (-.f32 maxCos (*.f32 maxCos ux)) zi)
(*.f32 zi (-.f32 maxCos (*.f32 maxCos ux)))
(*.f32 maxCos (fma.f32 zi (neg.f32 ux) zi))
(-.f32 (*.f32 maxCos zi) (*.f32 maxCos (*.f32 ux zi)))
(*.f32 (-.f32 maxCos (*.f32 maxCos ux)) zi)
(*.f32 zi (-.f32 maxCos (*.f32 maxCos ux)))
(*.f32 maxCos (fma.f32 zi (neg.f32 ux) zi))
(-.f32 (*.f32 maxCos zi) (*.f32 maxCos (*.f32 ux zi)))
(*.f32 (-.f32 maxCos (*.f32 maxCos ux)) zi)
(*.f32 zi (-.f32 maxCos (*.f32 maxCos ux)))
(*.f32 maxCos (fma.f32 zi (neg.f32 ux) zi))

prune399.0ms (5%)

Pruning

12 alts after pruning (10 fresh and 2 done)

PrunedKeptTotal
New1132115
Fresh2810
Picked101
Done022
Total11612128
Error
0.2b
Counts
128 → 12
Alt Table
StatusErrorProgram
0.4b
(+.f32 (+.f32 (*.f32 (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux))))) xi) (*.f32 (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux))))) yi)) (*.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) zi))
7.8b
(fma.f32 ux (*.f32 (-.f32 1 ux) (*.f32 maxCos zi)) (*.f32 (sqrt.f32 (fma.f32 (-.f32 1 ux) (*.f32 (*.f32 ux (*.f32 maxCos (*.f32 ux maxCos))) (+.f32 ux -1)) 1)) (fma.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))) xi (sqrt.f32 (pow.f32 (*.f32 (sin.f32 (*.f32 (PI.f32) (*.f32 uy 2))) yi) 2)))))
0.4b
(fma.f32 ux (*.f32 (-.f32 zi (*.f32 ux zi)) maxCos) (*.f32 (sqrt.f32 (fma.f32 (-.f32 1 ux) (*.f32 (*.f32 ux (*.f32 maxCos (*.f32 ux maxCos))) (+.f32 ux -1)) 1)) (fma.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))) xi (*.f32 (sin.f32 (expm1.f32 (log1p.f32 (*.f32 (PI.f32) (*.f32 uy 2))))) yi))))
15.2b
(fma.f32 ux (*.f32 (-.f32 1 ux) (*.f32 maxCos zi)) (*.f32 (sqrt.f32 (fma.f32 (-.f32 1 ux) (*.f32 (*.f32 ux (*.f32 maxCos (*.f32 ux maxCos))) (+.f32 ux -1)) 1)) (fma.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))) xi (pow.f32 (sqrt.f32 (*.f32 (sin.f32 (*.f32 (PI.f32) (*.f32 uy 2))) yi)) 2))))
0.5b
(fma.f32 ux (*.f32 (-.f32 zi (*.f32 ux zi)) maxCos) (*.f32 (sqrt.f32 (fma.f32 (-.f32 1 ux) (*.f32 (*.f32 ux (*.f32 maxCos (*.f32 ux maxCos))) (+.f32 ux -1)) 1)) (fma.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))) xi (*.f32 (sin.f32 (pow.f32 (cbrt.f32 (*.f32 (PI.f32) (*.f32 uy 2))) 3)) yi))))
0.4b
(fma.f32 ux (*.f32 (-.f32 1 ux) (*.f32 maxCos zi)) (*.f32 (sqrt.f32 (fma.f32 (-.f32 1 ux) (*.f32 (*.f32 ux (*.f32 maxCos (*.f32 ux maxCos))) (+.f32 ux -1)) 1)) (fma.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))) xi (*.f32 (expm1.f32 (log1p.f32 (sin.f32 (*.f32 (PI.f32) (*.f32 uy 2))))) yi))))
0.8b
(fma.f32 ux (*.f32 (-.f32 1 ux) (*.f32 maxCos zi)) (*.f32 (sqrt.f32 (fma.f32 (-.f32 1 ux) (*.f32 (*.f32 ux (*.f32 maxCos (*.f32 ux maxCos))) (+.f32 ux -1)) 1)) (fma.f32 (cos.f32 (cbrt.f32 (-.f32 (exp.f32 (log1p.f32 (pow.f32 (*.f32 (*.f32 2 (PI.f32)) uy) 3))) 1))) xi (*.f32 (sin.f32 (*.f32 uy (*.f32 2 (PI.f32)))) yi))))
1.5b
(fma.f32 ux (*.f32 (-.f32 1 ux) (*.f32 maxCos zi)) (*.f32 (sqrt.f32 (fma.f32 (-.f32 1 ux) (*.f32 (*.f32 ux (*.f32 maxCos (*.f32 ux maxCos))) (+.f32 ux -1)) 1)) (fma.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))) xi (-.f32 (*.f32 2 (*.f32 uy (*.f32 yi (PI.f32)))) (*.f32 4/3 (*.f32 (pow.f32 uy 3) (*.f32 yi (pow.f32 (PI.f32) 3))))))))
0.4b
(fma.f32 ux (*.f32 (-.f32 1 ux) (*.f32 maxCos zi)) (*.f32 (sqrt.f32 (fma.f32 (-.f32 1 ux) (*.f32 (*.f32 ux (*.f32 maxCos (*.f32 ux maxCos))) (+.f32 ux -1)) 1)) (fma.f32 (cos.f32 (cbrt.f32 (*.f32 (pow.f32 uy 3) (pow.f32 (*.f32 2 (PI.f32)) 3)))) xi (*.f32 (sin.f32 (*.f32 uy (*.f32 2 (PI.f32)))) yi))))
0.4b
(fma.f32 ux (*.f32 (-.f32 1 ux) (*.f32 maxCos zi)) (*.f32 (sqrt.f32 (fma.f32 (-.f32 1 ux) (*.f32 (*.f32 ux (*.f32 maxCos (*.f32 ux maxCos))) (+.f32 ux -1)) 1)) (fma.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))) xi (*.f32 (expm1.f32 (log1p.f32 (sin.f32 (pow.f32 (sqrt.f32 (*.f32 2 (*.f32 (PI.f32) uy))) 2)))) yi))))
0.5b
(fma.f32 ux (*.f32 (-.f32 1 ux) (*.f32 maxCos zi)) (*.f32 (sqrt.f32 (fma.f32 (-.f32 1 ux) (*.f32 (*.f32 ux (*.f32 maxCos (*.f32 ux maxCos))) (+.f32 ux -1)) 1)) (fma.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))) xi (*.f32 (*.f32 (cbrt.f32 (sin.f32 (*.f32 (PI.f32) (*.f32 uy 2)))) (pow.f32 (cbrt.f32 (sin.f32 (*.f32 (PI.f32) (*.f32 uy 2)))) 2)) yi))))
0.9b
(fma.f32 ux (*.f32 (-.f32 1 ux) (*.f32 maxCos zi)) (*.f32 (sqrt.f32 (fma.f32 (-.f32 1 ux) (*.f32 (*.f32 ux (*.f32 maxCos (*.f32 ux maxCos))) (+.f32 ux -1)) 1)) (fma.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))) xi (fma.f32 yi (fma.f32 2 (*.f32 uy (PI.f32)) (*.f32 4/15 (*.f32 (pow.f32 uy 5) (pow.f32 (PI.f32) 5)))) (*.f32 yi (fma.f32 (pow.f32 (PI.f32) 7) (*.f32 (pow.f32 uy 7) -8/315) (*.f32 (pow.f32 uy 3) (*.f32 (pow.f32 (PI.f32) 3) -4/3))))))))
Compiler

Compiled 6195 to 3289 computations (46.9% saved)

regimes972.0ms (12.2%)

Accuracy

Total 0.2b remaining (47.9%)

Threshold costs 0.2b (47.9%)

Counts
133 → 1
Compiler

Compiled 6501 to 3605 computations (44.5% saved)

simplify3.0ms (0%)

Algorithm
egg-herbie
Rules
13×*-commutative_binary32
+-commutative_binary32
sub-neg_binary32
neg-sub0_binary32
neg-mul-1_binary32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
03166
14866
25166
35366
45466
Stop Event
saturated
Calls
Call 1
Inputs
(fma.f32 ux (*.f32 (-.f32 1 ux) (*.f32 maxCos zi)) (*.f32 (sqrt.f32 (fma.f32 (-.f32 1 ux) (*.f32 (*.f32 ux (*.f32 maxCos (*.f32 ux maxCos))) (+.f32 ux -1)) 1)) (fma.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))) xi (*.f32 yi (sin.f32 (*.f32 2 (*.f32 uy (PI.f32))))))))
Outputs
(fma.f32 ux (*.f32 (-.f32 1 ux) (*.f32 maxCos zi)) (*.f32 (sqrt.f32 (fma.f32 (-.f32 1 ux) (*.f32 (*.f32 ux (*.f32 maxCos (*.f32 ux maxCos))) (+.f32 ux -1)) 1)) (fma.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))) xi (*.f32 yi (sin.f32 (*.f32 2 (*.f32 uy (PI.f32))))))))

end369.0ms (4.6%)

Stop Event
fuel
Compiler

Compiled 788 to 558 computations (29.2% saved)

Profiling

Loading profile data...