function neuron(inputs, weights, bias, activation):

   z = bias
   for x, w in zip(inputs, weights):
      z += x * w
   return activation(z) # e.g. relu(z) = max(0, z)

 function relu(z):

   return max(0, z)
