class_docstr: A Dyadic object.
  
  See:
  https://en.wikipedia.org/wiki/Dyadic_tensor
  Kane, T., Levinson, D. Dynamics Theory and Applications. 1985 McGraw-Hill
  
  A more powerful way to represent a rigid body's inertia. While it is more
  complex, by choosing Dyadic components to be in body fixed basis vectors,
  the resulting matrix is equivalent to the inertia tensor.
class_docstr_tok: ["A","Dyadic","object",".","See",":","https",":","\/\/en.wikipedia.org\/wiki\/Dyadic_tensor","Kane",",","T.",",","Levinson",",","D.","Dynamics","Theory","and","Applications",".","1985","McGraw-Hill","A","more","powerful","way","to","represent","a","rigid","body","'s","inertia",".","While","it","is","more","complex",",","by","choosing","Dyadic","components","to","be","in","body","fixed","basis","vectors",",","the","resulting","matrix","is","equivalent","to","the","inertia","tensor","."]
docstr: Just like Vector's init, you should not call this unless creating a
  zero dyadic.
  
  zd = Dyadic(0)
  
  Stores a Dyadic as a list of lists; the inner list has the measure
  number and the two unit vectors; the outerlist holds each unique
  unit vector pair.
docstr_tok: ["Just","like","Vector","'s","init",",","you","should","not","call","this","unless","creating","a","zero","dyadic",".","zd","=","Dyadic","(","0",")","Stores","a","Dyadic","as","a","list","of","lists",";","the","inner","list","has","the","measure","number","and","the","two","unit","vectors",";","the","outerlist","holds","each","unique","unit","vector","pair","."]
code: def __init__(self, inlist):
      """
      Just like Vector's init, you should not call this unless creating a
      zero dyadic.
  
      zd = Dyadic(0)
  
      Stores a Dyadic as a list of lists; the inner list has the measure
      number and the two unit vectors; the outerlist holds each unique
      unit vector pair.
  
      """
  
      self.args = []
      if inlist == 0:
          inlist = []
      while len(inlist) != 0:
          added = 0
          for i, v in enumerate(self.args):
              if (str(inlist[0][1]) == str(self.args[i][1])) and (
                  str(inlist[0][2]) == str(self.args[i][2])
              ):
                  self.args[i] = (
                      self.args[i][0] + inlist[0][0],
                      inlist[0][1],
                      inlist[0][2],
                  )
                  inlist.remove(inlist[0])
                  added = 1
                  break
          if added != 1:
              self.args.append(inlist[0])
              inlist.remove(inlist[0])
      i = 0
      # This code is to remove empty parts from the list
      while i < len(self.args):
          if (
              (self.args[i][0] == 0)
              | (self.args[i][1] == 0)
              | (self.args[i][2] == 0)
          ):
              self.args.remove(self.args[i])
              i -= 1
          i += 1
  
imports: from sympy import sympify, Add, ImmutableMatrix
  from sympy.core.evalf import EvalfMixin
  from sympy.printing.defaults import Printable
  from mpmath.libmp.libmpf import prec_to_dps
label_desc: Use image node_id 1 to create a new Dyadic object from inherited base classes: Printable, EvalfMixin with example: obj = Dyadic(inlist)