Works on one or more micro-controllers. Ideally, works on broadest range from 8 bit CPU to 64 bit CPU. At minimum, must work on a 32 bit micro-controller and should work on a 16 bit micro-controller.
Performs an 8×8 bit matrix transpose operation as efficiently as possible. Efficient is minimum clock cycles and minimum processor registers. Where this differs from energy consumption, energy consumption takes precedence.
Works as a building block for larger transpose operations.
Works efficiently with 16×18 bit inputs or suchlike.
Bit matrix transpose algorithm is its own inverse. So, test performs two transpose operations. Test input uses a marching bit test which is a more thorough version of a walking bit test:-
begin 644 transpose-test.c.gz
M'XL(`/QD<ED"`XV1P6[;,`R&[WX*SD$`Q342V6[1`G%V2"^[M+ODL&'+`-66
M$P*2;$C*L*'HNU>T/3?9>I@.$L6/XO^#6B6P10\/PEO\!3LKC.M:)^%S)ZWP
MV!K82>?AD[!&.@?)*EHEP.X7.<]N87>4<-\:UUJ/)[TD2AAUIZ26QCO0PE9'
M-`=X"B*>.C6M[2]Z4/238OM'<>I#&OPV+\!Y87V?G:&IU*F64#I?8[L\?KQ(
MV2!UD8NG_LLJIN>-J64#C]OMUV@6(C2RO\!=-).FQB:*T)`Y-(P"80]56AV%
MA20)\<\%/$<`)^/P8&0-/='7WZC%/M4W0[#^IT3Q5&6IRE-5K*-`M=1.>J:O
M4Y[2D\7Z+'GSE@S9,"^F\@U?J[S,PW9U-7@8248D*ZD^G&]PQ)PP'S$_QT"^
M5;;_L6%962K>6QB!U%7WFXP$@Y.]84WSO-/N*92<H5ZP(,%B%"PN!0&Z\$&^
M8?&<YU]BFI<J]F<=7J*_"[^;^/_$L6%D6W<TU."\M_UAP]_7;P0J$![8'-,Y
?+H)*_S_\'2_#2?L+?8>5_F0-H\IP?P5])VKL/@,`````
`
end
After more extensive testing, code requires something akin to:-
Bit Matrix Transpose
I require one common routine which:-
Implementation contains further documentation:-
Bit matrix transpose algorithm is its own inverse. So, test performs two transpose operations. Test input uses a marching bit test which is a more thorough version of a walking bit test:-
After more extensive testing, code requires something akin to:-
(Usual instructions for uudecode process.)
Post Comment