Functions to Determine Blockability

isblockable
% ISBLOCKABLE checks if a set of facets of a polytope can be blocked
%
% Usage: BLOCKABLE=ISBLOCKABLE(S,FACETSET)
%
% S is a prepared polytope
% FACETSET is a vector with entries listing the facet numbers e.g. [1 3]
% referes to facet 1 and 3 of S. If no FACETSET is supplied it is tested
% whether all facets of S can be blockad simultaniously.
%
% BLOCKABLE is true if the facet set is blockable
%
% Example:

 s=demosimplex();
 s=preparepolytope(s);
 s=isblockable(s);

% See also FINDBLOCKABLE, ISCONTROLLABLE, FINDCONTROLLABLE, and GETDISCRETEEQ
findblockable
% FINDBLOCKABLE searches for a blockable facet set on a simplex.
%
% Usage: [BLOCKSET,OUTQUEUE]=FINDBLOCKABLE(S,QUEUE,BLIST)
%
% S is a prepared polytope.
% QUEUE (optional) is a cell array of facet sets. Each facet set is a vector with
% entries listing the facet numbers e.g. [1 3] referes to facet 1 and 3 of s.
% BLIST (optional) is a cell array of facet sets which are known to be
% blockable on the simplex.
%
% OUTQUEUE is the remaining queue of facet sets
% BLOCKSET is the first blockable set found, null if none where found
%
% The algorithms is optimised by removing, from the queue, any subsets
% of blocksets which has already been tested as per the optional argument
% blist.
%
% Example:

 s=demosimplex();
 s=preparepolytope(s);
 blockset=findblockable(s);

% See also ISBLOCKABLE
allblockable
% ALLBLOCKABLE finds all blockable facet sets of a polytope.
%
% Usage BLIST=ALLBLOCKABLE(S,QUEUE)
%
% S is a prepared polytope
% QUEUE is an optional argument limiting the search to the facet sets in q
% and their sub sets.
%
% BLIST is a cell array of blockable sets.
%
% Example
%
% s=demosimplex();
% s=preparepolytope(s);
% blist=allblockable(s);
%
% See also ISBLOCKABLE, FINDBLOCKABLE and PREPAREPOLYTOPE