# locJ are the column pointers, and J contains the matrix values. # # indJ = np.array([0,2,0,1,2,0,3,1,3],int) # locJ = np.array([0,2,5,7,9],int) # J = np.array([100.0, 2.0, 100.0, 100.0, 4.0, 1.0, 3.0, 1.0, 5.0],float) bl = -inf*np.ones(n+m) bu = inf*np.ones(n+m) bl[2] = 0.0 bl[3] = 0.0 bl[4] = 2.0 bu[4] = 2.0 bl[5] = 4.0 bu[5] = 4.0 bl[6] = 0.0 iObj = 4 snoptb.setOption('Verbose',True) names = np.array(['12345678']*(n+m)) snoptb.snoptb(name=' sntoyb',m=m,n=n,nnCon=nnCon,nnObj=nnObj,nnJac=nnJac,iObj=iObj,\ bl=bl,bu=bu,J=J,funcon=toycon,funobj=toyobj,Names=names)
valJ[46] = 0.0 # Column 9. # Nonlinear elements in rows [5, 9, 11, 13, 14]. locJ[8] = 47 indJ[47] = 4 indJ[48] = 8 indJ[49] = 10 indJ[50] = 12 indJ[51] = 13 valJ[47] = 0.0 valJ[48] = 0.0 valJ[49] = 0.0 valJ[50] = 0.0 valJ[51] = 0.0 # Don't forget to finish off locJ. # This is crucial. locJ[ 9] = 51 + 1 Names = np.array(['12345678']*n) snoptb.setOption('Verbose',True) result = snoptb.snoptb(name=' snmainb',m=m,n=n,ne=ne,nnCon=nnCon,nnObj=nnObj,nnJac=nnJac,\ x0=x,bl=bl,bu=bu,J=valJ,indJ=indJ,locJ=locJ,funcon=hexCon,funobj=hexObj,Names=Names)
# Alternatively, the user can provide the sparsity pattern in # sparse-by-column format. Here, indJ contains the row indices, # locJ are the column pointers, and J contains the matrix values. # # indJ = np.array([0,2,0,1,2,0,3,1,3],int) # locJ = np.array([0,2,5,7,9],int) # J = np.array([100.0, 2.0, 100.0, 100.0, 4.0, 1.0, 3.0, 1.0, 5.0],float) bl = -inf * np.ones(n + m) bu = inf * np.ones(n + m) bl[2] = 0.0 bl[3] = 0.0 bl[4] = 2.0 bu[4] = 2.0 bl[5] = 4.0 bu[5] = 4.0 bl[6] = 0.0 iObj = 4 snoptb.setOption('Verbose', True) names = np.array(['12345678'] * (n + m)) snoptb.snoptb(name=' sntoyb',m=m,n=n,nnCon=nnCon,nnObj=nnObj,nnJac=nnJac,iObj=iObj,\ bl=bl,bu=bu,J=J,funcon=toycon,funobj=toyobj,Names=names)
valJ[45] = 0.0 valJ[46] = 0.0 # Column 9. # Nonlinear elements in rows [5, 9, 11, 13, 14]. locJ[8] = 47 indJ[47] = 4 indJ[48] = 8 indJ[49] = 10 indJ[50] = 12 indJ[51] = 13 valJ[47] = 0.0 valJ[48] = 0.0 valJ[49] = 0.0 valJ[50] = 0.0 valJ[51] = 0.0 # Don't forget to finish off locJ. # This is crucial. locJ[9] = 51 + 1 Names = np.array(['12345678'] * n) snoptb.setOption('Verbose', True) result = snoptb.snoptb(name=' snmainb',m=m,n=n,ne=ne,nnCon=nnCon,nnObj=nnObj,nnJac=nnJac,\ x0=x,bl=bl,bu=bu,J=valJ,indJ=indJ,locJ=locJ,funcon=hexCon,funobj=hexObj,Names=Names)