summaryrefslogtreecommitdiff
path: root/tests/refmpn.c
diff options
context:
space:
mode:
authorMarco Bodrato <bodrato@mail.dm.unipi.it>2009-12-08 08:48:57 +0100
committerMarco Bodrato <bodrato@mail.dm.unipi.it>2009-12-08 08:48:57 +0100
commitdba4f9a8f33fcf0b3ecf4dbdf4180e96fbbc3a3b (patch)
tree05e6c4fb33d59f29193526169fe890658e1b2629 /tests/refmpn.c
parent3cac2fc788dcbc1d4c0c4277df5907c9cce37324 (diff)
downloadgmp-dba4f9a8f33fcf0b3ecf4dbdf4180e96fbbc3a3b.tar.gz
Tests for mpn_{add,sub}lsh_n, and mpn_addlsh2_n.
Diffstat (limited to 'tests/refmpn.c')
-rw-r--r--tests/refmpn.c32
1 files changed, 25 insertions, 7 deletions
diff --git a/tests/refmpn.c b/tests/refmpn.c
index 5d0cc4572..b2444f208 100644
--- a/tests/refmpn.c
+++ b/tests/refmpn.c
@@ -611,43 +611,63 @@ refmpn_sub_n (mp_ptr rp, mp_srcptr s1p, mp_srcptr s2p, mp_size_t size)
}
mp_limb_t
-refmpn_addlsh1_n (mp_ptr rp, mp_srcptr up, mp_srcptr vp, mp_size_t n)
+refmpn_addlsh_n (mp_ptr rp, mp_srcptr up, mp_srcptr vp,
+ mp_size_t n, unsigned int s)
{
mp_limb_t cy;
mp_ptr tp;
ASSERT (refmpn_overlap_fullonly_two_p (rp, up, vp, n));
ASSERT (n >= 1);
+ ASSERT (0 < s && s < GMP_NUMB_BITS);
ASSERT_MPN (up, n);
ASSERT_MPN (vp, n);
tp = refmpn_malloc_limbs (n);
- cy = refmpn_lshift (tp, vp, n, 1);
+ cy = refmpn_lshift (tp, vp, n, s);
cy += refmpn_add_n (rp, up, tp, n);
free (tp);
return cy;
}
mp_limb_t
-refmpn_sublsh1_n (mp_ptr rp, mp_srcptr up, mp_srcptr vp, mp_size_t n)
+refmpn_addlsh1_n (mp_ptr rp, mp_srcptr up, mp_srcptr vp, mp_size_t n)
+{
+ return refmpn_addlsh_n (rp, up, vp, n, 1);
+}
+mp_limb_t
+refmpn_addlsh2_n (mp_ptr rp, mp_srcptr up, mp_srcptr vp, mp_size_t n)
+{
+ return refmpn_addlsh_n (rp, up, vp, n, 2);
+}
+
+mp_limb_t
+refmpn_sublsh_n (mp_ptr rp, mp_srcptr up, mp_srcptr vp,
+ mp_size_t n, unsigned int s)
{
mp_limb_t cy;
mp_ptr tp;
ASSERT (refmpn_overlap_fullonly_two_p (rp, up, vp, n));
ASSERT (n >= 1);
+ ASSERT (0 < s && s < GMP_NUMB_BITS);
ASSERT_MPN (up, n);
ASSERT_MPN (vp, n);
tp = refmpn_malloc_limbs (n);
- cy = mpn_lshift (tp, vp, n, 1);
+ cy = mpn_lshift (tp, vp, n, s);
cy += mpn_sub_n (rp, up, tp, n);
free (tp);
return cy;
}
+mp_limb_t
+refmpn_sublsh1_n (mp_ptr rp, mp_srcptr up, mp_srcptr vp, mp_size_t n)
+{
+ return refmpn_sublsh_n (rp, up, vp, n, 1);
+}
mp_limb_signed_t
refmpn_rsblsh_n (mp_ptr rp, mp_srcptr up, mp_srcptr vp,
- mp_size_t n, unsigned int s)
+ mp_size_t n, unsigned int s)
{
mp_limb_signed_t cy;
mp_ptr tp;
@@ -664,13 +684,11 @@ refmpn_rsblsh_n (mp_ptr rp, mp_srcptr up, mp_srcptr vp,
free (tp);
return cy;
}
-
mp_limb_signed_t
refmpn_rsblsh1_n (mp_ptr rp, mp_srcptr up, mp_srcptr vp, mp_size_t n)
{
return refmpn_rsblsh_n (rp, up, vp, n, 1);
}
-
mp_limb_signed_t
refmpn_rsblsh2_n (mp_ptr rp, mp_srcptr up, mp_srcptr vp, mp_size_t n)
{