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 12 #include <isl_multi_macro.h> 13 14 /* Given a multi expression on a domain (A -> B), 15 * interchange A and B in the wrapped domain 16 * to obtain a multi expression on the domain (B -> A). 17 */ 18 __isl_give MULTI(BASE) *FN(MULTI(BASE),domain_reverse)( 19 __isl_take MULTI(BASE) *multi) 20 { 21 S(MULTI(BASE),un_op_control) control = { 22 .fn_space = &isl_space_domain_reverse, 23 .fn_el = &FN(EL,domain_reverse), 24 }; 25 return FN(MULTI(BASE),un_op)(multi, &control); 26 } 27