code: def project(self, n):
          
          n = get_uvec(n)
          return self.einsum_sequence([n] * self.rank)
docs: Convenience method for projection of a tensor into a
          vector.  Returns the tensor dotted into a unit vector
          along the input n.
  
          Args:
              n (3x1 array-like): direction to project onto
  
          Returns (float):
              scalar value corresponding to the projection of
              the tensor into the vector