please POEMS library in namespace POEMS and remove "using namespace" from headers
This commit is contained in:
@ -3,7 +3,7 @@
|
||||
* POEMS: PARALLELIZABLE OPEN SOURCE EFFICIENT MULTIBODY SOFTWARE *
|
||||
* DESCRIPTION: SEE READ-ME *
|
||||
* FILE NAME: eulerparameters.cpp *
|
||||
* AUTHORS: See Author List *
|
||||
* AUTHORS: See Author List *
|
||||
* GRANTS: See Grants List *
|
||||
* COPYRIGHT: (C) 2005 by Authors as listed in Author's List *
|
||||
* LICENSE: Please see License Agreement *
|
||||
@ -11,7 +11,7 @@
|
||||
* ADMINISTRATOR: Prof. Kurt Anderson *
|
||||
* Computational Dynamics Lab *
|
||||
* Rensselaer Polytechnic Institute *
|
||||
* 110 8th St. Troy NY 12180 *
|
||||
* 110 8th St. Troy NY 12180 *
|
||||
* CONTACT: anderk5@rpi.edu *
|
||||
*_________________________________________________________________________*/
|
||||
|
||||
@ -23,8 +23,10 @@
|
||||
#include "mat3x3.h"
|
||||
|
||||
using namespace std;
|
||||
using namespace POEMS;
|
||||
|
||||
void EP_Derivatives(ColMatrix& q, ColMatrix& u, ColMatrix& qdot){
|
||||
|
||||
void POEMS::EP_Derivatives(ColMatrix& q, ColMatrix& u, ColMatrix& qdot){
|
||||
EP_Normalize(q);
|
||||
int num=u.GetNumRows();
|
||||
if (3<num){
|
||||
@ -32,17 +34,17 @@ void EP_Derivatives(ColMatrix& q, ColMatrix& u, ColMatrix& qdot){
|
||||
qdot.elements[i]=u.elements[i-1];
|
||||
}
|
||||
}
|
||||
|
||||
qdot.elements[0] = 0.5 *(q.elements[3]*u.elements[0] - q.elements[2]*u.elements[1] + q.elements[1]*u.elements[2]);
|
||||
|
||||
qdot.elements[0] = 0.5 *(q.elements[3]*u.elements[0] - q.elements[2]*u.elements[1] + q.elements[1]*u.elements[2]);
|
||||
qdot.elements[1] = 0.5 *(q.elements[2]*u.elements[0] + q.elements[3]*u.elements[1] - q.elements[0]*u.elements[2]);
|
||||
qdot.elements[2] = 0.5 *(-q.elements[1]*u.elements[0] + q.elements[0]*u.elements[1] + q.elements[3]*u.elements[2]);
|
||||
qdot.elements[3] = -0.5 *(q.elements[0]*u.elements[0] + q.elements[1]*u.elements[1] + q.elements[2]*u.elements[2]);
|
||||
|
||||
|
||||
}
|
||||
|
||||
void EP_Transformation(ColMatrix& q, Mat3x3& C){
|
||||
void POEMS::EP_Transformation(ColMatrix& q, Mat3x3& C){
|
||||
EP_Normalize(q);
|
||||
|
||||
|
||||
double q11 = q.elements[0]*q.elements[0];
|
||||
double q22 = q.elements[1]*q.elements[1];
|
||||
double q33 = q.elements[2]*q.elements[2];
|
||||
@ -69,7 +71,7 @@ void EP_Transformation(ColMatrix& q, Mat3x3& C){
|
||||
C.elements[2][1] = 2*(q23 + q14);
|
||||
}
|
||||
|
||||
void EP_FromTransformation(ColMatrix& q, Mat3x3& C){
|
||||
void POEMS::EP_FromTransformation(ColMatrix& q, Mat3x3& C){
|
||||
double b[4];
|
||||
|
||||
// condition indicators
|
||||
@ -117,8 +119,8 @@ void EP_FromTransformation(ColMatrix& q, Mat3x3& C){
|
||||
EP_Normalize(q);
|
||||
}
|
||||
|
||||
void EP_Normalize(ColMatrix& q){
|
||||
double one = 1.0/sqrt(q.elements[0]*q.elements[0] + q.elements[1]*q.elements[1] + q.elements[2]*q.elements[2] + q.elements[3]*q.elements[3]);
|
||||
void POEMS:: EP_Normalize(ColMatrix& q){
|
||||
double one = 1.0/sqrt(q.elements[0]*q.elements[0] + q.elements[1]*q.elements[1] + q.elements[2]*q.elements[2] + q.elements[3]*q.elements[3]);
|
||||
q.elements[0] = one*q.elements[0];
|
||||
q.elements[1] = one*q.elements[1];
|
||||
q.elements[2] = one*q.elements[2];
|
||||
@ -128,29 +130,29 @@ void EP_Normalize(ColMatrix& q){
|
||||
|
||||
|
||||
|
||||
void EPdotdot_udot(ColMatrix& Audot, ColMatrix& Aqdot, ColMatrix& Aq, ColMatrix& Aqddot){
|
||||
void POEMS::EPdotdot_udot(ColMatrix& Audot, ColMatrix& Aqdot, ColMatrix& Aq, ColMatrix& Aqddot){
|
||||
int num=Audot.GetNumRows();
|
||||
if (3<num){
|
||||
for (int i=4; i<=num; i++){
|
||||
Aqddot.elements[i]=Audot.elements[i-1];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
double AA;
|
||||
AA=Aqdot.elements[0]*Aqdot.elements[0]+Aqdot.elements[1]*Aqdot.elements[1]+Aqdot.elements[2]*Aqdot.elements[2]+Aqdot.elements[3]*Aqdot.elements[3];
|
||||
|
||||
|
||||
Aqddot.elements[0] = 0.5 *(Aq.elements[3]*Audot.elements[0] - Aq.elements[2]*Audot.elements[1] + Aq.elements[1]*Audot.elements[2]-2*Aq.elements[0]*AA);
|
||||
|
||||
|
||||
Aqddot.elements[1] = 0.5 *(Aq.elements[2]*Audot.elements[0] + Aq.elements[3]*Audot.elements[1] - Aq.elements[0]*Audot.elements[2]-2*Aq.elements[1]*AA);
|
||||
|
||||
|
||||
Aqddot.elements[2] = 0.5 *(-Aq.elements[1]*Audot.elements[0] + Aq.elements[0]*Audot.elements[1] + Aq.elements[3]*Audot.elements[2]-2*Aq.elements[2]*AA);
|
||||
|
||||
|
||||
Aqddot.elements[3] = -0.5 *(Aq.elements[0]*Audot.elements[0] + Aq.elements[1]*Audot.elements[1] + Aq.elements[2]*Audot.elements[2]+2*Aq.elements[3]*AA);
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
void qdot_to_u(ColMatrix& q, ColMatrix& u, ColMatrix& qdot){
|
||||
void POEMS::qdot_to_u(ColMatrix& q, ColMatrix& u, ColMatrix& qdot){
|
||||
EP_Normalize(q);
|
||||
int num=qdot.GetNumRows();
|
||||
if (4<num){
|
||||
@ -161,7 +163,7 @@ void qdot_to_u(ColMatrix& q, ColMatrix& u, ColMatrix& qdot){
|
||||
u.elements[0]=2*(q.elements[3]*qdot.elements[0]+q.elements[2]*qdot.elements[1]-q.elements[1]*qdot.elements[2]-q.elements[0]*qdot.elements[3]);
|
||||
u.elements[1]=2*(-q.elements[2]*qdot.elements[0]+q.elements[3]*qdot.elements[1]+q.elements[0]*qdot.elements[2]-q.elements[1]*qdot.elements[3]);
|
||||
u.elements[2]=2*(q.elements[1]*qdot.elements[0]-q.elements[0]*qdot.elements[1]+q.elements[3]*qdot.elements[2]-q.elements[2]*qdot.elements[3]);
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user