Index: Pi/C/OpenMP/Pi_OpenMP.c
===================================================================
--- Pi/C/OpenMP/Pi_OpenMP.c	(revision 83)
+++ Pi/C/OpenMP/Pi_OpenMP.c	(revision 84)
@@ -1,5 +1,6 @@
 //
 // Estimation of Pi using Monte Carlo exploration process
+// Cecill v2 Emmanuel QUEMENER <emmanuel.quemener@gmail.com>
 // gcc -std=c99 -O3 -o Pi Pi.c -lm 
 //
 
@@ -19,6 +20,8 @@
 
 #define MWCfp MWC * 2.328306435454494e-10f
 #define KISSfp KISS * 2.328306435454494e-10f
+#define SHR3fp SHR3 * 2.328306435454494e-10f
+#define CONGfp CONG * 2.328306435454494e-10f
 
 #define ITERATIONS 1000000000
 
@@ -32,18 +35,87 @@
 
 LENGTH MainLoopGlobal(LENGTH iterations,unsigned int seed_w,unsigned int seed_z)
 {
+#if defined TCONG
+   unsigned int jcong=seed_z;
+#elif defined TSHR3
+   unsigned int jsr=seed_w;
+#elif defined TMWC
    unsigned int z=seed_z;
    unsigned int w=seed_w;
+#elif defined TKISS
+   unsigned int jcong=seed_z;
+   unsigned int jsr=seed_w;
+   unsigned int z=seed_z;
+   unsigned int w=seed_w;
+#endif
 
    LENGTH total=0;
-
+   
    for (LENGTH i=0;i<iterations;i++) {
 
-      float x=MWCfp ;
-      float y=MWCfp ;
+#if defined TINT32
+    #define THEONE 1073741824
+    #if defined TCONG
+        unsigned int x=CONG>>17 ;
+        unsigned int y=CONG>>17 ;
+    #elif defined TSHR3
+        unsigned int x=SHR3>>17 ;
+        unsigned int y=SHR3>>17 ;
+    #elif defined TMWC
+        unsigned int x=MWC>>17 ;
+        unsigned int y=MWC>>17 ;
+    #elif defined TKISS
+        unsigned int x=KISS>>17 ;
+        unsigned int y=KISS>>17 ;
+    #endif
+#elif defined TINT64
+    #define THEONE 4611686018427387904
+    #if defined TCONG
+        unsigned long x=(unsigned long)(CONG>>1) ;
+        unsigned long y=(unsigned long)(CONG>>1) ;
+    #elif defined TSHR3
+        unsigned long x=(unsigned long)(SHR3>>1) ;
+        unsigned long y=(unsigned long)(SHR3>>1) ;
+    #elif defined TMWC
+        unsigned long x=(unsigned long)(MWC>>1) ;
+        unsigned long y=(unsigned long)(MWC>>1) ;
+    #elif defined TKISS
+        unsigned long x=(unsigned long)(KISS>>1) ;
+        unsigned long y=(unsigned long)(KISS>>1) ;
+    #endif
+#elif defined TFP32
+    #define THEONE 1.0f
+    #if defined TCONG
+        float x=CONGfp ;
+        float y=CONGfp ;
+    #elif defined TSHR3
+        float x=SHR3fp ;
+        float y=SHR3fp ;
+    #elif defined TMWC
+        float x=MWCfp ;
+        float y=MWCfp ;
+    #elif defined TKISS
+      float x=KISSfp ;
+      float y=KISSfp ;
+    #endif
+#elif defined TFP64
+    #define THEONE 1.0f
+    #if defined TCONG
+        double x=(double)CONGfp ;
+        double y=(double)CONGfp ;
+    #elif defined TSHR3
+        double x=(double)SHR3fp ;
+        double y=(double)SHR3fp ;
+    #elif defined TMWC
+        double x=(double)MWCfp ;
+        double y=(double)MWCfp ;
+    #elif defined TKISS
+        double x=(double)KISSfp ;
+        double y=(double)KISSfp ;
+    #endif
+#endif
 
-      // Matching test
-      int inside=((x*x+y*y) < 1.0f) ? 1:0;
+      unsigned long inside=((x*x+y*y) < THEONE) ? 1:0;
       total+=inside;
    }
 
@@ -53,7 +125,8 @@
 LENGTH splitter(LENGTH iterations,unsigned int process,
 		unsigned int seed_w,unsigned int seed_z)
 {
-  LENGTH inside[1024],insides=0;
+  // Trashy static allocation...
+  LENGTH inside[4096],insides=0;
 
 #pragma omp parallel for
   for (int i=0 ; i<process; i++) {
Index: Pi/C/OpenMP/Makefile
===================================================================
--- Pi/C/OpenMP/Makefile	(revision 83)
+++ Pi/C/OpenMP/Makefile	(revision 84)
@@ -1,30 +1,26 @@
-EXECUTABLE=Pi_OpenMP_LONG Pi_OpenMP_INT
+# Compile all version of Pi_OpenMP using Xeon Phi
+# Cecill v2 Emmanuel QUEMENER <emmanuel.quemener@gmail.com>
 
 SOURCE=Pi_OpenMP.c
 
+COMPUTING=INT32 INT64 FP32 FP64
+MARSAGLIA=SHR3 CONG MWC KISS
+
 CC=gcc
 CFLAGS=-Wall -O3 -std=c99 -fopenmp -g
 LIBRARY=-lm -lgomp
 
-all: $(EXECUTABLE)
+all: $(SOURCE)
 
-Pi_OpenMP_LONG: $(SOURCE)
+	$(foreach TVAR,$(COMPUTING),$(foreach TRND,$(MARSAGLIA),$(CC) $(CFLAGS) -DT$(TVAR) -DT$(TRND) -DLONG -DTIME -o $(<:.c=)_$(TVAR)_$(TRND) $< $(LIBRARY); ) )
 
-	$(CC) $(CFLAGS) $(DIRECTIVES) -DLONG -o $@ $< $(LIBRARY)
-
-Pi_OpenMP_INT: $(SOURCE)
-
-	$(CC) $(CFLAGS) $(DIRECTIVES) -DINTEGER -o $@ $< $(LIBRARY)
-
 .PHONY: clean check mrproper
 
 mrproper: 
-	rm -rf $(EXECUTABLE)
+	rm -rf $(foreach TVAR,$(TVARS),$(foreach TRND,$(MARSAGLIA),$(<:.c=)_$(TVAR)_$(TRND) ) )
+
 	find . -name "*~" -exec rm {} \;
 
 clean:
 	find . -name "*~" -exec rm {} \;
 
-check: $(EXECUTABLE)
-
-	@echo "To be Defined"
