# Changeset 2272:f6b352fdc6b1 in lemon-0.x for benchmark

Ignore:
Timestamp:
10/30/06 16:29:50 (14 years ago)
Branch:
default
Phase:
public
Convert:
svn:c9d7d8f5-90d6-0310-b91f-818b3a526b0e/lemon/trunk@3034
Message:

Turn off 32 bit only tests.

File:
1 edited

Unmodified
Removed
• ## benchmark/edge_lookup.cc

 r2271 }; template class EdgeLookUp4 { public: GRAPH_TYPEDEFS(typename G) typedef G Graph; private: const Graph &_g; typename Graph::template NodeMap _start; typename Graph::template NodeMap _end; std::vector _edges; class EdgeLess { const Graph &g; public: EdgeLess(const Graph &_g) : g(_g) {} bool operator()(Edge a,Edge b) const { return g.target(a)::iterator ei=_edges.end(); _end[n]=_edges.size(); std::sort(_edges.begin()+bi,ei,EdgeLess(_g)); } ///Refresh the full data structure. void refresh() { _edges.resize(countEdges(_g)); int l=0; for(NodeIt n(_g);n!=INVALID;++n) { int ls = l; _start[n]=&(_edges[l]); for(OutEdgeIt e(_g,n);e!=INVALID;++e) _edges[l++]=e; _end[n]=&(_edges[l]); std::sort(_edges.begin()+ls,_edges.begin()+l,EdgeLess(_g)); } } ///Find an edge between two nodes. ///Find an edge between two nodes. ///\param s The source node ///\param t The target node ///\return An edge from \c s to \c t if there exists, ///\ref INVALID otherwise. Edge operator()(Node s, Node t) { Edge *a=_start[s]; Edge *b=_end[s]; while(a!=b) { // #ifdef X86 Edge *m=(Edge*)(((unsigned int)a+(unsigned int)b)/2 & 0xfffffffc); // #elif X86_64 //        Edge *m=(Edge*)(((unsigned long)a+(undigned long)b)/2 & 0xfffffffc); // #else //        Edge *m=a+((b-a)/2); // #endif Node tt = _g.target(*m); if(tt==t) return *m; else if(tt class EdgeLookUp5 { public: GRAPH_TYPEDEFS(typename G) typedef G Graph; private: const Graph &_g; typename Graph::template NodeMap _start; typename Graph::template NodeMap _end; std::vector _edges; class EdgeLess { const Graph &g; public: EdgeLess(const Graph &_g) : g(_g) {} bool operator()(Edge a,Edge b) const { return g.target(a)::iterator ei=_edges.end(); _end[n]=_edges.size(); std::sort(_edges.begin()+bi,ei,EdgeLess(_g)); } ///Refresh the full data structure. void refresh() { _edges.resize(countEdges(_g)); int l=0; for(NodeIt n(_g);n!=INVALID;++n) { int ls = l; _start[n]=&(_edges[l]); for(OutEdgeIt e(_g,n);e!=INVALID;++e) _edges[l++]=e; _end[n]=&(_edges[l]); std::sort(_edges.begin()+ls,_edges.begin()+l,EdgeLess(_g)); } } ///Find an edge between two nodes. ///Find an edge between two nodes. ///\param s The source node ///\param t The target node ///\return An edge from \c s to \c t if there exists, ///\ref INVALID otherwise. Edge operator()(Node s, Node t) { Edge *a=_start[s]; Edge *b=_end[s]; while(a!=b) { // #ifdef X86 Edge *m=(Edge*)((((unsigned int)a>>1)+((unsigned int)b)>>1) & 0xfffffffc); // #elif X86_64 //        Edge *m=(Edge*)(((unsigned long)a>>1+(undigned long)b)>>1)&0xfffffffc); // #else //        Edge *m=a+((b-a)/2); // #endif Node tt = _g.target(*m); if(tt==t) return *m; else if(tt //   class EdgeLookUp4 //   { //   public: //     GRAPH_TYPEDEFS(typename G) //     typedef G Graph; //   private: //     const Graph &_g; //     typename Graph::template NodeMap _start; //     typename Graph::template NodeMap _end; //     std::vector _edges; //     class EdgeLess { //       const Graph &g; //     public: //       EdgeLess(const Graph &_g) : g(_g) {} //       bool operator()(Edge a,Edge b) const //       { //      return g.target(a)::iterator ei=_edges.end(); //       _end[n]=_edges.size(); //       std::sort(_edges.begin()+bi,ei,EdgeLess(_g)); //     } //     ///Refresh the full data structure. //     void refresh() //     { //       _edges.resize(countEdges(_g)); //       int l=0; //       for(NodeIt n(_g);n!=INVALID;++n) //      { //        int ls = l; //        _start[n]=&(_edges[l]); //        for(OutEdgeIt e(_g,n);e!=INVALID;++e) _edges[l++]=e; //        _end[n]=&(_edges[l]); //        std::sort(_edges.begin()+ls,_edges.begin()+l,EdgeLess(_g)); //      } //     } //     ///Find an edge between two nodes. //     ///Find an edge between two nodes. //     ///\param s The source node //     ///\param t The target node //     ///\return An edge from \c s to \c t if there exists, //     ///\ref INVALID otherwise. //     Edge operator()(Node s, Node t) //     { //       Edge *a=_start[s]; //       Edge *b=_end[s]; //       while(a!=b) //      { // // #ifdef X86 //        Edge *m=(Edge*)(((unsigned int)a+(unsigned int)b)/2 & 0xfffffffc); // // #elif X86_64 // //     Edge *m=(Edge*)(((unsigned long)a+(undigned long)b)/2 & 0xfffffffc); // // #else // //     Edge *m=a+((b-a)/2); // // #endif //        Node tt = _g.target(*m); //        if(tt==t) return *m; //        else if(tt //   class EdgeLookUp5 //   { //   public: //     GRAPH_TYPEDEFS(typename G) //     typedef G Graph; //   private: //     const Graph &_g; //     typename Graph::template NodeMap _start; //     typename Graph::template NodeMap _end; //     std::vector _edges; //     class EdgeLess { //       const Graph &g; //     public: //       EdgeLess(const Graph &_g) : g(_g) {} //       bool operator()(Edge a,Edge b) const //       { //      return g.target(a)::iterator ei=_edges.end(); //       _end[n]=_edges.size(); //       std::sort(_edges.begin()+bi,ei,EdgeLess(_g)); //     } //     ///Refresh the full data structure. //     void refresh() //     { //       _edges.resize(countEdges(_g)); //       int l=0; //       for(NodeIt n(_g);n!=INVALID;++n) //      { //        int ls = l; //        _start[n]=&(_edges[l]); //        for(OutEdgeIt e(_g,n);e!=INVALID;++e) _edges[l++]=e; //        _end[n]=&(_edges[l]); //        std::sort(_edges.begin()+ls,_edges.begin()+l,EdgeLess(_g)); //      } //     } //     ///Find an edge between two nodes. //     ///Find an edge between two nodes. //     ///\param s The source node //     ///\param t The target node //     ///\return An edge from \c s to \c t if there exists, //     ///\ref INVALID otherwise. //     Edge operator()(Node s, Node t) //     { //       Edge *a=_start[s]; //       Edge *b=_end[s]; //       while(a!=b) //      { // // #ifdef X86 //        Edge *m=(Edge*)((((unsigned int)a>>1)+((unsigned int)b)>>1) //                        & 0xfffffffc); // // #elif X86_64 // //     Edge *m=(Edge*)(((unsigned long)a>>1+(undigned long)b)>>1)&0xfffffffc); // // #else // //     Edge *m=a+((b-a)/2); // // #endif //        Node tt = _g.target(*m); //        if(tt==t) return *m; //        else if(tt
Note: See TracChangeset for help on using the changeset viewer.