Size: 15888
Comment:
|
Size: 15918
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 66: | Line 66: |
|| exp || || || || || || || TRUE || | || exp || #4733 || #4733 || #4733 || #4733 || #4733 || #4733 || TRUE || |
This may be more of a work-in-progress than a formal SEP, but I\'m not sure where else to put it.
Basically, we now have inconsistency of what functions are defined for what matrix types. This makes things confusing to students, for example; when they are doing a problem, often a matrix will be coerced into a new type, which then has a different set of functions.
We should also carefully look at the eig* functions in each datatype and make sure that the interface is consistent and that the eigenvalues/vectors/spaces/matrices are computed in the appropriate way.
method |
Integer Ring |
Rational Field |
Real Field with 53 bits of precision |
Complex Field with 53 bits of precision |
Real Double Field |
Complex Double Field |
Symbolic Ring |
BKZ |
TRUE |
|
|
|
|
|
|
LLL |
TRUE |
|
|
|
|
|
|
LLL_gram |
TRUE |
|
|
|
|
|
|
LU |
|
|
|
|
TRUE |
TRUE |
|
LU_valid |
|
|
|
|
TRUE |
TRUE |
|
QR |
|
|
|
|
TRUE |
TRUE |
|
SVD |
|
|
|
|
TRUE |
TRUE |
|
abs |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
act_on_polynomial |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
add_multiple_of_column |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
add_multiple_of_row |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
additive_order |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
adjoint |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
antitranspose |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
apply_map |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
apply_morphism |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
arguments |
|
|
|
|
|
|
TRUE |
augment |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
base_extend |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
base_ring |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
block_sum |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
category |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
change_ring |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
characteristic_polynomial |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
charpoly |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
cholesky |
|
|
|
|
TRUE |
TRUE |
|
column |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
column_module |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
column_space |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
columns |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
commutator |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
conjugate |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
copy |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
db |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
decomposition |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
decomposition_of_subspace |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
denominator |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
dense_columns |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
dense_matrix |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
dense_rows |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
density |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
derivative |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
det |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
determinant |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
dict |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
dump |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
dumps |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
echelon_form |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
echelonize |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
eigenmatrix_left |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
eigenmatrix_right |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
eigenspaces |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
eigenspaces_left |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
eigenspaces_right |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
eigenvalues |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
eigenvectors_left |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
eigenvectors_right |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
elementary_divisors |
TRUE |
|
|
|
|
|
|
exp |
#4733 |
#4733 |
#4733 |
#4733 |
#4733 |
#4733 |
TRUE |
expand |
|
|
|
|
|
|
TRUE |
factor |
|
|
|
|
|
|
TRUE |
fcp |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
find |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
frobenius |
TRUE |
|
|
|
|
|
|
gcd |
TRUE |
|
|
|
|
|
|
get_subdivisions |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
gram_schmidt |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
hadamard_bound |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
height |
TRUE |
TRUE |
|
|
|
|
|
hermite_form |
TRUE |
|
|
|
|
|
|
hessenberg_form |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
hessenbergize |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
image |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
index_in_saturation |
TRUE |
|
|
|
|
|
|
insert_row |
TRUE |
|
|
|
|
|
|
integer_kernel |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
inverse |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
invert |
|
TRUE |
|
|
|
|
|
is_LLL_reduced |
TRUE |
|
|
|
|
|
|
is_dense |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
is_immutable |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
is_invertible |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
is_mutable |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
is_nilpotent |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
is_one |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
is_scalar |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
is_simplified |
|
|
|
|
|
|
TRUE |
is_sparse |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
is_square |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
is_symmetric |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
is_unit |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
is_zero |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
iterates |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
jordan_form |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
kernel |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
kernel_matrix |
TRUE |
|
|
|
|
|
|
kernel_on |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
left_eigenmatrix |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
left_eigenvectors |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
left_kernel |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
left_nullity |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
lift |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
linear_combination_of_columns |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
linear_combination_of_rows |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
list |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
log_determinant |
|
|
|
|
TRUE |
TRUE |
|
matrix_from_columns |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
matrix_from_rows |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
matrix_from_rows_and_columns |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
matrix_over_field |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
matrix_space |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
matrix_window |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
maxspin |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
minimal_polynomial |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
minors |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
minpoly |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
mod |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
multiplicative_order |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
n |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
ncols |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
new_matrix |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
nonpivots |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
nonzero_positions |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
nonzero_positions_in_column |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
nonzero_positions_in_row |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
norm |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
nrows |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
nullity |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
number_of_arguments |
|
|
|
|
|
|
TRUE |
numerical_approx |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
numpy |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
order |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
parent |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
permanent |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
permanental_minor |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
pivot_rows |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
pivots |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
plot |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
prod_of_row_sums |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
randomize |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
rank |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
rational_reconstruction |
TRUE |
|
|
|
|
|
|
rename |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
rescale_col |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
rescale_row |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
reset_name |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
restrict |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
restrict_codomain |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
restrict_domain |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
right_eigenmatrix |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
right_eigenspaces |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
right_eigenvectors |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
right_kernel |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
right_nullity |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
rook_vector |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
row |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
row_module |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
row_space |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
rows |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
saturation |
TRUE |
|
|
|
|
|
|
save |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
set_block |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
set_col_to_multiple_of_col |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
set_column |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
set_immutable |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
set_row |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
set_row_to_multiple_of_row |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
simplify |
|
|
|
|
|
|
TRUE |
simplify_rational |
|
|
|
|
|
|
TRUE |
simplify_trig |
|
|
|
|
|
|
TRUE |
smith_form |
TRUE |
|
|
|
|
|
|
solve_left |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
solve_left_LU |
|
|
|
|
TRUE |
TRUE |
|
solve_right |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
sparse_columns |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
sparse_matrix |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
sparse_rows |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
stack |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
str |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
subdivide |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
subdivision |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
subdivision_entry |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
subdivisions |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
submatrix |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
subs |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
substitute |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
swap_columns |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
swap_rows |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
symplectic_form |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
tensor_product |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
trace |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
transpose |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
variables |
|
|
|
|
|
|
TRUE |
version |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
visualize_structure |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
wiedemann |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
with_added_multiple_of_column |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
with_added_multiple_of_row |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
with_col_set_to_multiple_of_col |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
with_rescaled_col |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
with_rescaled_row |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
with_row_set_to_multiple_of_row |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
I got this from this code:
import inspect rings = [ZZ,QQ,RR,CC,RDF,CDF,SR] ring_methods = {} for r in rings: ring_methods[r] = set([method for method,_ in inspect.getmembers(matrix(r)) if not method.startswith('_')]) # Get a comprehensive list of names. full_list = set([]) for r in rings: full_list.update(ring_methods[r]) full_list = sorted(list(full_list)) s = '|| method || ' s += ' || '.join([repr(r) for r in rings])+' ||' print s for method in full_list: s = "|| "+ method+" || " s += ' || '.join(['TRUE' if method in ring_methods[r] else '' for r in rings]) s += ' ||' print s