1 /*
2 Copyright (C) 2018 Daniel Schultz
3
4 This file is part of FLINT.
5
6 FLINT 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 "fmpz_vec.h"
13
14 /* vec1 = pointwise max of vec1 and vec2 */
_fmpz_vec_min_inplace(fmpz * vec1,const fmpz * vec2,slong len)15 void _fmpz_vec_min_inplace(fmpz * vec1, const fmpz * vec2, slong len)
16 {
17 slong i;
18 for (i = WORD(0); i < len; i++)
19 {
20 if (fmpz_cmp(vec1 + i, vec2 + i) > 0)
21 fmpz_set(vec1 + i, vec2 + i);
22 }
23 }
24
25 /* vec1 = pointwise max of vec2 and vec3 */
_fmpz_vec_min(fmpz * vec1,const fmpz * vec2,const fmpz * vec3,slong len)26 void _fmpz_vec_min(fmpz * vec1, const fmpz * vec2, const fmpz * vec3, slong len)
27 {
28 slong i;
29 for (i = WORD(0); i < len; i++)
30 {
31 int cmp = fmpz_cmp(vec2 + i, vec3 + i);
32 fmpz_set(vec1 + i, (cmp < 0 ? vec2 : vec3) + i);
33 }
34 }
35