o ,g@s,ddlZ     d ddZd dd ZdS) NFc Cs|durtd|dtj}|r|g} tj|dtj|jd} d| |} || } tj} |dkrL|durLi}tj||t||gdd||<t t | dd| ddD]\}\}}tj j j | dQ|dkr|durtj||gdd|d<||jdd |d <||}|jd dd\}}|d|||}n||d<||jd|d <||}Wdn1swY||}|||}|}|r| |tjq[|r|tj| fS|tjS) NzScheduler must be providedy)dtypedevicer)dim)rgamma) ValueErrortotorchfloat32detacharangercat zeros_like enumeratezipcudaampautocastexpandshapechunkappend)netbatchconditioning_keys scheduler num_stepscfg_rate generatorreturn_trajectoriesx_curtraj step_indicesstepsgammasr stacked_batchstep gamma_now gamma_next denoised_all denoised_conddenoised_unconddenoiseddtx_nextr3A/home/dufour/Documents/diff_plonk/models/samplers/flow_sampler.py flow_samplersL    *  r5rrcCs|||||S)Nr3)xmin_valmax_valr3r3r4circular_transformation8sr9)NNrrNF)rr)r r5r9r3r3r3r4s 4