lfortran / lfortran

Official main repository for LFortran
https://lfortran.org/
Other
958 stars 155 forks source link

Parsing SciPy TODO list #780

Closed certik closed 2 years ago

certik commented 2 years ago

The following lfortran --show-ast --fixed-form $file > $file.ast now works for every *.f file in SciPy, except the following three issues:

After resolving those three issues, here is a TODO list:

This would be a very solid test that we have parsed everything correctly to AST (and can format everything correctly); everything that is tested by SciPy tests at least.

certik commented 2 years ago

Here is how one can test it:

#!/bin/bash

set -e

find . -name "*.f" > files.txt
files=$(<files.txt)

set -x

for file in $files; do
    lfortran --fixed-form fmt --no-color $file > $file.f90
    gfortran -ffree-line-length-none -fallow-argument-mismatch -c $file.f90 -o $file.o
done

One has to manually comment out for now the three top issues with parsing, but otherwise everything parses to AST, the fmt emits f90 file, and GFortran can compile all the f90 files. So this is a big milestone!

I expect few more bugs as we try to link it and actually use it in SciPy, but with a bit of luck there is nothing major.

certik commented 2 years ago

We can now parse data correctly. So now we just need to implement the include and LFortran can parse SciPy, unmodified. Update: done, we can now parse SciPy.

certik commented 2 years ago

Now we need to hook LFortran or our wrapper script into SciPy's build system. I used SciPy's version 527f2ddcda98ebf4dae37abc38c85082218fcd6a and built it on macOS M1 Max using:

git submodule update --init
mamba env create -f environment.yml
conda activate scipy-dev
pip install .

Then I tested using:

import scipy
scipy.test()

And I got the following output:

Click to expand ``` In [1]: import scipy In [2]: scipy.test() ============================= test session starts ============================== platform darwin -- Python 3.10.6, pytest-7.1.3, pluggy-1.0.0 rootdir: /Users/ondrej/repos/scipy, configfile: pytest.ini plugins: xdist-2.5.0, forked-1.4.0, timeout-2.1.0, cov-4.0.0 collected 52264 items / 12238 deselected / 40026 selected ../_lib/tests/test__gcutils.py ...... [ 0%] ../_lib/tests/test__pep440.py ......... [ 0%] ../_lib/tests/test__testutils.py .. [ 0%] ../_lib/tests/test__threadsafety.py .. [ 0%] ../_lib/tests/test__util.py ........................... [ 0%] ../_lib/tests/test_bunch.py ............................ [ 0%] ../_lib/tests/test_ccallback.py .... [ 0%] ../_lib/tests/test_deprecation.py . [ 0%] ../_lib/tests/test_import_cycles.py . [ 0%] ../_lib/tests/test_public_api.py .... [ 0%] ../_lib/tests/test_scipy_version.py . [ 0%] ../_lib/tests/test_tmpdirs.py ... [ 0%] ../cluster/tests/test_disjoint_set.py ..................... [ 0%] ../cluster/tests/test_hierarchy.py ..................................... [ 0%] ...................................................... [ 0%] ../cluster/tests/test_vq.py ......................... [ 0%] ../constants/tests/test_codata.py ....... [ 0%] ../constants/tests/test_constants.py ... [ 0%] ../datasets/tests/test_data.py .... [ 0%] ../fft/_pocketfft/tests/test_basic.py .................................. [ 0%] ........................................................................ [ 0%] ........................................................................ [ 1%] ........................................................................ [ 1%] ........................................................................ [ 1%] ........................................................................ [ 1%] .................................................................. [ 1%] ../fft/_pocketfft/tests/test_real_transforms.py ........................ [ 1%] ........................................................................ [ 1%] ........................................................................ [ 2%] ........................................................................ [ 2%] ........................................................................ [ 2%] ........................................................................ [ 2%] ........................................................................ [ 2%] ........................................................................ [ 3%] ........................................................................ [ 3%] ........................................................................ [ 3%] ........................................................................ [ 3%] ........................................................................ [ 3%] ........................................................................ [ 3%] ..........................................................F............. [ 4%] ........................................................................ [ 4%] ........................................................................ [ 4%] ........................................................................ [ 4%] ........................................................................ [ 4%] ........................................................................ [ 5%] ........................................................................ [ 5%] ........................................................................ [ 5%] ........................................................................ [ 5%] ........................................................................ [ 5%] ........................................................................ [ 5%] ........................................................................ [ 6%] ........................................................................ [ 6%] ........................................................................ [ 6%] .................................................... [ 6%] ../fft/tests/test_backend.py ........................................... [ 6%] ... [ 6%] ../fft/tests/test_fft_function.py . [ 6%] ../fft/tests/test_fftlog.py ........................................ [ 6%] ../fft/tests/test_helper.py .................. [ 6%] ../fft/tests/test_multithreading.py .................................... [ 6%] .................... [ 7%] ../fft/tests/test_numpy.py ............................................. [ 7%] ........................................................................ [ 7%] ......... [ 7%] ../fft/tests/test_real_transforms.py ................................... [ 7%] ........................................................................ [ 7%] ........................................................................ [ 7%] ........................................................................ [ 7%] ........................................................................ [ 8%] ........................................................................ [ 8%] ........................................................................ [ 8%] ........................................................................ [ 8%] ........................................................................ [ 8%] ........................................................................ [ 9%] ........................................................................ [ 9%] ........................................................................ [ 9%] ........................................................................ [ 9%] ........................................................................ [ 9%] ........................................................................ [ 9%] ........................................................................ [ 10%] ........................................................................ [ 10%] ........................................................................ [ 10%] ........................................................................ [ 10%] ........................................................................ [ 10%] ........................................................................ [ 11%] ........................................................................ [ 11%] ........................................................................ [ 11%] ........................................................................ [ 11%] ........................................................................ [ 11%] ........................................................................ [ 11%] ........................................................................ [ 12%] ........................................................................ [ 12%] ........................................................................ [ 12%] ........................................................................ [ 12%] ........................................................................ [ 12%] ........................................................................ [ 12%] ........................................................................ [ 13%] ........................................................................ [ 13%] ........................................................................ [ 13%] ........................................................................ [ 13%] ........................................................................ [ 13%] ........................................................................ [ 14%] ........................................................................ [ 14%] ........................................................................ [ 14%] ........................................................................ [ 14%] ........................................................................ [ 14%] ............................................................. [ 14%] ../fftpack/tests/test_basic.py ......x.................................. [ 15%] ........................................................................ [ 15%] ........................................................................ [ 15%] ........................................................................ [ 15%] ....................................... [ 15%] ../fftpack/tests/test_helper.py .... [ 15%] ../fftpack/tests/test_import.py . [ 15%] ../fftpack/tests/test_pseudo_diffs.py ............................. [ 15%] ../fftpack/tests/test_real_transforms.py ............................... [ 15%] ........................................................................ [ 16%] ........................................................................ [ 16%] ................................................. [ 16%] ../integrate/_ivp/tests/test_ivp.py ........................... [ 16%] ../integrate/_ivp/tests/test_rk.py .......... [ 16%] ../integrate/tests/test__quad_vec.py ......................... [ 16%] ../integrate/tests/test_banded_ode_solvers.py . [ 16%] ../integrate/tests/test_bvp.py ................ [ 16%] ../integrate/tests/test_integrate.py ................................... [ 16%] ............ [ 16%] ../integrate/tests/test_odeint_jac.py .. [ 16%] ../integrate/tests/test_quadpack.py .................................... [ 16%] .......................................................... [ 16%] ../integrate/tests/test_quadrature.py .................................. [ 16%] [ 16%] ../interpolate/tests/test_bsplines.py .................................. [ 17%] ........................................................................ [ 17%] .x....................... [ 17%] ../interpolate/tests/test_fitpack.py ................................... [ 17%] ..s..... [ 17%] ../interpolate/tests/test_fitpack2.py .................................. [ 17%] ................................ [ 17%] ../interpolate/tests/test_interpnd.py ..................... [ 17%] ../interpolate/tests/test_interpolate.py ............................... [ 17%] ........................................................................ [ 17%] ........................... [ 17%] ../interpolate/tests/test_ndgriddata.py .................. [ 17%] ../interpolate/tests/test_pade.py .... [ 18%] ../interpolate/tests/test_polyint.py ................................... [ 18%] .................... [ 18%] ../interpolate/tests/test_rbf.py .......... [ 18%] ../interpolate/tests/test_rbfinterp.py ................................. [ 18%] ........................................................................ [ 18%] ........................................................................ [ 18%] ..... [ 18%] ../interpolate/tests/test_rgi.py ....................................... [ 18%] ........................................................................ [ 18%] ......... [ 18%] ../io/_harwell_boeing/tests/test_fortran_format.py ........... [ 18%] ../io/_harwell_boeing/tests/test_hb.py .. [ 18%] ../io/arff/tests/test_arffread.py ........................... [ 19%] ../io/matlab/tests/test_byteordercodes.py .. [ 19%] ../io/matlab/tests/test_mio.py ......................................... [ 19%] ........................... [ 19%] ../io/matlab/tests/test_mio5_utils.py ...... [ 19%] ../io/matlab/tests/test_mio_funcs.py . [ 19%] ../io/matlab/tests/test_mio_utils.py .. [ 19%] ../io/matlab/tests/test_miobase.py . [ 19%] ../io/matlab/tests/test_pathological.py .. [ 19%] ../io/matlab/tests/test_streams.py ........... [ 19%] ../io/tests/test_fortran.py ........... [ 19%] ../io/tests/test_idl.py ................................................ [ 19%] ................... [ 19%] ../io/tests/test_mmio.py ............................................... [ 19%] ........................... [ 19%] ../io/tests/test_netcdf.py ......................... [ 19%] ../io/tests/test_paths.py ........... [ 19%] ../io/tests/test_wavfile.py ............................................ [ 19%] ........................................................................ [ 20%] ........................................................................ [ 20%] ........................................................................ [ 20%] .......................... [ 20%] ../linalg/tests/test_basic.py .......................................... [ 20%] ...................s................................................s... [ 20%] ........................ [ 20%] ../linalg/tests/test_blas.py ........................................... [ 20%] ........ [ 20%] ../linalg/tests/test_cython_blas.py ...... [ 20%] ../linalg/tests/test_cython_lapack.py .. [ 20%] ../linalg/tests/test_cythonized_array_utils.py ......................... [ 20%] ..................... [ 21%] ../linalg/tests/test_decomp.py ........X................................ [ 21%] ........................................................................ [ 21%] ........................................................................ [ 21%] ........................................................................ [ 21%] .....X...................x............................... [ 21%] ../linalg/tests/test_decomp_cholesky.py ................ [ 21%] ../linalg/tests/test_decomp_cossin.py .................................. [ 21%] ......................................................... [ 22%] ../linalg/tests/test_decomp_ldl.py ............ [ 22%] ../linalg/tests/test_decomp_polar.py .. [ 22%] ../linalg/tests/test_decomp_update.py .................................. [ 22%] ........................................................................ [ 22%] ........................................................................ [ 22%] ........................................................................ [ 22%] ........................................................................ [ 22%] ........................................................................ [ 23%] ........................................................................ [ 23%] ........................................................................ [ 23%] ........................................................................ [ 23%] ....................................................... [ 23%] ../linalg/tests/test_fblas.py .......................................... [ 23%] ........................................................................ [ 24%] ............... [ 24%] ../linalg/tests/test_interpolative.py .................................. [ 24%] .............. [ 24%] ../linalg/tests/test_lapack.py ......................................... [ 24%] .......................................................................s [ 24%] ........................................................................ [ 24%] ........................................................................ [ 24%] ........................................................................ [ 25%] ........................................................................ [ 25%] ........................................................................ [ 25%] ........................................................................ [ 25%] ........................................................................ [ 25%] ........................................................................ [ 25%] ........................................................................ [ 26%] ........................................................................ [ 26%] ........................................................................ [ 26%] ........................................................................ [ 26%] ........................................................................ [ 26%] ........................................................................ [ 27%] ........................................................................ [ 27%] ........................................................................ [ 27%] ........................................................................ [ 27%] ........................................................................ [ 27%] ........................................................................ [ 27%] ........................................................................ [ 28%] ........................................................................ [ 28%] ........................................................................ [ 28%] ........................................................................ [ 28%] ........................................................................ [ 28%] ..................................................x.........x... [ 28%] ../linalg/tests/test_matfuncs.py .....................................X. [ 29%] ................ [ 29%] ../linalg/tests/test_matmul_toeplitz.py ... [ 29%] ../linalg/tests/test_misc.py . [ 29%] ../linalg/tests/test_procrustes.py .......... [ 29%] ../linalg/tests/test_sketches.py ..... [ 29%] ../linalg/tests/test_solve_toeplitz.py ......X [ 29%] ../linalg/tests/test_solvers.py ..xF..... [ 29%] ../linalg/tests/test_special_matrices.py ............................... [ 29%] ........................................................................ [ 29%] ................ [ 29%] ../misc/tests/test_common.py ... [ 29%] ../misc/tests/test_doccer.py ..... [ 29%] ../ndimage/tests/test_c_api.py ... [ 29%] ../ndimage/tests/test_datatypes.py .F [ 29%] ../ndimage/tests/test_filters.py ....................................... [ 29%] ........................................................................ [ 29%] ........................................................................ [ 30%] ........................................................................ [ 30%] ........................................................................ [ 30%] ........................................................................ [ 30%] ........................................................................ [ 30%] ........................................................................ [ 30%] ........................................................................ [ 31%] ........................................................................ [ 31%] ........................................................................ [ 31%] ........................................................................ [ 31%] ........................................................................ [ 31%] ........................................................................ [ 31%] ........................................................................ [ 32%] ........................................................................ [ 32%] ........................................................................ [ 32%] ........................................................................ [ 32%] ........................................................................ [ 32%] ........................................................................ [ 33%] ........................................................................ [ 33%] ..................................................................... [ 33%] ../ndimage/tests/test_fourier.py ....................................... [ 33%] ..................................... [ 33%] ../ndimage/tests/test_interpolation.py ................................. [ 33%] ........................................................................ [ 33%] ........................................................................ [ 34%] ........................................................................ [ 34%] ........................................................................ [ 34%] ........................................................................ [ 34%] ........................................................................ [ 34%] ........................................................................ [ 34%] ........................................................................ [ 35%] ........................................................................ [ 35%] ........................................................................ [ 35%] ........................................................................ [ 35%] ........................................................................ [ 35%] ........................................................................ [ 36%] ................... [ 36%] ../ndimage/tests/test_measurements.py .................................. [ 36%] ........................................................................ [ 36%] ............. [ 36%] ../ndimage/tests/test_morphology.py .................................... [ 36%] ........................................................................ [ 36%] ........................................................................ [ 36%] ........................................................................ [ 36%] ........................................................................ [ 37%] ........................................................................ [ 37%] ........................................................................ [ 37%] ........................................................................ [ 37%] ........................................................................ [ 37%] ........................................................................ [ 38%] ........................................................................ [ 38%] ........................................................................ [ 38%] ....... [ 38%] ../ndimage/tests/test_splines.py .................. [ 38%] ../odr/tests/test_odr.py ................s. [ 38%] ../optimize/_trustregion_constr/tests/test_canonical_constraint.py ..... [ 38%] . [ 38%] ../optimize/_trustregion_constr/tests/test_projections.py .......... [ 38%] ../optimize/_trustregion_constr/tests/test_qp_subproblem.py ............ [ 38%] ........... [ 38%] ../optimize/_trustregion_constr/tests/test_report.py .. [ 38%] ../optimize/tests/test__basinhopping.py .............................. [ 38%] ../optimize/tests/test__differential_evolution.py ...................... [ 38%] ................................... [ 38%] ../optimize/tests/test__dual_annealing.py .............................. [ 38%] .............. [ 38%] ../optimize/tests/test__linprog_clean_inputs.py ............. [ 39%] ../optimize/tests/test__numdiff.py ................................ [ 39%] ../optimize/tests/test__remove_redundancy.py ........................... [ 39%] ......................................... [ 39%] ../optimize/tests/test__root.py .... [ 39%] ../optimize/tests/test__shgo.py ........................................ [ 39%] ......... [ 39%] ../optimize/tests/test__spectral.py .... [ 39%] ../optimize/tests/test_cobyla.py .... [ 39%] ../optimize/tests/test_constraint_conversion.py ........ [ 39%] ../optimize/tests/test_constraints.py ................ [ 39%] ../optimize/tests/test_cython_optimize.py ..... [ 39%] ../optimize/tests/test_differentiable_functions.py ........... [ 39%] ../optimize/tests/test_direct.py .................................... [ 39%] ../optimize/tests/test_hessian_update_strategy.py .... [ 39%] ../optimize/tests/test_lbfgsb_hessinv.py .. [ 39%] ../optimize/tests/test_lbfgsb_setulb.py . [ 39%] ../optimize/tests/test_least_squares.py ................................ [ 39%] ........................................................................ [ 39%] ............ [ 39%] ../optimize/tests/test_linear_assignment.py ...................... [ 39%] ../optimize/tests/test_linesearch.py ........... [ 39%] ../optimize/tests/test_linprog.py ...................................... [ 40%] .........................................sss............................ [ 40%] ................................................ss...................... [ 40%] ....................................................s..s.ss............. [ 40%] ...............................................................s........ [ 40%] ..................................................................s.X... [ 40%] ........................................................................ [ 41%] s.sX.................................................................... [ 41%] .........sssss.......................................................... [ 41%] .....................ssss..............................x................ [ 41%] ............................s........................................... [ 41%] .x............................................s......................... [ 42%] ................... [ 42%] ../optimize/tests/test_lsq_common.py .......... [ 42%] ../optimize/tests/test_lsq_linear.py ..................... [ 42%] ../optimize/tests/test_milp.py .x......... [ 42%] ../optimize/tests/test_minimize_constrained.py ................X [ 42%] ../optimize/tests/test_minpack.py ...................................... [ 42%] ........................... [ 42%] ../optimize/tests/test_nnls.py .. [ 42%] ../optimize/tests/test_nonlin.py .................................... [ 42%] ../optimize/tests/test_optimize.py ...............X.............X....... [ 42%] ......X.............X................................................... [ 42%] .....x.................................................................. [ 42%] .....................................................................s.s [ 43%] s.ss.ss.ss.ss.ss.ss.ss.ss.ss.ss.ss.ss.ss.ss.ss.ss.ss.ss.ss.ss.ss.ss.ss.s [ 43%] s.ss.ss.ss.ss.ss.ss.ss.ss.ss.ss.ss.ss.ss.ss.ss.ss.s..................... [ 43%] ...............s.ss.ss.ss.ss.ss.ss.ss.ss.ss.ss.ss.ss.ss.ss.ss.ss.ss.ss.s [ 43%] s.ss.ss.ss.ss.ss.ss.ss.ss.ss.ss.ss.ss.ss.ss.ss.ss.ss.ss.ss.ss.ss.ss.s... [ 43%] ...... [ 43%] ../optimize/tests/test_quadratic_assignment.py .............. [ 43%] ../optimize/tests/test_regression.py ... [ 43%] ../optimize/tests/test_slsqp.py ..................................... [ 44%] ../optimize/tests/test_tnc.py ..................... [ 44%] ../optimize/tests/test_trustregion.py ........ [ 44%] ../optimize/tests/test_trustregion_exact.py .......... [ 44%] ../optimize/tests/test_trustregion_krylov.py ..... [ 44%] ../optimize/tests/test_zeros.py ................................... [ 44%] ../signal/tests/test_array_tools.py ...... [ 44%] ../signal/tests/test_bsplines.py .............. [ 44%] ../signal/tests/test_cont2discrete.py ........................ [ 44%] ../signal/tests/test_czt.py ............................................ [ 44%] ........................................................................ [ 44%] ............................................. [ 44%] ../signal/tests/test_dltisys.py ................................ [ 44%] ../signal/tests/test_filter_design.py .................................. [ 44%] ........................................................................ [ 45%] ........................................................................ [ 45%] ................................... [ 45%] ../signal/tests/test_fir_filter_design.py .............................. [ 45%] ....... [ 45%] ../signal/tests/test_ltisys.py ......................................... [ 45%] .......................................................... [ 45%] ../signal/tests/test_max_len_seq.py .. [ 45%] ../signal/tests/test_peak_finding.py ................................... [ 45%] .................. [ 45%] ../signal/tests/test_result_type.py ..... [ 45%] ../signal/tests/test_savitzky_golay.py .............. [ 45%] ../signal/tests/test_signaltools.py .................................... [ 45%] ........................................................................ [ 46%] ........................................................................ [ 46%] ........................................................................ [ 46%] ........................................................................ [ 46%] ........................................................................ [ 46%] ........................................................................ [ 47%] ........................................................................ [ 47%] ........................................................................ [ 47%] ........................................................................ [ 47%] ........................................................................ [ 47%] ........................................................................ [ 47%] ........................................................................ [ 48%] ........................................................................ [ 48%] ........................................................................ [ 48%] ........................................................................ [ 48%] ........................................................................ [ 48%] ........................................................................ [ 49%] ........................................................................ [ 49%] ........................................................................ [ 49%] ........................................................................ [ 49%] ........................................................................ [ 49%] ........................................................................ [ 49%] ........................................................................ [ 50%] ........................................................................ [ 50%] .........ss............................................................. [ 50%] ................................................... [ 50%] ../signal/tests/test_spectral.py ....................................... [ 50%] ........................................................................ [ 50%] .... [ 50%] ../signal/tests/test_upfirdn.py ........................................ [ 50%] ........................................................................ [ 51%] ........................................................................ [ 51%] ........................................................................ [ 51%] .................................... [ 51%] ../signal/tests/test_waveforms.py .................................. [ 51%] ../signal/tests/test_wavelets.py ....... [ 51%] ../signal/tests/test_windows.py ........................................ [ 51%] ........... [ 51%] ../sparse/csgraph/tests/test_connected_components.py ...... [ 51%] ../sparse/csgraph/tests/test_conversions.py ... [ 51%] ../sparse/csgraph/tests/test_flow.py ................................... [ 51%] ......... [ 51%] ../sparse/csgraph/tests/test_graph_laplacian.py ........................ [ 52%] ........................................................................ [ 52%] ........................................................................ [ 52%] ........................................................................ [ 52%] ........................................................................ [ 52%] ........................................................................ [ 52%] ........................................................................ [ 53%] ........................................................................ [ 53%] ........................................................................ [ 53%] ........................................................................ [ 53%] ................ [ 53%] ../sparse/csgraph/tests/test_matching.py ....................s [ 53%] ../sparse/csgraph/tests/test_reordering.py ... [ 53%] ../sparse/csgraph/tests/test_shortest_path.py .......................... [ 53%] .... [ 53%] ../sparse/csgraph/tests/test_spanning_tree.py . [ 53%] ../sparse/csgraph/tests/test_traversal.py .... [ 53%] ../sparse/linalg/_dsolve/tests/test_linsolve.py .s.s.s.s.ss.......s..... [ 53%] ................ [ 53%] ../sparse/linalg/_eigen/arpack/tests/test_arpack.py ................... [ 53%] ../sparse/linalg/_eigen/lobpcg/tests/test_lobpcg.py ................. [ 54%] ../sparse/linalg/_eigen/tests/test_svds.py ............................. [ 54%] .............................................s.ss..s.ssss....s.ss..s.sss [ 54%] s....s.ss..s.ssss....s.ss..s.ssss....s.ss..s.ssss....s.ss..s.ssss....... [ 54%] ......sss.......ssssssssss.............................................. [ 54%] ......................................s.ss....s.ss....s.ss....s.ss....s. [ 54%] ss....s.ss....s.ss....s.ss....s.ss....s.ss....s.ss....s.ss.............. [ 54%] ..........sssssssss...x......s..................................ssssssss [ 55%] ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 55%] sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssxx [ 55%] ../sparse/linalg/_isolve/tests/test_gcrotmk.py ....... [ 55%] ../sparse/linalg/_isolve/tests/test_iterative.py ....................... [ 55%] .F..xxxxx.............................. [ 55%] ../sparse/linalg/_isolve/tests/test_lgmres.py ........ [ 55%] ../sparse/linalg/_isolve/tests/test_lsmr.py ............... [ 55%] ../sparse/linalg/_isolve/tests/test_lsqr.py ..... [ 55%] ../sparse/linalg/_isolve/tests/test_minres.py ....... [ 55%] ../sparse/linalg/_isolve/tests/test_utils.py . [ 55%] ../sparse/linalg/tests/test_expm_multiply.py ........................... [ 55%] ........................................................................ [ 56%] ........................................................................ [ 56%] ........ [ 56%] ../sparse/linalg/tests/test_interface.py .............. [ 56%] ../sparse/linalg/tests/test_matfuncs.py ................................ [ 56%] . [ 56%] ../sparse/linalg/tests/test_norm.py ........ [ 56%] ../sparse/linalg/tests/test_onenormest.py ss.s.. [ 56%] ../sparse/linalg/tests/test_propack.py ................................. [ 56%] ....... [ 56%] ../sparse/linalg/tests/test_pydata_sparse.py sssssssssssssssssssssssssss [ 56%] ssssssssssssssssssssssssss [ 56%] ../sparse/tests/test_array_api.py ...................................... [ 56%] ........................................................................ [ 56%] ........................................................................ [ 57%] ........................................................................ [ 57%] ............................. [ 57%] ../sparse/tests/test_base.py ........................................... [ 57%] ........................................................................ [ 57%] .....................s.................................................. [ 57%] ........................................................................ [ 57%] .................................s..............ssss.s.................. [ 58%] ................................s.ssssss................................ [ 58%] ........................................s.........sss.s................. [ 58%] ...................................ssssss............................... [ 58%] .........................................s................ssssssssssssss [ 58%] ssssssssssssssssssssssss.......sssss..ssssss............................ [ 59%] ...........................................s.......x......sss.ssssssssss [ 59%] sssssssssssssssssssssssssssss.......sssss..ssssss....................... [ 59%] ................................................s...x.s.s.....ssssssssss [ 59%] ssssssssssssssssssssssssssss.......sssss................................ [ 59%] ..............................................s.............xx.x........ [ 59%] ........................................................................ [ 60%] ...................................................s...................s [ 60%] ss..xx.................................................................. [ 60%] ................................................................s....... [ 60%] .......sss..xx.....ssssssssssssssssssssssssssssssssssssss.......sssss... [ 60%] .......................................................................s [ 61%] .............xx.x.sssxx.....ssssssssssssssssssssssssssssssssssssss...... [ 61%] .sssss.ssssss........................................................... [ 61%] ...........s.......x......sss..........ss.ss..................sss......s [ 61%] ...sssssssssssssssss.....sss.ss.....s..s.x................s..ss......... [ 61%] .........sssssxxs..sssss.s.s............s.......ss.ss..............sss.. [ 61%] ...s..ssssssssssssssssss....ssss.s..s...s..s.xsss..............ss.ss.... [ 62%] ..............ssss..s..sssss.s.s...............s........................ [ 62%] ...............s....................................s................... [ 62%] ......................s..............s................s................. [ 62%] ........ss................s......................................s...... [ 62%] ...................................s..............s................s.... [ 62%] ..s.ss.ss...........sss....s..ssssssssssssssssss....ssss.ss.s...s..s.xss [ 63%] .........sss..ss.ss.................ssss...s..sssss.s.s............s.... [ 63%] ..s........s...................ss....................s.....s.s......s..s [ 63%] s.........sss....s...................................s...............s.. [ 63%] ...s..........................ss.....................s.......s.......s.. [ 63%] s...s.........sss...s.....................................s............. [ 64%] .s.......ss.ss..................sss......s...sssssssssssssssss.....sss.s [ 64%] s.....s..s.x................s..ss..................sssssxxs..sssss.s.s.. [ 64%] ..........s.......ss.ss..............sss.....s..ssssssssssssssssss....ss [ 64%] ss.s..s...s..s.xsss..............ss.ss..................ssss..s..sssss.s [ 64%] .s...............s.......................................s.............. [ 64%] ......................s.........................................s....... [ 65%] .......s................s.........................ss................s... [ 65%] ...................................s.................................... [ 65%] .....s..............s................s......s.ss.ss...........sss....s.. [ 65%] ssssssssssssssssss....ssss.ss.s...s..s.xss.........sss..ss.ss........... [ 65%] ......ssss...s..sssss.s.s............s......s........s.................. [ 66%] .ss....................s.....s.s......s..ss.........sss....s............ [ 66%] .......................s...............s.....s.......................... [ 66%] ss.....................s.......s.......s..s...s.........sss...s......... [ 66%] ............................s..............s.......ss.ss................ [ 66%] ..sss......s...sssssssssssssssss.....sss.ss.....s..s.x................s. [ 66%] .ss..................sssssxxs..sssss.s.s............s.......ss.ss....... [ 67%] .......sss.....s..ssssssssssssssssss....ssss.s..s...s..s.xsss........... [ 67%] ...ss.ss..................ssss..s..sssss.s.s...............s............ [ 67%] ...........................s....................................s....... [ 67%] ..................................s..............s................s..... [ 67%] ....................ss................s................................. [ 68%] .....s.........................................s..............s......... [ 68%] .......s......s.ss.ss...........sss....s..ssssssssssssssssss....ssss.ss. [ 68%] s...s..s.xss.........sss..ss.ss.................ssss...s..sssss.s.s..... [ 68%] .......s......s........s...................ss....................s.....s [ 68%] .s......s..ss.........sss....s...................................s...... [ 68%] .........s.....s..........................ss.....................s...... [ 69%] .s.......s..s...s.........sss...s.....................................s. [ 69%] .............s.......ss.ss..................sss......s...sssssssssssssss [ 69%] ss.....sss.ss.....s..s.x................s..ss..................sssssxxs. [ 69%] .sssss.s.s............s.......ss.ss..............sss.....s..ssssssssssss [ 69%] ssssss....ssss.s..s...s..s.xsss..............ss.ss..................ssss [ 70%] ..s..sssss.s.s...............s.......................................s.. [ 70%] ..................................s..................................... [ 70%] ....s..............s................s.........................ss........ [ 70%] ........s......................................s........................ [ 70%] .................s..............s................s......s.ss.ss......... [ 70%] ..sss....s..ssssssssssssssssss....ssss.ss.s...s..s.xss.........sss..ss.s [ 71%] s.................ssss...s..sssss.s.s............s......s........s...... [ 71%] .............ss....................s.....s.s......s..ss.........sss....s [ 71%] ...................................s...............s.....s.............. [ 71%] ............ss.....................s.......s.......s..s...s.........sss. [ 71%] ..s.....................................s..............s.......ss.ss.... [ 71%] ..............sss......s...sssssssssssssssss.....sss.ss.....s..s.x...... [ 72%] ..........s..ss..................sssssxxs..sssss.s.s............s....... [ 72%] ss.ss..............sss.....s..ssssssssssssssssss....ssss.s..s...s..s.xss [ 72%] s..............ss.ss..................ssss..s..sssss.s.s...............s [ 72%] .......................................s................................ [ 72%] ....s.........................................s..............s.......... [ 73%] ......s.........................ss................s..................... [ 73%] .................s.........................................s............ [ 73%] ..s................s......s.ss.ss...........sss....s..ssssssssssssssssss [ 73%] ....ssss.ss.s...s..s.xss.........sss..ss.ss.................ssss...s..ss [ 73%] sss.s.s............s......s........s...................ss............... [ 73%] .....s.....s.s......s..ss.........sss....s.............................. [ 74%] .....s...............s.....s..........................ss................ [ 74%] .....s.......s.......s..s...s.........sss...s........................... [ 74%] ..........s..............s. [ 74%] ../sparse/tests/test_construct.py ........................... [ 74%] ../sparse/tests/test_csc.py ........... [ 74%] ../sparse/tests/test_csr.py ......... [ 74%] ../sparse/tests/test_extract.py .. [ 74%] ../sparse/tests/test_matrix_io.py ...... [ 74%] ../sparse/tests/test_sparsetools.py ...ss.. [ 74%] ../sparse/tests/test_spfuncs.py ... [ 74%] ../sparse/tests/test_sputils.py ............. [ 74%] ../spatial/tests/test__plotutils.py ... [ 74%] ../spatial/tests/test__procrustes.py ...... [ 74%] ../spatial/tests/test_distance.py ...................................... [ 74%] ........................................................................ [ 75%] .................................................. [ 75%] ../spatial/tests/test_hausdorff.py ..............s [ 75%] ../spatial/tests/test_kdtree.py ........................................ [ 75%] ........................................................................ [ 75%] ........................................................................ [ 75%] ................................................ [ 75%] ../spatial/tests/test_qhull.py ......................................... [ 75%] ........................................................................ [ 76%] ................................................................. [ 76%] ../spatial/tests/test_slerp.py ......................................... [ 76%] .......................................... [ 76%] ../spatial/tests/test_spherical_voronoi.py ............................. [ 76%] ........................................................................ [ 76%] .................. [ 76%] ../spatial/transform/tests/test_rotation.py ............................ [ 76%] ........................................................................ [ 77%] [ 77%] ../spatial/transform/tests/test_rotation_groups.py ..................... [ 77%] ........................................................................ [ 77%] ........................................................................ [ 77%] ................................................................... [ 77%] ../spatial/transform/tests/test_rotation_spline.py ....... [ 77%] ../special/tests/test_basic.py ......................................... [ 77%] ...........x...X........................................................ [ 77%] ........................................................................ [ 78%] ........................................................................ [ 78%] .X.................................s.................................... [ 78%] ........................................................................ [ 78%] ............................................................... [ 78%] ../special/tests/test_bdtr.py ........................ [ 78%] ../special/tests/test_boxcox.py ........ [ 78%] ../special/tests/test_cdflib.py .. [ 78%] ../special/tests/test_cdft_asymptotic.py ... [ 78%] ../special/tests/test_cosine_distr.py ............................... [ 78%] ../special/tests/test_cython_special.py ................................ [ 79%] .........................xxxxx..xx..xx.................................. [ 79%] ........................................................................ [ 79%] ...xxxx............xxxx.................................... [ 79%] ../special/tests/test_data.py .......................................... [ 79%] ........................................................................ [ 79%] .........x.x...............................................x..x...x..... [ 79%] .................................... [ 80%] ../special/tests/test_digamma.py ... [ 80%] ../special/tests/test_ellip_harm.py ..... [ 80%] ../special/tests/test_erfinv.py ............. [ 80%] ../special/tests/test_exponential_integrals.py ........ [ 80%] ../special/tests/test_faddeeva.py ................. [ 80%] ../special/tests/test_gamma.py .. [ 80%] ../special/tests/test_gammainc.py ............................. [ 80%] ../special/tests/test_hyp2f1.py ..................................F..... [ 80%] ......x........................................x.........x.....F...F.... [ 80%] ........F...F.x..................x...................................... [ 80%] ......... [ 80%] ../special/tests/test_hypergeometric.py ................................ [ 80%] ...................... [ 80%] ../special/tests/test_kolmogorov.py .................................... [ 80%] . [ 80%] ../special/tests/test_lambertw.py ... [ 80%] ../special/tests/test_log_softmax.py .......... [ 81%] ../special/tests/test_loggamma.py ...... [ 81%] ../special/tests/test_logit.py .......... [ 81%] ../special/tests/test_logsumexp.py .......... [ 81%] ../special/tests/test_mpmath.py ................... [ 81%] ../special/tests/test_nan_inputs.py .................................... [ 81%] ........................................................................ [ 81%] ........................................................................ [ 81%] ..................................................... [ 81%] ../special/tests/test_ndtr.py ........ [ 81%] ../special/tests/test_ndtri_exp.py ............ [ 81%] ../special/tests/test_orthogonal.py ........................... [ 81%] ../special/tests/test_orthogonal_eval.py ............................... [ 81%] ............................................................... [ 82%] ../special/tests/test_owens_t.py .... [ 82%] ../special/tests/test_pcf.py .. [ 82%] ../special/tests/test_pdtr.py .......... [ 82%] ../special/tests/test_powm1.py .............................. [ 82%] ../special/tests/test_precompute_expn_asy.py s [ 82%] ../special/tests/test_precompute_gammainc.py .s.s [ 82%] ../special/tests/test_round.py .. [ 82%] ../special/tests/test_sf_error.py ........ [ 82%] ../special/tests/test_sici.py .. [ 82%] ../special/tests/test_spence.py .. [ 82%] ../special/tests/test_spfun_stats.py .... [ 82%] ../special/tests/test_sph_harm.py . [ 82%] ../special/tests/test_spherical_bessel.py .............................. [ 82%] ....... [ 82%] ../special/tests/test_trig.py .... [ 82%] ../special/tests/test_wright_bessel.py ................................. [ 82%] ........................................................................ [ 82%] ........................................................................ [ 82%] ........................................................................ [ 82%] .........................................................xxxxxxxxxxxxxxx [ 83%] ............... [ 83%] ../special/tests/test_wrightomega.py .......... [ 83%] ../special/tests/test_zeta.py ..... [ 83%] ../stats/tests/test_axis_nan_policy.py ................................. [ 83%] ........................................................................ [ 83%] ........................................................................ [ 83%] ........................................................................ [ 83%] ........................................................................ [ 84%] .................................. [ 84%] ../stats/tests/test_binned_statistic.py ................................ [ 84%] ........... [ 84%] ../stats/tests/test_boost_ufuncs.py .F........ [ 84%] ../stats/tests/test_contingency.py ............. [ 84%] ../stats/tests/test_continuous_basic.py ...........................s.... [ 84%] ..................ss...............FFF...............s..........s....... [ 84%] ........................s......................ss....................... [ 84%] ..........s..........s................................ss................ [ 84%] ..................................................s..................... [ 85%] ........................................................................ [ 85%] ........................................................................ [ 85%] ........................................................................ [ 85%] ........................................................................ [ 85%] ........................................................................ [ 85%] ........................................................................ [ 86%] ........................................................................ [ 86%] ........................................................................ [ 86%] ................................FF...................................... [ 86%] ........................................................................ [ 86%] ........................................................................ [ 87%] ........................................................................ [ 87%] ......................................................s................. [ 87%] ..... [ 87%] ../stats/tests/test_crosstab.py ............. [ 87%] ../stats/tests/test_discrete_basic.py .................F................ [ 87%] ....F................................................................... [ 87%] ........................................................................ [ 87%] ........................................................................ [ 88%] ........................................................................ [ 88%] .................................................. [ 88%] ../stats/tests/test_discrete_distns.py ................................F [ 88%] ................F..... [ 88%] ../stats/tests/test_distributions.py ................................... [ 88%] ........................................................................ [ 88%] ........................................................................ [ 88%] ........................................................................ [ 89%] ........................................................................ [ 89%] ........................................................................ [ 89%] ........................................................................ [ 89%] ........................................................................ [ 89%] ........................................................................ [ 90%] ........................................................................ [ 90%] ......................................................................F. [ 90%] ..........................................xxxx....s.s................... [ 90%] .....................s.................................................. [ 90%] ..........s..........................s..............................F... [ 90%] ........................................................................ [ 91%] ........................................................................ [ 91%] ........................................................s.....s......... [ 91%] .........................F......FF...................................... [ 91%] ........................................................................ [ 91%] ....xxxxxxxxxxxxxxxxxxxxxxxxxxx......................................... [ 92%] ....................................................................s... [ 92%] ...............s................... [ 92%] ../stats/tests/test_entropy.py .................................... [ 92%] ../stats/tests/test_fit.py ............................................. [ 92%] ....................................................................s... [ 92%] sss...s.s.ss.sss.......ss.ssssss.........sss....s..s..sss.s.s...sss.ssss [ 92%] ............s. [ 92%] ../stats/tests/test_hypotests.py ....................................... [ 92%] ........................................................................ [ 93%] .............s.......................................................... [ 93%] ................................................................ [ 93%] ../stats/tests/test_kdeoth.py ..........ss......ss....ssssssssssssssss.. [ 93%] ss......ss.........s.... [ 93%] ../stats/tests/test_morestats.py ....................................... [ 93%] ........................................................................ [ 93%] ........................................................................ [ 94%] ........................................................................ [ 94%] ................................................ [ 94%] ../stats/tests/test_mstats_basic.py ......s..s...............s.......... [ 94%] ........................................................................ [ 94%] ................................ [ 94%] ../stats/tests/test_mstats_extras.py ......... [ 94%] ../stats/tests/test_multivariate.py ......s.s..ss..ss..........ss..ss... [ 94%] .ssss....ssss........................................................... [ 95%] ........................................................................ [ 95%] ........................................................................ [ 95%] ........... [ 95%] ../stats/tests/test_odds_ratio.py ...................................... [ 95%] ................................................................... [ 95%] ../stats/tests/test_qmc.py .......................................s.s.s. [ 95%] s.s.s...sss....................................s.s.s.s.s...sss.......... [ 96%] .................. [ 96%] ../stats/tests/test_rank.py ........................................ [ 96%] ../stats/tests/test_relative_risk.py ............... [ 96%] ../stats/tests/test_resampling.py ........................x..x..x....... [ 96%] ........................................sss............................. [ 96%] .......................................................................s [ 96%] s..........ssss............. [ 96%] ../stats/tests/test_sampling.py ........................................ [ 96%] ........................................................................ [ 96%] ........................................................................ [ 97%] ............ss...ssssssssss..s...........................sssssssssssssss [ 97%] ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 97%] sssssssssssssssssssssssss............................................... [ 97%] ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 97%] ssssssssssssssssssssssssssssssssssssssss..............................ss [ 98%] ...ssssssssss..s............................ [ 98%] ../stats/tests/test_stats.py ........................................... [ 98%] ........................................................................ [ 98%] ........................................................................ [ 98%] ........................................................................ [ 98%] ........................................................................ [ 99%] ......................................................................ss [ 99%] ........................................................................ [ 99%] ........................................................................ [ 99%] ........................................................................ [ 99%] ........................................................s............... [ 99%] ... [ 99%] ../stats/tests/test_tukeylambda_stats.py ... [ 99%] ../stats/tests/test_variation.py .............................. [100%] =================================== FAILURES =================================== ____________________ test_dst4_definition_ortho[1-float32] _____________________ ../../../mambaforge/envs/scipy-dev/lib/python3.10/site-packages/scipy/fft/_pocketfft/tests/test_real_transforms.py:382: in test_dst4_definition_ortho assert_array_almost_equal(y, y2, decimal=dec) E AssertionError: E Arrays are not almost equal to 6 decimals E E Mismatched elements: 1 / 15 (6.67%) E Max absolute difference: 2.20676786e-06 E Max relative difference: 1.06287481e-05 E x: array([ 2.252718e+01, -3.048520e+00, 6.882938e-01, -6.559461e-01, E 1.382562e-01, -3.040761e-01, 2.433828e-02, -1.844277e-01, E -1.595955e-02, -1.282380e-01, -3.589347e-02, -9.665469e-02, E -4.941744e-02, -7.647392e-02, -6.187321e-02], dtype=float32) E y: array([ 2.252718e+01, -3.048520e+00, 6.882938e-01, -6.559461e-01, E 1.382565e-01, -3.040768e-01, 2.433815e-02, -1.844278e-01, E -1.595948e-02, -1.282385e-01, -3.589375e-02, -9.665460e-02, E -4.941736e-02, -7.647404e-02, -6.187255e-02]) dec = 6 dt = dtype('float32') mdata_x = array([ 0. , 0.71428571, 1.42857143, 2.14285714, 2.85714286, 3.57142857, 4.28571429, 5. , 5.71428571, 6.42857143, 7.14285714, 7.85714286, 8.57142857, 9.28571429, 10. ]) rdt = x = array([ 0. , 0.71428573, 1.4285715 , 2.142857 , 2.857143 , 3.5714285 , 4.285714 , 5. , 5.714286 , 6.428571 , 7.142857 , 7.857143 , 8.571428 , 9.285714 , 10. ], dtype=float32) y = array([ 2.2527182e+01, -3.0485203e+00, 6.8829376e-01, -6.5594608e-01, 1.3825622e-01, -3.0407611e-01, 2.43382... -1.2823799e-01, -3.5893470e-02, -9.6654691e-02, -4.9417440e-02, -7.6473922e-02, -6.1873209e-02], dtype=float32) y2 = array([ 2.25271838e+01, -3.04852029e+00, 6.88293833e-01, -6.55946133e-01, 1.38256458e-01, -3.04076803e-01, 2...4780e-02, -1.28238488e-01, -3.58937516e-02, -9.66546037e-02, -4.94173596e-02, -7.64740413e-02, -6.18725511e-02]) ___________________________ test_solve_discrete_are ____________________________ ../../../mambaforge/envs/scipy-dev/lib/python3.10/site-packages/scipy/linalg/tests/test_solvers.py:528: in test_solve_discrete_are _test_factory(case, min_decimal[ind]) _test_factory = ._test_factory at 0x2ba27bd90> case = (array([[ 0., 1000000.], [ 0., 0.]]), array([[0], [1]]), array([[1., 0.], [0., 1.]]), array([[1]]), None) cases = [(array([[ 2.+0.j, 1.-2.j], [ 0.+0.j, -0.-3.j]]), array([[0], [1]]), array([[1, 0], [0, 2]]), ar...0.005, 0. ], [0. , 0.02 ]]), array([[0.33333333, 0. ], [0. , 3. ]]), None), ...] ind = 15 min_decimal = (12, 14, 13, 14, 13, 16, ...) ../../../mambaforge/envs/scipy-dev/lib/python3.10/site-packages/scipy/linalg/tests/test_solvers.py:525: in _test_factory assert_array_almost_equal(res, np.zeros_like(res), decimal=dec) E AssertionError: E Arrays are not almost equal to 2 decimals E E Mismatched elements: 1 / 4 (25%) E Max absolute difference: 0.01635742 E Max relative difference: inf E x: array([[0.00e+00, 1.23e-20], E [1.23e-20, 1.64e-02]]) E y: array([[0., 0.], E [0., 0.]]) a = array([[ 0., 1000000.], [ 0., 0.]]) b = array([[0], [1]]) case = (array([[ 0., 1000000.], [ 0., 0.]]), array([[0], [1]]), array([[1., 0.], [0., 1.]]), array([[1]]), None) dec = 2 knownfailure = None q = array([[1., 0.], [0., 1.]]) r = array([[1]]) res = array([[0.00000000e+00, 1.22970054e-20], [1.22970054e-20, 1.63574219e-02]]) x = array([[ 1.00000000e+00, -1.22970054e-20], [-1.22970054e-20, 1.00000000e+12]]) _______________________________ test_uint64_max ________________________________ ../../../mambaforge/envs/scipy-dev/lib/python3.10/site-packages/scipy/ndimage/tests/test_datatypes.py:62: in test_uint64_max assert_(x[2] == int(float(big))) E AssertionError arr = array([18446744073709550591, 18446744073709550591, 18446744073709550591], dtype=uint64) big = 18446744073709550591 inds = array([[-0.1, 0.9, 1.9]]) x = array([ 0, 18446744073709549568, 18446744073709551615], dtype=uint64) ________________________ test_maxiter_worsening[gmres] _________________________ ../../../mambaforge/envs/scipy-dev/lib/python3.10/site-packages/scipy/sparse/linalg/_isolve/tests/test_iterative.py:487: in test_maxiter_worsening assert_(error <= tol*best_error) E AssertionError A = array([[-0.11127953+0.j , 0. +0.j , 0. +0.j , 0.16127953+0.j ], ..., [ 0.11127953+0.j , 0. +0.j , 0. +0.j , -0.16127953+0.j ]]) best_error = 0.0220970874869165 error = 0.14405538214520144 info = 9 maxiter = 9 solver = tol = 5 v = array([1., 1., 1., 1.]) x = array([-1.18774059e+15+1.33929598e+06j, -3.45037760e-03-1.59080106e-01j, -3.45037761e-03+1.59080106e-01j, -8.19516368e+14+9.24086443e+05j]) _ TestHyp2f1.test_a_b_neg_int_after_euler_hypergeometric_transformation[hyp2f1_test_case0] _ ../../../mambaforge/envs/scipy-dev/lib/python3.10/site-packages/scipy/special/tests/test_hyp2f1.py:530: in test_a_b_neg_int_after_euler_hypergeometric_transformation assert_allclose(hyp2f1(a, b, c, z), expected, rtol=rtol) E AssertionError: E Not equal to tolerance rtol=1e-12, atol=0 E E Mismatched elements: 1 / 1 (100%) E Max absolute difference: 2.83180534e-12 E Max relative difference: 2.89301017e-12 E x: array(0.977851+0.044084j) E y: array(0.977851+0.044084j) a = -0.5 b = -0.9629749245209605 c = -15.5 expected = (0.9778506962676361+0.044083801141231616j) hyp2f1_test_case = Hyp2f1TestCase(a=-0.5, b=-0.9629749245209605, c=-15.5, z=(1.1578947368421053-1.1578947368421053j), expected=(0.9778506962676361+0.044083801141231616j), rtol=1e-12) rtol = 1e-12 self = z = (1.1578947368421053-1.1578947368421053j) _________________ TestHyp2f1.test_region4[hyp2f1_test_case30] __________________ ../../../mambaforge/envs/scipy-dev/lib/python3.10/site-packages/scipy/special/tests/test_hyp2f1.py:1394: in test_region4 assert_allclose(hyp2f1(a, b, c, z), expected, rtol=rtol) E AssertionError: E Not equal to tolerance rtol=1e-15, atol=0 E E Mismatched elements: 1 / 1 (100%) E Max absolute difference: 9.58672921e-16 E Max relative difference: 1.63875665e-15 E x: array(-0.535966-0.234448j) E y: array(-0.535966-0.234448j) a = 4.080187217753502 b = -3.5 c = -3.5 expected = (-0.5359656237994614-0.2344483936591811j) hyp2f1_test_case = Hyp2f1TestCase(a=4.080187217753502, b=-3.5, c=-3.5, z=(0.26551724137931054+0.8724137931034486j), expected=(-0.5359656237994614-0.2344483936591811j), rtol=1e-15) rtol = 1e-15 self = z = (0.26551724137931054+0.8724137931034486j) _________________ TestHyp2f1.test_region4[hyp2f1_test_case34] __________________ ../../../mambaforge/envs/scipy-dev/lib/python3.10/site-packages/scipy/special/tests/test_hyp2f1.py:1394: in test_region4 assert_allclose(hyp2f1(a, b, c, z), expected, rtol=rtol) E AssertionError: E Not equal to tolerance rtol=1e-15, atol=0 E E Mismatched elements: 1 / 1 (100%) E Max absolute difference: 3.82801123e-10 E Max relative difference: 1.32419604e-15 E x: array(133306.452607+256510.704523j) E y: array(133306.452607+256510.704523j) a = -15.5 b = 1.0561196186065624 c = -7.5 expected = (133306.45260685298+256510.7045225382j) hyp2f1_test_case = Hyp2f1TestCase(a=-15.5, b=1.0561196186065624, c=-7.5, z=(0.4172413793103451+0.8724137931034486j), expected=(133306.45260685298+256510.7045225382j), rtol=1e-15) rtol = 1e-15 self = z = (0.4172413793103451+0.8724137931034486j) _________________ TestHyp2f1.test_region4[hyp2f1_test_case47] __________________ ../../../mambaforge/envs/scipy-dev/lib/python3.10/site-packages/scipy/special/tests/test_hyp2f1.py:1394: in test_region4 assert_allclose(hyp2f1(a, b, c, z), expected, rtol=rtol) E AssertionError: E Not equal to tolerance rtol=1e-10, atol=0 E E Mismatched elements: 1 / 1 (100%) E Max absolute difference: 1.09362783e-06 E Max relative difference: 1.19608052e-10 E x: array(-2258.159032+8860.19339j) E y: array(-2258.159033+8860.193389j) a = -0.5 b = -15.5 c = -7.949900487447654 expected = (-2258.1590330318213+8860.193389158803j) hyp2f1_test_case = Hyp2f1TestCase(a=-0.5, b=-15.5, c=-7.949900487447654, z=(0.4172413793103451-0.8724137931034484j), expected=(-2258.1590330318213+8860.193389158803j), rtol=1e-10) rtol = 1e-10 self = z = (0.4172413793103451-0.8724137931034484j) __________________ TestHyp2f1.test_region5[hyp2f1_test_case3] __________________ ../../../mambaforge/envs/scipy-dev/lib/python3.10/site-packages/scipy/special/tests/test_hyp2f1.py:1891: in test_region5 assert_allclose(hyp2f1(a, b, c, z), expected, rtol=rtol) E AssertionError: E Not equal to tolerance rtol=1e-14, atol=0 E E Mismatched elements: 1 / 1 (100%) E Max absolute difference: 0.13428089 E Max relative difference: 1.66562939e-14 E x: array(8.559254e+10-8.061417e+12j) E y: array(8.559254e+10-8.061417e+12j) a = 16.087593263474208 b = 1.0 c = -15.964218273004214 expected = (85592537010.05054-8061416766688.324j) hyp2f1_test_case = Hyp2f1TestCase(a=16.087593263474208, b=1.0, c=-15.964218273004214, z=(0.6448275862068968+0.8724137931034486j), expected=(85592537010.05054-8061416766688.324j), rtol=1e-14) rtol = 1e-14 self = z = (0.6448275862068968+0.8724137931034486j) _________________ test_stats_boost_ufunc[_beta_ppf-args1-0.5] __________________ ../../../mambaforge/envs/scipy-dev/lib/python3.10/site-packages/scipy/stats/tests/test_boost_ufuncs.py:41: in test_stats_boost_ufunc value = func(*args) E RuntimeWarning: overflow encountered in _beta_ppf args = [0.6875, 2.0, 3.0] expected = 0.5 func = rtol = 3.814697265625e-06 typ = type_char = 'f' type_chars = ['f', 'd', 'g'] type_sigs = ['fff->f', 'ddd->d', 'ggg->g'] ______________________ test_cont_basic[500-200-ncf-arg74] ______________________ ../../../mambaforge/envs/scipy-dev/lib/python3.10/site-packages/scipy/stats/tests/test_continuous_basic.py:162: in test_cont_basic check_cdf_ppf(distfn, arg, distname) arg = (27, 27, 0.41578441799226107) distfn = distname = 'ncf' m = 1.0966313767196902 n_fit_samples = 200 rng = RandomState(MT19937) at 0x2DE60B640 rvs = array([0.90888841, 0.87523216, 0.73228753, 1.33584017, 0.93548576, 1.09504212, 1.15670442, 0.36786914, 0.791225...03, 1.73540023, 0.87035866, 0.73702581, 0.81477748, 0.87362182, 1.58673099, 1.88455316, 0.61564337, 1.09912842]) sn = 500 v = 0.20137940259526124 ../../../mambaforge/envs/scipy-dev/lib/python3.10/site-packages/scipy/stats/tests/test_continuous_basic.py:516: in check_cdf_ppf npt.assert_almost_equal(distfn.cdf(distfn.ppf(values, *arg), *arg), arg = (27, 27, 0.41578441799226107) distfn = msg = 'ncf' values = [0.001, 0.5, 0.999] ../../../mambaforge/envs/scipy-dev/lib/python3.10/site-packages/scipy/stats/_distn_infrastructure.py:2333: in ppf place(output, cond, self._ppf(*goodargs) * scale + loc) _a = 0.0 _b = inf args = (array(27), array(27), array(0.41578442)) cond = array([ True, True, True]) cond0 = True cond1 = array([ True, True, True]) cond2 = array([False, False, False]) cond3 = array([False, False, False]) goodargs = [array([0.001, 0.5 , 0.999]), array([27, 27, 27]), array([27, 27, 27]), array([0.41578442, 0.41578442, 0.41578442])] kwds = {} loc = array([0, 0, 0]) lower_bound = 0.0 output = array([nan, nan, nan]) q = array([0.001, 0.5 , 0.999]) scale = array([1, 1, 1]) self = upper_bound = inf ../../../mambaforge/envs/scipy-dev/lib/python3.10/site-packages/scipy/stats/_continuous_distns.py:6604: in _ppf return _boost._ncf_ppf(q, dfn, dfd, nc) E RuntimeWarning: overflow encountered in _ncf_ppf dfd = array([27, 27, 27]) dfn = array([27, 27, 27]) nc = array([0.41578442, 0.41578442, 0.41578442]) q = array([0.001, 0.5 , 0.999]) self = ______________________ test_cont_basic[500-200-nct-arg75] ______________________ ../../../mambaforge/envs/scipy-dev/lib/python3.10/site-packages/scipy/stats/tests/test_continuous_basic.py:162: in test_cont_basic check_cdf_ppf(distfn, arg, distname) arg = (14, 0.24045031331198066) distfn = distname = 'nct' m = 0.2543673273832776 n_fit_samples = 200 rng = RandomState(MT19937) at 0x2E6EC6440 rvs = array([ 8.73534081e-01, -1.04204572e+00, 8.32185889e-01, 1.83689614e+00, -1.81244028e-01, 7.69549733e-01, 8...9293e+00, 8.20972491e-01, -7.63240067e-01, 1.27150283e+00, 1.30239072e-01, 1.64179170e+00, 1.18497579e+00]) sn = 500 v = 1.1694163414603564 ../../../mambaforge/envs/scipy-dev/lib/python3.10/site-packages/scipy/stats/tests/test_continuous_basic.py:516: in check_cdf_ppf npt.assert_almost_equal(distfn.cdf(distfn.ppf(values, *arg), *arg), arg = (14, 0.24045031331198066) distfn = msg = 'nct' values = [0.001, 0.5, 0.999] ../../../mambaforge/envs/scipy-dev/lib/python3.10/site-packages/scipy/stats/_distn_infrastructure.py:2333: in ppf place(output, cond, self._ppf(*goodargs) * scale + loc) _a = -inf _b = inf args = (array(14), array(0.24045031)) cond = array([ True, True, True]) cond0 = True cond1 = array([ True, True, True]) cond2 = array([False, False, False]) cond3 = array([False, False, False]) goodargs = [array([0.001, 0.5 , 0.999]), array([14, 14, 14]), array([0.24045031, 0.24045031, 0.24045031])] kwds = {} loc = array([0, 0, 0]) lower_bound = -inf output = array([nan, nan, nan]) q = array([0.001, 0.5 , 0.999]) scale = array([1, 1, 1]) self = upper_bound = inf ../../../mambaforge/envs/scipy-dev/lib/python3.10/site-packages/scipy/stats/_continuous_distns.py:6800: in _ppf return _boost._nct_ppf(q, df, nc) E RuntimeWarning: overflow encountered in _nct_ppf df = array([14, 14, 14]) nc = array([0.24045031, 0.24045031, 0.24045031]) q = array([0.001, 0.5 , 0.999]) self = _____________________ test_cont_basic[500-200-ncx2-arg76] ______________________ ../../../mambaforge/envs/scipy-dev/lib/python3.10/site-packages/scipy/stats/tests/test_continuous_basic.py:162: in test_cont_basic check_cdf_ppf(distfn, arg, distname) arg = (21, 1.0560465975116415) distfn = distname = 'ncx2' m = 22.056046597511642 n_fit_samples = 200 rng = RandomState(MT19937) at 0x2E6EC6540 rvs = array([24.18228087, 28.6893038 , 24.17456852, 14.84747842, 18.70623905, 16.16763421, 9.29241683, 14.62038405, ...716689, 25.11697161, 27.96343751, 35.36238425, 17.36403196, 25.81839268, 23.01798747, 22.53534591, 20.49078605]) sn = 500 v = 46.22418639004657 ../../../mambaforge/envs/scipy-dev/lib/python3.10/site-packages/scipy/stats/tests/test_continuous_basic.py:516: in check_cdf_ppf npt.assert_almost_equal(distfn.cdf(distfn.ppf(values, *arg), *arg), arg = (21, 1.0560465975116415) distfn = msg = 'ncx2' values = [0.001, 0.5, 0.999] ../../../mambaforge/envs/scipy-dev/lib/python3.10/site-packages/scipy/stats/_distn_infrastructure.py:2160: in cdf place(output, cond, self._cdf(*goodargs)) _a = 0.0 _b = inf args = (array(21), array(1.0560466)) cond = array([ True, True, True]) cond0 = True cond1 = array([ True, True, True]) cond2 = array([False, False, False]) dtyp = dtype('float64') goodargs = [array([ 6.77671634, 21.36270226, 49.09451392]), array([21, 21, 21]), array([1.0560466, 1.0560466, 1.0560466])] kwds = {} loc = array(0) output = array([0., 0., 0.]) scale = array(1) self = x = array([ 6.77671634, 21.36270226, 49.09451392]) ../../../mambaforge/envs/scipy-dev/lib/python3.10/site-packages/scipy/stats/_continuous_distns.py:6502: in _cdf return _lazywhere(cond, (x, df, nc), f=_boost._ncx2_cdf, cond = array([ True, True, True]) df = array([21, 21, 21]) nc = array([1.0560466, 1.0560466, 1.0560466]) self = x = array([ 6.77671634, 21.36270226, 49.09451392]) ../../../mambaforge/envs/scipy-dev/lib/python3.10/site-packages/scipy/_lib/_util.py:69: in _lazywhere np.place(out, cond, f(*temp)) E RuntimeWarning: overflow encountered in _ncx2_cdf args = [array([ True, True, True]), array([ 6.77671634, 21.36270226, 49.09451392]), array([21, 21, 21]), array([1.0560466, 1.0560466, 1.0560466])] arrays = [array([ 6.77671634, 21.36270226, 49.09451392]), array([21, 21, 21]), array([1.0560466, 1.0560466, 1.0560466])] cond = array([ True, True, True]) f = f2 = . at 0x2e6ed0280> fillvalue = nan out = array([nan, nan, nan]) tcode = 'd' temp = (array([ 6.77671634, 21.36270226, 49.09451392]), array([21, 21, 21]), array([1.0560466, 1.0560466, 1.0560466])) ___________________ test_methods_with_lists[ncf-args75-ppf] ____________________ ../../../mambaforge/envs/scipy-dev/lib/python3.10/site-packages/scipy/stats/tests/test_continuous_basic.py:714: in test_methods_with_lists result = f(x, *shape2, loc=loc, scale=scale) args = (27, 27, 0.41578441799226107) dist = distname = 'ncf' f = > loc = [0, 0.1] method = 'ppf' scale = [1, 1.01] shape2 = [[27, 27], [27, 27], [0.41578441799226107, 0.41578441799226107]] x = [0.1, 0.2] ../../../mambaforge/envs/scipy-dev/lib/python3.10/site-packages/scipy/stats/_distn_infrastructure.py:2333: in ppf place(output, cond, self._ppf(*goodargs) * scale + loc) _a = 0.0 _b = inf args = (array([27, 27]), array([27, 27]), array([0.41578442, 0.41578442])) cond = array([ True, True]) cond0 = array([ True, True]) cond1 = array([ True, True]) cond2 = array([False, False]) cond3 = array([False, False]) goodargs = [array([0.1, 0.2]), array([27, 27]), array([27, 27]), array([0.41578442, 0.41578442])] kwds = {'loc': [0, 0.1], 'scale': [1, 1.01]} loc = array([0. , 0.1]) lower_bound = array([0. , 0.1]) output = array([nan, nan]) q = array([0.1, 0.2]) scale = array([1. , 1.01]) self = upper_bound = array([inf, inf]) ../../../mambaforge/envs/scipy-dev/lib/python3.10/site-packages/scipy/stats/_continuous_distns.py:6604: in _ppf return _boost._ncf_ppf(q, dfn, dfd, nc) E RuntimeWarning: overflow encountered in _ncf_ppf dfd = array([27, 27]) dfn = array([27, 27]) nc = array([0.41578442, 0.41578442]) q = array([0.1, 0.2]) self = ___________________ test_methods_with_lists[ncf-args75-isf] ____________________ ../../../mambaforge/envs/scipy-dev/lib/python3.10/site-packages/scipy/stats/tests/test_continuous_basic.py:714: in test_methods_with_lists result = f(x, *shape2, loc=loc, scale=scale) args = (27, 27, 0.41578441799226107) dist = distname = 'ncf' f = > loc = [0, 0.1] method = 'isf' scale = [1, 1.01] shape2 = [[27, 27], [27, 27], [0.41578441799226107, 0.41578441799226107]] x = [0.1, 0.2] ../../../mambaforge/envs/scipy-dev/lib/python3.10/site-packages/scipy/stats/_distn_infrastructure.py:2378: in isf place(output, cond, self._isf(*goodargs) * scale + loc) _a = 0.0 _b = inf args = (array([27, 27]), array([27, 27]), array([0.41578442, 0.41578442])) cond = array([ True, True]) cond0 = array([ True, True]) cond1 = array([ True, True]) cond2 = array([False, False]) cond3 = array([False, False]) goodargs = [array([0.1, 0.2]), array([27, 27]), array([27, 27]), array([0.41578442, 0.41578442])] kwds = {'loc': [0, 0.1], 'scale': [1, 1.01]} loc = array([0. , 0.1]) lower_bound = array([0. , 0.1]) output = array([nan, nan]) q = array([0.1, 0.2]) scale = array([1. , 1.01]) self = upper_bound = array([inf, inf]) ../../../mambaforge/envs/scipy-dev/lib/python3.10/site-packages/scipy/stats/_continuous_distns.py:6610: in _isf return _boost._ncf_isf(x, dfn, dfd, nc) E RuntimeWarning: overflow encountered in _ncf_isf dfd = array([27, 27]) dfn = array([27, 27]) nc = array([0.41578442, 0.41578442]) self = x = array([0.1, 0.2]) ___________________ test_discrete_basic[skellam-arg17-True] ____________________ ../../../mambaforge/envs/scipy-dev/lib/python3.10/site-packages/scipy/stats/tests/test_discrete_basic.py:47: in test_discrete_basic check_cdf_ppf(distfn, arg, supp, distname + ' cdf_ppf') arg = (15, 8) distfn = distname = 'skellam' first_case = True m = 7.0 rvs = array([ 4, 6, 10, ..., 5, 14, 15]) supp = array([-10, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 25]) v = 23.0 ../../../mambaforge/envs/scipy-dev/lib/python3.10/site-packages/scipy/stats/tests/test_discrete_basic.py:185: in check_cdf_ppf npt.assert_array_equal(distfn.ppf(distfn.cdf(supp, *arg), *arg), arg = (15, 8) distfn = msg = 'skellam cdf_ppf' supp = array([-10, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 25]) ../../../mambaforge/envs/scipy-dev/lib/python3.10/site-packages/scipy/stats/_distn_infrastructure.py:3433: in cdf place(output, cond, np.clip(self._cdf(*goodargs), 0, 1)) _ = 1 _a = -inf _b = inf args = (array(15), array(8)) cond = array([ True, True, True, True, True, True, True, True, True, True, True, True, True, True, True,... True, True, True, True, True, True, True, True, True, True, True, True, True, True, True]) cond0 = True cond1 = array([ True, True, True, True, True, True, True, True, True, True, True, True, True, True, True,... True, True, True, True, True, True, True, True, True, True, True, True, True, True, True]) cond2 = array([False, False, False, False, False, False, False, False, False, False, False, False, False, False, False,...False, False, False, False, False, False, False, False, False, False, False, False, False, False, False]) cond3 = array([False, False, False, False, False, False, False, False, False, False, False, False, False, False, False,...False, False, False, False, False, False, False, False, False, False, False, False, False, False, False]) goodargs = [array([-10, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12..., 15]), array([8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8])] k = array([-10, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 25]) kwds = {} loc = array(0) output = array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]) self = ../../../mambaforge/envs/scipy-dev/lib/python3.10/site-packages/scipy/stats/_discrete_distns.py:1437: in _cdf _boost._ncx2_cdf(2*mu2, -2*x, 2*mu1), E RuntimeWarning: overflow encountered in _ncx2_cdf mu1 = array([15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15]) mu2 = array([8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8]) self = x = array([-10., -7., -6., -5., -4., -3., -2., -1., 0., 1., 2., 3., 4., 5., 6., 7., 8., 9., 10., 11., 12., 13., 14., 15., 16., 17., 18., 19., 20., 21., 22., 25.]) _________________________ test_moments[skellam-arg17] __________________________ ../../../mambaforge/envs/scipy-dev/lib/python3.10/site-packages/scipy/stats/tests/test_discrete_basic.py:89: in test_moments check_normalization(distfn, arg, distname) arg = (15, 8) distfn = distname = 'skellam' k = 0.043478260869565216 m = 7.0 s = 0.06346090862606624 v = 23.0 ../../../mambaforge/envs/scipy-dev/lib/python3.10/site-packages/scipy/stats/tests/common_tests.py:32: in check_normalization normalization_expect = distfn.expect(lambda x: 1, args=args) args = (15, 8) atol = 1e-07 distfn = distname = 'skellam' norm_moment = 1.0 rtol = 1e-07 ../../../mambaforge/envs/scipy-dev/lib/python3.10/site-packages/scipy/stats/_distn_infrastructure.py:3739: in expect x0 = self.ppf(0.5, *args) _a = -inf _b = inf args = (15, 8) chunksize = 32 conditional = False fun = .fun at 0x2e8bed2d0> func = . at 0x2e8bed120> invfac = 1.0 lb = -inf loc = 0 maxcount = 1000 self = tolerance = 1e-10 ub = inf ../../../mambaforge/envs/scipy-dev/lib/python3.10/site-packages/scipy/stats/_distn_infrastructure.py:3592: in ppf place(output, cond, self._ppf(*goodargs) + loc) _ = 1 _a = -inf _b = inf args = (array(15), array(8)) cond = True cond0 = True cond1 = True cond2 = False goodargs = [array([0.5]), array([15]), array([8])] kwds = {} loc = array([0]) output = array(nan) q = array(0.5) self = ../../../mambaforge/envs/scipy-dev/lib/python3.10/site-packages/scipy/stats/_distn_infrastructure.py:989: in _ppf return self._ppfvec(q, *args) args = (array([15]), array([8])) q = array([0.5]) self = ../../../mambaforge/envs/scipy-dev/lib/python3.10/site-packages/numpy/lib/function_base.py:2328: in __call__ return self._vectorize_call(func=func, args=vargs) args = (, array([0.5]), array([15]), array([8])) excluded = set() func = kwargs = {} self = vargs = (, array([0.5]), array([15]), array([8])) ../../../mambaforge/envs/scipy-dev/lib/python3.10/site-packages/numpy/lib/function_base.py:2411: in _vectorize_call outputs = ufunc(*inputs) args = (, array([0.5]), array([15]), array([8])) func = inputs = [array(, dtype=object), array([0.5], dtype=object), array([15], dtype=object), array([8], dtype=object)] otypes = 'd' self = ufunc = ../../../mambaforge/envs/scipy-dev/lib/python3.10/site-packages/scipy/stats/_distn_infrastructure.py:2943: in _drv2_ppfsingle qb = self._cdf(b, *args) _a = -inf _b = inf a = -inf args = (15, 8) b = 50 q = 0.5 self = ../../../mambaforge/envs/scipy-dev/lib/python3.10/site-packages/scipy/stats/_discrete_distns.py:1438: in _cdf 1 - _boost._ncx2_cdf(2*mu1, 2*(x+1), 2*mu2)) E RuntimeWarning: overflow encountered in _ncx2_cdf mu1 = 15 mu2 = 8 self = x = 50.0 _____________________________ test_skellam_gh11474 _____________________________ ../../../mambaforge/envs/scipy-dev/lib/python3.10/site-packages/scipy/stats/tests/test_discrete_distns.py:238: in test_skellam_gh11474 cdf = skellam.cdf(0, mu, mu) mu = [1, 10, 100, 1000, 5000, 5050, ...] ../../../mambaforge/envs/scipy-dev/lib/python3.10/site-packages/scipy/stats/_distn_infrastructure.py:3433: in cdf place(output, cond, np.clip(self._cdf(*goodargs), 0, 1)) _ = 1 _a = -inf _b = inf args = (array([ 1, 10, 100, 1000, 5000, 5050, 5100, 5250, 6000]), array([ 1, 10, 100, 1000, 5000, 5050, 5100, 5250, 6000])) cond = array([ True, True, True, True, True, True, True, True, True]) cond0 = array([ True, True, True, True, True, True, True, True, True]) cond1 = True cond2 = False cond3 = False goodargs = [array([0, 0, 0, 0, 0, 0, 0, 0, 0]), array([ 1, 10, 100, 1000, 5000, 5050, 5100, 5250, 6000]), array([ 1, 10, 100, 1000, 5000, 5050, 5100, 5250, 6000])] k = array(0) kwds = {} loc = array(0) output = array([0., 0., 0., 0., 0., 0., 0., 0., 0.]) self = ../../../mambaforge/envs/scipy-dev/lib/python3.10/site-packages/scipy/stats/_discrete_distns.py:1438: in _cdf 1 - _boost._ncx2_cdf(2*mu1, 2*(x+1), 2*mu2)) E RuntimeWarning: overflow encountered in _ncx2_cdf mu1 = array([ 1, 10, 100, 1000, 5000, 5050, 5100, 5250, 6000]) mu2 = array([ 1, 10, 100, 1000, 5000, 5050, 5100, 5250, 6000]) self = x = array([0., 0., 0., 0., 0., 0., 0., 0., 0.]) ___________________ TestNCH.test_nchypergeom_wallenius_naive ___________________ ../../../mambaforge/envs/scipy-dev/lib/python3.10/site-packages/scipy/stats/tests/test_discrete_distns.py:431: in test_nchypergeom_wallenius_naive mean(N, m1, n, w), rtol=2e-2) N = array([[[ 80, 50, 132], [ 91, 114, 172], [145, 55, 106], [146, 180, 108]], [[153, 129, 117], [109, 142, 26], [129, 104, 148], [ 55, 83, 99]]]) m1 = array([[[41, 16, 73], [23, 44, 83], [76, 8, 35], [50, 96, 76]], [[86, 48, 64], [32, 91, 21], [38, 40, 68], [ 5, 43, 52]]]) m2 = array([[[39, 34, 59], [68, 70, 89], [69, 47, 71], [96, 84, 32]], [[67, 81, 53], [77, 51, 5], [91, 64, 80], [50, 40, 47]]]) max_m = 100 mean = n = array([[[ 8, 45, 15], [ 8, 17, 150], [117, 9, 57], [105, 110, 90]], [[ 83, 96, 43], [ 32, 26, 18], [ 76, 10, 40], [ 34, 60, 9]]]) self = shape = (2, 4, 3) sup = support = .support at 0x2e3ad2950> w = array([[[1.42243449, 1.03486153, 1.7689432 ], [1.10726768, 1.14728499, 0.78786659], [1.8530935 , 0.011... 1.82895114, 1.65273601], [0.82349288, 1.26168533, 0.6838232 ], [0.76338588, 1.92491914, 1.29402846]]]) x = array([[[ 6, 14, 8], [ 2, 1, 65], [56, 1, 6], [46, 44, 69]], [[68, 25, 8], [26, 3, 16], [32, 0, 21], [ 3, 36, 8]]]) xl = array([[[ 0, 11, 0], [ 0, 0, 61], [48, 0, 0], [ 9, 26, 58]], [[16, 15, 0], [ 0, 0, 13], [ 0, 0, 0], [ 0, 20, 0]]]) xu = array([[[ 8, 16, 15], [ 8, 17, 83], [76, 8, 35], [50, 96, 76]], [[83, 48, 43], [32, 26, 18], [38, 10, 40], [ 5, 43, 9]]]) ../../../mambaforge/envs/scipy-dev/lib/python3.10/site-packages/numpy/lib/function_base.py:2328: in __call__ return self._vectorize_call(func=func, args=vargs) args = (array([[[ 80, 50, 132], [ 91, 114, 172], [145, 55, 106], [146, 180, 108]], [[153, 1...1.82895114, 1.65273601], [0.82349288, 1.26168533, 0.6838232 ], [0.76338588, 1.92491914, 1.29402846]]])) excluded = set() func = .mean at 0x2e3ad1cf0> kwargs = {} self = vargs = (array([[[ 80, 50, 132], [ 91, 114, 172], [145, 55, 106], [146, 180, 108]], [[153, 1...1.82895114, 1.65273601], [0.82349288, 1.26168533, 0.6838232 ], [0.76338588, 1.92491914, 1.29402846]]])) ../../../mambaforge/envs/scipy-dev/lib/python3.10/site-packages/numpy/lib/function_base.py:2411: in _vectorize_call outputs = ufunc(*inputs) E RuntimeWarning: divide by zero encountered in mean (vectorized) args = (array([[[ 80, 50, 132], [ 91, 114, 172], [145, 55, 106], [146, 180, 108]], [[153, 1...1.82895114, 1.65273601], [0.82349288, 1.26168533, 0.6838232 ], [0.76338588, 1.92491914, 1.29402846]]])) func = .mean at 0x2e3ad1cf0> inputs = [array([[[80, 50, 132], [91, 114, 172], [145, 55, 106], [146, 180, 108]], [[153, 129, ...29178, 0.6838231997605593], [0.7633858816811221, 1.9249191439419642, 1.294028457081314]]], dtype=object)] otypes = 'd' self = ufunc = _____________________________ TestSkellam.test_cdf _____________________________ ../../../mambaforge/envs/scipy-dev/lib/python3.10/site-packages/scipy/stats/tests/test_distributions.py:3249: in test_cdf assert_almost_equal(stats.skellam.cdf(k, mu1, mu2), skcdfR, decimal=5) k = array([-10, -9, -8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]) mu1 = 10 mu2 = 5 self = skcdfR = array([6.40614754e-05, 1.78109860e-04, 4.67906118e-04, 1.15967690e-03, 2.70774851e-03, 5.94897601e-03, 1.228634...799e-01, 8.77852572e-01, 9.21121265e-01, 9.51369425e-01, 9.71360859e-01, 9.83877736e-01, 9.91316724e-01]) ../../../mambaforge/envs/scipy-dev/lib/python3.10/site-packages/scipy/stats/_distn_infrastructure.py:3433: in cdf place(output, cond, np.clip(self._cdf(*goodargs), 0, 1)) _ = 1 _a = -inf _b = inf args = (array(10), array(5)) cond = array([ True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True]) cond0 = True cond1 = array([ True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True]) cond2 = array([False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False]) cond3 = array([False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False]) goodargs = [array([-10, -9, -8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10...0, 10, 10, 10, 10, 10, 10]), array([5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5])] k = array([-10, -9, -8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]) kwds = {} loc = array(0) output = array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]) self = ../../../mambaforge/envs/scipy-dev/lib/python3.10/site-packages/scipy/stats/_discrete_distns.py:1437: in _cdf _boost._ncx2_cdf(2*mu2, -2*x, 2*mu1), E RuntimeWarning: overflow encountered in _ncx2_cdf mu1 = array([10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10]) mu2 = array([5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5]) self = x = array([-10., -9., -8., -7., -6., -5., -4., -3., -2., -1., 0., 1., 2., 3., 4., 5., 6., 7., 8., 9., 10., 11., 12., 13., 14.]) ___________________________ TestExpect.test_skellam ____________________________ ../../../mambaforge/envs/scipy-dev/lib/python3.10/site-packages/scipy/stats/tests/test_distributions.py:4833: in test_skellam m1 = stats.skellam.expect(lambda x: x, args=(p1, p2)) p1 = 18 p2 = 22 self = ../../../mambaforge/envs/scipy-dev/lib/python3.10/site-packages/scipy/stats/_distn_infrastructure.py:3739: in expect x0 = self.ppf(0.5, *args) _a = -inf _b = inf args = (18, 22) chunksize = 32 conditional = False fun = .fun at 0x2e77b4700> func = . at 0x2e773aa70> invfac = 1.0 lb = -inf loc = 0 maxcount = 1000 self = tolerance = 1e-10 ub = inf ../../../mambaforge/envs/scipy-dev/lib/python3.10/site-packages/scipy/stats/_distn_infrastructure.py:3592: in ppf place(output, cond, self._ppf(*goodargs) + loc) _ = 1 _a = -inf _b = inf args = (array(18), array(22)) cond = True cond0 = True cond1 = True cond2 = False goodargs = [array([0.5]), array([18]), array([22])] kwds = {} loc = array([0]) output = array(nan) q = array(0.5) self = ../../../mambaforge/envs/scipy-dev/lib/python3.10/site-packages/scipy/stats/_distn_infrastructure.py:989: in _ppf return self._ppfvec(q, *args) args = (array([18]), array([22])) q = array([0.5]) self = ../../../mambaforge/envs/scipy-dev/lib/python3.10/site-packages/numpy/lib/function_base.py:2328: in __call__ return self._vectorize_call(func=func, args=vargs) args = (, array([0.5]), array([18]), array([22])) excluded = set() func = kwargs = {} self = vargs = (, array([0.5]), array([18]), array([22])) ../../../mambaforge/envs/scipy-dev/lib/python3.10/site-packages/numpy/lib/function_base.py:2411: in _vectorize_call outputs = ufunc(*inputs) args = (, array([0.5]), array([18]), array([22])) func = inputs = [array(, dtype=object), array([0.5], dtype=object), array([18], dtype=object), array([22], dtype=object)] otypes = 'd' self = ufunc = ../../../mambaforge/envs/scipy-dev/lib/python3.10/site-packages/scipy/stats/_distn_infrastructure.py:2943: in _drv2_ppfsingle qb = self._cdf(b, *args) _a = -inf _b = inf a = -inf args = (18, 22) b = 50 q = 0.5 self = ../../../mambaforge/envs/scipy-dev/lib/python3.10/site-packages/scipy/stats/_discrete_distns.py:1438: in _cdf 1 - _boost._ncx2_cdf(2*mu1, 2*(x+1), 2*mu2)) E RuntimeWarning: overflow encountered in _ncx2_cdf mu1 = 18 mu2 = 22 self = x = 50.0 __________________________ test_ncx2_tails_ticket_955 __________________________ ../../../mambaforge/envs/scipy-dev/lib/python3.10/site-packages/scipy/stats/tests/test_distributions.py:6292: in test_ncx2_tails_ticket_955 a = stats.ncx2.cdf(np.arange(20, 25, 0.2), 2, 1.07458615e+02) ../../../mambaforge/envs/scipy-dev/lib/python3.10/site-packages/scipy/stats/_distn_infrastructure.py:2160: in cdf place(output, cond, self._cdf(*goodargs)) _a = 0.0 _b = inf args = (array(2), array(107.458615)) cond = array([ True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True]) cond0 = True cond1 = array([ True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True]) cond2 = array([False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False]) dtyp = dtype('float64') goodargs = [array([20. , 20.2, 20.4, 20.6, 20.8, 21. , 21.2, 21.4, 21.6, 21.8, 22. , 22.2, 22.4, 22.6, 22.8, 23. , 23.2, 2...5, 107.458615, 107.458615, 107.458615, 107.458615, 107.458615, 107.458615, 107.458615, 107.458615, 107.458615])] kwds = {} loc = array(0) output = array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]) scale = array(1) self = x = array([20. , 20.2, 20.4, 20.6, 20.8, 21. , 21.2, 21.4, 21.6, 21.8, 22. , 22.2, 22.4, 22.6, 22.8, 23. , 23.2, 23.4, 23.6, 23.8, 24. , 24.2, 24.4, 24.6, 24.8]) ../../../mambaforge/envs/scipy-dev/lib/python3.10/site-packages/scipy/stats/_continuous_distns.py:6502: in _cdf return _lazywhere(cond, (x, df, nc), f=_boost._ncx2_cdf, cond = array([ True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True]) df = array([2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2]) nc = array([107.458615, 107.458615, 107.458615, 107.458615, 107.458615, 107.458615, 107.458615, 107.458615, 107.4586...15, 107.458615, 107.458615, 107.458615, 107.458615, 107.458615, 107.458615, 107.458615, 107.458615, 107.458615]) self = x = array([20. , 20.2, 20.4, 20.6, 20.8, 21. , 21.2, 21.4, 21.6, 21.8, 22. , 22.2, 22.4, 22.6, 22.8, 23. , 23.2, 23.4, 23.6, 23.8, 24. , 24.2, 24.4, 24.6, 24.8]) ../../../mambaforge/envs/scipy-dev/lib/python3.10/site-packages/scipy/_lib/_util.py:69: in _lazywhere np.place(out, cond, f(*temp)) E RuntimeWarning: overflow encountered in _ncx2_cdf args = [array([ True, True, True, True, True, True, True, True, True, True, True, True, True, True, True...5, 107.458615, 107.458615, 107.458615, 107.458615, 107.458615, 107.458615, 107.458615, 107.458615, 107.458615])] arrays = [array([20. , 20.2, 20.4, 20.6, 20.8, 21. , 21.2, 21.4, 21.6, 21.8, 22. , 22.2, 22.4, 22.6, 22.8, 23. , 23.2, 2...5, 107.458615, 107.458615, 107.458615, 107.458615, 107.458615, 107.458615, 107.458615, 107.458615, 107.458615])] cond = array([ True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True]) f = f2 = . at 0x2e77b5480> fillvalue = nan out = array([nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]) tcode = 'd' temp = (array([20. , 20.2, 20.4, 20.6, 20.8, 21. , 21.2, 21.4, 21.6, 21.8, 22. , 22.2, 22.4, 22.6, 22.8, 23. , 23.2, 2...5, 107.458615, 107.458615, 107.458615, 107.458615, 107.458615, 107.458615, 107.458615, 107.458615, 107.458615])) ______________________________ test_ncx2_gh12731 _______________________________ ../../../mambaforge/envs/scipy-dev/lib/python3.10/site-packages/scipy/stats/tests/test_distributions.py:6345: in test_ncx2_gh12731 assert_equal(stats.ncx2.cdf(1e4, df=1, nc=nc), 0) nc = array([ 100000, 1000000, 10000000, 100000000, 1000000000]) ../../../mambaforge/envs/scipy-dev/lib/python3.10/site-packages/scipy/stats/_distn_infrastructure.py:2160: in cdf place(output, cond, self._cdf(*goodargs)) _a = 0.0 _b = inf args = (array(1), array([ 100000, 1000000, 10000000, 100000000, 1000000000])) cond = array([ True, True, True, True, True]) cond0 = array([ True, True, True, True, True]) cond1 = True cond2 = array([False, False, False, False, False]) dtyp = dtype('float64') goodargs = [array([10000., 10000., 10000., 10000., 10000.]), array([1, 1, 1, 1, 1]), array([ 100000, 1000000, 10000000, 100000000, 1000000000])] kwds = {'df': 1, 'nc': array([ 100000, 1000000, 10000000, 100000000, 1000000000])} loc = array(0) output = array([0., 0., 0., 0., 0.]) scale = array(1) self = x = array(10000.) ../../../mambaforge/envs/scipy-dev/lib/python3.10/site-packages/scipy/stats/_continuous_distns.py:6502: in _cdf return _lazywhere(cond, (x, df, nc), f=_boost._ncx2_cdf, cond = array([ True, True, True, True, True]) df = array([1, 1, 1, 1, 1]) nc = array([ 100000, 1000000, 10000000, 100000000, 1000000000]) self = x = array([10000., 10000., 10000., 10000., 10000.]) ../../../mambaforge/envs/scipy-dev/lib/python3.10/site-packages/scipy/_lib/_util.py:69: in _lazywhere np.place(out, cond, f(*temp)) E RuntimeWarning: overflow encountered in _ncx2_cdf args = [array([ True, True, True, True, True]), array([10000., 10000., 10000., 10000., 10000.]), array([1, 1, 1, 1, 1]), array([ 100000, 1000000, 10000000, 100000000, 1000000000])] arrays = [array([10000., 10000., 10000., 10000., 10000.]), array([1, 1, 1, 1, 1]), array([ 100000, 1000000, 10000000, 100000000, 1000000000])] cond = array([ True, True, True, True, True]) f = f2 = . at 0x2e77b70a0> fillvalue = nan out = array([nan, nan, nan, nan, nan]) tcode = 'd' temp = (array([10000., 10000., 10000., 10000., 10000.]), array([1, 1, 1, 1, 1]), array([ 100000, 1000000, 10000000, 100000000, 1000000000])) _______________________________ test_ncx2_gh8665 _______________________________ ../../../mambaforge/envs/scipy-dev/lib/python3.10/site-packages/scipy/stats/tests/test_distributions.py:6357: in test_ncx2_gh8665 sf = stats.ncx2.sf(x, df=nu, nc=lam) lam = 499.51538166556196 nu = 20 x = array([4.99515382e+00, 1.07617327e+01, 2.31854502e+01, 4.99515382e+01, 1.07617327e+02, 2.31854502e+02, 4.99515382e+02, 1.07617327e+03, 2.31854502e+03, 4.99515382e+03, 1.07617327e+04, 2.31854502e+04, 4.99515382e+04]) ../../../mambaforge/envs/scipy-dev/lib/python3.10/site-packages/scipy/stats/_distn_infrastructure.py:2243: in sf place(output, cond, self._sf(*goodargs)) _a = 0.0 _b = inf args = (array(20), array(499.51538167)) cond = array([ True, True, True, True, True, True, True, True, True, True, True, True, True]) cond0 = True cond1 = array([ True, True, True, True, True, True, True, True, True, True, True, True, True]) cond2 = array([False, False, False, False, False, False, False, False, False, False, False, False, False]) dtyp = dtype('float64') goodargs = [array([4.99515382e+00, 1.07617327e+01, 2.31854502e+01, 4.99515382e+01, 1.07617327e+02, 2.31854502e+02, 4.99515...8167, 499.51538167, 499.51538167, 499.51538167, 499.51538167, 499.51538167, 499.51538167, 499.51538167])] kwds = {'df': 20, 'nc': 499.51538166556196} loc = array(0) output = array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]) scale = array(1) self = x = array([4.99515382e+00, 1.07617327e+01, 2.31854502e+01, 4.99515382e+01, 1.07617327e+02, 2.31854502e+02, 4.99515382e+02, 1.07617327e+03, 2.31854502e+03, 4.99515382e+03, 1.07617327e+04, 2.31854502e+04, 4.99515382e+04]) ../../../mambaforge/envs/scipy-dev/lib/python3.10/site-packages/scipy/stats/_continuous_distns.py:6515: in _sf return _lazywhere(cond, (x, df, nc), f=_boost._ncx2_sf, cond = array([ True, True, True, True, True, True, True, True, True, True, True, True, True]) df = array([20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20]) nc = array([499.51538167, 499.51538167, 499.51538167, 499.51538167, 499.51538167, 499.51538167, 499.51538167, 499.51538167, 499.51538167, 499.51538167, 499.51538167, 499.51538167, 499.51538167]) self = x = array([4.99515382e+00, 1.07617327e+01, 2.31854502e+01, 4.99515382e+01, 1.07617327e+02, 2.31854502e+02, 4.99515382e+02, 1.07617327e+03, 2.31854502e+03, 4.99515382e+03, 1.07617327e+04, 2.31854502e+04, 4.99515382e+04]) ../../../mambaforge/envs/scipy-dev/lib/python3.10/site-packages/scipy/_lib/_util.py:69: in _lazywhere np.place(out, cond, f(*temp)) E RuntimeWarning: overflow encountered in _ncx2_sf args = [array([ True, True, True, True, True, True, True, True, True, True, True, True, True]), array([4.9...8167, 499.51538167, 499.51538167, 499.51538167, 499.51538167, 499.51538167, 499.51538167, 499.51538167])] arrays = [array([4.99515382e+00, 1.07617327e+01, 2.31854502e+01, 4.99515382e+01, 1.07617327e+02, 2.31854502e+02, 4.99515...8167, 499.51538167, 499.51538167, 499.51538167, 499.51538167, 499.51538167, 499.51538167, 499.51538167])] cond = array([ True, True, True, True, True, True, True, True, True, True, True, True, True]) f = f2 = . at 0x2e77b6b90> fillvalue = nan out = array([nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]) tcode = 'd' temp = (array([4.99515382e+00, 1.07617327e+01, 2.31854502e+01, 4.99515382e+01, 1.07617327e+02, 2.31854502e+02, 4.99515...8167, 499.51538167, 499.51538167, 499.51538167, 499.51538167, 499.51538167, 499.51538167, 499.51538167])) =========================== short test summary info ============================ FAILED ../fft/_pocketfft/tests/test_real_transforms.py::test_dst4_definition_ortho[1-float32] FAILED ../linalg/tests/test_solvers.py::test_solve_discrete_are - AssertionEr... FAILED ../ndimage/tests/test_datatypes.py::test_uint64_max - AssertionError FAILED ../sparse/linalg/_isolve/tests/test_iterative.py::test_maxiter_worsening[gmres] FAILED ../special/tests/test_hyp2f1.py::TestHyp2f1::test_a_b_neg_int_after_euler_hypergeometric_transformation[hyp2f1_test_case0] FAILED ../special/tests/test_hyp2f1.py::TestHyp2f1::test_region4[hyp2f1_test_case30] FAILED ../special/tests/test_hyp2f1.py::TestHyp2f1::test_region4[hyp2f1_test_case34] FAILED ../special/tests/test_hyp2f1.py::TestHyp2f1::test_region4[hyp2f1_test_case47] FAILED ../special/tests/test_hyp2f1.py::TestHyp2f1::test_region5[hyp2f1_test_case3] FAILED ../stats/tests/test_boost_ufuncs.py::test_stats_boost_ufunc[_beta_ppf-args1-0.5] FAILED ../stats/tests/test_continuous_basic.py::test_cont_basic[500-200-ncf-arg74] FAILED ../stats/tests/test_continuous_basic.py::test_cont_basic[500-200-nct-arg75] FAILED ../stats/tests/test_continuous_basic.py::test_cont_basic[500-200-ncx2-arg76] FAILED ../stats/tests/test_continuous_basic.py::test_methods_with_lists[ncf-args75-ppf] FAILED ../stats/tests/test_continuous_basic.py::test_methods_with_lists[ncf-args75-isf] FAILED ../stats/tests/test_discrete_basic.py::test_discrete_basic[skellam-arg17-True] FAILED ../stats/tests/test_discrete_basic.py::test_moments[skellam-arg17] - R... FAILED ../stats/tests/test_discrete_distns.py::test_skellam_gh11474 - Runtime... FAILED ../stats/tests/test_discrete_distns.py::TestNCH::test_nchypergeom_wallenius_naive FAILED ../stats/tests/test_distributions.py::TestSkellam::test_cdf - RuntimeW... FAILED ../stats/tests/test_distributions.py::TestExpect::test_skellam - Runti... FAILED ../stats/tests/test_distributions.py::test_ncx2_tails_ticket_955 - Run... FAILED ../stats/tests/test_distributions.py::test_ncx2_gh12731 - RuntimeWarni... FAILED ../stats/tests/test_distributions.py::test_ncx2_gh8665 - RuntimeWarnin... = 24 failed, 37647 passed, 2207 skipped, 12238 deselected, 135 xfailed, 13 xpassed in 471.13s (0:07:51) = Out[2]: False ```
certik commented 2 years ago

Since some tests fail, probably a good way forward is to simply track how many fail / pass:

= 24 failed, 37647 passed, 2207 skipped, 12238 deselected, 135 xfailed, 13 xpassed in 471.13s (0:07:51) =

presumably if LFortran miscompiles something, more tests would fail.

certik commented 2 years ago

@konradha here is how to get SciPy compiling with LFortran (any subset of files). First create:

$ cat wrapper.sh 
#!/bin/bash

set -ex

dir="$HOME/repos/scipy"
A="$@"
Alast="${A##* }"
if [[ "${Alast: -2}" == ".f" ]]; then
    echo $Alast  >> $dir/log.txt
    lfortran --fixed-form fmt --no-color $Alast > ${Alast}90
    gfortran.actual -ffree-line-length-none ${A}90
else
    gfortran.actual $@
fi

Then install it using:

$ mamba env create -f environment.yml
$ conda activate scipy-dev
$ mv $CONDA_PREFIX/bin/gfortran $CONDA_PREFIX/bin/gfortran.actual
$ cp wrapper.sh $CONDA_PREFIX/bin/gfortran

Then install as usual:

$ pip install -v .

This will create a log.txt file with all the files that we are running via LFortran. One can easily customize this in any way we need. The above builds the following files:

Toggle me! ```console $ cat log.txt ../../scipy/stats/statlib/ansari.f ../../scipy/stats/statlib/spearman.f ../../scipy/stats/statlib/swilk.f ../../scipy/sparse/linalg/_eigen/arpack/ARPACK/SRC/znaupd.f ../../scipy/sparse/linalg/_eigen/arpack/ARPACK/SRC/zneigh.f ../../scipy/sparse/linalg/_eigen/arpack/ARPACK/SRC/zneupd.f ../../scipy/sparse/linalg/_eigen/arpack/ARPACK/SRC/zngets.f ../../scipy/sparse/linalg/_eigen/arpack/ARPACK/SRC/zsortc.f ../../scipy/sparse/linalg/_eigen/arpack/ARPACK/SRC/zstatn.f ../../scipy/sparse/linalg/_eigen/arpack/ARPACK/UTIL/cmout.f ../../scipy/sparse/linalg/_eigen/arpack/ARPACK/UTIL/cvout.f ../../scipy/sparse/linalg/_eigen/arpack/ARPACK/UTIL/dmout.f ../../scipy/sparse/linalg/_eigen/arpack/ARPACK/UTIL/dvout.f ../../scipy/sparse/linalg/_eigen/arpack/ARPACK/UTIL/icnteq.f ../../scipy/sparse/linalg/_eigen/arpack/ARPACK/UTIL/icopy.f ../../scipy/sparse/linalg/_eigen/arpack/ARPACK/UTIL/iset.f ../../scipy/sparse/linalg/_eigen/arpack/ARPACK/UTIL/iswap.f ../../scipy/sparse/linalg/_eigen/arpack/ARPACK/UTIL/ivout.f ../../scipy/sparse/linalg/_eigen/arpack/ARPACK/UTIL/second_NONE.f ../../scipy/sparse/linalg/_eigen/arpack/ARPACK/UTIL/smout.f ../../scipy/sparse/linalg/_eigen/arpack/ARPACK/UTIL/svout.f ../../scipy/sparse/linalg/_eigen/arpack/ARPACK/UTIL/zmout.f ../../scipy/sparse/linalg/_eigen/arpack/ARPACK/UTIL/zvout.f ../../scipy/sparse/linalg/_eigen/arpack/ARPACK/SRC/cnapps.f ../../scipy/sparse/linalg/_eigen/arpack/ARPACK/SRC/cnaitr.f ../../scipy/sparse/linalg/_eigen/arpack/ARPACK/SRC/cgetv0.f ../../scipy/sparse/linalg/_eigen/arpack/ARPACK/SRC/cnaupd.f ../../scipy/sparse/linalg/_eigen/arpack/ARPACK/SRC/cnaup2.f ../../scipy/sparse/linalg/_eigen/arpack/ARPACK/SRC/cneigh.f ../../scipy/sparse/linalg/_eigen/arpack/ARPACK/SRC/cneupd.f ../../scipy/sparse/linalg/_eigen/arpack/ARPACK/SRC/cngets.f ../../scipy/sparse/linalg/_eigen/arpack/ARPACK/SRC/csortc.f ../../scipy/sparse/linalg/_eigen/arpack/ARPACK/SRC/cstatn.f ../../scipy/sparse/linalg/_eigen/arpack/ARPACK/SRC/dgetv0.f ../../scipy/sparse/linalg/_eigen/arpack/ARPACK/SRC/dnaitr.f ../../scipy/sparse/linalg/_eigen/arpack/ARPACK/SRC/dnapps.f ../../scipy/sparse/linalg/_eigen/arpack/ARPACK/SRC/dnaup2.f ../../scipy/sparse/linalg/_eigen/arpack/ARPACK/SRC/dnaupd.f ../../scipy/sparse/linalg/_eigen/arpack/ARPACK/SRC/dnconv.f ../../scipy/sparse/linalg/_eigen/arpack/ARPACK/SRC/dneigh.f ../../scipy/sparse/linalg/_eigen/arpack/ARPACK/SRC/dneupd.f ../../scipy/sparse/linalg/_eigen/arpack/ARPACK/SRC/dngets.f ../../scipy/sparse/linalg/_eigen/arpack/ARPACK/SRC/dsapps.f ../../scipy/sparse/linalg/_eigen/arpack/ARPACK/SRC/dsaitr.f ../../scipy/sparse/linalg/_eigen/arpack/ARPACK/SRC/dsaup2.f ../../scipy/sparse/linalg/_eigen/arpack/ARPACK/SRC/dsaupd.f ../../scipy/sparse/linalg/_eigen/arpack/ARPACK/SRC/dsconv.f ../../scipy/sparse/linalg/_eigen/arpack/ARPACK/SRC/dseigt.f ../../scipy/sparse/linalg/_eigen/arpack/ARPACK/SRC/dsesrt.f ../../scipy/sparse/linalg/_eigen/arpack/ARPACK/SRC/dseupd.f ../../scipy/sparse/linalg/_eigen/arpack/ARPACK/SRC/dsgets.f ../../scipy/sparse/linalg/_eigen/arpack/ARPACK/SRC/dsortc.f ../../scipy/sparse/linalg/_eigen/arpack/ARPACK/SRC/dsortr.f ../../scipy/sparse/linalg/_eigen/arpack/ARPACK/SRC/dstatn.f ../../scipy/sparse/linalg/_eigen/arpack/ARPACK/SRC/dstats.f ../../scipy/sparse/linalg/_eigen/arpack/ARPACK/SRC/dstqrb.f ../../scipy/sparse/linalg/_eigen/arpack/ARPACK/SRC/sgetv0.f ../../scipy/sparse/linalg/_eigen/arpack/ARPACK/SRC/snaitr.f ../../scipy/sparse/linalg/_eigen/arpack/ARPACK/SRC/snapps.f ../../scipy/sparse/linalg/_eigen/arpack/ARPACK/SRC/snaup2.f ../../scipy/sparse/linalg/_eigen/arpack/ARPACK/SRC/snaupd.f ../../scipy/sparse/linalg/_eigen/arpack/ARPACK/SRC/snconv.f ../../scipy/sparse/linalg/_eigen/arpack/ARPACK/SRC/sneupd.f ../../scipy/sparse/linalg/_eigen/arpack/ARPACK/SRC/sneigh.f ../../scipy/sparse/linalg/_eigen/arpack/ARPACK/SRC/sngets.f ../../scipy/sparse/linalg/_eigen/arpack/ARPACK/SRC/ssaitr.f ../../scipy/sparse/linalg/_eigen/arpack/ARPACK/SRC/ssapps.f ../../scipy/sparse/linalg/_eigen/arpack/ARPACK/SRC/ssaup2.f ../../scipy/sparse/linalg/_eigen/arpack/ARPACK/SRC/ssaupd.f ../../scipy/sparse/linalg/_eigen/arpack/ARPACK/SRC/ssconv.f ../../scipy/sparse/linalg/_eigen/arpack/ARPACK/SRC/sseigt.f ../../scipy/sparse/linalg/_eigen/arpack/ARPACK/SRC/ssesrt.f ../../scipy/sparse/linalg/_eigen/arpack/ARPACK/SRC/sseupd.f ../../scipy/sparse/linalg/_eigen/arpack/ARPACK/SRC/ssgets.f ../../scipy/sparse/linalg/_eigen/arpack/ARPACK/SRC/ssortc.f ../../scipy/sparse/linalg/_eigen/arpack/ARPACK/SRC/sstats.f ../../scipy/sparse/linalg/_eigen/arpack/ARPACK/SRC/sstatn.f ../../scipy/sparse/linalg/_eigen/arpack/ARPACK/SRC/ssortr.f ../../scipy/sparse/linalg/_eigen/arpack/ARPACK/SRC/sstqrb.f ../../scipy/sparse/linalg/_eigen/arpack/ARPACK/SRC/zgetv0.f ../../scipy/sparse/linalg/_eigen/arpack/ARPACK/SRC/znaitr.f ../../scipy/sparse/linalg/_eigen/arpack/ARPACK/SRC/znapps.f ../../scipy/sparse/linalg/_eigen/arpack/ARPACK/SRC/znaup2.f ../../scipy/_build_utils/src/wrap_dummy_g77_abi.f ../../scipy/_build_utils/src/wrap_dummy_g77_abi.f ../../scipy/_build_utils/src/wrap_dummy_g77_abi.f ../../scipy/_build_utils/src/wrap_dummy_g77_abi.f ../../scipy/_build_utils/src/wrap_dummy_g77_abi.f scipy/sparse/linalg/_eigen/arpack/_arpack-f2pywrappers.f scipy/stats/_statlib-f2pywrappers.f scipy/stats/_mvn-f2pywrappers.f ../../scipy/stats/mvndst.f scipy/sparse/linalg/_isolve/BiCGREVCOM.f scipy/sparse/linalg/_isolve/BiCGSTABREVCOM.f scipy/sparse/linalg/_isolve/CGREVCOM.f scipy/sparse/linalg/_isolve/CGSREVCOM.f scipy/sparse/linalg/_isolve/GMRESREVCOM.f scipy/sparse/linalg/_isolve/QMRREVCOM.f scipy/sparse/linalg/_isolve/getbreak.f ../../scipy/_build_utils/src/wrap_dummy_g77_abi.f ../../scipy/linalg/src/det.f ../../scipy/linalg/src/lu.f ../../scipy/linalg/src/id_dist/src/dfft.f ../../scipy/linalg/src/id_dist/src/id_rand.f ../../scipy/linalg/src/id_dist/src/id_rtrans.f ../../scipy/linalg/src/id_dist/src/idd_frm.f ../../scipy/linalg/src/id_dist/src/idd_house.f ../../scipy/linalg/src/id_dist/src/idd_id.f ../../scipy/linalg/src/id_dist/src/idd_id2svd.f ../../scipy/linalg/src/id_dist/src/idd_sfft.f ../../scipy/linalg/src/id_dist/src/idd_qrpiv.f ../../scipy/linalg/src/id_dist/src/idd_snorm.f ../../scipy/linalg/src/id_dist/src/idd_svd.f ../../scipy/linalg/src/id_dist/src/iddp_aid.f ../../scipy/linalg/src/id_dist/src/iddp_asvd.f ../../scipy/linalg/src/id_dist/src/iddp_rsvd.f ../../scipy/linalg/src/id_dist/src/iddp_rid.f ../../scipy/linalg/src/id_dist/src/iddr_aid.f ../../scipy/linalg/src/id_dist/src/iddr_asvd.f ../../scipy/linalg/src/id_dist/src/iddr_rid.f ../../scipy/linalg/src/id_dist/src/iddr_rsvd.f ../../scipy/linalg/src/id_dist/src/idz_frm.f ../../scipy/linalg/src/id_dist/src/idz_house.f ../../scipy/linalg/src/id_dist/src/idz_id.f ../../scipy/linalg/src/id_dist/src/idz_id2svd.f ../../scipy/linalg/src/id_dist/src/idz_qrpiv.f ../../scipy/linalg/src/id_dist/src/idz_sfft.f ../../scipy/linalg/src/id_dist/src/idz_snorm.f ../../scipy/linalg/src/id_dist/src/idz_svd.f ../../scipy/linalg/src/id_dist/src/idzp_aid.f ../../scipy/linalg/src/id_dist/src/idzp_asvd.f ../../scipy/linalg/src/id_dist/src/idzp_rid.f ../../scipy/linalg/src/id_dist/src/idzp_rsvd.f ../../scipy/linalg/src/id_dist/src/idzr_aid.f ../../scipy/linalg/src/id_dist/src/idzr_asvd.f ../../scipy/linalg/src/id_dist/src/idzr_rid.f ../../scipy/linalg/src/id_dist/src/prini.f ../../scipy/linalg/src/id_dist/src/idzr_rsvd.f scipy/sparse/linalg/_propack/_zpropack-f2pywrappers.f scipy/sparse/linalg/_propack/_spropack-f2pywrappers.f scipy/sparse/linalg/_propack/_dpropack-f2pywrappers.f scipy/sparse/linalg/_propack/_cpropack-f2pywrappers.f scipy/linalg/_flapack-f2pywrappers.f ../../scipy/_build_utils/src/wrap_dummy_g77_abi.f ../../scipy/special/amos/dgamln.f ../../scipy/special/amos/zabs.f ../../scipy/special/amos/zacon.f ../../scipy/special/amos/zairy.f ../../scipy/special/amos/zacai.f ../../scipy/special/amos/zasyi.f ../../scipy/special/amos/zbesj.f ../../scipy/special/amos/zbesi.f ../../scipy/special/amos/zbesh.f ../../scipy/special/amos/zbesk.f ../../scipy/special/amos/zbesy.f ../../scipy/special/amos/zbinu.f ../../scipy/special/amos/zbiry.f ../../scipy/special/amos/zbknu.f ../../scipy/special/amos/zbuni.f ../../scipy/special/amos/zbunk.f ../../scipy/special/amos/zdiv.f ../../scipy/special/amos/zexp.f ../../scipy/special/amos/zkscl.f ../../scipy/special/amos/zlog.f ../../scipy/special/amos/zmlri.f ../../scipy/special/amos/zmlt.f ../../scipy/special/amos/zrati.f ../../scipy/special/amos/zs1s2.f ../../scipy/special/amos/zseri.f ../../scipy/special/amos/zshch.f ../../scipy/special/amos/zsqrt.f ../../scipy/special/amos/zuchk.f ../../scipy/special/amos/zunhj.f ../../scipy/special/amos/zuni1.f ../../scipy/special/amos/zuni2.f ../../scipy/special/amos/zunik.f ../../scipy/special/amos/zunk1.f ../../scipy/special/amos/zunk2.f ../../scipy/special/amos/zuoik.f ../../scipy/special/amos/zwrsk.f ../../scipy/special/cdflib/algdiv.f ../../scipy/special/cdflib/alngam.f ../../scipy/special/cdflib/alnrel.f ../../scipy/special/cdflib/apser.f ../../scipy/special/cdflib/bcorr.f ../../scipy/special/cdflib/basym.f ../../scipy/special/cdflib/betaln.f ../../scipy/special/cdflib/bfrac.f ../../scipy/special/cdflib/bgrat.f ../../scipy/special/cdflib/bpser.f ../../scipy/special/cdflib/bratio.f ../../scipy/special/cdflib/brcmp1.f ../../scipy/special/cdflib/brcomp.f ../../scipy/special/cdflib/bup.f ../../scipy/special/cdflib/cdfbet.f ../../scipy/special/cdflib/cdfbin.f ../../scipy/special/cdflib/cdfchi.f ../../scipy/special/cdflib/cdfchn.f ../../scipy/special/cdflib/cdff.f ../../scipy/special/cdflib/cdffnc.f ../../scipy/special/cdflib/cdfgam.f ../../scipy/special/cdflib/cdfnbn.f ../../scipy/special/cdflib/cdfnor.f ../../scipy/special/cdflib/cdfpoi.f ../../scipy/special/cdflib/cdft.f ../../scipy/special/cdflib/cdftnc.f ../../scipy/special/cdflib/cumbet.f ../../scipy/special/cdflib/cumbin.f ../../scipy/special/cdflib/cumchi.f ../../scipy/special/cdflib/cumchn.f ../../scipy/special/cdflib/cumf.f ../../scipy/special/cdflib/cumfnc.f ../../scipy/special/cdflib/cumgam.f ../../scipy/special/cdflib/cumnbn.f ../../scipy/special/cdflib/cumnor.f ../../scipy/special/cdflib/cumpoi.f ../../scipy/special/cdflib/cumt.f ../../scipy/special/cdflib/cumtnc.f ../../scipy/special/cdflib/devlpl.f ../../scipy/special/cdflib/dinvnr.f ../../scipy/special/cdflib/dinvr.f ../../scipy/special/cdflib/dt1.f ../../scipy/special/cdflib/dzror.f ../../scipy/special/cdflib/erf.f ../../scipy/special/cdflib/erfc1.f ../../scipy/special/cdflib/esum.f ../../scipy/special/cdflib/exparg.f ../../scipy/special/cdflib/gam1.f ../../scipy/special/cdflib/fpser.f ../../scipy/special/cdflib/gaminv.f ../../scipy/special/cdflib/gamln.f ../../scipy/special/cdflib/gamln1.f ../../scipy/special/cdflib/gamma_fort.f ../../scipy/special/cdflib/grat1.f ../../scipy/special/cdflib/gratio.f ../../scipy/special/cdflib/gsumln.f ../../scipy/special/cdflib/ipmpar.f ../../scipy/special/cdflib/psi_fort.f ../../scipy/special/cdflib/rcomp.f ../../scipy/special/cdflib/rexp.f ../../scipy/special/cdflib/rlog.f ../../scipy/special/cdflib/rlog1.f ../../scipy/special/cdflib/spmpar.f ../../scipy/special/cdflib/stvaln.f ../../scipy/special/mach/d1mach.f ../../scipy/special/mach/i1mach.f ../../scipy/special/mach/xerror.f ../../scipy/special/specfun/specfun.f scipy/linalg/_blas_subroutine_wrappers.f scipy/linalg/_lapack_subroutine_wrappers.f ../../scipy/_build_utils/src/wrap_dummy_g77_abi.f scipy/linalg/_fblas-f2pywrappers.f ../../scipy/_build_utils/src/wrap_dummy_g77_abi.f ../../scipy/io/_test_fortran.f ../../scipy/odr/odrpack/d_lpk.f ../../scipy/odr/odrpack/d_mprec.f ../../scipy/odr/odrpack/d_odr.f ../../scipy/odr/odrpack/dlunoc.f ../../scipy/optimize/minpack/chkder.f ../../scipy/optimize/minpack/dogleg.f ../../scipy/optimize/minpack/dpmpar.f ../../scipy/optimize/minpack/enorm.f ../../scipy/optimize/minpack/fdjac1.f ../../scipy/optimize/minpack/fdjac2.f ../../scipy/optimize/minpack/hybrd.f ../../scipy/optimize/minpack/hybrd1.f ../../scipy/optimize/minpack/hybrj.f ../../scipy/optimize/minpack/hybrj1.f ../../scipy/optimize/minpack/lmder1.f ../../scipy/optimize/minpack/lmder.f ../../scipy/optimize/minpack/lmdif.f ../../scipy/optimize/minpack/lmpar.f ../../scipy/optimize/minpack/lmdif1.f ../../scipy/optimize/minpack/lmstr.f ../../scipy/optimize/minpack/lmstr1.f ../../scipy/optimize/minpack/qform.f ../../scipy/optimize/minpack/qrfac.f ../../scipy/optimize/minpack/qrsolv.f ../../scipy/optimize/minpack/r1mpyq.f ../../scipy/optimize/minpack/r1updt.f ../../scipy/optimize/minpack/rwupdt.f ../../scipy/optimize/lbfgsb_src/lbfgsb.f scipy/optimize/_lbfgsb-f2pywrappers.f ../../scipy/optimize/lbfgsb_src/linpack.f ../../scipy/optimize/lbfgsb_src/timer.f ../../scipy/optimize/cobyla/cobyla2.f ../../scipy/optimize/cobyla/trstlp.f ../../scipy/optimize/minpack2/dcsrch.f ../../scipy/optimize/minpack2/dcstep.f ../../scipy/optimize/slsqp/slsqp_optmz.f ../../scipy/optimize/__nnls/nnls.f ../../scipy/integrate/mach/d1mach.f ../../scipy/integrate/mach/xerror.f ../../scipy/integrate/quadpack/dqagpe.f ../../scipy/integrate/quadpack/dqag.f ../../scipy/integrate/quadpack/dqage.f ../../scipy/integrate/quadpack/dqagi.f ../../scipy/integrate/quadpack/dqagie.f ../../scipy/integrate/quadpack/dqagp.f ../../scipy/integrate/quadpack/dqags.f ../../scipy/integrate/quadpack/dqawc.f ../../scipy/integrate/quadpack/dqagse.f ../../scipy/integrate/quadpack/dqawce.f ../../scipy/integrate/quadpack/dqawf.f ../../scipy/integrate/quadpack/dqawfe.f ../../scipy/integrate/quadpack/dqawo.f ../../scipy/integrate/quadpack/dqawoe.f ../../scipy/integrate/quadpack/dqaws.f ../../scipy/integrate/quadpack/dqawse.f ../../scipy/integrate/quadpack/dqc25c.f ../../scipy/integrate/quadpack/dqc25f.f ../../scipy/integrate/quadpack/dqc25s.f ../../scipy/integrate/quadpack/dqcheb.f ../../scipy/integrate/quadpack/dqelg.f ../../scipy/integrate/quadpack/dqk15i.f ../../scipy/integrate/quadpack/dqk15w.f ../../scipy/integrate/quadpack/dqk15.f ../../scipy/integrate/quadpack/dqk21.f ../../scipy/integrate/quadpack/dqk31.f ../../scipy/integrate/quadpack/dqk41.f ../../scipy/integrate/quadpack/dqk51.f ../../scipy/integrate/quadpack/dqk61.f ../../scipy/integrate/quadpack/dqmomo.f ../../scipy/integrate/quadpack/dqng.f ../../scipy/integrate/quadpack/dqpsrt.f ../../scipy/integrate/quadpack/dqwgtc.f ../../scipy/integrate/quadpack/dqwgtf.f ../../scipy/integrate/quadpack/dqwgts.f ../../scipy/integrate/odepack/blkdta000.f ../../scipy/integrate/odepack/bnorm.f ../../scipy/integrate/odepack/cfode.f ../../scipy/integrate/odepack/ewset.f ../../scipy/integrate/odepack/fnorm.f ../../scipy/integrate/odepack/intdy.f ../../scipy/integrate/odepack/lsoda.f ../../scipy/integrate/odepack/prja.f ../../scipy/integrate/odepack/solsy.f ../../scipy/integrate/odepack/srcma.f ../../scipy/integrate/odepack/stoda.f ../../scipy/integrate/odepack/vmnorm.f ../../scipy/integrate/odepack/xerrwv.f ../../scipy/integrate/odepack/xsetf.f ../../scipy/integrate/odepack/xsetun.f ../../scipy/integrate/odepack/vode.f ../../scipy/integrate/odepack/zvode.f scipy/integrate/_test_odeint_banded-f2pywrappers.f ../../scipy/integrate/tests/banded5x5.f ../../scipy/interpolate/fitpack/bispeu.f ../../scipy/interpolate/fitpack/bispev.f ../../scipy/interpolate/fitpack/clocur.f ../../scipy/interpolate/fitpack/cocosp.f ../../scipy/interpolate/fitpack/concon.f ../../scipy/interpolate/fitpack/concur.f ../../scipy/interpolate/fitpack/cualde.f ../../scipy/interpolate/fitpack/curev.f ../../scipy/interpolate/fitpack/curfit.f ../../scipy/interpolate/fitpack/dblint.f ../../scipy/interpolate/fitpack/evapol.f ../../scipy/interpolate/fitpack/fourco.f ../../scipy/interpolate/fitpack/fpader.f ../../scipy/interpolate/fitpack/fpadno.f ../../scipy/interpolate/fitpack/fpadpo.f ../../scipy/interpolate/fitpack/fpback.f ../../scipy/interpolate/fitpack/fpbacp.f ../../scipy/interpolate/fitpack/fpbfout.f ../../scipy/interpolate/fitpack/fpbisp.f ../../scipy/interpolate/fitpack/fpbspl.f ../../scipy/interpolate/fitpack/fpchec.f ../../scipy/interpolate/fitpack/fpched.f ../../scipy/interpolate/fitpack/fpchep.f ../../scipy/interpolate/fitpack/fpclos.f ../../scipy/interpolate/fitpack/fpcoco.f ../../scipy/interpolate/fitpack/fpcons.f ../../scipy/interpolate/fitpack/fpcosp.f ../../scipy/interpolate/fitpack/fpcsin.f ../../scipy/interpolate/fitpack/fpcurf.f ../../scipy/interpolate/fitpack/fpcuro.f ../../scipy/interpolate/fitpack/fpcyt1.f ../../scipy/interpolate/fitpack/fpcyt2.f ../../scipy/interpolate/fitpack/fpdeno.f ../../scipy/interpolate/fitpack/fpdisc.f ../../scipy/interpolate/fitpack/fpfrno.f ../../scipy/interpolate/fitpack/fpgivs.f ../../scipy/interpolate/fitpack/fpgrdi.f ../../scipy/interpolate/fitpack/fpgrpa.f ../../scipy/interpolate/fitpack/fpgrre.f ../../scipy/interpolate/fitpack/fpgrsp.f ../../scipy/interpolate/fitpack/fpinst.f ../../scipy/interpolate/fitpack/fpintb.f ../../scipy/interpolate/fitpack/fpknot.f ../../scipy/interpolate/fitpack/fpopdi.f ../../scipy/interpolate/fitpack/fpopsp.f ../../scipy/interpolate/fitpack/fporde.f ../../scipy/interpolate/fitpack/fppara.f ../../scipy/interpolate/fitpack/fppasu.f ../../scipy/interpolate/fitpack/fpperi.f ../../scipy/interpolate/fitpack/fppocu.f ../../scipy/interpolate/fitpack/fppogr.f ../../scipy/interpolate/fitpack/fppola.f ../../scipy/interpolate/fitpack/fprank.f ../../scipy/interpolate/fitpack/fprati.f ../../scipy/interpolate/fitpack/fpregr.f ../../scipy/interpolate/fitpack/fprota.f ../../scipy/interpolate/fitpack/fprppo.f ../../scipy/interpolate/fitpack/fprpsp.f ../../scipy/interpolate/fitpack/fpseno.f ../../scipy/interpolate/fitpack/fpspgr.f ../../scipy/interpolate/fitpack/fpsphe.f ../../scipy/interpolate/fitpack/fpsuev.f ../../scipy/interpolate/fitpack/fpsurf.f ../../scipy/interpolate/fitpack/fpsysy.f ../../scipy/interpolate/fitpack/fptrnp.f ../../scipy/interpolate/fitpack/fptrpe.f ../../scipy/interpolate/fitpack/insert.f ../../scipy/interpolate/fitpack/parcur.f ../../scipy/interpolate/fitpack/parder.f ../../scipy/interpolate/fitpack/pardeu.f ../../scipy/interpolate/fitpack/parsur.f ../../scipy/interpolate/fitpack/percur.f ../../scipy/interpolate/fitpack/pogrid.f ../../scipy/interpolate/fitpack/polar.f ../../scipy/interpolate/fitpack/profil.f ../../scipy/interpolate/fitpack/regrid.f ../../scipy/interpolate/fitpack/spalde.f ../../scipy/interpolate/fitpack/spgrid.f ../../scipy/interpolate/fitpack/sphere.f ../../scipy/interpolate/fitpack/splder.f ../../scipy/interpolate/fitpack/splev.f ../../scipy/interpolate/fitpack/splint.f ../../scipy/interpolate/fitpack/sproot.f ../../scipy/interpolate/fitpack/surev.f ../../scipy/interpolate/fitpack/pardtc.f ../../scipy/interpolate/fitpack/surfit.f scipy/interpolate/dfitpack-f2pywrappers.f ../../scipy/integrate/dop/dop853.f ../../scipy/integrate/dop/dopri5.f scipy/integrate/_lsoda-f2pywrappers.f scipy/integrate/_vode-f2pywrappers.f scipy/integrate/_dop-f2pywrappers.f ```

Via the LFortran -> GFortran combo. Then when I run tests, I get:

Toggle me! ```console In [1]: import scipy In [2]: scipy.test() ============================= test session starts ============================== platform darwin -- Python 3.10.6, pytest-7.1.3, pluggy-1.0.0 rootdir: /Users/ondrej/repos/scipy, configfile: pytest.ini plugins: xdist-2.5.0, forked-1.4.0, timeout-2.1.0, cov-4.0.0 collected 52264 items / 12238 deselected / 40026 selected ../_lib/tests/test__gcutils.py ...... [ 0%] ../_lib/tests/test__pep440.py ......... [ 0%] ../_lib/tests/test__testutils.py .. [ 0%] ../_lib/tests/test__threadsafety.py .. [ 0%] ../_lib/tests/test__util.py ........................... [ 0%] ../_lib/tests/test_bunch.py ............................ [ 0%] ../_lib/tests/test_ccallback.py .... [ 0%] ../_lib/tests/test_deprecation.py . [ 0%] ../_lib/tests/test_import_cycles.py . [ 0%] ../_lib/tests/test_public_api.py .... [ 0%] ../_lib/tests/test_scipy_version.py . [ 0%] ../_lib/tests/test_tmpdirs.py ... [ 0%] ../cluster/tests/test_disjoint_set.py ..................... [ 0%] ../cluster/tests/test_hierarchy.py ..................................... [ 0%] ...................................................... [ 0%] ../cluster/tests/test_vq.py ......................... [ 0%] ../constants/tests/test_codata.py ....... [ 0%] ../constants/tests/test_constants.py ... [ 0%] ../datasets/tests/test_data.py .... [ 0%] ../fft/_pocketfft/tests/test_basic.py .................................. [ 0%] ........................................................................ [ 0%] ........................................................................ [ 1%] ........................................................................ [ 1%] ........................................................................ [ 1%] ........................................................................ [ 1%] .................................................................. [ 1%] ../fft/_pocketfft/tests/test_real_transforms.py ........................ [ 1%] ........................................................................ [ 1%] ........................................................................ [ 2%] ........................................................................ [ 2%] ........................................................................ [ 2%] ........................................................................ [ 2%] ........................................................................ [ 2%] ........................................................................ [ 3%] ........................................................................ [ 3%] ........................................................................ [ 3%] ........................................................................ [ 3%] ........................................................................ [ 3%] ........................................................................ [ 3%] ..........................................................F............. [ 4%] ........................................................................ [ 4%] ........................................................................ [ 4%] ........................................................................ [ 4%] ........................................................................ [ 4%] ........................................................................ [ 5%] ........................................................................ [ 5%] ........................................................................ [ 5%] ........................................................................ [ 5%] ........................................................................ [ 5%] ........................................................................ [ 5%] ........................................................................ [ 6%] ........................................................................ [ 6%] ........................................................................ [ 6%] .................................................... [ 6%] ../fft/tests/test_backend.py ........................................... [ 6%] ... [ 6%] ../fft/tests/test_fft_function.py . [ 6%] ../fft/tests/test_fftlog.py ........................................ [ 6%] ../fft/tests/test_helper.py .................. [ 6%] ../fft/tests/test_multithreading.py .................................... [ 6%] .................... [ 7%] ../fft/tests/test_numpy.py ............................................. [ 7%] ........................................................................ [ 7%] ......... [ 7%] ../fft/tests/test_real_transforms.py ................................... [ 7%] ........................................................................ [ 7%] ........................................................................ [ 7%] ........................................................................ [ 7%] ........................................................................ [ 8%] ........................................................................ [ 8%] ........................................................................ [ 8%] ........................................................................ [ 8%] ........................................................................ [ 8%] ........................................................................ [ 9%] ........................................................................ [ 9%] ........................................................................ [ 9%] ........................................................................ [ 9%] ........................................................................ [ 9%] ........................................................................ [ 9%] ........................................................................ [ 10%] ........................................................................ [ 10%] ........................................................................ [ 10%] ........................................................................ [ 10%] ........................................................................ [ 10%] ........................................................................ [ 11%] ........................................................................ [ 11%] ........................................................................ [ 11%] ........................................................................ [ 11%] ........................................................................ [ 11%] ........................................................................ [ 11%] ........................................................................ [ 12%] ........................................................................ [ 12%] ........................................................................ [ 12%] ........................................................................ [ 12%] ........................................................................ [ 12%] ........................................................................ [ 12%] ........................................................................ [ 13%] ........................................................................ [ 13%] ........................................................................ [ 13%] ........................................................................ [ 13%] ........................................................................ [ 13%] ........................................................................ [ 14%] ........................................................................ [ 14%] ........................................................................ [ 14%] ........................................................................ [ 14%] ........................................................................ [ 14%] ............................................................. [ 14%] ../fftpack/tests/test_basic.py ......x.................................. [ 15%] ........................................................................ [ 15%] ........................................................................ [ 15%] ........................................................................ [ 15%] ....................................... [ 15%] ../fftpack/tests/test_helper.py .... [ 15%] ../fftpack/tests/test_import.py . [ 15%] ../fftpack/tests/test_pseudo_diffs.py ............................. [ 15%] ../fftpack/tests/test_real_transforms.py ............................... [ 15%] ........................................................................ [ 16%] ........................................................................ [ 16%] ................................................. [ 16%] ../integrate/_ivp/tests/test_ivp.py ..............F............ [ 16%] ../integrate/_ivp/tests/test_rk.py .......... [ 16%] ../integrate/tests/test__quad_vec.py ......................... [ 16%] ../integrate/tests/test_banded_ode_solvers.py . [ 16%] ../integrate/tests/test_bvp.py ................ [ 16%] ../integrate/tests/test_integrate.py ..F................................ [ 16%] ............ [ 16%] ../integrate/tests/test_odeint_jac.py .. [ 16%] ../integrate/tests/test_quadpack.py .........FFFF....................... [ 16%] .......................................................... [ 16%] ../integrate/tests/test_quadrature.py .................................. [ 16%] [ 16%] ../interpolate/tests/test_bsplines.py .................................. [ 17%] ........................................................................ [ 17%] .x....................... [ 17%] ../interpolate/tests/test_fitpack.py F.................................. [ 17%] ..s..... [ 17%] ../interpolate/tests/test_fitpack2.py .................................. [ 17%] .........................F...... [ 17%] ../interpolate/tests/test_interpnd.py ..................... [ 17%] ../interpolate/tests/test_interpolate.py ............................... [ 17%] ........................................................................ [ 17%] ........................... [ 17%] ../interpolate/tests/test_ndgriddata.py .................. [ 17%] ../interpolate/tests/test_pade.py .... [ 18%] ../interpolate/tests/test_polyint.py ................................... [ 18%] .................... [ 18%] ../interpolate/tests/test_rbf.py .......... [ 18%] ../interpolate/tests/test_rbfinterp.py ................................. [ 18%] ........................................................................ [ 18%] ........................................................................ [ 18%] ..... [ 18%] ../interpolate/tests/test_rgi.py ....................................... [ 18%] ........................................................................ [ 18%] ......... [ 18%] ../io/_harwell_boeing/tests/test_fortran_format.py ........... [ 18%] ../io/_harwell_boeing/tests/test_hb.py .. [ 18%] ../io/arff/tests/test_arffread.py ........................... [ 19%] ../io/matlab/tests/test_byteordercodes.py .. [ 19%] ../io/matlab/tests/test_mio.py ......................................... [ 19%] ........................... [ 19%] ../io/matlab/tests/test_mio5_utils.py ...... [ 19%] ../io/matlab/tests/test_mio_funcs.py . [ 19%] ../io/matlab/tests/test_mio_utils.py .. [ 19%] ../io/matlab/tests/test_miobase.py . [ 19%] ../io/matlab/tests/test_pathological.py .. [ 19%] ../io/matlab/tests/test_streams.py ........... [ 19%] ../io/tests/test_fortran.py ........... [ 19%] ../io/tests/test_idl.py ................................................ [ 19%] ................... [ 19%] ../io/tests/test_mmio.py ............................................... [ 19%] ........................... [ 19%] ../io/tests/test_netcdf.py ......................... [ 19%] ../io/tests/test_paths.py ........... [ 19%] ../io/tests/test_wavfile.py ............................................ [ 19%] ........................................................................ [ 20%] ........................................................................ [ 20%] ........................................................................ [ 20%] .......................... [ 20%] ../linalg/tests/test_basic.py .......................................... [ 20%] ...................s................................................s... [ 20%] ........................ [ 20%] ../linalg/tests/test_blas.py ........................................... [ 20%] ........ [ 20%] ../linalg/tests/test_cython_blas.py ...... [ 20%] ../linalg/tests/test_cython_lapack.py .. [ 20%] ../linalg/tests/test_cythonized_array_utils.py ......................... [ 20%] ..................... [ 21%] ../linalg/tests/test_decomp.py ........X................................ [ 21%] ........................................................................ [ 21%] ........................................................................ [ 21%] ........................................................................ [ 21%] .....X...................x............................... [ 21%] ../linalg/tests/test_decomp_cholesky.py ................ [ 21%] ../linalg/tests/test_decomp_cossin.py .................................. [ 21%] ......................................................... [ 22%] ../linalg/tests/test_decomp_ldl.py ............ [ 22%] ../linalg/tests/test_decomp_polar.py .. [ 22%] ../linalg/tests/test_decomp_update.py .................................. [ 22%] ........................................................................ [ 22%] ........................................................................ [ 22%] ........................................................................ [ 22%] ........................................................................ [ 22%] ........................................................................ [ 23%] ........................................................................ [ 23%] ........................................................................ [ 23%] ........................................................................ [ 23%] ....................................................... [ 23%] ../linalg/tests/test_fblas.py .......................................... [ 23%] ........................................................................ [ 24%] ............... [ 24%] ../linalg/tests/test_interpolative.py .................................. [ 24%] .............. [ 24%] ../linalg/tests/test_lapack.py ......................................... [ 24%] .......................................................................s [ 24%] ........................................................................ [ 24%] ........................................................................ [ 24%] ........................................................................ [ 25%] ........................................................................ [ 25%] ........................................................................ [ 25%] ........................................................................ [ 25%] ........................................................................ [ 25%] ........................................................................ [ 25%] ........................................................................ [ 26%] ........................................................................ [ 26%] ........................................................................ [ 26%] ........................................................................ [ 26%] ........................................................................ [ 26%] ........................................................................ [ 27%] ........................................................................ [ 27%] ........................................................................ [ 27%] ........................................................................ [ 27%] ........................................................................ [ 27%] ........................................................................ [ 27%] ........................................................................ [ 28%] ........................................................................ [ 28%] ........................................................................ [ 28%] ........................................................................ [ 28%] ........................................................................ [ 28%] ..................................................x.........x... [ 28%] ../linalg/tests/test_matfuncs.py .....................................X. [ 29%] ................ [ 29%] ../linalg/tests/test_matmul_toeplitz.py ... [ 29%] ../linalg/tests/test_misc.py . [ 29%] ../linalg/tests/test_procrustes.py .......... [ 29%] ../linalg/tests/test_sketches.py ..... [ 29%] ../linalg/tests/test_solve_toeplitz.py ......X [ 29%] ../linalg/tests/test_solvers.py ..xF..... [ 29%] ../linalg/tests/test_special_matrices.py ............................... [ 29%] ........................................................................ [ 29%] ................ [ 29%] ../misc/tests/test_common.py ... [ 29%] ../misc/tests/test_doccer.py ..... [ 29%] ../ndimage/tests/test_c_api.py ... [ 29%] ../ndimage/tests/test_datatypes.py .F [ 29%] ../ndimage/tests/test_filters.py ....................................... [ 29%] ........................................................................ [ 29%] ........................................................................ [ 30%] ........................................................................ [ 30%] ........................................................................ [ 30%] ........................................................................ [ 30%] ........................................................................ [ 30%] ........................................................................ [ 30%] ........................................................................ [ 31%] ........................................................................ [ 31%] ........................................................................ [ 31%] ........................................................................ [ 31%] ........................................................................ [ 31%] ........................................................................ [ 31%] ........................................................................ [ 32%] ........................................................................ [ 32%] ........................................................................ [ 32%] ........................................................................ [ 32%] ........................................................................ [ 32%] ........................................................................ [ 33%] ........................................................................ [ 33%] ..................................................................... [ 33%] ../ndimage/tests/test_fourier.py ....................................... [ 33%] ..................................... [ 33%] ../ndimage/tests/test_interpolation.py ................................. [ 33%] ........................................................................ [ 33%] ........................................................................ [ 34%] ........................................................................ [ 34%] ........................................................................ [ 34%] ........................................................................ [ 34%] ........................................................................ [ 34%] ........................................................................ [ 34%] ........................................................................ [ 35%] ........................................................................ [ 35%] ........................................................................ [ 35%] ........................................................................ [ 35%] ........................................................................ [ 35%] ........................................................................ [ 36%] ................... [ 36%] ../ndimage/tests/test_measurements.py .................................. [ 36%] ........................................................................ [ 36%] ............. [ 36%] ../ndimage/tests/test_morphology.py .................................... [ 36%] ........................................................................ [ 36%] ........................................................................ [ 36%] ........................................................................ [ 36%] ........................................................................ [ 37%] ........................................................................ [ 37%] ........................................................................ [ 37%] ........................................................................ [ 37%] ........................................................................ [ 37%] ........................................................................ [ 38%] ........................................................................ [ 38%] ........................................................................ [ 38%] ....... [ 38%] ../ndimage/tests/test_splines.py .................. [ 38%] ../odr/tests/test_odr.py ..FFFatal Python error: Segmentation fault Thread 0x0000000170bc7000 (most recent call first): File "/Users/ondrej/mambaforge/envs/scipy-dev/lib/python3.10/threading.py", line 320 in wait File "/Users/ondrej/mambaforge/envs/scipy-dev/lib/python3.10/threading.py", line 607 in wait File "/Users/ondrej/mambaforge/envs/scipy-dev/lib/python3.10/site-packages/IPython/core/history.py", line 881 in run File "/Users/ondrej/mambaforge/envs/scipy-dev/lib/python3.10/site-packages/IPython/core/history.py", line 60 in only_when_enabled File "/Users/ondrej/mambaforge/envs/scipy-dev/lib/python3.10/site-packages/decorator.py", line 232 in fun File "/Users/ondrej/mambaforge/envs/scipy-dev/lib/python3.10/threading.py", line 1016 in _bootstrap_inner File "/Users/ondrej/mambaforge/envs/scipy-dev/lib/python3.10/threading.py", line 973 in _bootstrap Current thread 0x00000001007dc580 (most recent call first): File "/Users/ondrej/mambaforge/envs/scipy-dev/lib/python3.10/site-packages/_pytest/_code/source.py", line 125 in File "/Users/ondrej/mambaforge/envs/scipy-dev/lib/python3.10/site-packages/_pytest/_code/source.py", line 125 in findsource File "/Users/ondrej/mambaforge/envs/scipy-dev/lib/python3.10/site-packages/_pytest/_code/code.py", line 106 in fullsource File "/Users/ondrej/mambaforge/envs/scipy-dev/lib/python3.10/site-packages/_pytest/_code/code.py", line 250 in getsource File "/Users/ondrej/mambaforge/envs/scipy-dev/lib/python3.10/site-packages/_pytest/_code/code.py", line 718 in _getentrysource File "/Users/ondrej/mambaforge/envs/scipy-dev/lib/python3.10/site-packages/_pytest/_code/code.py", line 810 in repr_traceback_entry File "/Users/ondrej/mambaforge/envs/scipy-dev/lib/python3.10/site-packages/_pytest/_code/code.py", line 867 in repr_traceback File "/Users/ondrej/mambaforge/envs/scipy-dev/lib/python3.10/site-packages/_pytest/_code/code.py", line 926 in repr_excinfo File "/Users/ondrej/mambaforge/envs/scipy-dev/lib/python3.10/site-packages/_pytest/_code/code.py", line 666 in getrepr File "/Users/ondrej/mambaforge/envs/scipy-dev/lib/python3.10/site-packages/_pytest/nodes.py", line 475 in _repr_failure_py File "/Users/ondrej/mambaforge/envs/scipy-dev/lib/python3.10/site-packages/_pytest/python.py", line 1795 in repr_failure File "/Users/ondrej/mambaforge/envs/scipy-dev/lib/python3.10/site-packages/_pytest/reports.py", line 345 in from_item_and_call File "/Users/ondrej/mambaforge/envs/scipy-dev/lib/python3.10/site-packages/_pytest/runner.py", line 365 in pytest_runtest_makereport File "/Users/ondrej/mambaforge/envs/scipy-dev/lib/python3.10/site-packages/pluggy/_callers.py", line 39 in _multicall File "/Users/ondrej/mambaforge/envs/scipy-dev/lib/python3.10/site-packages/pluggy/_manager.py", line 80 in _hookexec File "/Users/ondrej/mambaforge/envs/scipy-dev/lib/python3.10/site-packages/pluggy/_hooks.py", line 265 in __call__ File "/Users/ondrej/mambaforge/envs/scipy-dev/lib/python3.10/site-packages/_pytest/runner.py", line 221 in call_and_report File "/Users/ondrej/mambaforge/envs/scipy-dev/lib/python3.10/site-packages/_pytest/runner.py", line 130 in runtestprotocol File "/Users/ondrej/mambaforge/envs/scipy-dev/lib/python3.10/site-packages/_pytest/runner.py", line 111 in pytest_runtest_protocol File "/Users/ondrej/mambaforge/envs/scipy-dev/lib/python3.10/site-packages/pluggy/_callers.py", line 39 in _multicall File "/Users/ondrej/mambaforge/envs/scipy-dev/lib/python3.10/site-packages/pluggy/_manager.py", line 80 in _hookexec File "/Users/ondrej/mambaforge/envs/scipy-dev/lib/python3.10/site-packages/pluggy/_hooks.py", line 265 in __call__ File "/Users/ondrej/mambaforge/envs/scipy-dev/lib/python3.10/site-packages/_pytest/main.py", line 347 in pytest_runtestloop File "/Users/ondrej/mambaforge/envs/scipy-dev/lib/python3.10/site-packages/pluggy/_callers.py", line 39 in _multicall File "/Users/ondrej/mambaforge/envs/scipy-dev/lib/python3.10/site-packages/pluggy/_manager.py", line 80 in _hookexec File "/Users/ondrej/mambaforge/envs/scipy-dev/lib/python3.10/site-packages/pluggy/_hooks.py", line 265 in __call__ File "/Users/ondrej/mambaforge/envs/scipy-dev/lib/python3.10/site-packages/_pytest/main.py", line 322 in _main File "/Users/ondrej/mambaforge/envs/scipy-dev/lib/python3.10/site-packages/_pytest/main.py", line 268 in wrap_session File "/Users/ondrej/mambaforge/envs/scipy-dev/lib/python3.10/site-packages/_pytest/main.py", line 315 in pytest_cmdline_main File "/Users/ondrej/mambaforge/envs/scipy-dev/lib/python3.10/site-packages/pluggy/_callers.py", line 39 in _multicall File "/Users/ondrej/mambaforge/envs/scipy-dev/lib/python3.10/site-packages/pluggy/_manager.py", line 80 in _hookexec File "/Users/ondrej/mambaforge/envs/scipy-dev/lib/python3.10/site-packages/pluggy/_hooks.py", line 265 in __call__ File "/Users/ondrej/mambaforge/envs/scipy-dev/lib/python3.10/site-packages/_pytest/config/__init__.py", line 164 in main File "/Users/ondrej/mambaforge/envs/scipy-dev/lib/python3.10/site-packages/scipy/_lib/_testutils.py", line 69 in __call__ File "", line 1 in File "/Users/ondrej/mambaforge/envs/scipy-dev/lib/python3.10/site-packages/IPython/core/interactiveshell.py", line 3378 in run_code File "/Users/ondrej/mambaforge/envs/scipy-dev/lib/python3.10/site-packages/IPython/core/interactiveshell.py", line 3318 in run_ast_nodes File "/Users/ondrej/mambaforge/envs/scipy-dev/lib/python3.10/site-packages/IPython/core/interactiveshell.py", line 3139 in run_cell_async File "/Users/ondrej/mambaforge/envs/scipy-dev/lib/python3.10/site-packages/IPython/core/async_helpers.py", line 129 in _pseudo_sync_runner File "/Users/ondrej/mambaforge/envs/scipy-dev/lib/python3.10/site-packages/IPython/core/interactiveshell.py", line 2940 in _run_cell File "/Users/ondrej/mambaforge/envs/scipy-dev/lib/python3.10/site-packages/IPython/core/interactiveshell.py", line 2885 in run_cell File "/Users/ondrej/mambaforge/envs/scipy-dev/lib/python3.10/site-packages/IPython/terminal/interactiveshell.py", line 678 in interact File "/Users/ondrej/mambaforge/envs/scipy-dev/lib/python3.10/site-packages/IPython/terminal/interactiveshell.py", line 685 in mainloop File "/Users/ondrej/mambaforge/envs/scipy-dev/lib/python3.10/site-packages/IPython/terminal/ipapp.py", line 318 in start File "/Users/ondrej/mambaforge/envs/scipy-dev/lib/python3.10/site-packages/traitlets/config/application.py", line 978 in launch_instance File "/Users/ondrej/mambaforge/envs/scipy-dev/lib/python3.10/site-packages/IPython/__init__.py", line 124 in start_ipython File "/Users/ondrej/mambaforge/envs/scipy-dev/bin/ipython", line 10 in Extension modules: numpy.core._multiarray_umath, numpy.core._multiarray_tests, numpy.linalg._umath_linalg, numpy.fft._pocketfft_internal, numpy.random._common, numpy.random.bit_generator, numpy.random._bounded_integers, numpy.random._mt19937, numpy.random.mtrand, numpy.random._philox, numpy.random._pcg64, numpy.random._sfc64, numpy.random._generator, scipy._lib._ccallback_c, numpy.linalg.lapack_lite, scipy._lib._fpumode, scipy._lib._test_ccallback, scipy.sparse._sparsetools, _csparsetools, scipy.sparse._csparsetools, scipy.sparse.linalg._isolve._iterative, scipy.linalg._fblas, scipy.linalg._flapack, scipy.linalg._cythonized_array_utils, scipy.linalg._flinalg, scipy.linalg._solve_toeplitz, scipy.linalg._matfuncs_sqrtm_triu, scipy.linalg.cython_lapack, scipy.linalg.cython_blas, scipy.linalg._matfuncs_expm, scipy.linalg._decomp_update, scipy.sparse.linalg._dsolve._superlu, scipy.sparse.linalg._eigen.arpack._arpack, scipy.sparse.csgraph._tools, scipy.sparse.csgraph._shortest_path, scipy.sparse.csgraph._traversal, scipy.sparse.csgraph._min_spanning_tree, scipy.sparse.csgraph._flow, scipy.sparse.csgraph._matching, scipy.sparse.csgraph._reordering, scipy.spatial._ckdtree, scipy._lib.messagestream, scipy.spatial._qhull, scipy.spatial._voronoi, scipy.spatial._distance_wrap, scipy.spatial._hausdorff, scipy.special._ufuncs_cxx, scipy.special._ufuncs, scipy.special._specfun, scipy.special._comb, scipy.special._ellip_harm_2, scipy.spatial.transform._rotation, scipy.cluster._vq, scipy.cluster._hierarchy, scipy.cluster._optimal_leaf_ordering, matplotlib._c_internal_utils, PIL._imaging, matplotlib._path, kiwisolver._cext, matplotlib._image, _cffi_backend, unicodedata2, scipy._lib._uarray._uarray, scipy.fftpack.convolve, scipy.optimize._minpack2, scipy.optimize._group_columns, scipy.optimize._trlib._trlib, scipy.optimize._lbfgsb, _moduleTNC, scipy.optimize._moduleTNC, scipy.optimize._cobyla, scipy.optimize._slsqp, scipy.optimize._minpack, scipy.optimize._lsq.givens_elimination, scipy.optimize._zeros, scipy.optimize.__nnls, scipy.optimize._highs.cython.src._highs_wrapper, scipy.optimize._highs._highs_wrapper, scipy.optimize._highs.cython.src._highs_constants, scipy.optimize._highs._highs_constants, scipy.linalg._interpolative, scipy.optimize._bglu_dense, scipy.optimize._lsap, scipy.optimize._direct, scipy.integrate._odepack, scipy.integrate._quadpack, scipy.integrate._vode, scipy.integrate._dop, scipy.integrate._lsoda, scipy.integrate._test_odeint_banded, scipy.ndimage._nd_image, _ni_label, scipy.ndimage._ni_label, scipy.special.cython_special, scipy.stats._stats, scipy.stats.beta_ufunc, scipy.stats._boost.beta_ufunc, scipy.stats.binom_ufunc, scipy.stats._boost.binom_ufunc, scipy.stats.nbinom_ufunc, scipy.stats._boost.nbinom_ufunc, scipy.stats.hypergeom_ufunc, scipy.stats._boost.hypergeom_ufunc, scipy.stats.ncf_ufunc, scipy.stats._boost.ncf_ufunc, scipy.stats.ncx2_ufunc, scipy.stats._boost.ncx2_ufunc, scipy.stats.nct_ufunc, scipy.stats._boost.nct_ufunc, scipy.stats.skewnorm_ufunc, scipy.stats._boost.skewnorm_ufunc, scipy.stats.invgauss_ufunc, scipy.stats._boost.invgauss_ufunc, scipy.interpolate._fitpack, scipy.interpolate.dfitpack, scipy.interpolate._bspl, scipy.interpolate._ppoly, scipy.interpolate.interpnd, scipy.interpolate._rbfinterp_pythran, scipy.stats._biasedurn, scipy.stats._levy_stable.levyst, scipy.stats._stats_pythran, scipy.stats._statlib, scipy.stats._mvn, scipy.stats._sobol, scipy.stats._qmc_cy, scipy.io.matlab._mio_utils, scipy.io.matlab._streams, scipy.io.matlab._mio5_utils, scipy.io._test_fortran, scipy.ndimage._ctest, _cytest, scipy.ndimage._cytest, scipy.odr.__odrpack, scipy.optimize.cython_optimize._zeros, scipy.signal._sigtools, scipy.signal._max_len_seq_inner, scipy.signal._upfirdn_apply, scipy.signal._spline, scipy.signal._sosfilt, scipy.signal._spectral, scipy.signal._peak_finding_utils, gmpy2.gmpy2, scipy.sparse.linalg._propack._spropack, scipy.sparse.linalg._propack._dpropack, scipy.sparse.linalg._propack._cpropack, scipy.sparse.linalg._propack._zpropack, scipy.special._test_round, scipy.stats.unuran_wrapper, scipy.stats._unuran.unuran_wrapper, psutil._psutil_osx, psutil._psutil_posix, scipy._lib._test_deprecation_def, scipy._lib._test_deprecation_call (total: 154) zsh: segmentation fault ipython ```

So there are some failures, but I think things look pretty good so far.

certik commented 2 years ago

To just compile minpack, do:

diff --git a/wrapper.sh b/wrapper.sh
index 7c32d024f..6a1ed6881 100755
--- a/wrapper.sh
+++ b/wrapper.sh
@@ -5,7 +5,7 @@ set -ex
 dir="$HOME/repos/scipy"
 A="$@"
 Alast="${A##* }"
-if [[ "${Alast: -2}" == ".f" ]]; then
+if [[ "${Alast: -2}" == ".f" && "$Alast" == *"minpack"* ]]; then
     echo $Alast  >> $dir/log.txt
     lfortran --fixed-form fmt --no-color $Alast > ${Alast}90
     gfortran.actual -ffree-line-length-none ${A}90

Then it just compiles the following files:

../../scipy/optimize/minpack/chkder.f
../../scipy/optimize/minpack/dogleg.f
../../scipy/optimize/minpack/dpmpar.f
../../scipy/optimize/minpack/enorm.f
../../scipy/optimize/minpack/fdjac1.f
../../scipy/optimize/minpack/fdjac2.f
../../scipy/optimize/minpack/hybrd.f
../../scipy/optimize/minpack/hybrd1.f
../../scipy/optimize/minpack/hybrj.f
../../scipy/optimize/minpack/hybrj1.f
../../scipy/optimize/minpack/lmder.f
../../scipy/optimize/minpack/lmder1.f
../../scipy/optimize/minpack/lmdif.f
../../scipy/optimize/minpack/lmdif1.f
../../scipy/optimize/minpack/lmpar.f
../../scipy/optimize/minpack/lmstr.f
../../scipy/optimize/minpack/lmstr1.f
../../scipy/optimize/minpack/qform.f
../../scipy/optimize/minpack/qrfac.f
../../scipy/optimize/minpack/qrsolv.f
../../scipy/optimize/minpack/r1mpyq.f
../../scipy/optimize/minpack/r1updt.f
../../scipy/optimize/minpack/rwupdt.f
../../scipy/optimize/minpack2/dcsrch.f
../../scipy/optimize/minpack2/dcstep.f

And the test results are:

[...]
../optimize/tests/test_minpack.py ...................................... [ 42%]
...........................                                              [ 42%]
[...]
= 24 failed, 37647 passed, 2207 skipped, 12238 deselected, 135 xfailed, 13 xpassed in 302.55s (0:05:02) =

Which is the same amount of failures as I was getting above, so I think LFortran is parsing all of minpack correctly to AST.

konradha commented 2 years ago

My output (Ubuntu 22.04) original

= 37692 passed, 2135 skipped, 12238 deselected, 160 xfailed, 13 xpassed, 26 errors in 473.30s (0:07:53) =

Haven't fully figured out the other steps to compile the generated .f90 files, but will get there later today :)

Thanks for the detailed plan.

certik commented 2 years ago

I think this issue is fixed. See this answer for more details: https://fortran-lang.discourse.group/t/lfortran-can-now-parse-all-of-scipy-to-ast/4479/8.

The next step is to compile some well defined subset of SciPy fully, link with SciPy and all tests to pass. We are focusing on Minpack: #512.