+void bbs_ff(bbs *b, const bbs_priv *bp, mp *n)
+{
+ if (!MP_NEGP(n))
+ ff(b, bp, n);
+ else {
+ n = mp_neg(MP_NEW, n);
+ rew(b, bp, n);
+ mp_drop(n);
+ }
+}
+
+void bbs_ffn(bbs *b, const bbs_priv *bp, unsigned long n)
+ { mp *nn = mp_fromulong(MP_NEW, n); ff(b, bp, nn); mp_drop(nn); }
+
+void bbs_rew(bbs *b, const bbs_priv *bp, mp *n)
+{
+ if (!MP_NEGP(n))
+ rew(b, bp, n);
+ else {
+ n = mp_neg(MP_NEW, n);
+ ff(b, bp, n);
+ mp_drop(n);
+ }
+}
+
+void bbs_rewn(bbs *b, const bbs_priv *bp, unsigned long n)
+ { mp *nn = mp_fromulong(MP_NEW, n); bbs_rew(b, bp, nn); mp_drop(nn); }
+