function z = cpstart(probname,number)
% This function returns the "number" starting point
% associated with the problem probname.gms
% Calling syntax: z = cpstart(probname,number)

% generated Nov 9, 1995 by M.C. Ferris.
% please report any corrections to ferris@cs.wisc.edu

if strcmp(probname,'kojshin') | strcmp(probname,'josephy')
  if number == 1, z = zeros(4,1); return; end
  if number == 2, z = ones(4,1); return; end
  if number == 3, z = 100*ones(4,1); return; end
  if number == 4, z = [1 0 1 0]'; return; end
  if number == 5, z = [1 0 0 0]'; return; end
  if number == 6, z = [0 1 1 0]'; return; end
  if number == 7, z = [0 1 0 1]'; return; end
  if number == 8, z = [1.25 0 0 0.5]'; return; end 
end

if strcmp(probname,'billups')
  if number == 1, z = 0.0; return; end
end

if strcmp(probname,'cycle')
  if number == 1, z = 11.5; return; end
end

if strcmp(probname,'mathinum') 
  if number == 1, z = [2.5000 5.5000 1.5000]'; return; end
  if number == 2, z = [3.5000 4.5000 0.5000]'; return; end
  if number == 3, z = [2.5000 1.5000 1.5000]'; return; end
  if number == 4, z = [3.5000 6.5000 0.5000]'; return; end
  if number == 5, z = [3.0000 0.6000 0.1000]'; return; end
  if number == 6, z = [4.5000 11.0000 0.5000]'; return; end]
end

if strcmp(probname,'mathisum') 
  if number == 1, z = [2.5000 5.5000 1.5000 4.5000]'; return; end
  if number == 2, z = [3.5000 4.5000 0.5000 4.0000]'; return; end
  if number == 3, z = [2.5000 1.5000 1.5000 3.5000]'; return; end
  if number == 4, z = [3.5000 6.5000 0.5000 5.5000]'; return; end
  if number == 5, z = [3.0000 6.0000 1.0000 5.0000]'; return; end
  if number == 6, z = [3.0000 22.0000 1.0000 21.0000]'; return; end
  if number == 7, z = [1.0000 1.0000 1.0000 1.0000]'; return; end
end

if strcmp(probname,'gafni')
  if number == 1, z = zeros(5,1); 
  return; end
  if number == 2, z = [0.0500 0.1000 0.1500 0.2000 0.2500]'; 
  return; end
  if number == 3, z = [0.1000 0.2000 0.3000 0.4000 0.5000]'; 
  return; end
end

if strcmp(probname,'powell_mcp')
  if number == 1, z = [-2.0000 2.0000 2.0000 -1.0000 -1.0000 1.0000 1.0000 1.0000]'; 
  return; end
  if number == 2, z = [-3.0000 3.0000 3.0000 -1.0000 -1.0000 1.0000 1.0000 1.0000]'; 
  return; end
  if number == 3, z = [-10.0000 10.0000 10.0000 -1.0000 -1.0000 1.0000 1.0000 1.0000]'; 
  return; end
  if number == 4, z = [-5.0000 5.0000 5.0000 -1.0000 -1.0000 1.0000 1.0000 1.0000]'; 
  return; end
  if number == 5, z = [-1.0000 1.0000 1.0000 -1.0000 -1.0000 1.0000 1.0000 1.0000]';
  return; end
  if number == 6, z = [-1.7172 1.596 1.8272 0.7636 0.7636 1.0000 1.0000 1.0000]';
  return; end
end
 
if strcmp(probname,'nash')
  if number == 1, z = ones(10,1); 
  return; end
  if number == 2, z = 10*ones(10,1); 
  return; end
  if number == 3, z = [1.0, 1.2, 1.4, 1.6, 1.8, 2.1, 2.3, 2.5, 2.7, 2.9]'; 
  return; end
  if number == 4, z = [7.0, 4.0, 3.0, 1.0, 18.0, 4.0, 1.0, 6.0, 3.0, 2.0]'; 
  return; end  
end

if strcmp(probname,'choi')
  if number == 1, z = [0.4100 0.1428 0.4100 0.1375 0.1075 0.1272 0.1641 ...
      0.4100 0.3110 0.4100 0.4100 0.2700 0.2483]'; 
  return; end
end

if strcmp(probname,'hanskoop')
  if number == 1, z = [0.3*ones(10,1); zeros(4,1)]; 
  return; end
  if number == 2, z = [0.5*ones(10,1); zeros(4,1)]; 
  return; end
  if number == 3, z = [0.0000 0.3000 0.3000 0.0000 0.0000 0.1000 0.3000 ...
      0.0000 0.0000 0.3000 zeros(1,4)]'; 
  return; end
  if number == 4, z = [0.3000 0.0000 0.3000 0.0000 0.3000 0.0000 0.3000 ...
      0.0000 0.3000 0.0000 zeros(1,4)]'; 
  return; end
  if number == 5, z = [1:10 zeros(1,4)]'; 
  return; end
end

if strcmp(probname,'scarfanum') 
  if number == 1, z = [0.2000 0.2000 0.1000 0.1000 0.2000 0.5000 0.0000 ...
      4.0000 0.0000 0.0000 0.0000 0.4000 0.0000]'; 
  return; end
  if number == 2, z = [0.1000 0.1000 0.1000 0.1000 0.2000 0.5000 0.0000 ...
      4.0000 0.0000 0.0000 0.0000 0.4000 0.0000]'; 
  return; end
  if number == 3, z = [1.0000 1.0000 1.0000 1.0000 1.0000 0.4000 1.0000 ...
      0.0000 3.0000 0.0000 0.0000 1.0000 0.0000]'; 
  return; end
  if number == 4, z = [1.0000 1.1400 0.2490 0.4810 0.9380 0.4630 0.0000 ...
      3.9390 0.0060 0.0000 0.0000 1.4380 0.0000]'; 
  return; end
end
if strcmp(probname,'scarfasum') 
  if number == 1, z = [0.2000 0.2000 0.1000 0.1000 0.2000 0.5000 0.0000 ...
      4.0000 0.0000 0.0000 0.0000 0.4000  0.0000 0.0]'; 
  return; end
  if number == 2, z = [0.1000 0.1000 0.1000 0.1000 0.2000 0.5000 0.0000 ...
      4.0000 0.0000 0.0000 0.0000 0.4000 0.0000 0.0]'; 
  return; end
  if number == 3, z = [0.1600 0.1600 0.1600 0.1600 0.1600 0.4000 1.0000 ...
      0.0000 3.0000 0.0000 0.0000 1.0000 0.0000 0.0]'; 
  if number == 4, z = [1.0000 1.14 0.731 0.249 0.481 0.938 0.463 0.0 ...
      3.939 0.006 0.0 0.0 0.438 0.0]';
  return; end
end

if strcmp(probname,'bertsekas')
  if number == 1, z = zeros(15,1); 
  return; end
  if number == 2, z = 0.5*ones(15,1); 
  return; end
  if number == 3, z = 100.0*ones(15,1); 
  return; end
  if number == 4, z = zeros(15,1);
  return; end
  if number == 5, z = [zeros(10,1); 100*ones(5,1)];
  return; end
  if number == 6, z = [zeros(10,1); ones(5,1)];
  return; end
end

if strcmp(probname,'colvnlp')
  if number == 1, z = 0.0001*ones(15,1); z(12) = 60.0000; 
  return; end
  if number == 2, z = [0.0000 0.0000 0.0000 0.0000 1.0000 0.0000 0.0000 ...
      0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 5.0000 1.0000]'; 
  return; end
  if number == 3, z = [0.0 0.0 5.17404 0.0 3.0611087 11.8395454 0.0 0.0 ...
      0.103894 0.0 0.3 0.3334676 0.4 0.4283101 0.223964]';
  return; end
  if number == 4, z = [1.001*ones(5,1); 1.0001*ones(10,1)];
  return; end
  if number == 5, z = ones(15,1);
  return; end
  if number == 6, z = [0.0 0.0 7.1095325 0.0 6.07997629 16.08565651 ...
      0.3 0.34304936 0.4 0.60368375 0.25579981]':
  return; end
end

if strcmp(probname,'freebert')
  if number == 1, z = [zeros(5,1); [0.1:0.1:0.5]'; zeros(5,1)];
  return; end
  if number == 2, z = [zeros(5,1); [0.1:0.1:0.5]'; 4.0e+03*ones(5,1)];
  return; end
  if number == 3, z = [zeros(5,1); [0.1:0.1:0.5]'; ones(5,1)];
  return; end
  if number == 4, z = zeros(15,1);
  return; end
  if number == 5, z = [zeros(10,1); 4.0e+03*ones(5,1)];
  return; end
  if number == 6, z = [zeros(10,1); ones(5,1)];
  return; end
  if number == 7, z = [0.5*ones(15,1)];
  return; end
end

if strcmp(probname,'explcp')
  if number == 1, z = zeros(16,1); 
  return; end
end

if strcmp(probname,'powell')
  if number == 1, z = [0.0000 2.0000 2.0000 0.0000 0.0000 2.0000 0.0000 ...
      0.0000 1.0000 1.0000 0.0000 0.0000 0.0000 0.0000 0.0 0.0000]'; 
  return; end
  if number == 2, z = [0.0000 3.0000 3.0000 0.0000 0.0000 3.0000 0.0000 ...
      0.0000 1.0000 1.0000 0.0000 0.0000 0.0000 0.0000 0.0  0.0000]'; 
  return; end
  if number == 3, z = [0.0000 10.0000 10.0000 0.0000 0.0000 10.0000 0.0000 0.0000 ...
      1.0000 1.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000]'; 
  return; end
  if number == 4, z = [0.0000 5.0000 5.0000 0.0000 0.0000 5.0000 0.0000 ...
      0.0000 1.0000 1.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000]'; 
  return; end
end

if strcmp(probname,'colvdual')
  if number == 1, z = 0.0001*ones(20,1); z(7) = 60.0000;
  return; end
  if number == 2, z = [0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 ...
      5.0000 1.0000 0.0000 0.0000 0.0000 0.0000 1.0000 0.0000 ...
   0.0000 0.0000 0.0000 1.0000]'; 
  return; end
  if number == 3, z = [0.0 0.0 5.17404 0.0 3.0611087 11.8395454 0.0 0.0 ...
  0.103894 0.0 0.3 0.3334676 0.4 0.4283101 0.223964 0.0 0.0 0.0 0.0 0.0]';
  return; end
  if number == 4, z = zeros(20,1);
  return; end
end

if strcmp(probname,'sppe')
  if number == 1, z = zeros(27,1); 
  return; end
  if number == 2, z = 10*ones(27,1); 
  return; end
  if number == 3, z = [7.3 0.0 0.44 5.65 30.39 2.29 1.9 0.0 21.9 15 30 25 ...
     6.0 2.0 0.0 0.0 0.4 2.3 16 17 17 27 26 27 22 23 16]';
  return; end
end

if strcmp(probname,'hydroc06')
  if number == 1, z = [100.0000 100.0000 100.0000 100.0000 100.0000 100.0000 ...
      0.0000 0.2000 0.9000 0.0000 0.2000 0.8000 0.0500 0.3000 0.8000 ...
   0.1000 0.3000 0.6000 0.3000 0.5000 0.3000 0.6000 0.6000 0.0000 ...
   300.0000 300.0000 300.0000 300.0000 300.0000]'; 
  return; end
end

if strcmp(probname,'methan08')
  if number == 1, z = [120.0000 110.0000 100.0000  88.0000  86.0000  84.0000  80.0000 ...
      76.0000   0.0920 0.9080 0.1819 0.8181 0.2840 0.7160 0.3051 0.6949 ...
   0.3566 0.6434 0.4680 0.5320 0.6579 0.3421 0.8763 0.1237 ...
  886.3700 910.0100 922.5200 926.4500 935.5600 952.8300 975.7300]'; 
  return; end
end

if strcmp(probname,'scarfbnum')
  if number == 1, z = [0.0714*ones(13,1); ones(26,1)]; 
  return; end
  if number == 2, z = [0.0714*ones(13,1); zeros(26,1)]; 
  return; end
end

if strcmp(probname,'scarfbsum')
  if number == 1, z = [ones(39,1); 0.0]; 
  return; end
  if number == 2, z = [ones(13,1); zeros(27,1)]; 
  return; end
end

if strcmp(probname,'pies')
  if number == 1, z = [300.0000 300.0000 400.0000 200.0000 300.0000 600.0000 ...
      1.10e+03 1.00e+03 1.30e+03 1.00e+03   0.0000 828.0000 1.02e+03 ...
  84.0000 2.08e+03   0.0000   0.0000 2.36e+03  22.0000 1.22e+03 ...
 1.18e+03   0.0000   0.0000 830.0000 998.0000 180.0000  11.7000 ...
  13.7000  15.8000  16.0000  11.9000  12.4000   1.0000 1.0000 ...
 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000  1.0000]'; 
  return; end
end

if strcmp(probname,'tobin')
  if number == 1, z = zeros(42,1); 
  return; end
  if number == 2, z = ones(42,1); 
  return; end
  if number == 3, z = [1.0 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 ...
     1.0 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 1.0 1.1 1.2 1.3 ...
     1.4 1.5 1.6 1.7 1.8 1.9 1.0 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 ...
     1.9 1.0 1.1]';
  return; end
  if number == 4, z = [0.0 0.0 0.0 0.0 0.0 0.0 8.9 5.9 3.5 ...
     0.0 0.0 0.0 0.0 0.0 0.0 0.0 19.1 19.5 15.6 18.6 19.6 ...
     12.4 0.0 0.0 0.0 0.0 10.7 0.0 0.0 0.0 15.9 0.0 3.8 7.86 ...
     0.0 0.0 0.0 18.0 22.4 20.8 16.8 27]';
  return; end
end

if strcmp(probname,'hydroc20')
  if number == 1, z = [100.0000*ones(1,20)  ...
      0.0000 0.3000 0.1000 0.0000 0.3000 0.9000 0.0100 0.3000 ...
   0.9000 0.2000 0.4000 0.8000 0.0500 0.4000 0.8000 0.0700 ...
   0.4500 0.8000 0.0900 0.5000 0.7000 0.1000 0.5000 0.7000 ...
   0.1500 0.5000 0.6000 0.2000 0.5000 0.6000 0.2500 0.6000 ...
   0.5000 0.3000 0.6000 0.5000 0.3500 0.6000 0.5000 0.4000 ...
   0.6000 0.4000 0.4000 0.7000 0.4000 0.4200 0.7000 0.4000 ...
   0.4500 0.7500 0.3000 0.4500 0.7500 0.2000 0.5000 0.8000 ...
   0.1000 0.5000 0.8000 0.0000  300.0000*ones(1,19)]'; 
  return; end
end

if strcmp(probname,'ehl_kost')
  if number == 1, z = [1.6000 [0.0010:0.0010:0.0390] ...
      0.0000 0.3122 0.4359 0.5268 0.6000 0.6614 0.7141 0.7599 ...
   0.8000 0.8352 0.8660 0.8930 0.9165 0.9367 0.9539 0.9682 ...
   0.9798 0.9887 0.9950 0.9987 1.0000 0.9987 0.9950 0.9887 ...
   0.9798 0.9682 0.9539 0.9367 0.9165 0.8930 0.8660 0.8352 ...
   0.8000 0.7599 0.7141 0.6614 0.6000 0.5268 0.4359 0.3122 zeros(1,21)]';
  return; end;
  if number == 2, z = [1.6000 [0.0010:0.0010:0.0390] ...
      0.0000   0.3122   0.4359   0.5268   0.6000   0.6614   0.7141 ...
   0.7599   0.8000   0.8352   0.8660   0.8930   0.9165   0.9367 ...
   0.9539   0.9682   0.9798   0.9887   0.9950   0.9987   1.0000 ...
   0.9987   0.9950   0.9887   0.9798   0.9682   0.9539   0.9367 ...
   0.9165   0.8930   0.8660   0.8352   0.8000   0.7599   0.7141 ...
   0.6614   0.6000   0.5268   0.4359   0.3122   zeros(1,21)]'; 
  return; end
  if number == 3, z = [1.6000 [0.0010:0.0010:0.0390] ...
      0.0000   0.3122   0.4359   0.5268   0.6000   0.6614   0.7141 ...
   0.7599   0.8000   0.8352   0.8660   0.8930   0.9165   0.9367 ...
   0.9539   0.9682   0.9798   0.9887   0.9950   0.9987   1.0000 ...
   0.9987   0.9950   0.9887   0.9798   0.9682   0.9539   0.9367 ...
   0.9165   0.8930   0.8660   0.8352   0.8000   0.7599   0.7141 ...
   0.6614   0.6000   0.5268   0.4359   0.3122   zeros(1,21)]'; 
  return; end
end

if strcmp(probname,'bert_oc')
  if number == 1, z = zeros(5000,1); 
  return; end;
  if number == 2, z = [ones(1000,1); zeros(5000,1)];
  return; end;
end

if strcmp(probname,'bratu')
  if number == 1, z = 0.5000*ones(5625,1); 
  return; end;
end

if strcmp(probname,'obstacle')
  if number == 2, z = ones(2500,1); 
  return; end;
end

if strcmp(probname,'pgvon105')
  if number == 1, z = ones(105,1); 
  return; end;
  if number == 2  | number == 3, 
    z = [2.0000    1.0000    0.5000    1.0000    1.2000 ...
    6.0000    4.0000    2.0000    1.0000    0.9000 ...
    0.8000    0.7000    0.6000    0.5000    0.4000 ...
    0.3000    0.2000    0.1000    0.0500    0.0000 ...
    0.0000    0.0000    0.0000    0.0000    0.0000 ...
   20.0000    1.0000         0         0         0 ...
         0         0         0         0         0 ...
         0         0         0         0         0 ...
         0         0         0         0         0 ...
         0         0         0         0    5.0000 ...
    5.0000    5.0000    5.0000         0         0 ...
         0    1.0000    1.0000    1.0000         0 ...
         0         0         0         0         0 ...
         0         0         0         0         0 ...
         0         0    3.0000    5.0000    4.0000 ...
    3.0000         0         0         0         0 ...
         0         0         0         0         0 ...
         0    5.0000    5.0000    5.0000    5.0000 ...
         0         0         0         0         0 ...
         0         0         0         0         0 ...
         0         0         0         0         0]';
    if number == 3,
      z = max(z,1e-6*ones(105,1));
    end
  return; end
end

if strcmp(probname,'billups')
  if number == 1, z = 0.0000; return; end
  if number == 2, z = 0.0100; return; end
  if number == 3, z = 0.0200; return; end
end

error('no such starting point found');
return;

