the neighbors’ estimates, computes its on estimate, and broadcasts it to its neighbors. The double-looped algorithms have two nested loops and they are based on augmented Lagrangian methods (see ). The outer loop serves to update the dual variable of the augmented Lagrangian; the inner loop serves for each node to receive the neighbors’ estimates, compute its own estimate, and broadcast it to the neighbors, as one iteration of a single-looped algorithm. The natural way of comparing all algorithms is then through a *communication step*, which will denote one iteration (for the single-looped algorithms) or one inner loop iteration (for the double-looped algorithms). We say that an algorithm is more efficient than another one if it uses less communication steps for the same solution accuracy.

Communication steps is a fair measure because it compares, not only similar computational operations at each node (as we will soon see), but also the amount of communications each node requires to achieve a solution with a given precision. Furthermore, one of the main concerns in designing algorithms and protocols for wireless networks is reducing the number of communications; the reason is because communicating is the slowest and most energy-consuming task [@Akyildiz02-WirelessNetworksASurvey; @Krishnamachari05-NetworkingWirelessSensors]. The same 