COIN-OR::LEMON - Graph Library

Changeset 2386:81b47fc5c444 in lemon-0.x for lemon/full_graph.h


Ignore:
Timestamp:
03/02/07 19:04:28 (17 years ago)
Author:
Balazs Dezso
Branch:
default
Phase:
public
Convert:
svn:c9d7d8f5-90d6-0310-b91f-818b3a526b0e/lemon/trunk@3217
Message:

Hard Warning checking

  • based on the remark of the ZIB user
  • we do not use -Winline
File:
1 edited

Legend:

Unmodified
Added
Removed
  • lemon/full_graph.h

    r2384 r2386  
    5757    typedef True EdgeNumTag;
    5858
    59     Node operator()(int index) const { return Node(index); }
     59    Node operator()(int ix) const { return Node(ix); }
    6060    int index(const Node& node) const { return node.id; }
    6161
     
    130130    }
    131131
    132     void first(Edge& edge) const {
    133       edge.id = _edgeNum-1;
    134     }
    135 
    136     static void next(Edge& edge) {
    137       --edge.id;
    138     }
    139 
    140     void firstOut(Edge& edge, const Node& node) const {
    141       edge.id = _edgeNum + node.id - _nodeNum;
    142     }
    143 
    144     void nextOut(Edge& edge) const {
    145       edge.id -= _nodeNum;
    146       if (edge.id < 0) edge.id = -1;
    147     }
    148 
    149     void firstIn(Edge& edge, const Node& node) const {
    150       edge.id = node.id * _nodeNum;
     132    void first(Edge& e) const {
     133      e.id = _edgeNum-1;
     134    }
     135
     136    static void next(Edge& e) {
     137      --e.id;
     138    }
     139
     140    void firstOut(Edge& e, const Node& n) const {
     141      e.id = _edgeNum + n.id - _nodeNum;
     142    }
     143
     144    void nextOut(Edge& e) const {
     145      e.id -= _nodeNum;
     146      if (e.id < 0) e.id = -1;
     147    }
     148
     149    void firstIn(Edge& e, const Node& n) const {
     150      e.id = n.id * _nodeNum;
    151151    }
    152152   
    153     void nextIn(Edge& edge) const {
    154       ++edge.id;
    155       if (edge.id % _nodeNum == 0) edge.id = -1;
     153    void nextIn(Edge& e) const {
     154      ++e.id;
     155      if (e.id % _nodeNum == 0) e.id = -1;
    156156    }
    157157
     
    208208    /// by the range from 0 to \e nodeNum()-1 and the index of
    209209    /// the node can accessed by the \e index() member.
    210     Node operator()(int index) const { return Parent::operator()(index); }
     210    Node operator()(int ix) const { return Parent::operator()(ix); }
    211211
    212212    /// \brief Returns the index of the node.
     
    251251
    252252
    253     Node operator()(int index) const { return Node(index); }
     253    Node operator()(int ix) const { return Node(ix); }
    254254    int index(const Node& node) const { return node.id; }
    255255
     
    272272    Node source(Edge e) const {
    273273      /// \todo we may do it faster
    274       return Node(((int)sqrt((double)(1 + 8 * e.id)) + 1) / 2);
     274      return Node((int(sqrt(double(1 + 8 * e.id)) + 1)) / 2);
    275275    }
    276276
    277277    Node target(Edge e) const {
    278       int source = ((int)sqrt((double)(1 + 8 * e.id)) + 1) / 2;;
    279       return Node(e.id - (source) * (source - 1) / 2);
     278      int s = (int(sqrt(double(1 + 8 * e.id)) + 1)) / 2;
     279      return Node(e.id - s * (s - 1) / 2);
    280280    }
    281281
     
    323323    };
    324324
    325     void first(Node& node) const {
    326       node.id = _nodeNum - 1;
    327     }
    328 
    329     static void next(Node& node) {
    330       --node.id;
    331     }
    332 
    333     void first(Edge& edge) const {
    334       edge.id = _edgeNum - 1;
    335     }
    336 
    337     static void next(Edge& edge) {
    338       --edge.id;
    339     }
    340 
    341     void firstOut(Edge& edge, const Node& node) const {     
    342       int src = node.id;
     325    void first(Node& n) const {
     326      n.id = _nodeNum - 1;
     327    }
     328
     329    static void next(Node& n) {
     330      --n.id;
     331    }
     332
     333    void first(Edge& e) const {
     334      e.id = _edgeNum - 1;
     335    }
     336
     337    static void next(Edge& e) {
     338      --e.id;
     339    }
     340
     341    void firstOut(Edge& e, const Node& n) const {     
     342      int src = n.id;
    343343      int trg = 0;
    344       edge.id = (trg < src ? src * (src - 1) / 2 + trg : -1);
     344      e.id = (trg < src ? src * (src - 1) / 2 + trg : -1);
    345345    }
    346346
    347347    /// \todo with specialized iterators we can make faster iterating
    348     void nextOut(Edge& edge) const {
    349       int src = source(edge).id;
    350       int trg = target(edge).id;
     348    void nextOut(Edge& e) const {
     349      int src = source(e).id;
     350      int trg = target(e).id;
    351351      ++trg;
    352       edge.id = (trg < src ? src * (src - 1) / 2 + trg : -1);
    353     }
    354 
    355     void firstIn(Edge& edge, const Node& node) const {
    356       int src = node.id + 1;
    357       int trg = node.id;
    358       edge.id = (src < _nodeNum ? src * (src - 1) / 2 + trg : -1);
     352      e.id = (trg < src ? src * (src - 1) / 2 + trg : -1);
     353    }
     354
     355    void firstIn(Edge& e, const Node& n) const {
     356      int src = n.id + 1;
     357      int trg = n.id;
     358      e.id = (src < _nodeNum ? src * (src - 1) / 2 + trg : -1);
    359359    }
    360360   
    361     void nextIn(Edge& edge) const {
    362       int src = source(edge).id;
    363       int trg = target(edge).id;
     361    void nextIn(Edge& e) const {
     362      int src = source(e).id;
     363      int trg = target(e).id;
    364364      ++src;
    365       edge.id = (src < _nodeNum ? src * (src - 1) / 2 + trg : -1);
     365      e.id = (src < _nodeNum ? src * (src - 1) / 2 + trg : -1);
    366366    }
    367367
     
    422422    /// by the range from 0 to \e nodeNum()-1 and the index of
    423423    /// the node can accessed by the \e index() member.
    424     Node operator()(int index) const { return Parent::operator()(index); }
     424    Node operator()(int ix) const { return Parent::operator()(ix); }
    425425
    426426    /// \brief Returns the index of the node.
     
    479479    FullBpUGraphBase() {}
    480480
    481     void construct(int aNodeNum, int bNodeNum) {
    482       _aNodeNum = aNodeNum;
    483       _bNodeNum = bNodeNum;
    484       _edgeNum = aNodeNum * bNodeNum;
     481    void construct(int ann, int bnn) {
     482      _aNodeNum = ann;
     483      _bNodeNum = bnn;
     484      _edgeNum = ann * bnn;
    485485    }
    486486
     
    522522    };
    523523
    524     Node aNode(int index) const { return Node(index << 1); }
    525     Node bNode(int index) const { return Node((index << 1) + 1); }
     524    Node aNode(int ix) const { return Node(ix << 1); }
     525    Node bNode(int ix) const { return Node((ix << 1) + 1); }
    526526
    527527    int aNodeIndex(const Node& node) const { return node.id >> 1; }
     
    696696    }
    697697
    698     FullBpUGraph(int aNodeNum, int bNodeNum) {
    699       Parent::construct(aNodeNum, bNodeNum);
     698    FullBpUGraph(int ann, int bnn) {
     699      Parent::construct(ann, bnn);
    700700    }
    701701
     
    738738    /// by the range from 0 to \e aNodeNum()-1 and the index of
    739739    /// the node can accessed by the \e aNodeIndex() member.
    740     Node aNode(int index) const { return Parent::aNode(index); }
     740    Node aNode(int ix) const { return Parent::aNode(ix); }
    741741
    742742    /// \brief Returns the B-node with the given index.
     
    746746    /// by the range from 0 to \e bNodeNum()-1 and the index of
    747747    /// the node can accessed by the \e bNodeIndex() member.
    748     Node bNode(int index) const { return Parent::bNode(index); }
     748    Node bNode(int ix) const { return Parent::bNode(ix); }
    749749
    750750    /// \brief Returns the index of the A-node.
Note: See TracChangeset for help on using the changeset viewer.