def _product_coroot_root(self, i, j): r""" Return the product `\alpha^{\vee}_i \alpha_j`. EXAMPLES:: sage: k = QQ['c,t'] sage: R = algebras.RationalCherednik(['A',3], k.gen(0), k.gen(1)) sage: R._product_coroot_root(1, 1) ((1, 2*t), (s1*s2*s3*s2*s1, 1/2*c), (s2*s3*s2, 1/2*c), (s1*s2*s1, 1/2*c), (s1, 2*c), (s3, 0), (s2, 1/2*c)) sage: R._product_coroot_root(1, 2) ((1, -t), (s1*s2*s3*s2*s1, 0), (s2*s3*s2, -1/2*c), (s1*s2*s1, 1/2*c), (s1, -c), (s3, 0), (s2, -c)) sage: R._product_coroot_root(1, 3) ((1, 0), (s1*s2*s3*s2*s1, 1/2*c), (s2*s3*s2, -1/2*c), (s1*s2*s1, -1/2*c), (s1, 0), (s3, 0), (s2, 1/2*c)) """ Q = RootSystem(self._cartan_type).root_lattice() ac = Q.simple_coroot(i) al = Q.simple_root(j) R = self.base_ring() terms = [(self._weyl.one(), self._t * R(ac.scalar(al)))] for s in self._reflections: # p[0] is the root, p[1] is the coroot, p[2] the value c_s pr, pc, c = self._reflections[s] terms.append( (s, c * R(ac.scalar(pr) * pc.scalar(al) / pc.scalar(pr)))) return tuple(terms)
def _product_coroot_root(self, i, j): r""" Return the product `\alpha^{\vee}_i \alpha_j`. EXAMPLES:: sage: k = QQ['c,t'] sage: R = algebras.RationalCherednik(['A',3], k.gen(0), k.gen(1)) sage: R._product_coroot_root(1, 1) ((1, 2*t), (s1*s2*s3*s2*s1, 1/2*c), (s2*s3*s2, 1/2*c), (s1*s2*s1, 1/2*c), (s1, 2*c), (s3, 0), (s2, 1/2*c)) sage: R._product_coroot_root(1, 2) ((1, -t), (s1*s2*s3*s2*s1, 0), (s2*s3*s2, -1/2*c), (s1*s2*s1, 1/2*c), (s1, -c), (s3, 0), (s2, -c)) sage: R._product_coroot_root(1, 3) ((1, 0), (s1*s2*s3*s2*s1, 1/2*c), (s2*s3*s2, -1/2*c), (s1*s2*s1, -1/2*c), (s1, 0), (s3, 0), (s2, 1/2*c)) """ Q = RootSystem(self._cartan_type).root_lattice() ac = Q.simple_coroot(i) al = Q.simple_root(j) R = self.base_ring() terms = [( self._weyl.one(), self._t * R(ac.scalar(al)) )] for s in self._reflections: # p[0] is the root, p[1] is the coroot, p[2] the value c_s pr, pc, c = self._reflections[s] terms.append(( s, c * R(ac.scalar(pr) * pc.scalar(al) / pc.scalar(pr)) )) return tuple(terms)