Skip to content

Broken topologies_ #474

@tueda

Description

@tueda

The 5.0.0-beta reference manual says

In version 4.3 there existed also the topologies_ and the phi_ functions to just generate topologies. This was before a complete implementation was made. For backward compatibility we have kept these functions, ...

but this is not the case and the test cases Diagrams_1, ..., Diagrams_4 in check/example.frm fail. For example, Diagrams_1 is

Vectors Q1,Q2,p1,...,p8;
Set QQ:Q1,Q2;
Set PP:p1,...,p8;
#define LOOPS "2"
Local F = topologies_(`LOOPS',2,{3,},QQ,PP);
Print +f +s;
.end

and should give, as in the manual,

   F =
       + node_(0,-Q1)*node_(1,-Q2)*node_(2,Q1,-p1,-p2)*node_(3,Q2,p1,-p3)*
      node_(4,p2,-p4,-p5)*node_(5,p3,p4,p5)
       + node_(0,-Q1)*node_(1,-Q2)*node_(2,Q1,-p1,-p2)*node_(3,p1,-p3,-p4)*
      node_(4,p2,p3,-p5)*node_(5,Q2,p4,p5)
      ;

but it suffers from memory bugs:

==465138== Conditional jump or move depends on uninitialised value(s)
==465138==    at 0x142CDF: ProcessTopology(EGraph*, void*) (diawrap.cc:537)
==465138==    by 0x174419: MGraph::newGraph(MNodeClass*) (grcc.cc:4883)
==465138==    by 0x174575: MGraph::connectClass(MNodeClass*) (grcc.cc:4524)
==465138==    by 0x17476B: MGraph::connectNode(int, int, MNodeClass*) (grcc.cc:4543)
==465138==    by 0x1747F8: MGraph::connectLeg(int, int, int, int, MNodeClass*) (grcc.cc:4591)
==465138==    by 0x17475E: MGraph::connectNode(int, int, MNodeClass*) (grcc.cc:4552)
==465138==    by 0x1747F8: MGraph::connectLeg(int, int, int, int, MNodeClass*) (grcc.cc:4591)
==465138==    by 0x174B3D: MGraph::connectLeg(int, int, int, int, MNodeClass*) (grcc.cc:4715)
==465138==    by 0x17475E: MGraph::connectNode(int, int, MNodeClass*) (grcc.cc:4552)
==465138==    by 0x1745A7: MGraph::connectClass(MNodeClass*) (grcc.cc:4528)
==465138==    by 0x17476B: MGraph::connectNode(int, int, MNodeClass*) (grcc.cc:4543)
==465138==    by 0x1747F8: MGraph::connectLeg(int, int, int, int, MNodeClass*) (grcc.cc:4591)
==465138==
==465138== Use of uninitialised value of size 8
==465138==    at 0x142D2C: ProcessTopology(EGraph*, void*) (diawrap.cc:543)
==465138==    by 0x174419: MGraph::newGraph(MNodeClass*) (grcc.cc:4883)
==465138==    by 0x174575: MGraph::connectClass(MNodeClass*) (grcc.cc:4524)
==465138==    by 0x17476B: MGraph::connectNode(int, int, MNodeClass*) (grcc.cc:4543)
==465138==    by 0x1747F8: MGraph::connectLeg(int, int, int, int, MNodeClass*) (grcc.cc:4591)
==465138==    by 0x17475E: MGraph::connectNode(int, int, MNodeClass*) (grcc.cc:4552)
==465138==    by 0x1747F8: MGraph::connectLeg(int, int, int, int, MNodeClass*) (grcc.cc:4591)
==465138==    by 0x174B3D: MGraph::connectLeg(int, int, int, int, MNodeClass*) (grcc.cc:4715)
==465138==    by 0x17475E: MGraph::connectNode(int, int, MNodeClass*) (grcc.cc:4552)
==465138==    by 0x1745A7: MGraph::connectClass(MNodeClass*) (grcc.cc:4528)
==465138==    by 0x17476B: MGraph::connectNode(int, int, MNodeClass*) (grcc.cc:4543)
==465138==    by 0x1747F8: MGraph::connectLeg(int, int, int, int, MNodeClass*) (grcc.cc:4591)
==465138==
==465138== Invalid read of size 4
==465138==    at 0x142D30: ProcessTopology(EGraph*, void*) (diawrap.cc:543)
==465138==    by 0x174419: MGraph::newGraph(MNodeClass*) (grcc.cc:4883)
==465138==    by 0x174575: MGraph::connectClass(MNodeClass*) (grcc.cc:4524)
==465138==    by 0x17476B: MGraph::connectNode(int, int, MNodeClass*) (grcc.cc:4543)
==465138==    by 0x1747F8: MGraph::connectLeg(int, int, int, int, MNodeClass*) (grcc.cc:4591)
==465138==    by 0x17475E: MGraph::connectNode(int, int, MNodeClass*) (grcc.cc:4552)
==465138==    by 0x1747F8: MGraph::connectLeg(int, int, int, int, MNodeClass*) (grcc.cc:4591)
==465138==    by 0x174B3D: MGraph::connectLeg(int, int, int, int, MNodeClass*) (grcc.cc:4715)
==465138==    by 0x17475E: MGraph::connectNode(int, int, MNodeClass*) (grcc.cc:4552)
==465138==    by 0x1745A7: MGraph::connectClass(MNodeClass*) (grcc.cc:4528)
==465138==    by 0x17476B: MGraph::connectNode(int, int, MNodeClass*) (grcc.cc:4543)
==465138==    by 0x1747F8: MGraph::connectLeg(int, int, int, int, MNodeClass*) (grcc.cc:4591)
==465138==  Address 0x0 is not stack'd, malloc'd or (recently) free'd
==465138==

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions