1. A method of approximate functional matching comprising: locating one or more subsets of a description of an integrated circuit or software program with similar functionality or one or more subsets with functionality similar to a given template; assigning combinations of logic values to control inputs of the subsets; capturing a plurality of co-factors performed by the subsets for each of the assigned combinations of logic values; and performing functional matching using the plurality of co-factors of the subsets.