I am making a library with symbolic computations which supports matrices. A matrix may have symbolic entries (eg be over the ring of polynomials of a variable $x$ ie $\mathbb{Q}[x]$).
I have implemented almost all useful linear algebra algorithms and decompositions using exact/symbolic computations (and in some cases fraction-free algorithms) (eg REF, RREF, SNF, INVERSE, PSEUDO-INVERSE, LU, QR, RANK factorisations/decompositions, ROWSPACE, COLUMNSPACE, NULLSPACE etc). The only needed algorithm which I cannot do with exact/symbolic computations is SVD/EVD. I only find numerical algorithms which solve the problem numericaly / approximately and employing "irrational" computations (eg square roots) which are not exact (note: I dont mind if an exact/symbolic algorithm employs square roots, since I can handle these symbolicaly if needed without actually computing square roots).
Any exact/symbolic algorithm for
SVD/EVDor any way to computeSVDusing one of the decompositions I already have and which are exact?
Note: the library supports arbitrary precision arithmetic (although slow).
An online demo of the library (which is implemented in pure JavaScript and works in browser and node.js) is over here