Given's Rotation SVD example

Time bar (total: 4.1s)

analyze214.0ms (5.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
50%24.3%24.3%51.4%0%0%0%2
50%24.3%24.3%51.4%0%0%0%3
62.5%30.4%18.2%51.4%0%0%0%4
62.5%30.4%18.2%51.4%0%0%0%5
68.8%33.4%15.2%51.4%0%0%0%6
68.8%33.4%15.2%51.4%0%0%0%7
71.1%34.6%14.1%51.4%0%0%0%8
71.5%34.8%13.9%51.4%0%0%0%9
72.9%35.4%13.2%51.4%0%0%0%10
73.1%35.6%13.1%51.4%0%0%0%11
73.9%35.9%12.7%51.4%0%0%0%12
Compiler

Compiled 40 to 30 computations (25% saved)

sample3.6s (89.4%)

Results
345.0ms6254×0valid-sollya
498.0ms6254×0valid-baseline
532.0ms6254×0valid-rival
325.0ms1194×2valid-rival
363.0ms1194×2valid-baseline
168.0ms1194×2valid-sollya
119.0ms636×1valid-rival
58.0ms636×1valid-sollya
100.0ms636×1valid-baseline
69.0ms172×3valid-baseline
31.0ms172×3valid-sollya
63.0ms172×3valid-rival
Bogosity

preprocess186.0ms (4.6%)

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)

prune1.0ms (0%)

Alt Table
Click to see full alt table
StatusAccuracyProgram
78.8%
(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)

simplify2.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)))))))

soundness0.0ms (0%)

Stop Event
fuel
Compiler

Compiled 19 to 14 computations (26.3% saved)

preprocess27.0ms (0.7%)

Remove

(abs p)

Compiler

Compiled 184 to 136 computations (26.1% saved)

end0.0ms (0%)

Profiling

Loading profile data...