
function [Soln] = GetSoln

%
% Make a Solution Structure
%

SelectionInfo = struct( ...
   'Angles', [], ...
   'JudgementValue', [], ...
   'SelectionTime', [], ...
   'SolutionTime', [], ...
   'BalancingTime', [], ...
   'Iterations', []);

SolnInfo = struct( ...
   'B5', SelectionInfo, ...
   'B9', SelectionInfo, ...
   'B14', SelectionInfo);

AngleAssignment = struct( ...
   'BalancedAvg', SolnInfo, ...
   'BalancedMax', SolnInfo, ...
   'PrimalAvg', SolnInfo, ...
   'PrimalMax', SolnInfo, ...
   'DualAvg', SolnInfo, ...
   'DualMax', SolnInfo, ...
   'InteriorAvg', SolnInfo, ...
   'InteriorMax', SolnInfo, ...
   'SetCover1', SolnInfo, ...
   'SetCover2', SolnInfo, ...
   'Scoring', SolnInfo, ...
   'EntropyAvgBalanced', SolnInfo);

AssignmentInfo = struct( ...
   'JudgementValue', [], ...
   'BalancedAvg', struct( 'Time', []), ...
   'BalancedMax', struct( 'Time', []), ...
   'PrimalAvg', struct( 'Time', []), ...
   'PrimalMax', struct( 'Time', []), ...
   'DualAvg', struct( 'Time', []), ...
   'DualMax', struct( 'Time', []), ...
   'InteriorAvg', struct( 'Time', []), ...
   'InteriorMax', struct( 'Time', []), ...
   'SetCover1', struct( 'Time', []), ...
   'SetCover2', struct( 'Time', []), ...
   'Scoring', struct( 'Time', []), ...
   'EntropyAvgBalanced', struct( 'Time', []));

BeamSelector = struct( ...
   'VQ', AngleAssignment, ...
   'SC1', AngleAssignment, ...
   'SC2', AngleAssignment, ...
   'S', AngleAssignment, ...
   'LS1', SolnInfo, ...
   'LS2', SolnInfo, ...
   'GA1', SolnInfo, ...
   'GA2', SolnInfo, ...
   'SA1', SolnInfo, ...
   'SA2', SolnInfo, ...
   'SA3', SolnInfo );

Soln = struct( ...
   'ProbName', [], ...
   'AngleAssignment', AssignmentInfo, ...
   'BeamSelector', BeamSelector);
