Fix clang6 failures.
These seem to be mostly compiler optimization bugs for clang6, since the failures disappear in later clang versions, and only occur with -O2+.
Issues and work-arounds:
-
small_product_5is doing the comparison without first updatingres.col(r), fixed by forcing the column update before comparison. -
geo_orthomethods_1cross3seems to rearrange one of the vectors to have a non-zero in the last component, fixed by forcing it to zero (which may technically be necessary if the inputs previously had aninfornanin that slot, so this could be considered a general bugfix). -
array_cwise_12the SSEpabsfunction was shifting one of the vectors from[a b c d]to[a b b c]during the floating-point mask step. Fixed by forcing the bitwise mask to be performed in integers.