%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ReadMe The MATLAB files in this folder are used to generate the numerical results of the manuscript "Error Bounds and Singularity Degree in Semidefinite Programming" by Sremac, Woerdeman, and Wolkowicz (2020). The numerics of the introductory example are obtained by the script IntroExample. The numerics in Section 5 are generated by TestScript and TestScriptPrecise. %%%%%% IntroExample Generates the numerical results of the example in the introduction of the manuscript. %%% Calls: MakeProblemTun %%%%%% TestScript Generates plots of convergence rates of the eigenvalues of X(sigma^k) and Z(sigma^k) as well as the diagonal elements of Z(sigma^k). The entire sequences X(sigma^k) and Z(sigma^k) are generated as a byproduct of one run of an interior point method on an SDP feasibility problem. %%% Calls: IPGN, MakeProblemToe, MakeProblemTun, MakeProblemWNM, genBlockHard, ssMat, ssvec %%%%%% TestScriptPrecise Same as Testscript except that for each k the pair X(sigma^k) and Z(sigma^k) is a primal-dual solution to an SDP feasibility problem. This script is much more time consuming, but potentially more precise. However, in our experience, we found that conclusions about rank and singularity degree drawn from TestScriptPrecise are no different than those drawn from TestScript. %%% Calls: IPGN, MakeProblemToe, MakeProblemTun, MakeProblemWNM, genBlockHard, ssMat, ssvec %%%%%% MakeProblemToe Creates the constraints that define the spectrahedron obtained from Toeplitz cycle completion problems. %%% Calls: ssvec %%%%%% MakeProblemTun Creates the constraints that define the family of spectrahedra presented by Tuncel. %%% Calls: ssvec %%%%%% MakeProblemWNM Creates the constraints that define the challenging family of spectrahedra introduced by Waki, Nakata, and Muramatsu. %%% Calls: ssvec, ssMat %%%%%% genBlockHard Creates the constraints that define the spectrahedron obtained from Toeplitz cycle completion problems. %%% Calls: %%%%%% IPGN An interior point method algorithm for the SDP feasibility problem, based on the Gauss-Newton approach. %%% Calls: ssvec, ssMat, vec %%%%%% ssvec Converts a symmetric matrix into a vector containing the diagonal and the upper triangular part of the matrix. %%% Calls: ssvec %%%%%% ssMat Converts a vector of dimension n*(n+1)/2 to a symmetric matrix of order n. %%% Calls: %%%%%% vec Converts a vector of dimension n^2 to a square matrix (not necessarily symmetric) of order n. %%% Calls: