Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Stack Of Tasks
eigenpy
Commits
b869723e
Commit
b869723e
authored
Jun 11, 2018
by
jcarpent
Browse files
[Conversion] Handle zero-size vector
parent
be1ef56b
Changes
3
Hide whitespace changes
Inline
Side-by-side
include/eigenpy/map.hpp
View file @
b869723e
...
...
@@ -94,6 +94,8 @@ namespace eigenpy
int
rowMajor
;
if
(
PyArray_NDIM
(
pyArray
)
==
1
)
rowMajor
=
0
;
else
if
(
PyArray_DIMS
(
pyArray
)[
0
]
==
0
)
rowMajor
=
0
;
// handle zero-size vector
else
if
(
PyArray_DIMS
(
pyArray
)[
1
]
==
0
)
rowMajor
=
1
;
// handle zero-size vector
else
rowMajor
=
(
PyArray_DIMS
(
pyArray
)[
0
]
>
PyArray_DIMS
(
pyArray
)[
1
])
?
0
:
1
;
assert
(
(
PyArray_DIMS
(
pyArray
)[
rowMajor
]
<
INT_MAX
)
...
...
unittest/matrix.cpp
View file @
b869723e
/*
* Copyright 2014, Nicolas Mansard, LAAS-CNRS
* Copyright 2014,
2018,
Nicolas Mansard,
Justin Carpentier,
LAAS-CNRS
*
* This file is part of eigenpy.
* eigenpy is free software: you can redistribute it and/or
...
...
@@ -17,6 +17,18 @@
#include
"eigenpy/eigenpy.hpp"
#include
<iostream>
Eigen
::
VectorXd
emptyVector
()
{
Eigen
::
VectorXd
vec
;
vec
.
resize
(
0
);
return
vec
;
}
Eigen
::
MatrixXd
emptyMatrix
()
{
return
Eigen
::
MatrixXd
(
0
,
0
);
}
Eigen
::
MatrixXd
naturals
(
int
R
,
int
C
,
bool
verbose
)
{
Eigen
::
MatrixXd
mat
(
R
,
C
);
...
...
@@ -77,4 +89,7 @@ BOOST_PYTHON_MODULE(matrix)
bp
::
def
(
"reflexV"
,
reflex
<
Eigen
::
VectorXd
>
);
bp
::
def
(
"reflex33"
,
reflex
<
Eigen
::
Matrix3d
>
);
bp
::
def
(
"reflex3"
,
reflex
<
Eigen
::
Vector3d
>
);
bp
::
def
(
"emptyVector"
,
emptyVector
);
bp
::
def
(
"emptyMatrix"
,
emptyMatrix
);
}
unittest/python/test_matrix.py
View file @
b869723e
...
...
@@ -5,6 +5,14 @@ import matrix as eigenpy
verbose
=
True
if
verbose
:
print
(
"===> From empty MatrixXd to Py"
)
M
=
eigenpy
.
emptyMatrix
()
assert
M
.
shape
==
(
0
,
0
)
if
verbose
:
print
(
"===> From empty VectorXd to Py"
)
v
=
eigenpy
.
emptyVector
()
assert
v
.
shape
==
(
0
,
1
)
if
verbose
:
print
(
"===> From MatrixXd to Py"
)
M
=
eigenpy
.
naturals
(
3
,
3
,
verbose
)
Mcheck
=
np
.
reshape
(
np
.
matrix
(
range
(
9
),
np
.
double
),[
3
,
3
])
...
...
Write
Preview
Supports
Markdown
0%
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!
Cancel
Please
register
or
sign in
to comment