Special case for unit x.*y
Transposing matrix first is faster
No need to create X
Reordering to get rid of checks
Exploit purely univariate derivatives