0

I need to build a standalone Windows-based software, using the Fortran and or C/C ++. I expect users to download the program, install it and use it generically in a Windows environment.

Main aim of the software is to perform complex nonlinear optimization, and possibly constrained optimization. I expect users to interact with the program using a highly interactive graphics user interface. Practically, depicting results user high-end graphics is a necessity.

I want to know whether it is possible to achieve these using freely available libraries for Fortran/C/C++.

ThinkingStiff
  • 64,767
  • 30
  • 146
  • 239
Rehena
  • 1
  • 2
    Do you mean **complex** as in _complex numbers_, or _difficult_? – Anders Gustafsson Sep 13 '12 at 06:39
  • 3
    There are many freely available 2D and 3D plotting libraries as well as many optimisation engines. Mixing Fortran for the computational stuff and C/C++ for the GUI is entirely possible. Building a self-contained distributable is also possible. – Hristo Iliev Sep 13 '12 at 09:05

2 Answers2

2

Many, if not most, of the (freely available) open source optimization codes are written in Fortran and or C/C++. For a quick overview, please have a look at Hans Mittelmann's Decision Tree for Optimization Software.

There is also the COIN-OR Foundation, which hosts many optimization codes (most written in C/C++, I believe) and support tools. You can find the list of available projects here.

If by complex optimization you refer to complex numbers, please have a look at this SO question for further elaboration on how to formulate optimization problems involving complex numbers.

Community
  • 1
  • 1
Anders Gustafsson
  • 15,837
  • 8
  • 56
  • 114
  • Hi Anders, many thanks for your reply. I would also like to know whether it is possible to call them independently in my software which I am going to build. Also complex optimization is in nature but not for complex numbers. Thanks once again. Regards, rehena – Rehena Sep 13 '12 at 09:35
  • Not sure what you mean by calling them independently? The codes usually expose different API:s, so you will most certainly need to write wrapper methods to be able to call them all using the same interface. – Anders Gustafsson Sep 13 '12 at 18:34
0

You can use Fortran to write routines for computation and transform everything into a dll. The application can be written in C++ (for example GUI in Qt). For visualization there are good libraries in C++, like VTK, otherwise you can use OpenGl. If you want numerical libraries additionally, you can use LAPACK for example.

ISTB
  • 1,799
  • 3
  • 22
  • 31