Re #2738. Re-enable OpenMP in BinaryOperation on Mac.
The problem looked to be due to the fact that the Intel compiler evaluates function arguments L->R (out other compilers do it R->L). If the LHS & output workspaces were the same one, the references obtained by the readY/E calls could be invalidated by other threads, whereas with R->L evaluation the dataY/E calls would have ensured the readY/E gave the right one. In fact, the tests that showed this up are rather artificial as it's extremely unlikely that data will be shared between Y & E vectors (unlike X vectors), but it's better to make sure it's correct.
Please register or sign in to comment