1. A method for implementing a spiking neural network, comprising: receiving at least one input value at a first artificial neuron; based on the input value, determining a relative time between a first output spike time of the first artificial neuron and a reference time, wherein determining the relative time comprises encoding the input value as the relative time, wherein the encoding comprises calculating the relative time as a negative of a logarithm of the input value; and emitting an output spike from the first artificial neuron based on the relative time.