Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
why3
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
119
Issues
119
List
Boards
Labels
Service Desk
Milestones
Merge Requests
16
Merge Requests
16
Operations
Operations
Incidents
Packages & Registries
Packages & Registries
Container Registry
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Why3
why3
Commits
c52555e9
Commit
c52555e9
authored
Apr 29, 2020
by
Guillaume Melquiond
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Clean wmp.h a bit.
parent
3c3b7463
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
20 additions
and
14 deletions
+20
-14
examples/multiprecision/wmp.h
examples/multiprecision/wmp.h
+20
-14
No files found.
examples/multiprecision/wmp.h
View file @
c52555e9
#ifndef __WMP_H__
#define __WMP_H__
#include <stdlib.h>
#include <stdint.h>
typedef
int32_t
wmp_size_t
;
...
...
@@ -39,24 +40,26 @@ void wmpz_set_ui (wmpz_ptr, uint64_t);
void
wmpz_set_si
(
wmpz_ptr
,
int64_t
);
uint64_t
wmpz_get_ui
(
wmpz_srcptr
);
/* Whitespace, leading base prefix and base detection not supported.
base must be between -36 and 62, and |base| must be >= 2. */
int32_t
wmpz_set_str
(
wmpz_ptr
,
const
char
*
sp
,
int32_t
base
);
char
*
wmpz_get_str
(
char
*
,
int32_t
,
wmpz_srcptr
);
// whitespace, leading base prefix, and base detection are not supported.
int32_t
wmpz_set_str
(
wmpz_ptr
,
char
const
*
,
int32_t
base
);
// not verified when size >= 0x2000000.
// sp == NULL is not supported.
char
*
wmpz_get_str
(
char
*
,
int32_t
base
,
wmpz_srcptr
);
int32_t
wmpz_cmp
(
wmpz_srcptr
,
wmpz_ptr
);
int32_t
wmpz_cmp
(
wmpz_srcptr
,
wmpz_
src
ptr
);
int32_t
wmpz_cmp_ui
(
wmpz_srcptr
,
uint64_t
);
int32_t
wmpz_cmp_si
(
wmpz_srcptr
,
int64_t
);
int32_t
wmpz_sgn
(
wmpz_srcptr
);
int32_t
wmpz_cmpabs
(
wmpz_srcptr
,
wmpz_ptr
);
int32_t
wmpz_cmpabs
(
wmpz_srcptr
,
wmpz_
src
ptr
);
int32_t
wmpz_cmpabs_ui
(
wmpz_srcptr
,
uint64_t
);
int32_t
wmpz_sgn
(
wmpz_srcptr
);
void
wmpz_abs
(
wmpz_ptr
,
wmpz_srcptr
);
void
wmpz_add
(
wmpz_ptr
,
wmpz_srcptr
,
wmpz_ptr
);
void
wmpz_add
(
wmpz_ptr
,
wmpz_srcptr
,
wmpz_
src
ptr
);
void
wmpz_add_ui
(
wmpz_ptr
,
wmpz_srcptr
,
uint64_t
);
void
wmpz_sub
(
wmpz_ptr
,
wmpz_srcptr
,
wmpz_ptr
);
void
wmpz_sub
(
wmpz_ptr
,
wmpz_srcptr
,
wmpz_
src
ptr
);
void
wmpz_sub_ui
(
wmpz_ptr
,
wmpz_srcptr
,
uint64_t
);
void
wmpz_ui_sub
(
wmpz_ptr
,
uint64_t
,
wmpz_srcptr
);
...
...
@@ -67,8 +70,10 @@ 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_tdiv_qr
(
wmpz_ptr
,
wmpz_ptr
,
wmpz_srcptr
,
wmpz_srcptr
);
uint64_t
wmpz_tdiv_qr_ui
(
wmpz_ptr
,
wmpz_ptr
,
wmpz_srcptr
,
uint64_t
);
void
wmpz_tdiv_qr
(
wmpz_ptr
quot
,
wmpz_ptr
rem
,
wmpz_srcptr
,
wmpz_srcptr
);
uint64_t
wmpz_tdiv_qr_ui
(
wmpz_ptr
quot
,
wmpz_ptr
rem
,
wmpz_srcptr
,
uint64_t
);
int32_t
wmpn_cmp
(
wmp_srcptr
,
wmp_srcptr
,
wmp_size_t
);
...
...
@@ -91,9 +96,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
);
size_t
wmpn_get_str
(
unsigned
char
*
,
int
,
wmp_srcptr
,
wmp_size_t
);
wmp_size_t
wmpn_set_str
(
wmp_ptr
,
unsigned
const
char
*
,
size_t
,
int
);
// 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
);
...
...
@@ -111,6 +113,10 @@ void wmpn_tdiv_qr (wmp_ptr qp, wmp_ptr rp, wmp_size_t qxn, wmp_srcptr np,
// not verified when rp and np are aliased.
wmp_size_t
wmpn_sqrtrem
(
wmp_ptr
sp
,
wmp_ptr
rp
,
wmp_srcptr
np
,
wmp_size_t
);
wmp_size_t
wmpn_set_str
(
wmp_ptr
,
unsigned
char
const
*
,
uint32_t
,
int32_t
base
);
// not verified when un >= 0x2000000
wmp_size_t
wmpn_get_str
(
unsigned
char
*
,
int32_t
base
,
wmp_srcptr
,
wmp_size_t
);
#ifdef __cplusplus
}
#endif
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment