/// <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) { }