o
    iP
                     @   sJ   d Z ddlZddlZejddddddZd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              	   C   s  t | jd d }tj| jd |jd ftjd}t|tj}t|jd }t	|jd D ]}|d d |f }t
|}	| |	  }
||	  }d}tt||d dD ]^}|| d  }|
| d  }tjt|j|t|j|}t||| }tt|d }t|d | |k }t|d | |k }t|d | |k }||@ |@ }|r nqU||d d |f< ||| d |f< |||< q0|||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slope r5   _/home/ubuntu/veenaModal/venv/lib/python3.10/site-packages/numba/tests/parfor_iss9490_usecase.py
stable_fit   s6    


"
r7   c            
      C   s|   t jd d} d}t j| }t j|}t||\}}}t||\}}}	t j|| t j|| t j||	 d S )Nr   )
      )r8      )r   randomseedr7   py_functestingassert_allclose)
X_shapey_shaper    r!   got_betagot_residuals
got_stableexp_betaexp_residuals
exp_stabler5   r5   r6   check>   s   rH   __main__)r   )__doc__r   numpyr   jitr7   rH   __name__r5   r5   r5   r6   <module>   s    %
