--- Ipopt-3.10.2/Ipopt/src/LinAlg/IpBlas.cpp 2010-12-21 22:34:47.000000000 +0100 +++ Ipopt-3.10.2-ok/Ipopt/src/LinAlg/IpBlas.cpp 2012-03-09 21:20:39.000000000 +0100 @@ -57,16 +57,23 @@ int transa_len, int diag_len); } + namespace Ipopt { #ifndef HAVE_CBLAS +#define ffassert(i) if(!i) abort(); /* Interface to FORTRAN routine DDOT. */ Number IpBlasDdot(Index size, const Number *x, Index incX, const Number *y, Index incY) { ipfint n=size, INCX=incX, INCY=incY; - - return F77_FUNC(ddot,DDOT)(&n, x, &INCX, y, &INCY); + + Number s=0; + if( incX && incY ) s= F77_FUNC(ddot,DDOT)(&n, x, &INCX, y, &INCY) ; + else + for (int i=0,ix=0,iy=0; i