@@ -642,13 +642,27 @@ def set_bad(i,j):
642642 M3n = M ([[3 ,0 ,0 ],[- 6 ,0 ,0 ],[3 ,0 ,0 ]])
643643 assert M3 .nullspace () == (M3n , 1 )
644644 assert M3 * M3 .nullspace ()[0 ] == M (3 ,3 ,[0 ]* 9 )
645- # XXX: lll core dumps on a singular matrix
646645 M4 = M ([[1 ,2 ,3 ],[4 ,5 ,6 ],[7 ,8 ,10 ]])
647646 L4 = M ([[0 ,0 ,1 ],[- 1 ,1 ,0 ],[2 ,1 ,0 ]])
648647 T4 = M ([[1 ,- 2 ,1 ],[0 ,5 ,- 3 ],[- 2 ,1 ,0 ]])
649648 assert L4 == T4 * M4
650649 assert M4 .lll () == L4
651650 assert M4 .lll (transform = True ) == (L4 , T4 )
651+ M5 = M ([[1 ,2 ,3 ],[4 ,5 ,6 ],[7 ,8 ,9 ]])
652+ L5 = M ([[0 ,0 ,0 ],[2 ,1 ,0 ],[- 1 ,1 ,3 ]])
653+ T5 = M ([[1 ,- 2 ,1 ],[- 2 ,1 ,0 ],[3 ,- 1 ,0 ]])
654+ assert L5 == T5 * M5
655+ assert M5 .lll () == L5
656+ assert M5 .lll (transform = True ) == (L5 , T5 )
657+ Mz = M (0 , 3 , [])
658+ assert Mz .lll () == M (0 , 3 , [])
659+ assert Mz .lll (transform = True ) == (M (0 , 3 , []), M (0 , 0 , []))
660+ Mr = M (3 , 0 , [])
661+ assert Mr .lll () == M (3 , 0 , [])
662+ assert Mr .lll (transform = True ) == (M (3 , 0 , []), M ([[1 ,0 ,0 ],[0 ,1 ,0 ],[0 ,0 ,1 ]]))
663+ Mzz = M (0 , 0 , [])
664+ assert Mzz .lll () == M (0 , 0 , [])
665+ assert Mzz .lll (transform = True ) == (M (0 , 0 , []), M (0 , 0 , []))
652666 # XXX: rep="gram" consumes all memory in the system and core dumps
653667 #for rep in "zbasis", "gram":
654668 rep = "zbasis"
0 commit comments