slong fmpr_fmpz_div_fmpz(fmpr_t z, const fmpz_t x, const fmpz_t y, slong prec, fmpr_rnd_t rnd) { fmpr_t t, u; slong r; fmpr_init(t); fmpr_init(u); fmpr_set_fmpz(t, x); fmpr_set_fmpz(u, y); r = fmpr_div(z, t, u, prec, rnd); fmpr_clear(t); fmpr_clear(u); return r; }
slong fmpr_submul_fmpz(fmpr_t z, const fmpr_t x, const fmpz_t y, slong prec, fmpr_rnd_t rnd) { fmpr_t t; slong r; fmpr_init(t); fmpr_set_fmpz(t, y); r = fmpr_submul(z, x, t, prec, rnd); fmpr_clear(t); return r; }
void _fmpr_fmpz_vec_max_norm(fmpr_t norm, const fmpz * vec, long len, long prec) { fmpr_set_fmpz(norm, vec + _fmpz_vec_height_index(vec, len)); fmpr_set_round(norm, norm, prec, FMPR_RND_UP); fmpr_abs(norm, norm); }