1 | TO DO LIST
|
---|
2 |
|
---|
3 |
|
---|
4 |
|
---|
5 | (optional optimization) - do all the allocations in the allocate part
|
---|
6 | - support static matrices
|
---|
7 | - return a error at compilation time when using integer matrices (int, long, std::complex<int>, ...)
|
---|
8 |
|
---|
9 | to finish the algorithm :
|
---|
10 | -implement the last part of the algorithm as described on the reference paper.
|
---|
11 | You may find more information on that part on this paper
|
---|
12 |
|
---|
13 | -to replace the call to JacobiSVD at the end of the divide algorithm, just after the call to
|
---|
14 | deflation.
|
---|
15 |
|
---|
16 | (suggested step by step resolution)
|
---|
17 | 0) comment the call to Jacobi in the last part of the divide method and everything right after
|
---|
18 | until the end of the method. What is commented can be a guideline to steps 3) 4) and 6)
|
---|
19 | 1) solve the secular equation (Characteristic equation) on the values that are not null (zi!=0 and di!=0), after the deflation
|
---|
20 | wich should be uncommented in the divide method
|
---|
21 | 2) remember the values of the singular values that are already computed (zi=0)
|
---|
22 | 3) assign the singular values found in m_computed at the right places (with the ones found in step 2) )
|
---|
23 | in decreasing order
|
---|
24 | 4) set the firstcol to zero (except the first element) in m_computed
|
---|
25 | 5) compute all the singular vectors when CompV is set to true and only the left vectors when
|
---|
26 | CompV is set to false
|
---|
27 | 6) multiply naiveU and naiveV to the right by the matrices found, only naiveU when CompV is set to
|
---|
28 | false, /!\ if CompU is false NaiveU has only 2 rows
|
---|
29 | 7) delete everything commented in step 0)
|
---|