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 "arb.h"
13 
14 void
_arb_vec_set_powers(arb_ptr xs,const arb_t x,slong len,slong prec)15 _arb_vec_set_powers(arb_ptr xs, const arb_t x, slong len, slong prec)
16 {
17     slong i;
18 
19     for (i = 0; i < len; i++)
20     {
21         if (i == 0)
22             arb_one(xs + i);
23         else if (i == 1)
24             arb_set_round(xs + i, x, prec);
25         else if (i % 2 == 0)
26             arb_mul(xs + i, xs + i / 2, xs + i / 2, prec);
27         else
28             arb_mul(xs + i, xs + i - 1, x, prec);
29     }
30 }
31