1 /*
2 Copyright (C) 2014 Fredrik Johansson
3
4 This file is part of Arb.
5
6 Arb is free software: you can redistribute it and/or modify it under
7 the terms of the GNU Lesser General Public License (LGPL) as published
8 by the Free Software Foundation; either version 2.1 of the License, or
9 (at your option) any later version. See <http://www.gnu.org/licenses/>.
10 */
11
12 #include "acb.h"
13
14 void
_acb_vec_set_powers(acb_ptr xs,const acb_t x,slong len,slong prec)15 _acb_vec_set_powers(acb_ptr xs, const acb_t x, slong len, slong prec)
16 {
17 slong i;
18
19 for (i = 0; i < len; i++)
20 {
21 if (i == 0)
22 acb_one(xs + i);
23 else if (i == 1)
24 acb_set_round(xs + i, x, prec);
25 else if (i % 2 == 0)
26 acb_mul(xs + i, xs + i / 2, xs + i / 2, prec);
27 else
28 acb_mul(xs + i, xs + i - 1, x, prec);
29 }
30 }
31