MOS substitution: Difference between revisions
| Line 225: | Line 225: | ||
# nX X (nY Y nZ Z) (brightness_of_filling_mos) | (nY + nZ - gcd(nY, nZ) - brightness_of_filling_mos) | # nX X (nY Y nZ Z) (brightness_of_filling_mos) | (nY + nZ - gcd(nY, nZ) - brightness_of_filling_mos) | ||
def mos_subst(nX, nY, nZ, sizeX, sizeY, sizeZ, brightness_of_filling_mos): | def mos_subst(nX, nY, nZ, sizeX, sizeY, sizeZ, brightness_of_filling_mos): | ||
template_mos = mos_word(nX, nY + nZ, [X, W], brightness=nX + nY + nZ - gcd(nX, nY + nZ)) # word in X and W | template_mos = mos_word(nX, nY + nZ, ["X", "W"], brightness=nX + nY + nZ - gcd(nX, nY + nZ)) # word in X and W | ||
filling_mos = mos_word(nY, nZ, [Y, Z], brightness=brightness_of_filling_mos) | filling_mos = mos_word(nY, nZ, ["Y", "Z"], brightness=brightness_of_filling_mos) | ||
word = letterwise_subst(template_mos, W, filling_mos) | word = letterwise_subst(template_mos, "W", filling_mos) | ||
scale = subst_step_sizes(word, [sizeX, sizeY, sizeZ]) | scale = subst_step_sizes(word, [sizeX, sizeY, sizeZ]) | ||
return scale | return scale | ||