public Residue(Reducer reducer, BigInteger x)
     : this(reducer)
 {
     r = reducer.CreateRep();
     r.Set(x);
     reducer.Reduce(r);
 }
                public IResidue <BigInteger> Copy()
                {
                    var residue = new Residue(reducer);

                    residue.r = reducer.CreateRep();
                    residue.r.Set(r);
                    return(residue);
                }