File failed to load: https://isis.astrogeology.usgs.gov/6.0.0/Object/assets/jax/output/NativeMML/config.js
 |
Isis Developer Reference
|
Go to the documentation of this file. 1 #ifndef LinearAlgebra_h
2 #define LinearAlgebra_h
13 #include <boost/numeric/ublas/matrix.hpp>
14 #include <boost/numeric/ublas/io.hpp>
22 #define BOOST_UBLAS_NO_STD_CERR
100 typedef boost::numeric::ublas::matrix<double>
Matrix;
110 typedef boost::numeric::ublas::symmetric_matrix<double, boost::numeric::ublas::upper>
SymmetricMatrix;
120 typedef boost::numeric::ublas::vector<double>
Vector;
203 static void setVec3(
Vector *v,
double v0,
double v1,
double v2);
204 static void setVec4(
Vector *v,
double v0,
double v1,
double v2,
double v3);
206 static Vector vector(
double v0,
double v1,
double v2,
double v3);
QDebug operator<<(QDebug debug, const Hillshade &hillshade)
Print this class out to a QDebug object.
Definition: Hillshade.cpp:314
static Matrix multiply(const Matrix &matrix1, const Matrix &matrix2)
Returns the product of two matrices.
Definition: LinearAlgebra.cpp:549
const double PI
The mathematical constant PI.
Definition: Constants.h:40
static Vector add(const Vector &vector1, const Vector &vector2)
Adds the two given vectors.
Definition: LinearAlgebra.cpp:634
static Vector project(const Vector &vector1, const Vector &vector2)
Compute the vector projection of vector1 onto vector2.
Definition: LinearAlgebra.cpp:833
This is free and unencumbered software released into the public domain.
Definition: BoxcarCachingAlgorithm.h:13
static bool isIdentity(const Matrix &matrix)
Determines whether the given matrix is the identity.
Definition: LinearAlgebra.cpp:61
static bool isOrthogonal(const Matrix &matrix)
Determines whether the given matrix is orthogonal by verifying that the matrix and its tranpose are i...
Definition: LinearAlgebra.cpp:89
static Vector subtract(const Vector &vector1, const Vector &vector2)
Subtracts the right vector from the left vector.
Definition: LinearAlgebra.cpp:660
~LinearAlgebra()
Destructor for a LinearAlgebra object.
Definition: LinearAlgebra.cpp:46
This is free and unencumbered software released into the public domain.
Definition: Process.h:16
@ Unknown
A type of error that cannot be classified as any of the other error types.
Definition: IException.h:118
QPair< Vector, Angle > AxisAngle
Definition for an Axis-Angle pair.
Definition: LinearAlgebra.h:129
static double determinant(const Matrix &matrix)
Returns the determinant of the given 3x3 matrix.
Definition: LinearAlgebra.cpp:440
static Vector perpendicular(const Vector &vector1, const Vector &vector2)
Finds the unique vector P such that A = V + P, V is parallel to B and P is perpendicular to B,...
Definition: LinearAlgebra.cpp:932
static bool isZero(const Matrix &matrix)
Determines whether the given matrix is filled with zereos.
Definition: LinearAlgebra.cpp:211
static double absoluteMaximum(const Vector &vector)
Returns the maximum norm (L-infinity norm) for the given vector.
Definition: LinearAlgebra.cpp:531
static Matrix zeroMatrix(int rows, int columns)
Returns a matrix with given dimensions that is filled with zeroes.
Definition: LinearAlgebra.cpp:408
static double innerProduct(const Vector &vector1, const Vector &vector2)
Computes the inner product of the given vectors.
Definition: LinearAlgebra.cpp:801
static Vector rotate(const Vector &vector, const Vector &axis, Angle angle)
Rotates a vector about an axis vector given a specified angle.
Definition: LinearAlgebra.cpp:872
static double magnitude(const Vector &vector)
Computes the magnitude (i.e., the length) of the given vector using the Euclidean norm (L2 norm).
Definition: LinearAlgebra.cpp:504
static Matrix transpose(const Matrix &matrix)
Returns the transpose of the given matrix.
Definition: LinearAlgebra.cpp:369
static Vector vector(double v0, double v1, double v2)
Constructs a 3 dimensional vector with the given component values.
Definition: LinearAlgebra.cpp:1714
static bool isEmpty(const Vector &vector)
Determines whether the given vector is empty (i.e.
Definition: LinearAlgebra.cpp:250
static void setRow(Matrix &matrix, const Vector &vector, int rowIndex)
Sets the row of the given matrix to the values of the given vector.
Definition: LinearAlgebra.cpp:1626
boost::numeric::ublas::matrix< double > Matrix
Definition for an Isis::LinearAlgebra::Matrix of doubles.
Definition: LinearAlgebra.h:100
static Vector row(const Matrix &matrix, int rowIndex)
Returns a vector whose components match those of the given matrix row.
Definition: LinearAlgebra.cpp:1670
QString toString(bool boolToConvert)
Global function to convert a boolean to a string.
Definition: IString.cpp:211
LinearAlgebra()
Default constructor for a LinearAlgebra object.
Definition: LinearAlgebra.cpp:39
static Matrix inverse(const Matrix &matrix)
Returns the inverse of a 2x2 or 3x3 matrix.
Definition: LinearAlgebra.cpp:282
static Matrix outerProduct(const Vector &vector1, const Vector &vector2)
Computes the outer product of the given vectors.
Definition: LinearAlgebra.cpp:757
static bool isRotationMatrix(const Matrix &matrix)
Determines whether the given matrix is a rotation matrix.
Definition: LinearAlgebra.cpp:113
static double dotProduct(const Vector &vector1, const Vector &vector2)
Computes the dot product of the given vectors.
Definition: LinearAlgebra.cpp:781
boost::numeric::ublas::vector< double > Vector
Definition for an Isis::LinearAlgebra::Vector of doubles.
Definition: LinearAlgebra.h:120
#define _FILEINFO_
Macro for the filename and line number.
Definition: IException.h:24
static Vector column(const Matrix &matrix, int columnIndex)
Returns a vector whose components match those of the given matrix column.
Definition: LinearAlgebra.cpp:1693
static AxisAngle toAxisAngle(const Matrix &rotationMatrix)
Converts a rotation's representation from a matrix to a axis of rotation and its corresponding rotati...
Definition: LinearAlgebra.cpp:973
static Matrix pseudoinverse(const Matrix &matrix)
Returns the pseudoinverse of a matrix.
Definition: LinearAlgebra.cpp:339
boost::numeric::ublas::symmetric_matrix< double, boost::numeric::ublas::upper > SymmetricMatrix
Definition for an Isis::LinearAlgebra::SymmetrixMatrix of doubles with an upper configuration.
Definition: LinearAlgebra.h:110
static Vector zeroVector(int size)
Returns a vector of given length that is filled with zeroes.
Definition: LinearAlgebra.cpp:421
static Vector normalize(const Vector &vector)
Returns a unit vector that is codirectional with the given vector by dividing each component of the v...
Definition: LinearAlgebra.cpp:477
Isis exception class.
Definition: IException.h:91
static Matrix toMatrix(const AxisAngle &axisAngle)
Converts a rotation's representation from an axis of rotation and its corresponding rotation angle to...
Definition: LinearAlgebra.cpp:1442
Defines an angle and provides unit conversions.
Definition: Angle.h:45
void setRadians(double radians)
Set the angle in units of Radians.
Definition: Angle.h:239
@ Programmer
This error is for when a programmer made an API call that was illegal.
Definition: IException.h:146
static QList< EulerAngle > toEulerAngles(const Matrix &rotationMatrix, const QList< int > axes)
Converts a rotation's representation from a matrix to a set of Euler angles with corresponding axes.
Definition: LinearAlgebra.cpp:1051
static void setVec4(Vector *v, double v0, double v1, double v2, double v3)
Fills the first four elements of the given vector with the given values.
Definition: LinearAlgebra.cpp:1768
This is free and unencumbered software released into the public domain.
Definition: CubeIoHandler.h:23
static void setVec3(Vector *v, double v0, double v1, double v2)
Fills the first three elements of the given vector with the given values.
Definition: LinearAlgebra.cpp:1752
static Matrix identity(int size)
Returns the identity matrix of size NxN.
Definition: LinearAlgebra.cpp:384
static Vector crossProduct(const Vector &vector1, const Vector &vector2)
Returns the cross product of two vectors.
Definition: LinearAlgebra.cpp:688
QPair< Angle, int > EulerAngle
Definition for an EulerAngle pair.
Definition: LinearAlgebra.h:136
static Vector normalizedCrossProduct(const Vector &vector1, const Vector &vector2)
Divides each vector by its corresponding absolute maximum, computes the cross product of the new vect...
Definition: LinearAlgebra.cpp:721
static bool isUnit(const Vector &vector)
Determines whether the given vector is a unit vector.
Definition: LinearAlgebra.cpp:262
This class holds all static methods to perform linear algebra operations on vectors and matrices.
Definition: LinearAlgebra.h:89
static Vector subVector(const Vector &v, int start, int size)
Constructs a vector of given size using the given vector and starting index.
Definition: LinearAlgebra.cpp:1789
static void setColumn(Matrix &matrix, const Vector &vector, int columnIndex)
Sets the column of the given matrix to the values of the given vector.
Definition: LinearAlgebra.cpp:1647
This is free and unencumbered software released into the public domain.
Definition: Apollo.h:16
static Vector toQuaternion(const Matrix &rotationMatrix)
Converts a rotation's representation from a matrix to a unit quaternion.
Definition: LinearAlgebra.cpp:1211
double radians() const
Convert an angle to a double.
Definition: Angle.h:226