I see that you are working with fp and fq which look very similar; but if they are the same then do you want to consider the s == t case or doesn't it matter?