is it ok if one of c1 or c2 is 0 (hence `if (coeff_dict.get(c1,0) or coeff_dict.get(c2,0)) and ...`