Aurel Page on Mon, 17 Mar 2025 13:26:54 +0100


[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

Re: Question about mfpetersson


Dear Ahmad,

It looks like a bug to me, but I will check with Karim and Henri who wrote this package.

One line looks suspicious to me:

  if (!gequal0(gel(ESF,1)) && !gequal0(gel(ESG,1)))
    return mfpeterssonnoncusp(FS, GS);

When changing && to ||, we obtain:

? mfpetersson(mfsymbol(mfDelta), mfsymbol(mflinear([mfDelta,mfEk(12)],[1,2])))
%1 = 1.0353620568043209223478168122251645992 E-6 - 1.4909815660416053635 E-42*I
? mfpetersson(mfsymbol(mfDelta), mfsymbol(mflinear([mfDelta,mfEk(12)],[1,0])))
%2 = 1.0353620568043209223478168122251645932 E-6 + 0.E-44*I
? mfpetersson(mfsymbol(mfDelta), mfsymbol(mflinear([mfDelta,mfEk(12)],[0,1])))
%3 = 1.1364530545674266445 E-42 - 5.829401611591239015 E-43*I

But I may be misunderstanding what the code is supposed to do.

Best,
Aurel

On 17/03/2025 12:38, Ahmad Mostafa Ismail El-Guindy wrote:
Hello,

I am not sure what exactly am I doing wrong, but I am getting unexpected behavior from mfpetersson which seems to violate linearity. Since <Delta, E_{12}>=0 shouldn't the first line below give <Delta, Delta>? Why is it returning 0 instead?

(12:22) gp > mfpetersson(mfsymbol(mfDelta), mfsymbol(mflinear([mfDelta,mfEk(12)],[1,2])))
%43 = 0
(12:25) gp > mfpetersson(mfsymbol(mfDelta), mfsymbol(mflinear([mfDelta,mfEk(12)],[1,0])))
%44 = 1.0353620568043209223478168122251645932 E-6 + 0.E-44*I
(12:25) gp > mfpetersson(mfsymbol(mfDelta), mfsymbol(mflinear([mfDelta,mfEk(12)],[0,1])))
%45 = 0

Thanks,

Ahmad