*******************************************************************
This package contains the routines for the thesis 
"Colourful Feasibility: Algorithms, Bounds, and Implications" ([1])
and the paper "The Colourful Feasibility Problem" ([2])
*******************************************************************


The features in this package depends on the following external components:
  MATLAB Optimization Toolbox      http://www.mathworks.com/products/optimization/
  SeDuMi                           http://sedumi.mcmaster.ca/
  YALMIP                           http://control.ee.ethz.ch/~joloef/yalmip.php


Following are the brief descriptions of files.


The random generators of Colourful Feasibility Problems (for [1][2]):
  cfp_gencore_highdensity.m
  cfp_gencore_lowdensity.m
  cfp_gencore_middensity.m
  cfp_gencore_random.m
  cfp_gencore_tube.m
  cfp_gen_infeasible.m
  cfp_gen_random.m

The solvers of Colourful Core Feasibility Problems (for [1][2]):
  cfp_solver_bo1.m           (depends on Matlab Optimization Toolbox)
  cfp_solver_bo2.m           (depends on Matlab Optimization Toolbox)
  cfp_solver_multiupdate.m   (depends on Matlab Optimization Toolbox)
  cfp_solver_maxvolume.m            
  cfp_solver_randompick.m
  cfp_solver_hybrid.m        (for [2] only)
  cfp_solver_mbo2            (for [2] only)

The solvers for general Colourful Feasibility Problems (for [1]):
  cfp_solver_enumstretch.m
  cfp_solver_sdprelax.m      (for infeasibility detection, depends on SeDuMi and YALMIP)

The test script of solvers and random generators (for [1]):
  test_gen.m
  test_gencore.m
  test_infeasible.m

The utility subroutines used by random generators and solvers (for [1][2]):
  private/accdot.m                  uses heuristic to get numerically accurate dot product
  private/accnorm.m                 uses heuristic to get numerically accurate norm
  private/accsum.m                  uses heuristic to get numerically accurate sum
  private/rand_int.m                generates matrix of random integers
  private/rand_real.m               generates matrix of random real numbers               
  private/regular_simplex.m         generates the coordinates of regular simplices
  
The script of generating and organizing infeasible cases (for [1]):
  infeaGen.m
  
The infeasible cases (for [1]):
  infeasi_cases/infeasi<dimension number>d<integer used as id>.mat
  
The test results (for [1]):
  <random generator name><dimension number>d.mat            stores the test results
  extract_summary.m                                         extracts the summary of test results

The initialization routines of colourful simplex (for [2]):
  cfp_init_random.m
  cfp_init_proj.m
  cfp_init_maxdist.m
  cfp_init_regular.m
