To assist with formulating a JuMP model for an SDP, I need to create affine expressions `y`

(then the objectives and constraints can be cheaply constructed by getindex into `y`

):

```
F = qr(m::SparseMatrixCSC) # call to SuiteSparse.SparseQR
r = rank(F)
cols = @view F.Q[:,1:r]
model = JuMP.Model()
@variable(model, z[1:r])
@expression(model, y, cols * z)
# omitted: objective, constraints...
```

The size of cols is `(172410, 1107)`

for a small instance and around `(10_000_000,100_000)`

for a larger one. How can I speed up the creation of these expressions?