o
    ?ß±i2
  ã                   @   sJ  d Z ddlmZ ddlmZ 									ddededed	ed
edB dedB dedB dedB dedB dedB dededB dee	eef B fdd„Z
							d dededede	eB de	eB de	eB d	e	eB dedB dededB dee	eef B fdd„Z			d!dedededededB dededB dee	eef B fdd„ZdS )"z¼
Imaginaire4 Attention Subpackage:
Unified implementation for all Attention implementations.

NATTEN Backend: intermediate API stubs
Always safe to import (as long as torch is available.)
é    )ÚTensor)Ú
CausalTypeFNÚqueryÚkeyÚvalueÚ	is_causalÚcausal_typeÚscaleÚcumulative_seqlen_QÚcumulative_seqlen_KVÚmax_seqlen_QÚmax_seqlen_KVÚ
return_lseÚbackend_kwargsÚreturnc                 C   ó   t dƒ‚)NzsTried to run NATTEN attention, but it is not supported / available. Try running with debug logs enabled to see why.©ÚRuntimeError)r   r   r   r   r   r	   r
   r   r   r   r   r   © r   ú`/data/cameron/vidgen/cosmos-predict2.5/cosmos_predict2/_src/imaginaire/attention/natten/stubs.pyÚnatten_attention   s   ÿr   éÿÿÿÿé   Úwindow_sizeÚstrideÚdilationc
           
      C   r   )Nz‡Tried to run NATTEN's Multi-Dimensional attention, but it is not supported / available. Try running with debug logs enabled to see why.r   )
r   r   r   r   r   r   r   r	   r   r   r   r   r   Únatten_multi_dim_attention1   s   ÿr   Úmetadatac                 C   r   )NzœTried to run NATTEN's variable-length/size Multi-Dimensional attention, but it is not supported / available. Try running with debug logs enabled to see why.r   )r   r   r   r   r	   r   r   r   r   r   Ú!natten_multi_dim_attention_varlenC   s   	ÿr   )	FNNNNNNFN)r   r   r   FNFN)NFN)Ú__doc__Útorchr   Ú/cosmos_predict2._src.imaginaire.attention.masksr   ÚboolÚfloatÚintÚdictÚtupler   r   r   r   r   r   r   Ú<module>   s²   ôÿþýüûúùø	÷
öõô
óöÿþýüûúùø	÷
ö
õùÿþýüûúùø