Function for calculating rank
This commit is contained in:
parent
2715191ee5
commit
f51c0f32e6
|
|
@ -71,3 +71,11 @@ function gram_schmidt(vecs, ws, precision=1e-10, verbose=false)
|
||||||
end
|
end
|
||||||
return vecs[mask]
|
return vecs[mask]
|
||||||
end
|
end
|
||||||
|
|
||||||
|
"Rank of a basis set (pre-normalized) under c-product"
|
||||||
|
function c_rank(vecs, ws, threshold=1e-8)
|
||||||
|
basis = hcat(vecs...)
|
||||||
|
N = transpose(basis) * spdiagm(ws) * basis
|
||||||
|
abs_singular_values = eigvals(N) .|> abs .|> sqrt
|
||||||
|
return count(abs_singular_values .> threshold)
|
||||||
|
end
|
||||||
Loading…
Reference in New Issue