[itops] split convmat in allocation and a convmat_inplace builder fun…#13
Conversation
|
Hi Hugo, Thanks, this is very useful. Sorry for the long delay on this. Could you please do the following?
In addition, I am curious why you are pre-building the matrix of convolution using Thanks, Jason |
7b85ddf to
94a8441
Compare
|
Dear Jason, Thank you for the feeback! I have changed the target branch of the pull request to or below for an excerpt. Could you please have a look and let me know what you think? Cheers, Hugo Note in doc of /*
* \note This function builds the matrix of convolution, in place, in the
* provided matrix `fconv`. This makes it possible to control the memory
* allocation externally. If this is not a concern, we advice using the
* `covmat(...)` function instead (of `convmat_inplace(...)`).
*/ |
Dear Jason,
I have been struggling with
imtime_ops.convmatfor systems having a large number of orbitals. The main challenge has been that of getting control of allocations, so that the large convolution matrix is only allocated once.This pull requests splits the current
imtime_ops.convmatin two functions, retaining the API of theconvmatand adding aconvmat_inplacemethod that builds the matrix in-place using a passed matrix_view. This way it is possible for the library user to take control over the allocation.I am currently using it on 1.1.x (and this is a pull request to the 1.1.x. branch), together with Triqs 1.3.x (that depends on cppdlr 1.1.x).
Cheers, Hugo