tools/lemon-0.x-to-1.x.sh
author Peter Kovacs <kpeter@inf.elte.hu>
Thu, 12 Nov 2009 23:26:13 +0100
changeset 872 fa6f37d7a25b
parent 621 003367ffe66e
permissions -rwxr-xr-x
Entirely rework CapacityScaling (#180)

- Use the new interface similarly to NetworkSimplex.
- Rework the implementation using an efficient internal structure
for handling the residual network. This improvement made the
code much faster (up to 2-5 times faster on large graphs).
- Handle GEQ supply type (LEQ is not supported).
- Handle negative costs for arcs of finite capacity.
(Note that this algorithm cannot handle arcs of negative cost
and infinite upper bound, thus it returns UNBOUNDED if such
an arc exists.)
- Extend the documentation.
alpar@305
     1
#!/bin/bash
alpar@305
     2
alpar@305
     3
set -e
alpar@305
     4
alpar@305
     5
if [ $# -eq 0 -o x$1 = "x-h" -o x$1 = "x-help" -o x$1 = "x--help" ]; then
kpeter@335
     6
    echo "Usage:"
kpeter@335
     7
    echo "  $0 source-file(s)"
kpeter@335
     8
    exit
alpar@305
     9
fi
alpar@305
    10
kpeter@335
    11
for i in $@
kpeter@335
    12
do
kpeter@335
    13
    echo Update $i...
kpeter@335
    14
    TMP=`mktemp`
kpeter@356
    15
    sed -e "s/\<undirected graph\>/_gr_aph_label_/g"\
kpeter@356
    16
        -e "s/\<undirected graphs\>/_gr_aph_label_s/g"\
kpeter@356
    17
        -e "s/\<undirected edge\>/_ed_ge_label_/g"\
kpeter@356
    18
        -e "s/\<undirected edges\>/_ed_ge_label_s/g"\
kpeter@356
    19
        -e "s/\<directed graph\>/_digr_aph_label_/g"\
kpeter@356
    20
        -e "s/\<directed graphs\>/_digr_aph_label_s/g"\
kpeter@356
    21
        -e "s/\<directed edge\>/_ar_c_label_/g"\
kpeter@356
    22
        -e "s/\<directed edges\>/_ar_c_label_s/g"\
kpeter@335
    23
        -e "s/UGraph/_Gr_aph_label_/g"\
kpeter@355
    24
        -e "s/u[Gg]raph/_gr_aph_label_/g"\
kpeter@602
    25
        -e "s/Graph\>/_Digr_aph_label_/g"\
kpeter@355
    26
        -e "s/\<graph\>/_digr_aph_label_/g"\
kpeter@602
    27
        -e "s/Graphs\>/_Digr_aph_label_s/g"\
kpeter@355
    28
        -e "s/\<graphs\>/_digr_aph_label_s/g"\
kpeter@602
    29
        -e "s/\([Gg]\)raph\([a-z]\)/_\1r_aph_label_\2/g"\
kpeter@355
    30
        -e "s/\([a-z_]\)graph/\1_gr_aph_label_/g"\
kpeter@335
    31
        -e "s/Graph/_Digr_aph_label_/g"\
kpeter@335
    32
        -e "s/graph/_digr_aph_label_/g"\
kpeter@335
    33
        -e "s/UEdge/_Ed_ge_label_/g"\
kpeter@355
    34
        -e "s/u[Ee]dge/_ed_ge_label_/g"\
kpeter@335
    35
        -e "s/IncEdgeIt/_In_cEd_geIt_label_/g"\
kpeter@602
    36
        -e "s/Edge\>/_Ar_c_label_/g"\
kpeter@355
    37
        -e "s/\<edge\>/_ar_c_label_/g"\
kpeter@738
    38
        -e "s/_edge\>/__ar_c_label_/g"\
kpeter@602
    39
        -e "s/Edges\>/_Ar_c_label_s/g"\
kpeter@355
    40
        -e "s/\<edges\>/_ar_c_label_s/g"\
kpeter@738
    41
        -e "s/_edges\>/__ar_c_label_s/g"\
kpeter@602
    42
        -e "s/\([Ee]\)dge\([a-z]\)/_\1d_ge_label_\2/g"\
kpeter@602
    43
        -e "s/\([a-z]\)edge/\1_ed_ge_label_/g"\
kpeter@335
    44
        -e "s/Edge/_Ar_c_label_/g"\
kpeter@335
    45
        -e "s/edge/_ar_c_label_/g"\
kpeter@355
    46
        -e "s/A[Nn]ode/_Re_d_label_/g"\
kpeter@355
    47
        -e "s/B[Nn]ode/_Blu_e_label_/g"\
kpeter@355
    48
        -e "s/A-[Nn]ode/_Re_d_label_/g"\
kpeter@355
    49
        -e "s/B-[Nn]ode/_Blu_e_label_/g"\
kpeter@355
    50
        -e "s/a[Nn]ode/_re_d_label_/g"\
kpeter@355
    51
        -e "s/b[Nn]ode/_blu_e_label_/g"\
kpeter@356
    52
        -e "s/\<UGRAPH_TYPEDEFS\([ \t]*([ \t]*\)typename[ \t]/TEMPLATE__GR_APH_TY_PEDE_FS_label_\1/g"\
kpeter@356
    53
        -e "s/\<GRAPH_TYPEDEFS\([ \t]*([ \t]*\)typename[ \t]/TEMPLATE__DIGR_APH_TY_PEDE_FS_label_\1/g"\
kpeter@356
    54
        -e "s/\<UGRAPH_TYPEDEFS\>/_GR_APH_TY_PEDE_FS_label_/g"\
kpeter@356
    55
        -e "s/\<GRAPH_TYPEDEFS\>/_DIGR_APH_TY_PEDE_FS_label_/g"\
kpeter@335
    56
        -e "s/_Digr_aph_label_/Digraph/g"\
kpeter@335
    57
        -e "s/_digr_aph_label_/digraph/g"\
kpeter@335
    58
        -e "s/_Gr_aph_label_/Graph/g"\
kpeter@335
    59
        -e "s/_gr_aph_label_/graph/g"\
kpeter@335
    60
        -e "s/_Ar_c_label_/Arc/g"\
kpeter@335
    61
        -e "s/_ar_c_label_/arc/g"\
kpeter@335
    62
        -e "s/_Ed_ge_label_/Edge/g"\
kpeter@335
    63
        -e "s/_ed_ge_label_/edge/g"\
kpeter@335
    64
        -e "s/_In_cEd_geIt_label_/IncEdgeIt/g"\
kpeter@335
    65
        -e "s/_Re_d_label_/Red/g"\
kpeter@335
    66
        -e "s/_Blu_e_label_/Blue/g"\
kpeter@335
    67
        -e "s/_re_d_label_/red/g"\
kpeter@335
    68
        -e "s/_blu_e_label_/blue/g"\
kpeter@356
    69
        -e "s/_GR_APH_TY_PEDE_FS_label_/GRAPH_TYPEDEFS/g"\
kpeter@356
    70
        -e "s/_DIGR_APH_TY_PEDE_FS_label_/DIGRAPH_TYPEDEFS/g"\
kpeter@738
    71
        -e "s/\<digraph_adaptor\.h\>/adaptors.h/g"\
kpeter@738
    72
        -e "s/\<digraph_utils\.h\>/core.h/g"\
kpeter@738
    73
        -e "s/\<digraph_reader\.h\>/lgf_reader.h/g"\
kpeter@738
    74
        -e "s/\<digraph_writer\.h\>/lgf_writer.h/g"\
kpeter@738
    75
        -e "s/\<topology\.h\>/connectivity.h/g"\
kpeter@355
    76
        -e "s/DigraphToEps/GraphToEps/g"\
kpeter@355
    77
        -e "s/digraphToEps/graphToEps/g"\
kpeter@335
    78
        -e "s/\<DefPredMap\>/SetPredMap/g"\
kpeter@335
    79
        -e "s/\<DefDistMap\>/SetDistMap/g"\
kpeter@335
    80
        -e "s/\<DefReachedMap\>/SetReachedMap/g"\
kpeter@335
    81
        -e "s/\<DefProcessedMap\>/SetProcessedMap/g"\
kpeter@335
    82
        -e "s/\<DefHeap\>/SetHeap/g"\
kpeter@335
    83
        -e "s/\<DefStandardHeap\>/SetStandradHeap/g"\
kpeter@335
    84
        -e "s/\<DefOperationTraits\>/SetOperationTraits/g"\
kpeter@335
    85
        -e "s/\<DefProcessedMapToBeDefaultMap\>/SetStandardProcessedMap/g"\
kpeter@335
    86
        -e "s/\<copyGraph\>/graphCopy/g"\
kpeter@335
    87
        -e "s/\<copyDigraph\>/digraphCopy/g"\
kpeter@377
    88
        -e "s/\<HyperCubeDigraph\>/HypercubeGraph/g"\
kpeter@335
    89
        -e "s/\<IntegerMap\>/RangeMap/g"\
kpeter@335
    90
        -e "s/\<integerMap\>/rangeMap/g"\
kpeter@335
    91
        -e "s/\<\([sS]\)tdMap\>/\1parseMap/g"\
kpeter@335
    92
        -e "s/\<\([Ff]\)unctorMap\>/\1unctorToMap/g"\
kpeter@335
    93
        -e "s/\<\([Mm]\)apFunctor\>/\1apToFunctor/g"\
kpeter@335
    94
        -e "s/\<\([Ff]\)orkWriteMap\>/\1orkMap/g"\
kpeter@335
    95
        -e "s/\<StoreBoolMap\>/LoggerBoolMap/g"\
kpeter@335
    96
        -e "s/\<storeBoolMap\>/loggerBoolMap/g"\
kpeter@621
    97
        -e "s/\<InvertableMap\>/CrossRefMap/g"\
kpeter@621
    98
        -e "s/\<invertableMap\>/crossRefMap/g"\
kpeter@621
    99
        -e "s/\<DescriptorMap\>/RangeIdMap/g"\
kpeter@621
   100
        -e "s/\<descriptorMap\>/rangeIdMap/g"\
kpeter@335
   101
        -e "s/\<BoundingBox\>/Box/g"\
kpeter@371
   102
        -e "s/\<readNauty\>/readNautyGraph/g"\
kpeter@489
   103
        -e "s/\<RevDigraphAdaptor\>/ReverseDigraph/g"\
kpeter@489
   104
        -e "s/\<revDigraphAdaptor\>/reverseDigraph/g"\
kpeter@489
   105
        -e "s/\<SubDigraphAdaptor\>/SubDigraph/g"\
kpeter@489
   106
        -e "s/\<subDigraphAdaptor\>/subDigraph/g"\
kpeter@489
   107
        -e "s/\<SubGraphAdaptor\>/SubGraph/g"\
kpeter@489
   108
        -e "s/\<subGraphAdaptor\>/subGraph/g"\
kpeter@489
   109
        -e "s/\<NodeSubDigraphAdaptor\>/FilterNodes/g"\
kpeter@489
   110
        -e "s/\<nodeSubDigraphAdaptor\>/filterNodes/g"\
kpeter@489
   111
        -e "s/\<ArcSubDigraphAdaptor\>/FilterArcs/g"\
kpeter@489
   112
        -e "s/\<arcSubDigraphAdaptor\>/filterArcs/g"\
kpeter@489
   113
        -e "s/\<UndirDigraphAdaptor\>/Undirector/g"\
kpeter@489
   114
        -e "s/\<undirDigraphAdaptor\>/undirector/g"\
kpeter@489
   115
        -e "s/\<ResDigraphAdaptor\>/ResidualDigraph/g"\
kpeter@489
   116
        -e "s/\<resDigraphAdaptor\>/residualDigraph/g"\
kpeter@489
   117
        -e "s/\<SplitDigraphAdaptor\>/SplitNodes/g"\
kpeter@489
   118
        -e "s/\<splitDigraphAdaptor\>/splitNodes/g"\
kpeter@489
   119
        -e "s/\<SubGraphAdaptor\>/SubGraph/g"\
kpeter@489
   120
        -e "s/\<subGraphAdaptor\>/subGraph/g"\
kpeter@489
   121
        -e "s/\<NodeSubGraphAdaptor\>/FilterNodes/g"\
kpeter@489
   122
        -e "s/\<nodeSubGraphAdaptor\>/filterNodes/g"\
kpeter@489
   123
        -e "s/\<ArcSubGraphAdaptor\>/FilterEdges/g"\
kpeter@489
   124
        -e "s/\<arcSubGraphAdaptor\>/filterEdges/g"\
kpeter@489
   125
        -e "s/\<DirGraphAdaptor\>/Orienter/g"\
kpeter@489
   126
        -e "s/\<dirGraphAdaptor\>/orienter/g"\
kpeter@602
   127
        -e "s/\<LpCplex\>/CplexLp/g"\
kpeter@602
   128
        -e "s/\<MipCplex\>/CplexMip/g"\
kpeter@602
   129
        -e "s/\<LpGlpk\>/GlpkLp/g"\
kpeter@602
   130
        -e "s/\<MipGlpk\>/GlpkMip/g"\
kpeter@602
   131
        -e "s/\<LpSoplex\>/SoplexLp/g"\
kpeter@335
   132
    <$i > $TMP
kpeter@335
   133
    mv $TMP $i
kpeter@335
   134
done