Research Article

Task-Level Data Model for Hardware Synthesis Based on Concurrent Collections

Listing 17

TLDM specification of nonaffine iterator boundary.
tldm_iteration_domain id_ij;
id_ij.insert_iterator(iterator_i); // “i”
id_ij.insert_iterator(iterator_j); // “j”
id_ij.insert_affine_constraint(“i”, 1, “>=”, 0); // i*1 >= 0
id_ij.insert_affine_constraint(“i”, -1, “N”, 1, “>”, 0); // -i+N > 0
id_ij.insert_affine_constraint(“j”, 1, “>=”, 0); // i*1 >= 0
id_ij.insert_affine_constraint(“j”, -1, “nonAffine(i)”, 1, “>”, 0); // -j+(i*i)>0  
[N] ->  <id_ij: i, j> {0<=i<N; 0<=j<i*i;};