1 /*
2 Copyright (C) 2018 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_real_min(acb_t res,const acb_t x,const acb_t y,int analytic,slong prec)15 acb_real_min(acb_t res, const acb_t x, const acb_t y, int analytic, slong prec)
16 {
17 arb_t t;
18
19 if (!acb_is_finite(x) || !acb_is_finite(y))
20 {
21 acb_indeterminate(res);
22 return;
23 }
24
25 arb_init(t);
26 arb_sub(t, acb_realref(x), acb_realref(y), prec);
27
28 if (arb_is_positive(t))
29 acb_set_round(res, y, prec);
30 else if (arb_is_negative(t))
31 acb_set_round(res, x, prec);
32 else if (!analytic)
33 acb_union(res, x, y, prec);
34 else
35 acb_indeterminate(res);
36
37 arb_clear(t);
38 }
39
40