Ejemplo n.º 1
0
 public GNFS()
 {
     PrimeFactorBase               = new FactorBase();
     PolynomialCollection          = new List <IPolynomial>();
     RationalFactorPairCollection  = new FactorPairCollection();
     AlgebraicFactorPairCollection = new FactorPairCollection();
     QuadraticFactorPairCollection = new FactorPairCollection();
     CurrentRelationsProgress      = new PolyRelationsSieveProgress();
 }
Ejemplo n.º 2
0
        public GaussianRow(GNFS gnfs, Relation relation)
        {
            SourceRelation = relation;

            if (relation.RationalNorm.Sign == -1)
            {
                Sign = true;
            }
            else
            {
                Sign = false;
            }

            FactorPairCollection qfb = gnfs.QuadraticFactorPairCollection;

            BigInteger rationalMaxValue  = gnfs.PrimeFactorBase.RationalFactorBaseMax;
            BigInteger algebraicMaxValue = gnfs.PrimeFactorBase.AlgebraicFactorBaseMax;

            RationalPart  = GetVector(relation.RationalFactorization, rationalMaxValue).ToList();
            AlgebraicPart = GetVector(relation.AlgebraicFactorization, algebraicMaxValue).ToList();
            QuadraticPart = qfb.Select(qf => QuadraticResidue.GetQuadraticCharacter(relation, qf)).ToList();
        }