Hello all,
I'm using aramadillo (http://arma.sourceforge.net) to elegantly manipulate arrays. All was working well till the last version (4.650.2).
Now it fails compiling with icpc (15.0.1, Linux) pretending there is a resolution problem. The snippet code still compile fine with g++(4.9.2) and also clang (3.5) showing no error or warning.
I've filed a bug to armadillo team, but they told me it is an Intel issue.
I would be happy if any solution exists to solve this issue as I both need using armadillo and the intel compiler for speed and efficency.
Thanks in advance for any answer.
Daniel
Here is the code:
#define ARMA_DONT_USE_WRAPPER
#define ARMA_DONT_USE_HDF5
#define ARMA_DONT_USE_BLAS
#include <armadillo>
using namespace std;
using namespace arma;
#define LEN 50
int main()
{
mat::fixed<LEN,9> beta;
vec::fixed<LEN> alpha;
mat::fixed<LEN,9> ash1;
ash1=repmat(alpha,1,9)-beta;
return(0);
}and the compilation error:
~ $ icpc -I armadillo-4.650.2/include/ bugarma.cpp
bugarma.cpp(17): error: more than one operator "=" matches these operands:
function template "const arma::Mat<double> &arma::Mat<eT>::operator=(const arma::eGlue<T1, T2, eglue_type> &) [with eT=double]"
function template "const arma::Mat<double> &arma::Mat<eT>::fixed<fixed_n_rows, fixed_n_cols>::operator=(const arma::eGlue<T1, T2, eglue_type> &) [with eT=double, fixed_n_rows=50U, fixed_n_cols=9U]"
operand types are: arma::Mat<double>::fixed<50U, 9U> = const arma::eGlue<arma::Op<arma::Mat<double>, arma::op_repmat>, arma::Mat<double>::fixed<50U, 9U>, arma::eglue_minus>
ash1=repmat(alpha,1,9)-beta;
^
compilation aborted for bugarma.cpp (code 2)