Fix scalar_inner_product_op when binary ops return a different type
What does this implement/fix?
When the return type of 'LHS op RHS' differs from the operands, we must not use the packet access template specialization, because it assumes homogeneous types when calling pmadd for the accumulator vs the operands. We fix this by adding an enable_if to the partial template specialization so that it only exists when the return type matches the operands.
In my case where I tripped over this bug, the LHS and RHS were of type Monomial but the accumulator type was Polynomial.
Edited by Jeremy Nimmer