// **************************************************************************
//
//    eses                   eses
//   eses                     eses
//  eses    eseses  esesese    eses   Embedded Systems Group
//  ese    ese  ese ese         ese
//  ese    eseseses eseseses    ese   Department of Computer Science
//  eses   eses          ese   eses
//   eses   eseses  eseseses  eses    University of Kaiserslautern
//    eses                   eses
//
// **************************************************************************



macro N = ?, noH = ?;
module InitHeater(
    [N]real h, int ?on, [N]real Off
) {    
    int heater, off; heater = 0; off = 0;
    while(heater != (N-noH)) {
        choose(i = 0..N-1) { 
            if(h[i] != 1.0) {
	        next(h[i]) = 1.0 ; next(heater) = heater + 1 ;
	        if(off != (N-on)) {
	            next(Off[i]) = 1.0 ;next(off) = off + 1 ;
	        }	  
	        flow{}until(true);	  
	    }	
        }     
    }
}