<HTML xmlns="http://www.w3.org/TR/REC-html40" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word"><head><META content="text/html; charset=utf-8" http-equiv="Content-Type">
<STYLE><!-- /* Style Definitions */ p.ad39ecd4-f639-40e2-947f-e328732d2a96, li.ad39ecd4-f639-40e2-947f-e328732d2a96, div.ad39ecd4-f639-40e2-947f-e328732d2a96, table.ad39ecd4-f639-40e2-947f-e328732d2a96Table        {margin:0cm; margin-bottom:.0001pt;}div.Section1 {page:Section1;}--></STYLE>
<meta content="text/html; charset=utf-8" http-equiv=Content-Type>
<meta content="Microsoft Word 11 (filtered medium)" name=Generator>
<style>
<!--
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman";}
a:link, span.MsoHyperlink
        {color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:Arial;
        color:windowtext;}
@page Section1
        {size:612.0pt 792.0pt;
        margin:72.0pt 90.0pt 72.0pt 90.0pt;}
div.Section1
        {page:Section1;}
-->
</style>
<META content="text/html; charset=utf-8" http-equiv="Content-Type">
<STYLE><!-- /* Style Definitions */ p.ad39ecd4-f639-40e2-947f-e328732d2a96, li.ad39ecd4-f639-40e2-947f-e328732d2a96, div.ad39ecd4-f639-40e2-947f-e328732d2a96, table.ad39ecd4-f639-40e2-947f-e328732d2a96Table        {margin:0cm; margin-bottom:.0001pt;}div.Section1 {page:Section1;}--></STYLE>
</head><BODY>
<P CLASS="ad39ecd4-f639-40e2-947f-e328732d2a96">
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" CLASS="ad39ecd4-f639-40e2-947f-e328732d2a96Table" STYLE="BORDER-RIGHT: #dfe9f0 1px solid; BORDER-TOP: #dfe9f0 1px solid; BORDER-LEFT: #dfe9f0 1px solid; WIDTH: 100%; BORDER-BOTTOM: #dfe9f0 1px solid; FONT-FAMILY: ; BORDER-COLLAPSE: collapse" WIDTH="100%">
<TBODY>
<TR>
<TD>
<P CLASS="ad39ecd4-f639-40e2-947f-e328732d2a96"><IMG ALIGN="left" ALT BORDER="0" HSPACE="0" SRC="cid:image8757f7.gif@4c29e002.789e442d"></P></TD>
<TD WIDTH="50%">
<P CLASS="ad39ecd4-f639-40e2-947f-e328732d2a96"></P></TD>
<TD>
<P ALIGN="right" CLASS="ad39ecd4-f639-40e2-947f-e328732d2a96"><IMG ALT BORDER="0" HSPACE="0" SRC="cid:imageb5bd91.gif@60191f7a.f9894ee5"></P></TD></TR>
<TR STYLE="PADDING-LEFT: 5px">
<TD COLSPAN="3">
<P CLASS="ad39ecd4-f639-40e2-947f-e328732d2a96">
<div class=Section1>
<p class=MsoNormal><font face=Arial size=2><span style='font-size:10.0pt;
font-family:Arial'>This is my first entry in this mailing list, so first of all
I would like to take the opportunity to thank the people who have developed this
terrific large-scale optimizer IPOPT and made it available as open source.<o:p></o:p></span></font></p>
<p class=MsoNormal><font face=Arial size=2><span style='font-size:10.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font face=Arial size=2><span style='font-size:10.0pt;
font-family:Arial'>I thought I should report my findings when compiling
Ipopt-3.5.4 on Windows XP using MSYS 1.0.10 and MinGW (GCC version 4.3.0). The
linear solver is MUMPS, version 4.8.1.<o:p></o:p></span></font></p>
<p class=MsoNormal><font face=Arial size=2><span style='font-size:10.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font face=Arial size=2><span style='font-size:10.0pt;
font-family:Arial'>When compiling IpTripletToCSRConverter.cpp in the Algorithm/LinearSolvers
directory, I get the following error message:<o:p></o:p></span></font></p>
<p class=MsoNormal><font face=Arial size=2><span style='font-size:10.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font face="Courier New" size=2><span style='font-size:10.0pt;
font-family:"Courier New"'>IpTripletToCSRConverter.cpp:63:
instantiated from here<o:p></o:p></span></font></p>
<p class=MsoNormal><font face="Courier New" size=2><span style='font-size:10.0pt;
font-family:"Courier New"'>IpTripletToCSRConverter.hpp:105: error: 'void
Ipopt::TripletToCSRConverter::TripletEntry::operator=(const
Ipopt::TripletToCSRConverter::TripletEntry&)' is private<o:p></o:p></span></font></p>
<p class=MsoNormal><font face=Arial size=2><span style='font-size:10.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font face=Arial size=2><span style='font-size:10.0pt;
font-family:Arial'>This is the failing code line in IpTripletToCSRConverter.cpp:<o:p></o:p></span></font></p>
<p class=MsoNormal><font face=Arial size=2><span style='font-size:10.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoNormal style='text-autospace:none'><font face="Courier New" size=2><span style='font-size:10.0pt;font-family:"Courier New"'>
std::list<TripletEntry> entry_list(nonzeros);<o:p></o:p></span></font></p>
<p class=MsoNormal><font face=Arial size=2><span style='font-size:10.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font face=Arial size=2><span style='font-size:10.0pt;
font-family:Arial'>The TripletEntry assignment operator is declared private in IpTripletToCSRConverter.hpp.
I notice in the code there is a public dummy copy constructor for the inner
class TripletEntry, and I assume that this copy constructor is defined to make
the TripletEntry list construction possible. But it seems like the std::list
implementation in GCC 4.3.0 uses the assignment operator, hence the compilation
failure. (I have not verified this, but it seems plausible to me.)<o:p></o:p></span></font></p>
<p class=MsoNormal><font face=Arial size=2><span style='font-size:10.0pt;
font-family:Arial'>From what I can tell, the TripletEntry class is local to the
TripletToCSRConverter class, and the data members in TripletEntry are simple
integers (typedef int Index). Then, would it not be OK to let the compiler
implicitly define both the copy constructor and the assignment operator? That
is, remove the definition “TripletEntry(const TripletEntry&)”
and the declaration “void operator=(const TripletEntry&)” from
the TripletEntry class? With these modifications, the code compiles flawlessly,
and the optimizer seems to run as intended.<o:p></o:p></span></font></p>
<p class=MsoNormal><font face=Arial size=2><span style='font-size:10.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font face=Arial size=2><span style='font-size:10.0pt;
font-family:Arial'>Another issue: when trying to build the executable in examples/ScalableProblems,
I got the following error message:<o:p></o:p></span></font></p>
<p class=MsoNormal><font face=Arial size=2><span style='font-size:10.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font face="Courier New" size=2><span style='font-size:10.0pt;
font-family:"Courier New"'>$ make<o:p></o:p></span></font></p>
<p class=MsoNormal><font face="Courier New" size=2><span style='font-size:10.0pt;
font-family:"Courier New"'>g++ -O3 -fomit-frame-pointer -pipe -DNDEBUG
-pedantic-errors -Wimplicit -Wparentheses -Wreturn-type -Wcast-qual -Wall
-Wpointer-arith -Wwrite-strings -Wconversion -Wno-unknown-pragmas
-I`echo /c/GNU/Ipopt-3.5.4/include/coin` -c -o solve_problem.o `test -f
'solve_problem.cpp' || echo './'`solve_problem.cpp<o:p></o:p></span></font></p>
<p class=MsoNormal><font face="Courier New" size=2><span style='font-size:10.0pt;
font-family:"Courier New"'>solve_problem.cpp: In function 'int main(int,
char**)':<o:p></o:p></span></font></p>
<p class=MsoNormal><font face="Courier New" size=2><span style='font-size:10.0pt;
font-family:"Courier New"'>solve_problem.cpp:140: error: 'strcmp' was not
declared in this scope<o:p></o:p></span></font></p>
<p class=MsoNormal><font face="Courier New" size=2><span style='font-size:10.0pt;
font-family:"Courier New"'>make: *** [solve_problem.o] Error 1<o:p></o:p></span></font></p>
<p class=MsoNormal><font face=Arial size=2><span style='font-size:10.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font face=Arial size=2><span style='font-size:10.0pt;
font-family:Arial'>The function ‘strcmp’ is really a member of
cstring/string.h, which is not explicitly included in ‘solve_problem.cpp’.
I think that most compilers implicitly include cstring/string.h when cstdlib/stdlib.h
is included, and therefore this error normally does not show up. However, to be
on the safe side with all compilers, cstring/string.h needs to be explicitly
included.<o:p></o:p></span></font></p>
<p class=MsoNormal><font face=Arial size=2><span style='font-size:10.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font face=Arial size=2><span style='font-size:10.0pt;
font-family:Arial'>To successfully compile, I simply added the following code
to ‘solve_problem.cpp’:<o:p></o:p></span></font></p>
<p class=MsoNormal style='text-autospace:none'><font face="Courier New" size=2><span style='font-size:10.0pt;font-family:"Courier New"'><o:p> </o:p></span></font></p>
<p class=MsoNormal style='text-autospace:none'><font color=blue face="Courier New" size=2><span style='font-size:10.0pt;font-family:"Courier New";
color:blue'>#ifdef</span></font><font face="Courier New" size=2><span style='font-size:10.0pt;font-family:"Courier New"'> HAVE_CSTRING<o:p></o:p></span></font></p>
<p class=MsoNormal style='text-autospace:none'><font color=blue face="Courier New" size=2><span style='font-size:10.0pt;font-family:"Courier New";
color:blue'># include</span></font><font face="Courier New" size=2><span style='font-size:10.0pt;font-family:"Courier New"'> <font color="#a31515"><span style='color:#A31515'><cstring><o:p></o:p></span></font></span></font></p>
<p class=MsoNormal style='text-autospace:none'><font color=blue face="Courier New" size=2><span style='font-size:10.0pt;font-family:"Courier New";
color:blue'>#else<o:p></o:p></span></font></p>
<p class=MsoNormal style='text-autospace:none'><font color=blue face="Courier New" size=2><span style='font-size:10.0pt;font-family:"Courier New";
color:blue'># ifdef</span></font><font face="Courier New" size=2><span style='font-size:10.0pt;font-family:"Courier New"'> HAVE_STRING_H<o:p></o:p></span></font></p>
<p class=MsoNormal style='text-autospace:none'><font color=blue face="Courier New" size=2><span style='font-size:10.0pt;font-family:"Courier New";
color:blue'># include</span></font><font face="Courier New" size=2><span style='font-size:10.0pt;font-family:"Courier New"'> <font color="#a31515"><span style='color:#A31515'><string.h><o:p></o:p></span></font></span></font></p>
<p class=MsoNormal style='text-autospace:none'><font color=blue face="Courier New" size=2><span style='font-size:10.0pt;font-family:"Courier New";
color:blue'># else<o:p></o:p></span></font></p>
<p class=MsoNormal style='text-autospace:none'><font color=blue face="Courier New" size=2><span style='font-size:10.0pt;font-family:"Courier New";
color:blue'># error</span></font><font face="Courier New" size=2><span style='font-size:10.0pt;font-family:"Courier New"'> "don't have header
file for string"<o:p></o:p></span></font></p>
<p class=MsoNormal style='text-autospace:none'><font color=blue face="Courier New" size=2><span style='font-size:10.0pt;font-family:"Courier New";
color:blue'># endif<o:p></o:p></span></font></p>
<p class=MsoNormal style='text-autospace:none'><font color=blue face="Courier New" size=2><span style='font-size:10.0pt;font-family:"Courier New";
color:blue'>#endif<o:p></o:p></span></font></p>
<p class=MsoNormal><font face=Arial size=2><span style='font-size:10.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font face=Arial size=2><span style='font-size:10.0pt;
font-family:Arial'>I hope these findings can be of help to other users of
IPOPT. Also, if you agree with my suggested modifications, I would of course be
happy to see my suggestions implemented in the regular IPOPT code base.<o:p></o:p></span></font></p>
</div>
</P></TD></TR>
<TR>
<TD COLSPAN="3">
<P CLASS="ad39ecd4-f639-40e2-947f-e328732d2a96">
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" CLASS="ad39ecd4-f639-40e2-947f-e328732d2a96Table" STYLE="WIDTH: 100%; BORDER-COLLAPSE: collapse" WIDTH="100%">
<TBODY>
<TR>
<TD COLSPAN="2" STYLE="PADDING-LEFT: 5px">
<P CLASS="ad39ecd4-f639-40e2-947f-e328732d2a96"><FONT FACE="Arial" SIZE="2"><STRONG>Anders Gustafsson</STRONG></FONT></P></TD></TR>
<TR>
<TD COLSPAN="2" STYLE="PADDING-LEFT: 5px">
<P CLASS="ad39ecd4-f639-40e2-947f-e328732d2a96"><FONT FACE="Arial" SIZE="2">Physics Support Coordinator</FONT></P></TD></TR>
<TR>
<TD COLSPAN="2" STYLE="PADDING-LEFT: 5px">
<P CLASS="ad39ecd4-f639-40e2-947f-e328732d2a96"><FONT FACE="Arial" SIZE="2">Nucletron Scandinavia AB</FONT></P></TD></TR>
<TR>
<TD STYLE="PADDING-LEFT: 5px" WIDTH="10%">
<P CLASS="ad39ecd4-f639-40e2-947f-e328732d2a96"><FONT FACE="Arial" SIZE="2">Office:</FONT></P></TD>
<TD>
<P CLASS="ad39ecd4-f639-40e2-947f-e328732d2a96"><FONT FACE="Arial" SIZE="2">+46 18 565073</FONT></P></TD></TR>
<TR>
<TD STYLE="PADDING-LEFT: 5px">
<P CLASS="ad39ecd4-f639-40e2-947f-e328732d2a96"><FONT FACE="Arial" SIZE="2">Mobile:</FONT></P></TD>
<TD>
<P CLASS="ad39ecd4-f639-40e2-947f-e328732d2a96"><FONT FACE="Arial" SIZE="2">+46 70 579 50 73</FONT></P></TD></TR>
<TR>
<TD COLSPAN="2" STYLE="PADDING-LEFT: 5px">
<P CLASS="ad39ecd4-f639-40e2-947f-e328732d2a96"><FONT FACE="Arial" SIZE="2"><a href="mailto:anders.gustafsson@se.nucletron.com">anders.gustafsson@se.nucletron.com</a></FONT></P></TD></TR>
<TR>
<TD COLSPAN="2" HEIGHT="50" STYLE="PADDING-LEFT: 5px" VALIGN="top"><FONT FACE="Arial" SIZE="2">Visit our website: </FONT><A HREF="http://www.nucletron.com/"><FONT FACE="Arial" SIZE="2">www.nucletron.com</FONT></A></TD></TR></TBODY></TABLE></P></TD></TR>
<TR></TR>
<TR>
<TD COLSPAN="3">
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" CLASS="ad39ecd4-f639-40e2-947f-e328732d2a96Table" STYLE="WIDTH: 100%; BORDER-COLLAPSE: collapse" WIDTH="100%">
<TBODY>
<TR>
<TD>
<P CLASS="ad39ecd4-f639-40e2-947f-e328732d2a96"><IMG ALIGN="left" ALT BORDER="0" HSPACE="0" SRC="cid:image92ea18.gif@f188ec0f.f373481f"></P></TD>
<TD STYLE="PADDING-RIGHT: 10px; VERTICAL-ALIGN: bottom" WIDTH="100%">
<HR COLOR="gray" HR="HR" SIZE="1">
<P STYLE="FONT-SIZE: 6pt; MARGIN: 0cm 0cm 0pt; COLOR: gray; FONT-FAMILY: arial"><SPAN>This e-mail and any attachment sent with it are intended exclusively for the addressee(s), and may not be passed on to, or made available for use by any person other than the addressee(s). Nucletron Scandinavia AB rules out any and every liability resulting from any electronic transmission.</SPAN></P>
<HR COLOR="gray" HR="HR" SIZE="1">
</TD></TR></TBODY></TABLE></TD></TR>
<P></P></TBODY></TABLE></P>
<P>
<P></P>
<P> </P>
<P></P>
<P></P>
<P></P>
<P></P></P></BODY></HTML>