Source code for swarmauri.core.vector_stores.IDecompose

from abc import ABC, abstractmethod
from typing import Tuple, List
from swarmauri.core.vectors.IVector import IVector  # Assuming there's a base IVector interface for vector representations

[docs] class IDecompose(ABC): """ Interface for decomposing a vector into components along specified basis vectors. This operation is essential in expressing a vector in different coordinate systems or reference frames. """
[docs] @abstractmethod def decompose(self, vector: IVector, basis_vectors: List[IVector]) -> List[IVector]: """ Decompose the given vector into components along the specified basis vectors. Parameters: - vector (IVector): The vector to be decomposed. - basis_vectors (List[IVector]): A list of basis vectors along which to decompose the given vector. Returns: - List[IVector]: A list of vectors, each representing the component of the decomposed vector along the corresponding basis vector in the `basis_vectors` list. """ pass