Given's Rotation SVD example

Time bar (total: 3.9s)

analyze190.0ms (4.8%)

Memory
2.1MiB live, 80.8MiB allocated
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 39 to 31 computations (20.5% saved)

sample3.5s (89.6%)

Memory
10.2MiB live, 1 128.3MiB allocated
Samples
467.0ms1 154×2valid-baseline
465.0ms6 265×0valid-baseline
447.0ms6 265×0valid-rival
339.0ms6 265×0valid-sollya
235.0ms1 154×2valid-rival
178.0ms665×1valid-baseline
159.0ms1 154×2valid-sollya
95.0ms665×1valid-rival
74.0ms172×3valid-baseline
61.0ms665×1valid-sollya
47.0ms172×3valid-rival
30.0ms172×3valid-sollya
Bogosity

preprocess186.0ms (4.7%)

Memory
-5.8MiB live, 24.5MiB allocated
Algorithm
egg-herbie
Rules
779×fma-define
424×fmm-def
126×distribute-lft-neg-in
100×associate-*l*
98×unsub-neg
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
048458
1116442
2225422
3459414
4806414
51322414
61990414
72493414
82750414
93055414
103173414
113237414
123243414
133244414
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 #s(literal 1 binary64) (/.f64 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%)

Memory
0.2MiB live, 0.2MiB allocated
Compiler

Compiled 2 to 2 computations (0% saved)

prune1.0ms (0%)

Memory
0.9MiB live, 0.9MiB allocated
Alt Table
Click to see full alt table
StatusAccuracyProgram
81.5%
(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%)

Memory
0.4MiB live, 0.4MiB allocated
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%)

Memory
0.4MiB live, 0.4MiB allocated
Stop Event
fuel
Compiler

Compiled 19 to 14 computations (26.3% saved)

preprocess31.0ms (0.8%)

Memory
-0.4MiB live, 34.2MiB allocated
Remove

(abs p)

Compiler

Compiled 184 to 136 computations (26.1% saved)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

Profiling

Loading profile data...