digraphIFS = {
let edges = [];
let eps = 0.00000001;
for (let i = 0; i < F.length; i++) {
for (let j = 0; j < F.length; j++) {
D.forEach(function (d) {
D.forEach(function (dp) {
let alpha = F[i];
let beta = F[j];
let Aalpha = math.multiply(A, alpha);
let x = Aalpha[0] + dp[0] - d[0];
let y = Aalpha[1] + dp[1] - d[1];
if (math.abs(x - beta[0]) < eps && math.abs(y - beta[1]) < eps) {
edges.push({
source: i,
target: j,
f: new AffineFunction([AInv, math.multiply(AInv, d)])
});
}
});
});
}
}
return new DigraphIFS(edges);
}