#如果!定义的HAVE_GRSNEGATIVE_H__#定义HAVE_GRSNEGATIVE_H__//此文件是FXT库的一部分。//版权所有(C)20102011 Joerg Arndt//许可证:GNU通用公共许可证第3版或更高版本,//请参阅主目录中的文件COPYING.txt。#包括“fxttypes.h”#包括“位/奇偶校验.h”#包括“bits/bitsperlong.h”静态内联ulong grs_negate_q(ulong x)//返回Golay-Rudin-Shapiro序列//(OEIS序列A020985)指数x为负值//返回x的1=// 3,6,11,12,13,15,19,22,24,25,26,30,35,38,43,44,45,47,48,49,// 50,52,53,55,59,60,61,63,67,70,75,76,77,79,83,86,88,89,90,94,// 96,97,98,100,101,103,104,105,106,110,115,118,120,121,122,// 126,131,134,139,140, ...////算法:计数模2位对//{返回奇偶校验(x&(x>>1));}//-------------------------静态内联ulong grs_next(ulong k,ulong g)//使用g==grs_negate_q(k),计算grs_nemegate_q(k+1)。{#如果BITS_PER_LONG>32constulong cm=0x5555555555 5555554UL;//64位版本#其他const ulong厘米=0x55555554UL;#结束语ulong h=~k;h&=-h;//==最低零(k);g^=((h&cm)^((k>>1)&h))=0 );返回g;}//-------------------------#endif//!定义的HAVE_GRSNEGATIVE_H__