diff options
Diffstat (limited to 'utils')
| -rwxr-xr-x | utils/gentranscode.sh | 47 | ||||
| -rwxr-xr-x | utils/gentransswitch.sh | 8 |
2 files changed, 45 insertions, 10 deletions
diff --git a/utils/gentranscode.sh b/utils/gentranscode.sh index f820d7c..63888c6 100755 --- a/utils/gentranscode.sh +++ b/utils/gentranscode.sh | |||
| @@ -3,15 +3,42 @@ | |||
| 3 | gcc -DDEBUG h48_to_src.c ../src/cube.c -o h48_to_src | 3 | gcc -DDEBUG h48_to_src.c ../src/cube.c -o h48_to_src |
| 4 | gcc -DDEBUG invert.c ../src/cube.c -o invert | 4 | gcc -DDEBUG invert.c ../src/cube.c -o invert |
| 5 | 5 | ||
| 6 | for f in transform_??_???.txt; do | 6 | # Old version |
| 7 | trans="$(echo $f | sed 's/.*_// ; s/\.txt//')" | 7 | genarray() { |
| 8 | printf '[%s] = ' "$trans" | 8 | for f in transform_??_???.txt; do |
| 9 | if [ "$1" = "-i" ]; then | 9 | trans="$(echo $f | sed 's/.*_// ; s/\.txt//')" |
| 10 | ./invert <"$f" | ./h48_to_src | 10 | printf '[%s] = ' "$trans" |
| 11 | else | 11 | if [ "$1" = "-i" ]; then |
| 12 | ./h48_to_src <"$f" | 12 | ./invert <"$f" | ./h48_to_src |
| 13 | fi | 13 | else |
| 14 | printf ',\n' | 14 | ./h48_to_src <"$f" |
| 15 | done | 15 | fi |
| 16 | printf ',\n' | ||
| 17 | done | ||
| 18 | } | ||
| 16 | 19 | ||
| 20 | genfuncs() { | ||
| 21 | for f in transform_??_???.txt; do | ||
| 22 | trans="$(echo $f | sed 's/.*_// ; s/\.txt//')" | ||
| 23 | printf 'static inline cube_t\ninline_trans_%s' "$trans" | ||
| 24 | [ "$1" = "-i" ] && printf '_inverse' | ||
| 25 | printf '(cube_t c)\n{\n' | ||
| 26 | printf '\tcube_t ret;\n' | ||
| 27 | printf '\tcube_t tn = {\n' | ||
| 28 | ./h48_to_src <"$f" | sed 's/^/\t/' | \ | ||
| 29 | tail -n 3 | head -n 2 | ||
| 30 | printf '\t};\n\tcube_t ti = {\n' | ||
| 31 | ./invert <"$f" | ./h48_to_src | sed 's/^/\t/' | \ | ||
| 32 | tail -n 3 | head -n 2 | ||
| 33 | printf '\t};\n\n' | ||
| 34 | printf '\tret = compose(tn, c);\n' | ||
| 35 | printf '\tret = compose(ret, ti);\n' | ||
| 36 | if [ -n "$(echo "$trans" | grep "m")" ]; then | ||
| 37 | printf '\tret = flipallcorners(ret);\n' | ||
| 38 | fi | ||
| 39 | printf '\n\treturn ret;\n}\n\n' | ||
| 40 | done | ||
| 41 | } | ||
| 42 | |||
| 43 | genfuncs | ||
| 17 | rm -f h48_to_src invert | 44 | rm -f h48_to_src invert |
diff --git a/utils/gentransswitch.sh b/utils/gentransswitch.sh new file mode 100755 index 0000000..6883973 --- /dev/null +++ b/utils/gentransswitch.sh | |||
| @@ -0,0 +1,8 @@ | |||
| 1 | #!/bin/sh | ||
| 2 | |||
| 3 | printf '\tswitch (t) {\n' | ||
| 4 | for f in transform_??_???.txt; do | ||
| 5 | t="$(echo $f | sed 's/.*_// ; s/\.txt//')" | ||
| 6 | printf '\tcase %s:\n\t\treturn inline_trans_%s(c);\n' "$t" "$t" | ||
| 7 | done | ||
| 8 | printf '\t}\n' | ||
