# NOT RUN {
set.seed(1)
n <- 5
x_init <- cbind(runif(n))
w <- runif(n)
Q <- 3*diag(n) # minimize sum(3*x^2 + 3*x)
l <- cbind(rep(3,n)) # minimize sum(3*x^2 + 3*x)
C_eq <- rbind(1,w) # constraints: sum(x) == 1, sum(w*x) == 5
C_ineq <- rbind(diag(n),-diag(n)) # constraints: all(x >= -4) & all(x <= 4)
t_eq <- rbind(1,5) # constraints: sum(x) == 1, sum(w*x) == 5
t_ineq <- cbind(rep(c(4,4),each=n)) # constraints: all(x >= -4) & all(x <= 4)
output <- qp_solver(Q = Q,
C_eq = C_eq,
C_ineq = C_ineq,
l=l,
t_eq = t_eq,
t_ineq = t_ineq,
x = x_init,
tol = 1e-15)
sum(output$x) # constraints: sum(x) == 1
sum(w*output$x) # constraints: sum(w*x) == 5
all(output$x >= -4) # constraints: all(x >= -4)
all(output$x <= 4) # constraints: all(x <= 4)
# }
Run the code above in your browser using DataLab