struct LinOp # see LinearMaps.jl and LinearMapsAA.jl for pro version forward::Function # A * x will call forward(x) adjoint::Function # A' * y will call adjoint(y) end Base.:(*)(A::LinOp, x) = A.forward(x) # for A*x Base.adjoint(A::LinOp) = LinOp(A.adjoint, A.forward) # for A'