Hello,
Since I upgraded Composer from 2018 up3 to 2019 up2 I am getting linker errors such as: libmmd.lib(libmmd.dll) : : error LNK2005: _powf already defined in mkl_core.lib(_avx512_dgetri_small.obj).
It appears when I am try to compile with ICC in 32bit (/Qm32) and disable optimization (/QOd). It compiles and links well with /Qm32 and optimization options (/O3, or /O2, ...). It also compiles and links fine in 64bit (/Qm64) with or without optimization.
You may reproduce with this simple code:
void AvxCopulaFunction::claytonCopulaIterationF(float* correlatedUniforms,const float* notCorrelatedUniforms,const float coeff1,const int length) { __pragma(ivdep) for (int i = 0; i < length; i++) { correlatedUniforms[i] = pow(1.0f + notCorrelatedUniforms[i], coeff1); // double precision version of "pow" works fine ! //correlatedUniforms[i] = pow(1.0 + (double)notCorrelatedUniforms[i], (double)coeff1); } } int AvxCopulaFunction::inverseLUFactoredSquareMatrix(double* matrixToOverwrite,int* inputPivotVector,const int matrixRank) { return LAPACKE_dgetri( LAPACK_ROW_MAJOR, matrixRank, matrixToOverwrite, matrixRank, inputPivotVector ); }
Could you please have a look ?
My command lines are in attachment, let me know if you need more information.
I found this topic, it is maybe related: Linker errors with Visual Fortran Compiler 19.0.1.144
My config: Win10 x64, Visual Studio 2013, Composer 2019 up2
Regards,
Guillaume A.