//[TestMethod]
        public void SmallDegreePolyGF2PrimesTest()
        {
            var last = 3ul;
            int len  = 0;

            foreach (var p in SmallDegreePolyGF2.Primes().Skip(2))
            {
                if (p.Coefficients > ushort.MaxValue)
                {
                    break;
                }

                var s = ((p.Coefficients - last) / 2 - 1).ToString() + ", ";

                if (len + s.Length > 100)
                {
                    Trace.WriteLine("");
                    len = 0;
                }

                Trace.Write(s);
                len += s.Length;
                last = p.Coefficients;
            }
        }
 public void SobolCoefficients()
 {
     Trace.WriteLine("s\ta\tP");
     foreach (var p in SmallDegreePolyGF2.Primes().Skip(1).Take(1000))
     {
         var a = p.Coefficients;
         a  ^= 1ul << p.Degree;
         a >>= 1;
         Trace.WriteLine($"{p.Degree}\t{a}\t{p}");
     }
 }