  We introduce a convex optimization modeling framework that transforms a
convex optimization problem expressed in a form natural and convenient for the
user into an equivalent cone program in a way that preserves fast linear
transforms in the original problem. By representing linear functions in the
transformation process not as matrices, but as graphs that encode composition
of linear operators, we arrive at a matrix-free cone program, i.e., one whose
data matrix is represented by a linear operator and its adjoint. This cone
program can then be solved by a matrix-free cone solver. By combining the
matrix-free modeling framework and cone solver, we obtain a general method for
efficiently solving convex optimization problems involving fast linear
transforms.
