Years ago, when I was taking my first programming course on MATLAB, I learned a cool function in MATLAB: why

This tiny function basically gives you some random statements. Try typing “why” and enter. It gives you outputs like this:

Since it is a random sentence generator, you can also give a seed number to it (like why(100)) and it generates always the same random sentence. For instance why(2) gives “You insisted on it”. Well, I really did.

Today I was trying to solve a quadratically constrained optimization problem with MOSEK and unfortunately MOSEK was complaining that my quadratic part is not positive semi definite. It is actually a numerical error, because eigenvalues of my matrix are 0 and  22.4367. So it should be able to solve it, but I have no luck today. Anyway, when I was looking to the eigenvalues, I couldn’t think any solution to my problem and type

and MATLAB spoke:

The devil made me do it.


Well, at this point there is nothing I can do, I guess. Numerical errors in conic optimization is not uncommon, but if the devil made MOSEK to do it, I better go home early today. Tomorrow is another day with less numerical errors.