1 /* 2 * Copyright 2019 Cerebras Systems 3 * 4 * Use of this software is governed by the MIT license 5 * 6 * Written by Sven Verdoolaege, 7 * Cerebras Systems, 175 S San Antonio Rd, Los Altos, CA, USA 8 */ 9 10 #include <isl/space.h> 11 #include <isl/set.h> 12 13 /* Given a piecewise function on a domain (A -> B), 14 * interchange A and B in the wrapped domain 15 * to obtain a function on the domain (B -> A). 16 */ 17 __isl_give PW *FN(PW,domain_reverse)(__isl_take PW *pw) 18 { 19 S(PW,un_op_control) control = { 20 .fn_space = &isl_space_domain_reverse, 21 .fn_domain = &isl_set_wrapped_reverse, 22 .fn_base = &FN(EL,domain_reverse), 23 }; 24 return FN(PW,un_op)(pw, &control); 25 } 26