planner.core.linear_algebra#

Module Contents#

planner.core.linear_algebra.transformation_matrix(rot: numpy.ndarray | None = None, pos: numpy.ndarray | None = None) numpy.ndarray#

Returns a 4x4 transformation matrix given rotation matrix and translation vector.

Parameters:
  • rot (array-like) – 3x3 rotation matrix.

  • pos (array-like) – Translation vector (3 elements).

Returns:

numpy.ndarray – 4x4 transformation matrix.

Return type:

numpy.ndarray

planner.core.linear_algebra.truncpareto_cdf(x: torch.IntTensor, exponent: float, upper_bound: int) torch.FloatTensor#
Parameters:
  • x (torch.IntTensor) –

  • exponent (float) –

  • upper_bound (int) –

Return type:

torch.FloatTensor

planner.core.linear_algebra.max_scaling(directions: torch.FloatTensor, action_range: torch.FloatTensor) torch.FloatTensor#
Parameters:
  • directions (torch.FloatTensor) –

  • action_range (torch.FloatTensor) –

Return type:

torch.FloatTensor

planner.core.linear_algebra.normalize(direction: torch.FloatTensor) torch.FloatTensor#
Parameters:

direction (torch.FloatTensor) –

Return type:

torch.FloatTensor

planner.core.linear_algebra.normalize_multiple(directions: torch.FloatTensor) torch.FloatTensor#
Parameters:

directions (torch.FloatTensor) –

Return type:

torch.FloatTensor

planner.core.linear_algebra.project_v_on_u(v: torch.FloatTensor, u: torch.FloatTensor) torch.FloatTensor#

Calculates the projection of v on u.

Raises:

A ValueError if v and u are not vectors

Parameters:
  • v (torch.FloatTensor) –

  • u (torch.FloatTensor) –

Return type:

torch.FloatTensor

planner.core.linear_algebra.gram_schmidt(basis_vectors: torch.FloatTensor) torch.FloatTensor#

Returns an orthonormal basis spanning the same dimension as the linearly independent basis vectors.

This method assumes the basis vectors are linearly independent. If they aren’t, you’re going to have a bad time

Parameters:

basis_vectors (torch.FloatTensor) – set of vectors that span a space. The columns are assumed to be individual vectors

Raises:

An ValueError if the basis vectors are not linearly independent

Return type:

torch.FloatTensor

planner.core.linear_algebra.project_vectors_on_eigenspace(vectors: torch.FloatTensor, orthonormal_basis: torch.FloatTensor) torch.FloatTensor#

Given an eigenspace, projects the vector on the space.

Parameters:
  • vectors (torch.FloatTensor) – (k, n) vector

  • orthonormal – (m, n) sized orthonormal basis

  • orthonormal_basis (torch.FloatTensor) –

Returns:

(k, n) vectors projected on the orthonormal basis

Return type:

torch.FloatTensor

planner.core.linear_algebra.einsum_ij_ij_i(A: torch.FloatTensor, B: torch.FloatTensor) torch.FloatTensor#
Parameters:
  • A (torch.FloatTensor) –

  • B (torch.FloatTensor) –

Return type:

torch.FloatTensor

planner.core.linear_algebra.einsum_ij_kj_ki(A: torch.FloatTensor, B: torch.FloatTensor) torch.FloatTensor#
Parameters:
  • A (torch.FloatTensor) –

  • B (torch.FloatTensor) –

Return type:

torch.FloatTensor

planner.core.linear_algebra.einsum_ijk_ik_ij(A: torch.FloatTensor, B: torch.FloatTensor) torch.FloatTensor#
Parameters:
  • A (torch.FloatTensor) –

  • B (torch.FloatTensor) –

Return type:

torch.FloatTensor

planner.core.linear_algebra.einsum_ikj_ik_ij(A: torch.FloatTensor, B: torch.FloatTensor) torch.FloatTensor#
Parameters:
  • A (torch.FloatTensor) –

  • B (torch.FloatTensor) –

Return type:

torch.FloatTensor

planner.core.linear_algebra.einsum_jk_ikl_ijl(A: torch.FloatTensor, B: torch.FloatTensor) torch.FloatTensor#
Parameters:
  • A (torch.FloatTensor) –

  • B (torch.FloatTensor) –

Return type:

torch.FloatTensor

planner.core.linear_algebra.einsum_ijk_ikl_ijl(A: torch.FloatTensor, B: torch.FloatTensor) torch.FloatTensor#
Parameters:
  • A (torch.FloatTensor) –

  • B (torch.FloatTensor) –

Return type:

torch.FloatTensor

planner.core.linear_algebra.einsum_ikj_ikl_ijl(A: torch.FloatTensor, B: torch.FloatTensor) torch.FloatTensor#
Parameters:
  • A (torch.FloatTensor) –

  • B (torch.FloatTensor) –

Return type:

torch.FloatTensor

planner.core.linear_algebra.einsum_ijk_ilk_ijl(A: torch.FloatTensor, B: torch.FloatTensor) torch.FloatTensor#
Parameters:
  • A (torch.FloatTensor) –

  • B (torch.FloatTensor) –

Return type:

torch.FloatTensor