embotech/ecos

ecos/cvx on windows 7 64 bit

Closed this issue · 10 comments

Hi, hope you can help.

I've been using ecos (with cvx and calling directly from matlab) for a while. Decided to update to the latest version and I now get error messages and/or matlab crashes.

I've attached a description below.

many thanks
Jeremy

output of my cvx_version


CVX: Software for Disciplined Convex Programming (c)2014 CVX Research

Version 2.1, Build 1088 (e790d80) Sat Sep 20 22:03:02 2014

Installation info:
Path: C:\Users\jeremy.taylor\workspace\Research\tools\cvx
MATLAB version: 8.2 (R2013b)
OS: Windows 7 amd64 version 6.1
Java version: 1.7.0_11
Verfying CVX directory contents:
No missing files.
Preferences:
Path: C:\Users\jeremy.taylor\AppData\Roaming\MathWorks\MATLAB\cvx_prefs.mat
License host:
Username: jeremy.taylor
Host ID: 1803732b992e (eth3)
Installed license:
No license installed.

No valid licenses found.

output of ecos
Error using ecos
ECOS takes 4 to 7 arguments: ECOS(c,G,h,dims), ECOS(c,G,h,dims,opts), ECOS(c,G,h,dims,A,b), or ECOS(c,G,h,dims,A,b,opts)

If i do

clear all;
%http://people.brunel.ac.uk/~mastjjb/jeb/or/morelp.html
n = 2; c = [1; 1]; A = [50, 24; 30, 33]; b = [40_60; 35_60];

cvx_begin
cvx_solver ecos
variables x(n);

maximize (c' * x);
subject to
    x >= [45; 5];
    A*x <= b;

cvx_end

then i get the following error message
Error using ecos
Internal problem occurred in ECOS while setting up the problem.
Please send a bug report with data to Alexander Domahidi.
Email: domahidi@control.ee.ethz.ch
Error in cvx_run_solver (line 50)
[ varargout{1:nargout} ] = sfunc( inputs{:} );
Error in cvx_solver_shim>solve (line 185)
[ yy, xf, info, zz, xK ] = cvx_run_solver( @ecos, ecos_c, ecos_G, ecos_h, K, ecos_A, ecos_b, opts, varnames{:}, settings, 7 ); %#ok
Error in cvxprob/solve (line 429)
[ x, status, tprec, iters ] = shim.solve( At, b, c, cones, quiet, prec, solv.settings, eargs{:} );
Error in cvx_end (line 88)
solve( prob );

for a different problem it gets a bit further but then crashes matlab with a segfault

n = 2; c = [1; 1]; A = [50, 24; 30, 33]; b = [40_60; 35_60];
cvx_begin
cvx_solver ecos % without this line, CVX will use its default solver
variable x(n)

  minimize sum_square(A*x - b)
  subject to
       x >= 0

cvx_end

Jeremy,

Would you mind trying out CVX 3.0 beta and seeing how well it works with the latest ECOS?

http://cvxr.com/cvx/beta

On Oct 1, 2014, at 9:29 AM, jeremyftaylor <notifications@github.commailto:notifications@github.com> wrote:

Hi, hope you can help.

I've been using ecos (with cvx and calling directly from matlab) for a while. Decided to update to the latest version and I now get error messages and/or matlab crashes.

I've attached a description below.

many thanks
Jeremy

output of my cvx_version


CVX: Software for Disciplined Convex Programming (c)2014 CVX Research

Version 2.1, Build 1088 (e790d80) Sat Sep 20 22:03:02 2014

Installation info:
Path: C:\Users\jeremy.taylor\workspace\Research\tools\cvx
MATLAB version: 8.2 (R2013b)
OS: Windows 7 amd64 version 6.1
Java version: 1.7.0_11
Verfying CVX directory contents:
No missing files.
Preferences:
Path: C:\Users\jeremy.taylor\AppData\Roaming\MathWorks\MATLAB\cvx_prefs.mat
License host:
Username: jeremy.taylor
Host ID: 1803732b992e (eth3)
Installed license:
No license installed.

No valid licenses found.

output of ecos
Error using ecos
ECOS takes 4 to 7 arguments: ECOS(c,G,h,dims), ECOS(c,G,h,dims,opts), ECOS(c,G,h,dims,A,b), or ECOS(c,G,h,dims,A,b,opts)

If i do

clear all;
%http://people.brunel.ac.uk/~mastjjb/jeb/or/morelp.htmlhttp://people.brunel.ac.uk/%7Emastjjb/jeb/or/morelp.html
n = 2; c = [1; 1]; A = [50, 24; 30, 33]; b = [40_60; 35_60];

cvx_begin
cvx_solver ecos
variables x(n);

maximize (c' * x);
subject to
x >= [45; 5];
A*x <= b;

cvx_end

then i get the following error message
Error using ecos
Internal problem occurred in ECOS while setting up the problem.
Please send a bug report with data to Alexander Domahidi.
Email: domahidi@control.ee.ethz.chmailto:domahidi@control.ee.ethz.ch
Error in cvx_run_solver (line 50)
[ varargout{1:nargout} ] = sfunc( inputs{:} );
Error in cvx_solver_shim>solve (line 185)
[ yy, xf, info, zz, xK ] = cvx_run_solver( @ecoshttps://github.com/ecos, ecos_c, ecos_G, ecos_h, K, ecos_A, ecos_b, opts, varnames{:}, settings, 7 ); %#ok
Error in cvxprob/solve (line 429)
[ x, status, tprec, iters ] = shim.solve( At, b, c, cones, quiet, prec, solv.settings, eargs{:} );
Error in cvx_end (line 88)
solve( prob );

for a different problem it gets a bit further but then crashes matlab with a segfault

n = 2; c = [1; 1]; A = [50, 24; 30, 33]; b = [40_60; 35_60];
cvx_begin
cvx_solver ecos % without this line, CVX will use its default solver
variable x(n)

minimize sum_square(A*x - b)
subject to
x >= 0

cvx_end


Reply to this email directly or view it on GitHubhttps://github.com//issues/83.

Hmm, not getting very far with cvx 3.0 and that's before i try mixing in ecos. It appears to be rather less tolerant of my (admittedly totally sloppy) quadratic forms... is that to be expected?
e.g.
cor = [2, 0.9 ; 0.9, 1];
cvx_clear
cvx_begin
variable x(2)
minimise(x' * cor * x)
subject to
x == nonnegative(2);
cvx_end
x = x./ sum(x);

gives:
Error using * (line 174)
Disciplined convex programming error:
Invalid operation: * {real affine vector}

That's odd. Well, I'd roll back then, at least until I figure that out. That should not happen.

On Oct 1, 2014, at 10:03 AM, jeremyftaylor <notifications@github.commailto:notifications@github.com> wrote:

Hmm, not getting very far with cvx 3.0 and that's before i try mixing in ecos. It appears to be rather less tolerant of my (admittedly totally sloppy) quadratic forms... is that to be expected?
e.g.
cor = [2, 0.9 ; 0.9, 1];
cvx_clear
cvx_begin
variable x(2)
minimise(x' * cor * x)
subject to
x == nonnegative(2);
cvx_end
x = x./ sum(x);

gives:
Error using * (line 174)
Disciplined convex programming error:
Invalid operation: * {real affine vector}


Reply to this email directly or view it on GitHubhttps://github.com//issues/83#issuecomment-57478085.

Here, try this replacement for cvx/builtins/@cvx/mtimes.m

On Oct 1, 2014, at 10:03 AM, jeremyftaylor <notifications@github.commailto:notifications@github.com> wrote:

Hmm, not getting very far with cvx 3.0 and that's before i try mixing in ecos. It appears to be rather less tolerant of my (admittedly totally sloppy) quadratic forms... is that to be expected?
e.g.
cor = [2, 0.9 ; 0.9, 1];
cvx_clear
cvx_begin
variable x(2)
minimise(x' * cor * x)
subject to
x == nonnegative(2);
cvx_end
x = x./ sum(x);

gives:
Error using * (line 174)
Disciplined convex programming error:
Invalid operation: * {real affine vector}


Reply to this email directly or view it on GitHubhttps://github.com//issues/83#issuecomment-57478085.

Actually, neither of the examples you gave involved quadratic forms anyway. Please try the very models you submitted for your bug report.

On Oct 1, 2014, at 10:03 AM, jeremyftaylor <notifications@github.commailto:notifications@github.com> wrote:

Hmm, not getting very far with cvx 3.0 and that's before i try mixing in ecos. It appears to be rather less tolerant of my (admittedly totally sloppy) quadratic forms... is that to be expected?
e.g.
cor = [2, 0.9 ; 0.9, 1];
cvx_clear
cvx_begin
variable x(2)
minimise(x' * cor * x)
subject to
x == nonnegative(2);
cvx_end
x = x./ sum(x);

gives:
Error using * (line 174)
Disciplined convex programming error:
Invalid operation: * {real affine vector}


Reply to this email directly or view it on GitHubhttps://github.com//issues/83#issuecomment-57478085.

Fair point. Unfortunately they give exactly the same combination of errors and crashes. I should note that i have to manually run makemex within the ecos/matlab folder. My current mex setup uses the following compiler "Microsoft Software Development Kit (SDK) 7.1 in C:\Program Files (x86)\Microsoft Visual Studio 10.0".

I will investigate the crashes as soon as I get to it - might be beginning of next week though.

OK. Good to know. Obviously there's no reason why CVX should cause ECOS to crash. That's not to say CVX isn't at fault for, say, incorrect results. But not for crashes!

On Oct 1, 2014, at 10:27 AM, jeremyftaylor <notifications@github.commailto:notifications@github.com> wrote:

Fair point. Unfortunately they give exactly the same combination of errors and crashes. I should note that i have to manually run makemex within the ecos/matlab folder. My current mex setup uses the following compiler "Microsoft Software Development Kit (SDK) 7.1 in C:\Program Files (x86)\Microsoft Visual Studio 10.0".


Reply to this email directly or view it on GitHubhttps://github.com//issues/83#issuecomment-57482578.

@jeremyftaylor When I run your example on my Mac it runs perfectly fine. Can you try again, please? It seems to be a Windows-related issue then, I guess. Just double checking.

This should be fixed now in the develop branch. I have also updated the Win32 and Win64 Matlab Mex binaries.