%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%% Matrix A is the top left 16x512 submatrix of OEIS A195467 (consecutive Gray code permutations) %%%%%%%%% and shows the 16 different powers of the 9-bit gray code permutation: g8=[1 0 0 0 0 0 0 0; 0 1 0 0 0 0 0 0; 0 0 0 1 0 0 0 0; 0 0 1 0 0 0 0 0; 0 0 0 0 0 0 0 1; 0 0 0 0 0 0 1 0; 0 0 0 0 1 0 0 0; 0 0 0 0 0 1 0 0]; g16=[g8 zeros(8); zeros(8) rot90(g8)']; g32=[g16 zeros(16); zeros(16) rot90(g16)']; g64=[g32 zeros(32); zeros(32) rot90(g32)']; g128=[g64 zeros(64); zeros(64) rot90(g64)']; g256=[g128 zeros(128); zeros(128) rot90(g128)']; g512=[g256 zeros(256); zeros(256) rot90(g256)']; A = [ [0:511]; [0:511]*g512; [0:511]*g512^2; [0:511]*g512^3; [0:511]*g512^4; [0:511]*g512^5; [0:511]*g512^6; [0:511]*g512^7; [0:511]*g512^8 [0:511]*g512^9; [0:511]*g512^10; [0:511]*g512^11; [0:511]*g512^12; [0:511]*g512^13; [0:511]*g512^14; [0:511]*g512^15 ]; %%% whos A %%% Name Size Bytes Class Attributes %%% A 16x512 65536 double %%% A(:,1:32) = %%% 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 %%% 0 1 3 2 6 7 5 4 12 13 15 14 10 11 9 8 24 25 27 26 30 31 29 28 20 21 23 22 18 19 17 16 %%% 0 1 2 3 5 4 7 6 10 11 8 9 15 14 13 12 20 21 22 23 17 16 19 18 30 31 28 29 27 26 25 24 %%% 0 1 3 2 7 6 4 5 15 14 12 13 8 9 11 10 30 31 29 28 25 24 26 27 17 16 18 19 22 23 21 20 %%% 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 17 16 19 18 21 20 23 22 25 24 27 26 29 28 31 30 %%% 0 1 3 2 6 7 5 4 12 13 15 14 10 11 9 8 25 24 26 27 31 30 28 29 21 20 22 23 19 18 16 17 %%% 0 1 2 3 5 4 7 6 10 11 8 9 15 14 13 12 21 20 23 22 16 17 18 19 31 30 29 28 26 27 24 25 %%% 0 1 3 2 7 6 4 5 15 14 12 13 8 9 11 10 31 30 28 29 24 25 27 26 16 17 19 18 23 22 20 21 %%% 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 %%% 0 1 3 2 6 7 5 4 12 13 15 14 10 11 9 8 24 25 27 26 30 31 29 28 20 21 23 22 18 19 17 16 %%% 0 1 2 3 5 4 7 6 10 11 8 9 15 14 13 12 20 21 22 23 17 16 19 18 30 31 28 29 27 26 25 24 %%% 0 1 3 2 7 6 4 5 15 14 12 13 8 9 11 10 30 31 29 28 25 24 26 27 17 16 18 19 22 23 21 20 %%% 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 17 16 19 18 21 20 23 22 25 24 27 26 29 28 31 30 %%% 0 1 3 2 6 7 5 4 12 13 15 14 10 11 9 8 25 24 26 27 31 30 28 29 21 20 22 23 19 18 16 17 %%% 0 1 2 3 5 4 7 6 10 11 8 9 15 14 13 12 21 20 23 22 16 17 18 19 31 30 29 28 26 27 24 25 %%% 0 1 3 2 7 6 4 5 15 14 12 13 8 9 11 10 31 30 28 29 24 25 27 26 16 17 19 18 23 22 20 21 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%% Matrix B0 is the top left 16x512 submatrix of OEIS A197819 %%%%%%%%% and shows 16 binary Walsh functions w(A001317) of length 512: %%% H is the binary Walsh matrix of order 512: H = (hadamard(512)-1)/(-2) ; %%% whos H %%% Name Size Bytes Class Attributes %%% H 512x512 2097152 double %%% H(1:16,1:16) = %%% 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 %%% 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 %%% 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 %%% 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 %%% 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 %%% 0 1 0 1 1 0 1 0 0 1 0 1 1 0 1 0 %%% 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 %%% 0 1 1 0 1 0 0 1 0 1 1 0 1 0 0 1 %%% 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 %%% 0 1 0 1 0 1 0 1 1 0 1 0 1 0 1 0 %%% 0 0 1 1 0 0 1 1 1 1 0 0 1 1 0 0 %%% 0 1 1 0 0 1 1 0 1 0 0 1 1 0 0 1 %%% 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 %%% 0 1 0 1 1 0 1 0 1 0 1 0 0 1 0 1 %%% 0 0 1 1 1 1 0 0 1 1 0 0 0 0 1 1 %%% 0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 %%% Define binary Walsh functions w(A001317) of lengh 512: % The first 16 elements of OEIS A001317 (Sierpinski triangle rows read like binary numbers) are: % 1, 3, 5, 15, 17, 51, 85, 255, 257, 771, 1285, 3855, 4369, 13107, 21845, 65535 % As these numbers exceed the size of H % they are replaced by their modulo 512 values: % 1, 3, 5, 15, 17, 51, 85, 255, 257, 259, 261, 271, 273, 307, 341, 511 % As Walsh functions are counted from 0 and MATLAB counts indexes from 1 % the 1 has to be added to each of these numbers. B0 = cell2mat( { H( 1 + 1 , : ) ; H( 3 + 1 , : ) ; H( 5 + 1 , : ) ; H( 15 + 1 , : ) ; H( 17 + 1 , : ) ; H( 51 + 1 , : ) ; H( 85 + 1 , : ) ; H( 255 + 1 , : ) ; H( 257 + 1 , : ) ; H( 259 + 1 , : ) ; H( 261 + 1 , : ) ; H( 271 + 1 , : ) ; H( 273 + 1 , : ) ; H( 307 + 1 , : ) ; H( 341 + 1 , : ) ; H( 511 + 1 , : ) } ) ; %%% B0 is repeatedly streched: % function [y] = strech(x) % y = zeros(16,512) ; % for k=1:256 % y(1:16,2*k-1) = x(1:16,k) ; % y(1:16,2*k) = x(1:16,k) ; % end % end B1 = strech(B0) ; B2 = strech(B1) ; B3 = strech(B2) ; B4 = strech(B3) ; B5 = strech(B4) ; B6 = strech(B5) ; B7 = strech(B6) ; B8 = strech(B7) ; %%% whos B0 B1 B2 %%% Name Size Bytes Class Attributes %%% B0 16x512 65536 double %%% B1 16x512 65536 double %%% B2 16x512 65536 double %%% etc. %%% B0(:,1:32) = %%% 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 %%% 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 %%% 0 1 0 1 1 0 1 0 0 1 0 1 1 0 1 0 0 1 0 1 1 0 1 0 0 1 0 1 1 0 1 0 %%% 0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 %%% 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 %%% 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 %%% 0 1 0 1 1 0 1 0 0 1 0 1 1 0 1 0 1 0 1 0 0 1 0 1 1 0 1 0 0 1 0 1 %%% 0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 1 0 0 1 0 1 1 0 0 1 1 0 1 0 0 1 %%% 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 %%% 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 %%% 0 1 0 1 1 0 1 0 0 1 0 1 1 0 1 0 0 1 0 1 1 0 1 0 0 1 0 1 1 0 1 0 %%% 0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 %%% 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 %%% 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 %%% 0 1 0 1 1 0 1 0 0 1 0 1 1 0 1 0 1 0 1 0 0 1 0 1 1 0 1 0 0 1 0 1 %%% 0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 1 0 0 1 0 1 1 0 0 1 1 0 1 0 0 1 %%% B1(:,1:32) = %%% 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 %%% 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 %%% 0 0 1 1 0 0 1 1 1 1 0 0 1 1 0 0 0 0 1 1 0 0 1 1 1 1 0 0 1 1 0 0 %%% 0 0 1 1 1 1 0 0 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 1 1 1 1 0 0 %%% 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 %%% 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 %%% 0 0 1 1 0 0 1 1 1 1 0 0 1 1 0 0 0 0 1 1 0 0 1 1 1 1 0 0 1 1 0 0 %%% 0 0 1 1 1 1 0 0 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 1 1 1 1 0 0 %%% 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 %%% 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 %%% 0 0 1 1 0 0 1 1 1 1 0 0 1 1 0 0 0 0 1 1 0 0 1 1 1 1 0 0 1 1 0 0 %%% 0 0 1 1 1 1 0 0 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 1 1 1 1 0 0 %%% 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 %%% 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 %%% 0 0 1 1 0 0 1 1 1 1 0 0 1 1 0 0 0 0 1 1 0 0 1 1 1 1 0 0 1 1 0 0 %%% 0 0 1 1 1 1 0 0 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 1 1 1 1 0 0 %%% B2(:,1:32) = %%% 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 %%% 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 %%% 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 %%% 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 %%% 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 %%% 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 %%% 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 %%% 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 %%% 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 %%% 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 %%% 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 %%% 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 %%% 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 %%% 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 %%% 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 %%% 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 %%% etc. %%% The entries of B0,B1,... are the binary digits of the entries of Bsum: Bsum = B0 + 2.*B1 + 4.*B2 + 8.*B3 + 16.*B4 + 32.*B5 + 64.*B6 + 128.*B7 + 256.*B8 ; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%% The matrices A and Bsum are equal: isequal(A,Bsum) ans = 1
Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.
Alternative Proxies: