1. A method of performing a fuzzy inference implemented in a programmable data processor or computer, the method comprising: (a) receiving one or more input values and generating an array of values each representing a membership degree of a respective input value in a pre-defined fuzzy set; (b) forming a vector sum of the array of membership degree values and a rule array representing a fuzzy rule of a fuzzy rule base; and (c) processing elements of said vector sum to determine a firing strength for the fuzzy rule represented by said rule array.