Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 1 addition & 4 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -102,10 +102,7 @@ modernize_target_link_libraries(
${EIGEN3_INCLUDE_DIR})
target_include_directories(
${PROJECT_NAME} INTERFACE $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>)
install(
TARGETS ${PROJECT_NAME}
EXPORT ${TARGETS_EXPORT_NAME}
DESTINATION lib)
install(TARGETS ${PROJECT_NAME} EXPORT ${TARGETS_EXPORT_NAME})

if(BUILD_TESTING)
add_subdirectory(tests)
Expand Down
3 changes: 2 additions & 1 deletion include/eiquadprog/eiquadprog-fast.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@

#define DEFAULT_MAX_ITER 1000

#include "eiquadprog/config.hpp"
#include "eiquadprog/eiquadprog-utils.hxx"

namespace eiquadprog {
Expand All @@ -75,7 +76,7 @@ enum EiquadprogFast_status {
EIQUADPROG_FAST_REDUNDANT_EQUALITIES = 4
};

class EiquadprogFast {
class EIQUADPROG_DLLAPI EiquadprogFast {
typedef Eigen::MatrixXd MatrixXd;
typedef Eigen::VectorXd VectorXd;
typedef Eigen::VectorXi VectorXi;
Expand Down
43 changes: 22 additions & 21 deletions include/eiquadprog/eiquadprog.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,7 @@
#include <Eigen/Cholesky>
#include <Eigen/Core>

#include "eiquadprog/config.hpp"
#include "eiquadprog/deprecated.hpp"
#include "eiquadprog/eiquadprog-utils.hxx"

Expand Down Expand Up @@ -107,17 +108,17 @@ void delete_constraint(Eigen::MatrixXd& R, Eigen::MatrixXd& J,
Eigen::VectorXi& A, Eigen::VectorXd& u, size_t p,
size_t& iq, size_t l);

double solve_quadprog(Eigen::LLT<Eigen::MatrixXd, Eigen::Lower>& chol,
double c1, Eigen::VectorXd& g0, const Eigen::MatrixXd& CE,
const Eigen::VectorXd& ce0, const Eigen::MatrixXd& CI,
const Eigen::VectorXd& ci0, Eigen::VectorXd& x,
Eigen::VectorXi& A, size_t& q);
EIQUADPROG_DLLAPI double solve_quadprog(
Eigen::LLT<Eigen::MatrixXd, Eigen::Lower>& chol, double c1,
Eigen::VectorXd& g0, const Eigen::MatrixXd& CE, const Eigen::VectorXd& ce0,
const Eigen::MatrixXd& CI, const Eigen::VectorXd& ci0, Eigen::VectorXd& x,
Eigen::VectorXi& A, size_t& q);

double solve_quadprog(Eigen::LLT<Eigen::MatrixXd, Eigen::Lower>& chol,
double c1, Eigen::VectorXd& g0, const Eigen::MatrixXd& CE,
const Eigen::VectorXd& ce0, const Eigen::MatrixXd& CI,
const Eigen::VectorXd& ci0, Eigen::VectorXd& x,
Eigen::VectorXd& y, Eigen::VectorXi& A, size_t& q);
EIQUADPROG_DLLAPI double solve_quadprog(
Eigen::LLT<Eigen::MatrixXd, Eigen::Lower>& chol, double c1,
Eigen::VectorXd& g0, const Eigen::MatrixXd& CE, const Eigen::VectorXd& ce0,
const Eigen::MatrixXd& CI, const Eigen::VectorXd& ci0, Eigen::VectorXd& x,
Eigen::VectorXd& y, Eigen::VectorXi& A, size_t& q);

EIQUADPROG_DEPRECATED
inline double solve_quadprog2(Eigen::LLT<Eigen::MatrixXd, Eigen::Lower>& chol,
Expand All @@ -131,17 +132,17 @@ inline double solve_quadprog2(Eigen::LLT<Eigen::MatrixXd, Eigen::Lower>& chol,
}

/* solve_quadprog is used for on-demand QP solving */
double solve_quadprog(Eigen::MatrixXd& G, Eigen::VectorXd& g0,
const Eigen::MatrixXd& CE, const Eigen::VectorXd& ce0,
const Eigen::MatrixXd& CI, const Eigen::VectorXd& ci0,
Eigen::VectorXd& x, Eigen::VectorXi& activeSet,
size_t& activeSetSize);

double solve_quadprog(Eigen::MatrixXd& G, Eigen::VectorXd& g0,
const Eigen::MatrixXd& CE, const Eigen::VectorXd& ce0,
const Eigen::MatrixXd& CI, const Eigen::VectorXd& ci0,
Eigen::VectorXd& x, Eigen::VectorXd& y,
Eigen::VectorXi& activeSet, size_t& activeSetSize);
EIQUADPROG_DLLAPI double solve_quadprog(
Eigen::MatrixXd& G, Eigen::VectorXd& g0, const Eigen::MatrixXd& CE,
const Eigen::VectorXd& ce0, const Eigen::MatrixXd& CI,
const Eigen::VectorXd& ci0, Eigen::VectorXd& x, Eigen::VectorXi& activeSet,
size_t& activeSetSize);

EIQUADPROG_DLLAPI double solve_quadprog(
Eigen::MatrixXd& G, Eigen::VectorXd& g0, const Eigen::MatrixXd& CE,
const Eigen::VectorXd& ce0, const Eigen::MatrixXd& CI,
const Eigen::VectorXd& ci0, Eigen::VectorXd& x, Eigen::VectorXd& y,
Eigen::VectorXi& activeSet, size_t& activeSetSize);
// }

} // namespace solvers
Expand Down
4 changes: 4 additions & 0 deletions tests/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,10 @@ foreach(test ${TESTS})
endforeach(test ${TESTS})

add_library(testab SHARED TestA.cpp TestB.cpp)
# testab is just a test shared library, so on Windows we export the symbols with
# WINDOWS_EXPORT_ALL_SYMBOLS
set_target_properties(testab PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS TRUE)

target_link_libraries(testab ${PROJECT_NAME})
target_link_libraries(test-integration testab)
if(CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang")
Expand Down