GithubHelp home page GithubHelp logo

jfrasch / qpdunes Goto Github PK

View Code? Open in Web Editor NEW
23.0 23.0 17.0 241 KB

qpDUNES - an implementation of the DUal NEwton Strategy for quadratic programming

C 71.01% MATLAB 1.29% M 0.64% C++ 21.40% CMake 3.36% Makefile 1.87% Shell 0.44%

qpdunes's People

Contributors

ferreau avatar jferreau avatar mkatliar avatar mvukov avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

qpdunes's Issues

Writing a wrapper for JuMP

Hello,

i sometimes wrap existing C interfaces to make them available from the JuMP modeling language in Julia.
This would allow easy use of your solver by people and other solvers in the JuMP ecosystem.
This would require me to:

  • Find a reproducible (cross platform) way to build binaries
  • Probably call the C interface from Julia
  • Hook up the Julia version of your C Interface to the algebraic modeling language
  • Maintain this code base

Since this is would require work on my behalf, i would like to ask some questions:

  • Would exposing your solver to generic QP interface even make sense?
  • The solver seems to solve diagonal+upper diagonal block matrices. Are those blocks assumed dense?
  • What integration schemes do you recommend?

Restriction to cost function

Hello, I’m trying qpDUNES on Simulink with ACADO MATLAB Interface in the following environment.

--Environment—
OS : Windows 10 Pro 64bit
ACADO : latest stable version (on 21 Jun 2017)
MATLAB : R2020a
Compiler : Visual Studio 2017 C/C++ Compiler
---------------------------------------------------------

Adding a term that consists of multiple states and control inputs to the cost function,
I got an error message below in MATLAB. (Sample file is attached.)

--Error Mesasge--
Error using mex
acado_solver.c
D:\Work\export_MPC\acado_solver.c(51):
error C2065: 'QPDUNES_LS_HOMOTOPY_GRID_SEARCH': undeclared identifier

Error in legacycode.LCT/compile

Error in legacycode.LCT.legacyCodeImpl

Error in legacy_code (line 103)
[varargout{1:nargout}] = legacycode.LCT.legacyCodeImpl(action, varargin{1:end});

Error in make_acado_solver_sfunction (line 251)
legacy_code('compile', ACADODef, {iFlags{:}, ldFlags});

Error in ACADO_simulink (line 97)
make_acado_solver_sfunction
-----------------------------------------------------------------------------------------------

I have two questions.

  1. qpDUNES doesn’t support cost function like this? Only supports term that consists of only one state or control input?
  2. Is there any functional restriction compared to qpOASES? (about cost function, constraints and so on.)

I hope you will be able to provide the information.
SampleFiles.zip

Make error codes consistent with e.g qpOASES

It would be much easier to switch between the solvers if the error codes are similar. At least for "OK"-like return codes. In particular, is there really a need that QPDUNES_OK and QPDUNES_SUCC_OPTIMAL_SOLUTION_FOUND have different values? Moreover, @jfrasch, is there really a need for the later one??

Safer calloc

in 3571892 I added the custom calloc, which basically does an assertion on calloc returned value. This is kinda nasty, but better this than nothing. Said nasty, cause this can possibly crash MATLAB. Something a bit more sophisticated should be implemented, IMO.

A build error when running make.m in matlab interface

Hello, when I build qpDUNES in ./interfaces/matlab by running 'make.m', the following error shows up.

Building with 'Xcode Clang++'.
gcc -c -D__cpluplus  -D__MATLAB__  -DLINUX   -DMATLAB_MEX_FILE  -I. -I../../include -I../../externals/qpOASES-3.0beta/include -I../../interfaces/mpc  -I"/Applications/MATLAB_R2015a.app/extern/include" -I"/Applications/MATLAB_R2015a.app/simulink/include" -fno-common -arch x86_64 -mmacosx-version-min=10.12 -fexceptions -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk -fobjc-arc -std=c++11 -stdlib=libc++ -O2 -DNDEBUG /Users/yezhao/Downloads/qpDUNES/interfaces/matlab/qpDUNES.cpp -o /var/folders/bk/p_h3ng_95dlfg8xpyg98n69h0000gn/T//mex_17967324059907_28912/qpDUNES.o
Error using mex
In file included from /Users/yezhao/Downloads/qpDUNES/interfaces/matlab/qpDUNES.cpp:39:
./qpDUNES_matlab_utils.cpp:436:24: error: non-constant-expression cannot be narrowed from type
'int' to 'mwSize' (aka 'unsigned long') in initializer list [-Wc++11-narrowing]
        mwSize dims[2] = { 1, numIter+1 };
                              ^~~~~~~~~
./qpDUNES_matlab_utils.cpp:436:24: note: insert an explicit cast to silence this issue
        mwSize dims[2] = { 1, numIter+1 };
                              ^~~~~~~~~
                              static_cast<mwSize>( )
1 error generated.


Error in make (line 77)
	eval( cmd );

Besides the non-constant-expression error, another error that I am trying to fix is the mex cmd error. My cmd is

mex -v CC="gcc" CXX="gcc" LD="gcc" COPTIMFLAGS="$COPTIMFLAGS -O3" -output qpDUNES -I. -I../../include -I../../externals/qpOASES-3.0beta/include -I../../interfaces/mpc -largeArrayDims -D__cpluplus -D__MATLAB__ -cxx -O -DLINUX CFLAGS='$CFLAGS -fPIC' qpDUNES.cpp ../../src/stage_qp_solver_clipping.c ../../src/stage_qp_solver_qpoases.cpp ../../src/qpdunes_utils.c ../../src/dual_qp.c ../../src/matrix_vector.c ../../src/setup_qp.c ../../interfaces/mpc/setup_mpc.c

Does anyone know the potential reason for this issue? Thank you. Build qpDUNES in its root directory works fine in my case (run make in terminal) and I can run the examples. I am using matlab R2015a in MacOS Sierra 10.12.1.

Less verbose error messages

Sometimes when the solver fails, I get a fairly long love letter.

It would be nice if the solver could return after the first (few) error messages, and not after all the processing is done.

Matlab interface does not compile with Visual Studio under Windows 7

....\SRC\dual_qp.c(42) : warning C4101: 'tQpStart' : unreferenced local variable
....\SRC\dual_qp.c(42) : warning C4101: 'tItStart' : unreferenced local variable
....\SRC\dual_qp.c(44) : warning C4101: 'tLineSearchEnd' : unreferenced local variable
....\SRC\dual_qp.c(44) : warning C4101: 'tDiff' : unreferenced local variable
....\SRC\dual_qp.c(44) : warning C4101: 'tLineSearchStart' : unreferenced local variable
....\SRC\dual_qp.c(42) : warning C4101: 'tItEnd' : unreferenced local variable
....\SRC\dual_qp.c(42) : warning C4101: 'tQpEnd' : unreferenced local variable
....\SRC\dual_qp.c(383) : warning C4018: '<' : signed/unsigned mismatch
....\SRC\dual_qp.c(387) : warning C4018: '<' : signed/unsigned mismatch
....\SRC\dual_qp.c(391) : warning C4018: '<' : signed/unsigned mismatch
....\SRC\dual_qp.c(394) : warning C4018: '<' : signed/unsigned mismatch
....\SRC\dual_qp.c(399) : warning C4018: '<' : signed/unsigned mismatch
....\SRC\dual_qp.c(404) : warning C4018: '<' : signed/unsigned mismatch
....\SRC\dual_qp.c(450) : warning C4018: '<' : signed/unsigned mismatch
....\SRC\dual_qp.c(459) : warning C4018: '<' : signed/unsigned mismatch
....\SRC\dual_qp.c(498) : warning C4018: '<' : signed/unsigned mismatch
....\SRC\dual_qp.c(596) : warning C4018: '<' : signed/unsigned mismatch
....\SRC\dual_qp.c(610) : error C2275: 'boolean_t' : illegal use of this type as an expression
../../INCLUDE\qp/types.h(148) : see declaration of 'boolean_t'
....\SRC\dual_qp.c(610) : error C2146: syntax error : missing ';' before identifier 'addToRes'
....\SRC\dual_qp.c(610) : error C2065: 'addToRes' : undeclared identifier
....\SRC\dual_qp.c(611) : error C2065: 'addToRes' : undeclared identifier
....\SRC\dual_qp.c(619) : warning C4018: '<' : signed/unsigned mismatch
....\SRC\dual_qp.c(635) : error C2275: 'zx_matrix_t' : illegal use of this type as an expression
../../INCLUDE\qp/types.h(264) : see declaration of 'zx_matrix_t'
....\SRC\dual_qp.c(635) : error C2065: 'ZTCT' : undeclared identifier
....\SRC\dual_qp.c(636) : error C2065: 'ZTCT' : undeclared identifier
....\SRC\dual_qp.c(636) : error C2223: left of '->data' must point to struct/union
....\SRC\dual_qp.c(636) : warning C4047: 'function' : 'const real_t *const ' differs in levels of indirection from 'int_t'
....\SRC\dual_qp.c(636) : warning C4024: 'multiplyMatrixMatrixTDenseDense' : different types for formal and actual parameter 3
....\SRC\dual_qp.c(636) : error C2198: 'multiplyMatrixMatrixTDenseDense' : too few arguments for call
....\SRC\dual_qp.c(638) : error C2065: 'ZTCT' : undeclared identifier
....\SRC\dual_qp.c(638) : warning C4047: 'function' : 'const zz_matrix_t *const ' differs in levels of indirection from 'int'
....\SRC\dual_qp.c(638) : warning C4024: 'backsolveRT_ZTCT' : different types for formal and actual parameter 4
....\SRC\dual_qp.c(640) : error C2275: 'boolean_t' : illegal use of this type as an expression
../../INCLUDE\qp/types.h(148) : see declaration of 'boolean_t'
....\SRC\dual_qp.c(640) : error C2146: syntax error : missing ';' before identifier 'addToRes'
....\SRC\dual_qp.c(640) : error C2065: 'addToRes' : undeclared identifier
....\SRC\dual_qp.c(641) : error C2065: 'addToRes' : undeclared identifier
....\SRC\dual_qp.c(648) : warning C4018: '<' : signed/unsigned mismatch
....\SRC\dual_qp.c(649) : warning C4018: '<' : signed/unsigned mismatch
....\SRC\dual_qp.c(659) : warning C4018: '<' : signed/unsigned mismatch
....\SRC\dual_qp.c(680) : error C2275: 'boolean_t' : illegal use of this type as an expression
../../INCLUDE\qp/types.h(148) : see declaration of 'boolean_t'
....\SRC\dual_qp.c(680) : error C2146: syntax error : missing ';' before identifier 'addToRes'
....\SRC\dual_qp.c(680) : error C2065: 'addToRes' : undeclared identifier
....\SRC\dual_qp.c(681) : error C2065: 'addToRes' : undeclared identifier
....\SRC\dual_qp.c(684) : warning C4018: '<' : signed/unsigned mismatch
....\SRC\dual_qp.c(685) : warning C4018: '<' : signed/unsigned mismatch
....\SRC\dual_qp.c(694) : warning C4018: '<' : signed/unsigned mismatch
....\SRC\dual_qp.c(695) : warning C4018: '<' : signed/unsigned mismatch
....\SRC\dual_qp.c(730) : warning C4018: '<' : signed/unsigned mismatch
....\SRC\dual_qp.c(736) : warning C4018: '<' : signed/unsigned mismatch
....\SRC\dual_qp.c(741) : warning C4018: '<' : signed/unsigned mismatch
....\SRC\dual_qp.c(781) : warning C4018: '<' : signed/unsigned mismatch
....\SRC\dual_qp.c(782) : warning C4018: '<' : signed/unsigned mismatch
....\SRC\dual_qp.c(803) : warning C4018: '<' : signed/unsigned mismatch
....\SRC\dual_qp.c(804) : warning C4018: '<' : signed/unsigned mismatch
....\SRC\dual_qp.c(882) : warning C4018: '<' : signed/unsigned mismatch
....\SRC\dual_qp.c(884) : warning C4018: '<' : signed/unsigned mismatch
....\SRC\dual_qp.c(896) : warning C4018: '<' : signed/unsigned mismatch
....\SRC\dual_qp.c(930) : warning C4018: '<' : signed/unsigned mismatch
....\SRC\dual_qp.c(941) : warning C4018: '<' : signed/unsigned mismatch
....\SRC\dual_qp.c(954) : warning C4018: '<' : signed/unsigned mismatch
....\SRC\dual_qp.c(955) : warning C4018: '<' : signed/unsigned mismatch
....\SRC\dual_qp.c(1014) : warning C4018: '<' : signed/unsigned mismatch
....\SRC\dual_qp.c(1019) : warning C4018: '<' : signed/unsigned mismatch
....\SRC\dual_qp.c(1020) : warning C4018: '<' : signed/unsigned mismatch
....\SRC\dual_qp.c(1056) : warning C4018: '<' : signed/unsigned mismatch
....\SRC\dual_qp.c(1060) : warning C4018: '<' : signed/unsigned mismatch
....\SRC\dual_qp.c(1061) : warning C4018: '<' : signed/unsigned mismatch
....\SRC\dual_qp.c(1076) : warning C4018: '<' : signed/unsigned mismatch
....\SRC\dual_qp.c(1108) : warning C4018: '<' : signed/unsigned mismatch
....\SRC\dual_qp.c(1110) : warning C4018: '<' : signed/unsigned mismatch
....\SRC\dual_qp.c(1115) : warning C4018: '<' : signed/unsigned mismatch
....\SRC\dual_qp.c(1147) : warning C4018: '<' : signed/unsigned mismatch
....\SRC\dual_qp.c(1150) : warning C4018: '<' : signed/unsigned mismatch
....\SRC\dual_qp.c(1151) : warning C4018: '<' : signed/unsigned mismatch
....\SRC\dual_qp.c(1192) : warning C4018: '<' : signed/unsigned mismatch
....\SRC\dual_qp.c(1195) : warning C4018: '<' : signed/unsigned mismatch
....\SRC\dual_qp.c(1196) : warning C4018: '<' : signed/unsigned mismatch
....\SRC\dual_qp.c(1213) : warning C4018: '<' : signed/unsigned mismatch
....\SRC\dual_qp.c(1215) : warning C4018: '<' : signed/unsigned mismatch
....\SRC\dual_qp.c(1220) : warning C4018: '<' : signed/unsigned mismatch
....\SRC\dual_qp.c(1256) : warning C4018: '<' : signed/unsigned mismatch
....\SRC\dual_qp.c(1259) : warning C4018: '<' : signed/unsigned mismatch
....\SRC\dual_qp.c(1265) : warning C4018: '<' : signed/unsigned mismatch
....\SRC\dual_qp.c(1270) : warning C4018: '<' : signed/unsigned mismatch
....\SRC\dual_qp.c(1277) : warning C4018: '<' : signed/unsigned mismatch
....\SRC\dual_qp.c(1282) : warning C4018: '<' : signed/unsigned mismatch
....\SRC\dual_qp.c(1285) : warning C4018: '<' : signed/unsigned mismatch
....\SRC\dual_qp.c(1325) : error C2275: 'int_t' : illegal use of this type as an expression
../../INCLUDE\qp/types.h(99) : see declaration of 'int_t'
....\SRC\dual_qp.c(1325) : error C2146: syntax error : missing ';' before identifier 'kk'
....\SRC\dual_qp.c(1325) : error C2065: 'kk' : undeclared identifier
....\SRC\dual_qp.c(1326) : error C2275: 'interval_t' : illegal use of this type as an expression
../../INCLUDE\qp/types.h(478) : see declaration of 'interval_t'
....\SRC\dual_qp.c(1326) : error C2065: 'interval' : undeclared identifier
....\SRC\dual_qp.c(1334) : error C2065: 'kk' : undeclared identifier
....\SRC\dual_qp.c(1334) : error C2065: 'kk' : undeclared identifier
....\SRC\dual_qp.c(1334) : warning C4018: '<' : signed/unsigned mismatch
....\SRC\dual_qp.c(1334) : error C2065: 'kk' : undeclared identifier
....\SRC\dual_qp.c(1336) : error C2065: 'kk' : undeclared identifier
....\SRC\dual_qp.c(1338) : error C2065: 'kk' : undeclared identifier
....\SRC\dual_qp.c(1353) : error C2065: 'kk' : undeclared identifier
....\SRC\dual_qp.c(1353) : error C2065: 'kk' : undeclared identifier
....\SRC\dual_qp.c(1353) : warning C4018: '<' : signed/unsigned mismatch
....\SRC\dual_qp.c(1353) : error C2065: 'kk' : undeclared identifier
....\SRC\dual_qp.c(1354) : error C2065: 'interval' : undeclared identifier
....\SRC\dual_qp.c(1354) : error C2065: 'kk' : undeclared identifier
....\SRC\dual_qp.c(1354) : warning C4047: '=' : 'int' differs in levels of indirection from 'interval_t *'
....\SRC\dual_qp.c(1356) : error C2065: 'interval' : undeclared identifier
....\SRC\dual_qp.c(1356) : error C2223: left of '->qpSolverSpecification' must point to struct/union
....\SRC\dual_qp.c(1358) : error C2065: 'interval' : undeclared identifier
....\SRC\dual_qp.c(1358) : warning C4047: 'function' : 'interval_t *const ' differs in levels of indirection from 'int'
....\SRC\dual_qp.c(1358) : warning C4024: 'directQpSolver_doStep' : different types for formal and actual parameter 2
....\SRC\dual_qp.c(1359) : error C2065: 'interval' : undeclared identifier
....\SRC\dual_qp.c(1359) : error C2223: left of '->qpSolverClipping' must point to struct/union
....\SRC\dual_qp.c(1359) : error C2440: 'function' : cannot convert from 'real_t' to 'const z_vector_t *const '
....\SRC\dual_qp.c(1359) : warning C4024: 'directQpSolver_doStep' : different types for formal and actual parameter 3
....\SRC\dual_qp.c(1360) : error C2065: 'interval' : undeclared identifier
....\SRC\dual_qp.c(1360) : error C2223: left of '->qpSolverClipping' must point to struct/union
....\SRC\dual_qp.c(1361) : error C2065: 'interval' : undeclared identifier
....\SRC\dual_qp.c(1361) : error C2223: left of '->z' must point to struct/union
....\SRC\dual_qp.c(1361) : error C2065: 'interval' : undeclared identifier
....\SRC\dual_qp.c(1361) : error C2223: left of '->y' must point to struct/union
....\SRC\dual_qp.c(1361) : error C2065: 'interval' : undeclared identifier
....\SRC\dual_qp.c(1361) : error C2223: left of '->q' must point to struct/union
....\SRC\dual_qp.c(1362) : error C2065: 'interval' : undeclared identifier
....\SRC\dual_qp.c(1362) : error C2223: left of '->p' must point to struct/union
....\SRC\dual_qp.c(1362) : error C2198: 'directQpSolver_doStep' : too few arguments for call
....\SRC\dual_qp.c(1366) : error C2065: 'interval' : undeclared identifier
....\SRC\dual_qp.c(1366) : error C2223: left of '->qpSolverQpoases' must point to struct/union
....\SRC\dual_qp.c(1367) : error C2065: 'interval' : undeclared identifier
....\SRC\dual_qp.c(1367) : warning C4022: 'qpOASES_doStep' : pointer mismatch for actual parameter 2
....\SRC\dual_qp.c(1367) : error C2440: 'function' : cannot convert from 'real_t' to 'interval_t *const '
....\SRC\dual_qp.c(1367) : warning C4024: 'qpOASES_doStep' : different types for formal and actual parameter 3
....\SRC\dual_qp.c(1367) : error C2065: 'interval' : undeclared identifier
....\SRC\dual_qp.c(1367) : error C2223: left of '->z' must point to struct/union
....\SRC\dual_qp.c(1367) : error C2065: 'interval' : undeclared identifier
....\SRC\dual_qp.c(1367) : error C2223: left of '->y' must point to struct/union
....\SRC\dual_qp.c(1368) : error C2065: 'interval' : undeclared identifier
....\SRC\dual_qp.c(1368) : error C2223: left of '->q' must point to struct/union
....\SRC\dual_qp.c(1368) : error C2065: 'interval' : undeclared identifier
....\SRC\dual_qp.c(1368) : error C2223: left of '->p' must point to struct/union
....\SRC\dual_qp.c(1368) : error C2198: 'qpOASES_doStep' : too few arguments for call
....\SRC\dual_qp.c(1446) : error C2065: 'kk' : undeclared identifier
....\SRC\dual_qp.c(1446) : error C2065: 'kk' : undeclared identifier
....\SRC\dual_qp.c(1446) : warning C4018: '<' : signed/unsigned mismatch
....\SRC\dual_qp.c(1446) : error C2065: 'kk' : undeclared identifier
....\SRC\dual_qp.c(1447) : error C2065: 'interval' : undeclared identifier
....\SRC\dual_qp.c(1447) : error C2065: 'kk' : undeclared identifier
....\SRC\dual_qp.c(1447) : warning C4047: '=' : 'int' differs in levels of indirection from 'interval_t *'
....\SRC\dual_qp.c(1450) : error C2065: 'interval' : undeclared identifier
....\SRC\dual_qp.c(1450) : error C2223: left of '->qpSolverSpecification' must point to struct/union
....\SRC\dual_qp.c(1452) : error C2065: 'interval' : undeclared identifier
....\SRC\dual_qp.c(1452) : warning C4047: 'function' : 'interval_t *const ' differs in levels of indirection from 'int'
....\SRC\dual_qp.c(1452) : warning C4024: 'directQpSolver_doStep' : different types for formal and actual parameter 2
....\SRC\dual_qp.c(1453) : error C2065: 'interval' : undeclared identifier
....\SRC\dual_qp.c(1453) : error C2223: left of '->qpSolverClipping' must point to struct/union
....\SRC\dual_qp.c(1453) : error C2440: 'function' : cannot convert from 'real_t' to 'const z_vector_t *const '
....\SRC\dual_qp.c(1453) : warning C4024: 'directQpSolver_doStep' : different types for formal and actual parameter 3
....\SRC\dual_qp.c(1454) : error C2065: 'interval' : undeclared identifier
....\SRC\dual_qp.c(1454) : error C2223: left of '->qpSolverClipping' must point to struct/union
....\SRC\dual_qp.c(1455) : error C2065: 'interval' : undeclared identifier
....\SRC\dual_qp.c(1455) : error C2223: left of '->z' must point to struct/union
....\SRC\dual_qp.c(1455) : error C2065: 'interval' : undeclared identifier
....\SRC\dual_qp.c(1455) : error C2223: left of '->y' must point to struct/union
....\SRC\dual_qp.c(1455) : error C2065: 'interval' : undeclared identifier
....\SRC\dual_qp.c(1455) : error C2223: left of '->q' must point to struct/union
....\SRC\dual_qp.c(1456) : error C2065: 'interval' : undeclared identifier
....\SRC\dual_qp.c(1456) : error C2223: left of '->p' must point to struct/union
....\SRC\dual_qp.c(1456) : error C2198: 'directQpSolver_doStep' : too few arguments for call
....\SRC\dual_qp.c(1460) : error C2065: 'interval' : undeclared identifier
....\SRC\dual_qp.c(1460) : error C2223: left of '->qpSolverQpoases' must point to struct/union
....\SRC\dual_qp.c(1461) : error C2065: 'interval' : undeclared identifier
....\SRC\dual_qp.c(1461) : warning C4022: 'qpOASES_doStep' : pointer mismatch for actual parameter 2
....\SRC\dual_qp.c(1461) : error C2440: 'function' : cannot convert from 'real_t' to 'interval_t *const '
....\SRC\dual_qp.c(1461) : warning C4024: 'qpOASES_doStep' : different types for formal and actual parameter 3
....\SRC\dual_qp.c(1461) : error C2065: 'interval' : undeclared identifier
....\SRC\dual_qp.c(1461) : error C2223: left of '->z' must point to struct/union
....\SRC\dual_qp.c(1461) : error C2065: 'interval' : undeclared identifier
....\SRC\dual_qp.c(1461) : error C2223: left of '->y' must point to struct/union
....\SRC\dual_qp.c(1462) : error C2065: 'interval' : undeclared identifier
....\SRC\dual_qp.c(1462) : error C2223: left of '->q' must point to struct/union
....\SRC\dual_qp.c(1462) : error C2065: 'interval' : undeclared identifier
....\SRC\dual_qp.c(1462) : error C2223: left of '->p' must point to struct/union
....\SRC\dual_qp.c(1462) : error C2198: 'qpOASES_doStep' : too few arguments for call
....\SRC\dual_qp.c(1502) : warning C4018: '<' : signed/unsigned mismatch
....\SRC\dual_qp.c(1546) : error C2275: 'real_t' : illegal use of this type as an expression
../../INCLUDE\qp/types.h(101) : see declaration of 'real_t'
....\SRC\dual_qp.c(1546) : error C2146: syntax error : missing ';' before identifier 'minimumProgress'
....\SRC\dual_qp.c(1546) : error C2065: 'minimumProgress' : undeclared identifier
....\SRC\dual_qp.c(1546) : fatal error C1003: error count exceeds 100; stopping compilation

C:\PROGRA~2\MATLAB\R2009B\BIN\MEX.PL: Error: Compile of '....\SRC\dual_qp.c' failed.

??? Error using ==> mex at 221
Unable to complete successfully.

Error in ==> make at 76
eval( cmd );

Documentation is absent

  • The functions are undocumented.
  • The Problem-setup wiki page is also empty.

Please add documentation.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.