34 lines
1.7 KiB
Matlab
Executable File
34 lines
1.7 KiB
Matlab
Executable File
function done = save_model_expansion(method,goal_vexity,F_graph,properties)
|
|
global ALREADY_MODELLED REMOVE_THESE_IN_THE_END ALREADY_MODELLED_INDEX
|
|
|
|
done = 0;
|
|
|
|
for variables = properties.models
|
|
save_place = find(variables == ALREADY_MODELLED_INDEX);
|
|
if ~isempty(save_place)%length(ALREADY_MODELLED)>=variables & ~isempty(ALREADY_MODELLED{variables})
|
|
% Ouch, we have already modelled this-one
|
|
if strcmpi(ALREADY_MODELLED{save_place}.method,method)
|
|
% Ok, already modelled using same approach
|
|
done = 1;
|
|
return
|
|
elseif strcmpi(ALREADY_MODELLED{save_place}.method,'graph') & (strcmpi(method,'callback') | strcmpi(method,'integer') | strcmpi(method,'exact'))
|
|
% Replace old graph model with exact model
|
|
REMOVE_THESE_IN_THE_END = [REMOVE_THESE_IN_THE_END ALREADY_MODELLED{save_place}.index];
|
|
ALREADY_MODELLED{save_place}.goal_vexity = goal_vexity;
|
|
ALREADY_MODELLED{save_place}.method = method;
|
|
ALREADY_MODELLED{save_place}.index = getlmiid(F_graph);
|
|
ALREADY_MODELLED{save_place}.properties = properties;
|
|
elseif ((strcmpi(ALREADY_MODELLED{save_place}.method,'integer') | strcmpi(ALREADY_MODELLED{save_place}.method,'exact') | strcmpi(ALREADY_MODELLED{save_place}.method,'callback')) & strcmpi(method,'graph'))
|
|
% Keep old stuff, we are done
|
|
done = 1;
|
|
return
|
|
end
|
|
else
|
|
ALREADY_MODELLED{end+1}.goal_vexity = goal_vexity;
|
|
ALREADY_MODELLED{end}.method = method;
|
|
ALREADY_MODELLED{end}.index = getlmiid(F_graph);
|
|
ALREADY_MODELLED{end}.properties = properties;
|
|
ALREADY_MODELLED_INDEX = [ALREADY_MODELLED_INDEX;variables];
|
|
end
|
|
end
|