MOS substitution: Difference between revisions
| Line 226: | Line 226: | ||
# 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, | template_mos = mos_word(nX, nY + nZ, "X", "W", brightness=nX + nY + nZ - gcd(nX, nY + nZ)) # MOS word with nX X's and nY + nZ W's; X is treated as L and W as s for purposes of brightness | ||
filling_mos = mos_word(nY, nZ, | 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]) | ||