<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD><TITLE>Message</TITLE>
<META content="text/html; charset=iso-8859-1" http-equiv=Content-Type>
<META name=GENERATOR content="MSHTML 8.00.6001.18939"></HEAD>
<BODY bgColor=#ffffff text=#000000>
<DIV><SPAN class=057384309-08112010><FONT color=#0000ff size=2 face=Arial>Hi 
Christian,</FONT></SPAN></DIV>
<DIV><SPAN class=057384309-08112010><FONT color=#0000ff size=2 face=Arial>Thank 
you for replies. In the mean time I have played around a bit more with issues 2) 
and have reached a working version of that "encapsulating" function. It is not 
very elegant, though. </FONT></SPAN><FONT face=Arial><FONT size=2><FONT 
color=#0000ff><SPAN class=057384309-08112010>In order not need to deal with 
destruction of objects instantiated through "new" I am using boost's shared_ptr. 
Nevertheless, because such objects get destroyed when last reference to objects 
go out of scope, I have to pass back all MP_* related objects back to caller's 
scope (even for locally created and used MP_set variables, such as 'abs_x_set' 
below). Hence, I have resorted to pass back all the MP_* objects via references 
to the caller, although this makes the entire encapsulating thing a bit 
questionable.</SPAN></FONT></FONT></FONT></DIV>
<DIV><SPAN class=057384309-08112010><FONT color=#0000ff size=2 
face=Arial></FONT></SPAN>&nbsp;</DIV>
<DIV><SPAN class=057384309-08112010><FONT color=#0000ff size=2 
face=Arial></FONT></SPAN>&nbsp;</DIV>
<DIV><SPAN class=057384309-08112010><FONT color=#0000ff size=2 
face=Arial>#include &lt;boost/shared_ptr.hpp&gt;<BR>typedef 
boost::shared_ptr&lt;MP_set&gt; MP_set_ptr;<BR>typedef 
boost::shared_ptr&lt;MP_variable&gt; MP_var_ptr;<BR>typedef 
boost::shared_ptr&lt;MP_expression&gt; MP_expr_ptr;<BR>typedef 
boost::shared_ptr&lt;MP_constraint&gt; MP_cnstr_ptr;<BR>typedef 
boost::shared_ptr&lt;MP_model&gt; MP_model_ptr;</FONT></SPAN></DIV>
<DIV><FONT color=#0000ff size=2 face=Arial></FONT>&nbsp;</DIV>
<DIV><SPAN class=057384309-08112010><FONT color=#0000ff size=2 face=Arial>static 
MP_expr_ptr<BR>lp_objective_absolute(<BR>&nbsp;&nbsp;MP_variable&amp; 
x,<BR>&nbsp;&nbsp;MP_data&amp; weight,<BR>&nbsp;&nbsp;MP_set_ptr&amp; 
abs_x_set_ptr,<BR>&nbsp;&nbsp;MP_var_ptr&amp; 
abs_x_var_ptr,<BR>&nbsp;&nbsp;vector&lt;MP_cnstr_ptr&gt;&amp; 
abs_x_linctr,<BR>&nbsp;&nbsp;MP_model&amp; 
lp/*=MP_model::getDefaultModel()*/,<BR>&nbsp;&nbsp;const string&amp; 
prefix/*="abs_"*/) {<BR>&nbsp;if (x.size() &gt; 0) {<BR>&nbsp;&nbsp;if 
(x.getName().empty()) {<BR>&nbsp;&nbsp;&nbsp;string 
message;<BR>&nbsp;&nbsp;&nbsp;message += "decision variable(s) or affine 
expression(s) is/are not named";<BR>&nbsp;&nbsp;&nbsp;throw 
BmtException(message.c_str());<BR>&nbsp;&nbsp;}<BR>&nbsp;&nbsp;// create 
required MP_* objects as automatic variables<BR>&nbsp;&nbsp;MP_set_ptr 
abs_x_set(new MP_set(x.size()));<BR>&nbsp;&nbsp;MP_var_ptr abs_x_var(new 
MP_variable(*abs_x_set));<BR>&nbsp;&nbsp;MP_cnstr_ptr abs_x_linctr_a(new 
MP_constraint(*abs_x_set));<BR>&nbsp;&nbsp;MP_cnstr_ptr abs_x_linctr_b(new 
MP_constraint(*abs_x_set));</FONT></SPAN></DIV>
<DIV><FONT color=#0000ff size=2 face=Arial></FONT>&nbsp;</DIV>
<DIV><SPAN class=057384309-08112010><FONT color=#0000ff size=2 
face=Arial>&nbsp;&nbsp;// set-up names<BR>&nbsp;&nbsp;string abs_x_name(prefix + 
x.getName());<BR>&nbsp;&nbsp;abs_x_set-&gt;setName(abs_x_name + 
"_set");<BR>&nbsp;&nbsp;(*abs_x_var).setName(abs_x_name);<BR>&nbsp;&nbsp;abs_x_linctr_a-&gt;setName(abs_x_name 
+ "_cnstr_a");<BR>&nbsp;&nbsp;abs_x_linctr_b-&gt;setName(abs_x_name + 
"_cnstr_b");</FONT></SPAN></DIV>
<DIV><FONT color=#0000ff size=2 face=Arial></FONT>&nbsp;</DIV>
<DIV><SPAN class=057384309-08112010><FONT color=#0000ff size=2 
face=Arial>&nbsp;&nbsp;// set-up bounds and 
constraints<BR>&nbsp;&nbsp;(*abs_x_var).lowerLimit(*abs_x_set) = 
0.0;<BR>&nbsp;&nbsp;(*abs_x_linctr_a)(*abs_x_set) = +1.0*x(*abs_x_set) &lt;= 
(*abs_x_var)(*abs_x_set);<BR>&nbsp;&nbsp;(*abs_x_linctr_b)(*abs_x_set) = 
-1.0*x(*abs_x_set) &lt;= (*abs_x_var)(*abs_x_set);</FONT></SPAN></DIV>
<DIV><FONT color=#0000ff size=2 face=Arial></FONT>&nbsp;</DIV>
<DIV><SPAN class=057384309-08112010><FONT color=#0000ff size=2 
face=Arial>&nbsp;&nbsp;// add constraints to 
model<BR>&nbsp;&nbsp;lp.add(*abs_x_linctr_a);<BR>&nbsp;&nbsp;lp.add(*abs_x_linctr_b);</FONT></SPAN></DIV>
<DIV><FONT color=#0000ff size=2 face=Arial></FONT>&nbsp;</DIV>
<DIV><SPAN class=057384309-08112010><FONT color=#0000ff size=2 
face=Arial>&nbsp;&nbsp;// assign automatic variables to out 
parameters<BR>&nbsp;&nbsp;// in order to prevent destruction of MP_* 
objects.<BR>&nbsp;&nbsp;abs_x_set_ptr = abs_x_set;<BR>&nbsp;&nbsp;abs_x_var_ptr 

abs_x_var;<BR>&nbsp;&nbsp;abs_x_linctr.push_back(abs_x_linctr_a);<BR>&nbsp;&nbsp;abs_x_linctr.push_back(abs_x_linctr_b);</FONT></SPAN></DIV>
<DIV><FONT color=#0000ff size=2 face=Arial></FONT>&nbsp;</DIV>
<DIV><SPAN class=057384309-08112010><FONT color=#0000ff size=2 
face=Arial>&nbsp;&nbsp;MP_expr_ptr objective(new MP_expression(sum(*abs_x_set, 
weight(*abs_x_set)*(*abs_x_var)(*abs_x_set))));</FONT></SPAN></DIV>
<DIV><FONT color=#0000ff size=2 face=Arial></FONT>&nbsp;</DIV>
<DIV><SPAN class=057384309-08112010><FONT color=#0000ff size=2 
face=Arial>&nbsp;&nbsp;return objective;<BR>&nbsp;} else {<BR>&nbsp;&nbsp;return 
MP_expr_ptr();<BR>&nbsp;}<BR>}<BR></FONT></SPAN></DIV>
<DIV><SPAN class=057384309-08112010><FONT color=#0000ff size=2 face=Arial><FONT 
color=#0000ff size=2><FONT color=#0000ff size=2>
<P></FONT></FONT></FONT></SPAN><FONT size=2 face=Tahoma>-----Original 
Message-----<BR><B>From:</B> Christian Wolf [mailto:kalmar@uni-paderborn.de] 
<BR><B>Sent:</B> 06 November 2010 18:34<BR><B>To:</B> flopcpp@list.coin-or.org; 
Roth, Marc (RWE Trading)<BR><B>Subject:</B> Re: [FlopCpp] Using "symbolic" 
variable names.<BR><BR></FONT></P></DIV>
<BLOCKQUOTE style="MARGIN-RIGHT: 0px">Hello Marc,<BR><BR>Am 05.11.2010 17:55, 
  schrieb <A class=moz-txt-link-abbreviated 
  href="mailto:marc.roth@rwe.com:">marc.roth@rwe.com:</A> 
  <BLOCKQUOTE 
  cite=mid:E7FDCCA07104474A92CCEE0903653F0B0995A404@s080a0022.group.rwe.com 
  type="cite">
    <META name=Generator 
    content="MS Exchange Server version&#13;&#10;        6.5.7654.12"><!-- Converted from text/rtf format -->
    <P><FONT size=2 face=Arial>Hi,</FONT> </P>
    <P><FONT size=2 face=Arial>I am developing a toy problem in order to figure 
    out how FlopC++ has to be used. I consulted the example problems in the 
    examples section to get started but have a couple of questions:</FONT></P>
    <P><FONT size=2 face=Arial>1) Use of symbolic names and LP file output: I 
    would like to use the setName method on MP_variable, lets say, such 
    as</FONT> </P>
    <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT size=2 
    face=Arial>MP_model lp(new OsiCbcSolverInterface)&nbsp; ;</FONT> 
    <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT size=2 
    face=Arial>MP_set T(123);</FONT> 
    <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT size=2 
    face=Arial>MP_variable dispatch_period_volume(T);</FONT> 
    <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT size=2 
    face=Arial>x.setName("dp_volume_");</FONT> </P>
    <P><FONT size=2 face=Arial>Once the model has been set up, I write the 
    problem to a file, such as</FONT> </P>
    <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT size=2 
    face=Arial>lp.attach();&nbsp;&nbsp;&nbsp; 
    </FONT><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT size=2 
    face=Arial>lp.Solver-&gt;writeLp("c:\\temp\\bmt);</FONT> </P>
    <P><FONT size=2 face=Arial>What I expect to see in the file bmt.lp is that 
    the variable names are printed like dp_volume_1, dp_volume_2, …, 
    dp_volume_124, but what I get is only x1, …, x124. Am I doing something 
    wrong or is this feature not supported (in this case what is the 
    MP_variable::setNames() method for?).</FONT></P></BLOCKQUOTE>At the moment the 
  feature is not yet supported, but it will be in the near future, at least in 
  the stochastic branch of FlopC++. <BR><BR>
  <BLOCKQUOTE 
  cite=mid:E7FDCCA07104474A92CCEE0903653F0B0995A404@s080a0022.group.rwe.com 
  type="cite">
    <P><FONT size=2 face=Arial>2) In the objective function in question some of 
    the decision variables x are modelled by abs(x) (the absolute value of x). 
    Obviously this is not a linear construct, but can be modelled as:</FONT></P>
    <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT size=2 face=Arial>x 
    &lt;= abs_x</FONT> <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT 
    size=2 face=Arial>-1.0*x &lt;= abs_x</FONT> 
    <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT size=2 face=Arial>0 
    &lt;= abs_x</FONT> </P>
    <P><FONT size=2 face=Arial>Because I require various variables to be 
    modelled as abs(.) I would like to implement a function that;</FONT> 
    <BR><FONT size=2 face=Arial>A) creates the auxiliary variable(s) abs_x for 
    each such x,</FONT> <BR><FONT size=2 face=Arial>B) adds above 
    constraints/bounds to the model, and</FONT> <BR><FONT size=2 face=Arial>C) 
    returns a MP_expression that can be added to the objective function 
    expression in terms of the abs_x variables.</FONT> </P>
    <P><FONT size=2 face=Arial>I.e., I would like to delegate/encapsulate all 
    issues to model the absolute value of a decision variable to a 
    function.</FONT> </P>
    <P><FONT size=2 face=Arial>My initial approach, listed below, failed 
    miserably because of the issue of automatic variables and copy constructors, 
    etc., I guess boiling down to that FlopC++ elements are not "shallow" copied 
    and reference counted on the one had and that MP_variables are not added to 
    the model implicitly but only through their use in constraints and objective 
    function. What is the proper way to accomplish 
  this?</FONT></P></BLOCKQUOTE><BR>In my opinion this could work, if you work 
  with pointers instead of objects in your helper function. Create the 
  MP_constraints and MP_variables in the function with new, otherwise they 
  should be lost when the function goes out of scope. This is only a first 
  thought about the topic. I can look into it someday next week.<BR><BR>Hope 
  this helps,<BR>Christian<BR>
  <BLOCKQUOTE 
  cite=mid:E7FDCCA07104474A92CCEE0903653F0B0995A404@s080a0022.group.rwe.com 
  type="cite"><BR>
    <P><FONT size=2 face=Arial>static MP_expression</FONT> <BR><FONT size=2 
    face=Arial>lp_objective_absolute(</FONT> 
    <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT size=2 
    face=Arial>MP_variable&amp; x,</FONT> 
    <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT size=2 
    face=Arial>MP_data&amp; weight,</FONT> 
    <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT size=2 
    face=Arial>MP_model&amp; lp/*=MP_model::getDefaultModel()*/,</FONT> 
    <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT size=2 face=Arial>const 
    string&amp; prefix/*="abs_"*/) {</FONT> 
    <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT size=2 face=Arial>if 
    (x.size() &gt; 0) {</FONT> <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT size=2 face=Arial>if 
    (x.getName().empty()) {</FONT> 
    <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT size=2 face=Arial>string 
    message;</FONT> <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT size=2 face=Arial>message 
    += "decision variable(s) or affine expression(s) is/are not named";</FONT> 
    <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT size=2 face=Arial>throw 
    BmtException(message.c_str());</FONT> 
    <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT size=2 face=Arial>}</FONT> 
    <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT size=2 face=Arial>MP_set 
    D(x.size());</FONT> <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT size=2 
    face=Arial>MP_variable abs_x(D);</FONT> 
    <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT size=2 
    face=Arial>abs_x.setName(prefix + x.getName());</FONT> 
    <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT size=2 
    face=Arial>abs_x.lowerLimit(D) = 0.0;</FONT> 
    <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT size=2 
    face=Arial>MP_constraint abs_x_linctr_a(D);</FONT> 
    <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT size=2 
    face=Arial>MP_constraint abs_x_linctr_b(D);</FONT> 
    <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT size=2 
    face=Arial>abs_x_linctr_a(D) = x(D) &lt;= abs_x(D);</FONT> 
    <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT size=2 
    face=Arial>abs_x_linctr_b(D) = -1.0*x(D) &lt;= abs_x(D);</FONT> </P>
    <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT size=2 
    face=Arial>lp.add(abs_x_linctr_a);</FONT> 
    <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT size=2 
    face=Arial>lp.add(abs_x_linctr_b);</FONT> </P>
    <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT size=2 face=Arial>return 
    sum(D, weight(D)*abs_x(D));</FONT> 
    <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT size=2 face=Arial>} 
    else {</FONT> <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT size=2 face=Arial>return 
    MP_expression();</FONT> <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT 
    size=2 face=Arial>}</FONT> <BR><FONT size=2 face=Arial>}</FONT> </P>
    <P><FONT size=2 face=Arial>And would be used such as</FONT> </P>
    <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT size=2 
    face=Arial>MP_expression objective;</FONT> 
    <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT size=2 
    face=Arial>MP_data UNIT_WEIGHT_X(T);</FONT> 
    <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT size=2 
    face=Arial>UNIT_WEIGHT_X(T) = 1.0;</FONT> 
    <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT size=2 
    face=Arial>objective = lp_objective_absolute(dispatch_period_volume, 
    UNIT_WEIGHT_X, lp);</FONT> </P>
    <P><FONT size=2 face=Arial>Best Regards/Mit freundlichen Grüßen</FONT> 
    <BR><B><FONT size=2 face=Arial>Marc Roth</FONT></B><BR><FONT size=2 
    face=Arial>External Consultant,<BR>Structuring &amp; Valuation<BR>Tel.: +41 
    55 534 44 82<BR>Mob: +44 7795 276 136<BR>Fax: +41 55 534 44 82<BR></FONT><A 
    href="mailto:marc.roth@rwe.com" moz-do-not-send="true"><U><FONT 
    color=#0000ff size=2 
    face=Arial>mailto:marc.roth@rwe.com</FONT></U></A><BR><FONT size=2 
    face=Arial>yahoo:nerdyanorak</FONT> <BR><FONT size=1 face=Arial>RWE Supply 
    &amp; Trading GmbH<BR>London Branch<BR>130 Wood Street<BR>London EC2V 
    6DL<BR>United Kingdom<BR><BR>Advisory Board:<BR>Dr. Ulrich Jobs 
    (Chairman)</FONT> </P>
    <P><FONT size=1 face=Arial>Board of Directors:<BR>Stefan Judisch 
    (CEO)<BR>Dr. Bernhard Günther<BR>Dr. Peter Kreuzberg<BR>Richard Lewis</FONT> 
    <BR><FONT size=1 face=Arial>Alan Robinson</FONT> </P>
    <P><FONT size=1 face=Arial>Head Office: Essen, Germany </FONT><BR><FONT 
    size=1 face=Arial>Registered at the County Court of Essen<BR>Commercial 
    Registry No.: HRB 14327<BR>Sales Tax Identification No. DE 8130 22 
    070</FONT> </P>
    <P><BR></P><PRE wrap=""><FIELDSET class=mimeAttachmentHeader></FIELDSET>
_______________________________________________
FlopCpp mailing list
<A class=moz-txt-link-abbreviated href="mailto:FlopCpp@list.coin-or.org">FlopCpp@list.coin-or.org</A>
<A class=moz-txt-link-freetext href="http://list.coin-or.org/mailman/listinfo/flopcpp">http://list.coin-or.org/mailman/listinfo/flopcpp</A>
</PRE></BLOCKQUOTE><BR></BLOCKQUOTE></BODY></HTML>

<p>

<br>
</p>