public static List <string> Pushout <T1, T2>(this IEnumerable <T2> codomeniu, List <T1> domeniu, IFunction <T1, T2> fi, IFunction <T1, T2> gi) { var connections = new List <string>(); domeniu.ForEach(domeni => { var rezX = fi.Calcul(domeni); var rezY = gi.Calcul(domeni); connections.Add($" {rezX} - {rezY}"); }); return(connections); }
private static int[,] GetConections(IFunction <string, string> fi, List <string> codomfi, IFunction <string, string> gi, List <string> codomgi, List <string> domi) { var conections = new int[codomfi.Count, codomgi.Count]; domi.ForEach(domeniu => { var rezX = fi.Calcul(domeniu); var rezY = gi.Calcul(domeniu); var indexX = codomfi.IndexOf(rezX); var indexY = codomgi.IndexOf(rezY); indexX = indexX < 0 ? 0 : indexX; indexY = indexY < 0 ? 0 : indexY; conections[indexX, indexY] = 1; }); return(conections); }