public static PineBool CrossOver(Pine xSource, Pine ySource) { IEnumerable <(double x, double y)> tuples = ZipEnd(xSource, ySource, (x, y) => (x, y)); PineBool ret = new PineBool(); (double x, double y)prev = tuples.First(); ret.Add(prev.x == prev.y); tuples = tuples.Skip(1); foreach ((double x, double y)tupl in tuples) { ret.Add(tupl.x == tupl.y || (tupl.x > tupl.y && prev.x < prev.y)); prev = tupl; } return(ret); }
public static PineBool ToPineBool(this IEnumerable <double?> source) { PineBool ret = new PineBool(); foreach (double?num in source) { ret.Add(num != null); } return(ret); }
public static PineBool ToPineBool(this IEnumerable <bool> source) { PineBool ret = new PineBool(); foreach (bool num in source) { ret.Add(num); } return(ret); }