class_docstr: The class used to define vectors.
  
  It along with ReferenceFrame are the building blocks of describing a
  classical mechanics system in PyDy and sympy.physics.vector.
  
  Attributes
  ==========
  
  simp : Boolean
      Let certain methods use trigsimp on their outputs
class_docstr_tok: ["The","class","used","to","define","vectors",".","It","along","with","ReferenceFrame","are","the","building","blocks","of","describing","a","classical","mechanics","system","in","PyDy","and","sympy.physics.vector",".","Attributes","==========","simp",":","Boolean","Let","certain","methods","use","trigsimp","on","their","outputs"]
docstr: Outer product between two Vectors.
  
  A rank increasing operation, which returns a Dyadic from two Vectors
  
  Parameters
  ==========
  
  other : Vector
      The Vector to take the outer product with
  
  Examples
  ========
  
  >>> from sympy.physics.vector import ReferenceFrame, outer
  >>> N = ReferenceFrame('N')
  >>> outer(N.x, N.x)
  (N.x|N.x)
docstr_tok: ["Outer","product","between","two","Vectors",".","A","rank","increasing","operation",",","which","returns","a","Dyadic","from","two","Vectors","Parameters","==========","other",":","Vector","The","Vector","to","take","the","outer","product","with","Examples","========",">",">",">","from","sympy.physics.vector","import","ReferenceFrame",",","outer",">",">",">","N","=","ReferenceFrame","(","'N","'",")",">",">",">","outer","(","N.x",",","N.x",")","(","N.x|N.x",")"]
code: def __ror__(self, other):
      """Outer product between two Vectors.
  
      A rank increasing operation, which returns a Dyadic from two Vectors
  
      Parameters
      ==========
  
      other : Vector
          The Vector to take the outer product with
  
      Examples
      ========
  
      >>> from sympy.physics.vector import ReferenceFrame, outer
      >>> N = ReferenceFrame('N')
      >>> outer(N.x, N.x)
      (N.x|N.x)
  
      """
  
      from sympy.physics.vector.dyadic import Dyadic
  
      other = _check_vector(other)
      ol = Dyadic(0)
      for i, v in enumerate(other.args):
          for i2, v2 in enumerate(self.args):
              # it looks this way because if we are in the same frame and
              # use the enumerate function on the same frame in a nested
              # fashion, then bad things happen
              ol += Dyadic([(v[0][0] * v2[0][0], v[1].x, v2[1].x)])
              ol += Dyadic([(v[0][0] * v2[0][1], v[1].x, v2[1].y)])
              ol += Dyadic([(v[0][0] * v2[0][2], v[1].x, v2[1].z)])
              ol += Dyadic([(v[0][1] * v2[0][0], v[1].y, v2[1].x)])
              ol += Dyadic([(v[0][1] * v2[0][1], v[1].y, v2[1].y)])
              ol += Dyadic([(v[0][1] * v2[0][2], v[1].y, v2[1].z)])
              ol += Dyadic([(v[0][2] * v2[0][0], v[1].z, v2[1].x)])
              ol += Dyadic([(v[0][2] * v2[0][1], v[1].z, v2[1].y)])
              ol += Dyadic([(v[0][2] * v2[0][2], v[1].z, v2[1].z)])
      return ol
  
imports: from sympy import S, sympify, expand, sqrt, Add, zeros, acos, ImmutableMatrix, simplify
  from sympy.simplify.trigsimp import trigsimp
  from sympy.printing.defaults import Printable
  from sympy.utilities.misc import filldedent
  from sympy.core.evalf import EvalfMixin
  from mpmath.libmp.libmpf import prec_to_dps
label_desc: Use image node_id 13 for calling the Vector obj's underlying member method code with example usage: obj.__ror__(other) and returns: ol