Issue 5: undefined symbol: dsyev_
Status:  Invalid
Owner: ----
Closed:  Aug 2009
Reported by nils...@googlemail.com, Feb 21, 2009
What steps will reproduce the problem?
1. Install Ipopt from source.
svn co https://projects.coin-or.org/svn/Ipopt/trunk CoinIpopt
./configure
make
make test
make install
2. Install pyipopt from source.
svn checkout http://pyipopt.googlecode.com/svn/trunk/ pyipopt-read-only
make pyipopt
make install
3. Run the test example shipped with pyipopt.
python -i example.py
Traceback (most recent call last):
  File "example.py", line 6, in <module>
    import pyipopt
ImportError: /home/nwagner/svn/CoinIpopt/lib/libipopt.so.0: undefined
symbol: dsyev_
nm /home/nwagner/svn/CoinIpopt/lib/libipopt.so.0 | grep dsyev
                 U dsyev_


If I add -llapack -lblas to the line

LDFLAGS = -L/home/nwagner/svn/CoinIpopt/lib -lipopt -llapack -lblas
-lgfortran -lm

in the makefile it works fine for me.

What is the expected output? 

python -i example.py                                                
[PyIPOPT] Ipopt will use Hessian approximation.                           
                                     
[PyIPOPT] nele_hess is 10                                                 
                                     
example.py:110: DeprecationWarning: PyArray_FromDims: use
PyArray_SimpleNew.                                    
  x, zl, zu, obj = nlp.solve(x0)                                          
                                     
example.py:110: DeprecationWarning: PyArray_FromDimsAndDataAndDescr: use
PyArray_NewFromDescr.                  
  x, zl, zu, obj = nlp.solve(x0)                                          
                                     

******************************************************************************
This program contains Ipopt, a library for large-scale nonlinear optimization.
 Ipopt is released as open source code under the Common Public License (CPL). 
         For more information visit http://projects.coin-or.org/Ipopt         
******************************************************************************

NOTE: You are using Ipopt by default with the MUMPS linear solver.
      Other linear solvers might be more efficient (see Ipopt documentation).


This is Ipopt version 3.5trunk, running with linear solver mumps.

Number of nonzeros in equality constraint Jacobian...:        4
Number of nonzeros in inequality constraint Jacobian.:        4
Number of nonzeros in Lagrangian Hessian.............:        0

Total number of variables............................:        4
                     variables with only lower bounds:        0
                variables with lower and upper bounds:        4
                     variables with only upper bounds:        0
Total number of equality constraints.................:        1
Total number of inequality constraints...............:        1
        inequality constraints with only lower bounds:        1
   inequality constraints with lower and upper bounds:        0
        inequality constraints with only upper bounds:        0

iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du
alpha_pr  ls
   0  1.6109693e+01 1.12e+01 5.28e-01   0.0 0.00e+00    -  0.00e+00
0.00e+00   0
   1  1.7420709e+01 8.40e-01 2.40e+01  -0.3 8.13e-01    -  3.20e-01
1.00e+00f  1
   2  1.7120453e+01 2.14e-01 2.00e-01  -0.6 1.02e+00    -  9.97e-01
1.00e+00h  1
   3  1.6979032e+01 2.15e-01 8.49e-02  -1.6 1.18e-01    -  9.72e-01
1.00e+00h  1
   4  1.6972554e+01 7.81e-02 1.20e-02  -3.2 8.01e-02    -  1.00e+00
1.00e+00h  1
   5  1.7013661e+01 6.94e-04 9.50e-03  -4.9 1.00e-02    -  1.00e+00
1.00e+00h  1
   6  1.7014018e+01 1.96e-06 3.49e-04  -6.1 1.09e-03    -  1.00e+00
1.00e+00h  1
   7  1.7014017e+01 1.47e-09 2.15e-07  -8.2 3.02e-05    -  1.00e+00
1.00e+00h  1
   8  1.7014017e+01 0.00e+00 1.69e-09 -11.0 1.17e-08    -  1.00e+00
1.00e+00h  1

Number of Iterations....: 8

                                   (scaled)                 (unscaled)
Objective...............:   1.7014017140224176e+01    1.7014017140224176e+01
Dual infeasibility......:   1.6853158598871439e-09    1.6853158598871439e-09
Constraint violation....:   0.0000000000000000e+00    0.0000000000000000e+00
Complementarity.........:   1.0002952000760553e-11    1.0002952000760553e-11
Overall NLP error.......:   1.6853158598871439e-09    1.6853158598871439e-09


Number of objective function evaluations             = 9
Number of objective gradient evaluations             = 9
Number of equality constraint evaluations            = 9
Number of inequality constraint evaluations          = 9
Number of equality constraint Jacobian evaluations   = 9
Number of inequality constraint Jacobian evaluations = 9
Number of Lagrangian Hessian evaluations             = 0
Total CPU secs in IPOPT (w/o function evaluations)   =      0.008
Total CPU secs in NLP function evaluations           =      0.004

EXIT: Optimal Solution Found.
Problem solved
Solution of the primal variables, x
[ 1.          4.74299964  3.82114998  1.37940829]
Solution of the bound multipliers, z_L and z_U
[  1.08787121e+00   2.67165388e-12   3.54465533e-12   2.63564701e-11] [ 
2.49999763e-12   3.89104702e-11   8.48283408e-12   2.76198339e-12]
Objective value
f(x*) = 17.0140171402


What do you see instead?


What version of the product are you using? On what operating system?

svn versions on opensuse11.1  x86_64.

Please provide any additional information below.

How can I switch from MUMPS to another linear solver ?


May 1, 2009
Project Member #1 xu.mathena
Hi,

pyipopt is just an interface, I didn't touch any internal thing of ipopt. So I don't
know how ipopt defines those symbols/calls third-party libraries. So I don't know how
to switch from numps to other solvers. Maybe you can go to ipopt mailing list for
more information. 
Aug 25, 2009
Project Member #2 xu.mathena
(No comment was entered for this change.)
Status: Invalid