﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc	revision
202	faster add row operation for lp interface	Tapolcai János	Alpar Juttner	"A new virtual function is requested for lp_base.h:

virtual int _addRow(ConstRowIterator, ConstRowIterator, Value, Value) =0;

in this case replace this function in lp_base.h
    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;
    }

and also this function: 

    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;
    }

also int _addRow(ConstRowIterator, ConstRowIterator, Value, Value) must be implemented for each solver. see the attached files

Én CBC-vel használtam a lemon-t, ott ez a trükk sokat gyorsított (bár a cbc-s interface-t magam implementáltam, és lehet hogy ott bénáztam el valamit).

"	enhancement	closed	major	LEMON 1.1 release	core	hg main	duplicate	LP interface		
