ref discussion in #12137. Calling this operation full and returning anything other than a dense array from full is fishy to me. I think it's different enough to warrant a separate name, though I'm not sure what that name should be. Maybe this is an uncommon enough operation that we just force the user to know what type it came from and use convert. Or we come up with something new, ifactorize maybe? Suggestions welcome.
prod?
Another possibility is to bring back dense() for returning dense matrices and allow full() to return something else.
factorproduct
@ViralBShah I don't think factor should be in the method name when Factor is part of the name of the type for which the method is defined.
collapse? condense?
In the number theory package "pari", this function is named factorback (but it's not in the linear algebra context).
Matrix/Array
@StefanKarpinski I think we are looking for something generic and it would be weird if Matrix(CHOLMOD.Factor) -> SparseMatrixCSC.
That's a fair point. AbstractMatrix?
Yes. I think that could work.
Are factorization types already subtypes of AbstractMatrix though?
No and it even has a name https://github.com/JuliaLang/julia/issues/1412. It wouldn't work if that was the case.
Ah my bad. In that case I guess it's alright - calling a constructor of an abstract type always seems a little odd to me but it should be mostly unambiguous here.
With #17066 merged, close?
I think #17082 will close this with the deprecation. Right now things have been reimplemented in terms of convert, but using full for this operation isn't deprecated yet, correct?
Correct. With #17684 and #17900 in, #17660 should now be viable (will confirm there). #17660 should enable reinstatement of #17079, which should in turn enable #17082 and close this issue. Best!
Deferring till after 0.6 (the sparse map[!]/broadcast[!] work is higher priority). Best!
Most helpful comment
Deferring till after 0.6 (the sparse
map[!]/broadcast[!]work is higher priority). Best!