@@ -28,7 +28,7 @@ AUTHORS:
28
28
- Vincent Neiger (2021-08-07): added inverse_series_trunc(),
29
29
solve_{left/right}_series_trunc(), {left/right}_quo_rem(), reduce().
30
30
31
- - Vincent Neiger (2024-02-13): added basis_completion(), is_basis_completion (),
31
+ - Vincent Neiger (2024-02-13): added basis_completion(), _is_basis_completion (),
32
32
_basis_completion_via_reversed_approx().
33
33
"""
34
34
# ****************************************************************************
@@ -4459,78 +4459,78 @@ cdef class Matrix_polynomial_dense(Matrix_generic_dense):
4459
4459
sage: rcomp1 = matrix( ring, 2, 3, \
4460
4460
[[5*x^2 + 4*x + 1, 5*x^2 + 2*x, 5*x^2 ], \
4461
4461
[2*x^3 + 4*x^2, 2*x^3 + 6*x^2 + 2*x + 1, 2*x^3 + x^2 + 3*x ]])
4462
- sage: rcomp1. is_basis_completion ( mat1)
4462
+ sage: rcomp1. _is_basis_completion ( mat1)
4463
4463
True
4464
4464
4465
4465
sage: mat2 = matrix( ring, 2, 3, \
4466
4466
[[x^2 + 5*x + 5, 3*x^2 + x + 3, 4*x^2 + 5*x + 4 ], \
4467
4467
[5*x^2 + 4*x, 3*x^2 + 4*x + 5, 5*x^2 + 5*x + 3 ]])
4468
4468
sage: rcomp2 = matrix( ring, 1, 3, [[2*x^2 + 1, 4*x^2 + 3*x, 2*x^2 + 3*x ]])
4469
- sage: rcomp2. is_basis_completion ( mat2)
4469
+ sage: rcomp2. _is_basis_completion ( mat2)
4470
4470
True
4471
4471
sage: ccomp2 = matrix( ring, 2, 0)
4472
- sage: ccomp2. is_basis_completion ( mat2, row_wise=False)
4472
+ sage: ccomp2. _is_basis_completion ( mat2, row_wise=False)
4473
4473
True
4474
4474
4475
4475
sage: mat3 = matrix( ring, 3, 2, \
4476
4476
[[ x^3 + x^2 + 5*x + 5, 2*x^3 + 2*x + 4 ], \
4477
4477
[ 3*x^3 + 2*x^2 + x + 3, 6*x^3 + 5*x^2 + x + 1 ], \
4478
4478
[2*x^3 + 5*x^2 + 3*x + 4, 4*x^3 + 6*x^2 + 5*x + 6 ]])
4479
4479
sage: rcomp3 = matrix( ring, 1, 2, [[x + 1, 2*x ]])
4480
- sage: rcomp3. is_basis_completion ( mat3)
4480
+ sage: rcomp3. _is_basis_completion ( mat3)
4481
4481
True
4482
4482
sage: ccomp3 = matrix( ring, 3, 2, \
4483
4483
[[3*x + 1, 4*x + 4 ], \
4484
4484
[ 2*x, 5*x + 1 ], \
4485
4485
[ 6*x, x ]])
4486
- sage: ccomp3. is_basis_completion ( mat3, row_wise=False)
4486
+ sage: ccomp3. _is_basis_completion ( mat3, row_wise=False)
4487
4487
True
4488
4488
4489
4489
A row-wise completion is generally not a column-wise completion ( most
4490
4490
often, matrix dimensions are not even compatible) , one exception being
4491
4491
the completions of square zero matrices::
4492
4492
4493
- sage: rcomp2. is_basis_completion ( mat2, row_wise=False)
4493
+ sage: rcomp2. _is_basis_completion ( mat2, row_wise=False)
4494
4494
Traceback ( most recent call last) :
4495
4495
...
4496
4496
TypeError: number of rows must be the same, 2 != 1
4497
- sage: ccomp2. is_basis_completion ( mat2, row_wise=True)
4497
+ sage: ccomp2. _is_basis_completion ( mat2, row_wise=True)
4498
4498
Traceback ( most recent call last) :
4499
4499
...
4500
4500
TypeError: number of columns must be the same, not 3 and 0
4501
- sage: rcomp3. is_basis_completion ( mat3, row_wise=False)
4501
+ sage: rcomp3. _is_basis_completion ( mat3, row_wise=False)
4502
4502
Traceback ( most recent call last) :
4503
4503
...
4504
4504
TypeError: number of rows must be the same, 3 != 1
4505
- sage: ccomp3. is_basis_completion ( mat3, row_wise=True)
4505
+ sage: ccomp3. _is_basis_completion ( mat3, row_wise=True)
4506
4506
False
4507
4507
4508
4508
sage: zero_mat = matrix( ring, 2, 2)
4509
4509
sage: comp = zero_mat. basis_completion( ) ; print( comp)
4510
4510
[1 0 ]
4511
4511
[0 1 ]
4512
- sage: comp. is_basis_completion ( zero_mat, row_wise=True)
4512
+ sage: comp. _is_basis_completion ( zero_mat, row_wise=True)
4513
4513
True
4514
- sage: comp. is_basis_completion ( zero_mat, row_wise=False)
4514
+ sage: comp. _is_basis_completion ( zero_mat, row_wise=False)
4515
4515
True
4516
4516
4517
4517
Completions that do not preserve the Smith factors are not valid,
4518
4518
even when the sought rank is reached::
4519
4519
4520
- sage: ( x * rcomp2) . is_basis_completion ( mat2)
4520
+ sage: ( x * rcomp2) . _is_basis_completion ( mat2)
4521
4521
False
4522
- sage: (( x+ 2) * rcomp3) . is_basis_completion ( mat3)
4522
+ sage: (( x+ 2) * rcomp3) . _is_basis_completion ( mat3)
4523
4523
False
4524
- sage: ( ccomp3 * matrix. diagonal( [x,1 ])) . is_basis_completion ( mat3, row_wise=False)
4524
+ sage: ( ccomp3 * matrix. diagonal( [x,1 ])) . _is_basis_completion ( mat3, row_wise=False)
4525
4525
False
4526
4526
4527
4527
Preserving Smith factors without reaching full rank is not a valid
4528
4528
completion::
4529
4529
4530
4530
sage: mat = matrix( ring, [[1,0,0 ]])
4531
- sage: matrix( ring, [[0,1,0 ]]) . is_basis_completion ( mat)
4531
+ sage: matrix( ring, [[0,1,0 ]]) . _is_basis_completion ( mat)
4532
4532
False
4533
- sage: matrix( ring, [[0,1,0 ], [0,0,1 ]]) . is_basis_completion ( mat)
4533
+ sage: matrix( ring, [[0,1,0 ], [0,0,1 ]]) . _is_basis_completion ( mat)
4534
4534
True
4535
4535
4536
4536
TESTS:
@@ -4542,30 +4542,30 @@ cdef class Matrix_polynomial_dense(Matrix_generic_dense):
4542
4542
sage: empty_columns = matrix( ring, 0, 2)
4543
4543
sage: id22 = matrix. identity( ring, 2)
4544
4544
4545
- sage: empty_mat. is_basis_completion ( empty_mat)
4545
+ sage: empty_mat. _is_basis_completion ( empty_mat)
4546
4546
True
4547
- sage: empty_mat. is_basis_completion ( empty_mat, row_wise=False)
4547
+ sage: empty_mat. _is_basis_completion ( empty_mat, row_wise=False)
4548
4548
True
4549
- sage: empty_mat. is_basis_completion ( empty_rows)
4549
+ sage: empty_mat. _is_basis_completion ( empty_rows)
4550
4550
True
4551
- sage: empty_mat. is_basis_completion ( empty_columns, row_wise=False)
4551
+ sage: empty_mat. _is_basis_completion ( empty_columns, row_wise=False)
4552
4552
True
4553
- sage: empty_mat. is_basis_completion ( empty_columns)
4553
+ sage: empty_mat. _is_basis_completion ( empty_columns)
4554
4554
Traceback ( most recent call last) :
4555
4555
...
4556
4556
TypeError: number of columns must be the same, not 2 and 0
4557
4557
4558
- sage: empty_columns. is_basis_completion ( id22)
4558
+ sage: empty_columns. _is_basis_completion ( id22)
4559
4559
True
4560
- sage: empty_columns. is_basis_completion ( id22, row_wise=False)
4560
+ sage: empty_columns. _is_basis_completion ( id22, row_wise=False)
4561
4561
Traceback ( most recent call last) :
4562
4562
...
4563
4563
TypeError: number of rows must be the same, 2 != 0
4564
- sage: empty_columns. is_basis_completion ( empty_columns)
4564
+ sage: empty_columns. _is_basis_completion ( empty_columns)
4565
4565
False
4566
- sage: empty_rows. is_basis_completion ( id22, row_wise=False)
4566
+ sage: empty_rows. _is_basis_completion ( id22, row_wise=False)
4567
4567
True
4568
- sage: empty_rows. is_basis_completion ( empty_rows, row_wise=True)
4568
+ sage: empty_rows. _is_basis_completion ( empty_rows, row_wise=True)
4569
4569
False
4570
4570
"""
4571
4571
0 commit comments