PointArithmetic Module

Module Contents

template<class PointT>
PointT tracktable::arithmetic::add(PointT const &left, PointT const &right)

Add two points

Parameters:
  • left[in] Point to add

  • right[in] Point to add

Returns:

Sum of points

template<class PointT>
PointT tracktable::arithmetic::add_in_place(PointT &left, PointT const &right)

Add two points in place

Parameters:
  • left[in] Point to add

  • right[in] Point to add

Returns:

Sum of points

template<class PointT>
PointT tracktable::arithmetic::subtract(PointT const &left, PointT const &right)

Subtract two points

Parameters:
  • left[in] Point to subtract

  • right[in] Point to subtract

Returns:

Difference of points

template<class PointT>
PointT tracktable::arithmetic::subtract_in_place(PointT &left, PointT const &right)

Subtract two points in place

Parameters:
  • left[in] Point to subtract

  • right[in] Point to subtract

Returns:

Difference of points

template<class PointT>
PointT tracktable::arithmetic::multiply(PointT const &left, PointT const &right)

Multiply two points

Parameters:
  • left[in] Point to multiply

  • right[in] Point to multiply

Returns:

Product of points

template<class PointT>
PointT tracktable::arithmetic::multiply_in_place(PointT &left, PointT const &right)

Multiply two points in place

Parameters:
  • left[in] Point to multiply

  • right[in] Point to multiply

Returns:

Product of points

template<class PointT, typename ScalarT>
PointT tracktable::arithmetic::multiply_scalar(PointT const &left, ScalarT const &value)

Multiply a point by a scalar

Parameters:
  • left[in] Point to multiply

  • value[in] Scalar to multiply point by

Returns:

Scaled point product

template<class PointT, typename ScalarT>
PointT tracktable::arithmetic::multiply_scalar_in_place(PointT &left, ScalarT const &value)

Multiply a point by a scalar in place

Parameters:
  • left[in] Point to multiply

  • value[in] Scalar to multiply point by

Returns:

Scaled point product

template<class PointT>
PointT tracktable::arithmetic::divide(PointT const &left, PointT const &right)

Divide two points

Parameters:
  • left[in] Point to divide

  • right[in] Point to divide

Returns:

Quotient of point

template<class PointT>
PointT tracktable::arithmetic::divide_in_place(PointT &left, PointT const &right)

Divide two points in place

Parameters:
  • left[in] Point to divide

  • right[in] Point to divide

Returns:

Quotient of point

template<class PointT, typename ScalarT>
PointT tracktable::arithmetic::divide_scalar(PointT const &left, ScalarT const &value)

Divide a point by a scalar

Parameters:
  • left[in] Point to divide

  • value[in] Scalar to divide point by

Returns:

Scaled point quotient

template<class PointT, typename ScalarT>
PointT tracktable::arithmetic::divide_scalar_in_place(PointT &left, ScalarT const &value)

Divide a point by a scalar in place

Parameters:
  • left[in] Point to divide

  • value[in] Scalar to divide point by

Returns:

Scaled point quotient

template<class PointT>
double tracktable::arithmetic::dot(PointT const &left, PointT const &right)

Compute dot product of two points

Parameters:
  • left[in] Point to use during computation

  • right[in] Point to use during computation

Returns:

Sum of point products

template<class PointT>
double tracktable::arithmetic::norm_squared(PointT const &left)

Square the given point

Parameters:

left[in] Point to square

Returns:

Squared value of point

template<class PointT>
double tracktable::arithmetic::norm(PointT const &left)

Square root the given point

Parameters:

left[in] Point to take the square root of

Returns:

Square root value of point

template<class PointT>
PointT tracktable::arithmetic::zero()

Get a Zeroized point

Returns:

Zeroized point