+
    UV-j¥  ã                  ó2   € ^ RI Ht ^ RIHt  ! R R4      tR# )é    )ÚannotationsNc                  óx   € ] tR t^tR R lt]R R l4       t]R R l4       t]RR/R	 R
 ll4       t	R R lt
RtR# )ÚFlowMatchEulerDiscreteSchedulerc               ó$   € V ^8„  d   QhRRRRRR/# )é   Úimage_seq_lenÚintÚnum_inference_stepsÚreturnÚNone© )Úformats   "Úo/Volumes/fast/ai/experiments/ui-tars-smoke/.venv/lib/python3.14/site-packages/mlx_vlm/models/flux2/scheduler.pyÚ__annotate__Ú,FlowMatchEulerDiscreteScheduler.__annotate__   s!   € ÷ 
ñ 
¨ð 
À3ð 
È4ñ 
ó    c               	óF   € V P                  VVR 7      w  V n        V n        R# ))r   r
   N)Úget_timesteps_and_sigmasÚ	timestepsÚsigmas)Úselfr   r
   s   &$$r   Ú__init__Ú(FlowMatchEulerDiscreteScheduler.__init__   s'   € Ø&*×&CÑ&CØ'Ø 3ð 'Dó '
Ñ#ˆŒ˜žr   c               ó$   € V ^8„  d   QhRRRRRR/# )r   r   r	   Ú	num_stepsr   Úfloatr   )r   s   "r   r   r      s!   € ÷ 	(ñ 	(¨Sð 	(¸Sð 	(ÀUñ 	(r   c                	óö   € R Rr2RRrTV R8”  d   \        W@,          V,           4      # W@,          V,           pW ,          V,           pWg,
          R,          pVRV,          ,
          p	\        W�,          V	,           4      # )gÒúÖT	è?gÁÅ’_þ?g  w:Â/&?gDèwÌ:Ý?iÌ  g     Àg@g      i@)r   )
r   r   Úa1Úb1Úa2Úb2Úm_200Úm_10ÚaÚbs
   &&        r   Ú_compute_empirical_muÚ5FlowMatchEulerDiscreteScheduler._compute_empirical_mu   sq   € à ˆBØ˜ZˆBØ˜4ÔÜ˜Õ+¨bÕ0Ó1Ð1ØÕ" RÕ'ˆØÕ! BÕ&ˆØ�\˜UÕ"ˆØ�E˜A•IÕˆÜ�Q•] QÕ&Ó'Ð'r   c               ó(   € V ^8„  d   QhRRRRRRRR/# )r   Úmur   Úsigma_powerÚtúmx.arrayr   r   )r   s   "r   r   r      s2   € ÷ Lñ LØðLØ %ðLØ*2ðLà	ñLr   c                	óœ   € \         P                  ! V 4      \         P                  ! V 4      R V,          R ,
          V,          ,           ,          # )ç      ð?)ÚmxÚexp)r)   r*   r+   s   &&&r   Ú_time_shift_exponential_arrayÚ=FlowMatchEulerDiscreteScheduler._time_shift_exponential_array   s1   € ô �vŠv�b‹zœRŸVšV B›Z¨C°!­G°c­M¸kÕ+IÕJÕKÐKr   Únum_train_timestepsiè  c               ó(   € V ^8„  d   QhRRRRRRRR/# )r   r   r	   r
   r3   r   ztuple[mx.array, mx.array]r   )r   s   "r   r   r       s4   € ÷ !ñ !ð ð!ð !ð	!ð
 !ð!ð 
#ñ!r   c               	ó4  € \         P                  ! R R V,          V\         P                  R7      pV P                  WR7      pV P	                  VR V4      pWC,          p\         P
                  ! V\         P                  ! RVP                  R7      .^ R7      pWd3# )r.   )Údtype)r   r   )Úaxis©é   )r/   ÚlinspaceÚfloat32r&   r1   ÚconcatenateÚzerosr6   )Úclsr   r
   r3   r   r)   r   s   &$$$   r   r   Ú8FlowMatchEulerDiscreteScheduler.get_timesteps_and_sigmas   sŒ   € ô —’Ø�Ð*Õ*Ð,?ÄrÇzÁzô
ˆð ×&Ñ&Ø'ð 'ó 
ˆð ×2Ñ2°2°s¸FÓCˆØÕ0ˆ	Ü—’ ¬¯ª°$¸f¿l¹lÔ)KÐ LÐSTÔUˆØÐ Ð r   c               ó(   € V ^8„  d   QhRRRRRRRR/# )r   Únoiser,   Ú
step_indexr	   Úlatentsr   r   )r   s   "r   r   r   2   s(   € ÷ :ñ :˜Xð :°3ð :Àð :Èhñ :r   c               	óè   € V P                   V^,           ,          V P                   V,          ,
          P                  VP                  4      pW4VP                  VP                  4      ,          ,           # r8   )r   Úastyper6   )r   rA   rB   rC   Údts   &$$$ r   ÚstepÚ$FlowMatchEulerDiscreteScheduler.step2   sQ   € Ø�k‰k˜* q�.Õ)¨D¯K©K¸
Õ,CÕC×KÑKØ�M‰Mó
ˆð ˜eŸl™l¨7¯=©=Ó9Õ9Õ9Ð9r   )r   r   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   Ústaticmethodr&   r1   Úclassmethodr   rG   Ú__static_attributes__r   r   r   r   r      sY   † õ
ð ô	(ó ð	(ð ôLó ðLð
 ð!ð
 $(ö!ó ð!÷$:ñ :r   r   )Ú
__future__r   Úmlx.coreÚcorer/   r   r   r   r   Ú<module>rS      s   ðÝ "å ÷0:ó 0:r   