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 said array of membership degree values and a rule array representing a fuzzy rule of a fuzzy rule base, said rule array comprising a set of binary values, whereby forming said vector sum places each of said membership degree values, which initially all lie in a predetermined numerical range, into one of two distinct numerical ranges, according to a corresponding binary value in said rule array; and (c) processing elements of said vector sum to determine a firing strength for said fuzzy rule represented by said rule array.