rnlg / LiteRed2

13 stars 1 forks source link

FermatIBPReduce #4

Closed leonardo-delacruz closed 5 months ago

leonardo-delacruz commented 5 months ago

Dear Roman,

there seems to be an issue with FermatIBPReduce with some cases. I've constructed a basis for an on-shell triple box using LiteRed2. Reductions mostly work fine with say j[tripbox, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, -1, 0] and other examples but fails with j[tripbox, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, -2, 0], among others. The error seems to be related with "jvars", is there a way to fix this?

*** Inappropriate symbol: jvars array size would exceed maximum allowed (1000000).

print.pdf

rnlg commented 5 months ago

The problem comes from the restriction in Fermat on the maximal number of elements in array (<1000000). The array jvars contained the names of j[...] variables, so you've had too many j[..] appearing in the course of reduction. Not one million, but one million divided by the char length of an individual j.

I've corrected FermatIBPReduce to avoid this restriction. Please, update and check if the new code works for you. In case you just copy files rather than run makeShortCut.m, don't forget to copy also new files FermatCode/ibpreduce.Backward and FermatCode/ibpreduce.Backward.

Note that FermatIBPReduce is not so much optimised. Namely, it loads all necessary rules in one huge sparse matrix which should at least fit the RAM. So, at some point there expected to be memory problems.

leonardo-delacruz commented 5 months ago

Hi,

thanks a lot for the update. It worked fine. Thanks also for the clarification about FermatIBPReduce regarding RAM.