diagonalProduct override
trace and diagonalProduct overrides
elementProduct override
add generic elementProduct
elementProduct overrides
elementProduct override
more elementProduct overrides
misc overrides and fixes