[SciPy-user] Scipy optimize fmin_l_bfgs_b gives me an obscure error

Nils Wagner nwagner at iam.uni-stuttgart.de
Thu Jul 10 02:10:59 EDT 2008


On Wed, 9 Jul 2008 19:17:58 -0400
  "Isaul Vargas" <isaulv at gmail.com> wrote:
> Here is how my function looks like:
> 
> xt =  scipy.optimize.fmin_l_bfgs_b(obj_grad_func, xcur, 
>args =
> (b,h,Beta,R,wR,wh,muh, alpha_b, beta_b, BN, sp), maxfun 
>= 1000)
> 
> 
> the args are mostly arrays except for BN and SP which 
>are dicts that contain
> various flags.
> 
> In the debugger, I tried the following:
> xcur is a 1,3 array with the values 1,1,0.
> I check the flags of xcur and I see it is not fortran 
>contiguous.
> I do a copy: xcur2 = xcur.copy('f')
> and now I get this error message:
> *** error: failed in converting 10th argument `wa' of 
>_lbfgsb.setulb to
> C/Fortra
> n array
>
You can find the corresponding file (lbfgsb.pyf) in

scipy/scipy/optimize/lbfgsb


!    -*- f90 -*-
python module _lbfgsb ! in
     interface  ! in :_lbfgsb
         subroutine 
setulb(n,m,x,l,u,nbd,f,g,factr,pgtol,wa,iwa,task,iprint,csave,lsave,isave,dsave) 
! in :lbfsgb:routines.f
             integer 
intent(in),optional,check(len(x)>=n),depend(x) :: n=len(x)
             integer intent(in) :: m
             double precision dimension(n),intent(inout) 
:: x
             double precision 
dimension(n),depend(n),intent(in) :: l
             double precision 
dimension(n),depend(n),intent(in) :: u
             integer dimension(n),depend(n),intent(in) :: 
nbd
             double precision intent(inout) :: f
             double precision 
dimension(n),depend(n),intent(inout) :: g
             double precision intent(in) :: factr
             double precision intent(in) :: pgtol
             double precision 
dimension(2*m*n+4*n+12*m*m+12*m),depend(n,m),intent(inout) 
:: wa
             integer dimension(3 * 
n),depend(n),intent(inout) :: iwa
             character*60 intent(inout) :: task
             integer intent(in) :: iprint
             character*60 intent(inout) :: csave
             logical dimension(4),intent(inout) :: lsave
             integer dimension(44),intent(inout) :: isave
             double precision dimension(29),intent(inout) 
:: dsave
         end subroutine setulb
     end interface
end python module _lbfgsb

Nils

> There is no variable 'wa' in any of my functions, so I 
>am not sure why this
> failing.
> 
> Also, how do I setup the bounds, I am not clear on how 
>to set it. I have a
> list of upper bounds (an array of 3 values) and a list 
>of lower bounds Not
> sure how to set them.
  



More information about the SciPy-User mailing list