
    0;ji                         d Z ddlmZmZ  G d de          Z G d de          Z G d d	e          Z G d
 de          ZdS )z/
Defines CPU Options for use in the CPU target
    )ABCMetaabstractmethodc                   :    e Zd ZdZedefd            ZdefdZdS )AbstractOptionValuez2Abstract base class for custom option values.
    returnc                     dS )z*Returns an encoding of the values
        N selfs    P/root/voice-cloning/.venv/lib/python3.11/site-packages/numba/core/cpu_options.pyencodezAbstractOptionValue.encode
   s	     	    c                 J    | j         j         d|                                  dS )N())	__class____name__r   r
   s    r   __repr__zAbstractOptionValue.__repr__   s&    .)<<DKKMM<<<<r   N)r   
__module____qualname____doc__r   strr   r   r	   r   r   r   r      s^             ^
=# = = = = = =r   r   )	metaclassc                   4    e Zd ZdZd Zd ZeZdefdZd Z	dS )FastMathOptionsz9
    Options for controlling fast math optimization.
    c                 6   h d}t          |t                    r |j                                        | _        d S |du r
dh| _        d S |du rt	                      | _        d S t          |t                    r"||z
  }|rt          d|z            || _        d S t          |t                    r]t	          |                                          |z
  }|rt          d|z            d |                                D             | _        d S d}t          |          )N>   afnnszarcpfastninfnnanreassoccontractTr    FzUnrecognized fastmath flags: %sc                     h | ]	\  }}||
S r	   r	   ).0venables      r   	<setcomp>z+FastMathOptions.__init__.<locals>.<setcomp>0   s!    EEE	6fE!EEEr   z<Expected fastmath option(s) to be either a bool, dict or set)	
isinstancer   flagscopyset
ValueErrordictkeysitems)r   valuevalid_flagsinvalidmsgs        r   __init__zFastMathOptions.__init__   s-   
 
 
 e_-- 	"))++DJJJd]] DJJJe^^DJJJs## 	"k)G N !BW!LMMMDJJJt$$ 	"%**,,''+5G N !BW!LMMMEEU[[]]EEEDJJJPCS//!r   c                 *    t          | j                  S N)boolr+   r
   s    r   __bool__zFastMathOptions.__bool__5   s    DJr   r   c                 *    t          | j                  S r8   )r   r+   r
   s    r   r   zFastMathOptions.encode:   s    4:r   c                 l    t          |          t          |           u r| j        |j        k    S t          S r8   )typer+   NotImplementedr   others     r   __eq__zFastMathOptions.__eq__=   .    ;;$t**$$:,,r   N)
r   r   r   r   r6   r:   __nonzero__r   r   rA   r	   r   r   r   r      sm         " " "8      K        r   r   c                   4    e Zd ZdZdZd Zd Zd ZdefdZ	dS )	ParallelOptionsz7
    Options for controlling auto parallelization.
    )	enabledcomprehension	reductioninplace_binopsetitemnumpystencilfusionprangec                    t          |t                    rA|| _        || _        || _        || _        || _        || _        || _        || _	        || _
        d S t          |t                    r	d| _        |                    dd          | _        |                    dd          | _        |                    dd          | _        |                    dd          | _        |                    dd          | _        |                    dd          | _        |                    dd          | _	        |                    d	d          | _
        |r&d
|                                z  }t          |          d S t          |t                    rn|j        | _        |j        | _        |j        | _        |j        | _        |j        | _        |j        | _        |j        | _        |j	        | _	        |j
        | _
        d S d}t!          |          )NTrG   rH   rI   rJ   rK   rL   rM   rN   z!Unrecognized parallel options: %sz4Expect parallel option to be either a bool or a dict)r*   r9   rF   rG   rH   rI   rJ   rK   rL   rM   rN   r/   popr0   	NameErrorrE   r.   )r   r2   r5   s      r   r6   zParallelOptions.__init__J   s   eT"" #	" DL!&D"DN!&D DLDJ DLDKDKKKt$$ 	"DL!&?D!A!AD"YY{D99DN!&?D!A!AD 99Y55DL7D11DJ 99Y55DL))Hd33DK))Hd33DK %9EJJLLHnn$% % // 	" =DL!&!4D"_DN!&!4D =DLDJ =DL,DK,DKKKHCS//!r   c                 *      fd j         D             S )z"Get values as dictionary.
        c                 2    i | ]}|t          |          S r	   )getattr)r&   kr   s     r   
<dictcomp>z/ParallelOptions._get_values.<locals>.<dictcomp>s   s%    <<<74##<<<r   )	__slots__r
   s   `r   _get_valueszParallelOptions._get_valuesp   s!     =<<<T^<<<<r   c                     t          |          t          |           u r*|                                 |                                k    S t          S r8   )r=   rX   r>   r?   s     r   rA   zParallelOptions.__eq__u   sB    ;;$t**$$##%%):):)<)<<<r   r   c                     d                     d |                                                                 D                       S )Nz, c              3   *   K   | ]\  }}| d | V  dS )=Nr	   )r&   rU   r'   s      r   	<genexpr>z)ParallelOptions.encode.<locals>.<genexpr>{   s0      KK1AKKKKKKr   )joinrX   r1   r
   s    r   r   zParallelOptions.encodez   s;    yyKK0@0@0B0B0H0H0J0JKKKKKKr   N)
r   r   r   r   rW   r6   rX   rA   r   r   r	   r   r   rE   rE   C   sv         DI$" $" $"L= = =
  
L L L L L L Lr   rE   c                       e Zd ZdZd Zed             Zed             Zed             Zed             Z	d Z
defd	Zd
S )InlineOptionsz*
    Options for controlling inlining
    c                     d}t          |t                    r|dv rd}nt          |d          }|r	|| _        d S d|z  }t	          |          )NF)alwaysneverT__call__z~kwarg 'inline' must be one of the strings 'always' or 'never', or it can be a callable that returns True/False. Found value %s)r*   r   hasattr_inliner.   )r   r2   okr5   s       r   r6   zInlineOptions.__init__   sj    eS!! 	,+++
++B 	" DLLL$&+,C S//!r   c                     | j         dk    S )z&
        True if never inline
        rc   rf   r
   s    r   is_never_inlinezInlineOptions.is_never_inline   s    
 |w&&r   c                     | j         dk    S )z'
        True if always inline
        rb   ri   r
   s    r   is_always_inlinezInlineOptions.is_always_inline   s    
 |x''r   c                      | j         p| j         S )z2
        True if a cost model is provided
        )rl   rj   r
   s    r   has_cost_modelzInlineOptions.has_cost_model   s    
 )AT-ABBr   c                     | j         S )z
        The raw value
        ri   r
   s    r   r2   zInlineOptions.value   s    
 |r   c                 l    t          |          t          |           u r| j        |j        k    S t          S r8   )r=   r2   r>   r?   s     r   rA   zInlineOptions.__eq__   rB   r   r   c                 *    t          | j                  S r8   )reprrf   r
   s    r   r   zInlineOptions.encode   s    DL!!!r   N)r   r   r   r   r6   propertyrj   rl   rn   r2   rA   r   r   r	   r   r   r`   r`   ~   s         " " "  ' ' X' ( ( X( C C XC   X  
" " " " " " "r   r`   N)r   abcr   r   r   r   rE   r`   r	   r   r   <module>ru      s     ( ' ' ' ' ' ' '
= 
= 
= 
= 
=G 
= 
= 
= 
=, , , , ,) , , ,^8L 8L 8L 8L 8L) 8L 8L 8Lv7" 7" 7" 7" 7"' 7" 7" 7" 7" 7"r   