
    `i9              	           d dl Z d dlmZmZmZmZmZ d dlmZ ee ed           ed           G d de                                                          Z	e
dk    r e j                     dS dS )	    N)CUDATestCaseskip_if_cudadevrt_missingskip_on_cudasimskip_unless_cc_60skip_if_mvc_enabled)captured_stdoutzCG not supported with MVCz4cudasim doesn't support cuda import at non-top-levelc                   2     e Zd ZdZ fdZ fdZd Z xZS )TestLaplacez%
    Test simple vector addition
    c                     t                      | _        | j                                         t                                                       d S N)r   _captured_stdout	__enter__supersetUpself	__class__s    ~/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/numba/cuda/tests/doc_examples/test_laplace.pyr   zTestLaplace.setUp   s;     / 1 1'')))    c                     | j                             d d d            t                                                       d S r   )r   __exit__r   tearDownr   s    r   r   zTestLaplace.tearDown   s:    &&tT4888r   c                    d}dd l }ddlm d}|                    |          }d|d<                       |          }                    |          }d}|rPdd lm} |                    d          \  }	}
|	                    |
                    t          |                    |                                d	d
d           |                    dd           |                    dd           |                    dd           |
                    |
                                d           |
                    |
                                d           |                    dt          |                     |                    dd           |                    d           j        fd            } |                    t          |                    |||d           |                                }|rH|                    d          \  }	}
|	                    |
                    t          |                    |d	d
d           |                    d| d           |                    dd           |                    dd           |
                    |
                                d           |
                    |
                                d           |                    dt3          |                     |                    dt          |                     |                    d           |j                            |                                d           d S )NFr   )cudai  i'  i  )gQ%@g(\@)figsize   *black)lwmarkercolorzInitial State   )fontsizePositionTemperature   i'  zlaplace_initial.svgc                                         d          }|t          |           k    rd S j                                        }t	          |          D ]}|dz  dk    r| }|}n|}| }||         }	|dk    r|	|||dz            d|	z  z
  z  z   }
nQ|t          |          dz
  k    r|	|||dz
           d|	z  z
  z  z   }
n#|	|||dz
           d|	z  z
  ||dz            z   z  z   }
|
||<   |                                 d S )N      r   )gridlencg	this_gridrangesync)buf_0buf_1	timestepskir*   stepdata	next_data	curr_temp	next_tempr   s              r   solve_heat_equationz8TestLaplace.test_ex_laplace.<locals>.solve_heat_equationN   s@   		!A CJJ 7$$&&Di((  1H?? D %II D %I !G	 66 )Aa!eI1N,O OII#d))a-'' )Aa!eI1N,O OII !*AQUq9}5QUC- !I
  )	! 		; r   g      ?zT = zlaplace_final.svg)numpynumbar   zeros	to_devicedevice_array_likematplotlib.pyplotpyplotsubplotsplotaranger+   copy_to_hosttitlexlabelylabel
set_xticks
get_xticks
set_yticks
get_yticksxlimylimsavefigjitforallmaxtestingassert_allclosesum)r   rC   npsizer6   r0   r1   niterpltfigaxr:   resultsr   s                @r   test_ex_laplacezTestLaplace.test_ex_laplace   sr     	 xx~~ S	t$$ &&u--  	/++++++ll+@lAAGCHH		#e**%%""$$     IIoI333JJzBJ///JJ}rJ222MM"--//BM777MM"--//BM777HHQD		"""HHQKK-... 
'	 '	 '	 '	 
'	V 	.""3t99--5%	
 	
 	

 $$&& 	-ll+@lAAGCHH		#g,,''A	     IInUnnrI222JJzBJ///JJ}rJ222MM"--//BM777MM"--//BM777HHQG%%%HHQG%%%KK+,,, 	
""7;;==%88888r   )__name__
__module____qualname____doc__r   r   r]   __classcell__)r   s   @r   r
   r
   	   sq        
         
z9 z9 z9 z9 z9 z9 z9r   r
   __main__)unittestnumba.cuda.testingr   r   r   r   r   numba.tests.supportr   r
   r^   main r   r   <module>ri      s   5 5 5 5 5 5 5 5 5 5 5 5 5 5 0 / / / / / 011GHHJ9 J9 J9 J9 J9, J9 J9 IH 21  J9Z zHMOOOOO r   