o
    oi+
                     @   s  d dl Z d dlZd dlZdd Zdd Zdd Zedd	fedd
feddfgZdd Zdd Z	ej
ddddfejdddddfejdddddfejdddddfejd d!d"d#dfejdd$d%dfejd&d'id(fejd&d)idfejd&d)idfejd&d)id(fejd&d*idfe	d&d)id(fejd&d)id(fejd d!d"d#dfejdd$d%dfejd&d+id,fejd-ddd.dfejdd/d0d1dfejd&d)id(fejd2d3d d4dfgZe jjd5eed6e jjd7eed6d8d9 Z dS ):    Nc                 C   s(   | \}}d| d d||d  d   S )N       )tensorxyr   r   N/home/ubuntu/SoloSpeech/.venv/lib/python3.10/site-packages/tests/test_basic.py
rosenbrock   s    r	   c                 C   s(   | \}}d}d}|d | |d |  S )N      ?r   r   )r   r   r   abr   r   r   	quadratic   s   r   c                 C   sP   | \}}d| ||  d d| ||d   d  d| ||d   d  }|S )N      ?r   g      @g      @   r   )r   r   r   fr   r   r   beale   s   r   )r   r   )r   r   )r   r   )r         ?c                 C   s   d | d j| dd  }|S )Nz{} {}r   r   )format__name__)vnr   r   r   ids$   s   r   c                  O   s   t j| i |}t |S )N)optimYogi	Lookahead)r   kwbaser   r   r   build_lookahead)   s   
r   (   g-C6?)lipsbetai   gMb`?g?)lrmomentumweight_decayi  g{Gz?ffffff?r   )r!   r"   nug333333@)?g+?T)r!   betasgrad_averagingg{Gz?)r&   r$   MbP?)r!   r'   epsgQ?)r!   r"   r!   r   i  r
   gQ?g~jth?i  g?)r!   amsgradnesterovg333333ӿr&   )r!   
decay_ratebeta1g333333?g333333?)r!   hessian_powerseedcase)r   optimizer_configc                 C   s   | \}}}|\}}}t |d}t |}	||gfi |}
t|D ]}|
  ||}|jddd |
  q$t j||	ddsDJ |
jj	}||

 v sPJ d S )NT)retain_graphcreate_graphr)   )atol)torchTensorrequires_grad_range	zero_gradbackwardstepallclose	__class__r   __repr__)r1   r2   funcinitial_statemin_locoptimizer_classconfig
iterationsr   x_min	optimizer_r   namer   r   r   test_benchmark_functionJ   s   



rJ   )!pytestr6   torch_optimizerr   r	   r   r   casesr   r   	A2GradUniPIDQHMNovoGradRAdamSGDWDiffGradAdaModAdaBoundr   AccSGDQHAdamAdamPSGDPAggMoSWATS	Adafactor	AdaBelief
Adahessian
optimizersmarkparametrizerJ   r   r   r   r   <module>   sN    
