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