Documentation‎ > ‎

### RprojRldlt

 description: [XRat,L,D,P,err]=RprojRldlt(XX,SDP_data,ldlt_test,start) tries to find an exact rational positive semidefinite solution of the problem A*X=b from the floating point solution XX. The algorithm tries to find an appropiate rational approximation of the matrix XX which is after the projection on the hyperplane A*X=b a positive semidefinite matrix.arguments: XX is a floating point solution of the SDP: XX PsD, A*XX=b.SDP_data is a structure holding .A and .b which represent A*XX=b.if ldlt_test=true the programme tries to compute an exact rational LDU decomposition of a rational positive semidefinite solution of the problem A*XX=b. Otherwise positive semidefiniteness relies on numerical computation of eigenvalues. Default value is false.start tells the programme from what tolerance the rounding part starts. The tolerance equals 1/(2^start). Default value is 0.  output: XRat - a cell of two matrices which represent numerators and denominators of the exact rational positive semidefinite solutionL - a cell of two matrices which represent numerators and denominators of the matrix L in the (P*L)*D*(P*L)^T decomposition of the matrix XRatD - a cell of two matrices which represent numerators and denominators of the diagonal matrix D in the (P*L)*D*(P*L)^T decomposition of the matrix XRat P - a permutation pivot matrix in the (P*L)*D*(P*L)^T decomposition of the matrix XRaterr - if it equals 0 means that program ended with success, if it equals -1 rational LDLT decomposition failed because of too large numbers otherwise the whole procedure failedpossible usage: RprojRldlt(XX,SDP_data), RprojRldlt(XX,SDP_data,ldlt_test), RprojRldlt(XX,SDP_data,ldlt_test,start)