1 #ifndef NOSYSTEMHEADERS 3 #ifndef _phaseret_dgtrealwrapper_h_included 4 #define _phaseret_dgtrealwrapper_h_included 5 #include "dgtrealwrapper.h" 9 #include "ltfat/types.h" 10 #include "phaseret/types.h" 16 #ifndef _phaseret_legla_h 17 #define _phaseret_legla_h 18 typedef struct phaseret_legla_params phaseret_legla_params;
24 EXT_UPDOWN = (1 << 21)
29 ORDER_FWD = (1 << 10),
31 } leglaupdate_frameorder;
50 MOD_STEPWISE = (1 << 0),
51 MOD_FRAMEWISE = (1 << 1),
52 MOD_COEFFICIENTWISE = (1 << 2),
53 MOD_COEFFICIENTWISE_SORTED = (1 << 3),
54 MOD_MODIFIEDUPDATE = (1 << 4),
64 PHASERET_API phaseret_legla_params*
109 PHASERET_API phaseret_dgtreal_params*
127 phaseret_legla_params_defaults(phaseret_legla_params* params);
130 typedef struct PHASERET_NAME(legla_plan) PHASERET_NAME(legla_plan);
131 typedef struct PHASERET_NAME(leglaupdate_plan) PHASERET_NAME(leglaupdate_plan);
132 typedef struct PHASERET_NAME(leglaupdate_plan_col) PHASERET_NAME(leglaupdate_plan_col);
165 PHASERET_NAME(
legla_callback_cmod)(
void* userdata, LTFAT_COMPLEX c[], ltfat_int L, ltfat_int W, ltfat_int a, ltfat_int M);
207 ltfat_int L, ltfat_int W, ltfat_int a, ltfat_int M,
double* alpha, ltfat_int iter);
242 PHASERET_NAME(
legla)(
const LTFAT_COMPLEX cinit[],
const LTFAT_REAL g[], ltfat_int L, ltfat_int gl,
243 ltfat_int W, ltfat_int a, ltfat_int M, ltfat_int iter, LTFAT_COMPLEX c[]);
286 PHASERET_NAME(
legla_init)(
const LTFAT_COMPLEX cinit[],
const LTFAT_REAL g[], ltfat_int L,
287 ltfat_int gl, ltfat_int W, ltfat_int a, ltfat_int M,
288 const double alpha, LTFAT_COMPLEX c[],
289 phaseret_legla_params* params, PHASERET_NAME(legla_plan)** p);
315 PHASERET_NAME(
legla_execute)(PHASERET_NAME(legla_plan)* p, ltfat_int iter);
348 const LTFAT_COMPLEX cinit[],
349 ltfat_int iter, LTFAT_COMPLEX c[]);
368 PHASERET_NAME(
legla_done)(PHASERET_NAME(legla_plan)** p);
427 PHASERET_NAME(leglaupdate_init)(
const LTFAT_COMPLEX kern[],
phaseret_size ksize,
428 ltfat_int L, ltfat_int W, ltfat_int a, ltfat_int M, ltfat_int flags,
429 PHASERET_NAME(leglaupdate_plan)** pout);
432 PHASERET_NAME(leglaupdate_execute)(PHASERET_NAME(leglaupdate_plan)* plan,
433 const LTFAT_REAL s[], LTFAT_COMPLEX c[],
434 LTFAT_COMPLEX cout[]);
437 PHASERET_NAME(leglaupdate_done)(PHASERET_NAME(leglaupdate_plan)** plan);
441 PHASERET_NAME(leglaupdate_col_init)(ltfat_int M,
phaseret_size ksize,
int flags,
442 PHASERET_NAME(leglaupdate_plan_col)** pout);
445 PHASERET_NAME(leglaupdate_col_done)( PHASERET_NAME(leglaupdate_plan_col)** p);
448 PHASERET_NAME(leglaupdate_col_execute)(
449 PHASERET_NAME(leglaupdate_plan_col)* plan,
450 const LTFAT_REAL sCol[],
451 const LTFAT_COMPLEX actK[],
452 LTFAT_COMPLEX cColFirst[],
453 LTFAT_COMPLEX coutrCol[]);
457 PHASERET_NAME(extendborders)(PHASERET_NAME(leglaupdate_plan_col)* plan,
458 const LTFAT_COMPLEX c[], ltfat_int N, LTFAT_COMPLEX buf[]);
461 PHASERET_NAME(legla_big2small_kernel)(LTFAT_COMPLEX* bigc,
phaseret_size bigsize,
465 PHASERET_NAME(legla_findkernelsize)(LTFAT_COMPLEX* bigc,
phaseret_size bigsize,
470 PHASERET_NAME(kernphasefi)(
const LTFAT_COMPLEX kern[],
phaseret_size ksize,
471 ltfat_int n, ltfat_int a, ltfat_int M, LTFAT_COMPLEX kernmod[]);
475 PHASERET_NAME(formatkernel)(LTFAT_REAL* kernr, LTFAT_REAL* kerni,
476 ltfat_int kernh, ltfat_int kernw,
477 ltfat_int kernwskip, LTFAT_REAL* kernmodr, LTFAT_REAL* kernmodi);
int legla_set_status_callback(legla_plan *p, legla_callback_status *callback, void *userdata)
int legla_callback_status(dgtreal_plan *p, void *userdata, LTFAT_COMPLEX c[], ltfat_int L, ltfat_int W, ltfat_int a, ltfat_int M, double *alpha, ltfat_int iter)
Definition: legla.h:206
int legla_execute(legla_plan *p, ltfat_int iter)
int legla_callback_cmod(void *userdata, LTFAT_COMPLEX c[], ltfat_int L, ltfat_int W, ltfat_int a, ltfat_int M)
Definition: legla.h:165
int legla_execute_newarray(legla_plan *p, const LTFAT_COMPLEX cinit[], ltfat_int iter, LTFAT_COMPLEX c[])
int phaseret_legla_params_free(phaseret_legla_params *params)
phaseret_dgtreal_params * phaseret_legla_params_get_dgtreal_params(phaseret_legla_params *params)
int legla_set_cmod_callback(legla_plan *p, legla_callback_cmod *callback, void *userdata)
int phaseret_legla_params_set_kernelsize(phaseret_legla_params *params, phaseret_size ksize)
int legla_done(legla_plan **p)
phaseret_legla_params * phaseret_legla_params_allocdef()
int legla_init(const LTFAT_COMPLEX cinit[], const LTFAT_REAL g[], ltfat_int L, ltfat_int gl, ltfat_int W, ltfat_int a, ltfat_int M, const double alpha, LTFAT_COMPLEX c[], phaseret_legla_params *params, legla_plan **p)
int phaseret_legla_params_set_relthr(phaseret_legla_params *params, double relthr)
int legla(const LTFAT_COMPLEX cinit[], const LTFAT_REAL g[], ltfat_int L, ltfat_int gl, ltfat_int W, ltfat_int a, ltfat_int M, ltfat_int iter, LTFAT_COMPLEX c[])
int phaseret_legla_params_set_leglaflags(phaseret_legla_params *params, unsigned leglaflags)