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
verimag
synchrone
lutin
Commits
91a72845
Commit
91a72845
authored
Dec 12, 2017
by
erwan
Browse files
Fix the CI pipeline
parent
f0e3cfaf
Pipeline
#1589
failed with stages
in 4 minutes and 46 seconds
Changes
16
Pipelines
1
Expand all
Hide whitespace changes
Inline
Side-by-side
.gitlab-ci.yml
View file @
91a72845
...
...
@@ -7,11 +7,15 @@ stages:
-
build
-
test
build
_and_test
:
build
:
stage
:
build
script
:
-
sudo apt-get install -y libgmp-dev libmpfr-dev m4
-
opam install camlp4 ocamlfind
-
opam repo add opam-ocaml-org "https://opam.ocaml.org"
-
opam repo add verimag-sync-repo "http://www-verimag.imag.fr/DIST-TOOLS/SYNCHRONE/opam-repository"
-
opam update
-
opam install -y camlp4 ocamlfind camlidl oasis mlgmpidl
-
opam install rdbg lustre-v6
-
make
-
make install
...
...
Makefile
View file @
91a72845
...
...
@@ -5,7 +5,7 @@ endif
all
:
build
-include
./Makefile.version
-include
mym
akefile
-include
./M
akefile
.local
###################################################
# camlidl clutches...
...
...
@@ -41,7 +41,7 @@ setup.ml:_oasis lutin/src/version.ml polka/vector.ml lutin-utils/src/lutinUtils.
setup.data
:
configure
configure
:
setup.ml
ocaml setup.ml
-configure
ocaml setup.ml
-configure
--prefix
=
$(
shell
opam config var prefix
)
.PHONY
:
doc
doc
:
...
...
Makefile.dev
View file @
91a72845
...
...
@@ -32,10 +32,6 @@ cia:
echo
"*** I won't commit!
\n
*** until you 'make update_version'!"
\
||
(
git commit
-a
-F
log
&&
touch
committed
)
ci
:
test
-f
committed
&&
\
echo
"*** I won't commit!
\n
*** until you 'make update_version'!"
\
||
(
git commit
-F
log
&&
touch
committed
)
push
:
opam-test
git push
&&
make uv
...
...
_oasis
View file @
91a72845
OASISFormat: 0.4
Name: Lutin
Version: 2.3
4
Version: 2.3
5
Authors: Erwan Jahier
Maintainers: erwan.jahier@imag.fr
License: PROP
...
...
@@ -80,6 +80,7 @@ Library ezdl
CSources: Ezdl_c.c,Inspect_c.c
CCOpt: -fPIC
Library gbddml
XMETADescription: gbddml: the Verimag bdd library
Path: gbddml
...
...
lutin-utils/src/lutinUtils.ml
deleted
100644 → 0
View file @
f0e3cfaf
(* File generated from lutinUtils.idl *)
external
gauss_continue
:
int
->
int
->
int
->
int
=
"camlidl_lutinUtils_gauss_continue"
external
gauss_stop
:
int
->
int
->
int
->
int
=
"camlidl_lutinUtils_gauss_stop"
external
interval_continue
:
int
->
int
->
int
->
int
=
"camlidl_lutinUtils_interval_continue"
external
interval_stop
:
int
->
int
->
int
->
int
=
"camlidl_lutinUtils_interval_stop"
lutin-utils/src/lutinUtils.mli
deleted
100644 → 0
View file @
f0e3cfaf
(* File generated from lutinUtils.idl *)
external
gauss_continue
:
int
->
int
->
int
->
int
=
"camlidl_lutinUtils_gauss_continue"
external
gauss_stop
:
int
->
int
->
int
->
int
=
"camlidl_lutinUtils_gauss_stop"
external
interval_continue
:
int
->
int
->
int
->
int
=
"camlidl_lutinUtils_interval_continue"
external
interval_stop
:
int
->
int
->
int
->
int
=
"camlidl_lutinUtils_interval_stop"
lutin/src/version.ml
View file @
91a72845
let
str
=
"2.3
4
"
let
sha
=
"
32b4267
"
let
str
=
"2.3
5
"
let
sha
=
"
f0e3cfa
"
polka/matrix.ml
deleted
100644 → 0
View file @
f0e3cfaf
(* File generated from matrix.idl *)
type
t
and
equation
=
{
var
:
int
;
expr
:
Vector
.
t
}
external
make
:
int
->
int
->
t
=
"camlidl_matrix_matrix_make"
let
dummy
=
make
0
0
external
copy
:
t
->
t
=
"camlidl_matrix_matrix_copy"
external
_print
:
t
->
unit
=
"camlidl_matrix_matrix__print"
external
compare
:
t
->
t
->
int
=
"camlidl_matrix_matrix_compare"
external
hash
:
t
->
int
=
"camlidl_matrix_matrix_hash"
external
compare_sort
:
t
->
t
->
int
=
"camlidl_matrix_matrix_compare_sort"
external
hash_sort
:
t
->
int
=
"camlidl_matrix_matrix_hash_sort"
external
get
:
t
->
int
->
int
->
int
=
"camlidl_matrix_matrix_get"
external
get_str10
:
t
->
int
->
int
->
string
=
"camlidl_matrix_matrix_get_str10"
external
set
:
t
->
int
->
int
->
int
->
unit
=
"camlidl_matrix_matrix_set"
external
set_str10
:
t
->
int
->
int
->
string
->
unit
=
"camlidl_matrix_matrix_set_str10"
external
get_row
:
t
->
int
->
Vector
.
t
=
"camlidl_matrix_matrix_get_row"
external
set_row
:
t
->
int
->
Vector
.
t
->
unit
=
"camlidl_matrix_matrix_set_row"
external
nbrows
:
t
->
int
=
"camlidl_matrix_matrix_nbrows"
external
nbcolumns
:
t
->
int
=
"camlidl_matrix_matrix_nbcolumns"
external
sort_rows
:
t
->
unit
=
"camlidl_matrix_matrix_sort_rows"
external
merge_sort
:
t
->
t
->
t
=
"camlidl_matrix_matrix_merge_sort"
external
assign_variable
:
t
->
int
->
Vector
.
t
->
t
=
"camlidl_matrix_matrix_assign_variable"
external
substitute_variable
:
t
->
int
->
Vector
.
t
->
t
=
"camlidl_matrix_matrix_substitute_variable"
external
assign_variables
:
t
->
equation
array
->
t
=
"camlidl_matrix_matrix_assign_variables"
external
substitute_variables
:
t
->
equation
array
->
t
=
"camlidl_matrix_matrix_substitute_variables"
external
add_dims
:
t
->
int
->
t
=
"camlidl_matrix_matrix_add_dims"
external
add_dims_multi
:
t
->
Vector
.
dimsup
array
->
t
=
"camlidl_matrix_matrix_add_dims_multi"
external
del_dims_multi
:
t
->
Vector
.
dimsup
array
->
t
=
"camlidl_matrix_matrix_del_dims_multi"
external
add_permute_dims
:
t
->
int
->
int
array
->
t
=
"camlidl_matrix_matrix_add_permute_dims"
external
permute_del_dims
:
t
->
int
->
int
array
->
t
=
"camlidl_matrix_matrix_permute_del_dims"
external
is_row_dummy_constraint
:
t
->
int
->
bool
=
"camlidl_matrix_matrix_is_row_dummy_constraint"
let
get_big_int
mat
i
j
=
try
Big_int
.
big_int_of_int
(
get
mat
i
j
)
with
Polka
.
Overflow
(
s
)
->
Big_int
.
big_int_of_string
s
let
set_big_int
mat
i
j
v
=
if
Big_int
.
is_int_big_int
v
then
set
mat
i
j
(
Big_int
.
int_of_big_int
v
)
else
set_str10
mat
i
j
(
Big_int
.
string_of_big_int
v
)
let
print
formatter
mat
=
let
nbrows
=
nbrows
mat
in
Format
.
fprintf
formatter
"@[<v>"
;
for
i
=
0
to
nbrows
-
1
do
Format
.
fprintf
formatter
"%a@ "
Vector
.
print
(
get_row
mat
i
);
done
;
Format
.
fprintf
formatter
"@]"
;
()
let
print_constraints
assoc
formatter
mat
=
let
nbrows
=
nbrows
mat
and
nbcolumns
=
nbcolumns
mat
in
if
nbrows
>
!
Polka
.
print_limit
then
Format
.
fprintf
formatter
"matrix with %i constraints"
nbrows
else
begin
let
lchaines
=
ref
[]
in
for
i
=
nbrows
-
1
downto
0
do
lchaines
:=
(
Polka
.
to_constraint
assoc
(
fun
j
->
get_big_int
mat
i
j
)
nbcolumns
)
::
!
lchaines
done
;
Polka
.
print_list
formatter
"{@[<hov>"
",@,"
"@]}"
Format
.
pp_print_string
!
lchaines
end
let
print_frames
assoc
formatter
mat
=
let
nbrows
=
nbrows
mat
and
nbcolumns
=
nbcolumns
mat
in
if
nbrows
>
!
Polka
.
print_limit
then
Format
.
fprintf
formatter
"matrix with %i frames"
nbrows
else
begin
let
lchaines
=
ref
[]
in
for
i
=
nbrows
-
1
downto
0
do
lchaines
:=
(
Polka
.
to_frame
assoc
(
fun
j
->
get_big_int
mat
i
j
)
nbcolumns
)
::
!
lchaines
done
;
Polka
.
print_list
formatter
"{@[<hov>"
",@,"
"@]}"
Format
.
pp_print_string
!
lchaines
end
let
of_lconstraints
assoc
dim
lstr
=
let
mat
=
make
(
List
.
length
lstr
)
(
!
Polka
.
dec
+
dim
)
in
let
i
=
ref
0
and
l
=
ref
lstr
in
while
!
l
<>
[]
do
let
vec
=
Vector
.
of_constraint
assoc
dim
(
List
.
hd
!
l
)
in
set_row
mat
!
i
vec
;
incr
i
;
l
:=
List
.
tl
!
l
done
;
mat
let
of_lframes
assoc
dim
lstr
=
let
mat
=
make
(
List
.
length
lstr
)
(
!
Polka
.
dec
+
dim
)
in
let
i
=
ref
0
and
l
=
ref
lstr
in
while
!
l
<>
[]
do
let
vec
=
Vector
.
of_frame
assoc
dim
(
List
.
hd
!
l
)
in
set_row
mat
!
i
vec
;
incr
i
;
l
:=
List
.
tl
!
l
done
;
mat
polka/matrix.mli
deleted
100644 → 0
View file @
f0e3cfaf
(* File generated from matrix.idl *)
type
t
and
equation
=
{
var
:
int
;
expr
:
Vector
.
t
}
val
dummy
:
t
external
make
:
int
->
int
->
t
=
"camlidl_matrix_matrix_make"
external
copy
:
t
->
t
=
"camlidl_matrix_matrix_copy"
external
_print
:
t
->
unit
=
"camlidl_matrix_matrix__print"
external
compare
:
t
->
t
->
int
=
"camlidl_matrix_matrix_compare"
external
hash
:
t
->
int
=
"camlidl_matrix_matrix_hash"
external
compare_sort
:
t
->
t
->
int
=
"camlidl_matrix_matrix_compare_sort"
external
hash_sort
:
t
->
int
=
"camlidl_matrix_matrix_hash_sort"
external
get
:
t
->
int
->
int
->
int
=
"camlidl_matrix_matrix_get"
external
get_str10
:
t
->
int
->
int
->
string
=
"camlidl_matrix_matrix_get_str10"
external
set
:
t
->
int
->
int
->
int
->
unit
=
"camlidl_matrix_matrix_set"
external
set_str10
:
t
->
int
->
int
->
string
->
unit
=
"camlidl_matrix_matrix_set_str10"
external
get_row
:
t
->
int
->
Vector
.
t
=
"camlidl_matrix_matrix_get_row"
external
set_row
:
t
->
int
->
Vector
.
t
->
unit
=
"camlidl_matrix_matrix_set_row"
external
nbrows
:
t
->
int
=
"camlidl_matrix_matrix_nbrows"
external
nbcolumns
:
t
->
int
=
"camlidl_matrix_matrix_nbcolumns"
external
sort_rows
:
t
->
unit
=
"camlidl_matrix_matrix_sort_rows"
external
merge_sort
:
t
->
t
->
t
=
"camlidl_matrix_matrix_merge_sort"
external
assign_variable
:
t
->
int
->
Vector
.
t
->
t
=
"camlidl_matrix_matrix_assign_variable"
external
substitute_variable
:
t
->
int
->
Vector
.
t
->
t
=
"camlidl_matrix_matrix_substitute_variable"
external
assign_variables
:
t
->
equation
array
->
t
=
"camlidl_matrix_matrix_assign_variables"
external
substitute_variables
:
t
->
equation
array
->
t
=
"camlidl_matrix_matrix_substitute_variables"
external
add_dims
:
t
->
int
->
t
=
"camlidl_matrix_matrix_add_dims"
external
add_dims_multi
:
t
->
Vector
.
dimsup
array
->
t
=
"camlidl_matrix_matrix_add_dims_multi"
external
del_dims_multi
:
t
->
Vector
.
dimsup
array
->
t
=
"camlidl_matrix_matrix_del_dims_multi"
external
add_permute_dims
:
t
->
int
->
int
array
->
t
=
"camlidl_matrix_matrix_add_permute_dims"
external
permute_del_dims
:
t
->
int
->
int
array
->
t
=
"camlidl_matrix_matrix_permute_del_dims"
external
is_row_dummy_constraint
:
t
->
int
->
bool
=
"camlidl_matrix_matrix_is_row_dummy_constraint"
val
get_big_int
:
t
->
int
->
int
->
Big_int
.
big_int
val
set_big_int
:
t
->
int
->
int
->
Big_int
.
big_int
->
unit
val
print
:
Format
.
formatter
->
t
->
unit
val
print_constraints
:
(
int
->
string
)
->
Format
.
formatter
->
t
->
unit
val
print_frames
:
(
int
->
string
)
->
Format
.
formatter
->
t
->
unit
val
of_lconstraints
:
(
string
->
int
)
->
int
->
string
list
->
t
val
of_lframes
:
(
string
->
int
)
->
int
->
string
list
->
t
polka/matrix_caml.c
deleted
100644 → 0
View file @
f0e3cfaf
/* File generated from matrix.idl */
#include <stddef.h>
#include <string.h>
#include <caml/mlvalues.h>
#include <caml/memory.h>
#include <caml/alloc.h>
#include <caml/fail.h>
#include <caml/callback.h>
#ifdef Custom_tag
#include <caml/custom.h>
#include <caml/bigarray.h>
#endif
#include <caml/camlidlruntime.h>
#include "matrix.h"
#include "polka_caml.h"
extern
void
camlidl_polka_vector_ml2c
(
value
,
vector__t
*
);
#define camlidl_ml2c_vector_vector__t(v,c,ctx) camlidl_polka_vector_ml2c(v,c)
extern
value
camlidl_polka_vector_c2ml
(
vector__t
*
);
#define camlidl_c2ml_vector_vector__t(c,ctx) camlidl_polka_vector_c2ml(c)
extern
void
camlidl_ml2c_vector_struct_dimsup_t
(
value
,
struct
dimsup_t
*
,
camlidl_ctx
_ctx
);
extern
value
camlidl_c2ml_vector_struct_dimsup_t
(
struct
dimsup_t
*
,
camlidl_ctx
_ctx
);
extern
void
camlidl_polka_dimsup_ml2c
(
value
,
dimsup_t
*
);
#define camlidl_ml2c_vector_dimsup_t(v,c,ctx) camlidl_polka_dimsup_ml2c(v,c)
extern
value
camlidl_polka_dimsup_c2ml
(
dimsup_t
*
);
#define camlidl_c2ml_vector_dimsup_t(c,ctx) camlidl_polka_dimsup_c2ml(c)
#define camlidl_ml2c_matrix_matrix__t(v,c,ctx) camlidl_polka_matrix_ml2c(v,c)
#define camlidl_c2ml_matrix_matrix__t(c,ctx) camlidl_polka_matrix_c2ml(c)
extern
void
camlidl_ml2c_matrix_struct_equation_t
(
value
,
struct
equation_t
*
,
camlidl_ctx
_ctx
);
extern
value
camlidl_c2ml_matrix_struct_equation_t
(
struct
equation_t
*
,
camlidl_ctx
_ctx
);
#define camlidl_ml2c_matrix_equation_t(v,c,ctx) camlidl_polka_equation_ml2c(v,c)
#define camlidl_c2ml_matrix_equation_t(c,ctx) camlidl_polka_equation_c2ml(c)
value
camlidl_matrix_matrix_make
(
value
_v_nbrows
,
value
_v_nbcolumns
)
{
int
nbrows
;
/*in*/
int
nbcolumns
;
/*in*/
matrix__t
_res
;
value
_vres
;
struct
camlidl_ctx_struct
_ctxs
=
{
CAMLIDL_TRANSIENT
,
NULL
};
camlidl_ctx
_ctx
=
&
_ctxs
;
nbrows
=
Int_val
(
_v_nbrows
);
nbcolumns
=
Int_val
(
_v_nbcolumns
);
/* begin user-supplied calling sequence */
if
(
nbrows
<
0
||
nbcolumns
<
0
)
{
fprintf
(
stderr
,
"nbrows=%d, nbcolumns=%d
\n
"
,
nbrows
,
nbcolumns
);
invalid_argument
(
"Matrix.make: at least one argument is negative !"
);
}
_res
=
matrix_alloc
(
nbrows
,
nbcolumns
,
true
);
/* end user-supplied calling sequence */
_vres
=
camlidl_c2ml_matrix_matrix__t
(
&
_res
,
_ctx
);
camlidl_free
(
_ctx
);
return
_vres
;
}
value
camlidl_matrix_matrix_copy
(
value
_v_mat
)
{
matrix__t
mat
;
/*in*/
matrix__t
_res
;
value
_vres
;
struct
camlidl_ctx_struct
_ctxs
=
{
CAMLIDL_TRANSIENT
,
NULL
};
camlidl_ctx
_ctx
=
&
_ctxs
;
camlidl_ml2c_matrix_matrix__t
(
_v_mat
,
&
mat
,
_ctx
);
_res
=
matrix_copy
(
mat
);
_vres
=
camlidl_c2ml_matrix_matrix__t
(
&
_res
,
_ctx
);
camlidl_free
(
_ctx
);
return
_vres
;
}
value
camlidl_matrix_matrix__print
(
value
_v_mat
)
{
matrix__t
mat
;
/*in*/
struct
camlidl_ctx_struct
_ctxs
=
{
CAMLIDL_TRANSIENT
,
NULL
};
camlidl_ctx
_ctx
=
&
_ctxs
;
camlidl_ml2c_matrix_matrix__t
(
_v_mat
,
&
mat
,
_ctx
);
/* begin user-supplied calling sequence */
matrix_print
(
mat
);
/* end user-supplied calling sequence */
camlidl_free
(
_ctx
);
return
Val_unit
;
}
value
camlidl_matrix_matrix_compare
(
value
_v_mata
,
value
_v_matb
)
{
matrix__t
mata
;
/*in*/
matrix__t
matb
;
/*in*/
int
_res
;
value
_vres
;
struct
camlidl_ctx_struct
_ctxs
=
{
CAMLIDL_TRANSIENT
,
NULL
};
camlidl_ctx
_ctx
=
&
_ctxs
;
camlidl_ml2c_matrix_matrix__t
(
_v_mata
,
&
mata
,
_ctx
);
camlidl_ml2c_matrix_matrix__t
(
_v_matb
,
&
matb
,
_ctx
);
_res
=
matrix_compare
(
mata
,
matb
);
_vres
=
Val_int
(
_res
);
camlidl_free
(
_ctx
);
return
_vres
;
}
value
camlidl_matrix_matrix_hash
(
value
_v_mat
)
{
matrix__t
mat
;
/*in*/
int
_res
;
value
_vres
;
struct
camlidl_ctx_struct
_ctxs
=
{
CAMLIDL_TRANSIENT
,
NULL
};
camlidl_ctx
_ctx
=
&
_ctxs
;
camlidl_ml2c_matrix_matrix__t
(
_v_mat
,
&
mat
,
_ctx
);
_res
=
matrix_hash
(
mat
);
_vres
=
Val_int
(
_res
);
camlidl_free
(
_ctx
);
return
_vres
;
}
value
camlidl_matrix_matrix_compare_sort
(
value
_v_mata
,
value
_v_matb
)
{
matrix__t
mata
;
/*in*/
matrix__t
matb
;
/*in*/
int
_res
;
value
_vres
;
struct
camlidl_ctx_struct
_ctxs
=
{
CAMLIDL_TRANSIENT
,
NULL
};
camlidl_ctx
_ctx
=
&
_ctxs
;
camlidl_ml2c_matrix_matrix__t
(
_v_mata
,
&
mata
,
_ctx
);
camlidl_ml2c_matrix_matrix__t
(
_v_matb
,
&
matb
,
_ctx
);
_res
=
matrix_compare_sort
(
mata
,
matb
);
_vres
=
Val_int
(
_res
);
camlidl_free
(
_ctx
);
return
_vres
;
}
value
camlidl_matrix_matrix_hash_sort
(
value
_v_mat
)
{
matrix__t
mat
;
/*in*/
int
_res
;
value
_vres
;
struct
camlidl_ctx_struct
_ctxs
=
{
CAMLIDL_TRANSIENT
,
NULL
};
camlidl_ctx
_ctx
=
&
_ctxs
;
camlidl_ml2c_matrix_matrix__t
(
_v_mat
,
&
mat
,
_ctx
);
_res
=
matrix_hash_sort
(
mat
);
_vres
=
Val_int
(
_res
);
camlidl_free
(
_ctx
);
return
_vres
;
}
value
camlidl_matrix_matrix_get
(
value
_v_mat
,
value
_v_row
,
value
_v_col
)
{
matrix__t
mat
;
/*in*/
int
row
;
/*in*/
int
col
;
/*in*/
long
_res
;
value
_vres
;
struct
camlidl_ctx_struct
_ctxs
=
{
CAMLIDL_TRANSIENT
,
NULL
};
camlidl_ctx
_ctx
=
&
_ctxs
;
camlidl_ml2c_matrix_matrix__t
(
_v_mat
,
&
mat
,
_ctx
);
row
=
Int_val
(
_v_row
);
col
=
Int_val
(
_v_col
);
/* begin user-supplied calling sequence */
if
(
row
<
0
||
col
<
0
||
row
>=
mat
->
nbrows
||
col
>=
mat
->
nbcolumns
){
fprintf
(
stderr
,
"row=%d,col=%d,nbrows=%d,nbcols=%d
\n
"
,
row
,
col
,
mat
->
nbrows
,
mat
->
nbcolumns
);
invalid_argument
(
"Matrix.get: indices"
);
}
int_set_pkint
(
&
_res
,
mat
->
p
[
row
][
col
],
false
);
/* end user-supplied calling sequence */
_vres
=
Val_long
(
_res
);
camlidl_free
(
_ctx
);
return
_vres
;
}
value
camlidl_matrix_matrix_get_str10
(
value
_v_mat
,
value
_v_row
,
value
_v_col
)
{
matrix__t
mat
;
/*in*/
int
row
;
/*in*/
int
col
;
/*in*/
char
*
_res
;
value
_vres
;
struct
camlidl_ctx_struct
_ctxs
=
{
CAMLIDL_TRANSIENT
,
NULL
};
camlidl_ctx
_ctx
=
&
_ctxs
;
camlidl_ml2c_matrix_matrix__t
(
_v_mat
,
&
mat
,
_ctx
);
row
=
Int_val
(
_v_row
);
col
=
Int_val
(
_v_col
);
/* begin user-supplied calling sequence */
if
(
row
<
0
||
col
<
0
||
row
>=
mat
->
nbrows
||
col
>=
mat
->
nbcolumns
){
fprintf
(
stderr
,
"row=%d,col=%d,nbrows=%d,nbcols=%d
\n
"
,
row
,
col
,
mat
->
nbrows
,
mat
->
nbcolumns
);
invalid_argument
(
"Matrix.get: indices"
);
}
_res
=
pkint_get_str10
(
NULL
,
mat
->
p
[
row
][
col
]);
/* end user-supplied calling sequence */
_vres
=
copy_string
(
_res
);
camlidl_free
(
_ctx
);
/* begin user-supplied deallocation sequence */
free
(
_res
);
/* end user-supplied deallocation sequence */
return
_vres
;
}
value
camlidl_matrix_matrix_set
(
value
_v_mat
,
value
_v_row
,
value
_v_col
,
value
_v_val
)
{
matrix__t
mat
;
/*in*/
int
row
;
/*in*/
int
col
;
/*in*/
int
val
;
/*in*/
struct
camlidl_ctx_struct
_ctxs
=
{
CAMLIDL_TRANSIENT
,
NULL
};
camlidl_ctx
_ctx
=
&
_ctxs
;
camlidl_ml2c_matrix_matrix__t
(
_v_mat
,
&
mat
,
_ctx
);
row
=
Int_val
(
_v_row
);
col
=
Int_val
(
_v_col
);
val
=
Int_val
(
_v_val
);
/* begin user-supplied calling sequence */
if
(
row
<
0
||
col
<
0
||
row
>=
mat
->
nbrows
||
col
>=
mat
->
nbcolumns
)
{
fprintf
(
stderr
,
"row=%d,col=%d,nbrows=%d,nbcols=%d
\n
"
,