diff options
| author | nsfisis <nsfisis@gmail.com> | 2024-09-11 03:28:16 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2024-09-11 03:28:16 +0900 |
| commit | 84bac718cf36291b7bc8004b8e3c0f60fc9ec39d (patch) | |
| tree | d34051df813d404ef8cf662fd8447de9cec80b27 /problems | |
| parent | 861ef1d0f86b762b6a88f4579d04f1dd9b8f1bab (diff) | |
| download | mncore-challenge-84bac718cf36291b7bc8004b8e3c0f60fc9ec39d.tar.gz mncore-challenge-84bac718cf36291b7bc8004b8e3c0f60fc9ec39d.tar.zst mncore-challenge-84bac718cf36291b7bc8004b8e3c0f60fc9ec39d.zip | |
13-Mod-3 (incomplete)
Diffstat (limited to 'problems')
| -rw-r--r-- | problems/13-Mod-3/08.vsm | 34 | ||||
| -rw-r--r-- | problems/13-Mod-3/a.rb | 56 |
2 files changed, 90 insertions, 0 deletions
diff --git a/problems/13-Mod-3/08.vsm b/problems/13-Mod-3/08.vsm index 04838b2..6d9783d 100644 --- a/problems/13-Mod-3/08.vsm +++ b/problems/13-Mod-3/08.vsm @@ -1,3 +1,37 @@ +# (32 / 8).times do |i| +# j = i * 8 +# # itof (1) +# puts "ior $lm#{j}v $lr0 $nowrite" +# end +# puts +# (32 / 8).times do |i| +# j = i * 8 +# # itof (2) +# puts "fvadd $aluf -$lr0 $ls#{j}v" +# end +# puts +# (32 / 8).times do |i| +# j = i * 8 +# # /3 +# puts "fvmul $ls#{j}v $lr4 $nowrite" +# end +# puts +# (32 / 8).times do |i| +# j = i * 8 +# # ftoi +# puts "fftoi $mauf $ls#{j+32}v" +# end +# puts +# (32 / 8).times do |i| +# j = i * 8 +# # x3 +# puts "ipackbit $ls#{j+32}v $lr8 $nowrite" +# puts "iadd $ls#{j+32}v $aluf $nowrite" +# # %3 +# puts "isub $lm#{j}v $aluf $ln#{j}v" +# puts +# end + imm f"8388608" $r0v imm f"0.3333333333333333333333" $r4v diff --git a/problems/13-Mod-3/a.rb b/problems/13-Mod-3/a.rb new file mode 100644 index 0000000..b0e909b --- /dev/null +++ b/problems/13-Mod-3/a.rb @@ -0,0 +1,56 @@ +def f1(n) + n = ((n >> 0) & 0b11) + + ((n >> 2) & 0b11) + + ((n >> 4) & 0b11) + + ((n >> 6) & 0b11) + + 0 + n = ((n >> 0) & 0b11) + + ((n >> 2) & 0b11) + + ((n >> 4) & 0b11) + + ((n >> 6) & 0b11) + + 0 + n = ((n >> 0) & 0b11) + + ((n >> 2) & 0b11) + + ((n >> 4) & 0b11) + + ((n >> 6) & 0b11) + + 0 + n == 3 ? 0 : n +end + +def f2(n) + n = ((n >> 0) & 0b11) + + ((n >> 2) & 0b11) + + ((n >> 4) & 0b11) + + ((n >> 6) & 0b11) + + 0 + n = ((n >> 0) & 0b11) + + ((n >> 2) & 0b11) + + 0 + n = ((n >> 0) & 0b11) + + ((n >> 2) & 0b11) + + 0 + n == 3 ? 0 : n +end + +def f3(n) + n = ((n >> 0) & 0b1111) + + ((n >> 4) & 0b1111) + + 0 + n = ((n >> 0) & 0b11) + + ((n >> 2) & 0b11) + + ((n >> 4) & 0b11) + + 0 + n = ((n >> 0) & 0b11) + + ((n >> 2) & 0b11) + + 0 + n == 3 ? 0 : n +end + +256.times do |n| + expected = n % 3 + actual = f3(n) + + if actual != expected + puts "#{actual} != #{expected} (#{n}; #{"%08b" % n})" + end +end |
