Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
moving lagrange functions for Vegas and Reno to their right location
authoralegrand <alegrand@48e7efb5-ca39-0410-a469-dd3cf9ba447f>
Thu, 19 Jul 2007 13:01:10 +0000 (13:01 +0000)
committeralegrand <alegrand@48e7efb5-ca39-0410-a469-dd3cf9ba447f>
Thu, 19 Jul 2007 13:01:10 +0000 (13:01 +0000)
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@3871 48e7efb5-ca39-0410-a469-dd3cf9ba447f

src/surf/lagrange.c
src/surf/maxmin.c

index cfabb33..34a0df7 100644 (file)
@@ -465,3 +465,93 @@ double diff_aux(lmm_variable_t var, double x)
   XBT_OUT;
   return result;
 }
   XBT_OUT;
   return result;
 }
+
+
+/**************** Vegas and Reno functions *************************/
+/*
+ * NOTE for Reno: all functions consider the network
+ * coeficient (alpha) equal to 1.
+ */
+
+/*
+ * For Vegas f: $\alpha_f d_f \log\left(x_f\right)$
+ */
+double func_vegas_f(lmm_variable_t var, double x){
+  return var->df * log(x);
+}
+
+/*
+ * For Vegas fp: $\frac{\alpha D_f}{x}$
+ */
+double func_vegas_fp(lmm_variable_t var, double x){
+  //avoid a disaster value - c'est du bricolage mais ca marche
+/*   if(x == 0) x = 10e-8; */
+  return var->df/x;
+}
+
+/*
+ * For Vegas fpi: $\frac{\alpha D_f}{x}$
+ */
+double func_vegas_fpi(lmm_variable_t var, double x){
+  //avoid a disaster value - c'est du bricolage mais ca marche
+/*   if(x == 0) x = 10e-8; */
+  return var->df/x;
+}
+
+/*
+ * For Vegas fpip: $-\frac{\alpha D_f}{x^2}$
+ */
+double func_vegas_fpip(lmm_variable_t var, double x){
+  //avoid a disaster value - c'est du bricolage mais ca marche
+/*   if(x == 0) x = 10e-8; */
+  return -( var->df/(x*x) ) ;
+}
+
+
+/*
+ * For Reno f: $\frac{\sqrt{\frac{3}{2}}}{D_f} \arctan\left(\sqrt{\frac{3}{2}}x_f D_f\right)$
+ */
+double func_reno_f(lmm_variable_t var, double x){
+  xbt_assert0(var->df>0.0,"Don't call me with stupid values!");
+  // \sqrt{3/2} = 0.8164965808
+  return (0.8164965808 / var->df) * atan( (0.8164965808 / var->df)*x );
+}
+
+/*
+ * For Reno fp: $\frac{3}{3 {D_f}^2 x^2 + 2}$
+ */
+double func_reno_fp(lmm_variable_t var, double x){
+  return 3 / (3*var->df*var->df*x*x + 2);
+}
+
+/*
+ * For Reno fpi: $\sqrt{\frac{1}{{D_f}^2 x} - \frac{2}{3{D_f}^2}}$
+ */
+double func_reno_fpi(lmm_variable_t var, double x){
+  double res_fpi; 
+
+  xbt_assert0(var->df>0.0,"Don't call me with stupid values!");
+  xbt_assert0(x>0.0,"Don't call me with stupid values!");
+
+  res_fpi = 1/(var->df*var->df*x) - 2/(3*var->df*var->df);
+  if(res_fpi<=0.0) return 0.0;
+  xbt_assert0(res_fpi>0.0,"Don't call me with stupid values!");
+  return sqrt(res_fpi);
+}
+
+/*
+ * For Reno fpip:  $-\frac{1}{2 {D_f}^2 x^2\sqrt{\frac{1}{{D_f}^2 x} - \frac{2}{3{D_f}^2}}}$
+ */
+double func_reno_fpip(lmm_variable_t var, double x){
+  double res_fpip; 
+  double critical_test;
+
+  xbt_assert0(var->df>0.0,"Don't call me with stupid values!");
+  xbt_assert0(x>0.0,"Don't call me with stupid values!");
+
+  res_fpip = 1/(var->df*var->df*x) - 2/(3*var->df*var->df);
+  xbt_assert0(res_fpip>0.0,"Don't call me with stupid values!");
+  critical_test = (2*var->df*var->df*x*x*sqrt(res_fpip));
+
+  return -(1.0/critical_test);
+}
index b91599c..eb9ff1e 100644 (file)
@@ -647,91 +647,3 @@ void lmm_set_default_protocol_functions(double (* func_f)    (lmm_variable_t var
   func_fpip_def = func_fpip;
 }
 
   func_fpip_def = func_fpip;
 }
 
-
-/*
- * NOTE for Reno: all functions consider the network
- * coeficient (alpha) equal to 1.
- */
-
-/*
- * For Vegas f: $\alpha_f d_f \log\left(x_f\right)$
- */
-double func_vegas_f(lmm_variable_t var, double x){
-  return var->df * log(x);
-}
-
-/*
- * For Vegas fp: $\frac{\alpha D_f}{x}$
- */
-double func_vegas_fp(lmm_variable_t var, double x){
-  //avoid a disaster value - c'est du bricolage mais ca marche
-/*   if(x == 0) x = 10e-8; */
-  return var->df/x;
-}
-
-/*
- * For Vegas fpi: $\frac{\alpha D_f}{x}$
- */
-double func_vegas_fpi(lmm_variable_t var, double x){
-  //avoid a disaster value - c'est du bricolage mais ca marche
-/*   if(x == 0) x = 10e-8; */
-  return var->df/x;
-}
-
-/*
- * For Vegas fpip: $-\frac{\alpha D_f}{x^2}$
- */
-double func_vegas_fpip(lmm_variable_t var, double x){
-  //avoid a disaster value - c'est du bricolage mais ca marche
-/*   if(x == 0) x = 10e-8; */
-  return -( var->df/(x*x) ) ;
-}
-
-
-/*
- * For Reno f: $\frac{\sqrt{\frac{3}{2}}}{D_f} \arctan\left(\sqrt{\frac{3}{2}}x_f D_f\right)$
- */
-double func_reno_f(lmm_variable_t var, double x){
-  xbt_assert0(var->df>0.0,"Don't call me with stupid values!");
-  // \sqrt{3/2} = 0.8164965808
-  return (0.8164965808 / var->df) * atan( (0.8164965808 / var->df)*x );
-}
-
-/*
- * For Reno fp: $\frac{3}{3 {D_f}^2 x^2 + 2}$
- */
-double func_reno_fp(lmm_variable_t var, double x){
-  return 3 / (3*var->df*var->df*x*x + 2);
-}
-
-/*
- * For Reno fpi: $\sqrt{\frac{1}{{D_f}^2 x} - \frac{2}{3{D_f}^2}}$
- */
-double func_reno_fpi(lmm_variable_t var, double x){
-  double res_fpi; 
-
-  xbt_assert0(var->df>0.0,"Don't call me with stupid values!");
-  xbt_assert0(x>0.0,"Don't call me with stupid values!");
-
-  res_fpi = 1/(var->df*var->df*x) - 2/(3*var->df*var->df);
-  if(res_fpi<=0.0) return 0.0;
-  xbt_assert0(res_fpi>0.0,"Don't call me with stupid values!");
-  return sqrt(res_fpi);
-}
-
-/*
- * For Reno fpip:  $-\frac{1}{2 {D_f}^2 x^2\sqrt{\frac{1}{{D_f}^2 x} - \frac{2}{3{D_f}^2}}}$
- */
-double func_reno_fpip(lmm_variable_t var, double x){
-  double res_fpip; 
-  double critical_test;
-
-  xbt_assert0(var->df>0.0,"Don't call me with stupid values!");
-  xbt_assert0(x>0.0,"Don't call me with stupid values!");
-
-  res_fpip = 1/(var->df*var->df*x) - 2/(3*var->df*var->df);
-  xbt_assert0(res_fpip>0.0,"Don't call me with stupid values!");
-  critical_test = (2*var->df*var->df*x*x*sqrt(res_fpip));
-
-  return -(1.0/critical_test);
-}