diff --git a/lib/add.c b/lib/add.c index ee4fce80dabf6279ed900be7a607f9bcfd14c817..caa0289d222a7a472155fa368daab23e3a8e047f 100644 --- a/lib/add.c +++ b/lib/add.c @@ -51,82 +51,3 @@ uint64_t wmpn_add(uint64_t * r, uint64_t * x, int32_t sx, uint64_t * y, } return c; } - -uint64_t add_n(uint64_t * r, uint64_t * x, uint64_t * y, int32_t sz) { - uint64_t * nr; - uint64_t * nx; - uint64_t * ny; - struct __open_sep_result struct_res; - uint64_t res; - struct_res = open_sep(r, x, sz, y, sz); - nr = struct_res.__field_0; - nx = struct_res.__field_1; - ny = struct_res.__field_2; - res = wmpn_add_n(nr, nx, ny, sz); - IGNORE3(r,x,y); - return res; -} - -uint64_t add_n_rx(uint64_t * x, uint64_t * y, int32_t sz) { - uint64_t * nr; - uint64_t * nx; - uint64_t * ny; - struct __open_rx_result struct_res; - uint64_t res; - struct_res = open_rx(x, sz, y, sz); - nr = struct_res.__field_0; - nx = struct_res.__field_1; - ny = struct_res.__field_2; - res = wmpn_add_n(nr, nx, ny, sz); - IGNORE3(x,sz,sz); - return res; -} - -uint64_t add(uint64_t * r, uint64_t * x, int32_t sx, uint64_t * y, int32_t sy) { - uint64_t * nr; - uint64_t * nx; - uint64_t * ny; - struct __open_sep_result struct_res; - uint64_t res; - struct_res = open_sep(r, x, sx, y, sy); - nr = struct_res.__field_0; - nx = struct_res.__field_1; - ny = struct_res.__field_2; - res = wmpn_add(nr, nx, sx, ny, sy); - IGNORE3(r,x,y); - return res; -} - -uint64_t add_rx(uint64_t * x, int32_t sx, uint64_t * y, int32_t sy) { - uint64_t * nr; - uint64_t * nx; - uint64_t * ny; - struct __open_rx_result struct_res; - uint64_t res; - struct_res = open_rx(x, sx, y, sy); - nr = struct_res.__field_0; - nx = struct_res.__field_1; - ny = struct_res.__field_2; - res = wmpn_add(nr, nx, sx, ny, sy); - IGNORE3(x,sx,sy); - return res; -} - -uint64_t add_ry(uint64_t * x, int32_t sx, uint64_t * y, int32_t sy) { - uint64_t * nr; - uint64_t * ny; - uint64_t * nx; - struct __open_rx_result struct_res; - uint64_t res; - struct_res = open_rx(y, sx, x, sx); - nr = struct_res.__field_0; - ny = struct_res.__field_1; - nx = struct_res.__field_2; - res = wmpn_add(nr, nx, sx, ny, sy); - IGNORE3(y,sx,sx); - return res; -} - -uint64_t add_n_rxy(uint64_t * x, int32_t sx) { - return wmpn_add_n(x, x, x, sx); -} diff --git a/lib/add.h b/lib/add.h index 55e521a3e7285a7baf4d744b8ed845c338da3d27..c4061ed57d7a645c133314406541082133361463 100644 --- a/lib/add.h +++ b/lib/add.h @@ -10,17 +10,5 @@ uint64_t wmpn_add_n(uint64_t * r, uint64_t * x, uint64_t * y, int32_t sz); uint64_t wmpn_add(uint64_t * r, uint64_t * x, int32_t sx, uint64_t * y, int32_t sy); -uint64_t add_n(uint64_t * r, uint64_t * x, uint64_t * y, int32_t sz); - -uint64_t add_n_rx(uint64_t * x, uint64_t * y, int32_t sz); - -uint64_t add(uint64_t * r, uint64_t * x, int32_t sx, uint64_t * y, int32_t sy); - -uint64_t add_rx(uint64_t * x, int32_t sx, uint64_t * y, int32_t sy); - -uint64_t add_ry(uint64_t * x, int32_t sx, uint64_t * y, int32_t sy); - -uint64_t add_n_rxy(uint64_t * x, int32_t sx); - #define ADD_H_INCLUDED #endif // ADD_H_INCLUDED diff --git a/lib/alias.h b/lib/alias.h index 351cea89a562705132dfb841dc3e1326207ad726..a5b66112b8f068326f214a7edd59ced5fbf1b536 100644 --- a/lib/alias.h +++ b/lib/alias.h @@ -22,7 +22,7 @@ struct __open_shift_sep_result { }; static inline struct __open_sep_result -open_sep (uint64_t *r, uint64_t *x, int32_t sx, uint64_t *y, int32_t sy) +open_sep (uint64_t *r, uint64_t *x, uint64_t *y) { struct __open_sep_result result; result.__field_0 = r; @@ -32,7 +32,7 @@ open_sep (uint64_t *r, uint64_t *x, int32_t sx, uint64_t *y, int32_t sy) } static inline struct __open_rx_result -open_rx (uint64_t *x, int32_t sx, uint64_t *y, int32_t sy) +open_rx (uint64_t *x, uint64_t *y) { struct __open_rx_result result; result.__field_0 = x; @@ -42,7 +42,7 @@ open_rx (uint64_t *x, int32_t sx, uint64_t *y, int32_t sy) } static inline struct __open_shift_sep_result -open_shift_sep (uint64_t *r, uint64_t *x, int32_t sz) +open_shift_sep (uint64_t *r, uint64_t *x) { struct __open_shift_sep_result result; result.__field_0 = r; diff --git a/lib/sqrt.c b/lib/sqrt.c index 4dd5b76c4423b0cbb223181c4ccbf301d9d97e6e..e45ffbd7f767131fec76d09c62565cc9f144aec8 100644 --- a/lib/sqrt.c +++ b/lib/sqrt.c @@ -88,11 +88,11 @@ uint64_t wmpn_dc_sqrtrem(uint64_t * sp, uint64_t * np, int32_t n, q = q + sl; sh = *scratch; c = (int64_t)(sh % UINT64_C(2)); - struct_res = open_shift_sep(sp, scratch, l); + struct_res = open_shift_sep(sp, scratch); nr = struct_res.__field_0; nx = struct_res.__field_1; res = wmpn_rshift(nr, nx, l, UINT64_C(1)); - IGNORE2(sp,scratch); + IGNORE2(sp, scratch); res; st = sp[l - 1]; ql = q << (64 - UINT64_C(1)); @@ -194,11 +194,11 @@ int32_t wmpn_sqrtrem(uint64_t * sp, uint64_t * rp, uint64_t * np, int32_t n) { *tp = UINT64_C(0); tpa = tp + adj; if (!(c == UINT64_C(0))) { - struct_res = open_shift_sep(tpa, np, n); + struct_res = open_shift_sep(tpa, np); nr = struct_res.__field_0; nx = struct_res.__field_1; res1 = wmpn_lshift(nr, nx, n, UINT64_C(2) * c); - IGNORE2(tpa,np); + IGNORE2(tpa, np); res1; } else { wmpn_copyi1(tpa, np, n); @@ -232,11 +232,11 @@ int32_t wmpn_sqrtrem(uint64_t * sp, uint64_t * rp, uint64_t * np, int32_t n) { } if (!(c2 == UINT64_C(0))) { o4 = tp; - struct_res1 = open_shift_sep(rp, o4, tn); + struct_res1 = open_shift_sep(rp, o4); nr1 = struct_res1.__field_0; nx1 = struct_res1.__field_1; res2 = wmpn_rshift(nr1, nx1, tn, c2); - IGNORE2(rp,o4); + IGNORE2(rp, o4); res2; } else { wmpn_copyi1(rp, tp, tn); diff --git a/lib/sub.c b/lib/sub.c index 0851fa478ed042addaeb751e3192ff9282a1eb86..2b8291d0599010e6118f161c6c3ef03ab6484db2 100644 --- a/lib/sub.c +++ b/lib/sub.c @@ -51,93 +51,3 @@ uint64_t wmpn_sub(uint64_t * r, uint64_t * x, int32_t sx, uint64_t * y, } return b; } - -uint64_t sub_n(uint64_t * r, uint64_t * x, uint64_t * y, int32_t sz) { - uint64_t * nr; - uint64_t * nx; - uint64_t * ny; - struct __open_sep_result struct_res; - uint64_t res; - struct_res = open_sep(r, x, sz, y, sz); - nr = struct_res.__field_0; - nx = struct_res.__field_1; - ny = struct_res.__field_2; - res = wmpn_sub_n(nr, nx, ny, sz); - IGNORE3(r,x,y); - return res; -} - -uint64_t sub_n_rx(uint64_t * x, uint64_t * y, int32_t sz) { - uint64_t * nr; - uint64_t * nx; - uint64_t * ny; - struct __open_rx_result struct_res; - uint64_t res; - struct_res = open_rx(x, sz, y, sz); - nr = struct_res.__field_0; - nx = struct_res.__field_1; - ny = struct_res.__field_2; - res = wmpn_sub_n(nr, nx, ny, sz); - IGNORE3(x,sz,sz); - return res; -} - -uint64_t sub_n_ry(uint64_t * x, uint64_t * y, int32_t sz) { - uint64_t * nr; - uint64_t * ny; - uint64_t * nx; - struct __open_rx_result struct_res; - uint64_t res; - struct_res = open_rx(y, sz, x, sz); - nr = struct_res.__field_0; - ny = struct_res.__field_1; - nx = struct_res.__field_2; - res = wmpn_sub_n(nr, nx, ny, sz); - IGNORE3(y,sz,sz); - return res; -} - -uint64_t sub(uint64_t * r, uint64_t * x, int32_t sx, uint64_t * y, int32_t sy) { - uint64_t * nr; - uint64_t * nx; - uint64_t * ny; - struct __open_sep_result struct_res; - uint64_t res; - struct_res = open_sep(r, x, sx, y, sy); - nr = struct_res.__field_0; - nx = struct_res.__field_1; - ny = struct_res.__field_2; - res = wmpn_sub(nr, nx, sx, ny, sy); - IGNORE3(r,x,y); - return res; -} - -uint64_t sub_rx(uint64_t * x, int32_t sx, uint64_t * y, int32_t sy) { - uint64_t * nr; - uint64_t * nx; - uint64_t * ny; - struct __open_rx_result struct_res; - uint64_t res; - struct_res = open_rx(x, sx, y, sy); - nr = struct_res.__field_0; - nx = struct_res.__field_1; - ny = struct_res.__field_2; - res = wmpn_sub(nr, nx, sx, ny, sy); - IGNORE3(x,sx,sy); - return res; -} - -uint64_t sub_ry(uint64_t * x, int32_t sx, uint64_t * y, int32_t sy) { - uint64_t * nr; - uint64_t * ny; - uint64_t * nx; - struct __open_rx_result struct_res; - uint64_t res; - struct_res = open_rx(y, sx, x, sx); - nr = struct_res.__field_0; - ny = struct_res.__field_1; - nx = struct_res.__field_2; - res = wmpn_sub(nr, nx, sx, ny, sy); - IGNORE3(y,sx,sx); - return res; -} diff --git a/lib/sub.h b/lib/sub.h index 86eed71faeb0b70d2761f620c464a49a82b013ab..3371f2c21899d795297641fb4f4ece263fedf3a6 100644 --- a/lib/sub.h +++ b/lib/sub.h @@ -10,17 +10,5 @@ uint64_t wmpn_sub_n(uint64_t * r, uint64_t * x, uint64_t * y, int32_t sz); uint64_t wmpn_sub(uint64_t * r, uint64_t * x, int32_t sx, uint64_t * y, int32_t sy); -uint64_t sub_n(uint64_t * r, uint64_t * x, uint64_t * y, int32_t sz); - -uint64_t sub_n_rx(uint64_t * x, uint64_t * y, int32_t sz); - -uint64_t sub_n_ry(uint64_t * x, uint64_t * y, int32_t sz); - -uint64_t sub(uint64_t * r, uint64_t * x, int32_t sx, uint64_t * y, int32_t sy); - -uint64_t sub_rx(uint64_t * x, int32_t sx, uint64_t * y, int32_t sy); - -uint64_t sub_ry(uint64_t * x, int32_t sx, uint64_t * y, int32_t sy); - #define SUB_H_INCLUDED #endif // SUB_H_INCLUDED diff --git a/lib/uint64gmp.h b/lib/uint64gmp.h index 58f3b33c2cf547d24af3ece23bd89a80e576ebe4..1a4572a47c072eff057b256e7c031bdaed3a784f 100644 --- a/lib/uint64gmp.h +++ b/lib/uint64gmp.h @@ -4,19 +4,21 @@ typedef unsigned __int128 uint128_t; -struct __mul64_double_result -{ uint64_t __field_0; +struct __mul64_double_result { + uint64_t __field_0; uint64_t __field_1; }; -static inline struct __mul64_double_result mul64_double(uint64_t x, uint64_t y) +static inline struct __mul64_double_result +mul64_double(uint64_t x, uint64_t y) { uint128_t z = (uint128_t)x * (uint128_t)y; struct __mul64_double_result result = { z, z >> 64 }; return result; } -static inline uint64_t div64_2by1(uint64_t ul, uint64_t uh, uint64_t d) +static inline uint64_t +div64_2by1(uint64_t ul, uint64_t uh, uint64_t d) { return (((uint128_t)uh << 64) | ul) / d; } @@ -73,8 +75,8 @@ add64_3(uint64_t x, uint64_t y, uint64_t z) return result; } -struct __lsld64_result -{ uint64_t __field_0; +struct __lsld64_result { + uint64_t __field_0; uint64_t __field_1; }; diff --git a/lib/util.c b/lib/util.c index d7d7784a5e875e410562bc07767aa79098caa015..8c4c2fea59845d264a9913983290f4e0e4ad81ee 100644 --- a/lib/util.c +++ b/lib/util.c @@ -52,11 +52,11 @@ void wmpn_copyd_sep(uint64_t * rp, uint64_t * up, int32_t n) { uint64_t * nr; uint64_t * nx; struct __open_shift_sep_result struct_res; - struct_res = open_shift_sep(rp, up, n); + struct_res = open_shift_sep(rp, up); nr = struct_res.__field_0; nx = struct_res.__field_1; wmpn_copyd(nr, nx, n); - IGNORE2(rp,up); + IGNORE2(rp, up); return; } diff --git a/lib/zadd.c b/lib/zadd.c index d1675180511ad33fad89a659675cd5c4a5d8448b..7139963063b432ce97a35cde1d56ae0d2a9c2e23 100644 --- a/lib/zadd.c +++ b/lib/zadd.c @@ -8,24 +8,83 @@ void wmpz_add(wmpz_ptr w, wmpz_ptr u, wmpz_ptr v) { int uw, vw; uint64_t * wp; uint64_t * vp; - uint64_t usb, usb1; + uint64_t usb; + uint64_t * nr; + uint64_t * nx; + uint64_t * ny; + struct __open_rx_result struct_res; + uint64_t res, usb1; uint64_t * up; + uint64_t * nr1; + uint64_t * ny1; + uint64_t * nx1; + struct __open_rx_result struct_res1; + uint64_t res1; uint64_t * up1; uint64_t * vp1; - uint64_t usb2, usb3, usb4; + uint64_t usb2; + uint64_t * nr2; + uint64_t * nx2; + uint64_t * ny2; + struct __open_sep_result struct_res2; + uint64_t res2, usb3; uint64_t * vp2; + uint64_t * nr3; + uint64_t * ny3; + uint64_t * nx3; + struct __open_rx_result struct_res3; + uint64_t res3, usb4; + uint64_t * nr4; + uint64_t * nx4; + uint64_t * ny4; + struct __open_rx_result struct_res4; + uint64_t res4, usb5; uint64_t * up2; - uint64_t usb5, usb6; + uint64_t * nr5; + uint64_t * nx5; + uint64_t * ny5; + struct __open_rx_result struct_res5; + uint64_t res5, usb6; + uint64_t * nr6; + uint64_t * ny6; + uint64_t * nx6; + struct __open_rx_result struct_res6; + uint64_t res6; uint64_t * up3; uint64_t * vp3; - uint64_t usb7, usb8, o; + uint64_t usb7; + uint64_t * nr7; + uint64_t * nx7; + uint64_t * ny7; + struct __open_sep_result struct_res7; + uint64_t res7, usb8; + uint64_t * nr8; + uint64_t * nx8; + uint64_t * ny8; + struct __open_sep_result struct_res8; + uint64_t res8, o; uint64_t cy; uint64_t * vp4; - uint64_t o1, o2; + uint64_t o1; + uint64_t * nr9; + uint64_t * nx9; + uint64_t * ny9; + struct __open_rx_result struct_res9; + uint64_t res9, o2; uint64_t * up4; + uint64_t * nr10; + uint64_t * ny10; + uint64_t * nx10; + struct __open_rx_result struct_res10; + uint64_t res10; uint64_t * up5; uint64_t * vp5; uint64_t o3; + uint64_t * nr11; + uint64_t * nx11; + uint64_t * ny11; + struct __open_sep_result struct_res11; + uint64_t res11; u1 = u; v1 = v; usize = SIZ(u1); @@ -51,17 +110,35 @@ void wmpz_add(wmpz_ptr w, wmpz_ptr u, wmpz_ptr v) { if (!(abs_usize == abs_vsize)) { if (uw) { vp = PTR(v1); - usb = sub_rx(wp, abs_usize, vp, abs_vsize); + struct_res = open_rx(wp, vp); + nr = struct_res.__field_0; + nx = struct_res.__field_1; + ny = struct_res.__field_2; + res = wmpn_sub(nr, nx, abs_usize, ny, abs_vsize); + IGNORE2(wp, vp); + usb = res; (void)(v1); } else { if (vw) { up = PTR(u1); - usb1 = sub_ry(up, abs_usize, wp, abs_vsize); + struct_res1 = open_rx(wp, up); + nr1 = struct_res1.__field_0; + ny1 = struct_res1.__field_1; + nx1 = struct_res1.__field_2; + res1 = wmpn_sub(nr1, nx1, abs_usize, ny1, abs_vsize); + IGNORE2(wp, up); + usb1 = res1; (void)(u1); } else { up1 = PTR(u1); vp1 = PTR(v1); - usb2 = sub(wp, up1, abs_usize, vp1, abs_vsize); + struct_res2 = open_sep(wp, up1, vp1); + nr2 = struct_res2.__field_0; + nx2 = struct_res2.__field_1; + ny2 = struct_res2.__field_2; + res2 = wmpn_sub(nr2, nx2, abs_usize, ny2, abs_vsize); + IGNORE3(wp, up1, vp1); + usb2 = res2; (void)(u1); (void)(v1); } @@ -76,13 +153,25 @@ void wmpz_add(wmpz_ptr w, wmpz_ptr u, wmpz_ptr v) { if (uw) { vp2 = PTR(v1); if (wmpn_cmp(wp, vp2, abs_usize) < 0) { - usb3 = sub_n_ry(vp2, wp, abs_usize); + struct_res3 = open_rx(wp, vp2); + nr3 = struct_res3.__field_0; + ny3 = struct_res3.__field_1; + nx3 = struct_res3.__field_2; + res3 = wmpn_sub_n(nr3, nx3, ny3, abs_usize); + IGNORE2(wp, vp2); + usb3 = res3; normalize(wp, &wsize); if (usize >= 0) { wsize = -wsize; } } else { - usb4 = sub_n_rx(wp, vp2, abs_usize); + struct_res4 = open_rx(wp, vp2); + nr4 = struct_res4.__field_0; + nx4 = struct_res4.__field_1; + ny4 = struct_res4.__field_2; + res4 = wmpn_sub_n(nr4, nx4, ny4, abs_usize); + IGNORE2(wp, vp2); + usb4 = res4; normalize(wp, &wsize); if (usize < 0) { wsize = -wsize; @@ -93,13 +182,25 @@ void wmpz_add(wmpz_ptr w, wmpz_ptr u, wmpz_ptr v) { if (vw) { up2 = PTR(u1); if (wmpn_cmp(up2, wp, abs_usize) < 0) { - usb5 = sub_n_rx(wp, up2, abs_usize); + struct_res5 = open_rx(wp, up2); + nr5 = struct_res5.__field_0; + nx5 = struct_res5.__field_1; + ny5 = struct_res5.__field_2; + res5 = wmpn_sub_n(nr5, nx5, ny5, abs_usize); + IGNORE2(wp, up2); + usb5 = res5; normalize(wp, &wsize); if (usize >= 0) { wsize = -wsize; } } else { - usb6 = sub_n_ry(up2, wp, abs_usize); + struct_res6 = open_rx(wp, up2); + nr6 = struct_res6.__field_0; + ny6 = struct_res6.__field_1; + nx6 = struct_res6.__field_2; + res6 = wmpn_sub_n(nr6, nx6, ny6, abs_usize); + IGNORE2(wp, up2); + usb6 = res6; normalize(wp, &wsize); if (usize < 0) { wsize = -wsize; @@ -110,13 +211,25 @@ void wmpz_add(wmpz_ptr w, wmpz_ptr u, wmpz_ptr v) { up3 = PTR(u1); vp3 = PTR(v1); if (wmpn_cmp(up3, vp3, abs_usize) < 0) { - usb7 = sub_n(wp, vp3, up3, abs_usize); + struct_res7 = open_sep(wp, vp3, up3); + nr7 = struct_res7.__field_0; + nx7 = struct_res7.__field_1; + ny7 = struct_res7.__field_2; + res7 = wmpn_sub_n(nr7, nx7, ny7, abs_usize); + IGNORE3(wp, vp3, up3); + usb7 = res7; normalize(wp, &wsize); if (usize >= 0) { wsize = -wsize; } } else { - usb8 = sub_n(wp, up3, vp3, abs_usize); + struct_res8 = open_sep(wp, up3, vp3); + nr8 = struct_res8.__field_0; + nx8 = struct_res8.__field_1; + ny8 = struct_res8.__field_2; + res8 = wmpn_sub_n(nr8, nx8, ny8, abs_usize); + IGNORE3(wp, up3, vp3); + usb8 = res8; normalize(wp, &wsize); if (usize < 0) { wsize = -wsize; @@ -131,24 +244,42 @@ void wmpz_add(wmpz_ptr w, wmpz_ptr u, wmpz_ptr v) { cy = UINT64_C(0); if (uw) { if (vw) { - o = add_n_rxy(wp, abs_vsize); + o = wmpn_add_n(wp, wp, wp, abs_vsize); cy = o; } else { vp4 = PTR(v1); - o1 = add_rx(wp, abs_usize, vp4, abs_vsize); + struct_res9 = open_rx(wp, vp4); + nr9 = struct_res9.__field_0; + nx9 = struct_res9.__field_1; + ny9 = struct_res9.__field_2; + res9 = wmpn_add(nr9, nx9, abs_usize, ny9, abs_vsize); + IGNORE2(wp, vp4); + o1 = res9; cy = o1; (void)(v1); } } else { if (vw) { up4 = PTR(u1); - o2 = add_ry(up4, abs_usize, wp, abs_vsize); + struct_res10 = open_rx(wp, up4); + nr10 = struct_res10.__field_0; + ny10 = struct_res10.__field_1; + nx10 = struct_res10.__field_2; + res10 = wmpn_add(nr10, nx10, abs_usize, ny10, abs_vsize); + IGNORE2(wp, up4); + o2 = res10; cy = o2; (void)(u1); } else { up5 = PTR(u1); vp5 = PTR(v1); - o3 = add(wp, up5, abs_usize, vp5, abs_vsize); + struct_res11 = open_sep(wp, up5, vp5); + nr11 = struct_res11.__field_0; + nx11 = struct_res11.__field_1; + ny11 = struct_res11.__field_2; + res11 = wmpn_add(nr11, nx11, abs_usize, ny11, abs_vsize); + IGNORE3(wp, up5, vp5); + o3 = res11; cy = o3; (void)(u1); (void)(v1); diff --git a/lib/zsub.c b/lib/zsub.c index dc3e96e779e6c50d528ea76226af9162dc3bae80..2328dd79d2315a1c1e2e435e0139c0cb8f91c03b 100644 --- a/lib/zsub.c +++ b/lib/zsub.c @@ -8,24 +8,83 @@ void wmpz_sub(wmpz_ptr w, wmpz_ptr u, wmpz_ptr v) { int uw, vw; uint64_t * wp; uint64_t * vp; - uint64_t usb, usb1; + uint64_t usb; + uint64_t * nr; + uint64_t * nx; + uint64_t * ny; + struct __open_rx_result struct_res; + uint64_t res, usb1; uint64_t * up; + uint64_t * nr1; + uint64_t * ny1; + uint64_t * nx1; + struct __open_rx_result struct_res1; + uint64_t res1; uint64_t * up1; uint64_t * vp1; - uint64_t usb2, usb3, usb4; + uint64_t usb2; + uint64_t * nr2; + uint64_t * nx2; + uint64_t * ny2; + struct __open_sep_result struct_res2; + uint64_t res2, usb3; uint64_t * vp2; + uint64_t * nr3; + uint64_t * ny3; + uint64_t * nx3; + struct __open_rx_result struct_res3; + uint64_t res3, usb4; + uint64_t * nr4; + uint64_t * nx4; + uint64_t * ny4; + struct __open_rx_result struct_res4; + uint64_t res4, usb5; uint64_t * up2; - uint64_t usb5, usb6; + uint64_t * nr5; + uint64_t * nx5; + uint64_t * ny5; + struct __open_rx_result struct_res5; + uint64_t res5, usb6; + uint64_t * nr6; + uint64_t * ny6; + uint64_t * nx6; + struct __open_rx_result struct_res6; + uint64_t res6; uint64_t * up3; uint64_t * vp3; - uint64_t usb7, usb8; + uint64_t usb7; + uint64_t * nr7; + uint64_t * nx7; + uint64_t * ny7; + struct __open_sep_result struct_res7; + uint64_t res7, usb8; + uint64_t * nr8; + uint64_t * nx8; + uint64_t * ny8; + struct __open_sep_result struct_res8; + uint64_t res8; uint64_t cy; uint64_t * vp4; - uint64_t o, o1; + uint64_t o; + uint64_t * nr9; + uint64_t * nx9; + uint64_t * ny9; + struct __open_rx_result struct_res9; + uint64_t res9, o1; uint64_t * up4; + uint64_t * nr10; + uint64_t * ny10; + uint64_t * nx10; + struct __open_rx_result struct_res10; + uint64_t res10; uint64_t * up5; uint64_t * vp5; uint64_t o2; + uint64_t * nr11; + uint64_t * nx11; + uint64_t * ny11; + struct __open_sep_result struct_res11; + uint64_t res11; u1 = u; v1 = v; if (u1 == v1) { @@ -55,17 +114,35 @@ void wmpz_sub(wmpz_ptr w, wmpz_ptr u, wmpz_ptr v) { if (!(abs_usize == abs_vsize)) { if (uw) { vp = PTR(v1); - usb = sub_rx(wp, abs_usize, vp, abs_vsize); + struct_res = open_rx(wp, vp); + nr = struct_res.__field_0; + nx = struct_res.__field_1; + ny = struct_res.__field_2; + res = wmpn_sub(nr, nx, abs_usize, ny, abs_vsize); + IGNORE2(wp, vp); + usb = res; (void)(v1); } else { if (vw) { up = PTR(u1); - usb1 = sub_ry(up, abs_usize, wp, abs_vsize); + struct_res1 = open_rx(wp, up); + nr1 = struct_res1.__field_0; + ny1 = struct_res1.__field_1; + nx1 = struct_res1.__field_2; + res1 = wmpn_sub(nr1, nx1, abs_usize, ny1, abs_vsize); + IGNORE2(wp, up); + usb1 = res1; (void)(u1); } else { up1 = PTR(u1); vp1 = PTR(v1); - usb2 = sub(wp, up1, abs_usize, vp1, abs_vsize); + struct_res2 = open_sep(wp, up1, vp1); + nr2 = struct_res2.__field_0; + nx2 = struct_res2.__field_1; + ny2 = struct_res2.__field_2; + res2 = wmpn_sub(nr2, nx2, abs_usize, ny2, abs_vsize); + IGNORE3(wp, up1, vp1); + usb2 = res2; (void)(u1); (void)(v1); } @@ -80,13 +157,25 @@ void wmpz_sub(wmpz_ptr w, wmpz_ptr u, wmpz_ptr v) { if (uw) { vp2 = PTR(v1); if (wmpn_cmp(wp, vp2, abs_usize) < 0) { - usb3 = sub_n_ry(vp2, wp, abs_usize); + struct_res3 = open_rx(wp, vp2); + nr3 = struct_res3.__field_0; + ny3 = struct_res3.__field_1; + nx3 = struct_res3.__field_2; + res3 = wmpn_sub_n(nr3, nx3, ny3, abs_usize); + IGNORE2(wp, vp2); + usb3 = res3; normalize(wp, &wsize); if (usize >= 0) { wsize = -wsize; } } else { - usb4 = sub_n_rx(wp, vp2, abs_usize); + struct_res4 = open_rx(wp, vp2); + nr4 = struct_res4.__field_0; + nx4 = struct_res4.__field_1; + ny4 = struct_res4.__field_2; + res4 = wmpn_sub_n(nr4, nx4, ny4, abs_usize); + IGNORE2(wp, vp2); + usb4 = res4; normalize(wp, &wsize); if (usize < 0) { wsize = -wsize; @@ -97,13 +186,25 @@ void wmpz_sub(wmpz_ptr w, wmpz_ptr u, wmpz_ptr v) { if (vw) { up2 = PTR(u1); if (wmpn_cmp(up2, wp, abs_usize) < 0) { - usb5 = sub_n_rx(wp, up2, abs_usize); + struct_res5 = open_rx(wp, up2); + nr5 = struct_res5.__field_0; + nx5 = struct_res5.__field_1; + ny5 = struct_res5.__field_2; + res5 = wmpn_sub_n(nr5, nx5, ny5, abs_usize); + IGNORE2(wp, up2); + usb5 = res5; normalize(wp, &wsize); if (usize >= 0) { wsize = -wsize; } } else { - usb6 = sub_n_ry(up2, wp, abs_usize); + struct_res6 = open_rx(wp, up2); + nr6 = struct_res6.__field_0; + ny6 = struct_res6.__field_1; + nx6 = struct_res6.__field_2; + res6 = wmpn_sub_n(nr6, nx6, ny6, abs_usize); + IGNORE2(wp, up2); + usb6 = res6; normalize(wp, &wsize); if (usize < 0) { wsize = -wsize; @@ -114,13 +215,25 @@ void wmpz_sub(wmpz_ptr w, wmpz_ptr u, wmpz_ptr v) { up3 = PTR(u1); vp3 = PTR(v1); if (wmpn_cmp(up3, vp3, abs_usize) < 0) { - usb7 = sub_n(wp, vp3, up3, abs_usize); + struct_res7 = open_sep(wp, vp3, up3); + nr7 = struct_res7.__field_0; + nx7 = struct_res7.__field_1; + ny7 = struct_res7.__field_2; + res7 = wmpn_sub_n(nr7, nx7, ny7, abs_usize); + IGNORE3(wp, vp3, up3); + usb7 = res7; normalize(wp, &wsize); if (usize >= 0) { wsize = -wsize; } } else { - usb8 = sub_n(wp, up3, vp3, abs_usize); + struct_res8 = open_sep(wp, up3, vp3); + nr8 = struct_res8.__field_0; + nx8 = struct_res8.__field_1; + ny8 = struct_res8.__field_2; + res8 = wmpn_sub_n(nr8, nx8, ny8, abs_usize); + IGNORE3(wp, up3, vp3); + usb8 = res8; normalize(wp, &wsize); if (usize < 0) { wsize = -wsize; @@ -135,19 +248,37 @@ void wmpz_sub(wmpz_ptr w, wmpz_ptr u, wmpz_ptr v) { cy = UINT64_C(0); if (uw) { vp4 = PTR(v1); - o = add_rx(wp, abs_usize, vp4, abs_vsize); + struct_res9 = open_rx(wp, vp4); + nr9 = struct_res9.__field_0; + nx9 = struct_res9.__field_1; + ny9 = struct_res9.__field_2; + res9 = wmpn_add(nr9, nx9, abs_usize, ny9, abs_vsize); + IGNORE2(wp, vp4); + o = res9; cy = o; (void)(v1); } else { if (vw) { up4 = PTR(u1); - o1 = add_ry(up4, abs_usize, wp, abs_vsize); + struct_res10 = open_rx(wp, up4); + nr10 = struct_res10.__field_0; + ny10 = struct_res10.__field_1; + nx10 = struct_res10.__field_2; + res10 = wmpn_add(nr10, nx10, abs_usize, ny10, abs_vsize); + IGNORE2(wp, up4); + o1 = res10; cy = o1; (void)(u1); } else { up5 = PTR(u1); vp5 = PTR(v1); - o2 = add(wp, up5, abs_usize, vp5, abs_vsize); + struct_res11 = open_sep(wp, up5, vp5); + nr11 = struct_res11.__field_0; + nx11 = struct_res11.__field_1; + ny11 = struct_res11.__field_2; + res11 = wmpn_add(nr11, nx11, abs_usize, ny11, abs_vsize); + IGNORE3(wp, up5, vp5); + o2 = res11; cy = o2; (void)(u1); (void)(v1); diff --git a/why3 b/why3 index 226ba5b0f0777654d637b1b88006ab54c46a31a2..2a35b574eba191bed7953b6d9fc6ffb4c417ab0b 160000 --- a/why3 +++ b/why3 @@ -1 +1 @@ -Subproject commit 226ba5b0f0777654d637b1b88006ab54c46a31a2 +Subproject commit 2a35b574eba191bed7953b6d9fc6ffb4c417ab0b