Given's Rotation SVD example

Time bar (total: 28.5s)

analyze2.9s (10.3%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%48.6%51.4%0%0%0%0
0%0%48.6%51.4%0%0%0%1
0%0%48.6%51.4%0%0%0%2
0%0%48.6%51.4%0%0%0%3
0%0%48.6%51.4%0%0%0%4
31.3%15.2%33.4%51.4%0%0%0%5
34.4%16.7%31.9%51.4%0%0%0%6
51.6%25.1%23.6%51.4%0%0%0%7
53.1%25.8%22.8%51.4%0%0%0%8
62.5%30.4%18.2%51.4%0%0%0%9
63.7%31%17.7%51.4%0%0%0%10
68.6%33.3%15.3%51.4%0%0%0%11
69.2%33.7%15%51.4%0%0%0%12
Compiler

Compiled 28 to 20 computations (28.6% saved)

sample24.9s (87.3%)

Results
4.0s6212×0valid-rival
623.0ms6157×0valid-sollya
2.0s1200×2valid-rival
307.0ms1182×2valid-sollya
904.0ms639×1valid-rival
104.0ms630×1valid-sollya
293.0ms205×3valid-rival
63.0ms199×3valid-sollya
275.0ms55×0exit-sollya
90.0ms18×2exit-sollya
45.0ms1exit-sollya
30.0ms3exit-sollya
Bogosity

preprocess441.0ms (1.5%)

Algorithm
egg-herbie
Rules
779×fma-define
424×fma-neg
127×distribute-lft-neg-in
109×unsub-neg
99×associate-*l*
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
048458
1116442
2225422
3463414
4812414
51330414
61995414
72498414
82755414
93060414
103178414
113242414
123248414
133249414
Stop Event
saturated
Calls
Call 1
Inputs
(sqrt.f64 (*.f64 #s(literal 1/2 binary64) (+.f64 #s(literal 1 binary64) (/.f64 x (sqrt.f64 (+.f64 (*.f64 (*.f64 #s(literal 4 binary64) p) p) (*.f64 x x)))))))
(sqrt.f64 (*.f64 #s(literal 1/2 binary64) (+.f64 #s(literal 1 binary64) (/.f64 x (sqrt.f64 (+.f64 (*.f64 (*.f64 #s(literal 4 binary64) p) p) (*.f64 x x)))))))
(sqrt.f64 (*.f64 #s(literal 1/2 binary64) (+.f64 #s(literal 1 binary64) (/.f64 x (sqrt.f64 (+.f64 (*.f64 (*.f64 #s(literal 4 binary64) (neg.f64 p)) (neg.f64 p)) (*.f64 x x)))))))
(sqrt.f64 (*.f64 #s(literal 1/2 binary64) (+.f64 #s(literal 1 binary64) (/.f64 (neg.f64 x) (sqrt.f64 (+.f64 (*.f64 (*.f64 #s(literal 4 binary64) p) p) (*.f64 (neg.f64 x) (neg.f64 x))))))))
(neg.f64 (sqrt.f64 (*.f64 #s(literal 1/2 binary64) (+.f64 #s(literal 1 binary64) (/.f64 x (sqrt.f64 (+.f64 (*.f64 (*.f64 #s(literal 4 binary64) (neg.f64 p)) (neg.f64 p)) (*.f64 x x))))))))
(neg.f64 (sqrt.f64 (*.f64 #s(literal 1/2 binary64) (+.f64 #s(literal 1 binary64) (/.f64 (neg.f64 x) (sqrt.f64 (+.f64 (*.f64 (*.f64 #s(literal 4 binary64) p) p) (*.f64 (neg.f64 x) (neg.f64 x)))))))))
(sqrt.f64 (*.f64 #s(literal 1/2 binary64) (+.f64 #s(literal 1 binary64) (/.f64 p (sqrt.f64 (+.f64 (*.f64 (*.f64 #s(literal 4 binary64) x) x) (*.f64 p p)))))))
Outputs
(sqrt.f64 (*.f64 #s(literal 1/2 binary64) (+.f64 #s(literal 1 binary64) (/.f64 x (sqrt.f64 (+.f64 (*.f64 (*.f64 #s(literal 4 binary64) p) p) (*.f64 x x)))))))
(sqrt.f64 (+.f64 #s(literal 1/2 binary64) (*.f64 (/.f64 x (sqrt.f64 (fma.f64 (*.f64 #s(literal 4 binary64) p) p (*.f64 x x)))) #s(literal 1/2 binary64))))
(sqrt.f64 (+.f64 #s(literal 1/2 binary64) (*.f64 #s(literal 1/2 binary64) (/.f64 x (sqrt.f64 (fma.f64 x x (*.f64 #s(literal 4 binary64) (*.f64 p p))))))))
(sqrt.f64 (fma.f64 #s(literal 1/2 binary64) (/.f64 x (sqrt.f64 (fma.f64 x x (*.f64 #s(literal 4 binary64) (*.f64 p p))))) #s(literal 1/2 binary64)))
(sqrt.f64 (*.f64 #s(literal 1/2 binary64) (+.f64 #s(literal 1 binary64) (/.f64 x (sqrt.f64 (+.f64 (*.f64 (*.f64 #s(literal 4 binary64) p) p) (*.f64 x x)))))))
(sqrt.f64 (+.f64 #s(literal 1/2 binary64) (*.f64 (/.f64 x (sqrt.f64 (fma.f64 (*.f64 #s(literal 4 binary64) p) p (*.f64 x x)))) #s(literal 1/2 binary64))))
(sqrt.f64 (+.f64 #s(literal 1/2 binary64) (*.f64 #s(literal 1/2 binary64) (/.f64 x (sqrt.f64 (fma.f64 x x (*.f64 #s(literal 4 binary64) (*.f64 p p))))))))
(sqrt.f64 (fma.f64 #s(literal 1/2 binary64) (/.f64 x (sqrt.f64 (fma.f64 x x (*.f64 #s(literal 4 binary64) (*.f64 p p))))) #s(literal 1/2 binary64)))
(sqrt.f64 (*.f64 #s(literal 1/2 binary64) (+.f64 #s(literal 1 binary64) (/.f64 x (sqrt.f64 (+.f64 (*.f64 (*.f64 #s(literal 4 binary64) (neg.f64 p)) (neg.f64 p)) (*.f64 x x)))))))
(sqrt.f64 (+.f64 #s(literal 1/2 binary64) (*.f64 (/.f64 x (sqrt.f64 (fma.f64 (*.f64 #s(literal 4 binary64) p) p (*.f64 x x)))) #s(literal 1/2 binary64))))
(sqrt.f64 (+.f64 #s(literal 1/2 binary64) (*.f64 #s(literal 1/2 binary64) (/.f64 x (sqrt.f64 (fma.f64 x x (*.f64 #s(literal 4 binary64) (*.f64 p p))))))))
(sqrt.f64 (fma.f64 #s(literal 1/2 binary64) (/.f64 x (sqrt.f64 (fma.f64 x x (*.f64 #s(literal 4 binary64) (*.f64 p p))))) #s(literal 1/2 binary64)))
(sqrt.f64 (*.f64 #s(literal 1/2 binary64) (+.f64 #s(literal 1 binary64) (/.f64 (neg.f64 x) (sqrt.f64 (+.f64 (*.f64 (*.f64 #s(literal 4 binary64) p) p) (*.f64 (neg.f64 x) (neg.f64 x))))))))
(sqrt.f64 (+.f64 #s(literal 1/2 binary64) (*.f64 #s(literal 1/2 binary64) (/.f64 (neg.f64 x) (sqrt.f64 (fma.f64 (*.f64 #s(literal 4 binary64) p) p (*.f64 x x)))))))
(sqrt.f64 (*.f64 #s(literal 1/2 binary64) (-.f64 #s(literal 1 binary64) (/.f64 x (sqrt.f64 (fma.f64 x x (*.f64 #s(literal 4 binary64) (*.f64 p p))))))))
(sqrt.f64 (fma.f64 #s(literal 1/2 binary64) (/.f64 (neg.f64 x) (sqrt.f64 (fma.f64 x x (*.f64 #s(literal 4 binary64) (*.f64 p p))))) #s(literal 1/2 binary64)))
(sqrt.f64 (fma.f64 (/.f64 x (sqrt.f64 (fma.f64 x x (*.f64 #s(literal 4 binary64) (*.f64 p p))))) #s(literal -1/2 binary64) #s(literal 1/2 binary64)))
(sqrt.f64 (fma.f64 x (/.f64 #s(literal -1/2 binary64) (sqrt.f64 (fma.f64 x x (*.f64 #s(literal 4 binary64) (*.f64 p p))))) #s(literal 1/2 binary64)))
(neg.f64 (sqrt.f64 (*.f64 #s(literal 1/2 binary64) (+.f64 #s(literal 1 binary64) (/.f64 x (sqrt.f64 (+.f64 (*.f64 (*.f64 #s(literal 4 binary64) (neg.f64 p)) (neg.f64 p)) (*.f64 x x))))))))
(neg.f64 (sqrt.f64 (*.f64 #s(literal 1/2 binary64) (+.f64 #s(literal 1 binary64) (/.f64 x (sqrt.f64 (fma.f64 (*.f64 #s(literal 4 binary64) (neg.f64 p)) (neg.f64 p) (*.f64 x x))))))))
(neg.f64 (sqrt.f64 (+.f64 #s(literal 1/2 binary64) (*.f64 #s(literal 1/2 binary64) (/.f64 x (sqrt.f64 (fma.f64 x x (*.f64 #s(literal 4 binary64) (*.f64 p p)))))))))
(neg.f64 (sqrt.f64 (fma.f64 #s(literal 1/2 binary64) (/.f64 x (sqrt.f64 (fma.f64 x x (*.f64 #s(literal 4 binary64) (*.f64 p p))))) #s(literal 1/2 binary64))))
(neg.f64 (sqrt.f64 (*.f64 #s(literal 1/2 binary64) (+.f64 #s(literal 1 binary64) (/.f64 (neg.f64 x) (sqrt.f64 (+.f64 (*.f64 (*.f64 #s(literal 4 binary64) p) p) (*.f64 (neg.f64 x) (neg.f64 x)))))))))
(neg.f64 (sqrt.f64 (+.f64 #s(literal 1/2 binary64) (*.f64 #s(literal 1/2 binary64) (/.f64 (neg.f64 x) (sqrt.f64 (fma.f64 (*.f64 #s(literal 4 binary64) p) p (*.f64 x x))))))))
(neg.f64 (sqrt.f64 (*.f64 #s(literal 1/2 binary64) (-.f64 #s(literal 1 binary64) (/.f64 x (sqrt.f64 (fma.f64 x x (*.f64 #s(literal 4 binary64) (*.f64 p p)))))))))
(neg.f64 (sqrt.f64 (fma.f64 #s(literal 1/2 binary64) (/.f64 (neg.f64 x) (sqrt.f64 (fma.f64 x x (*.f64 #s(literal 4 binary64) (*.f64 p p))))) #s(literal 1/2 binary64))))
(neg.f64 (sqrt.f64 (fma.f64 (/.f64 x (sqrt.f64 (fma.f64 x x (*.f64 #s(literal 4 binary64) (*.f64 p p))))) #s(literal -1/2 binary64) #s(literal 1/2 binary64))))
(neg.f64 (sqrt.f64 (fma.f64 x (/.f64 #s(literal -1/2 binary64) (sqrt.f64 (fma.f64 x x (*.f64 #s(literal 4 binary64) (*.f64 p p))))) #s(literal 1/2 binary64))))
(sqrt.f64 (*.f64 #s(literal 1/2 binary64) (+.f64 #s(literal 1 binary64) (/.f64 p (sqrt.f64 (+.f64 (*.f64 (*.f64 #s(literal 4 binary64) x) x) (*.f64 p p)))))))
(sqrt.f64 (*.f64 #s(literal 1/2 binary64) (+.f64 #s(literal 1 binary64) (/.f64 p (sqrt.f64 (fma.f64 (*.f64 x #s(literal 4 binary64)) x (*.f64 p p)))))))
(sqrt.f64 (+.f64 #s(literal 1/2 binary64) (/.f64 (*.f64 #s(literal 1/2 binary64) p) (sqrt.f64 (fma.f64 x (*.f64 x #s(literal 4 binary64)) (*.f64 p p))))))
(sqrt.f64 (fma.f64 #s(literal 1/2 binary64) (/.f64 p (sqrt.f64 (fma.f64 x (*.f64 x #s(literal 4 binary64)) (*.f64 p p)))) #s(literal 1/2 binary64)))
Symmetry

(abs p)

Compiler

Compiled 19 to 14 computations (26.3% saved)

eval0.0ms (0%)

Compiler

Compiled 2 to 2 computations (0% saved)

prune3.0ms (0%)

Alt Table
Click to see full alt table
StatusAccuracyProgram
76.3%
(sqrt.f64 (*.f64 #s(literal 1/2 binary64) (+.f64 #s(literal 1 binary64) (/.f64 x (sqrt.f64 (+.f64 (*.f64 (*.f64 #s(literal 4 binary64) p) p) (*.f64 x x)))))))
Compiler

Compiled 38 to 28 computations (26.3% saved)

simplify7.0ms (0%)

Algorithm
egg-herbie
Rules
1-exp
*-commutative
+-commutative
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02066
13066
Stop Event
saturated
Calls
Call 1
Inputs
(sqrt.f64 (*.f64 #s(literal 1/2 binary64) (+.f64 #s(literal 1 binary64) (/.f64 x (sqrt.f64 (+.f64 (*.f64 (*.f64 #s(literal 4 binary64) p) p) (*.f64 x x)))))))
Outputs
(sqrt.f64 (*.f64 #s(literal 1/2 binary64) (+.f64 #s(literal 1 binary64) (/.f64 x (sqrt.f64 (+.f64 (*.f64 (*.f64 #s(literal 4 binary64) p) p) (*.f64 x x)))))))
(sqrt.f64 (*.f64 #s(literal 1/2 binary64) (+.f64 #s(literal 1 binary64) (/.f64 x (sqrt.f64 (+.f64 (*.f64 p (*.f64 #s(literal 4 binary64) p)) (*.f64 x x)))))))

soundness1.0ms (0%)

Stop Event
fuel
Compiler

Compiled 19 to 14 computations (26.3% saved)

preprocess244.0ms (0.9%)

Remove

(abs p)

Compiler

Compiled 184 to 136 computations (26.1% saved)

end0.0ms (0%)

Profiling

Loading profile data...