Ticket #9958: trac_9958-fixing_numericalnoise-part1.patch

File trac_9958-fixing_numericalnoise-part1.patch, 34.5 KB (added by fbissey, 10 years ago)

fix numerical noise part 1

  • sage/ext/fast_callable.pyx

    # HG changeset patch
    # User Francois Bissey <francois.bissey@canterbury.ac.nz>
    # Date 1303875601 -43200
    # Node ID 8be9360958bf6e982b9ce4578023af3430aa018a
    # Parent  c3fd103cb942608643f5b9a69b65bf08ea1cfd20
    #9958 fixing numerical noise part 1
    
    diff --git a/sage/ext/fast_callable.pyx b/sage/ext/fast_callable.pyx
    a b  
    382382        sin(add(ipow(v_0, 2), v_1))
    383383        sage: fc = fast_callable(expr, domain=float)
    384384        sage: fc(5, 7)
    385         0.55142668124169059
     385        0.5514266812416906
    386386    """
    387387    cdef Expression et
    388388    if isinstance(x, Expression):
  • sage/finance/fractal.pyx

    diff --git a/sage/finance/fractal.pyx b/sage/finance/fractal.pyx
    a b  
    6565        sage: N = 2^15
    6666        sage: s = [1/math.sqrt(k+1) for k in [0..N]]
    6767        sage: s[:5]
    68         [1.0, 0.70710678118654746, 0.57735026918962584, 0.5, 0.44721359549995793]
     68        [1.0, 0.7071067811865475, 0.5773502691896258, 0.5, 0.4472135954999579]
    6969
    7070    We run the simulation::
    7171
  • sage/finance/markov_multifractal.py

    diff --git a/sage/finance/markov_multifractal.py b/sage/finance/markov_multifractal.py
    a b  
    9797
    9898            sage: msm = finance.MarkovSwitchingMultifractal(8,1.4,1,0.95,3)
    9999            sage: msm.m0()
    100             1.3999999999999999
     100            1.4
    101101        """
    102102        return self.__m0
    103103   
     
    133133
    134134            sage: msm = finance.MarkovSwitchingMultifractal(8,1.4,0.01,0.95,3)
    135135            sage: msm.gamma_kbar()
    136             0.94999999999999996
     136            0.95
    137137        """
    138138        return self.__gamma_kbar
    139139   
     
    161161
    162162            sage: msm = finance.MarkovSwitchingMultifractal(8,1.4,1.0,0.95,3)
    163163            sage: msm.gamma()
    164             (0.001368852970712986, 0.0041009402016725094, 0.012252436441829..., 0.03630878209190..., 0.10501923017634..., 0.28312883556311..., 0.6315968501359..., 0.95000000000000...)
     164            (0.001368852970712986, 0.004100940201672509, 0.012252436441829..., 0.03630878209190..., 0.10501923017634..., 0.28312883556311..., 0.6315968501359..., 0.95000000000000...)
    165165        """
    166166        try:
    167167            return self.__gamma
  • sage/finance/time_series.pyx

    diff --git a/sage/finance/time_series.pyx b/sage/finance/time_series.pyx
    a b  
    2727    sage: t.standard_deviation()
    2828    0.33729638212891383
    2929    sage: t.mean()
    30     -0.089334255069294391
     30    -0.08933425506929439
    3131    sage: t.variance()
    3232    0.1137688493972542...
    3333
     
    12691269            sage: v = finance.TimeSeries([1,1,1,2,3]); v
    12701270            [1.0000, 1.0000, 1.0000, 2.0000, 3.0000]
    12711271            sage: v.mean()
    1272             1.6000000000000001
     1272            1.6
    12731273        """
    12741274        return self.sum() / self._length
    12751275
     
    13171317            sage: v = finance.TimeSeries([1,1,1,2,3]); v
    13181318            [1.0000, 1.0000, 1.0000, 2.0000, 3.0000]
    13191319            sage: v.moment(1)
    1320             1.6000000000000001
     1320            1.6
    13211321            sage: v.moment(2)
    1322             3.2000000000000002
     1322            3.2
    13231323        """
    13241324        if k <= 0:
    13251325            raise ValueError, "k must be positive"
     
    13491349
    13501350            sage: v = finance.TimeSeries([1,2,3])
    13511351            sage: v.central_moment(2)
    1352             0.66666666666666663
     1352            0.6666666666666666
    13531353
    13541354        Note that the central moment is different from the moment
    13551355        here, since the mean is not `0`::
     
    13621362            sage: mu = v.mean(); mu
    13631363            2.0
    13641364            sage: ((1-mu)^2 + (2-mu)^2 + (3-mu)^2) / 3
    1365             0.66666666666666663
     1365            0.6666666666666666
    13661366        """
    13671367        if k == 1:
    13681368            return float(0)
     
    14311431            sage: mu = v.mean(); sum([(a-mu)^2 for a in v])/len(v)
    14321432            14.4
    14331433            sage: v.autocovariance(1)
    1434             -2.70000000...
     1434            -2.7
    14351435            sage: mu = v.mean(); sum([(v[i]-mu)*(v[i+1]-mu) for i in range(len(v)-1)])/len(v)
    1436             -2.70000000...
     1436            -2.7
    14371437            sage: v.autocovariance(1)
    1438             -2.70000000...
     1438            -2.7
    14391439
    14401440        We illustrate with a random sample that an independently and
    14411441        identically distributed distribution with zero mean and
     
    15481548            sage: v = finance.TimeSeries([1,1,1,2,3]); v
    15491549            [1.0000, 1.0000, 1.0000, 2.0000, 3.0000]
    15501550            sage: v.variance()
    1551             0.80000000000000004
     1551            0.8
    15521552            sage: v.variance(bias=True)
    1553             0.64000000000000001
     1553            0.64
    15541554
    15551555        TESTS::
    15561556
     
    15941594            sage: v.standard_deviation()
    15951595            0.8944271909...
    15961596            sage: v.standard_deviation(bias=True)
    1597             0.8000000000...
     1597            0.8
    15981598
    15991599        TESTS::
    16001600
     
    21822182
    21832183            sage: s = a.standard_deviation()
    21842184            sage: len(a.clip_remove(-s,s))/float(len(a))
    2185             0.68309399999999998
     2185            0.683094
    21862186            sage: len(a.clip_remove(-2*s,2*s))/float(len(a))
    2187             0.95455900000000005
     2187            0.954559
    21882188            sage: len(a.clip_remove(-3*s,3*s))/float(len(a))
    21892189            0.997228
    21902190            sage: len(a.clip_remove(-5*s,5*s))/float(len(a))
    2191             0.99999800000000005
     2191            0.999998
    21922192
    21932193        There were no "six sigma events"::
    21942194
  • sage/functions/hyperbolic.py

    diff --git a/sage/functions/hyperbolic.py b/sage/functions/hyperbolic.py
    a b  
    150150            sage: tanh(3.1415)
    151151            0.996271386633702
    152152            sage: float(tanh(pi))
    153             0.996272076220749...
     153            0.99627207622075
    154154            sage: tan(3.1415/4)
    155155            0.999953674278156
    156156            sage: tanh(pi/4)
     
    541541            sage: arccoth(2).n(200)
    542542            0.54930614433405484569762261846126285232374527891137472586735
    543543            sage: float(arccoth(2))
    544             0.54930614433405489
     544            0.5493061443340549
    545545
    546546            sage: latex(arccoth(x))
    547547            {\rm arccoth}\left(x\right)
     
    639639            sage: arccsch(1).n(200)
    640640            0.88137358701954302523260932497979230902816032826163541075330
    641641            sage: float(arccsch(1))
    642             0.88137358701954305
     642            0.881373587019543
    643643
    644644            sage: latex(arccsch(x))
    645645            {\rm arccsch}\left(x\right)
  • sage/functions/log.py

    diff --git a/sage/functions/log.py b/sage/functions/log.py
    a b  
    155155            sage: ln(2.0)
    156156            0.693147180559945
    157157            sage: ln(float(-1))
    158             3.1415926535897931j
     158            3.141592653589793j
    159159            sage: ln(complex(-1))
    160             3.1415926535897931j
     160            3.141592653589793j
    161161
    162162        We do not currently support a ``hold`` parameter in functional
    163163        notation::
     
    207207            sage: log(float(0))
    208208            -inf
    209209            sage: log(float(-1))
    210             3.1415926535897931j
     210            3.141592653589793j
    211211            sage: log(x).subs(x=float(-1))
    212             3.1415926535897931j
     212            3.141592653589793j
    213213        """
    214214        GinacFunction.__init__(self, 'log', latex_name=r'\log',
    215215                                   conversions=dict(maxima='log'))
     
    337337            sage: complex(polylog(4,2))
    338338            (2.4278628067547032-0.17437130002545306j)
    339339            sage: float(polylog(4,0.5))
    340             0.51747906167389934
     340            0.5174790616738993
    341341
    342342            sage: z = var('z')
    343343            sage: polylog(2,z).series(z==0, 5)
  • sage/functions/min_max.py

    diff --git a/sage/functions/min_max.py b/sage/functions/min_max.py
    a b  
    214214            sage: f = max_symbolic(sin(x), cos(x))
    215215            sage: r = integral(f, x, 0, 1)
    216216            sage: r.n()
    217             0.87391244115672628
     217            0.8739124411567263
    218218        """
    219219        return max_symbolic(args)
    220220
  • sage/functions/special.py

    diff --git a/sage/functions/special.py b/sage/functions/special.py
    a b  
    14411441        sage: float(jacobi("sn",1/2,1/2))
    14421442        0.4707504736556572
    14431443        sage: float(inverse_jacobi("sn",0.47,1/2))
    1444         0.49909823132221959
     1444        0.4990982313222196
    14451445        sage: float(inverse_jacobi("sn",0.4707504,0.5))
    1446         0.49999991146655481
     1446        0.4999999114665548
    14471447        sage: P = plot(inverse_jacobi('sn', x, 0.5), 0, 1, plot_points=20)
    14481448   
    14491449    Now to view this, just type show(P).
  • sage/functions/spike_function.py

    diff --git a/sage/functions/spike_function.py b/sage/functions/spike_function.py
    a b  
    3838        sage: from sage.functions.spike_function import SpikeFunction
    3939        sage: S = SpikeFunction([(0,1),(1,2),(pi,-5)])
    4040        sage: S
    41         A spike function with spikes at [0.0, 1.0, 3.1415926535897931]
     41        A spike function with spikes at [0.0, 1.0, 3.141592653589793]
    4242        sage: S.support
    43         [0.0, 1.0, 3.1415926535897931]
     43        [0.0, 1.0, 3.141592653589793]
    4444    """
    4545    def __init__(self, v, eps=0.0000001):
    4646        """
     
    141141            A spike function with spikes at [-3.0, -1.0, 2.0]
    142142            sage: P = S.plot_fft_abs(8)
    143143            sage: p = P[0]; p.ydata
    144             [5.0, 5.0, 3.3679586919241769, 3.3679586919241769, 4.1231056256176606, 4.1231056256176606, 4.7599216642180551, 4.7599216642180551]
     144            [5.0, 5.0, 3.367958691924177, 3.367958691924177, 4.123105625617661, 4.123105625617661, 4.759921664218055, 4.759921664218055]
    145145        """
    146146        w = self.vector(samples = samples, xmin=xmin, xmax=xmax)
    147147        xmin, xmax = self._ranges(xmin, xmax)
  • sage/functions/transcendental.py

    diff --git a/sage/functions/transcendental.py b/sage/functions/transcendental.py
    a b  
    7979    EXAMPLES::
    8080   
    8181        sage: exponential_integral_1(2)
    82         0.048900510708061118
     82        0.04890051070806112
    8383        sage: w = exponential_integral_1(2,4); w
    84         [0.048900510708061118, 0.0037793524098489067, 0.00036008245216265873, 3.7665622843924751e-05] # 32-bit
    85         [0.048900510708061118, 0.0037793524098489063, 0.00036008245216265873, 3.7665622843924534e-05] # 64-bit
     84        [0.04890051070806112, 0.0037793524098489067, 0.00036008245216265873, 3.7665622843924751e-05] # 32-bit
     85        [0.04890051070806112, 0.0037793524098489063, 0.00036008245216265873, 3.7665622843924534e-05] # 64-bit
    8686   
    8787    IMPLEMENTATION: We use the PARI C-library functions eint1 and
    8888    veceint1.
  • sage/functions/trig.py

    diff --git a/sage/functions/trig.py b/sage/functions/trig.py
    a b  
    790790            sage: maxima.atan2(1,-1)
    791791            3*%pi/4
    792792            sage: math.atan2(1,-1)
    793             2.3561944901923448
     793            2.356194490192345
    794794
    795795        More examples::
    796796
  • sage/geometry/polyhedra.py

    diff --git a/sage/geometry/polyhedra.py b/sage/geometry/polyhedra.py
    a b  
    49464946        sage: proj = ProjectionFuncStereographic([1.1,1.1,1.1])
    49474947        sage: ppoints = [proj(vector(x)) for x in cube]
    49484948        sage: ppoints[0]
    4949         (0.0, 0.0)
     4949        (-1.92296268638e-15, -1.92296268638e-15)
    49504950    """
    49514951    def __init__(self, projection_point):
    49524952        """
     
    56125612            sage: proj = p.projection()
    56135613            sage: filled_poly = proj.render_fill_2d()
    56145614            sage: filled_poly.axes_width()
    5615             0.8000...
     5615            0.8
    56165616        """
    56175617        poly = [polygon2d(self.coordinates_of(p), **kwds)
    56185618                 for p in self.polygons]
  • sage/geometry/toric_plotter.py

    diff --git a/sage/geometry/toric_plotter.py b/sage/geometry/toric_plotter.py
    a b  
    773773   
    774774        sage: from sage.geometry.toric_plotter import color_list
    775775        sage: color_list("grey", 1)
    776         [RGB color (0.50196078431372548,
    777          0.50196078431372548, 0.50196078431372548)]
     776        [RGB color (0.5019607843137255, 0.5019607843137255, 0.5019607843137255)]
    778777        sage: len(color_list("grey", 3))
    779778        3
    780779        sage: color_list("rainbow", 3)
  • sage/gsl/integration.pyx

    diff --git a/sage/gsl/integration.pyx b/sage/gsl/integration.pyx
    a b  
    7373   EXAMPLES:
    7474      To integrate the function $x^2$ from 0 to 1, we do
    7575          sage: numerical_integral(x^2, 0, 1, max_points=100)
    76           (0.33333333333333331, 3.7007434154171879e-15)
     76          (0.3333333333333333, 3.700743415417188e-15)
    7777
    7878      To integrate the function $\sin(x)^3 + \sin(x)$ we do
    7979         sage: numerical_integral(sin(x)^3 + sin(x),  0, pi)
    80          (3.333333333333333, 3.7007434154171883e-14)
     80         (3.333333333333333, 3.700743415417188e-14)
    8181         
    8282      The input can be any callable:
    8383         sage: numerical_integral(lambda x: sin(x)^3 + sin(x),  0, pi)
    84          (3.333333333333333, 3.7007434154171883e-14)
     84         (3.333333333333333, 3.700743415417188e-14)
    8585
    8686      We check this with a symbolic integration:
    8787         sage: (sin(x)^3+sin(x)).integral(x,0,pi)
     
    122122   If we want to change the error tolerances and gauss rule used
    123123       sage: f = x^2
    124124       sage: numerical_integral(f, 0, 1, max_points=200, eps_abs=1e-7, eps_rel=1e-7, rule=4)
    125        (0.33333333333333331, 3.7007434154171879e-15)
     125       (0.3333333333333333, 3.700743415417188e-15)
    126126
    127127   For a Python function with parameters:
    128128      sage: f(x,a) = 1/(a+x^2)
     
    159159   We can also numerically integrate symbolic expressions using either this
    160160   function (which uses GSL) or the native integration (which uses Maxima):
    161161       sage: exp(-1/x).nintegral(x, 1, 2)   # via maxima
    162        (0.50479221787318396, 5.6043194293440752e-15, 21, 0)
     162       (0.504792217873184, 5.604319429344075e-15, 21, 0)
    163163       sage: numerical_integral(exp(-1/x), 1, 2)
    164164       (0.50479221787318..., 5.60431942934407...e-15)
    165165       
  • sage/gsl/probability_distribution.pyx

    diff --git a/sage/gsl/probability_distribution.pyx b/sage/gsl/probability_distribution.pyx
    a b  
    887887        sage: for _ in range(10000):
    888888        ...       counts[X.get_random_element()] += 1
    889889        sage: float(counts[1]/counts[0])
    890         3.0420371867421179
     890        3.042037186742118
    891891    """
    892892
    893893
  • sage/interfaces/maxima.py

    diff --git a/sage/interfaces/maxima.py b/sage/interfaces/maxima.py
    a b  
    128128
    129129    sage: a = maxima('(1 + sqrt(2))^5')
    130130    sage: float(a)
    131     82.012193308819747
     131    82.01219330881975
    132132    sage: a.numer()
    133133    82.01219330881975
    134134
  • sage/interfaces/maxima_abstract.py

    diff --git a/sage/interfaces/maxima_abstract.py b/sage/interfaces/maxima_abstract.py
    a b  
    627627            sage: t(2)
    628628             sin(2)
    629629            sage: float(t(2))
    630             0.90929742682568171
     630            0.9092974268256817
    631631            sage: loads(t.dumps())
    632632            gamma(x)*sin(x)
    633633        """
     
    15921592        EXAMPLES::
    15931593       
    15941594            sage: float(maxima("3.14"))
    1595             3.1400000000000001
     1595            3.14
    15961596            sage: float(maxima("1.7e+17"))
    15971597            1.7e+17
    15981598            sage: float(maxima("1.7e-17"))
    1599             1.6999999999999999e-17
     1599            1.7e-17
    16001600        """
    16011601        try:
    16021602            return float(repr(self.numer()))
  • sage/interfaces/r.py

    diff --git a/sage/interfaces/r.py b/sage/interfaces/r.py
    a b  
    167167
    168168    sage: rr = r.dnorm(r.seq(-3,3,0.1))
    169169    sage: sum(rr._sage_())
    170     9.9772125168981081
     170    9.977212516898108
    171171
    172172Or you get a dictionary to be able to access all the information.
    173173
  • sage/lfunctions/dokchitser.py

    diff --git a/sage/lfunctions/dokchitser.py b/sage/lfunctions/dokchitser.py
    a b  
    315315            0.998583063162746
    316316            sage: a = delta_qexp(1000)
    317317            sage: sum(a[n]/float(n)^14 for n in range(1,1000))
    318             0.99858306316274592
     318            0.9985830631627459
    319319
    320320        Illustrate that one can give a list of complex numbers for v (see trac 10937)::
    321321
  • sage/misc/explain_pickle.py

    diff --git a/sage/misc/explain_pickle.py b/sage/misc/explain_pickle.py
    a b  
    848848            sage: from sage.misc.explain_pickle import *
    849849            sage: test_pickle(float(pi))
    850850                0: \x80 PROTO      2
    851                 2: G    BINFLOAT   3.1415926535897931
     851                2: G    BINFLOAT   3.141592653589793
    852852               11: .    STOP
    853853            highest protocol among opcodes = 2
    854854            explain_pickle in_current_sage=True/False:
    855855            float(RR(3.1415926535897931))
    856             result: 3.1415926535897931
     856            result: 3.141592653589793
    857857        """
    858858        self.push(self.sib(f))
    859859
  • sage/misc/prandom.py

    diff --git a/sage/misc/prandom.py b/sage/misc/prandom.py
    a b  
    167167
    168168    EXAMPLES:
    169169        sage: [random() for i in [1 .. 4]]
    170         [0.111439293741037, 0.51434751341916773, 0.044689685248156419, 0.33249060644241302]
     170        [0.111439293741037, 0.5143475134191677, 0.04468968524815642, 0.332490606442413]
    171171    """
    172172    return _pyrand().random()
    173173
     
    180180        sage: uniform(0, 1)
    181181        0.111439293741037
    182182        sage: uniform(e, pi)
    183         0.51434751341916773*pi + 0.48565248658083227*e
     183        0.5143475134191677*pi + 0.48565248658083227*e
    184184        sage: RR(_)
    185185        2.93601069876846
    186186    """
     
    213213        sage: [expovariate(1.0) for i in range(3)]
    214214        [1.10114367058632, 0.652772818610748, 1.69983589896220]
    215215        sage: [expovariate(1000) for i in range(3)]
    216         [0.00035543583938093908, 0.0025254102812587195, 0.0001175899408167489]
     216        [0.0003554358393809391, 0.0025254102812587195, 0.0001175899408167489]
    217217    """
    218218    return _pyrand().expovariate(lambd)
    219219
     
    239239
    240240    EXAMPLES:
    241241       sage: [gauss(0, 1) for i in range(3)]
    242        [0.91910117576579153, 0.77445267562464837, 0.86389968668008765]
     242       [0.9191011757657915, 0.7744526756246484, 0.8638996866800877]
    243243       sage: [gauss(0, 100) for i in range(3)]
    244        [24.916051749154448, -62.992720615792727, -8.1993122536718...]
     244       [24.916051749154448, -62.99272061579273, -8.1993122536718...]
    245245       sage: [gauss(1000, 10) for i in range(3)]
    246        [998.75907000456607, 996.10873385116918, 1010.1256817458031]
     246       [998.7590700045661, 996.1087338511692, 1010.1256817458031]
    247247    """
    248248    return _pyrand().gauss(mu, sigma)
    249249
     
    256256
    257257    EXAMPLES:
    258258        sage: [lognormvariate(100, 10) for i in range(3)]
    259         [2.9410355688290246e+37, 2.2257548162070125e+38, 4.1422994517174461e+43]
     259        [2.9410355688290246e+37, 2.2257548162070125e+38, 4.142299451717446e+43]
    260260    """
    261261    return _pyrand().lognormvariate(mu, sigma)
    262262
     
    267267
    268268    EXAMPLES:
    269269       sage: [normalvariate(0, 1) for i in range(3)]
    270        [-1.3725589805594069, -1.1701670364898928, 0.043241005551101427]
     270       [-1.372558980559407, -1.1701670364898928, 0.04324100555110143]
    271271       sage: [normalvariate(0, 100) for i in range(3)]
    272        [37.456958750417691, 159.63477432332979, 124.10293211240089]
     272       [37.45695875041769, 159.6347743233298, 124.1029321124009]
    273273       sage: [normalvariate(1000, 10) for i in range(3)]
    274        [1008.5303090383741, 989.86248926448945, 985.77289211502421]
     274       [1008.5303090383741, 989.8624892644895, 985.7728921150242]
    275275    """
    276276    return _pyrand().normalvariate(mu, sigma)
    277277
     
    285285
    286286    EXAMPLES:
    287287        sage: [vonmisesvariate(1.0r, 3.0r) for i in range(1, 5)]
    288         [0.89832863935542584, 0.67180300070412846, 2.0308777524813397, 1.714325253725145...]
     288        [0.8983286393554258, 0.6718030007041285, 2.0308777524813397, 1.714325253725145...]
    289289    """
    290290    return _pyrand().vonmisesvariate(mu, kappa)
    291291
     
    305305
    306306    EXAMPLES:
    307307        sage: [weibullvariate(1, 3) for i in range(1, 5)]
    308         [0.49069775546342537, 0.89721855646112125, 0.35757384653194202, 0.73937725551684697]
     308        [0.49069775546342537, 0.8972185564611213, 0.357573846531942, 0.739377255516847]
    309309    """
    310310    return _pyrand().weibullvariate(alpha, beta)
    311311
  • sage/misc/preparser.py

    diff --git a/sage/misc/preparser.py b/sage/misc/preparser.py
    a b  
    173173
    174174    sage: z = 3.1415R
    175175    sage: z
    176     3.1415000000000002
     176    3.1415
    177177    sage: type(z)
    178178    <type 'float'>
    179179
  • sage/misc/randstate.pyx

    diff --git a/sage/misc/randstate.pyx b/sage/misc/randstate.pyx
    a b  
    5555
    5656    sage: set_random_seed(0)
    5757    sage: rtest()
    58     (303, -0.187141682737491, 1/2*x^2 - 1/95*x - 1/2, (1,2,3)(4,5), [ 0, 0, 0, 0, 1 ], 963229057, 8045, 0.96619117347084138)  # 32-bit
    59     (303, -0.187141682737491, 1/2*x^2 - 1/95*x - 1/2, (1,2,3)(4,5), [ 0, 0, 0, 0, 1 ], 265625921, 8045, 0.96619117347084138)  # 64-bit
     58    (303, -0.187141682737491, 1/2*x^2 - 1/95*x - 1/2, (1,2,3)(4,5), [ 0, 0, 0, 0, 1 ], 963229057, 8045, 0.9661911734708414)  # 32-bit
     59    (303, -0.187141682737491, 1/2*x^2 - 1/95*x - 1/2, (1,2,3)(4,5), [ 0, 0, 0, 0, 1 ], 265625921, 8045, 0.9661911734708414)  # 64-bit
    6060    sage: set_random_seed(1)
    6161    sage: rtest()
    6262    (978, 0.184109262667515, -3*x^2 - 1/12, (4,5), [ 0, 1, 1, 0, 0 ], 1161603091, 60359, 0.83350776541997362)  # 32-bit
    63     (978, 0.184109262667515, -3*x^2 - 1/12, (4,5), [ 0, 1, 1, 0, 0 ],  807447831, 60359, 0.83350776541997362)  # 64-bit
     63    (978, 0.184109262667515, -3*x^2 - 1/12, (4,5), [ 0, 1, 1, 0, 0 ], 807447831, 60359, 0.8335077654199736)  # 64-bit
    6464    sage: set_random_seed(2)
    6565    sage: rtest()
    6666    (207, 0.505364206568040, 4*x^2 + 1/2, (1,2)(4,5), [ 0, 0, 1, 0, 1 ],  637693405, 27695, 0.19982565117278328)  # 32-bit
    6767    (207, 0.505364206568040, 4*x^2 + 1/2, (1,2)(4,5), [ 0, 0, 1, 0, 1 ], 1642898426, 27695, 0.19982565117278328)  # 64-bit
    6868    sage: set_random_seed(0)
    6969    sage: rtest()
    70     (303, -0.187141682737491, 1/2*x^2 - 1/95*x - 1/2, (1,2,3)(4,5), [ 0, 0, 0, 0, 1 ], 963229057, 8045, 0.96619117347084138)  # 32-bit
    71     (303, -0.187141682737491, 1/2*x^2 - 1/95*x - 1/2, (1,2,3)(4,5), [ 0, 0, 0, 0, 1 ], 265625921, 8045, 0.96619117347084138)  # 64-bit
     70    (303, -0.187141682737491, 1/2*x^2 - 1/95*x - 1/2, (1,2,3)(4,5), [ 0, 0, 0, 0, 1 ], 963229057, 8045, 0.9661911734708414)  # 32-bit
     71    (303, -0.187141682737491, 1/2*x^2 - 1/95*x - 1/2, (1,2,3)(4,5), [ 0, 0, 0, 0, 1 ], 265625921, 8045, 0.9661911734708414)  # 64-bit
    7272    sage: set_random_seed(1)
    7373    sage: rtest()
    74     (978, 0.184109262667515, -3*x^2 - 1/12, (4,5), [ 0, 1, 1, 0, 0 ], 1161603091, 60359, 0.83350776541997362)  # 32-bit
    75     (978, 0.184109262667515, -3*x^2 - 1/12, (4,5), [ 0, 1, 1, 0, 0 ],  807447831, 60359, 0.83350776541997362)  # 64-bit
     74    (978, 0.184109262667515, -3*x^2 - 1/12, (4,5), [ 0, 1, 1, 0, 0 ], 1161603091, 60359, 0.8335077654199736)  # 32-bit
     75    (978, 0.184109262667515, -3*x^2 - 1/12, (4,5), [ 0, 1, 1, 0, 0 ], 807447831, 60359, 0.8335077654199736)  # 64-bit
    7676    sage: set_random_seed(2)
    7777    sage: rtest()
    7878    (207, 0.505364206568040, 4*x^2 + 1/2, (1,2)(4,5), [ 0, 0, 1, 0, 1 ],  637693405, 27695, 0.19982565117278328)  # 32-bit
     
    8686    sage: initial_seed()
    8787    12345L
    8888    sage: rtest()
    89     (720, 0.0216737401150802, x^2 - x, (), [ 1, 0, 0, 0, 0 ], 912534076, 14005, 0.92053315995181839)   # 32-bit
    90     (720, 0.0216737401150802, x^2 - x, (), [ 1, 0, 0, 0, 0 ], 1911581957, 14005, 0.92053315995181839)  # 64-bit
     89    (720, 0.0216737401150802, x^2 - x, (), [ 1, 0, 0, 0, 0 ], 912534076, 14005, 0.9205331599518184)   # 32-bit
     90    (720, 0.0216737401150802, x^2 - x, (), [ 1, 0, 0, 0, 0 ], 1911581957, 14005, 0.9205331599518184)  # 64-bit
    9191    sage: initial_seed()
    9292    12345L
    9393
     
    151151    (0.111439293741037, 539332L, 8.26785106378383, 1.3893337539828183)
    152152    sage: set_random_seed(1)
    153153    sage: random(), getrandbits(20), uniform(5.0, 10.0), normalvariate(0, 1)
    154     (0.82940228518742587, 624859L, 5.77894484361117, -0.42013668263087578)
     154    (0.8294022851874259, 624859L, 5.77894484361117, -0.4201366826308758)
    155155    sage: set_random_seed(0)
    156156    sage: random(), getrandbits(20), uniform(5.0, 10.0), normalvariate(0, 1)
    157157    (0.111439293741037, 539332L, 8.26785106378383, 1.3893337539828183)
     
    222222
    223223    sage: set_random_seed(0)
    224224    sage: r1 = rtest(); r1
    225     (303, -0.187141682737491, 1/2*x^2 - 1/95*x - 1/2, (1,2,3)(4,5), [ 0, 0, 0, 0, 1 ], 963229057, 8045, 0.96619117347084138)  # 32-bit
    226     (303, -0.187141682737491, 1/2*x^2 - 1/95*x - 1/2, (1,2,3)(4,5), [ 0, 0, 0, 0, 1 ], 265625921, 8045, 0.96619117347084138)  # 64-bit
     225    (303, -0.187141682737491, 1/2*x^2 - 1/95*x - 1/2, (1,2,3)(4,5), [ 0, 0, 0, 0, 1 ], 963229057, 8045, 0.9661911734708414)  # 32-bit
     226    (303, -0.187141682737491, 1/2*x^2 - 1/95*x - 1/2, (1,2,3)(4,5), [ 0, 0, 0, 0, 1 ], 265625921, 8045, 0.9661911734708414)  # 64-bit
    227227    sage: r2 = rtest(); r2
    228228    (105, -0.581229341007821, -x^2 - x - 6, (1,3), [ 1, 0, 0, 1, 1 ], 14082860, 1271, 0.001767155077382232)  # 32-bit
    229229    (105, -0.581229341007821, -x^2 - x - 6, (1,3), [ 1, 0, 0, 1, 1 ], 53231108, 1271, 0.001767155077382232)  # 64-bit
     
    234234    sage: r1 == rtest()
    235235    True
    236236    sage: with seed(1): rtest()
    237     (978, 0.184109262667515, -3*x^2 - 1/12, (4,5), [ 0, 1, 1, 0, 0 ], 1161603091, 60359, 0.83350776541997362)  # 32-bit
    238     (978, 0.184109262667515, -3*x^2 - 1/12, (4,5), [ 0, 1, 1, 0, 0 ],  807447831, 60359, 0.83350776541997362)  # 64-bit
     237    (978, 0.184109262667515, -3*x^2 - 1/12, (4,5), [ 0, 1, 1, 0, 0 ], 1161603091, 60359, 0.8335077654199736)  # 32-bit
     238    (978, 0.184109262667515, -3*x^2 - 1/12, (4,5), [ 0, 1, 1, 0, 0 ],  807447831, 60359, 0.8335077654199736)  # 64-bit
    239239    sage: r2m = rtest(); r2m
    240240    (105, -0.581229341007821, -x^2 - x - 6, (1,3), [ 1, 0, 0, 1, 1 ], 14082860, 19769, 0.001767155077382232)  # 32-bit
    241241    (105, -0.581229341007821, -x^2 - x - 6, (1,3), [ 1, 0, 0, 1, 1 ], 53231108, 19769, 0.001767155077382232)  # 64-bit
     
    277277    ... finally:
    278278    ...       ctx.__exit__(None, None, None)
    279279    <sage.misc.randstate.randstate object at 0x...>
    280     (978, 0.184109262667515, -3*x^2 - 1/12, (4,5), [ 0, 1, 1, 0, 0 ], 1161603091, 60359, 0.83350776541997362)  # 32-bit
    281     (978, 0.184109262667515, -3*x^2 - 1/12, (4,5), [ 0, 1, 1, 0, 0 ],  807447831, 60359, 0.83350776541997362)  # 64-bit
     280    (978, 0.184109262667515, -3*x^2 - 1/12, (4,5), [ 0, 1, 1, 0, 0 ], 1161603091, 60359, 0.8335077654199736)  # 32-bit
     281    (978, 0.184109262667515, -3*x^2 - 1/12, (4,5), [ 0, 1, 1, 0, 0 ],  807447831, 60359, 0.8335077654199736)  # 64-bit
    282282    False
    283283    sage: r2m == rtest()
    284284    True
  • sage/modular/modform/eis_series.py

    diff --git a/sage/modular/modform/eis_series.py b/sage/modular/modform/eis_series.py
    a b  
    343343       -0.291657724743873
    344344       sage: L = eisenstein_series_lseries(20)
    345345       sage: L(2)
    346        -5.02355351645987
     346       -5.02355351645989
    347347    """
    348348    f = eisenstein_series_qexp(weight,prec)
    349349    from sage.lfunctions.all import Dokchitser
  • sage/modules/free_module_element.pyx

    diff --git a/sage/modules/free_module_element.pyx b/sage/modules/free_module_element.pyx
    a b  
    31233123            sage: type(vec)
    31243124            <type 'sage.modules.vector_real_double_dense.Vector_real_double_dense'>
    31253125            sage: answers
    3126             [(0.5, 5.5511151231257843e-15, 21, 0), (0.3333333333333..., 3.7007434154171903e-15, 21, 0), (0.45969769413186..., 5.1036696439228408e-15, 21, 0)]
     3126            [(0.5, 5.551115123125784e-15, 21, 0), (0.3333333333333..., 3.70074341541719e-15, 21, 0), (0.45969769413186..., 5.103669643922841e-15, 21, 0)]
    31273127
    31283128            sage: r=vector([t,0,1], sparse=True)
    31293129            sage: r.nintegral(t,0,1)           
    3130             ((0.5, 0.0, 1.0), {0: (0.5, 5.5511151231257843e-15, 21, 0), 2: (1.0, 1.11022302462515...e-14, 21, 0)})
     3130            ((0.5, 0.0, 1.0), {0: (0.5, 5.551115123125784e-15, 21, 0), 2: (1.0, 1.11022302462515...e-14, 21, 0)})
    31313131
    31323132        """
    31333133        # If Cython supported lambda functions, we would just do
  • sage/stats/basic_stats.py

    diff --git a/sage/stats/basic_stats.py b/sage/stats/basic_stats.py
    a b  
    239239        2.5
    240240        sage: x = finance.TimeSeries([1..100])
    241241        sage: variance(x)
    242         841.66666666666663
     242        841.6666666666666
    243243        sage: variance(x, bias=True)
    244244        833.25
    245245        sage: class MyClass:
  • sage/stats/hmm/chmm.pyx

    diff --git a/sage/stats/hmm/chmm.pyx b/sage/stats/hmm/chmm.pyx
    a b  
    124124    of states produced obs::
    125125
    126126        sage: m.viterbi(obs)
    127         ([1, 0, 1, 0, 1, 1, 0, 1, 0, 1], -16.677382701707881)
     127        ([1, 0, 1, 0, 1, 1, 0, 1, 0, 1], -16.67738270170788)
    128128
    129129    We use the Baum-Welch iterative algorithm to find another model
    130130    for which our observation sequence is more likely::
     
    258258            sage: m[0]
    259259            (1.0, 0.5)
    260260            sage: m[1]
    261             (-2.0, 0.29999999999999999)
     261            (-2.0, 0.3)
    262262            sage: m[-1]
    263             (-2.0, 0.29999999999999999)
     263            (-2.0, 0.3)
    264264            sage: m[3]
    265265            Traceback (most recent call last):
    266266            ...
     
    476476
    477477            sage: m = hmm.GaussianHiddenMarkovModel([[.1,.9],[.5,.5]], [(1,.5), (-1,3)], [.1,.9])
    478478            sage: m.log_likelihood([1,1,1])
    479             -4.2978807660724856
     479            -4.297880766072486
    480480            sage: set_random_seed(0); s = m.sample(20)
    481481            sage: m.log_likelihood(s)
    482482            -40.115714129484...
     
    577577            sage: m.viterbi([-2,-1,.1,0.1])
    578578            ([1, 1, 0, 1], -9.61823698847639...)
    579579            sage: m.viterbi([-2,-1,.1,0.3])
    580             ([1, 1, 1, 0], -9.5660236533785135)
     580            ([1, 1, 1, 0], -9.566023653378513)
    581581        """
    582582        cdef TimeSeries _obs
    583583        if not isinstance(obs, TimeSeries):
     
    812812
    813813            sage: m = hmm.GaussianHiddenMarkovModel([[.1,.9],[.5,.5]], [(1,.5), (-1,3)], [.1,.9])
    814814            sage: m.log_likelihood([-2,-1,.1,0.1])
    815             -8.8582822159862751
     815            -8.858282215986275
    816816            sage: m.baum_welch([-2,-1,.1,0.1])
    817817            (22.164539478647512, 8)
    818818            sage: m.log_likelihood([-2,-1,.1,0.1])
  • sage/stats/hmm/distributions.pyx

    diff --git a/sage/stats/hmm/distributions.pyx b/sage/stats/hmm/distributions.pyx
    a b  
    146146        sage: P = hmm.GaussianMixtureDistribution([(.3,1,2),(.7,-1,1)]); P
    147147        0.3*N(1.0,2.0) + 0.7*N(-1.0,1.0)
    148148        sage: P[0]
    149         (0.29999999999999999, 1.0, 2.0)
     149        (0.3, 1.0, 2.0)
    150150        sage: P.is_fixed()
    151151        False
    152152        sage: P.fix(1)
     
    213213
    214214            sage: P = hmm.GaussianMixtureDistribution([(.2,-10,.5),(.6,1,1),(.2,20,.5)])
    215215            sage: P[0]
    216             (0.20000000000000001, -10.0, 0.5)
     216            (0.2, -10.0, 0.5)
    217217            sage: P[2]
    218             (0.20000000000000001, 20.0, 0.5)
     218            (0.2, 20.0, 0.5)
    219219            sage: [-1]
    220220            [-1]
    221221            sage: P[-1]
    222             (0.20000000000000001, 20.0, 0.5)
     222            (0.2, 20.0, 0.5)
    223223            sage: P[3]
    224224            Traceback (most recent call last):
    225225            ...
     
    393393
    394394            sage: P = hmm.GaussianMixtureDistribution([(.2,-10,.5),(.6,1,1),(.2,20,.5)])
    395395            sage: P.sample()
    396             19.658243610875129
     396            19.65824361087513
    397397            sage: P.sample(1)
    398398            [-10.4683]
    399399            sage: P.sample(5)
     
    497497
    498498            sage: P = hmm.GaussianMixtureDistribution([(.2,-10,.5),(.6,1,1),(.2,20,.5)])
    499499            sage: P.prob_m(.5, 0)
    500             2.760811768050888...e-97
     500            2.7608117680508...e-97
    501501            sage: P.prob_m(.5, 1)
    502502            0.21123919605857971
    503503            sage: P.prob_m(.5, 2)
  • sage/stats/hmm/hmm.pyx

    diff --git a/sage/stats/hmm/hmm.pyx b/sage/stats/hmm/hmm.pyx
    a b  
    266266        sage: m.log_likelihood([0,1,0,1,0,1])
    267267        -4.66693474691329...
    268268        sage: m.viterbi([0,1,0,1,0,1])
    269         ([1, 1, 1, 1, 1, 1], -5.3788328422087481)
     269        ([1, 1, 1, 1, 1, 1], -5.378832842208748)
    270270        sage: m.baum_welch([0,1,0,1,0,1])
    271271        (0.0, 22)
    272272        sage: m
     
    479479            sage: m.log_likelihood([0, 1, 0, 1, 1, 0, 1, 0, 0, 0])
    480480            -7.3301308009370825
    481481            sage: m.log_likelihood([0, 1, 0, 1, 1, 0, 1, 0, 0, 0], scale=False)
    482             -7.3301308009370816
     482            -7.330130800937082
    483483            sage: m.log_likelihood([])
    484484            0.0
    485485
     
    493493
    494494            sage: m = hmm.DiscreteHiddenMarkovModel([[0.4,0.6],[0.1,0.9]], [[0.1,0.9],[0.5,0.5]], [.2,.8])
    495495            sage: m.log_likelihood([0,1]*1000, scale=True)
    496             -1433.8206666527281
     496            -1433.820666652728
    497497            sage: m.log_likelihood([0,1]*1000, scale=False)
    498498            -inf
    499499        """
     
    591591        non-scaled algorithm::
    592592
    593593            sage: m._forward_scale(stats.IntList([0,1]*1000))
    594             -1433.8206666527281
     594            -1433.820666652728
    595595            sage: m._forward(stats.IntList([0,1]*1000))
    596596            -inf
    597597
     
    599599
    600600            sage: set_random_seed(0); v = m.sample(1000)
    601601            sage: m._forward_scale(v)
    602             -686.87531893650555
     602            -686.8753189365056
    603603        """
    604604        # This is just like self._forward(obs) above, except at every step of the
    605605        # algorithm, we rescale the vector alpha so that the sum of
     
    855855
    856856            sage: m = hmm.DiscreteHiddenMarkovModel([[0.1,0.9],[0.9,0.1]], [[1,0],[0,1]], [.2,.8])
    857857            sage: m._viterbi(stats.IntList([1]*5))
    858             ([1, 1, 1, 1, 1], -9.4334839232903924)
     858            ([1, 1, 1, 1, 1], -9.433483923290392)
    859859            sage: m._viterbi(stats.IntList([0]*5))
    860860            ([0, 0, 0, 0, 0], -10.819778284410283)
    861861
     
    934934
    935935            sage: m = hmm.DiscreteHiddenMarkovModel([[0.1,0.9],[0.9,0.1]], [[.5,.5],[0,1]], [.2,.8])
    936936            sage: m._viterbi_scale(stats.IntList([1]*10))
    937             ([1, 0, 1, 0, 1, 0, 1, 0, 1, 0], -4.6371240950343733)
     937            ([1, 0, 1, 0, 1, 0, 1, 0, 1, 0], -4.637124095034373)
    938938
    939939        Long sequences should not overflow::
    940940
     
    12021202            sage: m = hmm.DiscreteHiddenMarkovModel([[0.1,0.9],[0.9,0.1]], [[.5,.5],[.2,.8]], [.2,.8])
    12031203            sage: set_random_seed(0); v = m.sample(100)
    12041204            sage: m.baum_welch(v,fix_emissions=True)
    1205             (-66.986308569187742, 100)
     1205            (-66.98630856918774, 100)
    12061206            sage: m.emission_matrix()
    12071207            [0.5 0.5]
    12081208            [0.2 0.8]