A computation device arranged to evaluate a data function mapping a number ( n) of input variables to a number of output variables ( m), the data function being arranged in the computation device as a computation comprising selection functions and evaluation functions, the input variables being partitioned into one or more selection variables and one or more evaluation variables, for each particular combination of values of the selection variables ( υ) a corresponding selection function ( Q υ) and evaluation function ( P υ) are defined, the computation device comprising - a selection mechanism arranged to receive the one or more selection variables, and to evaluate the selection functions for the received selection variables, a selection function receiving as input the selection variables and the output of the selection function indicating whether the selection variables received in the selection function equal the particular combination of values corresponding to the selection function, - an evaluation mechanism arranged to receive the one or more evaluation variables and to evaluate the evaluation functions for the received evaluation variables, an evaluation function receiving as input the evaluation variables and the output of the evaluation function representing the output of the data function having as input the union of the evaluation variables and the particular combination of values of the selection variables corresponding to the evaluation function, and - a combination mechanism arranged to combine the outputs of the selection mechanism and the evaluation mechanism into the output of the data function for the input variables, the combination mechanism summing products (Σ v Q υ P υ) of a selection function ( Q υ) and an evaluation function ( P υ) corresponding to the same particular combination of values, said summing being over all combinations of values of the selection variables ( υ). - a selection mechanism arranged to receive the one or more selection variables, and to evaluate the selection functions for the received selection variables, a selection function receiving as input the selection variables and the output of the selection function indicating whether the selection variables received in the selection function equal the particular combination of values corresponding to the selection function, - an evaluation mechanism arranged to receive the one or more evaluation variables and to evaluate the evaluation functions for the received evaluation variables, an evaluation function receiving as input the evaluation variables and the output of the evaluation function representing the output of the data function having as input the union of the evaluation variables and the particular combination of values of the selection variables corresponding to the evaluation function, and - a combination mechanism arranged to combine the outputs of the selection mechanism and the evaluation mechanism into the output of the data function for the input variables, the combination mechanism summing products (Σ v Q υ P υ) of a selection function ( Q υ) and an evaluation function ( P υ) corresponding to the same particular combination of values, said summing being over all combinations of values of the selection variables ( υ).