/// <summary>
 ///     Creates a new <see cref="CommutativeBinaryFunction" /> with the given programs as parameters.
 /// </summary>
 /// <param name="firstProgram">The first parameter of the program.</param>
 /// <param name="secondProgram">The second parameter of the program.</param>
 protected CommutativeBinaryFunction(ITreeProgram <double> firstProgram, ITreeProgram <double> secondProgram) :
     base(firstProgram.CompareTo(secondProgram) >= 0 ? firstProgram : secondProgram,
          firstProgram.CompareTo(secondProgram) >= 0 ? secondProgram : firstProgram)
 {
 }