Révision 124 pobysoPythonSage/src/sageSLZ/sageSLZ.sage

sageSLZ.sage (revision 124)
14 14
                        degree, targetHardnessToRound, alpha):
15 15
    """
16 16
    Check an Hard-to-round value.
17
    TODO::
18
    Full rewriting: this is hardly a draft.
17 19
    """
18 20
    polyApproxPrec = targetHardnessToRound + 1
19 21
    polyTargetHardnessToRound = targetHardnessToRound + 1
......
100 102
    """
101 103
    # Check the parameters.
102 104
    # RealNumbers only.
103
    classTree = [number.__class__] + number.mro()
104
    if not sage.rings.real_mpfr.RealNumber in classTree:
105
    try:
106
        classTree = [number.__class__] + number.mro()
107
        if not sage.rings.real_mpfr.RealNumber in classTree:
108
            return None
109
    except AttributeError:
105 110
        return None
106 111
    # Non zero negative integers only for emin.
107 112
    if emin >= 0 or int(emin) != emin:
......
178 183
    For a given set of arguments (see below), compute a list
179 184
    of "reduced polynomials" that could be used to compute roots
180 185
    of the inputPolynomial.
186
    INPUT:
187
    
188
    - "inputPolynomial" -- (no default) a bivariate integer polynomial;
189
    - "alpha" -- the alpha parameter of the Coppersmith algorithm;
190
    - "N" -- the modulus;
191
    - "iBound" -- the bound on the first variable;
192
    - "tBound" -- the bound on the second variable.
193
    
194
    OUTPUT:
195
    
196
    A list of bivariate integer polynomial obtained using the Coppersmith
197
    algorithm. The polynomials correspond to the rows of the LLL-reduce
198
    reduced base that comply with the Coppersmith condition.
199
    
200
    TODO::
201
    Full rewrite, this is barely a draft.
181 202
    """
182 203
    # Arguments check.
183 204
    if iBound == 0 or tBound == 0:
......
253 274
    """
254 275
    For a given set of arguments (see below), compute the polynomial modular 
255 276
    roots, if any.
277
    
256 278
    """
257 279
    # Arguments check.
258 280
    if iBound == 0 or tBound == 0:
......
380 402
    precision is reached.
381 403
    The polynomial, the bounds, the center of the interval and the error
382 404
    are returned.
405
    OUTPU:
406
    A tuple made of 4 Sollya objects:
407
    - a polynomial;
408
    - an range (an interval, not in the sense of number given as an interval);
409
    - the center of the interval;
410
    - the maximum error in the approximation of the input functionSo by the
411
      output polynomial ; this error <= approxPrecSaS.
412
    
383 413
    """
384 414
    RRR = lowerBoundSa.parent()
385 415
    intervalShrinkConstFactorSa = RRR('0.5')

Formats disponibles : Unified diff