1. A method for configuring and optimizing a computational structure for a machine learning application using training data which includes an initial set of real number values that is organized as an ordered list of data units, being referred herein as a “tuple of vectors,” the initial set of real number values representing a portion of the training data, with each vector in the tuple of vectors being organized as an ordered set of real number values, the method comprising: configuring a first program in a the computational structure (a) to receive an input tuple of vectors, and (b) to apply a first transformation to each vector in the input tuple of vectors to provide an output tuple of vectors; configuring a second program in the computational structure (a) to receive an input tuple of vectors, (b) to apply a second transformation on the input tuple of vectors of the second program to provide an output tuple of vectors of the second program, wherein the second transformation comprises (i) one or more operations each involving two or more vectors in the input tuple of vectors, and (ii) summing the results of the operations; and alternating execution of the first program and the second program a plurality of times, beginning with operating a selected one of the first and the second programs using the initial set of real number values as the input tuple of vectors of the selected program and, thereafter, using the output tuple of vectors of each execution of the first program as the input tuple of vectors of the second program in a next execution of the second program, and using the output tuple of vectors of each execution of the second program as the input tuple of vectors of the first program in a next execution of the first program.