LinearAlgebra.h File Reference
#include <sstream>
#include <nuklei/Random.h>
#include <nuklei/BoostSerialization.h>
#include <nuklei/Common.h>
#include <nuklei/Math.h>

Go to the source code of this file.

Namespaces

 nuklei
 Public namespace.
 
 nuklei::la
 Namespace containing linear algebra functions (and some other functions).
 

Functions

Quaternion nuklei::la::quaternionCopy (const Matrix3 &m)
 
Matrix3 nuklei::la::matrixCopy (const Quaternion &q)
 
Quaternion nuklei::la::quaternionCopy (const Quaternion &q)
 
Matrix3 nuklei::la::matrixCopy (const Matrix3 &m)
 
void nuklei::la::copyRotation (Quaternion &q, const Matrix3 &m)
 
void nuklei::la::copyRotation (Matrix3 &m, const Quaternion &q)
 
void nuklei::la::copyRotation (Quaternion &q, const Quaternion &q2)
 
void nuklei::la::copyRotation (Matrix3 &m, const Matrix3 &m2)
 
GVector nuklei::la::gVectorCopy (const GVector &v)
 
GVector nuklei::la::gVectorCopy (const Vector3 &v)
 
Vector3 nuklei::la::vector3Copy (const Vector3 &v)
 
Vector3 nuklei::la::vector3Copy (const GVector &v)
 
std::istream & nuklei::operator>> (std::istream &in, Vector3 &l)
 
std::istream & nuklei::operator>> (std::istream &in, Quaternion &q)
 
std::ostream & nuklei::operator<< (std::ostream &out, const Quaternion &q)
 
std::ostream & nuklei::operator<< (std::ostream &out, const Matrix3 &m)
 
std::istream & nuklei::operator>> (std::istream &in, Matrix3 &m)
 
std::ostream & nuklei::operator<< (std::ostream &out, const GMatrix &m)
 
std::istream & nuklei::operator>> (std::istream &in, GMatrix &m)
 
Vector3 nuklei::la::normalized (const Vector3 &v)
 
Quaternion nuklei::la::normalized (const Quaternion &q)
 
Matrix3 nuklei::la::normalized (const Matrix3 &m)
 
void nuklei::la::makeZero (Vector3 &v)
 
void nuklei::la::makeIdentity (Matrix3 &m)
 
void nuklei::la::makeIdentity (Quaternion &q)
 
Vector3 nuklei::la::min (const Vector3 &v1, const Vector3 &v2)
 
Vector3 nuklei::la::max (const Vector3 &v1, const Vector3 &v2)
 
Vector3 nuklei::la::mean (const Vector3 &v1, const Vector3 &v2)
 
Vector3 nuklei::la::xAxis (const Quaternion &q)
 
Vector3 nuklei::la::xAxis (const Matrix3 &m)
 
coord_t nuklei::la::numDrift (const Quaternion &q)
 
coord_t nuklei::la::numDrift (const Matrix3 &m)
 
void nuklei::la::check (const Quaternion &q, const char *msg)
 
void nuklei::la::check (const Matrix3 &m, const char *msg)
 
Quaternion nuklei::la::inverseRotation (const Quaternion &q)
 
Matrix3 nuklei::la::inverseRotation (const Matrix3 &m)
 
Quaternion nuklei::la::slerp (double c, const Quaternion &q1, const Quaternion &q2)
 
Matrix3 nuklei::la::slerp (double c, const Matrix3 &m1, const Matrix3 &m2)
 
Quaternion nuklei::la::mean (const Quaternion &q1, const Quaternion &q2)
 
Matrix3 nuklei::la::mean (const Matrix3 &m1, const Matrix3 &m2)
 
Quaternion nuklei::la::so3FromS2 (const Vector3 &w)
 
void nuklei::la::eigenDecomposition (Matrix3 &eVectors, Vector3 &eValues, const Matrix3 &sym)
 
double nuklei::la::determinant (const GMatrix &m)
 
GMatrix nuklei::la::inverse (const GMatrix &m)
 
Vector3 nuklei::la::transform (const Vector3 &x, const Matrix3 &X, const Vector3 &y)
 Returns \( Xy + x \).
 
Vector3 nuklei::la::transform (const Vector3 &x, const Quaternion &X, const Vector3 &y)
 Returns \( Xy + x \).
 
void nuklei::la::transform (Vector3 &z, Matrix3 &Z, const Vector3 &x, const Matrix3 &X, const Vector3 &y, const Matrix3 &Y)
 \( z = X y + x, Z = X Y \).
 
void nuklei::la::transform (Vector3 &z, Quaternion &Z, const Vector3 &x, const Quaternion &X, const Vector3 &y, const Quaternion &Y)
 \( z = X y + x, Z = X Y \).
 
void nuklei::la::transform (Vector3 &z, Vector3 &Z, const Vector3 &x, const Matrix3 &X, const Vector3 &y, const Vector3 &Y)
 \( z = X y + x, Z = X Y \).
 
void nuklei::la::transform (Vector3 &z, Vector3 &Z, const Vector3 &x, const Quaternion &X, const Vector3 &y, const Vector3 &Y)
 \( z = X y + x, Z = X Y \).
 
Vector3 nuklei::la::project (const Vector3 &x, const Matrix3 &X, const Vector3 &z)
 Returns \( X^T (z-x) \).
 
Vector3 nuklei::la::project (const Vector3 &x, const Quaternion &X, const Vector3 &z)
 Returns \( X^T (z-x) \).
 
void nuklei::la::project (Vector3 &y, Matrix3 &Y, const Vector3 &x, const Matrix3 &X, const Vector3 &z, const Matrix3 &Z)
 \( y = X^T (z-x), Y = X^T Z \).
 
void nuklei::la::project (Vector3 &y, Quaternion &Y, const Vector3 &x, const Quaternion &X, const Vector3 &z, const Quaternion &Z)
 \( y = X^T (z-x), Y = X^T Z \).
 
void nuklei::la::project (Vector3 &y, Vector3 &Y, const Vector3 &x, const Matrix3 &X, const Vector3 &z, const Vector3 &Z)
 \( y = X^T (z-x), Y = X^T Z \).
 
void nuklei::la::project (Vector3 &y, Vector3 &Y, const Vector3 &x, const Quaternion &X, const Vector3 &z, const Vector3 &Z)
 \( y = X^T (z-x), Y = X^T Z \).
 
void nuklei::la::transfoTo (Vector3 &x, Matrix3 &X, const Vector3 &y, const Matrix3 &Y, const Vector3 &z, const Matrix3 &Z)
 \( x = z - Z Y^T y, X = Z Y^T \)
 
void nuklei::la::transfoTo (Vector3 &x, Quaternion &X, const Vector3 &y, const Quaternion &Y, const Vector3 &z, const Quaternion &Z)
 \( x = z - Z Y^T y, X = Z Y^T \)
 
template<class R >
void nuklei::la::fromAngleAxisString (R &r, const std::string &angleAxis)
 
template<class R >
std::string nuklei::la::toAngleAxisString (const R &r)
 
coord_t nuklei::multivariateGaussian (const GVector &x, const GVector &m, const GMatrix &cov, const weight_t w=1)
 
template<class Archive >
NUKLEI_SERIALIZATION_NAMESPACE_BEGIN void serialize (Archive &ar, nuklei_wmf::Vector3< nuklei::coord_t > &v, const unsigned int version)
 
template<class Archive >
void serialize (Archive &ar, nuklei_wmf::Quaternion< nuklei::coord_t > &q, const unsigned int version)
 
template<class Archive >
void serialize (Archive &ar, nuklei_wmf::Matrix3< nuklei::coord_t > &m, const unsigned int version)
 
© Copyright 2007-2013 Renaud Detry.
Distributed under the terms of the GNU General Public License (GPL).
(See accompanying file LICENSE.txt or copy at http://www.gnu.org/copyleft/gpl.html.)
Revised Sun Sep 13 2020 19:10:06.