first version of rewritten fmpr_add (needs more cleanup, and code reuse in fmpr_sub etc)