% TAU0CODE - Identify code from tau0 by number or return code set % % with no input arguments, returns complete code set % with code input, return index of code or throw error for unrecognised % code. % % examples: % codeset = tau0code; % construct complete code set % id = tau0code([ +1 +1 -1 +1 -1 -1 +1 -1 -1 -1 +1 +1 +1 +1 +1 +1 ]) % (returns 12) % % See also ALTCODE, WTT. % Copyright © 2001-2003 Tom Grydeland % This is free software, licensed under GNU GPL version 2 or later function id = tau0code(c) persistent code if isempty(code), code = [ ... [ +1 -1 +1 +1 +1 -1 +1 -1 -1 -1 -1 -1 +1 +1 +1 -1 ]; ... % [Code 1] [ +1 +1 +1 +1 +1 -1 +1 +1 +1 -1 -1 -1 -1 +1 +1 +1 ]; ... % [Code 2] [ +1 -1 -1 +1 +1 -1 -1 +1 +1 +1 -1 +1 +1 -1 -1 -1 ]; ... % [Code 3] [ +1 +1 -1 +1 +1 -1 -1 -1 -1 +1 -1 +1 -1 -1 -1 +1 ]; ... % [Code 4] [ +1 -1 +1 -1 +1 -1 -1 -1 +1 +1 +1 +1 -1 +1 +1 +1 ]; ... % [Code 5] [ +1 +1 +1 -1 +1 -1 -1 +1 -1 +1 +1 +1 +1 +1 +1 -1 ]; ... % [Code 6] [ +1 -1 -1 -1 +1 -1 +1 +1 -1 -1 +1 -1 -1 -1 -1 +1 ]; ... % [Code 7] [ +1 +1 -1 -1 +1 -1 +1 -1 +1 -1 +1 -1 +1 -1 -1 -1 ]; ... % [Code 8] [ +1 -1 +1 +1 -1 -1 -1 -1 -1 +1 +1 -1 -1 -1 -1 -1 ]; ... % [Code 9] [ +1 +1 +1 +1 -1 -1 -1 +1 +1 +1 +1 -1 +1 -1 -1 +1 ]; ... % [Code 10] [ +1 -1 -1 +1 -1 -1 +1 +1 +1 -1 +1 +1 -1 +1 +1 -1 ]; ... % [Code 11] [ +1 +1 -1 +1 -1 -1 +1 -1 -1 -1 +1 +1 +1 +1 +1 +1 ]; ... % [Code 12] [ +1 -1 +1 -1 -1 -1 +1 -1 +1 -1 -1 +1 +1 -1 -1 +1 ]; ... % [Code 13] [ +1 +1 +1 -1 -1 -1 +1 +1 -1 -1 -1 +1 -1 -1 -1 -1 ]; ... % [Code 14] [ +1 -1 -1 -1 -1 -1 -1 +1 -1 +1 -1 -1 +1 +1 +1 +1 ]; ... % [Code 15] [ +1 +1 -1 -1 -1 -1 -1 -1 +1 +1 -1 -1 -1 +1 +1 -1 ]; ... % [Code 16] [ +1 -1 +1 +1 +1 +1 -1 -1 -1 -1 +1 -1 +1 -1 +1 +1 ]; ... % [Code 17] [ +1 +1 +1 +1 +1 +1 -1 +1 +1 -1 +1 -1 -1 -1 +1 -1 ]; ... % [Code 18] [ +1 -1 -1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 -1 +1 ]; ... % [Code 19] [ +1 +1 -1 +1 +1 +1 +1 -1 -1 +1 +1 +1 -1 +1 -1 -1 ]; ... % [Code 20] [ +1 -1 +1 -1 +1 +1 +1 -1 +1 +1 -1 +1 -1 -1 +1 -1 ]; ... % [Code 21] [ +1 +1 +1 -1 +1 +1 +1 +1 -1 +1 -1 +1 +1 -1 +1 +1 ]; ... % [Code 22] [ +1 -1 -1 -1 +1 +1 -1 +1 -1 -1 -1 -1 -1 +1 -1 -1 ]; ... % [Code 23] [ +1 +1 -1 -1 +1 +1 -1 -1 +1 -1 -1 -1 +1 +1 -1 +1 ]; ... % [Code 24] [ +1 -1 +1 +1 -1 +1 +1 -1 -1 +1 -1 -1 -1 +1 -1 +1 ]; ... % [Code 25] [ +1 +1 +1 +1 -1 +1 +1 +1 +1 +1 -1 -1 +1 +1 -1 -1 ]; ... % [Code 26] [ +1 -1 -1 +1 -1 +1 -1 +1 +1 -1 -1 +1 -1 -1 +1 +1 ]; ... % [Code 27] [ +1 +1 -1 +1 -1 +1 -1 -1 -1 -1 -1 +1 +1 -1 +1 -1 ]; ... % [Code 28] [ +1 -1 +1 -1 -1 +1 -1 -1 +1 -1 +1 +1 +1 +1 -1 -1 ]; ... % [Code 29] [ +1 +1 +1 -1 -1 +1 -1 +1 -1 -1 +1 +1 -1 +1 -1 +1 ]; ... % [Code 30] [ +1 -1 -1 -1 -1 +1 +1 +1 -1 +1 +1 -1 +1 -1 +1 -1 ]; ... % [Code 31] [ +1 +1 -1 -1 -1 +1 +1 -1 +1 +1 +1 -1 -1 -1 +1 +1 ]; ... % [Code 32] ]; end; if nargin == 0, id = code; return; end; for id = 1:size(code,1) if isequal(c(:)', code(id,:)), return, end; end error(['code [ ' printcode(c) '] is not a valid tau0 code']);