[SciPy-user] openopt vs. cvxopt, 'f' vs. 'd','z'
Tue Jan 29 16:14:54 CST 2008
There is indeed a problem with cvxopt matrices interfacing with numpy in
Here is example code:
from cvxopt.base import matrix
a = matrix([2,3,4])
b = numpy.asarray(a)
c = matrix(b)
The last statement (c) returns an 'array not contiguous' error.
Changing line (b) to
b = numpy.asarray(a, order='C')
#(specifies order as contiguous)
b = numpy.array(a)
#(copies the array instead of leaving it be)
results in no such error.
On Tue, 29 Jan 2008, Joachim Dahl wrote:
> There might be bugs in the Scipy Array Interface in CVXOPT. If you come
> across dubious behaviour and believe CVXOPT is to blame, we will
> appreciate feedback and small code snippets to reproduce the error.
> CVXOPT is never supposed to crash, so it sounds like you found a
> Best regards
> On Jan 29, 2008 8:56 AM, Mclean Edwards <firstname.lastname@example.org> wrote:
>> An additional note or two:
>> The problem with 'array not contiguous' happens because I call the cvxopt
>> solver through openopt with a cvxopt matrix instead of an array.
>> Casting the cvxopt.matrix as an array beforehand works with the original
>> openopt code.
>> Comparing the results between order='C' and cvxopt matrices
>> and simply deleting the 'float' requirement, but using numpy arrays,
>> the results appear to be identical.
>> This would suggest that making the change is an improvement to the code.
>> However, I am not getting identical results between calling cvxopt
>> directly and calling cvxopt through openopt.
>> I have not yet been able to track down the difference, although on
>> inspection calling cvxopt through openopt is about 5x slower, and provides
>> worse results.
>> (I'm using QP as a subfunction to another algorithm and
>> the appoximate answers using openopt appear to be worse than calling
>> cvxopt directly.)
>> The differences do not stem from using double.
>> (I converted to float for cvxopt direct use, and there is no perceptual
>> change in my graphs.)
>> SciPy-user mailing list
More information about the SciPy-user