def coxeter_matrix_as_function(t): """ Returns the Coxeter matrix, as a function INPUT: - ``t`` -- a Cartan type EXAMPLES:: sage: from sage.combinat.root_system.coxeter_matrix import coxeter_matrix_as_function sage: f = coxeter_matrix_as_function(['A',4]) sage: matrix([[f(i,j) for j in range(1,5)] for i in range(1,5)]) [1 3 2 2] [3 1 3 2] [2 3 1 3] [2 2 3 1] """ t = CartanType(t) m = t.coxeter_matrix() index_set = t.index_set() reverse = dict((index_set[i], i) for i in range(len(index_set))) return lambda i,j: m[reverse[i], reverse[j]]
def coxeter_matrix_as_function(t): """ Returns the coxeter matrix, as a function INPUT: - ``t`` -- a Cartan type EXAMPLES:: sage: from sage.combinat.root_system.coxeter_matrix import coxeter_matrix_as_function sage: f = coxeter_matrix_as_function(['A',4]) sage: matrix([[f(i,j) for j in range(1,5)] for i in range(1,5)]) [1 3 2 2] [3 1 3 2] [2 3 1 3] [2 2 3 1] """ t = CartanType(t) m = t.coxeter_matrix() index_set = t.index_set() reverse = dict((index_set[i], i) for i in range(len(index_set))) return lambda i,j: m[reverse[i], reverse[j]]