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