pr_loqo.h
上传用户:xfjled
上传日期:2007-05-06
资源大小:150k
文件大小:2k
源码类别:

matlab例程

开发平台:

Matlab

  1. /*
  2.  * File:        pr_loqo.h
  3.  * Purpose:     solves quadratic programming problem for pattern recognition
  4.  *              for support vectors
  5.  *
  6.  * Author:      Alex J. Smola
  7.  * Created:     10/14/97
  8.  * Updated:     11/08/97
  9.  *
  10.  * 
  11.  * Copyright (c) 1997  GMD Berlin - All rights reserved
  12.  * THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE of GMD Berlin
  13.  * The copyright notice above does not evidence any
  14.  * actual or intended publication of this work.
  15.  *
  16.  * Unauthorized commercial use of this software is not allowed
  17.  */
  18. /* verbosity levels */
  19. #define QUIET 0
  20. #define STATUS 1
  21. #define FLOOD 2
  22. /* status outputs */
  23. #define STILL_RUNNING               0
  24. #define OPTIMAL_SOLUTION            1
  25. #define SUBOPTIMAL_SOLUTION         2
  26. #define ITERATION_LIMIT             3
  27. #define PRIMAL_INFEASIBLE           4
  28. #define DUAL_INFEASIBLE             5
  29. #define PRIMAL_AND_DUAL_INFEASIBLE  6
  30. #define INCONSISTENT                7
  31. #define PRIMAL_UNBOUNDED            8
  32. #define DUAL_UNBOUNDED              9
  33. #define TIME_LIMIT                  10
  34. /* 
  35.  * solve the quadratic programming problem
  36.  *
  37.  * minimize   c' * x + 1/2 x' * H * x
  38.  * subject to A*x = b
  39.  *            l <= x <= u
  40.  *
  41.  *  for a documentation see R. Vanderbei, LOQO: an Interior Point Code
  42.  *                          for Quadratic Programming
  43.  */
  44. /*
  45.  * n   : number of primal variables
  46.  * m   : number of constraints (typically 1)
  47.  * h_x : dot product matrix (n.n)
  48.  * a   : constraint matrix (n.m)
  49.  * b   : constant term (m)
  50.  * l   : lower bound (n)
  51.  * u   : upper bound (m)
  52.  *
  53.  * primal : workspace for primal variables, has to be of size 3 n
  54.  *
  55.  *  x = primal; n
  56.  *  g = x + n; n
  57.  *  t = g + n; n
  58.  *
  59.  * dual : workspace for dual variables, has to be of size m + 2 n
  60.  *
  61.  *  y = dual; m
  62.  *  z = y + m; n
  63.  *  s = z + n; n
  64.  *
  65.  * verb       : verbosity level
  66.  * sigfig_max : number of significant digits
  67.  * counter_max: stopping criterion
  68.  * restart    : 1 if restart desired
  69.  *
  70.  */
  71. int pr_loqo(int n, int m, double c[], double h_x[], double a[], double b[],
  72.     double l[], double u[], double primal[], double dual[], 
  73.     int verb, double sigfig_max, int counter_max, 
  74.     double margin, double bound, int restart);
  75. /* 
  76.  * compile with
  77.  cc -O4 -c pr_loqo.c
  78.  cc -xO4 -fast -xarch=v8plus -xchip=ultra -xparallel -c pr_loqo.c
  79.  mex pr_loqo_c.c pr_loqo.o
  80.  cmex4 pr_loqo_c.c pr_loqo.o -DMATLAB4 -o pr_loqo_c4
  81.  *
  82.  */