Skip to content

Windows support (again) #32

@oscarbenjamin

Description

@oscarbenjamin

This is a continuation of #10 after #28 fixed the basic problem reported there.

After #31 the doctests are running again in CI and many of them in acb and arb are failing on Windows.

There is one compiler warning when building python-flint that is also seen on Linux:

src/flint/pyflint.c: In function ‘__pyx_pf_5flint_6_flint_14dirichlet_char_4__init__’:
src/flint/pyflint.c:195151:23: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
       if (((__pyx_t_5 > __pyx_t_6) != 0)) {
                       ^

That is coming from this line here:
https://github.com/fredrik-johansson/python-flint/blob/71d16124fb241e3c4a62267a11d6842478e420b3/src/flint/dirichlet.pyx#L98
Specifically the comparison comes from max(q, 2) and is because q is ulong where as cython decides to make 2 be a signed long. Perhaps that is a bug in cython itself. It seems unlikely that it would cause any significant problems though since both q and 2 will always be positive.

The other errors are all from acb and arb:

**********************************************************************
File "C:\hostedtoolcache\windows\Python\3.11.0\x64\Lib\site-packages\flint\_flint.cp311-win_amd64.pyd", line ?, in flint._flint.dirichlet_char.l
Failed example:
    showgood(lambda: chi.l(2), dps=25)
Exception raised:
    Traceback (most recent call last):
      File "C:\hostedtoolcache\windows\Python\3.11.0\x64\Lib\doctest.py", line 1350, in __run
        exec(compile(example.source, filename, "single",
      File "<doctest flint._flint.dirichlet_char.l[1]>", line 1, in <module>
        showgood(lambda: chi.l(2), dps=25)
      File "src\flint\functions.pyx", line 114, in flint._flint.showgood
        good(func, **kwargs)
      File "src\flint\functions.pyx", line 100, in flint._flint.good
        raise ValueError("no convergence (maxprec=%i, try higher maxprec)" % maxprec)
    ValueError: no convergence (maxprec=960, try higher maxprec)
**********************************************************************
158 items had failures:
   1 of   1 in flint._flint.__test__.acb.acos (line 516)
   1 of   3 in flint._flint.__test__.acb.agm (line 571)
   1 of   3 in flint._flint.__test__.acb.arg (line 350)
   2 of   2 in flint._flint.__test__.acb.bessel_i (line 2314)
   1 of   2 in flint._flint.__test__.acb.bessel_j (line 2265)
   2 of   3 in flint._flint.__test__.acb.bessel_k (line 2293)
   1 of   1 in flint._flint.__test__.acb.bessel_y (line 2280)
   1 of   1 in flint._flint.__test__.acb.chebyshev_t (line 1396)
   1 of   1 in flint._flint.__test__.acb.chebyshev_u (line 1408)
   1 of   1 in flint._flint.__test__.acb.chi (line 1332)
   1 of   1 in flint._flint.__test__.acb.ci (line 1310)
   1 of   1 in flint._flint.__test__.acb.cos_pi (line 825)
   1 of   1 in flint._flint.__test__.acb.cot_pi (line 859)
   1 of   1 in flint._flint.__test__.acb.coulomb (line 2513)
   2 of   2 in flint._flint.__test__.acb.csgn (line 321)
   2 of   3 in flint._flint.__test__.acb.dirichlet_eta (line 2091)
   1 of   1 in flint._flint.__test__.acb.ei (line 1288)
   2 of   3 in flint._flint.__test__.acb.elliptic_e (line 1161)
   2 of   2 in flint._flint.__test__.acb.elliptic_e_inc (line 1967)
   2 of   2 in flint._flint.__test__.acb.elliptic_f (line 1951)
   1 of   1 in flint._flint.__test__.acb.elliptic_invariants (line 2078)
   2 of   3 in flint._flint.__test__.acb.elliptic_k (line 1146)
   1 of   1 in flint._flint.__test__.acb.elliptic_pi (line 1983)
   2 of   2 in flint._flint.__test__.acb.elliptic_pi_inc (line 1997)
   1 of   1 in flint._flint.__test__.acb.elliptic_roots (line 2064)
   1 of   2 in flint._flint.__test__.acb.erf (line 1037)
   1 of   1 in flint._flint.__test__.acb.erfc (line 1263)
   1 of   1 in flint._flint.__test__.acb.erfi (line 1274)
   2 of   3 in flint._flint.__test__.acb.exp_pi_i (line 732)
   1 of   1 in flint._flint.__test__.acb.expm1 (line 747)
   2 of   2 in flint._flint.__test__.acb.fresnel_c (line 1848)
   2 of   2 in flint._flint.__test__.acb.fresnel_s (line 1835)
   1 of   1 in flint._flint.__test__.acb.gegenbauer_c (line 1434)
   1 of   1 in flint._flint.__test__.acb.hermite_h (line 1460)
   2 of   2 in flint._flint.__test__.acb.hypgeom_0f1 (line 2145)
   5 of   7 in flint._flint.__test__.acb.hypgeom_1f1 (line 2237)
   4 of   5 in flint._flint.__test__.acb.integral (line 2404)
   1 of   1 in flint._flint.__test__.acb.jacobi_p (line 1420)
   1 of   1 in flint._flint.__test__.acb.laguerre_l (line 1447)
   1 of   7 in flint._flint.__test__.acb.lambertw (line 1592)
   3 of   4 in flint._flint.__test__.acb.legendre_p (line 1472)
   3 of   4 in flint._flint.__test__.acb.legendre_q (line 1497)
   2 of   2 in flint._flint.__test__.acb.li (line 1343)
   1 of   2 in flint._flint.__test__.acb.modular_j (line 1111)
   1 of   1 in flint._flint.__test__.acb.pi (line 677)
   1 of   2 in flint._flint.__test__.acb.real_abs (line 1647)
   1 of   1 in flint._flint.__test__.acb.real_ceil (line 1706)
   1 of   1 in flint._flint.__test__.acb.real_floor (line 1694)
   1 of   2 in flint._flint.__test__.acb.real_max (line 1718)
   1 of   2 in flint._flint.__test__.acb.real_min (line 1731)
   1 of   2 in flint._flint.__test__.acb.rising (line 992)
   1 of   1 in flint._flint.__test__.acb.rising2 (line 1006)
   2 of   3 in flint._flint.__test__.acb.sgn (line 335)
   1 of   1 in flint._flint.__test__.acb.shi (line 1321)
   1 of   1 in flint._flint.__test__.acb.si (line 1299)
   1 of   1 in flint._flint.__test__.acb.sin_cos_pi (line 836)
   1 of   1 in flint._flint.__test__.acb.sin_pi (line 814)
   2 of   3 in flint._flint.__test__.acb.stieltjes (line 1760)
   1 of   1 in flint._flint.__test__.acb.tan_pi (line 848)
   4 of   4 in flint._flint.__test__.acb.zeta_zero (line 2347)
   3 of   6 in flint._flint.__test__.acb_mat.det (line 191)
   2 of   5 in flint._flint.__test__.arb.agm (line 1255)
   2 of   3 in flint._flint.__test__.arb.bell_number (line 1302)
   1 of   4 in flint._flint.__test__.arb.bernoulli (line 1282)
   1 of   2 in flint._flint.__test__.arb.cos_pi (line 797)
   1 of   2 in flint._flint.__test__.arb.cot_pi (line 857)
   1 of   2 in flint._flint.__test__.arb.fac (line 1346)
   1 of   4 in flint._flint.__test__.arb.gamma (line 1111)
   2 of   2 in flint._flint.__test__.arb.legendre_p_root (line 1666)
   1 of   2 in flint._flint.__test__.arb.log1p (line 734)
   2 of   3 in flint._flint.__test__.arb.partitions_p (line 1319)
   1 of   3 in flint._flint.__test__.arb.rising (line 1187)
   1 of   2 in flint._flint.__test__.arb.sin_pi (line 784)
   1 of   2 in flint._flint.__test__.arb.sinc_pi (line 940)
   1 of   3 in flint._flint.__test__.arb.sqrt (line 650)
   1 of   2 in flint._flint.__test__.arb.tan_pi (line 844)
   3 of   6 in flint._flint.__test__.arb_mat.det (line 181)
   1 of   2 in flint._flint.__test__.dirichlet_char.hardy_z (line 182)
   1 of   4 in flint._flint.__test__.dirichlet_char.l (line 163)
   1 of   1 in flint._flint.acb.acos
   1 of   3 in flint._flint.acb.agm
   1 of   3 in flint._flint.acb.arg
   2 of   2 in flint._flint.acb.bessel_i
   1 of   2 in flint._flint.acb.bessel_j
   2 of   3 in flint._flint.acb.bessel_k
   1 of   1 in flint._flint.acb.bessel_y
   1 of   1 in flint._flint.acb.chebyshev_t
   1 of   1 in flint._flint.acb.chebyshev_u
   1 of   1 in flint._flint.acb.chi
   1 of   1 in flint._flint.acb.ci
   1 of   1 in flint._flint.acb.cos_pi
   1 of   1 in flint._flint.acb.cot_pi
   1 of   1 in flint._flint.acb.coulomb
   2 of   2 in flint._flint.acb.csgn
   2 of   3 in flint._flint.acb.dirichlet_eta
   1 of   1 in flint._flint.acb.ei
   2 of   3 in flint._flint.acb.elliptic_e
   2 of   2 in flint._flint.acb.elliptic_e_inc
   2 of   2 in flint._flint.acb.elliptic_f
   1 of   1 in flint._flint.acb.elliptic_invariants
   2 of   3 in flint._flint.acb.elliptic_k
   1 of   1 in flint._flint.acb.elliptic_pi
   2 of   2 in flint._flint.acb.elliptic_pi_inc
   1 of   1 in flint._flint.acb.elliptic_roots
   1 of   2 in flint._flint.acb.erf
   1 of   1 in flint._flint.acb.erfc
   1 of   1 in flint._flint.acb.erfi
   2 of   3 in flint._flint.acb.exp_pi_i
   1 of   1 in flint._flint.acb.expm1
   2 of   2 in flint._flint.acb.fresnel_c
   2 of   2 in flint._flint.acb.fresnel_s
   1 of   1 in flint._flint.acb.gegenbauer_c
   1 of   1 in flint._flint.acb.hermite_h
   2 of   2 in flint._flint.acb.hypgeom_0f1
   5 of   7 in flint._flint.acb.hypgeom_1f1
   4 of   5 in flint._flint.acb.integral
   1 of   1 in flint._flint.acb.jacobi_p
   1 of   1 in flint._flint.acb.laguerre_l
   1 of   7 in flint._flint.acb.lambertw
   3 of   4 in flint._flint.acb.legendre_p
   3 of   4 in flint._flint.acb.legendre_q
   2 of   2 in flint._flint.acb.li
   1 of   2 in flint._flint.acb.modular_j
   1 of   1 in flint._flint.acb.pi
   1 of   2 in flint._flint.acb.real_abs
   1 of   1 in flint._flint.acb.real_ceil
   1 of   1 in flint._flint.acb.real_floor
   1 of   2 in flint._flint.acb.real_max
   1 of   2 in flint._flint.acb.real_min
   1 of   2 in flint._flint.acb.rising
   1 of   1 in flint._flint.acb.rising2
   2 of   3 in flint._flint.acb.sgn
   1 of   1 in flint._flint.acb.shi
   1 of   1 in flint._flint.acb.si
   1 of   1 in flint._flint.acb.sin_cos_pi
   1 of   1 in flint._flint.acb.sin_pi
   2 of   3 in flint._flint.acb.stieltjes
   1 of   1 in flint._flint.acb.tan_pi
   4 of   4 in flint._flint.acb.zeta_zero
   3 of   6 in flint._flint.acb_mat.det
   2 of   5 in flint._flint.arb.agm
   2 of   3 in flint._flint.arb.bell_number
   1 of   4 in flint._flint.arb.bernoulli
   1 of   2 in flint._flint.arb.cos_pi
   1 of   2 in flint._flint.arb.cot_pi
   1 of   2 in flint._flint.arb.fac
   1 of   4 in flint._flint.arb.gamma
   2 of   2 in flint._flint.arb.legendre_p_root
   1 of   2 in flint._flint.arb.log1p
   2 of   3 in flint._flint.arb.partitions_p
   1 of   3 in flint._flint.arb.rising
   1 of   2 in flint._flint.arb.sin_pi
   1 of   2 in flint._flint.arb.sinc_pi
   1 of   3 in flint._flint.arb.sqrt
   1 of   2 in flint._flint.arb.tan_pi
   3 of   6 in flint._flint.arb_mat.det
   1 of   2 in flint._flint.dirichlet_char.hardy_z
   1 of   4 in flint._flint.dirichlet_char.l
***Test Failed*** 234 failures.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions