]> git.donarmstrong.com Git - lilypond.git/commitdiff
lilypond-0.0.9
authorfred <fred>
Mon, 14 Oct 1996 20:11:41 +0000 (20:11 +0000)
committerfred <fred>
Mon, 14 Oct 1996 20:11:41 +0000 (20:11 +0000)
hdr/qlp.hh [new file with mode: 0644]

diff --git a/hdr/qlp.hh b/hdr/qlp.hh
new file mode 100644 (file)
index 0000000..b539fe6
--- /dev/null
@@ -0,0 +1,89 @@
+#ifndef QLP_HH
+#define QLP_HH
+
+#include "matrix.hh"
+
+/// inequality constrained quadratic program
+class Ineq_constrained_qp {
+    friend class Active_constraints;
+
+    svec<Vector> cons;
+    svec<Real> consrhs;
+public:
+    Matrix quad;
+    Vector lin;
+    Real const_term;
+
+    ///
+    void assert_solution(Vector sol) const;
+    /**
+      use a KKT method to assert optimality of sol
+      */
+    /// solve the problem using a projected gradient method
+    Vector solve(Vector start) const;
+    
+    int dim() const{
+       return lin.dim();
+    }
+    /** return the number of variables in the problem */
+    ///
+    void add_inequality_cons(Vector c, double r);
+    /**
+      add a constraint
+
+
+        c*vars >= r
+
+      PRE
+      c.dim() == dim();
+       
+      */
+    ///
+    Ineq_constrained_qp(int novars);
+    /** set up matrices to go with the problem. */
+
+    Real eval(Vector v);
+    /**
+    evaluate the quadratic function for input #v#
+    */
+
+    void eliminate_var(int idx, Real value);
+    void OK()const;
+    void print() const;
+
+};
+
+/// Quadratic programming with mixed linear constraints
+class Mixed_qp :public Ineq_constrained_qp {
+    svec<int> eq_cons;
+    svec<Real> eq_consrhs;
+public:
+    Mixed_qp(int n);
+    void OK() const;
+    void print() const;
+
+    Vector solve(Vector start) const;
+    void add_fixed_var(int i , Real value);
+    
+    ///
+    void add_equality_cons(Vector c, double r);
+    /**
+      add a constraint,
+
+        c*vars == r
+
+      PRE
+      c.dim()==dim();
+     */
+
+};
+/**
+  problem definition of a quadratic optimisation problem with linear
+  inequality and equality constraints
+
+
+    x^T QUAD x /2 + b^T x 
+*/
+
+
+#endif