DIRECTORY ; QPSolve: CEDAR DEFINITIONS ~ BEGIN IVector: TYPE ~ REF IVectorRep; IVectorRep: TYPE ~ RECORD[n: NAT, s: SEQUENCE len: NAT OF INT]; RVector: TYPE ~ REF RVectorRep; RVectorRep: TYPE ~ RECORD [n: NAT, s: SEQUENCE len: NAT OF REAL]; Matrix: TYPE ~ REF MatrixRep; MatrixRep: TYPE ~ RECORD [m: NAT, s: SEQUENCE len: NAT OF RVector]; NewMatrix: PROC [m, n: NAT] RETURNS [M: Matrix]; QPSolve: PROC [c: RVector, A: Matrix, lobd: RVector, x: RVector, iVar: IVector, nFR: NAT] RETURNS [minFR: NAT] END.. ¨ QPSolve.mesa Copyright Σ 1990, 1992 by Xerox Corporation. All rights reserved. Ken Shoemake, March 30, 1990 5:49 pm PST Data Structures Procedures Solve simple Quadratic Program: minimize | xTx + cTx, subject to Ax = 0 and x > lobd. Iterations start with initial feasible vector x, with x[i B iFX] fixed on their bounds and the rest, x[i B iFR], free. Elements [0..nFR) of iVar store iFR, and [nFR..n) store iFX. Κ¨–"cedarcode" style•NewlineDelimiter ™™ Jšœ Οeœ7™BJ™(J™—codešΟk ˜ K˜—K˜KšΠnxœžœž ˜Kšœž˜J™šΟx™K˜Kšœ žœžœ ˜Kšœ žœžœžœžœžœžœžœ˜?Kšœ žœžœ ˜Kšœ žœžœžœžœžœžœžœ˜AKšœžœžœ ˜Kš œ žœžœžœžœžœžœ ˜CK˜—š  ™ K˜š Οn œžœžœžœ‘œ ˜0K˜—š ‘œžœ‘œ9žœžœ žœ˜nJš œ)ΟmœΟuœ£œ’œ™UJšœ:’œ.’œJ™΄——K˜Kšžœ˜K˜—…—P