mercredi 11 mars 2015

Perf on a code using exp function from Math.h shows time spent in resolving conflicts e_exp,w_exp

my code computes in a loop exp of a large data array and when I tried to do Perf to profile the code, I get to see


Symbols conflicting in multiple files

/build/buildd/eglibc-2.19/math/../sysdeps/ieee754/dbl-64/e_exp.c

/build/buildd/eglibc-2.19/math/../sysdeps/ieee754/dbl-64/w_exp.c


I am using C++ and included "math.h", and a flag to specify std=c++11.

I am not sure why this conflict happens!


A simple snippet to generate this issue is to compile the below(release config) and run perf..



#include <iostream>
#include <math.h>

using namespace std;
int main()
{

double d = 0;
double e = 0;
for (int i=0;i<8192;i++)
for (int j=0;j<=255;j++)
{
e = ((j/255)-0.5)*((j/255)-0.5);
e = exp(e);
d = d + e;
}
cout<<d;

return 0;


}


Please help, it appears that the conflicts change with the magnitude of the value that goes into exp..Thank you.


Aucun commentaire:

Enregistrer un commentaire