Extracting internally computed array from `KrylovKit.eigsolve` (without forking)

I’d like to access the array T defined at line 44 of KrylovKit.jl/src/eigsolve/lanczos external to the function KrylovKit.eigsolve i.e. I want that eigsolve return T as well.

What is the best way to go about this without forking the repository?

My goal is to be able to extract the so called Lanczos coefficients from the function because, to my knowledge, KrylovKit.jl does not explicitly provide a way to extract them.

Thanks!

I’m not sure if there is a way to do so without forking, or copying over some code. The easiest solution would be to simply copy that function, give it a new name and also return the values you like. You’ll have to qualify some names to make sure the namespace is correct, but otherwise this isn’t too much hassle I think?

Yeah, I guess copying would be the best. I was hoping there were some methods built-into Julia that would allow for something more optimized.

but there’s the other issue with copying that there are many variables and functions that eigsolve uses which I’d also have to import explicitly - which really makes this very cluttered and is much worse than forking :frowning:

No need to fork, just ]dev KrylovKit and edit the relevant files in your /.julia/dev/KrylovKit directory.

1 Like

that is nice, I guess I will need to keep an eye out for updates to KrylovKit and do the same modifications again (if I want to keep using the latest version)?

Yes