Page Menu
Home
c4science
Search
Configure Global Search
Log In
Files
F91022884
colmatrix.h
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Subscribers
None
File Metadata
Details
File Info
Storage
Attached
Created
Thu, Nov 7, 00:52
Size
3 KB
Mime Type
text/x-c++
Expires
Sat, Nov 9, 00:52 (2 d)
Engine
blob
Format
Raw Data
Handle
22129603
Attached To
rLAMMPS lammps
colmatrix.h
View Options
/*
*_________________________________________________________________________*
* POEMS: PARALLELIZABLE OPEN SOURCE EFFICIENT MULTIBODY SOFTWARE *
* DESCRIPTION: SEE READ-ME *
* FILE NAME: colmatrix.h *
* AUTHORS: See Author List *
* GRANTS: See Grants List *
* COPYRIGHT: (C) 2005 by Authors as listed in Author's List *
* LICENSE: Please see License Agreement *
* DOWNLOAD: Free at www.rpi.edu/~anderk5 *
* ADMINISTRATOR: Prof. Kurt Anderson *
* Computational Dynamics Lab *
* Rensselaer Polytechnic Institute *
* 110 8th St. Troy NY 12180 *
* CONTACT: anderk5@rpi.edu *
*_________________________________________________________________________*/
#ifndef COLMATRIX_H
#define COLMATRIX_H
#include "virtualcolmatrix.h"
#include "colmatmap.h"
class
Matrix
;
class
Vect6
;
class
Mat3x3
;
class
Vect3
;
class
ColMatrix
:
public
VirtualColMatrix
{
double
*
elements
;
public:
ColMatrix
();
~
ColMatrix
();
ColMatrix
(
const
ColMatrix
&
A
);
// copy constructor
ColMatrix
(
const
VirtualColMatrix
&
A
);
// copy constructor
ColMatrix
(
const
VirtualMatrix
&
A
);
// copy constructor
ColMatrix
(
int
m
);
// size constructor
double
&
operator_1int
(
int
i
);
// array access
double
Get_1int
(
int
i
)
const
;
void
Set_1int
(
int
i
,
double
value
);
double
BasicGet_1int
(
int
i
)
const
;
void
BasicSet_1int
(
int
i
,
double
value
);
void
BasicIncrement_1int
(
int
i
,
double
value
);
double
*
GetElementPointer
(
int
i
);
void
Dim
(
int
m
);
void
Const
(
double
value
);
MatrixType
GetType
()
const
;
std
::
istream
&
ReadData
(
std
::
istream
&
c
);
std
::
ostream
&
WriteData
(
std
::
ostream
&
c
)
const
;
void
AssignVM
(
const
VirtualMatrix
&
A
);
ColMatrix
&
operator
=
(
const
ColMatrix
&
A
);
// assignment operator
ColMatrix
&
operator
=
(
const
VirtualColMatrix
&
A
);
// overloaded =
ColMatrix
&
operator
=
(
const
VirtualMatrix
&
A
);
// overloaded =
ColMatrix
&
operator
*=
(
double
b
);
void
Abs
();
void
BasicMax
(
double
&
value
,
int
&
index
);
void
BasicMin
(
double
&
value
,
int
&
index
);
// fast matrix operations
friend
void
FastQuaternions
(
ColMatrix
&
q
,
Mat3x3
&
C
);
friend
void
FastInvQuaternions
(
Mat3x3
&
C
,
ColMatrix
&
q
);
friend
void
FastQuaternionDerivatives
(
ColMatrix
&
q
,
ColMatrix
&
omega
,
ColMatrix
&
qdot
);
friend
void
FastTMult
(
Matrix
&
A
,
Vect6
&
B
,
ColMatrix
&
C
);
friend
void
FastMult
(
Matrix
&
A
,
ColMatrix
&
B
,
Vect6
&
C
);
friend
void
FastAssign
(
ColMatrix
&
A
,
ColMatrix
&
C
);
friend
void
FastMult
(
Mat3x3
&
A
,
ColMatrix
&
B
,
Vect3
&
C
);
friend
void
FastMult
(
Mat3x3
&
A
,
Vect3
&
B
,
ColMatrix
&
C
);
friend
void
FastAssign
(
ColMatrix
&
A
,
Vect3
&
C
);
friend
void
EP_Derivatives
(
ColMatrix
&
q
,
ColMatrix
&
u
,
ColMatrix
&
qdot
);
friend
void
EP_Transformation
(
ColMatrix
&
q
,
Mat3x3
&
C
);
friend
void
EP_FromTransformation
(
ColMatrix
&
q
,
Mat3x3
&
C
);
friend
void
EP_Normalize
(
ColMatrix
&
q
);
friend
void
EPdotdot_udot
(
ColMatrix
&
Audot
,
ColMatrix
&
Aqdot
,
ColMatrix
&
Aq
,
ColMatrix
&
Aqddot
);
friend
void
qdot_to_u
(
ColMatrix
&
q
,
ColMatrix
&
u
,
ColMatrix
&
qdot
);
};
#endif
Event Timeline
Log In to Comment