﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	resolution	keywords	cc
78	Intersección de restricciones de orden distinta de vacío	lmperez	josp	"Comprobar que las condiciones iniciales de muestreo de los parámetros
cumplen las inecuaciones de las restricciones de orden.

Os dejo el código de bsrlayer que hace esta comprobación por si os sirve
de guía:

{{{
//////////////////////////////////////////////////////////////////////////////
Set CheckCnsTrntLinCmb (Text model, Real vl_mix, Set AllConstraintInfo)
//////////////////////////////////////////////////////////////////////////////
{
  // Traemos los puntos inciales de cada parámetro.
  Set check =  EvalSet (AllConstraintInfo, Real (Set s)
  {
   // Recorremos ecuaciones
    Set sthis.equ = Traspose(EvalSet (s, Set (Set se)
    {
      Text _.id_parameter = se[5];
      Real _.id_level     = se[6];
      Text _.id_node      = se[4];
      Real _.coef         = se[7];
      Real _.ini_val      =
InivalInfo(model,_.id_parameter,_.id_level,_.id_node);

      [[ _.coef*If(BinEQ(_.ini_val,?),0,_.ini_val) ]]
    }))[1];

    Real leftbound  = s[1][2];
    Real rightbound = s[1][3];

    // Chequeo de cada ecuación.
    Real value = SetSum (sthis.equ);

    Real If (And(If(BinEQ(rightbound,?),value < 1/0, value <= rightbound),
                 If(BinEQ(leftbound,?), value > -1/0,value >= leftbound)),
    {
      0
    },
    {
      WriteLn (""Wrong inequation ""+IntText(s[1][1]),""W"");
      s[1][1]
    })
  });
  Set Select(check,Real (Real x){ If(x==0,0,1) })
};
//////////////////////////////////////////////////////////////////////////////
PutDescription(""It evals if the constraints of a model are ok. If not, it
gives you the set of inequations that are not correct."",
CheckCnsTrntLinCmb);
//////////////////////////////////////////////////////////////////////////////
}}}"	task	new	major	Release 0.6	General			
