Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Why3
why3
Commits
f983f9eb
Commit
f983f9eb
authored
Feb 15, 2014
by
MARCHE Claude
Browse files
Support for Zarith if available
parent
613fa9a0
Changes
4
Hide whitespace changes
Inline
Side-by-side
Makefile.in
View file @
f983f9eb
...
...
@@ -63,6 +63,7 @@ HACHA = @HACHA@
#PSVIEWER = @PSVIEWER@
#PDFVIEWER = @PDFVIEWER@
INCLUDES
=
@BIGINTINCLUDE@
OFLAGS
=
-w
Aer-41-44-45
-dtypes
-g
-I
lib/why3
$(INCLUDES)
BFLAGS
=
-w
Aer-41-44-45
-dtypes
-g
-I
lib/why3
$(INCLUDES)
...
...
@@ -76,7 +77,7 @@ endif
# external libraries common to all binaries
EXTOBJS
=
EXTLIBS
=
str unix
nums
dynlink
EXTLIBS
=
str unix
@BIGINTLIB@
dynlink
EXTCMA
=
$(
addsuffix
.cma,
$(EXTLIBS)
)
$(
addsuffix
.cmo,
$(EXTOBJS)
)
EXTCMXA
=
$(
addsuffix
.cmxa,
$(EXTLIBS)
)
$(
addsuffix
.cmx,
$(EXTOBJS)
)
...
...
@@ -160,6 +161,21 @@ $(LIBCMX): OFLAGS += -for-pack Why3
$(LIBDEP)
:
$(LIBGENERATED)
# Zarith
ifeq
(@enable_zarith@,yes)
src/util/bigInt.ml
:
src/util/bigInt_ocamlnum.ml src/util/bigInt_zarith.ml
cp
src/util/bigInt_zarith.ml src/util/bigInt.ml
else
src/util/bigInt.ml
:
src/util/bigInt_ocamlnum.ml
cp
src/util/bigInt_ocamlnum.ml src/util/bigInt.ml
endif
# build targets
byte
:
lib/why3/why3.cma
...
...
configure.in
View file @
f983f9eb
...
...
@@ -69,6 +69,13 @@ AC_ARG_ENABLE(native-code,
[ --enable-native-code use the native-code compiler if available],,
enable_native_code=yes)
# Zarith
AC_ARG_ENABLE(zarith,
[ --enable-zarith use extra arbitrary-precision lib Zarith],,
enable_zarith=no)
# IDE
AC_ARG_ENABLE(ide,
...
...
@@ -332,6 +339,30 @@ if test "$enable_html_doc" = yes ; then
fi
fi
# checking for Zarith
if test "$enable_zarith" = yes; then
if test "$USEOCAMLFIND" = yes; then
BIGINTINCLUDE=$(ocamlfind query zarith)
fi
if test -n "$BIGINTINCLUDE"; then
echo "ocamlfind found zarith in $BIGINTINCLUDE"
else
BIGINTINCLUDE="+zarith"
AC_CHECK_FILE($OCAMLLIB/zarith/zarith.cma,,enable_zarith=no)
if test "$enable_zarith" = no; then
AC_MSG_WARN([Lib Zarith not found, using Nums instead.])
reason_zarith=" (zarith not found)"
fi
fi
fi
if test "$enable_zarith" = yes; then
BIGINTLIB=zarith
else
BIGINTLIB=nums
fi
# checking for lablgtk2
if test "$enable_ide" = yes ; then
if test "$USEOCAMLFIND" = yes; then
...
...
@@ -679,6 +710,9 @@ AC_SUBST(SQLITE3LIB)
AC_SUBST(enable_bench)
AC_SUBST(META_OCAMLGRAPH)
AC_SUBST(BIGINTINCLUDE)
AC_SUBST(BIGINTLIB)
AC_SUBST(enable_coq_tactic)
AC_SUBST(enable_coq_libs)
AC_SUBST(enable_coq_fp_libs)
...
...
@@ -748,6 +782,7 @@ echo " Version : $OCAMLVERSION"
echo " Library path : $OCAMLLIB"
echo " Native compilation : $enable_native_code"
echo " Profiling : $enable_profiling"
echo "Zarith : $enable_zarith$reason_zarith"
echo "IDE : $enable_ide$reason_ide"
echo "Bench tool : $enable_bench$reason_bench"
echo "Documentation : $enable_doc$reason_doc"
...
...
src/util/bigInt.ml
deleted
100644 → 0
View file @
613fa9a0
open
Big_int
type
t
=
big_int
let
compare
=
compare_big_int
let
zero
=
zero_big_int
let
of_int
=
big_int_of_int
let
succ
=
succ_big_int
let
pred
=
pred_big_int
let
add_int
=
add_int_big_int
let
mul_int
=
mult_int_big_int
let
add
=
add_big_int
let
sub
=
sub_big_int
let
mul
=
mult_big_int
let
minus
=
minus_big_int
let
sign
=
sign_big_int
let
eq
=
eq_big_int
let
lt
=
lt_big_int
let
gt
=
gt_big_int
let
le
=
le_big_int
let
ge
=
ge_big_int
let
euclidean_div_mod
=
quomod_big_int
let
euclidean_div
x
y
=
fst
(
euclidean_div_mod
x
y
)
let
euclidean_mod
x
y
=
snd
(
euclidean_div_mod
x
y
)
let
computer_div_mod
x
y
=
let
q
,
r
=
quomod_big_int
x
y
in
(* we have x = q*y + r with 0 <= r < |y| *)
if
sign
x
<
0
then
if
sign
y
<
0
then
(
pred
q
,
add
r
y
)
else
(
succ
q
,
sub
r
y
)
else
(
q
,
r
)
let
computer_div
x
y
=
fst
(
computer_div_mod
x
y
)
let
computer_mod
x
y
=
snd
(
computer_div_mod
x
y
)
let
min
=
min_big_int
let
max
=
max_big_int
let
pow_int_pos
=
power_int_positive_int
let
to_string
=
string_of_big_int
let
of_string
=
big_int_of_string
src/util/bigInt_zarith.ml
View file @
f983f9eb
type
t
=
Z
.
t
open
Big_int_Z
type
t
=
big_int
let
compare
=
compare_big_int
let
zero
=
zero_big_int
...
...
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