xref: /llvm-project/polly/lib/External/isl/isl_ilp_opt_fn_val_templ.c (revision a749e09e184b2b0b6dde71af01c82dd427b3e3e2)
1 /*
2  * Copyright 2018      Sven Verdoolaege
3  *
4  * Use of this software is governed by the MIT license
5  *
6  * Written by Sven Verdoolaege.
7  */
8 
9 #define xFN(TYPE,NAME) TYPE ## _ ## NAME
10 #define FN(TYPE,NAME) xFN(TYPE,NAME)
11 
12 /* Return the minimum of the integer piecewise affine
13  * expression "f" over its definition domain.
14  *
15  * Return negative infinity if the optimal value is unbounded and
16  * NaN if the domain of the expression is empty.
17  */
FN(TYPE,min_val)18 __isl_give isl_val *FN(TYPE,min_val)(__isl_take TYPE *f)
19 {
20 	return FN(TYPE,opt_val)(f, 0);
21 }
22 
23 /* Return the maximum of the integer piecewise affine
24  * expression "f" over its definition domain.
25  *
26  * Return infinity if the optimal value is unbounded and
27  * NaN if the domain of the expression is empty.
28  */
FN(TYPE,max_val)29 __isl_give isl_val *FN(TYPE,max_val)(__isl_take TYPE *f)
30 {
31 	return FN(TYPE,opt_val)(f, 1);
32 }
33