[Ipopt] Where or how can I obtain the libhsl.dll?

Marcel Roelofs Marcel.Roelofs at aimms.com
Mon Jan 4 14:59:39 EST 2010

Hi Lewis,

First of all, the license of HSL does not allow re-distribution of HSL
in binary form, hence the Windows dll of IPOPT only can legally contain
the MUMPS solver. Therefore, for adding HSL support you're
(unfortunately) left on your own. Note that even if you compile
libhsl.dll on your own you're not legally allowed to redistribute it.

As for your options to get HSL compiled into a dll there are a number of

- Use the mingw or mingw64 (in case you're interested in a 64-bit dll)
compiler. Unless you're already using mingw/mingw64 to compile your
C/C++ sources, this option is not really for the faint-of-heart. You
have to set up mingw, get the coin-or configure scripts to work for you
(took me a lot of time to get that right, especially when using
mingw64), and then you're set to compile the dll. 

- If you have Visual Studio, you may use f2c to generate C sources from
the fortran code of HSL, and use that to generate the dll. In this
option, you also need to compile libf2c which you need to link the
generated C sources into the dll. The Visual Studio project included in
the Ipopt source distribution called "v8" contains a project to generate
a library to produce a HSL library using the f2c generated sources,
which you can easily adapt to produce a dll (if you know what you're
doing :)

- If you have Visual Studio, you may also opt to request the 1-month
trial of the Intel Visual Fortran compiler. After you have installed it,
you can use the Visual Studio project called "v8-ifort" from the Ipopt
source distribution to create the HSL dll directly from the Fortran
sources. The "v8-ifort" Visual Studio solution is the collection of
Visual Studio projects that I created to compile and link the Windows
dll of IPOPT that you're using (mingw(64) didn't fly as GCC generated
dll uses a C++ ABI that's not compatible with MSVC C++ ABI). To compile
the HSL dll using this option, simply copy the HSL Fortran sources into
ThirdParty\HSL directory and build the libhsl project in the v8-ifort
solution. This is most definitively the least involved option (apart
from the 1Gb download :) 

Hope this information will get you on your way.


Marcel Roelofs
Paragon Decision Technology
Developer of AIMMS

On Mon, Jan 4, 2010 at 1:17 AM, Lewis I <lewis369lewis at yahoo.com> wrote:
> Hi,
> I am using IPOPT (on windows C++ )which i downloaded the precompiled
binaries (dll) from COIN Binary Distribution Project. 
> but I found that this package are using the default linear solver (
> When I change the options of linear solver to MA27 as the
documentation said, the following error appeared :
> >>Exception message: Selected linear solver MA27 not available.
> >>Tried to obtain MA27 from shared library "libhsl.dll", but the
following error occured:
> >>Windows error while loading dynamic library libhsl.dll
> I hv visited the HSL website (http://www.cse.clrc.ac.uk/nag/hsl/
<http://www.cse.clrc.ac.uk/nag/hsl/> ).
> But it only provides the Fortran code version.
> Where or how can I obtain the libhsl.dll?
> Do anyone have any experience on implement ipopt in windows
> or do anyone have a copy of libhsl.dll?
> Thank you so much.
> Regards,
> Lewis

CONFIDENTIALITY: This e-mail and any attachments are confidential and may be privileged. If you are not a named recipient, please notify the sender immediately and do not disclose the contents to another person, use it for any purpose or store or copy the information in any medium.

More information about the Ipopt mailing list