Tighten const qualifiers of mjData in Jacobian multiplication functions.
PiperOrigin-RevId: 561711229 Change-Id: I66dc1d2fbcfbf8e935b244fe496ada314d53b135
This commit is contained in:
committed by
Copybara-Service
parent
f9c57f6213
commit
02e819e76a
@@ -2268,8 +2268,8 @@ int mj_addContact(const mjModel* m, mjData* d, const mjContact* con);
|
|||||||
int mj_isPyramidal(const mjModel* m);
|
int mj_isPyramidal(const mjModel* m);
|
||||||
int mj_isSparse(const mjModel* m);
|
int mj_isSparse(const mjModel* m);
|
||||||
int mj_isDual(const mjModel* m);
|
int mj_isDual(const mjModel* m);
|
||||||
void mj_mulJacVec(const mjModel* m, mjData* d, mjtNum* res, const mjtNum* vec);
|
void mj_mulJacVec(const mjModel* m, const mjData* d, mjtNum* res, const mjtNum* vec);
|
||||||
void mj_mulJacTVec(const mjModel* m, mjData* d, mjtNum* res, const mjtNum* vec);
|
void mj_mulJacTVec(const mjModel* m, const mjData* d, mjtNum* res, const mjtNum* vec);
|
||||||
void mj_jac(const mjModel* m, const mjData* d, mjtNum* jacp, mjtNum* jacr,
|
void mj_jac(const mjModel* m, const mjData* d, mjtNum* jacp, mjtNum* jacr,
|
||||||
const mjtNum point[3], int body);
|
const mjtNum point[3], int body);
|
||||||
void mj_jacBody(const mjModel* m, const mjData* d, mjtNum* jacp, mjtNum* jacr, int body);
|
void mj_jacBody(const mjModel* m, const mjData* d, mjtNum* jacp, mjtNum* jacr, int body);
|
||||||
|
|||||||
@@ -386,10 +386,10 @@ MJAPI int mj_isSparse(const mjModel* m);
|
|||||||
MJAPI int mj_isDual(const mjModel* m);
|
MJAPI int mj_isDual(const mjModel* m);
|
||||||
|
|
||||||
// Multiply dense or sparse constraint Jacobian by vector.
|
// Multiply dense or sparse constraint Jacobian by vector.
|
||||||
MJAPI void mj_mulJacVec(const mjModel* m, mjData* d, mjtNum* res, const mjtNum* vec);
|
MJAPI void mj_mulJacVec(const mjModel* m, const mjData* d, mjtNum* res, const mjtNum* vec);
|
||||||
|
|
||||||
// Multiply dense or sparse constraint Jacobian transpose by vector.
|
// Multiply dense or sparse constraint Jacobian transpose by vector.
|
||||||
MJAPI void mj_mulJacTVec(const mjModel* m, mjData* d, mjtNum* res, const mjtNum* vec);
|
MJAPI void mj_mulJacTVec(const mjModel* m, const mjData* d, mjtNum* res, const mjtNum* vec);
|
||||||
|
|
||||||
// Compute 3/6-by-nv end-effector Jacobian of global point attached to given body.
|
// Compute 3/6-by-nv end-effector Jacobian of global point attached to given body.
|
||||||
MJAPI void mj_jac(const mjModel* m, const mjData* d, mjtNum* jacp, mjtNum* jacr,
|
MJAPI void mj_jac(const mjModel* m, const mjData* d, mjtNum* jacp, mjtNum* jacr,
|
||||||
|
|||||||
@@ -1987,7 +1987,7 @@ FUNCTIONS: Mapping[str, FunctionDecl] = dict([
|
|||||||
FunctionParameterDecl(
|
FunctionParameterDecl(
|
||||||
name='d',
|
name='d',
|
||||||
type=PointerType(
|
type=PointerType(
|
||||||
inner_type=ValueType(name='mjData'),
|
inner_type=ValueType(name='mjData', is_const=True),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
FunctionParameterDecl(
|
FunctionParameterDecl(
|
||||||
@@ -2019,7 +2019,7 @@ FUNCTIONS: Mapping[str, FunctionDecl] = dict([
|
|||||||
FunctionParameterDecl(
|
FunctionParameterDecl(
|
||||||
name='d',
|
name='d',
|
||||||
type=PointerType(
|
type=PointerType(
|
||||||
inner_type=ValueType(name='mjData'),
|
inner_type=ValueType(name='mjData', is_const=True),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
FunctionParameterDecl(
|
FunctionParameterDecl(
|
||||||
|
|||||||
@@ -375,7 +375,7 @@ int mj_mergeChainSimple(const mjModel* m, int* chain, int b1, int b2) {
|
|||||||
|
|
||||||
|
|
||||||
// multiply Jacobian by vector
|
// multiply Jacobian by vector
|
||||||
void mj_mulJacVec(const mjModel* m, mjData* d, mjtNum* res, const mjtNum* vec) {
|
void mj_mulJacVec(const mjModel* m, const mjData* d, mjtNum* res, const mjtNum* vec) {
|
||||||
// exit if no constraints
|
// exit if no constraints
|
||||||
if (!d->nefc) {
|
if (!d->nefc) {
|
||||||
return;
|
return;
|
||||||
@@ -396,7 +396,8 @@ void mj_mulJacVec(const mjModel* m, mjData* d, mjtNum* res, const mjtNum* vec) {
|
|||||||
|
|
||||||
|
|
||||||
// multiply Jacobian by vector, for one island
|
// multiply Jacobian by vector, for one island
|
||||||
void mj_mulJacVec_island(const mjModel* m, mjData* d, mjtNum* res, const mjtNum* vec, int island) {
|
void mj_mulJacVec_island(const mjModel* m, const mjData* d,
|
||||||
|
mjtNum* res, const mjtNum* vec, int island) {
|
||||||
// no island, call regular function
|
// no island, call regular function
|
||||||
if (island < 0) {
|
if (island < 0) {
|
||||||
mj_mulJacVec(m, d, res, vec);
|
mj_mulJacVec(m, d, res, vec);
|
||||||
@@ -435,7 +436,7 @@ void mj_mulJacVec_island(const mjModel* m, mjData* d, mjtNum* res, const mjtNum*
|
|||||||
|
|
||||||
|
|
||||||
// multiply JacobianT by vector
|
// multiply JacobianT by vector
|
||||||
void mj_mulJacTVec(const mjModel* m, mjData* d, mjtNum* res, const mjtNum* vec) {
|
void mj_mulJacTVec(const mjModel* m, const mjData* d, mjtNum* res, const mjtNum* vec) {
|
||||||
// exit if no constraints
|
// exit if no constraints
|
||||||
if (!d->nefc) {
|
if (!d->nefc) {
|
||||||
return;
|
return;
|
||||||
@@ -456,7 +457,8 @@ void mj_mulJacTVec(const mjModel* m, mjData* d, mjtNum* res, const mjtNum* vec)
|
|||||||
|
|
||||||
|
|
||||||
// multiply Jacobian transpose by vector, for one island
|
// multiply Jacobian transpose by vector, for one island
|
||||||
void mj_mulJacTVec_island(const mjModel* m, mjData* d, mjtNum* res, const mjtNum* vec, int island) {
|
void mj_mulJacTVec_island(const mjModel* m, const mjData* d,
|
||||||
|
mjtNum* res, const mjtNum* vec, int island) {
|
||||||
// no island, call regular function
|
// no island, call regular function
|
||||||
if (island < 0) {
|
if (island < 0) {
|
||||||
mj_mulJacTVec(m, d, res, vec);
|
mj_mulJacTVec(m, d, res, vec);
|
||||||
|
|||||||
@@ -36,19 +36,18 @@ MJAPI int mj_isSparse(const mjModel* m);
|
|||||||
MJAPI int mj_isDual(const mjModel* m);
|
MJAPI int mj_isDual(const mjModel* m);
|
||||||
|
|
||||||
// multiply Jacobian by vector
|
// multiply Jacobian by vector
|
||||||
MJAPI void mj_mulJacVec(const mjModel* m, mjData* d, mjtNum* res, const mjtNum* vec);
|
MJAPI void mj_mulJacVec(const mjModel* m, const mjData* d, mjtNum* res, const mjtNum* vec);
|
||||||
|
|
||||||
// multiply Jacobian by vector, for one island
|
// multiply Jacobian by vector, for one island
|
||||||
MJAPI void mj_mulJacVec_island(const mjModel* m, mjData* d,
|
MJAPI void mj_mulJacVec_island(const mjModel* m, const mjData* d,
|
||||||
mjtNum* res, const mjtNum* vec, int island);
|
mjtNum* res, const mjtNum* vec, int island);
|
||||||
|
|
||||||
// multiply Jacobian transposed by vector, for one island
|
|
||||||
MJAPI void mj_mulJacTVec_island(const mjModel* m, mjData* d,
|
|
||||||
mjtNum* res, const mjtNum* vec, int island);
|
|
||||||
|
|
||||||
// multiply JacobianT by vector
|
// multiply JacobianT by vector
|
||||||
MJAPI void mj_mulJacTVec(const mjModel* m, mjData* d, mjtNum* res, const mjtNum* vec);
|
MJAPI void mj_mulJacTVec(const mjModel* m, const mjData* d, mjtNum* res, const mjtNum* vec);
|
||||||
|
|
||||||
|
// multiply JacobianT by vector, for one island
|
||||||
|
MJAPI void mj_mulJacTVec_island(const mjModel* m, const mjData* d,
|
||||||
|
mjtNum* res, const mjtNum* vec, int island);
|
||||||
|
|
||||||
//-------------------------- utility functions -----------------------------------------------------
|
//-------------------------- utility functions -----------------------------------------------------
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user