#ifdef T
#include "gr.h"
#include "gr_poly.h"
#include "templates.h"
void
_TEMPLATE(T, poly_powmod_ui_binexp_preinv) (
TEMPLATE(T, struct) * res,
const TEMPLATE(T, struct) * poly,
ulong e,
const TEMPLATE(T, struct) * f, slong lenf,
const TEMPLATE(T, struct) * finv, slong lenfinv,
const TEMPLATE(T, ctx_t) ctx)
{
gr_ctx_t gr_ctx;
TEMPLATE3(_gr_ctx_init, T, from_ref)(gr_ctx, ctx);
GR_MUST_SUCCEED(_gr_poly_powmod_ui_binexp_preinv(res, poly, e, f, lenf, finv, lenfinv, gr_ctx));
}
void
TEMPLATE(T, poly_powmod_ui_binexp_preinv) (TEMPLATE(T, poly_t) res,
const TEMPLATE(T, poly_t) poly,
ulong e,
const TEMPLATE(T, poly_t) f,
const TEMPLATE(T, poly_t) finv,
const TEMPLATE(T, ctx_t) ctx)
{
gr_ctx_t gr_ctx;
TEMPLATE3(_gr_ctx_init, T, from_ref)(gr_ctx, ctx);
GR_MUST_SUCCEED(gr_poly_powmod_ui_binexp_preinv((gr_poly_struct *) res,
(const gr_poly_struct *) poly, e,
(const gr_poly_struct *) f,
(const gr_poly_struct *) finv, gr_ctx));
}
#endif