Mentions légales du service
Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
W
WhyMP
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Deploy
Releases
Model registry
Monitor
Incidents
Service Desk
Analyze
Value stream analytics
Contributor analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Why3
WhyMP
Commits
04cb89d3
Commit
04cb89d3
authored
5 years ago
by
Guillaume Melquiond
Browse files
Options
Downloads
Patches
Plain Diff
Clean interface.
parent
a850e392
No related branches found
No related tags found
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
wmp.h
+31
-30
31 additions, 30 deletions
wmp.h
with
31 additions
and
30 deletions
wmp.h
+
31
−
30
View file @
04cb89d3
...
...
@@ -8,52 +8,55 @@ typedef uint64_t wmp_limb_t;
typedef
wmp_limb_t
*
wmp_ptr
;
typedef
wmp_limb_t
const
*
wmp_srcptr
;
#if defined (__GMP_H__) || defined (__MINI_GMP_H__)
typedef
mpz_ptr
wmpz_ptr
;
#else
typedef
struct
{
int
_mp_alloc
;
int
_mp_size
;
uint64_t
*
_mp_d
;
#if !defined(__GMP_H__) && !defined(__MINI_GMP_H__)
typedef
struct
{
int
_mp_alloc
;
int
_mp_size
;
wmp_limb_t
*
_mp_d
;
}
__mpz_struct
;
typedef
__mpz_struct
*
mpz_ptr
;
#endif
typedef
__mpz_struct
wmpz_t
[
1
];
typedef
__mpz_struct
*
wmpz_ptr
;
typedef
__mpz_struct
const
*
wmpz_srcptr
;
#ifdef __cplusplus
extern
"C"
{
#endif
static
inline
void
wmpz_init
(
mpz_ptr
p
)
{
static
inline
void
wmpz_init
(
w
mpz_ptr
p
)
{
p
->
_mp_alloc
=
1
;
p
->
_mp_size
=
0
;
p
->
_mp_d
=
malloc
(
sizeof
(
uint64_t
));
}
void
wmpz_clear
(
mpz_ptr
);
wmp_ptr
wmpz_realloc
(
mpz_ptr
,
wmp_size_t
);
void
wmpz_set_ui
(
mpz_ptr
,
uint64_t
);
void
wmpz_set_si
(
mpz_ptr
,
int64_t
);
uint64_t
wmpz_get_ui
(
mpz_ptr
);
int32_t
wmpz_cmp
(
mpz_ptr
,
mpz_ptr
);
int32_t
wmpz_cmp_ui
(
mpz_ptr
,
uint64_t
);
void
wmpz_clear
(
wmpz_ptr
);
wmp_ptr
wmpz_realloc
(
wmpz_ptr
,
wmp_size_t
);
void
wmpz_set_ui
(
wmpz_ptr
,
uint64_t
);
void
wmpz_set_si
(
wmpz_ptr
,
int64_t
);
uint64_t
wmpz_get_ui
(
wmpz_srcptr
);
int32_t
wmpz_cmp
(
wmpz_srcptr
,
wmpz_ptr
);
int32_t
wmpz_cmp_ui
(
wmpz_srcptr
,
uint64_t
);
void
wmpz_add
(
mpz_ptr
,
mpz_ptr
,
mpz_ptr
);
void
wmpz_add_ui
(
mpz_ptr
,
mpz_ptr
,
uint64_t
);
void
wmpz_add
(
w
mpz_ptr
,
w
mpz_
src
ptr
,
w
mpz_ptr
);
void
wmpz_add_ui
(
w
mpz_ptr
,
w
mpz_
src
ptr
,
uint64_t
);
void
wmpz_sub
(
mpz_ptr
,
mpz_ptr
,
mpz_ptr
);
void
wmpz_sub_ui
(
mpz_ptr
,
mpz_ptr
,
uint64_t
);
void
wmpz_ui_sub
(
mpz_ptr
,
uint64_t
,
mpz_ptr
);
void
wmpz_sub
(
wmpz_ptr
,
wmpz_srcptr
,
wmpz_ptr
);
void
wmpz_sub_ui
(
wmpz_ptr
,
wmpz_srcptr
,
uint64_t
);
void
wmpz_ui_sub
(
wmpz_ptr
,
uint64_t
,
wmpz_srcptr
);
void
wmpz_mul
(
wmpz_ptr
,
wmpz_srcptr
,
wmpz_srcptr
);
void
wmpz_mul_si
(
wmpz_ptr
,
wmpz_srcptr
,
int64_t
);
void
wmpz_mul_ui
(
wmpz_ptr
,
wmpz_srcptr
,
uint64_t
);
void
wmpz_mul2exp
(
wmpz_ptr
,
wmpz_srcptr
,
uint64_t
);
void
wmpz_tdiv_q_2exp
(
wmpz_ptr
,
wmpz_srcptr
,
uint64_t
);
void
wmpz_mul
(
mpz_ptr
,
mpz_ptr
,
mpz_ptr
);
void
wmpz_mul_si
(
mpz_ptr
,
mpz_ptr
,
int64_t
);
void
wmpz_mul_ui
(
mpz_ptr
,
mpz_ptr
,
uint64_t
);
void
wmpz_mul2exp
(
mpz_ptr
,
mpz_ptr
,
uint64_t
);
void
wmpz_tdiv_q_2exp
(
mpz_ptr
,
mpz_ptr
,
uint64_t
);
int32_t
wmpn_cmp
(
wmp_srcptr
,
wmp_srcptr
,
wmp_size_t
);
...
...
@@ -76,7 +79,6 @@ wmp_limb_t wmpn_rshift (wmp_ptr, wmp_srcptr, wmp_size_t, uint64_t);
void
wmpn_powm
(
wmp_ptr
,
wmp_srcptr
,
wmp_size_t
,
wmp_srcptr
,
wmp_size_t
,
wmp_srcptr
,
wmp_size_t
,
wmp_ptr
);
// not verified when rp and up are aliased.
wmp_limb_t
wmpn_add_1
(
wmp_ptr
rp
,
wmp_srcptr
up
,
wmp_size_t
,
wmp_limb_t
);
wmp_limb_t
wmpn_sub_1
(
wmp_ptr
rp
,
wmp_srcptr
up
,
wmp_size_t
,
wmp_limb_t
);
...
...
@@ -84,7 +86,6 @@ wmp_limb_t wmpn_mul_1 (wmp_ptr rp, wmp_srcptr up, wmp_size_t, wmp_limb_t);
wmp_limb_t
wmpn_addmul_1
(
wmp_ptr
rp
,
wmp_srcptr
up
,
wmp_size_t
,
wmp_limb_t
);
wmp_limb_t
wmpn_submul_1
(
wmp_ptr
rp
,
wmp_srcptr
up
,
wmp_size_t
,
wmp_limb_t
);
// not verified when qp and up are aliased.
wmp_limb_t
wmpn_divrem_1
(
wmp_ptr
qp
,
wmp_srcptr
up
,
wmp_size_t
,
wmp_limb_t
);
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment