a
    dj                     @   sX   d dl mZ d dlmZ d dlmZ G dd deZG dd deZG dd	 d	eZd
S )   )FixedGridODESolver)rk4_alt_step_func)Perturbc                   @   s   e Zd ZdZdd ZdS )Eulerr   c                 C   s(   |||| j rtjntjd}|| |fS )Nperturbr   r   NEXTNONEselffunct0dtt1y0f0 r   e/var/www/html/stable-diffusion-webui/venv/lib/python3.9/site-packages/torchdiffeq/_impl/fixed_grid.py
_step_func	   s    zEuler._step_funcN__name__
__module____qualname__orderr   r   r   r   r   r      s   r   c                   @   s   e Zd ZdZdd ZdS )Midpoint   c           	      C   sF   d| }|||| j rtjntjd}|||  }|||| | |fS )Ng      ?r   r   )	r   r   r   r   r   r   Zhalf_dtr   Zy_midr   r   r   r      s    zMidpoint._step_funcNr   r   r   r   r   r      s   r   c                   @   s   e Zd ZdZdd ZdS )RK4   c              	   C   s8   |||| j rtjntjd}t||||||| j d|fS )Nr   )r   r   )r   r   r	   r
   r   r   r   r   r   r      s    zRK4._step_funcNr   r   r   r   r   r      s   r   N)	Zsolversr   Z	rk_commonr   miscr   r   r   r   r   r   r   r   <module>   s
   
