// This function is used to calculate the maximum and minimum values in a set // written by Terrence Brannon, last modified by Yiota Poirazi, July 2001, poirazi@LNC.usc.edu strdef maxmin_str proc maxmin () { maxmin_max=-9e99 maxmin_min= 9e99 maxmin_samples=0 forall { if (ismembrane($s1)) { sprint(maxmin_str, "maxmin_val=%s", $s2) execute1(maxmin_str) if (maxmin_val > maxmin_max) { maxmin_max=maxmin_val } if (maxmin_val < maxmin_min) { maxmin_min=maxmin_val } maxmin_samples=maxmin_samples+1 } } // print "samples ", maxmin_samples // print "min: ", maxmin_min // print "max: ", maxmin_max } proc maxmin_intrinsic () { maxmin_max=-9e99 maxmin_min= 9e99 maxmin_samples=0 forall { sprint(maxmin_str, "maxmin_val=%s", $s1) execute1(maxmin_str) if (maxmin_val > maxmin_max) { maxmin_max=maxmin_val } if (maxmin_val < maxmin_min) { maxmin_min=maxmin_val } maxmin_samples=maxmin_samples+1 } // print "samples ", maxmin_samples // print "min: ", maxmin_min // print "max: ", maxmin_max } proc maxmin_point_process () { local pps, ppe maxmin_max=-9e99 maxmin_min= 9e99 maxmin_samples=0 pps=$3 ppe=$4 for i=pps,ppe { sprint(maxmin_str, "maxmin_val=%s[%d].%s", $s1, i, $s2) execute1(maxmin_str) if (maxmin_val > maxmin_max) { maxmin_max=maxmin_val } if (maxmin_val < maxmin_min) { maxmin_min=maxmin_val } maxmin_samples=maxmin_samples+1 } // print "Maxmin for ", $s1, "[ ].", $s2 // print "samples ", maxmin_samples // print "min: ", maxmin_min // print "max: ", maxmin_max }