U
    a¨+dÉ  ã                   @   s   ddd„Z ddd„ZdS )	é   ç      ð?c                    s(   d| ‰ ‡ fdd„}||| | | ƒ S )a	  
    abruptness
      negative abruptness (>-1): speed up down up
      zero abruptness : no effect
      positive abruptness: speed down up down
      
    soonness
      for positive abruptness, determines how soon the
      speedup occurs (0<soonness < inf)
    r   c                    s8   ‡fdd„‰ ‡ fdd„}| dk ˆ | ƒ | dk|| ƒ  S )Nc                    s   ddˆ   | ˆ   S )Nç      à?r   © ©Út©Úar   ú@/tmp/pip-unpacked-wheel-0yp4gafk/moviepy/video/fx/accel_decel.pyÚ<lambda>   ó    z+f_accel_decel.<locals>._f.<locals>.<lambda>c                    s   dˆ d|  ƒ S )Nr   r   r   ©Úf1r   r	   r
      r   r   r   )r   Úf2r   r   r	   Ú_f   s    zf_accel_decel.<locals>._fr   )r   Zold_dZnew_dÚ
abruptnessÚsoonnessr   r   r   r	   Úf_accel_decel   s    r   Nc                    s0   ˆdkrˆj ‰‡ ‡‡‡fdd„}ˆ |¡ ˆ¡S )aM  

    new_duration
      If None, will be that of the current clip.

    abruptness
      negative abruptness (>-1): speed up down up
      zero abruptness : no effect
      positive abruptness: speed down up down
      
    soonness
      for positive abruptness, determines how soon the
      speedup occurs (0<soonness < inf)
    Nc                    s   t | ˆjˆˆ ˆƒS )N)r   Údurationr   ©r   ÚclipÚnew_durationr   r   r	   r
   )   s   
 ÿzaccel_decel.<locals>.<lambda>)r   Zfl_timeZset_duration)r   r   r   r   Úflr   r   r	   Úaccel_decel   s    r   )r   r   )Nr   r   )r   r   r   r   r   r	   Ú<module>   s   
