I have been trying to write a modified version of the dmrg and sweepnext functions in Julia for my work on the lattice Schwinger model with periodic boundary conditions. However, when I do so, I am confronted with the following error message:
ERROR: LoadError: LoadError: UndefVarError: @timeit_debug not defined
When I looked in the original dmrg.jl code, I see @timeit_debug used four times. There is no indication of it being defined earlier in the file or being imported from somewhere else. The first one looks like this:
@timeit_debug GLOBAL_TIMER "position!" begin
position!(PH, psi, b)
end
When I try to look up this macro, the only thing I can find is this GitHub repository (https://github.com/KristofferC/TimerOutputs.jl/blob/b91912e12902a41425d030fed9d3f418134279ff/src/TimerOutput.jl). However, when I look in my Julia files and packages, I cannot find this repository or anything like it.
So anyway, my questions are:
(1) What is the purpose of this macro? In particular, is it necessary for the functioning of DMRG, or is it just some helpful addition? (Guessing by the name of the macro, I'm guessing it's the latter, but I want to be sure.)
(2) Where exactly is ITensors.jl getting this macro from?
(3) If I write my own methods in a separate Julia file that are meant to imitate ones in the repository but with certain modifications, what steps do I need to follow to incorporate this macro without getting the above error?