142 #ifdef FFA_INDEXCHECK
144 std::cerr <<
"FaMat33::operator[]: index i="<< i <<
" is out of range [0,2]"
152 #ifdef FFA_INDEXCHECK
154 std::cerr <<
"FaMat33::operator[]: index i="<< i <<
" is out of range [0,2]"
165 #ifdef FFA_INDEXCHECK
167 std::cerr <<
"FaMat33::operator(): index i="<< i <<
" is out of range [1,3]"
170 std::cerr <<
"FaMat33::operator(): index j="<< j <<
" is out of range [1,3]"
178 #ifdef FFA_INDEXCHECK
180 std::cerr <<
"FaMat33::operator(): index i="<< i <<
" is out of range [1,3]"
183 std::cerr <<
"FaMat33::operator(): index j="<< j <<
" is out of range [1,3]"
Point vectors in 3D space.
Class for point transformations in 3D space.
Definition: FFaMat33.H:27
FaMat33 & makeGlobalizedCS(const FaVec3 &v1)
Computes a globalized coordinate system from an X-axis vector.
Definition: FFaMat33.C:210
friend std::ostream & operator<<(std::ostream &s, const FaMat33 &m)
Printing operator.
FaVec3 getEulerZYX() const
Returns the Euler angles corresponding to an incremental rotation.
Definition: FFaMat33.C:325
friend FaMat33 operator*(const FaMat33 &a, const FaMat33 &b)
Multiplication of two matrices.
const FaVec3 & operator[](int i) const
Zero-based indexing operator accessing a matrix column (read only).
Definition: FFaMat33.H:140
static FaMat33 makeXrotation(double angle)
Returns the matrix representing a rotation about the X-axis.
Definition: FFaMat33.C:473
FaMat33 & eulerRotateZYX(const FaVec3 &angles)
Compute an incremental rotation tensor from the given Euler angles.
Definition: FFaMat33.C:301
bool isCoincident(const FaMat33 &m, double tolerance=1.0e-10) const
Returns true if the matrix m equals *this within the given tolerance.
Definition: FFaMat33.C:195
const double & operator()(int i, int j) const
One-based indexing operator accessing a matrix element (read only).
Definition: FFaMat33.H:163
friend FaMat33 operator-(const FaMat33 &a)
Unary negation operator.
FaMat33 & operator-=(const FaMat33 &m)
Subtraction operator.
Definition: FFaMat33.C:78
FaMat33 & setIdentity()
Initializes the matrix to the identity matrix.
Definition: FFaMat33.C:156
FaMat33 & incRotate(const FaVec3 &angles)
Computes an incremental rotation tensor from the given angles.
Definition: FFaMat33.C:364
FaMat33 & operator/=(double d)
Scaling operator (division by a scalar).
Definition: FFaMat33.C:96
FaMat33 transpose() const
Returns the transpose of matrix.
Definition: FFaMat33.C:165
FaMat33()
Default constructor creating an identity matrix.
Definition: FFaMat33.H:30
FaMat33 & shift(int delta)
Performs a cyclic permutation of the matrix columns.
Definition: FFaMat33.C:173
FaMat33 inverse(double eps=1.0e-16) const
Returns the inverse of the matrix.
Definition: FFaMat33.C:126
FaMat33 & operator*=(double d)
Scaling operator (multiplication by a scalar).
Definition: FFaMat33.C:87
friend int operator==(const FaMat33 &a, const FaMat33 &b)
Equality operator.
static FaMat33 makeZrotation(double angle)
Returns the matrix representing a rotation about the Z-axis.
Definition: FFaMat33.C:443
friend FaMat33 operator/(const FaMat33 &a, double d)
Scaling operator, division by a scalar.
FaVec3 getRotation() const
Returns the angles corresponding to an incremental rotation.
Definition: FFaMat33.C:402
friend int operator!=(const FaMat33 &a, const FaMat33 &b)
Inequality operator.
FaVec3 v[3]
Columns of the 3×3 matrix.
Definition: FFaMat33.H:134
static FaMat33 makeYrotation(double angle)
Returns the matrix representing a rotation about the Y-axis.
Definition: FFaMat33.C:458
FaMat33 & operator+=(const FaMat33 &m)
Addition operator.
Definition: FFaMat33.C:69
friend std::istream & operator>>(std::istream &s, FaMat33 &m)
Reading operator.
friend FaMat33 operator+(const FaMat33 &a, const FaMat33 &b)
Global addition operator.
Class for point vectors in 3D space.
Definition: FFaVec3.H:40
real(sp), dimension(:,:,:), pointer b
Definition: diffractionModule.f90:22
real(sp), dimension(:,:,:), pointer a
Definition: diffractionModule.f90:21
real(dp), dimension(:,:), allocatable m
Definition: inverseModule.f90:38
real(dp), dimension(:), allocatable v0
Definition: inverseModule.f90:26
real(dp), dimension(:), allocatable v1
Definition: inverseModule.f90:27
real(dp), dimension(:), allocatable v2
Definition: inverseModule.f90:28