Another thing is that you use pow(x1,2). The pow function isn't very efficient and it takes much less time to compute x1*x1. It's a good idea to use that instead when possible (and it saves some typing!).
X1 unutilized? I'm not sure what unutilized is. Do you mean uninitialized?
Here are the problems with your function: double func(double&)
You don't specify a name for the double that comes in as an argument. I assume you want double& x1.
You had defined pi and e in the global scope already. You don't need to define them again. x1 is defined here, but should have been defined in the first line.
While you've defined all of these variables, pi, e, and x1 aren't initialized. If you remove the pi and e definitions, then it will use the global scope variables which are good. x1 should have been in the first line. f is ok
You don't return a value. try putting return f; before this line.\
One more note, it's also not a good idea to delete your posts. You were probably brought to this forum from a google search when you were searching for answers. If you delete your OP, then no one else can see what we've suggested.