Index: trunk/SophyaPI/PI/Makefile
===================================================================
--- trunk/SophyaPI/PI/Makefile	(revision 4052)
+++ trunk/SophyaPI/PI/Makefile	(revision 4059)
@@ -484,5 +484,5 @@
   pidrawer.h pigratt.h piaxes.h pieldrw.h pidrwtools.h pimenux.h \
   pimenugen.h pioptmenux.h pioptmenugen.h piapplx.h piapplgen.h \
-  pimenubarx.h pimenubargen.h piconsenum.h piaxestools.h
+  pimenubarx.h pimenubargen.h piconsenum.h piaxestools.h ucckprot.h
 	$(CXXCOMPILE) $(CXXTEMPFLG) -o $@  piscdrawwdg.cc
  
Index: trunk/SophyaPI/PI/piaxes.cc
===================================================================
--- trunk/SophyaPI/PI/piaxes.cc	(revision 4052)
+++ trunk/SophyaPI/PI/piaxes.cc	(revision 4059)
@@ -533,4 +533,5 @@
 //  Calcul du min et du max du display a partir des valeurs min et max a plotter
 {
+  //DBG  cout << "**DBG*PIAxes::ReSizeMinMax(" << vmin << "," << vmax << "," << garde << ")" << endl;
  if(garde<0. || garde>=1.) garde = 0.025;
  // cout<<"ReSizeMinMax[log="<<axelog<<",garde="<<garde<<"] vmin="<<vmin<<" vmax="<<vmax<<endl;
@@ -557,5 +558,5 @@
  }
 
- // cout<<"           vmin="<<vmin<<" vmax="<<vmax<<endl;
+ //DBG  cout<<"           vmin="<<vmin<<" vmax="<<vmax<<endl;
 }
 
Index: trunk/SophyaPI/PI/piscdrawwdg.cc
===================================================================
--- trunk/SophyaPI/PI/piscdrawwdg.cc	(revision 4052)
+++ trunk/SophyaPI/PI/piscdrawwdg.cc	(revision 4059)
@@ -13,7 +13,5 @@
 #include "piaxestools.h"
 
-#define PETIT_DBLE 1.e-100
-#define PREC_DBLE  1.e-16
-
+#include "ucckprot.h"
 
 //++
@@ -180,13 +178,6 @@
                        int axrl, int ayud, bool tmp)
 {
-//  if (xmax <= xmin || ymax <= ymin) {
-//    cerr << "PIScDrawWdg::SetLimits() Error - xmax <= xmin or ymax <= ymin !" << endl;
-//    return; 
-//    }
-  double xym;
-  xym = fabs(xmax+xmin); xym = (xym > PETIT_DBLE) ? xym : PETIT_DBLE;
-  if ((xmax-xmin)/xym < PREC_DBLE) { xmin = xmin - PREC_DBLE/2.*xym;  xmax = xmin + PREC_DBLE*xym; }
-  xym = fabs(ymax+ymin); xym = (xym > PETIT_DBLE) ? xym : PETIT_DBLE;
-  if ((ymax-ymin)/xym < PREC_DBLE) { ymin = ymin - PREC_DBLE/2.*xym;  ymax = ymin + PREC_DBLE*xym; }
+  UC_CheckMinMaxDiff(xmin,xmax);
+  UC_CheckMinMaxDiff(ymin,ymax);
 
   SetDefaultDrawerLimits(xmin, xmax, ymin, ymax, axrl, ayud);
Index: trunk/SophyaPI/PI/piversion.h
===================================================================
--- trunk/SophyaPI/PI/piversion.h	(revision 4052)
+++ trunk/SophyaPI/PI/piversion.h	(revision 4059)
@@ -2,5 +2,5 @@
 #define PIVERSION_H_SEEN
 
-#define PI_VERSIONNUMBER  4.20
+#define PI_VERSIONNUMBER  4.25
 
 #endif
Index: trunk/SophyaPI/PI/smakefile
===================================================================
--- trunk/SophyaPI/PI/smakefile	(revision 4052)
+++ trunk/SophyaPI/PI/smakefile	(revision 4059)
@@ -484,5 +484,5 @@
   pidrawer.h pigratt.h piaxes.h pieldrw.h pidrwtools.h pimenux.h \
   pimenugen.h pioptmenux.h pioptmenugen.h piapplx.h piapplgen.h \
-  pimenubarx.h pimenubargen.h piconsenum.h piaxestools.h
+  pimenubarx.h pimenubargen.h piconsenum.h piaxestools.h ucckprot.h
 	$(CXXCOMPILE) $(CXXTEMPFLG) -o $@  piscdrawwdg.cc
  
Index: trunk/SophyaPI/PI/ucckprot.h
===================================================================
--- trunk/SophyaPI/PI/ucckprot.h	(revision 4052)
+++ trunk/SophyaPI/PI/ucckprot.h	(revision 4059)
@@ -13,7 +13,4 @@
 #endif
 
-//define PETIT_DBLE 1.e-39
-//define PREC_DBLE  1.e-5
-//define PROT_DBLE  1.e-19
 #define PETIT_DBLE 1.e-85
 // qque probleme sur le trace - J'augmente les marges - Reza 14/5/2002 
@@ -21,6 +18,7 @@
 #define PREC_DBLE  1.e-14
 #define MINRAP_DBLE  1.e-12
-#define PROT_DBLE_MIN  1.e-100
-#define PROT_DBLE_MAX  1.e+100
+// Avril 2012 (cmv+reza) : on passe les limites de protection double de 1e+/-100 a 1e+/-250 
+#define PROT_DBLE_MIN  1.e-250
+#define PROT_DBLE_MAX  1.e+250
 
 inline double UC_LimitProtectDouble(double x)
@@ -42,4 +40,5 @@
   bool rc = false;
   double xym,xym2;
+  if (xmax<xmin) xmax=xmin;
   xym = fabs(xmax);
   xym2 = fabs(xmin);
@@ -47,6 +46,7 @@
   if (xym < PETIT_DBLE) xym = PETIT_DBLE;
   if ((xmax-xmin) < MINRAP_DBLE*xym) {
-    xmin -= MINRAP_DBLE*xym*0.5;  xmax = xmin+MINRAP_DBLE*xym;
-    //cerr<<" DBG-CheckMinMaxDiff: xmin,max="<<xmin<<","<<xmax<<" xym="<<xym<<" diff="<<xmax-xmin<<endl;
+    //    printf("UC_CheckMinMaxDiff_Debug: xmin=%.15e xmax=%.15e diff=%.15e \n",xmin,xmax,xmax-xmin); 
+    xmin -= MINRAP_DBLE*xym*0.5;  xmax += MINRAP_DBLE*xym*0.5;; // xmax = xmin+MINRAP_DBLE*xym;
+    //    printf(" ...Changed to --> xmin=%.15e xmax=%.15e diff=%.15e \n",xmin,xmax,xmax-xmin); 
     rc = true;
   }
