Mentions légales du service

Skip to content
Snippets Groups Projects
Commit fd6211c1 authored by Guillaume Melquiond's avatar Guillaume Melquiond
Browse files

Update Why3 and refresh generated files.

parent 6747a19a
No related branches found
No related tags found
No related merge requests found
#ifndef EUCLIDEANDIVISION_H_INCLUDED
#include <stdlib.h>
#include <stdint.h>
#include <stdio.h>
#include <assert.h>
#include <alloca.h>
#define EUCLIDEANDIVISION_H_INCLUDED
#endif // EUCLIDEANDIVISION_H_INCLUDED
#ifndef EXPLOG_H_INCLUDED
#include <stdlib.h>
#include <stdint.h>
#include <stdio.h>
#include <assert.h>
#include <alloca.h>
#define EXPLOG_H_INCLUDED
#endif // EXPLOG_H_INCLUDED
#ifndef FXP_H_INCLUDED #ifndef FXP_H_INCLUDED
#include <stdlib.h>
#include <stdint.h>
#include <stdio.h>
#include <assert.h>
#include <alloca.h>
uint64_t fxp_init(uint64_t x);
uint64_t fxp_id(uint64_t x);
#define FXP_H_INCLUDED #define FXP_H_INCLUDED
#endif // FXP_H_INCLUDED #endif // FXP_H_INCLUDED
#include "get_str.h"
#include <stdint.h>
uint32_t wmpn_get_str_bits(unsigned char * sp, uint32_t bits, uint64_t * up,
int32_t un) {
uint64_t um, sb, b;
int32_t e, sn;
int32_t i, j;
uint64_t shift, digit;
uint64_t lu, luqt, high, sj;
um = up[un - 1];
sb = wmpn_limb_size_in_base_2(um);
e = 64 * (un - 1) + (int32_t)sb + (int32_t)bits - 1;
sn = e / (int32_t)bits;
b = UINT64_C(1) << (uint64_t)bits;
i = 0;
j = sn;
shift = UINT64_C(0);
while (j > 0) {
j = j - 1;
lu = up[i];
digit = lu >> shift;
shift = shift + (uint64_t)bits;
if (shift >= UINT64_C(64)) {
i = i + 1;
if (i < un) {
shift = shift - UINT64_C(64);
luqt = up[i];
high = luqt << ((uint64_t)bits - shift);
digit = digit + high;
}
}
sj = digit % b;
sp[j] = (unsigned char)sj;
}
return (uint32_t)sn;
}
uint32_t wmpn_limb_get_str(unsigned char * sp, uint64_t * w, uint64_t d1,
uint64_t di, uint64_t shift) {
int32_t i;
uint64_t h, l, q, r;
struct __div2by1_inv_result struct_res;
i = 0;
while (*w > UINT64_C(0)) {
h = *w >> (UINT64_C(64) - shift);
l = *w << shift;
struct_res = div2by1_inv(h, l, d1, di);
q = struct_res.__field_0;
r = struct_res.__field_1;
sp[i] = (unsigned char)(r >> shift);
*w = q;
i = i + 1;
}
return (uint32_t)i;
}
uint32_t wmpn_get_str_other(unsigned char * sp, int32_t base,
struct wmpn_base_info info, uint64_t * up,
int32_t un) {
uint64_t shift, d1, di;
int32_t sn, n;
uint64_t * tp;
uint64_t w;
uint64_t o;
unsigned char * spn;
uint32_t sdone;
uint32_t o1;
uint64_t lu;
unsigned char * spn1;
uint32_t sdone1;
int32_t i;
unsigned char t;
shift = (uint64_t)__builtin_clzll((uint64_t)base);
d1 = (uint64_t)base << shift;
di = invert_limb(d1);
sn = 0;
n = un;
if (n > 1) {
tp = alloca((uint32_t)n * sizeof(uint64_t));
while (n > 1) {
o = wmpn_divrem_1(tp, up, n, info.bb);
w = o;
wmpn_copyi1(up, tp, n);
n = n - (up[n - 1] == UINT64_C(0));
spn = sp + sn;
o1 = wmpn_limb_get_str(spn, &w, d1, di, shift);
sdone = o1;
sn = sn + (int32_t)sdone;
while (sdone < info.exp) {
sp[sn] = 0;
sn = sn + 1;
sdone = sdone + 1U;
}
}
}
lu = *up;
spn1 = sp + sn;
sdone1 = wmpn_limb_get_str(spn1, &lu, d1, di, shift);
sn = sn + (int32_t)sdone1;
i = 0;
while (2 * i + 1 < sn) {
t = sp[i];
sp[i] = sp[sn - i - 1];
sp[sn - i - 1] = t;
i = i + 1;
}
return (uint32_t)sn;
}
uint32_t wmpn_get_str(unsigned char * sp, int32_t base, uint64_t * up,
int32_t un) {
uint32_t bits;
struct wmpn_base_info info;
bits = wmpn_base_power_of_two_p((uint64_t)base);
if (!(bits == 0U)) {
return wmpn_get_str_bits(sp, bits, up, un);
} else {
info = wmpn_get_base_info((uint64_t)base);
return wmpn_get_str_other(sp, base, info, up, un);
}
}
#ifndef GET_STR_H_INCLUDED
#include "uint64gmp.h"
#include "c.h"
#include "powm.h"
#include "logical.h"
#include "baseinfo.h"
#include "div.h"
#include "utilold.h"
#include <stdint.h>
uint32_t wmpn_get_str_bits(unsigned char * sp, uint32_t bits, uint64_t * up,
int32_t un);
uint32_t wmpn_limb_get_str(unsigned char * sp, uint64_t * w, uint64_t d1,
uint64_t di, uint64_t shift);
uint32_t wmpn_get_str_other(unsigned char * sp, int32_t base,
struct wmpn_base_info info, uint64_t * up,
int32_t un);
uint32_t wmpn_get_str(unsigned char * sp, int32_t base, uint64_t * up,
int32_t un);
#define GET_STR_H_INCLUDED
#endif // GET_STR_H_INCLUDED
#ifndef INT_H_INCLUDED
#include <stdlib.h>
#include <stdint.h>
#include <stdio.h>
#include <assert.h>
#include <alloca.h>
#define INT_H_INCLUDED
#endif // INT_H_INCLUDED
#ifndef INT32_H_INCLUDED
#include <stdlib.h>
#include <stdint.h>
#include <stdio.h>
#include <assert.h>
#include <alloca.h>
#define INT32_H_INCLUDED
#endif // INT32_H_INCLUDED
#ifndef INT64_H_INCLUDED
#include <stdlib.h>
#include <stdint.h>
#include <stdio.h>
#include <assert.h>
#include <alloca.h>
#define INT64_H_INCLUDED
#endif // INT64_H_INCLUDED
#include <stdlib.h> #include "logical.h"
#include <stdint.h> #include <stdint.h>
#include <stdio.h>
#include <assert.h>
#include <alloca.h>
#include "int.h"
#include "int32.h"
#include "uint64gmp.h"
#include "power.h"
#include "c.h"
#include "array.h"
#include "map.h"
#include "types.h"
#include "euclideandivision.h"
#include "logicalutil.h"
#include "alias.h"
uint64_t wmpn_lshift(uint64_t * r, uint64_t * x, int32_t sz, uint64_t cnt) { uint64_t wmpn_lshift(uint64_t * r, uint64_t * x, int32_t sz, uint64_t cnt) {
int32_t msb; int32_t msb;
...@@ -58,19 +34,6 @@ uint64_t wmpn_lshift(uint64_t * r, uint64_t * x, int32_t sz, uint64_t cnt) { ...@@ -58,19 +34,6 @@ uint64_t wmpn_lshift(uint64_t * r, uint64_t * x, int32_t sz, uint64_t cnt) {
return retval; return retval;
} }
uint64_t wmpn_lshift_sep(uint64_t * r, uint64_t * x, int32_t sz, uint64_t cnt) {
uint64_t * nr;
uint64_t * nx;
struct __open_shift_sep_result struct_res;
uint64_t res;
struct_res = open_shift_sep(r, x, sz);
nr = struct_res.__field_0;
nx = struct_res.__field_1;
res = wmpn_lshift(nr, nx, sz, cnt);
IGNORE2(r,x);
return res;
}
uint64_t wmpn_rshift(uint64_t * r, uint64_t * x, int32_t sz, uint64_t cnt) { uint64_t wmpn_rshift(uint64_t * r, uint64_t * x, int32_t sz, uint64_t cnt) {
uint64_t tnc; uint64_t tnc;
int32_t msb; int32_t msb;
...@@ -107,17 +70,3 @@ uint64_t wmpn_rshift(uint64_t * r, uint64_t * x, int32_t sz, uint64_t cnt) { ...@@ -107,17 +70,3 @@ uint64_t wmpn_rshift(uint64_t * r, uint64_t * x, int32_t sz, uint64_t cnt) {
*rp = low; *rp = low;
return retval; return retval;
} }
uint64_t wmpn_rshift_sep(uint64_t * r, uint64_t * x, int32_t sz, uint64_t cnt) {
uint64_t * nr;
uint64_t * nx;
struct __open_shift_sep_result struct_res;
uint64_t res;
struct_res = open_shift_sep(r, x, sz);
nr = struct_res.__field_0;
nx = struct_res.__field_1;
res = wmpn_rshift(nr, nx, sz, cnt);
IGNORE2(r,x);
return res;
}
#ifndef LOGICAL_H_INCLUDED #ifndef LOGICAL_H_INCLUDED
#include <stdlib.h> #include "uint64gmp.h"
#include "c.h"
#include "logicalutil.h"
#include "alias.h"
#include <stdint.h> #include <stdint.h>
#include <stdio.h>
#include <assert.h>
#include <alloca.h>
uint64_t wmpn_lshift(uint64_t * r, uint64_t * x, int32_t sz, uint64_t cnt);
uint64_t wmpn_lshift_sep(uint64_t * r, uint64_t * x, int32_t sz, uint64_t cnt); uint64_t wmpn_lshift(uint64_t * r, uint64_t * x, int32_t sz, uint64_t cnt);
uint64_t wmpn_rshift(uint64_t * r, uint64_t * x, int32_t sz, uint64_t cnt); uint64_t wmpn_rshift(uint64_t * r, uint64_t * x, int32_t sz, uint64_t cnt);
uint64_t wmpn_rshift_sep(uint64_t * r, uint64_t * x, int32_t sz, uint64_t cnt);
#define LOGICAL_H_INCLUDED #define LOGICAL_H_INCLUDED
#endif // LOGICAL_H_INCLUDED #endif // LOGICAL_H_INCLUDED
#include <stdlib.h> #include "logicalold.h"
#include <stdint.h> #include <stdint.h>
#include <stdio.h>
#include <assert.h>
#include <alloca.h>
#include "int.h"
#include "int32.h"
#include "uint64gmp.h"
#include "power.h"
#include "c.h"
#include "array.h"
#include "map.h"
#include "types.h"
#include "euclideandivision.h"
#include "logicalutil.h"
uint64_t wmpn_lshift1(uint64_t * r, uint64_t * x, int32_t sz, uint64_t cnt) { uint64_t wmpn_lshift1(uint64_t * r, uint64_t * x, int32_t sz, uint64_t cnt) {
int32_t msb; int32_t msb;
...@@ -156,4 +134,3 @@ uint64_t wmpn_rshift_in_place(uint64_t * x, int32_t sz, uint64_t cnt) { ...@@ -156,4 +134,3 @@ uint64_t wmpn_rshift_in_place(uint64_t * x, int32_t sz, uint64_t cnt) {
x[msb] = low; x[msb] = low;
return retval; return retval;
} }
#ifndef LOGICALOLD_H_INCLUDED #ifndef LOGICALOLD_H_INCLUDED
#include <stdlib.h> #include "uint64gmp.h"
#include "c.h"
#include "logicalutil.h"
#include <stdint.h> #include <stdint.h>
#include <stdio.h>
#include <assert.h>
#include <alloca.h>
uint64_t wmpn_lshift1(uint64_t * r, uint64_t * x, int32_t sz, uint64_t cnt); uint64_t wmpn_lshift1(uint64_t * r, uint64_t * x, int32_t sz, uint64_t cnt);
uint64_t wmpn_rshift1(uint64_t * r, uint64_t * x, int32_t sz, uint64_t cnt); uint64_t wmpn_rshift1(uint64_t * r, uint64_t * x, int32_t sz, uint64_t cnt);
......
#include <stdlib.h> #include "logicalutil.h"
#include <stdint.h> #include <stdint.h>
#include <stdio.h> struct __lsld_ext_result;
#include <assert.h>
#include <alloca.h>
#include "int.h"
#include "int32.h"
#include "uint64gmp.h"
#include "power.h"
#include "c.h"
#include "array.h"
#include "map.h"
#include "types.h"
#include "euclideandivision.h"
uint64_t lsl_mod_ext(uint64_t x, uint64_t cnt) {
return x << cnt;
}
struct __lsld_ext_result
{ uint64_t __field_0;
uint64_t __field_1;
};
struct __lsld_ext_result lsld_ext(uint64_t x, uint64_t cnt) { struct __lsld_ext_result lsld_ext(uint64_t x, uint64_t cnt) {
struct __lsld_ext_result result; struct __lsld_ext_result result;
...@@ -48,8 +21,3 @@ struct __lsld_ext_result lsld_ext(uint64_t x, uint64_t cnt) { ...@@ -48,8 +21,3 @@ struct __lsld_ext_result lsld_ext(uint64_t x, uint64_t cnt) {
return result1; return result1;
} }
} }
int32_t clz_ext(uint64_t x) {
return __builtin_clzll(x);
}
#ifndef LOGICALUTIL_H_INCLUDED #ifndef LOGICALUTIL_H_INCLUDED
#include <stdlib.h> #include "uint64gmp.h"
#include "c.h"
#include <stdint.h> #include <stdint.h>
#include <stdio.h>
#include <assert.h>
#include <alloca.h>
uint64_t lsl_mod_ext(uint64_t x, uint64_t cnt);
struct __lsld_ext_result struct __lsld_ext_result {
{ uint64_t __field_0; uint64_t __field_0;
uint64_t __field_1; uint64_t __field_1;
}; };
struct __lsld_ext_result lsld_ext(uint64_t x, uint64_t cnt); struct __lsld_ext_result lsld_ext(uint64_t x, uint64_t cnt);
int32_t clz_ext(uint64_t x);
#define LOGICALUTIL_H_INCLUDED #define LOGICALUTIL_H_INCLUDED
#endif // LOGICALUTIL_H_INCLUDED #endif // LOGICALUTIL_H_INCLUDED
#ifndef MAP_H_INCLUDED
#include <stdlib.h>
#include <stdint.h>
#include <stdio.h>
#include <assert.h>
#include <alloca.h>
#define MAP_H_INCLUDED
#endif // MAP_H_INCLUDED
#ifndef MINMAX_H_INCLUDED
#include <stdlib.h>
#include <stdint.h>
#include <stdio.h>
#include <assert.h>
#include <alloca.h>
#define MINMAX_H_INCLUDED
#endif // MINMAX_H_INCLUDED
#include <stdlib.h> #include "mul.h"
#include <stdint.h> #include <stdint.h>
#include <stdio.h>
#include <assert.h>
#include <alloca.h>
#include "int.h"
#include "int32.h"
#include "uint64gmp.h"
#include "power.h"
#include "c.h"
#include "array.h"
#include "map.h"
#include "types.h"
#include "util.h"
#include "add.h"
uint64_t wmpn_mul_1(uint64_t * r, uint64_t * x, int32_t sz, uint64_t y) { uint64_t wmpn_mul_1(uint64_t * r, uint64_t * x, int32_t sz, uint64_t y) {
uint64_t cl, ul; uint64_t cl, ul;
...@@ -42,7 +20,7 @@ uint64_t wmpn_mul_1(uint64_t * r, uint64_t * x, int32_t sz, uint64_t y) { ...@@ -42,7 +20,7 @@ uint64_t wmpn_mul_1(uint64_t * r, uint64_t * x, int32_t sz, uint64_t y) {
l = struct_res.__field_0; l = struct_res.__field_0;
h = struct_res.__field_1; h = struct_res.__field_1;
lpl = l + cl; lpl = l + cl;
cl = (lpl < cl ? UINT64_C(1) : UINT64_C(0)) + h; cl = (lpl < cl) + h;
*rp = lpl; *rp = lpl;
rp = rp + 1; rp = rp + 1;
n = n - 1; n = n - 1;
...@@ -71,10 +49,10 @@ uint64_t wmpn_addmul_1(uint64_t * r, uint64_t * x, int32_t sz, uint64_t y) { ...@@ -71,10 +49,10 @@ uint64_t wmpn_addmul_1(uint64_t * r, uint64_t * x, int32_t sz, uint64_t y) {
l = struct_res.__field_0; l = struct_res.__field_0;
h = struct_res.__field_1; h = struct_res.__field_1;
lpl = l + cl; lpl = l + cl;
cl = (lpl < cl ? UINT64_C(1) : UINT64_C(0)) + h; cl = (lpl < cl) + h;
rl = *rp; rl = *rp;
lpl = rl + lpl; lpl = rl + lpl;
cl = (lpl < rl ? UINT64_C(1) : UINT64_C(0)) + cl; cl = (lpl < rl) + cl;
*rp = lpl; *rp = lpl;
rp = rp + 1; rp = rp + 1;
n = n - 1; n = n - 1;
...@@ -125,7 +103,7 @@ uint64_t wmpn_mul_1_in_place(uint64_t * x, int32_t sz, uint64_t y) { ...@@ -125,7 +103,7 @@ uint64_t wmpn_mul_1_in_place(uint64_t * x, int32_t sz, uint64_t y) {
l = struct_res.__field_0; l = struct_res.__field_0;
h = struct_res.__field_1; h = struct_res.__field_1;
lpl = l + cl; lpl = l + cl;
cl = (lpl < cl ? UINT64_C(1) : UINT64_C(0)) + h; cl = (lpl < cl) + h;
*up = lpl; *up = lpl;
up = up + 1; up = up + 1;
n = n - 1; n = n - 1;
...@@ -154,10 +132,10 @@ uint64_t wmpn_submul_1(uint64_t * r, uint64_t * x, int32_t sz, uint64_t y) { ...@@ -154,10 +132,10 @@ uint64_t wmpn_submul_1(uint64_t * r, uint64_t * x, int32_t sz, uint64_t y) {
l = struct_res.__field_0; l = struct_res.__field_0;
h = struct_res.__field_1; h = struct_res.__field_1;
lpl = l + cl; lpl = l + cl;
cl = (lpl < cl ? UINT64_C(1) : UINT64_C(0)) + h; cl = (lpl < cl) + h;
rl = *rp; rl = *rp;
lpl = rl - lpl; lpl = rl - lpl;
cl = (lpl > rl ? UINT64_C(1) : UINT64_C(0)) + cl; cl = (lpl > rl) + cl;
*rp = lpl; *rp = lpl;
rp = rp + 1; rp = rp + 1;
n = n - 1; n = n - 1;
...@@ -175,4 +153,3 @@ uint64_t wmpn_addmul_2(uint64_t * r, uint64_t * x, int32_t sz, uint64_t * y) { ...@@ -175,4 +153,3 @@ uint64_t wmpn_addmul_2(uint64_t * r, uint64_t * x, int32_t sz, uint64_t * y) {
y1 = y[1]; y1 = y[1];
return wmpn_addmul_1(r1, x, sz, y1); return wmpn_addmul_1(r1, x, sz, y1);
} }
#ifndef MUL_H_INCLUDED #ifndef MUL_H_INCLUDED
#include <stdlib.h> #include "uint64gmp.h"
#include "c.h"
#include "util.h"
#include "add.h"
#include <stdint.h> #include <stdint.h>
#include <stdio.h>
#include <assert.h>
#include <alloca.h>
uint64_t wmpn_mul_1(uint64_t * r, uint64_t * x, int32_t sz, uint64_t y); uint64_t wmpn_mul_1(uint64_t * r, uint64_t * x, int32_t sz, uint64_t y);
uint64_t wmpn_addmul_1(uint64_t * r, uint64_t * x, int32_t sz, uint64_t y); uint64_t wmpn_addmul_1(uint64_t * r, uint64_t * x, int32_t sz, uint64_t y);
......
#include <stdlib.h> #include "mul_basecase.h"
#include <stdint.h> #include <stdint.h>
#include <stdio.h>
#include <assert.h>
#include <alloca.h>
#include "int.h"
#include "int32.h"
#include "uint64gmp.h"
#include "power.h"
#include "c.h"
#include "array.h"
#include "map.h"
#include "types.h"
#include "util.h"
#include "add.h"
#include "mul.h"
void wmpn_mul_basecase(uint64_t * r, uint64_t * x, int32_t sx, uint64_t * y, void wmpn_mul_basecase(uint64_t * r, uint64_t * x, int32_t sx, uint64_t * y,
int32_t sy) { int32_t sy) {
...@@ -52,4 +28,3 @@ void wmpn_mul_basecase(uint64_t * r, uint64_t * x, int32_t sx, uint64_t * y, ...@@ -52,4 +28,3 @@ void wmpn_mul_basecase(uint64_t * r, uint64_t * x, int32_t sx, uint64_t * y,
vn = vn - 1; vn = vn - 1;
} }
} }
#ifndef MUL_BASECASE_H_INCLUDED #ifndef MUL_BASECASE_H_INCLUDED
#include <stdlib.h> #include "uint64gmp.h"
#include "c.h"
#include "util.h"
#include "add.h"
#include "mul.h"
#include <stdint.h> #include <stdint.h>
#include <stdio.h>
#include <assert.h>
#include <alloca.h>
void wmpn_mul_basecase(uint64_t * r, uint64_t * x, int32_t sx, uint64_t * y, void wmpn_mul_basecase(uint64_t * r, uint64_t * x, int32_t sx, uint64_t * y,
int32_t sy); int32_t sy);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment