Don't allocate an array for a gathering write if it is not needed
Allocate setters lazily
tmp