def dgm_for_frame(self, i):
     if i not in self.dgms:
         jnt = self.jnt_objs[i]
         if i > 0 and jnt.r == 0 and jnt.d == 0 and jnt.b == 0:
             self.dgms[i] = self.dgm_for_frame(self.robo.ant[i])
         else:
             symo = Symoro(sydi=self.pars_num)
             T = dgm(self.robo, symo, 0, i, fast_form=True, trig_subs=True)
             self.dgms[i] = symo.gen_func('dgm_generated', T, self.q_sym)
     return self.dgms[i]
 def generate_loop_fcn(self):
     symo = Symoro(sydi=self.pars_num)
     loop_solve(self.robo, symo)
     self.l_solver = symo.gen_func('IGM_gen', self.q_pas_sym,
                                   self.q_act_sym, multival=True)