In LabVIEW, efficiency usually boils down to memory management. You can get slight efficiencies with other techniques, but getting the memory management right is essential. The original example VI is probably about as efficient as anything else, except, maybe, using the ramp function with delta and offset inputs. In the original example, the output array size is known at the beginning of the FOR loop, so it is preallocated before the loop starts, then filled as the loop executes. This is the fastest way to populate an array. It is arguable whether doing the math inside or outside the loop is faster, and the answer would probably depend upon the LabVIEW version. This also holds true of the ramp function. It should be faster than the original loop, but I would want to benchmark it to be sure.