A practical guide to convex optimization using Sage