2021-11-08 05:10:49 +00:00
|
|
|
package xim
|
2021-11-07 22:34:30 +00:00
|
|
|
|
|
|
|
var (
|
|
|
|
stdtests = []struct{
|
|
|
|
Value uint64
|
|
|
|
}{
|
|
|
|
{
|
|
|
|
Value: 0b0000000000000000000000000000000000000000000000000000000000000000,
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
{
|
|
|
|
Value: 0b0000000000000000000000000000000000000000000000000000000000000001,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0000000000000000000000000000000000000000000000000000000000000010,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0000000000000000000000000000000000000000000000000000000000000100,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0000000000000000000000000000000000000000000000000000000000001000,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0000000000000000000000000000000000000000000000000000000000010000,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0000000000000000000000000000000000000000000000000000000000100000,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0000000000000000000000000000000000000000000000000000000001000000,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0000000000000000000000000000000000000000000000000000000010000000,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0000000000000000000000000000000000000000000000000000000100000000,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0000000000000000000000000000000000000000000000000000001000000000,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0000000000000000000000000000000000000000000000000000010000000000,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0000000000000000000000000000000000000000000000000000100000000000,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0000000000000000000000000000000000000000000000000001000000000000,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0000000000000000000000000000000000000000000000000010000000000000,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0000000000000000000000000000000000000000000000000100000000000000,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0000000000000000000000000000000000000000000000001000000000000000,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0000000000000000000000000000000000000000000000010000000000000000,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0000000000000000000000000000000000000000000000100000000000000000,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0000000000000000000000000000000000000000000001000000000000000000,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0000000000000000000000000000000000000000000010000000000000000000,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0000000000000000000000000000000000000000000100000000000000000000,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0000000000000000000000000000000000000000001000000000000000000000,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0000000000000000000000000000000000000000010000000000000000000000,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0000000000000000000000000000000000000000100000000000000000000000,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0000000000000000000000000000000000000001000000000000000000000000,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0000000000000000000000000000000000000010000000000000000000000000,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0000000000000000000000000000000000000100000000000000000000000000,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0000000000000000000000000000000000001000000000000000000000000000,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0000000000000000000000000000000000010000000000000000000000000000,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0000000000000000000000000000000001000000000000000000000000000000,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0000000000000000000000000000000010000000000000000000000000000000,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0000000000000000000000000000000100000000000000000000000000000000,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0000000000000000000000000000001000000000000000000000000000000000,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0000000000000000000000000000010000000000000000000000000000000000,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0000000000000000000000000000100000000000000000000000000000000000,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0000000000000000000000000001000000000000000000000000000000000000,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0000000000000000000000000010000000000000000000000000000000000000,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0000000000000000000000000100000000000000000000000000000000000000,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0000000000000000000000001000000000000000000000000000000000000000,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0000000000000000000000010000000000000000000000000000000000000000,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0000000000000000000000100000000000000000000000000000000000000000,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0000000000000000000001000000000000000000000000000000000000000000,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0000000000000000000010000000000000000000000000000000000000000000,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0000000000000000000100000000000000000000000000000000000000000000,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0000000000000000001000000000000000000000000000000000000000000000,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0000000000000000010000000000000000000000000000000000000000000000,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0000000000000000100000000000000000000000000000000000000000000000,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0000000000000001000000000000000000000000000000000000000000000000,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0000000000000010000000000000000000000000000000000000000000000000,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0000000000000100000000000000000000000000000000000000000000000000,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0000000000001000000000000000000000000000000000000000000000000000,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0000000000010000000000000000000000000000000000000000000000000000,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0000000000100000000000000000000000000000000000000000000000000000,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0000000001000000000000000000000000000000000000000000000000000000,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0000000010000000000000000000000000000000000000000000000000000000,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0000000100000000000000000000000000000000000000000000000000000000,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0000001000000000000000000000000000000000000000000000000000000000,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0000010000000000000000000000000000000000000000000000000000000000,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0000100000000000000000000000000000000000000000000000000000000000,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0001000000000000000000000000000000000000000000000000000000000000,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0010000000000000000000000000000000000000000000000000000000000000,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0100000000000000000000000000000000000000000000000000000000000000,
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
{
|
|
|
|
Value: 0b0111111111111111111111111111111111111111111111111111111111111110,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0111111111111111111111111111111111111111111111111111111111111101,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0111111111111111111111111111111111111111111111111111111111111011,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0111111111111111111111111111111111111111111111111111111111110111,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0111111111111111111111111111111111111111111111111111111111101111,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0111111111111111111111111111111111111111111111111111111111011111,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0111111111111111111111111111111111111111111111111111111110111111,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0111111111111111111111111111111111111111111111111111111101111111,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0111111111111111111111111111111111111111111111111111111011111111,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0111111111111111111111111111111111111111111111111111110111111111,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0111111111111111111111111111111111111111111111111111101111111111,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0111111111111111111111111111111111111111111111111111011111111111,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0111111111111111111111111111111111111111111111111110111111111111,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0111111111111111111111111111111111111111111111111101111111111111,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0111111111111111111111111111111111111111111111111011111111111111,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0111111111111111111111111111111111111111111111110111111111111111,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0111111111111111111111111111111111111111111111101111111111111111,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0111111111111111111111111111111111111111111111011111111111111111,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0111111111111111111111111111111111111111111110111111111111111111,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0111111111111111111111111111111111111111111101111111111111111111,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0111111111111111111111111111111111111111111011111111111111111111,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0111111111111111111111111111111111111111110111111111111111111111,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0111111111111111111111111111111111111111101111111111111111111111,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0111111111111111111111111111111111111111011111111111111111111111,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0111111111111111111111111111111111111110111111111111111111111111,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0111111111111111111111111111111111111101111111111111111111111111,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0111111111111111111111111111111111111011111111111111111111111111,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0111111111111111111111111111111111110111111111111111111111111111,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0111111111111111111111111111111111101111111111111111111111111111,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0111111111111111111111111111111111011111111111111111111111111111,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0111111111111111111111111111111110111111111111111111111111111111,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0111111111111111111111111111111101111111111111111111111111111111,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0111111111111111111111111111111011111111111111111111111111111111,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0111111111111111111111111111110111111111111111111111111111111111,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0111111111111111111111111111101111111111111111111111111111111111,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0111111111111111111111111111011111111111111111111111111111111111,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0111111111111111111111111110111111111111111111111111111111111111,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0111111111111111111111111101111111111111111111111111111111111111,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0111111111111111111111111011111111111111111111111111111111111111,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0111111111111111111111110111111111111111111111111111111111111111,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0111111111111111111111101111111111111111111111111111111111111111,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0111111111111111111111011111111111111111111111111111111111111111,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0111111111111111111110111111111111111111111111111111111111111111,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0111111111111111111101111111111111111111111111111111111111111111,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0111111111111111111011111111111111111111111111111111111111111111,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0111111111111111110111111111111111111111111111111111111111111111,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0111111111111111101111111111111111111111111111111111111111111111,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0111111111111111011111111111111111111111111111111111111111111111,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0111111111111110111111111111111111111111111111111111111111111111,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0111111111111101111111111111111111111111111111111111111111111111,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0111111111111011111111111111111111111111111111111111111111111111,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0111111111110111111111111111111111111111111111111111111111111111,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0111111111101111111111111111111111111111111111111111111111111111,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0111111111011111111111111111111111111111111111111111111111111111,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0111111110111111111111111111111111111111111111111111111111111111,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0111111101111111111111111111111111111111111111111111111111111111,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0111111011111111111111111111111111111111111111111111111111111111,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0111110111111111111111111111111111111111111111111111111111111111,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0111101111111111111111111111111111111111111111111111111111111111,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0111011111111111111111111111111111111111111111111111111111111111,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0110111111111111111111111111111111111111111111111111111111111111,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0101111111111111111111111111111111111111111111111111111111111111,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0011111111111111111111111111111111111111111111111111111111111111,
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
{
|
|
|
|
Value: 0b0111111111111111111111111111111111111111111111111111111111111111,
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
{
|
|
|
|
Value: 0b0000000000000000000000000000000000000000111111111111111111111111,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0111111111111111111111111111111111111111000000000000000000000000,
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
{
|
|
|
|
Value: 0b0000000000000000000000000000000000000000100000000000000000000001,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0100000000000000000000000000000000000001000000000000000000000000,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0100000000000000000000000000000000000001100000000000000000000001,
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
{
|
|
|
|
Value: 0b0000000001100001100001110110100111011001110000111111000101100100,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0000000001100001100001110110101000001110110110001111101101100001,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0000000001100001100001110110101000100000100100010111101000001110,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0000000001100001100001110110101000111010100110110011110001010101,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0000000001100001100001110110101001010010100011000011110001000100,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0000000001100001100010000101001101001010011010000110001010111101,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: 0b0000000001100001100010000101010000100001100101110101110101010010,
|
|
|
|
},
|
|
|
|
}
|
|
|
|
)
|