Closed albinahlback closed 1 month ago
Hmm, not really a fan of the templates.
Edit: I'm maybe fine with this if the template macros are defined immediately before use in templates.c
itself. Otherwise, I'll risk having flashbacks from dealing with nonlocal code in fq
and lll
.
What I'd actually like to do with the arb_mat
and acb_mat
modules is make sure gr_mat
has all the functionality and then just have thin wrappers, which could be autogenerated.
Hmm, not really a fan of the templates.
Edit: I'm maybe fine with this if the template macros are defined immediately before use in
templates.c
itself. Otherwise, I'll risk having flashbacks from dealing with nonlocal code infq
andlll
.What I'd actually like to do with the
arb_mat
andacb_mat
modules is make suregr_mat
has all the functionality and then just have thin wrappers, which could be autogenerated.
Hmm, I'm also fine with reverting the commit. Do I understand you correct in that I should just copypasta the things in dev/arb_mat_templates.h
into templates.c
to then remove said header?
Hmm, not really a fan of the templates. Edit: I'm maybe fine with this if the template macros are defined immediately before use in
templates.c
itself. Otherwise, I'll risk having flashbacks from dealing with nonlocal code infq
andlll
. What I'd actually like to do with thearb_mat
andacb_mat
modules is make suregr_mat
has all the functionality and then just have thin wrappers, which could be autogenerated.Hmm, I'm also fine with reverting the commit. Do I understand you correct in that I should just copypasta the things in
dev/arb_mat_templates.h
intotemplates.c
to then remove said header?
Yes.
acb_dft.h
acb_vec_printd_index
fromacb_dft.h
acb_modular
nmod_mat
arb_fmpz_poly.h
arb_hypgeom.h
d_mat.h
inclusion infmpz_mat.h
. The three functions that requiresd_mat.h
will now required_mat.h
to be loaded first. (I can remove this one. I just thinkd_mat.h
is quite unnused.)fmpz_mat.h
,fmpq_mat.h
andnmod_vec.h
src/dev/arb_mat_templates.h
to generate some boiler plate Arb matrix functions.Two notes on the last point. First, I believe it was a function or two now changed the looping bounds from the output matrix's rows and columns to the input matrix's rows and columns. Second, in
acb_mat_conjugate
it previously aborted if output and input dimensions did not agree -- I removed this as it is neither documented, nor does it agree with similar code (I suppose this was a leftover from the transpose-conjugate or something).