﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc	revision
203	faster addRow operation for LP	Tapolcai János	Balazs Dezso	"A new function is requested in lp_base.h:

{{{
virtual int _addRow(ConstRowIterator, ConstRowIterator, Value, Value) =0;
}}}

int this case the following two function can be replaced in  {{{lp_base.h}}}

 1.

{{{
    Row addRow(Value l,const Expr &e, Value u) {
      Row r=addRow();
      row(r,l,e,u);
      return r;
    }
}}}
by
{{{
    Row addRow(Value l,const Expr &e, Value u) {
	  Row r; 
      e.simplify();
      r.id = _addRow(ConstRowIterator(e.begin(), *this),
                    ConstRowIterator(e.end(), *this),l-e.constComp(),u-e.constComp() );
      return r;
    }
}}}

 2.

{{{
    Row addRow(const Constr &c) {
      Row r=addRow();
      row(r,c);
      return r;
    }
}}}
by
{{{
    Row addRow(const Constr &c) {
      Row r=addRow(c.lowerBounded()?c.lowerBound():-INF,
          c.expr(), c.upperBounded()?c.upperBound():INF);
      return r;
    }
}}}

For each solver a new {{{int _addRow(ConstRowIterator, ConstRowIterator, Value, Value)}}} function must be implemented (see also the [attachment:lemon_lp_mip.zip attached files]).

"	enhancement	closed	major	LEMON 1.2 release	core	hg main	done	LP interface		
