#1429: Assertion error when using "eval" & new UIUC speedup in TwoPunctures ---------------------------------------+------------------------------------ Reporter: bernard.j.kelly@… | Owner: Type: defect | Status: new Priority: major | Milestone: ET_2013_11 Component: EinsteinToolkit thorn | Version: development version Resolution: | Keywords: TwoPunctures, malloc ---------------------------------------+------------------------------------
Comment (by eschnett):
The TwoPunctures thorn uses utility routines from the Numerical Recipes. The Fortran version of the NR uses standard Fortran, but the C version uses Fortran in C disguise -- a questionable choice. To be able to have array indices start with 1, all memory allocation functions can subtract an offset from the pointer, so that array[1] points to the first allocated element. (This is actually illegal in C, but probably works on all relevant systems.)
Instead of introducing new *_SIMPLE functions, I would rather correct the existing function. Alternatively, the existing function could be removed, and be replaced with the new function.
It seems the problem is that retval[nrl][0] is never set. The "apply all offsets" part is probably missing a loop.