
    J/PhP
                     |    d Z ddlZddlZ ej        dd          d	d            Zd Zedk    r e             dS dS )
a  
This is a testcase for https://github.com/numba/numba/issues/9490.
The bug is very sensitive to the control-flow and variable uses.
It is impossible to shrink the reproducer in any meaningful way.

The test is also sensitive to PYTHONHASHSEED.
PYTHONHASHSEED=1 will trigger the bug.

Example of traceback:

  File "/numba/parfors/parfor.py", line 2070, in _arrayexpr_to_parfor
    index_vars, loopnests = _mk_parfor_loops(pass_states.typemap, size_vars,
                                             scope, loc)
  File "/numba/parfors/parfor.py", line 1981, in _mk_parfor_loops
    for size_var in size_vars:
TypeError: Failed in nopython mode pipeline (step: convert to parfors)
'NoneType' object is not iterable
    NT)nopythonparallel   c           	         t          | j        d         dz            }t          j        | j        d         |j        d         ft          j                  }t          j        |t          j                  }t          j        |j        d                   }t          j	        |j        d                   D ]}|d d |f         }t          j
        |          }	| |	          }
||	          }d}t          t          |          |dz
  d          D ]}|| d          }|
| d          }t          j                            t          j        |j        |          t          j        |j        |                    }t          j        ||          |z
  }t          j        t          j        |dz                      }t          j        |d                   |z  |k     }t          j        |d                   |z  |k     }t          j        |d                   |z  |k     }||z  |z  }|r n||d d |f<   ||| d |f<   |||<   |||                    t          j                  fS )	N   g      ?)dtypeF   r   )intshapenpzerosfloat64	full_likenanemptynumbaprangeisnanrangelenlinalgsolvedotTsqrtmeanfabsastypebool_)Xy	thresholdmin_obsbeta	residualsstableidxy_subisnaX_sub	is_stablejdxy_X_beta_sub	resid_subrmsefirstlastslopes                        b/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/numba/tests/parfor_iss9490_usecase.py
stable_fitr8      s0   !'!*s"##G8QWQZ,BJ???DQ''IXqwqz##F|AGAJ''    !!!S&	x4%te	 UWq["55 	 	C tuuBtuuByrvbdB'7'7b9I9IJJHr8,,r1I7279>2233DGIaL))D09<E79R=))D09<DGHQK((4/);E,I   QQQV )	3$%%*sFMM"(3333    c                     t           j                            d           d} d}t           j                            |           }t           j                            |          }t          ||          \  }}}t                              ||          \  }}}	t           j                            ||           t           j                            ||           t           j                            ||	           d S )Nr   )
      )r;      )r   randomseedr8   py_functestingassert_allclose)
X_shapey_shaper"   r#   got_betagot_residuals
got_stableexp_betaexp_residuals
exp_stables
             r7   checkrK   >   s    INN1GG
	!!A
	!!A*4Q*:*:'HmZ*4*<*<Q*B*B'HmZJx222J}m<<<Jz:66666r9   __main__)r   )__doc__r   numpyr   jitr8   rK   __name__ r9   r7   <module>rR      s    &      D4((("4 "4 "4 )("4J7 7 7 z	EGGGGG r9   