<taskModel xmlns="http://ce.org/cea-2018" about="urn:cetask.wpi.edu:examples:policytaskmodel:UtilitiesInit">
	<!-- definitions for all objects and
			functions related to constraints
		 Part of the initialization code for the task model in policytaskmodel.xml
		 (Project for CS 525U)
		 Author: Paul Freitas
		 Date: 4/8/08 -->
	<script init="true">
		//****************************************************
		//Utility Functions
		//****************************************************
		
		//consistent
		function checkConsistent(matrix,constraintList) {
			for(var i = 0; i &lt; constraintList.length; i++) {
				if(!constraintList[i].checkConstraint(matrix,constraintList)) {
					return false;
				}
			}	
			return true;	
		}
		
		//findConflicts
		function findConflicts(matrix,constraintList) {
			var conflictList = new Array(0);
			var crs = new Array(0);
			for(var i = 0; i &lt; constraintList.length; i++) {
				conflictList = conflictList.concat(constraintList[i].getConflicts(matrix,constraintList,crs));
			}
			
			return conflictList;
		}
		
		//createPolicy
		function createPolicy(matrix,constraintList) {
			return "Policy Placeholder";
		}
		
		function findVal(val,arr) {
			for(var i = 0; i &lt; arr.length; i++) {
				if(arr[i] == val) {
					return i;
				}
			}
			
			return -1;
		}
		
		function isSubset(slist,blist) {
			var marklist = new Array(blist.length);
			var i;
			for(i = 0; i &lt; marklist.length; i++) {
				marklist[i] = false;
			}
			for(i = 0; i &lt; slist.length; i++) {
				var j = 0;
				while(j &lt; blist.length &amp;&amp; blist[j] != slist[i] &amp;&amp; !marklist[j]) {
					j++;
				}
				if(j == blist.length) {
					return false;
				} else {
					marklist[j] = true;
				}
			}
			
			return true;
		}
	</script>
</taskModel>