This is the first profiling of convolution on an image - it is slower than expected and being refactored, see
https://github.com/Jammy2211/PyAutoLens/issues/30. .

ORIGINAL:

psf = 21x21

lsst_solution: 0.7838027477264404
euclid_solution: 2.7468605041503906
hst_solution: 9.063872337341309
hst_up_solution: 20.911508083343506

psf = 41x41

lsst_solution: 3.622267246246338
euclid_solution: 10.063962459564209
hst_solution: 36.11542248725891
hst_up_solution: 121.993239402771

JITTED:

psf = 21x21

lsst_solution: 0.03985404968261719
euclid_solution: 0.09821200370788574
hst_solution: 0.30489659309387207
hst_up_solution: 0.7619879245758057

psf = 41x41

lsst_solution: 0.07627749443054199
euclid_solution: 0.1665787696838379
hst_solution: 0.45037412643432617
hst_up_solution: 1.0230822563171387


The routine is slow because of the large number of -1 entries, which it iterates over. See
https://github.com/Jammy2211/PyAutoLens/issues/30 .

I am now going to refactor frame convolver to remove these entries and reprofile the code