LinearMotionArithmetic.h File Reference
`#include <array>`
`#include <iostream>`
`#include <Eigen/Core>`
`#include "SurgSim/Math/IntervalArithmetic.h"`
`#include "SurgSim/Math/PolynomialValues.h"`
`#include "SurgSim/Math/Vector.h"`
`#include "SurgSim/Math/LinearMotionArithmetic-inl.h"`

Go to the source code of this file.

## Classes

class | SurgSim::Math::LinearMotion< T >
| LinearMotion is (intentionally) a lot like Interval, but it deals with linear motion where all operands start and end their motion simultaneously. More...
class | SurgSim::Math::LinearMotionND< T, N >
| LinearMotionND<T, N> defines the concept of a group of linear motions and provides operations on them including arithmetic operations, construction, and I/O. More...
class | SurgSim::Math::LinearMotionND< T, 3 >
| LinearMotionND<T, 3> specializes the LinearMotionND<T, N> class for 3 dimensions. More...

## Namespaces

| SurgSim
| SurgSim::Math

## Functions

template<typename T >
std::ostream & | SurgSim::Math::operator<< (std::ostream &o, const LinearMotion< T > &motion)
| Write a textual version of a linear motion to an output stream. More...
template<typename T , int N>
std::ostream & | SurgSim::Math::operator<< (std::ostream &o, const LinearMotionND< T, N > &motion)
| Write a textual version of a linear motion group to an output stream. More...
template<typename T >
Polynomial< T, 2 > | SurgSim::Math::analyticDotProduct (const LinearMotionND< T, 3 > &a, const LinearMotionND< T, 3 > &b)
| Calculate an analytic dot product as a Polynomial. More...
template<typename T , int A>
Polynomial< T, 2 > | SurgSim::Math::analyticCrossProductAxis (const LinearMotionND< T, 3 > &a, const LinearMotionND< T, 3 > &b)
| Calculate a single axis of an analytic cross product as a Polynomial. More...
template<typename T >
Polynomial< T, 2 > | SurgSim::Math::analyticCrossProductXAxis (const LinearMotionND< T, 3 > &a, const LinearMotionND< T, 3 > &b)
| Calculate the X axis of an analytic cross product as a Polynomial. More...
template<typename T >
Polynomial< T, 2 > | SurgSim::Math::analyticCrossProductYAxis (const LinearMotionND< T, 3 > &a, const LinearMotionND< T, 3 > &b)
| Calculate the Y axis of an analytic cross product as a Polynomial. More...
template<typename T >
Polynomial< T, 2 > | SurgSim::Math::analyticCrossProductZAxis (const LinearMotionND< T, 3 > &a, const LinearMotionND< T, 3 > &b)
| Calculate the Z axis of an analytic cross product as a Polynomial. More...
template<typename T >
void | SurgSim::Math::analyticCrossProduct (const LinearMotionND< T, 3 > &a, const LinearMotionND< T, 3 > &b, Polynomial< T, 2 > *resultXAxis, Polynomial< T, 2 > *resultYAxis, Polynomial< T, 2 > *resultZAxis)
| Calculate an analytic cross product as a Polynomial. More...
template<typename T >
Polynomial< T, 3 > | SurgSim::Math::analyticTripleProduct (const LinearMotionND< T, 3 > &a, const LinearMotionND< T, 3 > &b, const LinearMotionND< T, 3 > &c)
| Calculate an analytic cross product as a Polynomial, as a polynomial whose value for t=0..1 is the value of the triple product. More...
template<class T >
Interval< T > | SurgSim::Math::tripleProduct (const LinearMotionND< T, 3 > &a, const LinearMotionND< T, 3 > &b, const LinearMotionND< T, 3 > &c, const Interval< T > &range)
| Calculate the triple product, as an interval. More...
template<typename T >
Polynomial< T, 2 > | SurgSim::Math::analyticMagnitudeSquared (const LinearMotionND< T, 3 > &motion)
| Calculate the magnitude squared of a linear motion 3 group as a polynomial. More...