@@ -6799,13 +6799,26 @@ def cliques_number_of(self, vertices=None, cliques=None):
67996799            {(0, 0): 2, (0, 1): 3, (0, 2): 2, (1, 0): 2, (1, 1): 3, (1, 2): 2} 
68006800            sage: F.cliques_number_of(vertices=[(0, 1), (1, 2)]) 
68016801            {(0, 1): 3, (1, 2): 2} 
6802+             sage: F.cliques_number_of(vertices=(0, 1)) 
6803+             3 
68026804            sage: G = Graph({0:[1,2,3], 1:[2], 3:[0,1]}) 
68036805            sage: G.show(figsize=[2,2]) 
68046806            sage: G.cliques_number_of() 
68056807            {0: 2, 1: 2, 2: 1, 3: 1} 
68066808        """ 
6807-         import  networkx 
6808-         return  networkx .number_of_cliques (self .networkx_graph (), vertices , cliques )
6809+         if  cliques  is  None :
6810+             cliques  =  self .cliques_maximal ()
6811+ 
6812+         if  vertices  in  self :  # single vertex 
6813+             return  sum (1  for  c  in  cliques  if  vertices  in  c )
6814+ 
6815+         from  collections  import  Counter 
6816+         count  =  Counter ()
6817+ 
6818+         for  c  in  cliques :
6819+             count .update (c )
6820+ 
6821+         return  {v  : count [v ] for  v  in  vertices  or  self }
68096822
68106823    @doc_index ("Clique-related methods" ) 
68116824    def  cliques_get_max_clique_graph (self ):
@@ -7506,17 +7519,32 @@ def cliques_containing_vertex(self, vertices=None, cliques=None):
75067519
75077520            sage: C = Graph('DJ{') 
75087521            sage: C.cliques_containing_vertex() 
7509-             {0: [[4, 0]], 1: [[4, 1, 2, 3]], 2: [[4, 1, 2, 3]], 3: [[4, 1, 2, 3]], 4: [[4, 0], [4, 1, 2, 3]]} 
7522+             {0: [[0, 4]], 
7523+              1: [[1, 2, 3, 4]], 
7524+              2: [[1, 2, 3, 4]], 
7525+              3: [[1, 2, 3, 4]], 
7526+              4: [[0, 4], [1, 2, 3, 4]]} 
7527+             sage: C.cliques_containing_vertex(4) 
7528+             [[0, 4], [1, 2, 3, 4]] 
7529+             sage: C.cliques_containing_vertex([0, 1]) 
7530+             {0: [[0, 4]], 1: [[1, 2, 3, 4]]} 
75107531            sage: E = C.cliques_maximal() 
75117532            sage: E 
75127533            [[0, 4], [1, 2, 3, 4]] 
75137534            sage: C.cliques_containing_vertex(cliques=E) 
7514-             {0: [[0, 4]], 1: [[1, 2, 3, 4]], 2: [[1, 2, 3, 4]], 3: [[1, 2, 3, 4]], 4: [[0, 4], [1, 2, 3, 4]]} 
7535+             {0: [[0, 4]], 
7536+              1: [[1, 2, 3, 4]], 
7537+              2: [[1, 2, 3, 4]], 
7538+              3: [[1, 2, 3, 4]], 
7539+              4: [[0, 4], [1, 2, 3, 4]]} 
75157540
75167541            sage: G = Graph({0:[1,2,3], 1:[2], 3:[0,1]}) 
75177542            sage: G.show(figsize=[2,2]) 
75187543            sage: G.cliques_containing_vertex() 
7519-             {0: [[0, 1, 2], [0, 1, 3]], 1: [[0, 1, 2], [0, 1, 3]], 2: [[0, 1, 2]], 3: [[0, 1, 3]]} 
7544+             {0: [[0, 1, 2], [0, 1, 3]], 
7545+              1: [[0, 1, 2], [0, 1, 3]], 
7546+              2: [[0, 1, 2]], 
7547+              3: [[0, 1, 3]]} 
75207548
75217549        Since each clique of a 2 dimensional grid corresponds to an edge, the 
75227550        number of cliques in which a vertex is involved equals its degree:: 
@@ -7531,8 +7559,20 @@ def cliques_containing_vertex(self, vertices=None, cliques=None):
75317559            sage: sorted(sorted(x for x in L) for L in d[(0, 1)]) 
75327560            [[(0, 0), (0, 1)], [(0, 1), (0, 2)], [(0, 1), (1, 1)]] 
75337561        """ 
7534-         import  networkx 
7535-         return  networkx .cliques_containing_node (self .networkx_graph (), vertices , cliques )
7562+         if  cliques  is  None :
7563+             cliques  =  self .cliques_maximal ()
7564+ 
7565+         if  vertices  in  self :  # single vertex 
7566+             return  [c  for  c  in  cliques  if  vertices  in  c ]
7567+ 
7568+         from  collections  import  defaultdict 
7569+         d  =  defaultdict (list )
7570+ 
7571+         for  c  in  cliques :
7572+             for  v  in  c :
7573+                 d [v ].append (c )
7574+ 
7575+         return  {v  : d [v ] for  v  in  vertices  or  self }
75367576
75377577    @doc_index ("Clique-related methods" ) 
75387578    def  clique_complex (self ):
0 commit comments