Fixed some compiler bugs in NVCC, now compiles with CUDA.
(chtz: Manually joined sevaral commits to keep the history clean)
diff --git a/doc/snippets/compile_snippet.cpp.in b/doc/snippets/compile_snippet.cpp.in
index 82ae891..fdae39b 100644
--- a/doc/snippets/compile_snippet.cpp.in
+++ b/doc/snippets/compile_snippet.cpp.in
@@ -1,6 +1,11 @@
 #include <Eigen/Eigen>
 #include <iostream>
 
+#ifndef M_PI
+#define M_PI 3.1415926535897932384626433832795
+#endif
+
+
 using namespace Eigen;
 using namespace std;