[Lemon-commits] Peter Kovacs: Remove bits/base_extender.h, which...
Lemon HG
hg at lemon.cs.elte.hu
Mon May 11 17:46:15 CEST 2009
details: http://lemon.cs.elte.hu/hg/lemon/rev/ca92c2f936b0
changeset: 704:ca92c2f936b0
user: Peter Kovacs <kpeter [at] inf.elte.hu>
date: Sat May 09 16:47:26 2009 +0200
description:
Remove bits/base_extender.h, which is not used at all (#288)
diffstat:
lemon/Makefile.am | 1 -
lemon/bits/base_extender.h | 495 ---------------------------------------------
2 files changed, 0 insertions(+), 496 deletions(-)
diffs (truncated from 511 to 300 lines):
diff --git a/lemon/Makefile.am b/lemon/Makefile.am
--- a/lemon/Makefile.am
+++ b/lemon/Makefile.am
@@ -111,7 +111,6 @@
bits_HEADERS += \
lemon/bits/alteration_notifier.h \
lemon/bits/array_map.h \
- lemon/bits/base_extender.h \
lemon/bits/bezier.h \
lemon/bits/default_map.h \
lemon/bits/edge_set_extender.h \
diff --git a/lemon/bits/base_extender.h b/lemon/bits/base_extender.h
deleted file mode 100644
--- a/lemon/bits/base_extender.h
+++ /dev/null
@@ -1,495 +0,0 @@
-/* -*- mode: C++; indent-tabs-mode: nil; -*-
- *
- * This file is a part of LEMON, a generic C++ optimization library.
- *
- * Copyright (C) 2003-2009
- * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
- * (Egervary Research Group on Combinatorial Optimization, EGRES).
- *
- * Permission to use, modify and distribute this software is granted
- * provided that this copyright notice appears in all copies. For
- * precise terms see the accompanying LICENSE file.
- *
- * This software is provided "AS IS" with no warranty of any kind,
- * express or implied, and with no claim as to its suitability for any
- * purpose.
- *
- */
-
-#ifndef LEMON_BITS_BASE_EXTENDER_H
-#define LEMON_BITS_BASE_EXTENDER_H
-
-#include <lemon/core.h>
-#include <lemon/error.h>
-
-#include <lemon/bits/map_extender.h>
-#include <lemon/bits/default_map.h>
-
-#include <lemon/concept_check.h>
-#include <lemon/concepts/maps.h>
-
-//\ingroup digraphbits
-//\file
-//\brief Extenders for the graph types
-namespace lemon {
-
- // \ingroup digraphbits
- //
- // \brief BaseDigraph to BaseGraph extender
- template <typename Base>
- class UndirDigraphExtender : public Base {
- typedef Base Parent;
-
- public:
-
- typedef typename Parent::Arc Edge;
- typedef typename Parent::Node Node;
-
- typedef True UndirectedTag;
-
- class Arc : public Edge {
- friend class UndirDigraphExtender;
-
- protected:
- bool forward;
-
- Arc(const Edge &ue, bool _forward) :
- Edge(ue), forward(_forward) {}
-
- public:
- Arc() {}
-
- // Invalid arc constructor
- Arc(Invalid i) : Edge(i), forward(true) {}
-
- bool operator==(const Arc &that) const {
- return forward==that.forward && Edge(*this)==Edge(that);
- }
- bool operator!=(const Arc &that) const {
- return forward!=that.forward || Edge(*this)!=Edge(that);
- }
- bool operator<(const Arc &that) const {
- return forward<that.forward ||
- (!(that.forward<forward) && Edge(*this)<Edge(that));
- }
- };
-
- // First node of the edge
- Node u(const Edge &e) const {
- return Parent::source(e);
- }
-
- // Source of the given arc
- Node source(const Arc &e) const {
- return e.forward ? Parent::source(e) : Parent::target(e);
- }
-
- // Second node of the edge
- Node v(const Edge &e) const {
- return Parent::target(e);
- }
-
- // Target of the given arc
- Node target(const Arc &e) const {
- return e.forward ? Parent::target(e) : Parent::source(e);
- }
-
- // \brief Directed arc from an edge.
- //
- // Returns a directed arc corresponding to the specified edge.
- // If the given bool is true, the first node of the given edge and
- // the source node of the returned arc are the same.
- static Arc direct(const Edge &e, bool d) {
- return Arc(e, d);
- }
-
- // Returns whether the given directed arc has the same orientation
- // as the corresponding edge.
- static bool direction(const Arc &a) { return a.forward; }
-
- using Parent::first;
- using Parent::next;
-
- void first(Arc &e) const {
- Parent::first(e);
- e.forward=true;
- }
-
- void next(Arc &e) const {
- if( e.forward ) {
- e.forward = false;
- }
- else {
- Parent::next(e);
- e.forward = true;
- }
- }
-
- void firstOut(Arc &e, const Node &n) const {
- Parent::firstIn(e,n);
- if( Edge(e) != INVALID ) {
- e.forward = false;
- }
- else {
- Parent::firstOut(e,n);
- e.forward = true;
- }
- }
- void nextOut(Arc &e) const {
- if( ! e.forward ) {
- Node n = Parent::target(e);
- Parent::nextIn(e);
- if( Edge(e) == INVALID ) {
- Parent::firstOut(e, n);
- e.forward = true;
- }
- }
- else {
- Parent::nextOut(e);
- }
- }
-
- void firstIn(Arc &e, const Node &n) const {
- Parent::firstOut(e,n);
- if( Edge(e) != INVALID ) {
- e.forward = false;
- }
- else {
- Parent::firstIn(e,n);
- e.forward = true;
- }
- }
- void nextIn(Arc &e) const {
- if( ! e.forward ) {
- Node n = Parent::source(e);
- Parent::nextOut(e);
- if( Edge(e) == INVALID ) {
- Parent::firstIn(e, n);
- e.forward = true;
- }
- }
- else {
- Parent::nextIn(e);
- }
- }
-
- void firstInc(Edge &e, bool &d, const Node &n) const {
- d = true;
- Parent::firstOut(e, n);
- if (e != INVALID) return;
- d = false;
- Parent::firstIn(e, n);
- }
-
- void nextInc(Edge &e, bool &d) const {
- if (d) {
- Node s = Parent::source(e);
- Parent::nextOut(e);
- if (e != INVALID) return;
- d = false;
- Parent::firstIn(e, s);
- } else {
- Parent::nextIn(e);
- }
- }
-
- Node nodeFromId(int ix) const {
- return Parent::nodeFromId(ix);
- }
-
- Arc arcFromId(int ix) const {
- return direct(Parent::arcFromId(ix >> 1), bool(ix & 1));
- }
-
- Edge edgeFromId(int ix) const {
- return Parent::arcFromId(ix);
- }
-
- int id(const Node &n) const {
- return Parent::id(n);
- }
-
- int id(const Edge &e) const {
- return Parent::id(e);
- }
-
- int id(const Arc &e) const {
- return 2 * Parent::id(e) + int(e.forward);
- }
-
- int maxNodeId() const {
- return Parent::maxNodeId();
- }
-
- int maxArcId() const {
- return 2 * Parent::maxArcId() + 1;
- }
-
- int maxEdgeId() const {
- return Parent::maxArcId();
- }
-
- int arcNum() const {
- return 2 * Parent::arcNum();
- }
-
- int edgeNum() const {
- return Parent::arcNum();
- }
-
- Arc findArc(Node s, Node t, Arc p = INVALID) const {
- if (p == INVALID) {
- Edge arc = Parent::findArc(s, t);
- if (arc != INVALID) return direct(arc, true);
- arc = Parent::findArc(t, s);
- if (arc != INVALID) return direct(arc, false);
- } else if (direction(p)) {
- Edge arc = Parent::findArc(s, t, p);
- if (arc != INVALID) return direct(arc, true);
- arc = Parent::findArc(t, s);
- if (arc != INVALID) return direct(arc, false);
- } else {
- Edge arc = Parent::findArc(t, s, p);
- if (arc != INVALID) return direct(arc, false);
- }
- return INVALID;
- }
-
- Edge findEdge(Node s, Node t, Edge p = INVALID) const {
- if (s != t) {
- if (p == INVALID) {
- Edge arc = Parent::findArc(s, t);
- if (arc != INVALID) return arc;
- arc = Parent::findArc(t, s);
- if (arc != INVALID) return arc;
- } else if (Parent::s(p) == s) {
- Edge arc = Parent::findArc(s, t, p);
- if (arc != INVALID) return arc;
- arc = Parent::findArc(t, s);
- if (arc != INVALID) return arc;
- } else {
- Edge arc = Parent::findArc(t, s, p);
- if (arc != INVALID) return arc;
- }
- } else {
- return Parent::findArc(s, t, p);
- }
- return INVALID;
- }
- };
-
- template <typename Base>
- class BidirBpGraphExtender : public Base {
- typedef Base Parent;
-
More information about the Lemon-commits
mailing list