From 98d4dd4fdf3b5850960ae6ed288953712b06208c Mon Sep 17 00:00:00 2001 From: Gabriel Gouvine Date: Thu, 2 Jul 2015 17:31:21 +0200 Subject: [PATCH 1/6] New useful function to merge bounding boxes --- coloquinte/src/coloquinte/common.hxx | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/coloquinte/src/coloquinte/common.hxx b/coloquinte/src/coloquinte/common.hxx index a5ce9497..97025967 100644 --- a/coloquinte/src/coloquinte/common.hxx +++ b/coloquinte/src/coloquinte/common.hxx @@ -89,6 +89,14 @@ struct box{ std::min(y_max_, o.y_max_) ); } + box bounding_box(box const o) const{ + return box( + std::min(x_min_, o.x_min_), + std::max(x_max_, o.x_max_), + std::min(y_min_, o.y_min_), + std::max(y_max_, o.y_max_) + ); + } point dimensions() const{ return point(x_max_-x_min_, y_max_-y_min_); } From f724be79d5a387a9d12106743643ab0a4c15bf85 Mon Sep 17 00:00:00 2001 From: Gabriel Gouvine Date: Thu, 2 Jul 2015 17:32:09 +0200 Subject: [PATCH 2/6] Silent bug fix --- coloquinte/src/detailed.cxx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/coloquinte/src/detailed.cxx b/coloquinte/src/detailed.cxx index b0e5197d..dafc22cf 100644 --- a/coloquinte/src/detailed.cxx +++ b/coloquinte/src/detailed.cxx @@ -20,7 +20,8 @@ detailed_placement::detailed_placement( plt_(pl), cell_rows_(placement_rows), min_x_(min_x), max_x_(max_x), - y_origin_(y_origin) + y_origin_(y_origin), + row_height_(row_height) { assert(row_height > 0); From d71ba37aa7c6f0fcc5b6f96b117d2b6dce6b84b1 Mon Sep 17 00:00:00 2001 From: Gabriel Gouvine Date: Mon, 27 Jul 2015 15:36:50 +0200 Subject: [PATCH 3/6] Changed Coloquinte's datastructures naming Used a big sed command Needs some testing --- coloquinte/src/MCF_opt.cxx | 16 +- coloquinte/src/cell_swapping.cxx | 30 ++-- coloquinte/src/checkers.cxx | 10 +- coloquinte/src/circuit.cxx | 94 +++++------ coloquinte/src/coloquinte/circuit_helper.hxx | 34 ++-- coloquinte/src/coloquinte/common.hxx | 62 ++++---- coloquinte/src/coloquinte/netlist.hxx | 2 +- .../src/coloquinte/rough_legalizers.hxx | 8 +- coloquinte/src/detailed.cxx | 8 +- coloquinte/src/legalizer.cxx | 46 +++--- coloquinte/src/orientation.cxx | 8 +- coloquinte/src/rough_legalizers.cxx | 146 +++++++++--------- coloquinte/src/row_opt.cxx | 28 ++-- coloquinte/src/topologies.cxx | 56 +++---- etesian/src/EtesianEngine.cpp | 18 +-- 15 files changed, 283 insertions(+), 283 deletions(-) diff --git a/coloquinte/src/MCF_opt.cxx b/coloquinte/src/MCF_opt.cxx index 40118721..67e46b5b 100644 --- a/coloquinte/src/MCF_opt.cxx +++ b/coloquinte/src/MCF_opt.cxx @@ -50,17 +50,17 @@ void optimize_on_topology_HPWL(netlist const & circuit, detailed_placement & pl) if((circuit.get_cell(i).attributes & XMovable) != 0 and (circuit.get_cell(oi).attributes & XMovable) != 0){ // Two movable cells: OK auto A = g.addArc(cell_nodes[oi], cell_nodes[i]); - constraint_arcs.push_back(arc_pair(A, -circuit.get_cell(i).size.x_)); + constraint_arcs.push_back(arc_pair(A, -circuit.get_cell(i).size.x)); } else if((circuit.get_cell( i).attributes & XMovable) != 0){ // The cell c is movable and constrained on the right auto A = g.addArc(fixed, cell_nodes[i]); - constraint_arcs.push_back(arc_pair(A, pl.plt_.positions_[oi].x_ - circuit.get_cell(i).size.x_)); + constraint_arcs.push_back(arc_pair(A, pl.plt_.positions_[oi].x - circuit.get_cell(i).size.x)); } else if((circuit.get_cell(oi).attributes & XMovable) != 0){ // The cell oc is movable and constrained on the left auto A = g.addArc(cell_nodes[oi], fixed); - constraint_arcs.push_back(arc_pair(A, -pl.plt_.positions_[i].x_ - circuit.get_cell(i).size.x_)); + constraint_arcs.push_back(arc_pair(A, -pl.plt_.positions_[i].x - circuit.get_cell(i).size.x)); } } } @@ -77,7 +77,7 @@ void optimize_on_topology_HPWL(netlist const & circuit, detailed_placement & pl) index_t rc = pl.row_last_cells_[r]; if(rc != null_ind and (circuit.get_cell(rc).attributes & XMovable) != 0){ auto Ar = g.addArc(fixed, cell_nodes[rc]); - constraint_arcs.push_back(arc_pair(Ar, pl.max_x_ - circuit.get_cell(rc).size.x_)); + constraint_arcs.push_back(arc_pair(Ar, pl.max_x_ - circuit.get_cell(rc).size.x)); } } @@ -86,7 +86,7 @@ void optimize_on_topology_HPWL(netlist const & circuit, detailed_placement & pl) for(index_t n=0; n= swp_min_c1 and swp_max_c2 >= swp_min_c2){ // Check both orientations of the cell @@ -49,20 +49,20 @@ std::function o2 = pl.plt_.orientations_[c2]; // Warning: won't work if the two cells don't have the same height - pl.plt_.positions_[c1].x_ = (swp_min_c1 + swp_max_c1) / 2; - pl.plt_.positions_[c2].x_ = (swp_min_c2 + swp_max_c2) / 2; - pl.plt_.positions_[c1].y_ = p2.y_; - pl.plt_.positions_[c2].y_ = p1.y_; + pl.plt_.positions_[c1].x = (swp_min_c1 + swp_max_c1) / 2; + pl.plt_.positions_[c2].x = (swp_min_c2 + swp_max_c2) / 2; + pl.plt_.positions_[c1].y = p2.y; + pl.plt_.positions_[c2].y = p1.y; // For standard cell placement, we want all the rows to be aligned in the same way if( (circuit.get_cell(c1).attributes & YFlippable) != 0 and (circuit.get_cell(c2).attributes & YFlippable) != 0) - std::swap(pl.plt_.orientations_[c1].y_, pl.plt_.orientations_[c2].y_); + std::swap(pl.plt_.orientations_[c1].y, pl.plt_.orientations_[c2].y); if(try_flip and (circuit.get_cell(c1).attributes & XFlippable) != 0 and (circuit.get_cell(c2).attributes & XFlippable) != 0){ index_t bst_ind = 4; for(index_t i=0; i<4; ++i){ - pl.plt_.orientations_[c1].x_ = i % 2; - pl.plt_.orientations_[c2].x_ = i / 2; + pl.plt_.orientations_[c1].x = i % 2; + pl.plt_.orientations_[c2].x = i / 2; std::int64_t new_cost = get_nets_cost(circuit, pl, involved_nets); if(new_cost < old_cost){ old_cost = new_cost; @@ -73,8 +73,8 @@ std::function= pos_hgh) ++nb_after; - if(pl.plt_.positions_[oc].x_ + circuit.get_cell(oc).size.x_ <= pos_low) ++ nb_before; + if(pl.plt_.positions_[oc].x >= pos_hgh) ++nb_after; + if(pl.plt_.positions_[oc].x + circuit.get_cell(oc).size.x <= pos_low) ++ nb_before; if(try_swap(circuit, pl, c, oc, try_flip, get_nets_cost)){ std::swap(c, oc); diff --git a/coloquinte/src/checkers.cxx b/coloquinte/src/checkers.cxx index effd340a..bd861947 100644 --- a/coloquinte/src/checkers.cxx +++ b/coloquinte/src/checkers.cxx @@ -22,7 +22,7 @@ void netlist::selfcheck() const{ assert(pin_cnt == net_indexes_.size()); for(auto const p : pin_offsets_){ - assert(std::isfinite(p.x_) and std::isfinite(p.y_)); + assert(std::isfinite(p.x) and std::isfinite(p.y)); } } @@ -57,10 +57,10 @@ void verify_placement_legality(netlist const & circuit, placement_t const & pl, for(index_t i=0; i b.x_min and e.y != b.y){ all_events.push_back(b); all_events.push_back(e); diff --git a/coloquinte/src/circuit.cxx b/coloquinte/src/circuit.cxx index 97a92975..4d9c0200 100644 --- a/coloquinte/src/circuit.cxx +++ b/coloquinte/src/circuit.cxx @@ -8,7 +8,7 @@ std::int64_t get_HPWL_length(netlist const & circuit, placement_t const & pl, in if(circuit.get_net(net_ind).pin_cnt <= 1) return 0; auto pins = get_pins_1D(circuit, pl, net_ind); - auto minmaxX = std::minmax_element(pins.x_.begin(), pins.x_.end()), minmaxY = std::minmax_element(pins.y_.begin(), pins.y_.end()); + auto minmaxX = std::minmax_element(pins.x.begin(), pins.x.end()), minmaxY = std::minmax_element(pins.y.begin(), pins.y.end()); return ((minmaxX.second->pos - minmaxX.first->pos) + (minmaxY.second->pos - minmaxY.first->pos)); } @@ -67,12 +67,12 @@ point empty_linear_systems(netlist const & circuit, placement_t c } if( (XMovable & circuit.get_cell(i).attributes) == 0 or not found_true_net){ - ret.x_.add_triplet(i, i, 1.0f); - ret.x_.add_doublet(i, pl.positions_[i].x_); + ret.x.add_triplet(i, i, 1.0f); + ret.x.add_doublet(i, pl.positions_[i].x); } if( (YMovable & circuit.get_cell(i).attributes) == 0 or not found_true_net){ - ret.y_.add_triplet(i, i, 1.0f); - ret.y_.add_doublet(i, pl.positions_[i].y_); + ret.y.add_triplet(i, i, 1.0f); + ret.y.add_doublet(i, pl.positions_[i].y); } } @@ -143,8 +143,8 @@ point get_HPWLF_linear_system (netlist const & circuit, placement if(pin_cnt < min_s or pin_cnt >= max_s) continue; auto pins = get_pins_1D(circuit, pl, i); - get_HPWLF(pins.x_, L.x_, tol); - get_HPWLF(pins.y_, L.y_, tol); + get_HPWLF(pins.x, L.x, tol); + get_HPWLF(pins.y, L.y, tol); } return L; } @@ -157,30 +157,30 @@ point get_HPWLR_linear_system (netlist const & circuit, placement if(pin_cnt < min_s or pin_cnt >= max_s) continue; auto pins = get_pins_1D(circuit, pl, i); - get_HPWLR(pins.x_, L.x_, tol); - get_HPWLR(pins.y_, L.y_, tol); + get_HPWLR(pins.x, L.x, tol); + get_HPWLR(pins.y, L.y, tol); } return L; } point get_star_linear_system (netlist const & circuit, placement_t const & pl, float_t tol, index_t min_s, index_t max_s){ point L = empty_linear_systems(circuit, pl); - L.x_.add_variables(circuit.net_cnt()); - L.y_.add_variables(circuit.net_cnt()); + L.x.add_variables(circuit.net_cnt()); + L.y.add_variables(circuit.net_cnt()); for(index_t i=0; i= max_s){ // Put a one in the intermediate variable in order to avoid non-invertible matrices - L.x_.add_triplet(i+circuit.cell_cnt(), i+circuit.cell_cnt(), 1.0f); - L.y_.add_triplet(i+circuit.cell_cnt(), i+circuit.cell_cnt(), 1.0f); + L.x.add_triplet(i+circuit.cell_cnt(), i+circuit.cell_cnt(), 1.0f); + L.y.add_triplet(i+circuit.cell_cnt(), i+circuit.cell_cnt(), 1.0f); continue; } auto pins = get_pins_1D(circuit, pl, i); // Provide the index of the star's central pin in the linear system - get_star(pins.x_, L.x_, tol, i+circuit.cell_cnt()); - get_star(pins.y_, L.y_, tol, i+circuit.cell_cnt()); + get_star(pins.x, L.x, tol, i+circuit.cell_cnt()); + get_star(pins.y, L.y, tol, i+circuit.cell_cnt()); } return L; } @@ -193,8 +193,8 @@ point get_clique_linear_system (netlist const & circuit, placemen if(pin_cnt < min_s or pin_cnt >= max_s) continue; auto pins = get_pins_1D(circuit, pl, i); - get_clique(pins.x_, L.x_, tol); - get_clique(pins.y_, L.y_, tol); + get_clique(pins.x, L.x, tol); + get_clique(pins.y, L.y, tol); } return L; } @@ -213,8 +213,8 @@ point get_MST_linear_system(netlist const & circuit, placement_t } auto const edges = get_MST_topology(points); for(auto E : edges){ - add_force(pins[E.first].x(), pins[E.second].x(), L.x_, tol, 1.0f); - add_force(pins[E.first].y(), pins[E.second].y(), L.y_, tol, 1.0f); + add_force(pins[E.first].x(), pins[E.second].x(), L.x, tol, 1.0f); + add_force(pins[E.first].y(), pins[E.second].y(), L.y, tol, 1.0f); } } return L; @@ -233,11 +233,11 @@ point get_RSMT_linear_system(netlist const & circuit, placement_t points.push_back(p.pos); } auto const edges = get_RSMT_topology(points, 8); - for(auto E : edges.x_){ - add_force(pins[E.first].x(), pins[E.second].x(), L.x_, tol, 1.0f); + for(auto E : edges.x){ + add_force(pins[E.first].x(), pins[E.second].x(), L.x, tol, 1.0f); } - for(auto E : edges.y_){ - add_force(pins[E.first].y(), pins[E.second].y(), L.y_, tol, 1.0f); + for(auto E : edges.y){ + add_force(pins[E.first].y(), pins[E.second].y(), L.y, tol, 1.0f); } } return L; @@ -278,28 +278,28 @@ void solve_linear_system(netlist const & circuit, placement_t & pl, point x_sol, y_sol; std::vector x_guess(pl.cell_cnt()), y_guess(pl.cell_cnt()); - assert(L.x_.internal_size() == x_guess.size()); - assert(L.y_.internal_size() == y_guess.size()); + assert(L.x.internal_size() == x_guess.size()); + assert(L.y.internal_size() == y_guess.size()); for(index_t i=0; i(pl.positions_[i].x_); - y_guess[i] = static_cast(pl.positions_[i].y_); + x_guess[i] = static_cast(pl.positions_[i].x); + y_guess[i] = static_cast(pl.positions_[i].y); } #pragma omp parallel sections num_threads(2) { #pragma omp section - x_sol = L.x_.solve_CG(x_guess, nbr_iter); + x_sol = L.x.solve_CG(x_guess, nbr_iter); #pragma omp section - y_sol = L.y_.solve_CG(y_guess, nbr_iter); + y_sol = L.y.solve_CG(y_guess, nbr_iter); } for(index_t i=0; i(x_sol[i]); + pl.positions_[i].x = static_cast(x_sol[i]); } if( (circuit.get_cell(i).attributes & YMovable) != 0){ assert(std::isfinite(y_sol[i])); - pl.positions_[i].y_ = static_cast(y_sol[i]); + pl.positions_[i].y = static_cast(y_sol[i]); } } } @@ -325,13 +325,13 @@ point get_pulling_forces (netlist const & circuit, placement_t co float_t typical_force = 1.0f / typical_distance; std::vector scaling = get_area_scales(circuit); for(index_t i=0; i get_linear_pulling_forces (netlist const & circuit, placeme assert(LB_pl.cell_cnt() == UB_pl.cell_cnt()); std::vector scaling = get_area_scales(circuit); for(index_t i=0; i(std::abs(UB_pl.positions_[i].x_ - LB_pl.positions_[i].x_)), min_distance)), - i, UB_pl.positions_[i].x_ + L.x.add_anchor( + force * scaling[i] / (std::max(static_cast(std::abs(UB_pl.positions_[i].x - LB_pl.positions_[i].x)), min_distance)), + i, UB_pl.positions_[i].x ); - L.y_.add_anchor( - force * scaling[i] / (std::max(static_cast(std::abs(UB_pl.positions_[i].y_ - LB_pl.positions_[i].y_)), min_distance)), - i, UB_pl.positions_[i].y_ + L.y.add_anchor( + force * scaling[i] / (std::max(static_cast(std::abs(UB_pl.positions_[i].y - LB_pl.positions_[i].y)), min_distance)), + i, UB_pl.positions_[i].y ); } @@ -375,10 +375,10 @@ float_t get_mean_linear_disruption(netlist const & circuit, placement_t const & float_t area = static_cast(circuit.get_cell(i).area); point diff = LB_pl.positions_[i] - UB_pl.positions_[i]; - if( (circuit.get_cell(i).attributes & XMovable) == 0) assert(diff.x_ == 0); - if( (circuit.get_cell(i).attributes & YMovable) == 0) assert(diff.y_ == 0); + if( (circuit.get_cell(i).attributes & XMovable) == 0) assert(diff.x == 0); + if( (circuit.get_cell(i).attributes & YMovable) == 0) assert(diff.y == 0); - tot_cost += area * (std::abs(diff.x_) + std::abs(diff.y_)); + tot_cost += area * (std::abs(diff.x) + std::abs(diff.y)); tot_area += area; } return tot_cost / tot_area; @@ -391,10 +391,10 @@ float_t get_mean_quadratic_disruption(netlist const & circuit, placement_t const float_t area = static_cast(circuit.get_cell(i).area); point diff = LB_pl.positions_[i] - UB_pl.positions_[i]; - if( (circuit.get_cell(i).attributes & XMovable) == 0) assert(diff.x_ == 0); - if( (circuit.get_cell(i).attributes & YMovable) == 0) assert(diff.y_ == 0); + if( (circuit.get_cell(i).attributes & XMovable) == 0) assert(diff.x == 0); + if( (circuit.get_cell(i).attributes & YMovable) == 0) assert(diff.y == 0); - float_t manhattan = (std::abs(diff.x_) + std::abs(diff.y_)); + float_t manhattan = (std::abs(diff.x) + std::abs(diff.y)); tot_cost += area * manhattan * manhattan; tot_area += area; } diff --git a/coloquinte/src/coloquinte/circuit_helper.hxx b/coloquinte/src/coloquinte/circuit_helper.hxx index 53187393..ae002480 100644 --- a/coloquinte/src/coloquinte/circuit_helper.hxx +++ b/coloquinte/src/coloquinte/circuit_helper.hxx @@ -24,28 +24,28 @@ struct pin_2D{ bool movable; pin_2D(index_t c, point p, point o, bool m) : cell_ind(c), pos(p), offs(o), movable(m){} - pin_1D x() const{ return pin_1D(cell_ind, pos.x_, offs.x_, movable); } - pin_1D y() const{ return pin_1D(cell_ind, pos.y_, offs.y_, movable); } + pin_1D x() const{ return pin_1D(cell_ind, pos.x, offs.x, movable); } + pin_1D y() const{ return pin_1D(cell_ind, pos.y, offs.y, movable); } }; inline int_t dist(pin_2D const a, pin_2D const b){ point diff = a.pos - b.pos; - return std::abs(diff.x_) + std::abs(diff.y_); + return std::abs(diff.x) + std::abs(diff.y); } inline std::vector get_pins_2D(netlist const & circuit, placement_t const & pl, index_t net_ind){ std::vector ret; for(auto p : circuit.get_net(net_ind)){ - assert(std::isfinite(pl.positions_[p.cell_ind].x_) and std::isfinite(pl.positions_[p.cell_ind].y_)); - assert(std::isfinite(pl.orientations_[p.cell_ind].x_) and std::isfinite(pl.orientations_[p.cell_ind].y_)); + assert(std::isfinite(pl.positions_[p.cell_ind].x) and std::isfinite(pl.positions_[p.cell_ind].y)); + assert(std::isfinite(pl.orientations_[p.cell_ind].x) and std::isfinite(pl.orientations_[p.cell_ind].y)); point offs; - offs.x_ = pl.orientations_[p.cell_ind].x_ ? p.offset.x_ : circuit.get_cell(p.cell_ind).size.x_ - p.offset.x_; - offs.y_ = pl.orientations_[p.cell_ind].y_ ? p.offset.y_ : circuit.get_cell(p.cell_ind).size.y_ - p.offset.y_; + offs.x = pl.orientations_[p.cell_ind].x ? p.offset.x : circuit.get_cell(p.cell_ind).size.x - p.offset.x; + offs.y = pl.orientations_[p.cell_ind].y ? p.offset.y : circuit.get_cell(p.cell_ind).size.y - p.offset.y; point pos = offs + pl.positions_[p.cell_ind]; - assert(std::isfinite(offs.x_) and std::isfinite(offs.y_)); - assert(std::isfinite(pos.x_) and std::isfinite(pos.y_)); + assert(std::isfinite(offs.x) and std::isfinite(offs.y)); + assert(std::isfinite(pos.x) and std::isfinite(pos.y)); bool movable = (circuit.get_cell(p.cell_ind).attributes & XMovable) != 0 and (circuit.get_cell(p.cell_ind).attributes & YMovable) != 0; ret.push_back(pin_2D(p.cell_ind, pos, offs, movable)); @@ -56,22 +56,22 @@ inline std::vector get_pins_2D(netlist const & circuit, placemen inline point > get_pins_1D(netlist const & circuit, placement_t const & pl, index_t net_ind){ point > ret; for(auto p : circuit.get_net(net_ind)){ - assert(std::isfinite(pl.positions_[p.cell_ind].x_) and std::isfinite(pl.positions_[p.cell_ind].y_)); - assert(std::isfinite(pl.orientations_[p.cell_ind].x_) and std::isfinite(pl.orientations_[p.cell_ind].y_)); + assert(std::isfinite(pl.positions_[p.cell_ind].x) and std::isfinite(pl.positions_[p.cell_ind].y)); + assert(std::isfinite(pl.orientations_[p.cell_ind].x) and std::isfinite(pl.orientations_[p.cell_ind].y)); point offs; - offs.x_ = pl.orientations_[p.cell_ind].x_ ? p.offset.x_ : circuit.get_cell(p.cell_ind).size.x_ - p.offset.x_; - offs.y_ = pl.orientations_[p.cell_ind].y_ ? p.offset.y_ : circuit.get_cell(p.cell_ind).size.y_ - p.offset.y_; + offs.x = pl.orientations_[p.cell_ind].x ? p.offset.x : circuit.get_cell(p.cell_ind).size.x - p.offset.x; + offs.y = pl.orientations_[p.cell_ind].y ? p.offset.y : circuit.get_cell(p.cell_ind).size.y - p.offset.y; point pos = offs + pl.positions_[p.cell_ind]; - assert(std::isfinite(offs.x_) and std::isfinite(offs.y_)); - assert(std::isfinite(pos.x_) and std::isfinite(pos.y_)); + assert(std::isfinite(offs.x) and std::isfinite(offs.y)); + assert(std::isfinite(pos.x) and std::isfinite(pos.y)); bool x_movable = (circuit.get_cell(p.cell_ind).attributes & XMovable) != 0; bool y_movable = (circuit.get_cell(p.cell_ind).attributes & YMovable) != 0; - ret.x_.push_back(pin_1D(p.cell_ind, pos.x_, offs.x_, x_movable)); - ret.y_.push_back(pin_1D(p.cell_ind, pos.y_, offs.y_, y_movable)); + ret.x.push_back(pin_1D(p.cell_ind, pos.x, offs.x, x_movable)); + ret.y.push_back(pin_1D(p.cell_ind, pos.y, offs.y, y_movable)); } return ret; } diff --git a/coloquinte/src/coloquinte/common.hxx b/coloquinte/src/coloquinte/common.hxx index 97025967..b31be557 100644 --- a/coloquinte/src/coloquinte/common.hxx +++ b/coloquinte/src/coloquinte/common.hxx @@ -30,83 +30,83 @@ enum Movability{ template struct point{ - T x_, y_; + T x, y; point(){} - point(T x, T y): x_(x), y_(y){} + point(T x, T y): x(x), y(y){} template operator point() const{ - return point(static_cast(x_), static_cast(y_)); + return point(static_cast(x), static_cast(y)); } void operator+=(point const o){ - x_ += o.x_; - y_ += o.y_; + x += o.x; + y += o.y; } }; template point operator+(point const a, point const b){ - return point(a.x_+b.x_, a.y_+b.y_); + return point(a.x+b.x, a.y+b.y); } template point operator-(point const a, point const b){ - return point(a.x_-b.x_, a.y_-b.y_); + return point(a.x-b.x, a.y-b.y); } template point operator*(T lambda, point const p){ - return point(lambda * p.x_, lambda * p.y_); + return point(lambda * p.x, lambda * p.y); } template point operator*(point const a, point const b){ - return point(a.x_*b.x_, a.y_*b.y_); + return point(a.x*b.x, a.y*b.y); } template struct box{ - T x_min_, x_max_, y_min_, y_max_; + T x_min, x_max, y_min, y_max; box(){} - box(T x_mn, T x_mx, T y_mn, T y_mx) : x_min_(x_mn), x_max_(x_mx), y_min_(y_mn), y_max_(y_mx){} - box(point mn, point mx) : x_min_(mn.x_), x_max_(mx.x_), y_min_(mn.y_), y_max_(mx.y_){} + box(T x_mn, T x_mx, T y_mn, T y_mx) : x_min(x_mn), x_max(x_mx), y_min(y_mn), y_max(y_mx){} + box(point mn, point mx) : x_min(mn.x), x_max(mx.x), y_min(mn.y), y_max(mx.y){} bool in(box const o) const{ - return x_max_ <= o.x_max_ - && y_max_ <= o.y_max_ - && x_min_ >= o.x_min_ - && y_min_ >= o.y_min_; + return x_max <= o.x_max + && y_max <= o.y_max + && x_min >= o.x_min + && y_min >= o.y_min; } bool intersects(box const o) const{ - return x_min_ < o.x_max_ - && y_min_ < o.y_max_ - && o.x_min_ < x_max_ - && o.y_min_ < y_max_; + return x_min < o.x_max + && y_min < o.y_max + && o.x_min < x_max + && o.y_min < y_max; } box intersection(box const o) const{ return box( - std::max(x_min_, o.x_min_), - std::min(x_max_, o.x_max_), - std::max(y_min_, o.y_min_), - std::min(y_max_, o.y_max_) + std::max(x_min, o.x_min), + std::min(x_max, o.x_max), + std::max(y_min, o.y_min), + std::min(y_max, o.y_max) ); } box bounding_box(box const o) const{ return box( - std::min(x_min_, o.x_min_), - std::max(x_max_, o.x_max_), - std::min(y_min_, o.y_min_), - std::max(y_max_, o.y_max_) + std::min(x_min, o.x_min), + std::max(x_max, o.x_max), + std::min(y_min, o.y_min), + std::max(y_max, o.y_max) ); } point dimensions() const{ - return point(x_max_-x_min_, y_max_-y_min_); + return point(x_max-x_min, y_max-y_min); } bool empty() const{ - return dimensions().x_ <= 0 or dimensions().y_ <= 0; + return dimensions().x <= 0 or dimensions().y <= 0; } template operator box() const{ - return box(static_cast(x_min_), static_cast(x_max_), static_cast(y_min_), static_cast(y_max_)); + return box(static_cast(x_min), static_cast(x_max), static_cast(y_min), static_cast(y_max)); } }; diff --git a/coloquinte/src/coloquinte/netlist.hxx b/coloquinte/src/coloquinte/netlist.hxx index ac45e761..cdf45448 100644 --- a/coloquinte/src/coloquinte/netlist.hxx +++ b/coloquinte/src/coloquinte/netlist.hxx @@ -24,7 +24,7 @@ struct temporary_cell{ index_t list_index; temporary_cell(){} - temporary_cell(point s, mask_t attr, index_t ind) : size(s), attributes(attr), list_index(ind){ area = static_cast(s.x_) * static_cast(s.y_);} + temporary_cell(point s, mask_t attr, index_t ind) : size(s), attributes(attr), list_index(ind){ area = static_cast(s.x) * static_cast(s.y);} }; struct temporary_net{ diff --git a/coloquinte/src/coloquinte/rough_legalizers.hxx b/coloquinte/src/coloquinte/rough_legalizers.hxx index 6f86ac6f..6e43387a 100644 --- a/coloquinte/src/coloquinte/rough_legalizers.hxx +++ b/coloquinte/src/coloquinte/rough_legalizers.hxx @@ -212,7 +212,7 @@ inline region_distribution::movable_cell::movable_cell(capacity_t demand, point< inline box region_distribution::placement_area() const { return placement_area_; } inline point region_distribution::region_dimensions() const { point s = static_cast >(placement_area().dimensions()); - return point(s.x_/x_regions_cnt(), s.y_/y_regions_cnt()); + return point(s.x/x_regions_cnt(), s.y/y_regions_cnt()); } inline index_t region_distribution::x_regions_cnt() const { return x_regions_cnt_; } @@ -247,10 +247,10 @@ inline capacity_t region_distribution::region::allocated_capacity() const{ inline index_t region_distribution::region::cell_cnt() const{ return cell_references_.size(); } inline float_t region_distribution::region::distance(region_distribution::cell_ref const & C) const{ - return std::abs(pos_.x_ - C.pos_.x_) + std::abs(pos_.y_ - C.pos_.y_); + return std::abs(pos_.x - C.pos_.x) + std::abs(pos_.y - C.pos_.y); /* - float_t manhattan = std::max(static_cast(0.0), std::max(C.pos_.x_ - surface_.x_max_, surface_.x_min_ - C.pos_.x_)) - + std::max(static_cast(0.0), std::max(C.pos_.y_ - surface_.y_max_, surface_.y_min_ - C.pos_.y_)); + float_t manhattan = std::max(static_cast(0.0), std::max(C.pos_.x - surface_.x_max, surface_.x_min - C.pos_.x)) + + std::max(static_cast(0.0), std::max(C.pos_.y - surface_.y_max, surface_.y_min - C.pos_.y)); return manhattan * (1.0 + manhattan * 0.0001); */ } diff --git a/coloquinte/src/detailed.cxx b/coloquinte/src/detailed.cxx index dafc22cf..5009318e 100644 --- a/coloquinte/src/detailed.cxx +++ b/coloquinte/src/detailed.cxx @@ -78,7 +78,7 @@ void detailed_placement::selfcheck() const{ for(index_t i=0; i= min_x_ and c.position.x_ + c.width <= max_x_); + // : assert(c.position.x >= min_x_ and c.position.x + c.width <= max_x_); index_t n_ind = l + neighbours_limits_[i]; assert(cell_rows_[i] + cell_height(i) <= row_cnt()); @@ -143,10 +143,10 @@ std::pair detailed_placement::get_limit_positions(netlist const & a_i = neighbours_[l].second; if(b_i != null_ind){ - ret.first = std::max(ret.first, plt_.positions_[b_i].x_ + circuit.get_cell(b_i).size.x_); + ret.first = std::max(ret.first, plt_.positions_[b_i].x + circuit.get_cell(b_i).size.x); } if(a_i != null_ind){ - ret.second = std::min(ret.second, plt_.positions_[a_i].x_); + ret.second = std::min(ret.second, plt_.positions_[a_i].x); } } return ret; @@ -250,7 +250,7 @@ void detailed_placement::reorder_standard_cells(std::vector const old_o void row_compatible_orientation(netlist const & circuit, detailed_placement & pl, bool first_row_orient){ for(index_t c=0; c good_legalize( detailed_placement legalize(netlist const & circuit, placement_t const & pl, box surface, int_t row_height){ if(row_height <= 0) throw std::runtime_error("The rows' height should be positive\n"); - index_t nbr_rows = (surface.y_max_ - surface.y_min_) / row_height; - // The position of the ith row is surface.y_min_ + i * row_height + index_t nbr_rows = (surface.y_max - surface.y_min) / row_height; + // The position of the ith row is surface.y_min + i * row_height std::vector > row_occupation(nbr_rows); std::vector cells; @@ -372,32 +372,32 @@ detailed_placement legalize(netlist const & circuit, placement_t const & pl, box if( (cur.attributes & XMovable) != 0 && (cur.attributes & YMovable) != 0){ // Just truncate the position we target point target_pos = pl.positions_[i]; - index_t cur_cell_rows = (cur.size.y_ + row_height -1) / row_height; - cells.push_back(cell_to_leg(target_pos.x_, target_pos.y_, i, cur.size.x_, cur_cell_rows)); + index_t cur_cell_rows = (cur.size.y + row_height -1) / row_height; + cells.push_back(cell_to_leg(target_pos.x, target_pos.y, i, cur.size.x, cur_cell_rows)); cell_heights[i] = cur_cell_rows; } else{ // In each row, we put the index of the fixed cell and the range that is already occupied - int_t low_x_pos = pl.positions_[i].x_, - hgh_x_pos = pl.positions_[i].x_ + cur.size.x_, - low_y_pos = pl.positions_[i].y_, - hgh_y_pos = pl.positions_[i].y_ + cur.size.y_; + int_t low_x_pos = pl.positions_[i].x, + hgh_x_pos = pl.positions_[i].x + cur.size.x, + low_y_pos = pl.positions_[i].y, + hgh_y_pos = pl.positions_[i].y + cur.size.y; new_placement.positions_[i] = point(low_x_pos, low_y_pos); - if(hgh_y_pos <= surface.y_min_ or low_y_pos >= surface.y_max_ or hgh_x_pos <= surface.x_min_ or low_x_pos >= surface.x_max_){ + if(hgh_y_pos <= surface.y_min or low_y_pos >= surface.y_max or hgh_x_pos <= surface.x_min or low_x_pos >= surface.x_max){ placement_rows[i] = null_ind; cell_heights[i] = 0; } else{ assert(low_x_pos < hgh_x_pos and low_y_pos < hgh_y_pos); - int_t rnd_hgh_x_pos = std::min(surface.x_max_, hgh_x_pos); - int_t rnd_hgh_y_pos = std::min(surface.y_max_, hgh_y_pos); - int_t rnd_low_x_pos = std::max(surface.x_min_, low_x_pos); - int_t rnd_low_y_pos = std::max(surface.y_min_, low_y_pos); + int_t rnd_hgh_x_pos = std::min(surface.x_max, hgh_x_pos); + int_t rnd_hgh_y_pos = std::min(surface.y_max, hgh_y_pos); + int_t rnd_low_x_pos = std::max(surface.x_min, low_x_pos); + int_t rnd_low_y_pos = std::max(surface.y_min, low_y_pos); - index_t first_row = (rnd_low_y_pos - surface.y_min_) / row_height; - index_t last_row = (index_t) (rnd_hgh_y_pos - surface.y_min_ + row_height - 1) / row_height; // Exclusive: if the cell spans the next row, i.e. pos % row_height >= 0, include it too + index_t first_row = (rnd_low_y_pos - surface.y_min) / row_height; + index_t last_row = (index_t) (rnd_hgh_y_pos - surface.y_min + row_height - 1) / row_height; // Exclusive: if the cell spans the next row, i.e. pos % row_height >= 0, include it too assert(last_row <= nbr_rows); placement_rows[i] = first_row; @@ -421,12 +421,12 @@ detailed_placement legalize(netlist const & circuit, placement_t const & pl, box std::vector > cells_by_rows; auto final_cells = good_legalize(row_occupation, cells, cells_by_rows, - surface.x_min_, surface.x_max_, surface.y_min_, + surface.x_min, surface.x_max, surface.y_min, row_height, nbr_rows ); for(cell_leg_properties C : final_cells){ - new_placement.positions_[C.ind] = point(C.x_pos, static_cast(C.row_pos) * row_height + surface.y_min_); + new_placement.positions_[C.ind] = point(C.x_pos, static_cast(C.row_pos) * row_height + surface.y_min); placement_rows[C.ind] = C.row_pos; } @@ -435,8 +435,8 @@ detailed_placement legalize(netlist const & circuit, placement_t const & pl, box placement_rows, cell_heights, cells_by_rows, - surface.x_min_, surface.x_max_, - surface.y_min_, + surface.x_min, surface.x_max, + surface.y_min, nbr_rows, row_height ); } diff --git a/coloquinte/src/orientation.cxx b/coloquinte/src/orientation.cxx index 1cd8ec21..fed113c6 100644 --- a/coloquinte/src/orientation.cxx +++ b/coloquinte/src/orientation.cxx @@ -141,10 +141,10 @@ inline void spread_orient(netlist const & circuit, placement_t & pl, std::functi } // End anonymous namespace void optimize_x_orientations(netlist const & circuit, placement_t & pl){ - opt_orient(circuit, pl, [](point p) -> int_t { return p.x_; }, [](point & p) -> bool & { return p.x_; }, XFlippable); + opt_orient(circuit, pl, [](point p) -> int_t { return p.x; }, [](point & p) -> bool & { return p.x; }, XFlippable); } void optimize_y_orientations(netlist const & circuit, placement_t & pl){ - opt_orient(circuit, pl, [](point p) -> int_t { return p.y_; }, [](point & p) -> bool & { return p.y_; }, YFlippable); + opt_orient(circuit, pl, [](point p) -> int_t { return p.y; }, [](point & p) -> bool & { return p.y; }, YFlippable); } // Iteratively optimize feasible orientations; performs only one pass @@ -155,8 +155,8 @@ void optimize_exact_orientations(netlist const & circuit, placement_t & pl){ /* void spread_orientations(netlist const & circuit, placement_t & pl){ - spread_orient(circuit, pl, [](point & p) -> float_t & { return p.x_; }, XFlippable); - spread_orient(circuit, pl, [](point & p) -> float_t & { return p.y_; }, YFlippable); + spread_orient(circuit, pl, [](point & p) -> float_t & { return p.x; }, XFlippable); + spread_orient(circuit, pl, [](point & p) -> float_t & { return p.y; }, YFlippable); } */ diff --git a/coloquinte/src/rough_legalizers.cxx b/coloquinte/src/rough_legalizers.cxx index ff6e33da..a2cde3e9 100644 --- a/coloquinte/src/rough_legalizers.cxx +++ b/coloquinte/src/rough_legalizers.cxx @@ -79,28 +79,28 @@ region_distribution::region::region(capacity_t cap, point pos, std::vec box region_distribution::get_box(index_t x, index_t y, index_t x_cnt, index_t y_cnt) const{ auto ret = box( - placement_area_.x_min_ + ( ((std::int64_t) (placement_area_.x_max_ - placement_area_.x_min_)) * x ) / x_cnt, - placement_area_.x_min_ + ( ((std::int64_t) (placement_area_.x_max_ - placement_area_.x_min_)) * (x+1) ) / x_cnt, - placement_area_.y_min_ + ( ((std::int64_t) (placement_area_.y_max_ - placement_area_.y_min_)) * y ) / y_cnt, - placement_area_.y_min_ + ( ((std::int64_t) (placement_area_.y_max_ - placement_area_.y_min_)) * (y+1) ) / y_cnt + placement_area_.x_min + ( ((std::int64_t) (placement_area_.x_max - placement_area_.x_min)) * x ) / x_cnt, + placement_area_.x_min + ( ((std::int64_t) (placement_area_.x_max - placement_area_.x_min)) * (x+1) ) / x_cnt, + placement_area_.y_min + ( ((std::int64_t) (placement_area_.y_max - placement_area_.y_min)) * y ) / y_cnt, + placement_area_.y_min + ( ((std::int64_t) (placement_area_.y_max - placement_area_.y_min)) * (y+1) ) / y_cnt ); assert(not ret.empty()); return ret; } std::vector region_distribution::prepare_regions(index_t x_cnt, index_t y_cnt) const{ - assert(placement_area_.x_max_ > placement_area_.x_min_); - assert(placement_area_.y_max_ > placement_area_.y_min_); + assert(placement_area_.x_max > placement_area_.x_min); + assert(placement_area_.y_max > placement_area_.y_min); // Uses a sweepline algorithm to initialize all regions' capacities at a time, taking macros and density maps into account - // The events in the priority queue: basically a density_limit object, but the y_min_ may be different from the original one + // The events in the priority queue: basically a density_limit object, but the y_min may be different from the original one struct event{ box box_; capacity_t multiplicator_; bool operator<(event const o) const{ - return box_.y_min_ > o.box_.y_min_ // Priority queue = highest first - or (box_.y_min_ == o.box_.y_min_ and multiplicator_ > o.multiplicator_); // Smallest density first, just because + return box_.y_min > o.box_.y_min // Priority queue = highest first + or (box_.y_min == o.box_.y_min and multiplicator_ > o.multiplicator_); // Smallest density first, just because } event(box surface, capacity_t den) : box_(surface), multiplicator_(den) {} event(density_limit D, capacity_t density_mul) : box_(D.box_) { @@ -109,9 +109,9 @@ std::vector region_distribution::prepare_regions(in }; struct line_y{ - int_t y_min_, y_max_; + int_t y_min, y_max; capacity_t multiplicator_; - line_y(int_t mn, int_t mx, capacity_t cap) : y_min_(mn), y_max_(mx), multiplicator_(cap) {} + line_y(int_t mn, int_t mx, capacity_t cap) : y_min(mn), y_max(mx), multiplicator_(cap) {} }; // The regions' capacities @@ -120,10 +120,10 @@ std::vector region_distribution::prepare_regions(in // Find the limits of the regions std::vector x_reg_lims(x_cnt+1), y_reg_lims(y_cnt+1); for(index_t i=0; i<=x_cnt; ++i){ - x_reg_lims[i] = placement_area_.x_min_ + ( ((std::int64_t) (placement_area_.x_max_ - placement_area_.x_min_)) * i ) / x_cnt; + x_reg_lims[i] = placement_area_.x_min + ( ((std::int64_t) (placement_area_.x_max - placement_area_.x_min)) * i ) / x_cnt; } for(index_t i=0; i<=y_cnt; ++i){ - y_reg_lims[i] = placement_area_.y_min_ + ( ((std::int64_t) (placement_area_.y_max_ - placement_area_.y_min_)) * i ) / y_cnt; + y_reg_lims[i] = placement_area_.y_min + ( ((std::int64_t) (placement_area_.y_max - placement_area_.y_min)) * i ) / y_cnt; } //std::vector > added; @@ -132,12 +132,12 @@ std::vector region_distribution::prepare_regions(in /* // Failed attempt at calculating the coordinates directly point dims = placement_area_.dimensions(); - auto mins = point(placement_area_.x_min_, placement_area_.y_min_); + auto mins = point(placement_area_.x_min, placement_area_.y_min); - index_t x_mn = (static_cast(bx.x_min_ - mins.x_ + 1) * x_cnt) / dims.x_, - x_mx = (static_cast(bx.x_max_ - mins.x_ - 1) * x_cnt) / dims.x_ + 1, - y_mn = (static_cast(bx.y_min_ - mins.y_ + 1) * y_cnt) / dims.y_, - y_mx = (static_cast(bx.y_max_ - mins.y_ - 1) * y_cnt) / dims.y_ + 1; + index_t x_mn = (static_cast(bx.x_min - mins.x + 1) * x_cnt) / dims.x, + x_mx = (static_cast(bx.x_max - mins.x - 1) * x_cnt) / dims.x + 1, + y_mn = (static_cast(bx.y_min - mins.y + 1) * y_cnt) / dims.y, + y_mx = (static_cast(bx.y_max - mins.y - 1) * y_cnt) / dims.y + 1; */ /* @@ -148,15 +148,15 @@ std::vector region_distribution::prepare_regions(in added.push_back(bx); */ - assert(bx.x_min_ >= placement_area_.x_min_); - assert(bx.y_min_ >= placement_area_.y_min_); - assert(bx.x_max_ <= placement_area_.x_max_); - assert(bx.y_max_ <= placement_area_.y_max_); + assert(bx.x_min >= placement_area_.x_min); + assert(bx.y_min >= placement_area_.y_min); + assert(bx.x_max <= placement_area_.x_max); + assert(bx.y_max <= placement_area_.y_max); - index_t x_mn = std::upper_bound(x_reg_lims.begin(), x_reg_lims.end(), bx.x_min_) - x_reg_lims.begin() -1, - y_mn = std::upper_bound(y_reg_lims.begin(), y_reg_lims.end(), bx.y_min_) - y_reg_lims.begin() -1, - x_mx = std::lower_bound(x_reg_lims.begin(), x_reg_lims.end(), bx.x_max_) - x_reg_lims.begin(), - y_mx = std::lower_bound(y_reg_lims.begin(), y_reg_lims.end(), bx.y_max_) - y_reg_lims.begin(); + index_t x_mn = std::upper_bound(x_reg_lims.begin(), x_reg_lims.end(), bx.x_min) - x_reg_lims.begin() -1, + y_mn = std::upper_bound(y_reg_lims.begin(), y_reg_lims.end(), bx.y_min) - y_reg_lims.begin() -1, + x_mx = std::lower_bound(x_reg_lims.begin(), x_reg_lims.end(), bx.x_max) - x_reg_lims.begin(), + y_mx = std::lower_bound(y_reg_lims.begin(), y_reg_lims.end(), bx.y_max) - y_reg_lims.begin(); for(index_t x=x_mn; x region_distribution::prepare_regions(in assert(bx.intersects(cur_box)); box inter = bx.intersection(cur_box); point dims = inter.dimensions(); - region_caps[y*x_cnt + x] += d * static_cast(dims.x_) * static_cast(dims.y_); + region_caps[y*x_cnt + x] += d * static_cast(dims.x) * static_cast(dims.y); } } }; @@ -186,24 +186,24 @@ std::vector region_distribution::prepare_regions(in // The initial sweepline, with begin and end of the line std::map active_obstacles; - line_y placement_begin (placement_area_.y_min_, placement_area_.y_max_, full_density_mul), - placement_end (placement_area_.y_min_, placement_area_.y_max_, 0); + line_y placement_begin (placement_area_.y_min, placement_area_.y_max, full_density_mul), + placement_end (placement_area_.y_min, placement_area_.y_max, 0); - active_obstacles.insert(std::pair(placement_area_.x_min_, placement_begin)); // Full density placement area as initial object - active_obstacles.insert(std::pair(placement_area_.x_max_, placement_end)); + active_obstacles.insert(std::pair(placement_area_.x_min, placement_begin)); // Full density placement area as initial object + active_obstacles.insert(std::pair(placement_area_.x_max, placement_end)); // Main loop: sweep the line on y (the line is horizontal, and moves toward bigger y) while(not events.empty()){ event D = events.top(); - int_t x_b=D.box_.x_min_, x_e=D.box_.x_max_; - int_t y_b=D.box_.y_min_, y_e=D.box_.y_max_; + int_t x_b=D.box_.x_min, x_e=D.box_.x_max; + int_t y_b=D.box_.y_min, y_e=D.box_.y_max; events.pop(); - assert(x_b >= placement_area_.x_min_); - assert(y_b >= placement_area_.y_min_); - assert(x_e <= placement_area_.x_max_); - assert(y_e <= placement_area_.y_max_); + assert(x_b >= placement_area_.x_min); + assert(y_b >= placement_area_.y_min); + assert(x_e <= placement_area_.x_max); + assert(y_e <= placement_area_.y_max); // For each delimitation between the bounds of the new rectangle // If the new delimitation has higher density or this delimitation ends on y there @@ -215,7 +215,7 @@ std::vector region_distribution::prepare_regions(in line_y const new_elt(y_b, y_e, D.multiplicator_); std::vector new_delimitations; - // First element on the line whose x_ is after our x_min (i.e. may have an intersection), and while there is an intersection + // First element on the line whose x is after our x_min (i.e. may have an intersection), and while there is an intersection auto first_it = active_obstacles.upper_bound(x_b); assert(first_it != active_obstacles.begin()); assert(std::prev(first_it)->first <= x_b); @@ -224,8 +224,8 @@ std::vector region_distribution::prepare_regions(in for(auto it = std::prev(first_it); it != active_obstacles.end() and it->first < x_e;){ auto next_it = std::next(it); assert(next_it != active_obstacles.end()); - assert(it->second.y_min_ <= y_b); - assert(it->second.y_max_ >= y_b); + assert(it->second.y_min <= y_b); + assert(it->second.y_max >= y_b); assert(it->first < x_e); assert(next_it->first > x_b); assert(next_it-> first > it->first); @@ -233,18 +233,18 @@ std::vector region_distribution::prepare_regions(in int_t x_c_min = std::max(x_b, it->first), x_c_max = std::min(x_e, next_it->first); assert(x_c_min < x_c_max); - // Add the area from it->second.y_min_ to D.box_.y_min_ - if(y_b > it->second.y_min_) - add_region(box(it->first, next_it->first, it->second.y_min_, y_b), it->second.multiplicator_); - it->second.y_min_ = y_b; // Now the part before has been used + // Add the area from it->second.y_min to D.box_.y_min + if(y_b > it->second.y_min) + add_region(box(it->first, next_it->first, it->second.y_min, y_b), it->second.multiplicator_); + it->second.y_min = y_b; // Now the part before has been used auto part_b = *it, part_e = *next_it; - if(part_b.second.multiplicator_ > D.multiplicator_ or part_b.second.y_max_ == y_b){ // The new event is visible now + if(part_b.second.multiplicator_ > D.multiplicator_ or part_b.second.y_max == y_b){ // The new event is visible now // In case parts of the line become visible again later - if(part_b.second.y_max_ > y_e){ // Push back a new event to account for the comeback - events.push(event(box(x_c_min, x_c_max, y_e, part_b.second.y_max_), part_b.second.multiplicator_)); + if(part_b.second.y_max > y_e){ // Push back a new event to account for the comeback + events.push(event(box(x_c_min, x_c_max, y_e, part_b.second.y_max), part_b.second.multiplicator_)); } // Depending whether this part of the line is or is not fully covered @@ -265,8 +265,8 @@ std::vector region_distribution::prepare_regions(in } else{ // The new event is not visible yet currently_in = false; - if(part_b.second.y_max_ < y_e){ // Push back a new event - events.push(event(box(x_c_min, x_c_max, part_b.second.y_max_, y_e), D.multiplicator_)); + if(part_b.second.y_max < y_e){ // Push back a new event + events.push(event(box(x_c_min, x_c_max, part_b.second.y_max, y_e), D.multiplicator_)); } } @@ -274,8 +274,8 @@ std::vector region_distribution::prepare_regions(in } } for(auto it=active_obstacles.begin(); std::next(it) != active_obstacles.end(); ++it){ - assert(it->second.y_max_ == placement_area_.y_max_); - add_region(box(it->first, std::next(it)->first, it->second.y_min_, it->second.y_max_), it->second.multiplicator_); + assert(it->second.y_max == placement_area_.y_max); + add_region(box(it->first, std::next(it)->first, it->second.y_min, it->second.y_max), it->second.multiplicator_); } std::vector ret(x_cnt*y_cnt); @@ -284,7 +284,7 @@ std::vector region_distribution::prepare_regions(in box bx = get_box(x, y, x_cnt, y_cnt); ret[y*x_cnt + x] = region( region_caps[y*x_cnt + x], - point(0.5f * bx.x_min_ + 0.5f * bx.x_max_, 0.5f * bx.y_min_ + 0.5f * bx.y_max_), + point(0.5f * bx.x_min + 0.5f * bx.x_max, 0.5f * bx.y_min + 0.5f * bx.y_max), std::vector() ); } @@ -437,7 +437,7 @@ void region_distribution::region::distribute_new_cells(std::vector b.allocated_capacity_ or (a.allocated_capacity_ == b.allocated_capacity_ and a.pos_.x_+a.pos_.y_ < b.pos_.x_+b.pos_.y_); }); + std::sort(all_cells.begin(), all_cells.end(), [](cell_ref const a, cell_ref const b){ return a.allocated_capacity_ > b.allocated_capacity_ or (a.allocated_capacity_ == b.allocated_capacity_ and a.pos_.x+a.pos_.y < b.pos_.x+b.pos_.y); }); std::vector > costs(regions.size()); std::vector demands; @@ -704,7 +704,7 @@ void region_distribution::redo_line_partitions(){ for(index_t x=0; x(get_region(x, y))); } - region::redistribute_cells(regs, [](point p){ return p.x_; }); + region::redistribute_cells(regs, [](point p){ return p.x; }); } #pragma omp parallel for for(index_t x=0; x(get_region(x, y))); } - region::redistribute_cells(regs, [](point p){ return p.y_; }); + region::redistribute_cells(regs, [](point p){ return p.y; }); } } @@ -737,7 +737,7 @@ void region_distribution::x_resize(index_t sz){ for(index_t x=0; x(get_region(x, y))); } - region::distribute_new_cells(regs, cells, [](point p){ return p.x_; }); + region::distribute_new_cells(regs, cells, [](point p){ return p.x; }); } } @@ -762,7 +762,7 @@ void region_distribution::y_resize(index_t sz){ for(index_t y=0; y(get_region(x, y))); } - region::distribute_new_cells(regs, cells, [](point p){ return p.y_; }); + region::distribute_new_cells(regs, cells, [](point p){ return p.y; }); } } @@ -823,7 +823,7 @@ region_distribution::region_distribution( auto pos = pl.positions_[i]; auto end = pos + c.size; density_limit macro; - macro.box_ = box(pos.x_, end.x_, pos.y_, end.y_); + macro.box_ = box(pos.x, end.x, pos.y, end.y); macro.density_ = 0.0f; density_map_.push_back(macro); } @@ -969,11 +969,11 @@ std::vector region_distribution::export_sprea for(index_t i=0; i pt = R.cell_references_[i].pos_; float_t cap = static_cast(R.cell_references_[i].allocated_capacity_); - x_cells[i] = OSRP_task(pt.x_, cap/total_capacity * (surface.x_max_ - surface.x_min_), 1.0, i); - y_cells[i] = OSRP_task(pt.y_, cap/total_capacity * (surface.y_max_ - surface.y_min_), 1.0, i); + x_cells[i] = OSRP_task(pt.x, cap/total_capacity * (surface.x_max - surface.x_min), 1.0, i); + y_cells[i] = OSRP_task(pt.y, cap/total_capacity * (surface.y_max - surface.y_min), 1.0, i); } - std::vector x_ret = get_optimal_quadratic_pos(x_cells, surface.x_min_, surface.x_max_); - std::vector y_ret = get_optimal_quadratic_pos(y_cells, surface.y_min_, surface.y_max_); + std::vector x_ret = get_optimal_quadratic_pos(x_cells, surface.x_min, surface.x_max); + std::vector y_ret = get_optimal_quadratic_pos(y_cells, surface.y_min, surface.y_max); for(index_t i=0; i region_distribution::export_sprea movable_cell C = cell_list_[i]; assert(C.demand_ > 0); C.pos_ = ( static_cast(1.0) / static_cast(C.demand_) ) * weighted_pos[i]; - assert(std::isfinite(C.pos_.x_) and std::isfinite(C.pos_.y_)); + assert(std::isfinite(C.pos_.x) and std::isfinite(C.pos_.y)); ret.push_back(C); } return ret; @@ -1003,19 +1003,19 @@ std::vector region_distribution::export_sprea index_t n = R.cell_references_.size(); float_t total_capacity = static_cast(R.capacity()); box surface = static_cast >(get_box(x, y, x_regions_cnt(), y_regions_cnt())); - assert(surface.x_max_ > surface.x_min_ and surface.y_max_ > surface.y_min_); + assert(surface.x_max > surface.x_min and surface.y_max > surface.y_min); std::vector > x_cells, y_cells; for(auto const C : R.cell_references_){ float_t cap = static_cast(C.allocated_capacity_); - float_t x_cap_prop = cap/total_capacity * (surface.x_max_ - surface.x_min_), - y_cap_prop = cap/total_capacity * (surface.y_max_ - surface.y_min_); - x_cells.push_back(legalizable_task(x_cap_prop, C.pos_.x_, C.index_in_list_)); - y_cells.push_back(legalizable_task(y_cap_prop, C.pos_.y_, C.index_in_list_)); + float_t x_cap_prop = cap/total_capacity * (surface.x_max - surface.x_min), + y_cap_prop = cap/total_capacity * (surface.y_max - surface.y_min); + x_cells.push_back(legalizable_task(x_cap_prop, C.pos_.x, C.index_in_list_)); + y_cells.push_back(legalizable_task(y_cap_prop, C.pos_.y, C.index_in_list_)); } - OSRP_leg x_leg(surface.x_min_, surface.x_max_), y_leg(surface.y_min_, surface.y_max_); + OSRP_leg x_leg(surface.x_min, surface.x_max), y_leg(surface.y_min, surface.y_max); std::sort(x_cells.begin(), x_cells.end()); for(legalizable_task & C : x_cells) @@ -1025,7 +1025,7 @@ std::vector region_distribution::export_sprea auto x_pl = x_leg.get_placement(); for(index_t i=0; i(x_cells[i].width * total_capacity / (surface.x_max_ - surface.x_min_)); + weighted_pos[x_pl[i].first].x += (x_pl[i].second + 0.5f * x_cells[i].width) * static_cast(x_cells[i].width * total_capacity / (surface.x_max - surface.x_min)); } std::sort(y_cells.begin(), y_cells.end()); @@ -1036,7 +1036,7 @@ std::vector region_distribution::export_sprea auto y_pl = y_leg.get_placement(); for(index_t i=0; i(y_cells[i].width * total_capacity / (surface.y_max_ - surface.y_min_)); + weighted_pos[y_pl[i].first].y += (y_pl[i].second + 0.5f * y_cells[i].width) * static_cast(y_cells[i].width * total_capacity / (surface.y_max - surface.y_min)); } } } @@ -1046,7 +1046,7 @@ std::vector region_distribution::export_sprea movable_cell C = cell_list_[i]; assert(C.demand_ > 0); C.pos_ = ( 1.0f / static_cast(C.demand_ * cell_density_mul) ) * weighted_pos[i]; - assert(std::isfinite(C.pos_.x_) and std::isfinite(C.pos_.y_)); + assert(std::isfinite(C.pos_.x) and std::isfinite(C.pos_.y)); ret.push_back(C); } return ret; @@ -1055,7 +1055,7 @@ std::vector region_distribution::export_sprea float_t region_distribution::region::cost() const{ float_t res = 0.0; for(cell_ref const C : cell_references_){ - res += (std::abs(C.pos_.x_-pos_.x_) + std::abs(C.pos_.y_-pos_.y_)) * static_cast(C.allocated_capacity_); + res += (std::abs(C.pos_.x-pos_.x) + std::abs(C.pos_.y-pos_.y)) * static_cast(C.allocated_capacity_); } return res; } diff --git a/coloquinte/src/row_opt.cxx b/coloquinte/src/row_opt.cxx index 5b67410b..5e91c34b 100644 --- a/coloquinte/src/row_opt.cxx +++ b/coloquinte/src/row_opt.cxx @@ -180,10 +180,10 @@ Hnet_group get_B2B_netgroup(netlist const & circuit, detailed_placement const & Hnet_group ret; for(index_t c : cells) - ret.cell_widths.push_back(circuit.get_cell(c).size.x_); + ret.cell_widths.push_back(circuit.get_cell(c).size.x); for(index_t n : involved_nets){ - std::vector cur_pins = get_pins_1D(circuit, pl.plt_, n).x_; + std::vector cur_pins = get_pins_1D(circuit, pl.plt_, n).x; for(pin_1D & p : cur_pins){ auto it = std::lower_bound(cells_in_row.begin(), cells_in_row.end(), p.cell_ind); if(it != cells_in_row.end() and it->cell_ind == p.cell_ind){ @@ -206,7 +206,7 @@ Hnet_group get_RSMT_netgroup(netlist const & circuit, detailed_placement const & Hnet_group ret; for(index_t c : cells) - ret.cell_widths.push_back(circuit.get_cell(c).size.x_); + ret.cell_widths.push_back(circuit.get_cell(c).size.x); for(index_t n : involved_nets){ auto vpins = get_pins_2D(circuit, pl.plt_, n); @@ -223,7 +223,7 @@ Hnet_group get_RSMT_netgroup(netlist const & circuit, detailed_placement const & std::vector > pin_locations; for(auto p : vpins) pin_locations.push_back(p.pos); - auto const Htopo = get_RSMT_topology(pin_locations, 8).x_; + auto const Htopo = get_RSMT_topology(pin_locations, 8).x; // In the horizontal topology, we transform the parts of the tree that are on the row into HPWL subnets // Two pins sharing an edge are in the same subnet if one of them is on the row: use union-find @@ -432,7 +432,7 @@ std::vector > get_cell_ranges(netlist const & circuit, d std::vector > lims; for(index_t i=0; i+1 > get_cell_ranges(netlist const & circuit, d for(index_t OSRP_cell : cells){ auto attr = circuit.get_cell(OSRP_cell).attributes; auto cur_lim = std::pair(lower_lim, upper_lim); - int_t pos = pl.plt_.positions_[OSRP_cell].x_; + int_t pos = pl.plt_.positions_[OSRP_cell].x; if( (attr & XMovable) == 0 or pl.cell_height(OSRP_cell) != 1){ - cur_lim = std::pair(pos, pos + circuit.get_cell(OSRP_cell).size.x_); + cur_lim = std::pair(pos, pos + circuit.get_cell(OSRP_cell).size.x); } else{ assert(pos >= lower_lim); - assert(pos + circuit.get_cell(OSRP_cell).size.x_ <= upper_lim); + assert(pos + circuit.get_cell(OSRP_cell).size.x <= upper_lim); } lims.push_back(cur_lim); } @@ -486,8 +486,8 @@ void OSRP_generic(netlist const & circuit, detailed_placement & pl){ std::vector flipped; optimize_noncvx_sequence(nets, no_permutation, final_positions, flipped, flippability, lims); for(index_t i=0; i int_t Hconnectivity::get_wirelength(std::array, pin_cnt> const sorted_points) const{ std::array minmaxs; for(index_t i=0; i> 4; - minmaxs[b_con].merge(sorted_points.front() .y_); - minmaxs[e_con].merge(sorted_points.back() .y_); + minmaxs[b_con].merge(sorted_points.front() .y); + minmaxs[e_con].merge(sorted_points.back() .y); for(std::uint8_t const E : connexions){ minmaxs[(E >> 4)].merge(minmaxs[(E & 15u)]); } - int_t cost = sorted_points.back().x_ - sorted_points.front().x_ + sorted_points[b_con+1].x_ - sorted_points[e_con+1].x_; + int_t cost = sorted_points.back().x - sorted_points.front().x + sorted_points[b_con+1].x - sorted_points[e_con+1].x; for(std::uint8_t const E : connexions){ - cost += std::abs(sorted_points[(E >> 4) +1].x_ - sorted_points[(E & 15u) +1].x_); + cost += std::abs(sorted_points[(E >> 4) +1].x - sorted_points[(E & 15u) +1].x); } for(index_t i=0; i > const & pins, std::a std::int64_t get_wirelength_from_topo(std::vector > const & points, std::vector > Htopo){ std::vector minmaxs(points.size()); for(index_t i=0; i get_vertical_topology(std::vector > pins, std:: ipoints[i] = indexed_pt(pins[i], i); } - std::sort(ipoints.begin(), ipoints.end(), [](indexed_pt a , indexed_pt b){return a.y_ < b.y_; }); + std::sort(ipoints.begin(), ipoints.end(), [](indexed_pt a , indexed_pt b){return a.y < b.y; }); // First pin with y ordering std::vector min_y_pin(pins.size()); @@ -222,19 +222,19 @@ inline void northeast_octant_neighbours(std::vector > pins, std::ve } std::sort(point_list.begin(), point_list.end(), - [](indexed_pt const a, indexed_pt const b){ return a.x_ + a.y_ < b.x_ + b.y_; } + [](indexed_pt const a, indexed_pt const b){ return a.x + a.y < b.x + b.y; } ); // Decreasing order of x and y; multiset not necessary because no two elements have same coordinate std::set > - active_upper_octant([](indexed_pt const a, indexed_pt const b)->bool{return a.x_ > b.x_;}), - active_lower_octant([](indexed_pt const a, indexed_pt const b)->bool{return a.y_ > b.y_;}); + active_upper_octant([](indexed_pt const a, indexed_pt const b)->bool{return a.x > b.x;}), + active_lower_octant([](indexed_pt const a, indexed_pt const b)->bool{return a.y > b.y;}); for(indexed_pt const current : point_list){ { // North to north-east region auto first_it = active_upper_octant.lower_bound(current); // Largest x with x <= current.x auto it = first_it; - for(; it != active_upper_octant.end() && it->x_ - it->y_ >= current.x_ - current.y_; ++it){ + for(; it != active_upper_octant.end() && it->x - it->y >= current.x - current.y; ++it){ edges.push_back(std::pair(current.index, it->index)); } if(first_it != active_upper_octant.end()){ active_upper_octant.erase(first_it, it); } @@ -243,7 +243,7 @@ inline void northeast_octant_neighbours(std::vector > pins, std::ve { // North-east to east region auto first_it = active_lower_octant.lower_bound(current); // Largest y with y <= current.y auto it = first_it; - for(; it != active_lower_octant.end() && it->y_ - it->x_ >= current.y_ - current.x_; ++it){ + for(; it != active_lower_octant.end() && it->y - it->x >= current.y - current.x; ++it){ edges.push_back(std::pair(current.index, it->index)); } if(first_it != active_lower_octant.end()){ active_lower_octant.erase(first_it, it); } @@ -255,7 +255,7 @@ inline void northeast_octant_neighbours(std::vector > pins, std::ve // Gets the nearest octant neighbour for each point in the south-east quadrant inline void southeast_octant_neighbours(std::vector > pins, std::vector > & edges){ for(auto & pin : pins){ - pin.y_ = - pin.y_; + pin.y = - pin.y; } northeast_octant_neighbours(pins, edges); } @@ -336,7 +336,7 @@ std::vector get_big_horizontal_topology_from_sorted(std::vector > inverted_coords = pins; for(point & pt : inverted_coords){ - std::swap(pt.x_, pt.y_); + std::swap(pt.x, pt.y); } auto Htopo = get_vertical_topology(inverted_coords, Vtopo); @@ -356,7 +356,7 @@ std::vector get_RSMT_horizontal_topology(std::vector > cons ipoints[i] = indexed_pt(pins[i], i); } auto xpoints=ipoints; - std::sort(xpoints.begin(), xpoints.end(), [](indexed_pt a , indexed_pt b){return a.x_ < b.x_; }); + std::sort(xpoints.begin(), xpoints.end(), [](indexed_pt a , indexed_pt b){return a.x < b.x; }); return std::vector{{xpoints[0].index, xpoints[1].index}, {xpoints[1].index, xpoints[2].index}}; } @@ -368,7 +368,7 @@ std::vector get_RSMT_horizontal_topology(std::vector > cons for(index_t i=0; i > sorted_pins(pins.size()); for(index_t i=0; i > get_MST_topology(std::vector a, point b){ return std::abs(a.x_ - b.x_) + std::abs(a.y_ - b.y_); }; + auto D = [](point a, point b){ return std::abs(a.x - b.x) + std::abs(a.y - b.y); }; auto dists = std::array({D(pins[1], pins[2]), D(pins[1], pins[2]), D(pins[0], pins[1])}); index_t mx = std::max_element(dists.begin(), dists.end()) - dists.begin(); for(index_t i=0; i<3; ++i){ @@ -420,7 +420,7 @@ std::vector > get_MST_topology(std::vector p1 = pins[E.first], p2 = pins[E.second]; - return std::abs(p1.x_ - p2.x_) + std::abs(p1.y_ - p2.y_); + return std::abs(p1.x - p2.x) + std::abs(p1.y - p2.y); }; // Perform Kruskal to get the tree std::sort(edges.begin(), edges.end(), [&](edge_t a, edge_t b){ return edge_length(a) < edge_length(b); }); @@ -444,8 +444,8 @@ std::int64_t MST_length(std::vector > const & pins){ auto edges = get_MST_topology(pins); std::int64_t sum = 0; for(auto E : edges){ - sum += std::abs(pins[E.first].x_ - pins[E.second].x_); - sum += std::abs(pins[E.first].y_ - pins[E.second].y_); + sum += std::abs(pins[E.first].x - pins[E.second].x); + sum += std::abs(pins[E.first].y - pins[E.second].y); } return sum; } @@ -454,12 +454,12 @@ std::int64_t RSMT_length(std::vector > const & pins, index_t exacti assert(exactitude_limit <= 10 and exactitude_limit >= 3); if(pins.size() <= 3){ if(pins.size() == 2){ - return std::abs(pins[0].x_ - pins[1].x_) + std::abs(pins[0].y_ - pins[1].y_); + return std::abs(pins[0].x - pins[1].x) + std::abs(pins[0].y - pins[1].y); } else if(pins.size() == 3){ - auto minmaxX = std::minmax_element(pins.begin(), pins.end(), [](point a, point b){ return a.x_ < b.x_; }), - minmaxY = std::minmax_element(pins.begin(), pins.end(), [](point a, point b){ return a.y_ < b.y_; }); - return (minmaxX.second->x_ - minmaxX.first->x_) + (minmaxY.second->y_ - minmaxY.first->y_); + auto minmaxX = std::minmax_element(pins.begin(), pins.end(), [](point a, point b){ return a.x < b.x; }), + minmaxY = std::minmax_element(pins.begin(), pins.end(), [](point a, point b){ return a.y < b.y; }); + return (minmaxX.second->x - minmaxX.first->x) + (minmaxY.second->y - minmaxY.first->y); } else{ return 0; @@ -467,7 +467,7 @@ std::int64_t RSMT_length(std::vector > const & pins, index_t exacti } else{ std::vector > points = pins; - std::sort(points.begin(), points.end(), [](point a , point b){return a.x_ < b.x_; }); + std::sort(points.begin(), points.end(), [](point a , point b){return a.x < b.x; }); if(points.size() <= exactitude_limit){ switch(points.size()){ @@ -517,9 +517,9 @@ point > > get_RSMT_topology(std::vector< ipoints[i] = indexed_pt(pins[i], i); } auto xpoints=ipoints; - std::sort(xpoints.begin(), xpoints.end(), [](indexed_pt a , indexed_pt b){return a.x_ < b.x_; }); + std::sort(xpoints.begin(), xpoints.end(), [](indexed_pt a , indexed_pt b){return a.x < b.x; }); auto ypoints=ipoints; - std::sort(ypoints.begin(), ypoints.end(), [](indexed_pt a , indexed_pt b){return a.y_ < b.y_; }); + std::sort(ypoints.begin(), ypoints.end(), [](indexed_pt a , indexed_pt b){return a.y < b.y; }); return point >{{{xpoints[0].index, xpoints[1].index}, {xpoints[1].index, xpoints[2].index}}, {{ypoints[0].index, ypoints[1].index}, {ypoints[1].index, ypoints[2].index}}}; } diff --git a/etesian/src/EtesianEngine.cpp b/etesian/src/EtesianEngine.cpp index 39610890..909ac6ad 100644 --- a/etesian/src/EtesianEngine.cpp +++ b/etesian/src/EtesianEngine.cpp @@ -148,19 +148,19 @@ namespace { , DbU::Unit pitch ) { - DbU::Unit tx = position.x_ * pitch; - DbU::Unit ty = position.y_ * pitch; + DbU::Unit tx = position.x * pitch; + DbU::Unit ty = position.y * pitch; Box cellBox = model->getAbutmentBox(); Transformation::Orientation orient = Transformation::Orientation::ID; - if ( not orientation.x_ and orientation.y_) { + if ( not orientation.x and orientation.y) { tx += cellBox.getWidth(); orient = Transformation::Orientation::MX; - } else if ( orientation.x_ and not orientation.y_) { + } else if ( orientation.x and not orientation.y) { ty += cellBox.getHeight(); orient = Transformation::Orientation::MY; - } else if ( not orientation.x_ and not orientation.y_) { + } else if ( not orientation.x and not orientation.y) { tx += cellBox.getWidth(); ty += cellBox.getHeight(); orient = Transformation::Orientation::R2; @@ -586,7 +586,7 @@ namespace Etesian { _placementLB.positions_ = positions; _placementLB.orientations_ = orientations; _placementUB = _placementLB; - //cerr << "Coloquinte cell height: " << _circuit.get_cell(0).size.y_ << endl; + //cerr << "Coloquinte cell height: " << _circuit.get_cell(0).size.y << endl; } @@ -616,11 +616,11 @@ namespace Etesian { auto legalizer = (options & ForceUniformDensity) != 0 ? region_distribution::uniform_density_distribution (_surface, _circuit, _placementLB, _densityLimits) : region_distribution::full_density_distribution (_surface, _circuit, _placementLB, _densityLimits); - while(legalizer.region_dimensions().x_ > 2*legalizer.region_dimensions().y_) + while(legalizer.region_dimensions().x > 2*legalizer.region_dimensions().y) legalizer.x_bipartition(); - while(2*legalizer.region_dimensions().x_ < legalizer.region_dimensions().y_) + while(2*legalizer.region_dimensions().x < legalizer.region_dimensions().y) legalizer.y_bipartition(); - while( std::max(legalizer.region_dimensions().x_, legalizer.region_dimensions().y_)*4 > minDisruption ) { + while( std::max(legalizer.region_dimensions().x, legalizer.region_dimensions().y)*4 > minDisruption ) { legalizer.x_bipartition(); legalizer.y_bipartition(); legalizer.redo_line_partitions(); From 77c4277482243bf7a6cd172d32538f3c991b1d63 Mon Sep 17 00:00:00 2001 From: Gabriel Gouvine Date: Sun, 5 Jun 2016 17:29:00 +0200 Subject: [PATCH 4/6] Removed (now unused) dependency to Lemon/Coin-OR --- coloquinte/src/MCF_opt.cxx | 147 ------------------------ coloquinte/src/coloquinte/detailed.hxx | 2 - documentation/UsersGuide/UsersGuide.rst | 10 -- 3 files changed, 159 deletions(-) delete mode 100644 coloquinte/src/MCF_opt.cxx diff --git a/coloquinte/src/MCF_opt.cxx b/coloquinte/src/MCF_opt.cxx deleted file mode 100644 index 67e46b5b..00000000 --- a/coloquinte/src/MCF_opt.cxx +++ /dev/null @@ -1,147 +0,0 @@ - -#include "coloquinte/detailed.hxx" -#include "coloquinte/circuit_helper.hxx" - -#include -#include - -#include - -namespace coloquinte{ -namespace dp{ - -void optimize_on_topology_HPWL(netlist const & circuit, detailed_placement & pl){ - // Solves a minimum cost flow problem to optimize the placement at fixed topology - // Concretely, it means aligning the pins to minimize the wirelength - // It uses the Lemon network simplex solver from the Coin-OR initiative, which should scale well up to hundred of thousands of cells - - using namespace lemon; - DIGRAPH_TYPEDEFS(SmartDigraph); - // Create a graph with the cells and bounds of the nets as node - SmartDigraph g; - - std::vector cell_nodes(circuit.cell_cnt()); - for(index_t i=0; i Lnet_nodes(circuit.net_cnt()), Unet_nodes(circuit.net_cnt()); - for(index_t i=0; i 0){ - Lnet_nodes[i] = g.addNode(); - Unet_nodes[i] = g.addNode(); - } - } - - // Two nodes for position constraints - Node fixed = g.addNode(); - - typedef std::pair arc_pair; - typedef std::pair node_pair; - // The arcs corresponding to constraints of the original problem - std::vector constraint_arcs; - - // Now we add every positional constraint, which becomes an arc in the min-cost flow problem - for(index_t i=0; i net_supplies; - for(index_t n=0; n 0){ - net_supplies.push_back(node_pair(Unet_nodes[n], circuit.get_net(n).weight)); - net_supplies.push_back(node_pair(Lnet_nodes[n], -circuit.get_net(n).weight)); - } - } - - // Create the maps to have cost and capacity for the arcs - IntArcMap cost(g, 0); - IntArcMap capacity(g, circuit.net_cnt()); - IntNodeMap supply(g, 0); - - for(arc_pair A : constraint_arcs){ - cost[A.first] = A.second; - } - - for(node_pair N : net_supplies){ - supply[N.first] = N.second; - } - - // Then we (hope the solver can) solve it - NetworkSimplex ns(g); - ns.supplyMap(supply).costMap(cost); - auto res = ns.run(); - if(res != ns.OPTIMAL){ - abort(); - } - - // And we get the new positions as the dual values of the current solution (compared to the fixed pin) - for(index_t c=0; c`_ (used by the detailed placer) * LEF/DEF (from `SI2 `_) -The |Coloquinte| component requires the |LEMON| component from |Coin-Or| (`Coin Or Home`_). -A repository of |Coin-Or| packages backported from |Fedora| 21 is available here: - -* |SL6|: `ftp://pub/linux/distributions/slsoc/slsoc/soc/addons/i386/RPMS `_ -* |SL7|: `ftp://pub/linux/distributions/slsoc/soc/7/addons/x86_64/RPMS `_ - For other distributions, refer to their own packaging system. |newpage| From d7293210917445c37bad4e73b0c923a0805b3f2a Mon Sep 17 00:00:00 2001 From: Jean-Paul Chaput Date: Fri, 10 Jun 2016 22:59:33 +0200 Subject: [PATCH 5/6] No more MCF_opt.cxx in Coloquinte. --- coloquinte/src/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/coloquinte/src/CMakeLists.txt b/coloquinte/src/CMakeLists.txt index 11449af8..ac0e00e8 100644 --- a/coloquinte/src/CMakeLists.txt +++ b/coloquinte/src/CMakeLists.txt @@ -24,7 +24,7 @@ set ( cpps circuit.cxx orientation.cxx detailed.cxx cell_swapping.cxx - MCF_opt.cxx + #MCF_opt.cxx row_opt.cxx topologies.cxx lookup_table.cxx From f68ac4d0e62001d6c39dee116949cec4d36f93d8 Mon Sep 17 00:00:00 2001 From: Jean-Paul Chaput Date: Sat, 11 Jun 2016 21:56:12 +0200 Subject: [PATCH 6/6] Argh. cdebug was slowing down the program too much. * Change: In Hurricane Commons.h, even when cdebug print nothing, it slow down the program (three times for Kite!). Create a macro cdebug_log which calls cdebug *only* if the debug level is active. --- bootstrap/refactor.sed | 3 + crlcore/src/ccore/AllianceLibrary.cpp | 4 +- crlcore/src/ccore/Catalog.cpp | 2 +- crlcore/src/ccore/RoutingLayerGauge.cpp | 10 +- .../src/ccore/bookshelf/BookshelfParser.cpp | 24 +- crlcore/src/ccore/toolbox/RoutingPads.cpp | 2 +- crlcore/src/pyCRL/PyAcmSigda.cpp | 2 +- crlcore/src/pyCRL/PyAllianceFramework.cpp | 30 +- crlcore/src/pyCRL/PyAllianceLibrary.cpp | 6 +- crlcore/src/pyCRL/PyBanner.cpp | 4 +- crlcore/src/pyCRL/PyBlif.cpp | 2 +- crlcore/src/pyCRL/PyCRL.cpp | 6 +- crlcore/src/pyCRL/PyCatalogState.cpp | 2 +- crlcore/src/pyCRL/PyCellGauge.cpp | 2 +- crlcore/src/pyCRL/PyEnvironment.cpp | 6 +- crlcore/src/pyCRL/PyIspd05.cpp | 2 +- crlcore/src/pyCRL/PyRoutingGauge.cpp | 20 +- crlcore/src/pyCRL/PyRoutingLayerGauge.cpp | 12 +- crlcore/src/pyCRL/PyToolBox.cpp | 2 +- crlcore/src/pyCRL/PyToolEngine.cpp | 6 +- documentation/UsersGuide/UsersGuide.html | 20 +- documentation/UsersGuide/UsersGuide.pdf | 668 +++++++++--------- etesian/src/AddFeeds.cpp | 14 +- etesian/src/Configuration.cpp | 2 +- etesian/src/EtesianEngine.cpp | 2 +- etesian/src/PyEtesian.cpp | 2 +- etesian/src/PyEtesianEngine.cpp | 8 +- etesian/src/PyGraphicEtesianEngine.cpp | 4 +- hurricane/src/hurricane/BasicLayer.cpp | 6 +- hurricane/src/hurricane/Box.cpp | 2 +- hurricane/src/hurricane/Cell.cpp | 32 +- hurricane/src/hurricane/Component.cpp | 10 +- hurricane/src/hurricane/Contact.cpp | 6 +- hurricane/src/hurricane/ContactLayer.cpp | 6 +- hurricane/src/hurricane/DeepNet.cpp | 8 +- hurricane/src/hurricane/DiffusionLayer.cpp | 6 +- hurricane/src/hurricane/Entity.cpp | 8 +- hurricane/src/hurricane/ExtensionGo.cpp | 8 +- hurricane/src/hurricane/ExtensionSlice.cpp | 2 +- hurricane/src/hurricane/Instance.cpp | 12 +- hurricane/src/hurricane/JsonReader.cpp | 32 +- hurricane/src/hurricane/Net.cpp | 10 +- .../src/hurricane/NetExternalComponents.cpp | 4 +- hurricane/src/hurricane/Plug.cpp | 8 +- hurricane/src/hurricane/Quark.cpp | 6 +- hurricane/src/hurricane/RegularLayer.cpp | 6 +- hurricane/src/hurricane/RoutingPad.cpp | 6 +- hurricane/src/hurricane/Rubber.cpp | 6 +- hurricane/src/hurricane/Segment.cpp | 6 +- hurricane/src/hurricane/Signature.cpp | 2 +- hurricane/src/hurricane/Technology.cpp | 6 +- hurricane/src/hurricane/TransistorLayer.cpp | 6 +- hurricane/src/hurricane/UpdateSession.cpp | 16 +- hurricane/src/hurricane/ViaLayer.cpp | 6 +- .../src/hurricane/grenier/json/JsonReader.cpp | 28 +- .../src/hurricane/grenier/json/JsonReader.h | 10 +- hurricane/src/hurricane/grenier/json/Net.cpp | 2 +- .../src/hurricane/hurricane/Collection.h | 6 +- hurricane/src/hurricane/hurricane/Commons.h | 4 + .../src/hurricane/hurricane/JsonObject.h | 12 +- .../src/hurricane/hurricane/JsonWriter.h | 16 +- hurricane/src/isobar/ProxyProperty.cpp | 4 +- hurricane/src/isobar/PyBasicLayer.cpp | 4 +- hurricane/src/isobar/PyBox.cpp | 24 +- hurricane/src/isobar/PyBreakpoint.cpp | 10 +- hurricane/src/isobar/PyCell.cpp | 52 +- hurricane/src/isobar/PyComponent.cpp | 14 +- hurricane/src/isobar/PyContact.cpp | 4 +- hurricane/src/isobar/PyContactLayer.cpp | 2 +- hurricane/src/isobar/PyDataBase.cpp | 8 +- hurricane/src/isobar/PyDbU.cpp | 2 +- hurricane/src/isobar/PyDebugSession.cpp | 8 +- hurricane/src/isobar/PyDiffusionLayer.cpp | 2 +- hurricane/src/isobar/PyEntity.cpp | 2 +- hurricane/src/isobar/PyHook.cpp | 12 +- hurricane/src/isobar/PyHorizontal.cpp | 4 +- hurricane/src/isobar/PyHurricane.cpp | 6 +- hurricane/src/isobar/PyHyperNet.cpp | 8 +- hurricane/src/isobar/PyInstance.cpp | 30 +- hurricane/src/isobar/PyInterval.cpp | 22 +- hurricane/src/isobar/PyLayer.cpp | 16 +- hurricane/src/isobar/PyLayerMask.cpp | 6 +- hurricane/src/isobar/PyLibrary.cpp | 8 +- hurricane/src/isobar/PyMaterial.cpp | 6 +- hurricane/src/isobar/PyNet.cpp | 34 +- hurricane/src/isobar/PyNetDirection.cpp | 2 +- .../src/isobar/PyNetExternalComponents.cpp | 10 +- hurricane/src/isobar/PyNetType.cpp | 2 +- hurricane/src/isobar/PyOccurrence.cpp | 14 +- hurricane/src/isobar/PyOrientation.cpp | 2 +- hurricane/src/isobar/PyPad.cpp | 8 +- hurricane/src/isobar/PyPath.cpp | 20 +- hurricane/src/isobar/PyPin.cpp | 4 +- hurricane/src/isobar/PyPinDirection.cpp | 2 +- hurricane/src/isobar/PyPinPlacementStatus.cpp | 2 +- hurricane/src/isobar/PyPlacementStatus.cpp | 2 +- hurricane/src/isobar/PyPlug.cpp | 8 +- hurricane/src/isobar/PyPoint.cpp | 6 +- hurricane/src/isobar/PyQuery.cpp | 30 +- hurricane/src/isobar/PyQueryMask.cpp | 6 +- hurricane/src/isobar/PyReference.cpp | 8 +- hurricane/src/isobar/PyRegularLayer.cpp | 2 +- hurricane/src/isobar/PyRoutingPad.cpp | 22 +- hurricane/src/isobar/PySegment.cpp | 10 +- hurricane/src/isobar/PyTechnology.cpp | 10 +- hurricane/src/isobar/PyTransformation.cpp | 40 +- hurricane/src/isobar/PyTransistorLayer.cpp | 2 +- hurricane/src/isobar/PyUpdateSession.cpp | 6 +- hurricane/src/isobar/PyVertical.cpp | 4 +- hurricane/src/isobar/PyViaLayer.cpp | 2 +- .../src/isobar/hurricane/isobar/PyHurricane.h | 54 +- hurricane/src/viewer/DisplayStyle.cpp | 16 +- hurricane/src/viewer/Graphics.cpp | 4 +- hurricane/src/viewer/PyCellViewer.cpp | 22 +- hurricane/src/viewer/PyDisplayStyle.cpp | 22 +- hurricane/src/viewer/PyDrawingGroup.cpp | 6 +- hurricane/src/viewer/PyDrawingStyle.cpp | 4 +- hurricane/src/viewer/PyGraphics.cpp | 24 +- hurricane/src/viewer/PyHApplication.cpp | 4 +- hurricane/src/viewer/PyHSVr.cpp | 4 +- hurricane/src/viewer/PyViewer.cpp | 4 +- hurricane/src/viewer/SelectCommand.cpp | 2 +- katabatic/src/AutoContact.cpp | 46 +- katabatic/src/AutoContactHTee.cpp | 54 +- katabatic/src/AutoContactTerminal.cpp | 50 +- katabatic/src/AutoContactTurn.cpp | 26 +- katabatic/src/AutoContactVTee.cpp | 34 +- katabatic/src/AutoHorizontal.cpp | 90 +-- katabatic/src/AutoSegment.cpp | 290 ++++---- katabatic/src/AutoSegments.cpp | 36 +- katabatic/src/AutoVertical.cpp | 68 +- katabatic/src/ChipTools.cpp | 8 +- katabatic/src/Configuration.cpp | 2 +- katabatic/src/GCell.cpp | 42 +- katabatic/src/GCellGrid.cpp | 14 +- katabatic/src/KatabaticEngine.cpp | 108 +-- katabatic/src/LayerAssign.cpp | 64 +- katabatic/src/LoadGrByNet.cpp | 224 +++--- katabatic/src/NetConstraints.cpp | 38 +- katabatic/src/NetOptimals.cpp | 12 +- katabatic/src/PyKatabatic.cpp | 2 +- katabatic/src/Session.cpp | 52 +- katabatic/src/katabatic/AutoContact.h | 22 +- katabatic/src/katabatic/AutoSegment.h | 2 +- kite/src/BuildPowerRails.cpp | 74 +- kite/src/DataNegociate.cpp | 34 +- kite/src/KiteEngine.cpp | 36 +- kite/src/Manipulator.cpp | 246 +++---- kite/src/NegociateWindow.cpp | 60 +- kite/src/PreProcess.cpp | 40 +- kite/src/PyGraphicKiteEngine.cpp | 4 +- kite/src/PyKite.cpp | 2 +- kite/src/PyKiteEngine.cpp | 20 +- kite/src/RoutingEvent.cpp | 98 +-- kite/src/RoutingEventQueue.cpp | 6 +- kite/src/RoutingPlane.cpp | 4 +- kite/src/SegmentFsm.cpp | 160 ++--- kite/src/Session.cpp | 16 +- kite/src/Track.cpp | 46 +- kite/src/TrackElement.cpp | 4 +- kite/src/TrackElements.cpp | 6 +- kite/src/TrackFixedSegment.cpp | 6 +- kite/src/TrackSegment.cpp | 152 ++-- kite/src/TrackSegmentCost.cpp | 22 +- kite/src/Tracks.cpp | 26 +- kite/src/kite/RoutingEvent.h | 2 +- knik/src/Edge.cpp | 2 +- knik/src/Graph.cpp | 62 +- knik/src/MatrixVertex.cpp | 4 +- unicorn/src/PyUnicorn.cpp | 2 +- unicorn/src/PyUnicornGui.cpp | 8 +- unicorn/src/cgt.py | 2 +- 172 files changed, 2133 insertions(+), 2144 deletions(-) create mode 100644 bootstrap/refactor.sed diff --git a/bootstrap/refactor.sed b/bootstrap/refactor.sed new file mode 100644 index 00000000..31f8f7c2 --- /dev/null +++ b/bootstrap/refactor.sed @@ -0,0 +1,3 @@ +s|cdebug\.log(\([0-9]*\),\([0-9]*\))|cdebug_log(\1,\2)| +s|cdebug\.log(\([0-9]*\))|cdebug_log(\1,0)| +s|cdebug\.tabw(\([0-9]*\),\(-*[0-9]*\))|cdebug_tabw(\1,\2)| diff --git a/crlcore/src/ccore/AllianceLibrary.cpp b/crlcore/src/ccore/AllianceLibrary.cpp index fa9d8d15..18ec778a 100644 --- a/crlcore/src/ccore/AllianceLibrary.cpp +++ b/crlcore/src/ccore/AllianceLibrary.cpp @@ -132,7 +132,7 @@ namespace CRL { , DataBase::CreateLib|DataBase::WarnCreateLib ); AllianceLibrary* aLibrary = NULL; - cdebug.log(19) << "| " << libDbPath << " : " << library << endl; + cdebug_log(19,0) << "| " << libDbPath << " : " << library << endl; if (library) { aLibrary = af->getAllianceLibrary( library ); @@ -151,7 +151,7 @@ namespace CRL { if (not library) library = aLibrary->getLibrary(); } - cdebug.log(19) << "| Associates to: " << aLibrary << endl; + cdebug_log(19,0) << "| Associates to: " << aLibrary << endl; if (aLibrary->getLibrary() != library) { cerr << Warning( "JsonAllianceLibrary::toData(): Underlying Hurricane Library discrepency for \"%s\".\n" diff --git a/crlcore/src/ccore/Catalog.cpp b/crlcore/src/ccore/Catalog.cpp index 15acd735..bebb29fb 100644 --- a/crlcore/src/ccore/Catalog.cpp +++ b/crlcore/src/ccore/Catalog.cpp @@ -436,7 +436,7 @@ namespace CRL { Catalog::State* state = get( stack, "_state" ); CatalogProperty* property = NULL; - cdebug.log(19) << "topDBo:" << dbo << endl; + cdebug_log(19,0) << "topDBo:" << dbo << endl; Cell* cell = dynamic_cast( dbo ); if (cell) { diff --git a/crlcore/src/ccore/RoutingLayerGauge.cpp b/crlcore/src/ccore/RoutingLayerGauge.cpp index db76413d..59acd6c4 100644 --- a/crlcore/src/ccore/RoutingLayerGauge.cpp +++ b/crlcore/src/ccore/RoutingLayerGauge.cpp @@ -207,17 +207,17 @@ namespace CRL { unsigned RoutingLayerGauge::getTrackIndex ( DbU::Unit start, DbU::Unit stop, DbU::Unit position, unsigned mode ) const { - cdebug.log(100,1) << "RoutingLayerGauge::getTrackIndex ( " << position << " )" << endl; + cdebug_log(100,1) << "RoutingLayerGauge::getTrackIndex ( " << position << " )" << endl; long modulo; long depth; divide ( position-start, depth, modulo ); - cdebug.log(100) << "depth := " << depth << endl; + cdebug_log(100,0) << "depth := " << depth << endl; if ( depth < 0 ) { - cdebug.tabw(100,-1); + cdebug_tabw(100,-1); return 0; // throw Error ( negativeIndex @@ -239,7 +239,7 @@ namespace CRL { unsigned int tracksNumber = getTrackNumber(start,stop); if ( (unsigned)depth >= tracksNumber ) { - cdebug.tabw(100,-1); + cdebug_tabw(100,-1); return (tracksNumber > 0) ? tracksNumber-1 : 0; // throw Error ( overflowIndex // , getString(this).c_str() @@ -249,7 +249,7 @@ namespace CRL { // ); } - cdebug.tabw(100,-1); + cdebug_tabw(100,-1); return depth; } diff --git a/crlcore/src/ccore/bookshelf/BookshelfParser.cpp b/crlcore/src/ccore/bookshelf/BookshelfParser.cpp index dbffbbe9..1e017f7d 100644 --- a/crlcore/src/ccore/bookshelf/BookshelfParser.cpp +++ b/crlcore/src/ccore/bookshelf/BookshelfParser.cpp @@ -318,7 +318,7 @@ Name BKParser::getNewNetName() bool BKParser::isNumber ( char* token ) { - cdebug.log(100) << "isNumber = " << token; + cdebug_log(100,0) << "isNumber = " << token; unsigned i = 0; char tok; @@ -330,7 +330,7 @@ bool BKParser::isNumber ( char* token ) { } bool BKParser::isFloat ( char* token ) { - cdebug.log(100) << "isFloat = " << token; + cdebug_log(100,0) << "isFloat = " << token; unsigned i = 0; char tok; @@ -343,7 +343,7 @@ bool BKParser::isFloat ( char* token ) { } bool BKParser::isName ( char* token ) { - cdebug.log(100) << "isName = " << token; + cdebug_log(100,0) << "isName = " << token; unsigned i = 0; char tok; @@ -358,7 +358,7 @@ bool BKParser::isName ( char* token ) { } bool BKParser::isSymetry ( char* token ) { - cdebug.log(100) << "isSymetry = " << token; + cdebug_log(100,0) << "isSymetry = " << token; if ( ( ( token[0] == 'X' ) && ( token[1] == char(0) ) ) || ( ( token[0] == 'Y' ) && ( token[1] == char(0) ) ) || ( ( token[0] == 'R' ) && ( token[1] == '9' ) && ( token[2] == '0' ) && ( token[3] == char(0) ) ) ) @@ -366,7 +366,7 @@ bool BKParser::isSymetry ( char* token ) { return false; } bool BKParser::isDirection ( char* token ) { - cdebug.log(100) << "isDirection = " << token; + cdebug_log(100,0) << "isDirection = " << token; if ( ( ( token[0] == 'I' ) || ( token[0] == 'O' ) || ( token[0] == 'B' ) ) && ( token[1] == char(0) ) ) return true; @@ -381,7 +381,7 @@ bool BKParser::ScanAux () // The Aux record looks like : // RowBasedPlacement : .nodes .nets .wts .pl .scl // ********************************************************************************************************** - cdebug.log(100) << "ScanAux = " << _buffer; + cdebug_log(100,0) << "ScanAux = " << _buffer; // *********************** // Patterns initialization @@ -441,7 +441,7 @@ bool BKParser::ScanNum ( unsigned& num ) // The NodeNum record looks like : // NumNodes : // ******************************* - cdebug.log(100) << "ScanNum = " << _buffer; + cdebug_log(100,0) << "ScanNum = " << _buffer; char *p_type, *p_num; if ( ( ( p_type = strtok ( _buffer, "\t \n:" ) ) != NULL ) && @@ -460,7 +460,7 @@ bool BKParser::ScanDegree ( unsigned& degree, Name& netName ) // The NetDregree record looks like : // NetDegree : [netName] // ********************************** - cdebug.log(100) << "ScanDegree = " << _buffer; + cdebug_log(100,0) << "ScanDegree = " << _buffer; bool mDegree = false; bool mName = false; @@ -502,7 +502,7 @@ bool BKParser::ScanNodes ( Name& name, DbU::Unit& width, DbU::Unit& height, bool // The Node record looks like : // [terminal] // ************************************** - cdebug.log(100) << "ScanNodes = " << _buffer; + cdebug_log(100,0) << "ScanNodes = " << _buffer; char *p_name, *p_width, *p_height, *p_term; if ( ( ( p_name = strtok ( _buffer, "\t \n" ) ) != NULL ) && @@ -528,7 +528,7 @@ bool BKParser::ScanNets ( Name& insName, Net::Direction& dir, DbU::Unit& dx, DbU // The Net record looks like : // NetDegree : // ********************************* - cdebug.log(100) << "ScanNets = " << _buffer; + cdebug_log(100,0) << "ScanNets = " << _buffer; bool mName = false; bool mDirection = false; @@ -580,7 +580,7 @@ bool BKParser::ScanWts ( Name& name, unsigned& weight ) // The Weight record looks like : // // ****************************** - cdebug.log(100) << "ScanWts = " << _buffer; + cdebug_log(100,0) << "ScanWts = " << _buffer; //char *p_x, *p_y, *p_model, *p_name, *p_transf; @@ -622,7 +622,7 @@ bool BKParser::ScanPl ( Name& name, DbU::Unit& x, DbU::Unit& y, Transformation:: // The Placement record looks like : // : [FIXED] // ************************************* - cdebug.log(100) << "ScanPl = " << _buffer; + cdebug_log(100,0) << "ScanPl = " << _buffer; char *p_name, *p_x, *p_y, *p_orient, *p_fixed; if ( ( ( p_name = strtok ( _buffer, "\t \n" ) ) != NULL ) && diff --git a/crlcore/src/ccore/toolbox/RoutingPads.cpp b/crlcore/src/ccore/toolbox/RoutingPads.cpp index 42dde098..960fdf4d 100644 --- a/crlcore/src/ccore/toolbox/RoutingPads.cpp +++ b/crlcore/src/ccore/toolbox/RoutingPads.cpp @@ -208,7 +208,7 @@ void createPlacedRoutingPadsAndPinsRing ( Cell* top_cell ) netOccurrence = Occurrence(net); for_each_occurrence ( plugOccurrence, HyperNet(netOccurrence).getLeafPlugOccurrences() ) { - cdebug.log(109,1) << "Creating Routing Pad " << plugOccurrence << endl; + cdebug_log(109,1) << "Creating Routing Pad " << plugOccurrence << endl; cerr << RoutingPad::create ( net, plugOccurrence, RoutingPad::BiggestArea ) << endl; //ltraceout(58); end_for; diff --git a/crlcore/src/pyCRL/PyAcmSigda.cpp b/crlcore/src/pyCRL/PyAcmSigda.cpp index 618a2e4f..5b7140ba 100644 --- a/crlcore/src/pyCRL/PyAcmSigda.cpp +++ b/crlcore/src/pyCRL/PyAcmSigda.cpp @@ -55,7 +55,7 @@ extern "C" { static PyObject* PyAcmSigda_load ( PyObject*, PyObject* args ) { - cdebug.log(30) << "PyAcmSigda_load()" << endl; + cdebug_log(30,0) << "PyAcmSigda_load()" << endl; Cell* cell = NULL; diff --git a/crlcore/src/pyCRL/PyAllianceFramework.cpp b/crlcore/src/pyCRL/PyAllianceFramework.cpp index 56c44fd4..85d3bc9e 100644 --- a/crlcore/src/pyCRL/PyAllianceFramework.cpp +++ b/crlcore/src/pyCRL/PyAllianceFramework.cpp @@ -70,7 +70,7 @@ extern "C" { static PyObject* PyAllianceFramework_create ( PyObject*, PyObject* args ) { - cdebug.log(30) << "PyAllianceFramework_create()" << endl; + cdebug_log(30,0) << "PyAllianceFramework_create()" << endl; AllianceFramework* af = NULL; PyAllianceFramework* pyAf = NULL; @@ -96,7 +96,7 @@ extern "C" { static PyObject* PyAllianceFramework_get ( PyObject* args ) { - cdebug.log(30) << "PyAllianceFramework_get()" << endl; + cdebug_log(30,0) << "PyAllianceFramework_get()" << endl; AllianceFramework* af = NULL; PyAllianceFramework* pyAf = NULL; @@ -116,7 +116,7 @@ extern "C" { static PyObject* PyAllianceFramework_getEnvironment ( PyAllianceFramework* self ) { - cdebug.log(30) << "PyAllianceFramework_getEnvironment ()" << endl; + cdebug_log(30,0) << "PyAllianceFramework_getEnvironment ()" << endl; Environment* env = NULL; @@ -134,7 +134,7 @@ extern "C" { static PyObject* PyAllianceFramework_getLibrary ( PyAllianceFramework* self, PyObject* args ) { - cdebug.log(30) << "PyAllianceFramework_getLibrary()" << endl; + cdebug_log(30,0) << "PyAllianceFramework_getLibrary()" << endl; Library* lib = NULL; @@ -164,7 +164,7 @@ extern "C" { static PyObject* PyAllianceFramework_getAllianceLibrary ( PyAllianceFramework* self, PyObject* args ) { - cdebug.log(30) << "PyAllianceFramework_getAllianceLibrary()" << endl; + cdebug_log(30,0) << "PyAllianceFramework_getAllianceLibrary()" << endl; AllianceLibrary* alib = NULL; @@ -199,7 +199,7 @@ extern "C" { static PyObject* PyAllianceFramework_getCell ( PyAllianceFramework* self, PyObject* args ) { - cdebug.log(30) << "PyAllianceFramework_getCell ()" << endl; + cdebug_log(30,0) << "PyAllianceFramework_getCell ()" << endl; char* name = NULL; Cell* cell = NULL; @@ -222,7 +222,7 @@ extern "C" { static PyObject* PyAllianceFramework_saveCell ( PyAllianceFramework* self, PyObject* args ) { - cdebug.log(30) << "PyAllianceFramework_saveCell ()" << endl; + cdebug_log(30,0) << "PyAllianceFramework_saveCell ()" << endl; HTRY @@ -243,7 +243,7 @@ extern "C" { static PyObject* PyAllianceFramework_createCell ( PyAllianceFramework* self, PyObject* args ) { - cdebug.log(30) << "PyAllianceFramework_createCell ()" << endl; + cdebug_log(30,0) << "PyAllianceFramework_createCell ()" << endl; char* name = NULL; Cell* cell = NULL; @@ -265,7 +265,7 @@ extern "C" { static PyObject* PyAllianceFramework_createLibrary ( PyAllianceFramework* self, PyObject* args ) { - cdebug.log(30) << "PyAllianceFramework_createLibrary()" << endl; + cdebug_log(30,0) << "PyAllianceFramework_createLibrary()" << endl; AllianceLibrary* alib = NULL; string libName = ""; @@ -304,7 +304,7 @@ extern "C" { static PyObject* PyAllianceFramework_isPad ( PyAllianceFramework* self, PyObject* args ) { - cdebug.log(30) << "PyAllianceFramework_isPad ()" << endl; + cdebug_log(30,0) << "PyAllianceFramework_isPad ()" << endl; char* name = NULL; @@ -325,7 +325,7 @@ extern "C" { static PyObject* PyAllianceFramework_addRoutingGauge ( PyAllianceFramework* self, PyObject* args ) { - cdebug.log(30) << "PyAllianceFramework_addRoutingGauge ()" << endl; + cdebug_log(30,0) << "PyAllianceFramework_addRoutingGauge ()" << endl; HTRY METHOD_HEAD("AllianceFramework.addRoutingGauge()") @@ -341,7 +341,7 @@ extern "C" { static PyObject* PyAllianceFramework_getRoutingGauge ( PyAllianceFramework* self, PyObject* args ) { - cdebug.log(30) << "PyAllianceFramework_getRoutingGauge ()" << endl; + cdebug_log(30,0) << "PyAllianceFramework_getRoutingGauge ()" << endl; RoutingGauge* rg = NULL; @@ -365,7 +365,7 @@ extern "C" { static PyObject* PyAllianceFramework_addCellGauge ( PyAllianceFramework* self, PyObject* args ) { - cdebug.log(30) << "PyAllianceFramework_addCellGauge ()" << endl; + cdebug_log(30,0) << "PyAllianceFramework_addCellGauge ()" << endl; HTRY METHOD_HEAD("AllianceFramework.addCellGauge()") @@ -381,7 +381,7 @@ extern "C" { static PyObject* PyAllianceFramework_getCellGauge ( PyAllianceFramework* self, PyObject* args ) { - cdebug.log(30) << "PyAllianceFramework_getCellGauge ()" << endl; + cdebug_log(30,0) << "PyAllianceFramework_getCellGauge ()" << endl; CellGauge* rg = NULL; @@ -405,7 +405,7 @@ extern "C" { static PyObject* PyAllianceFramework_loadLibraryCells ( PyAllianceFramework* self, PyObject* args ) { - cdebug.log(30) << "PyAllianceFramework_loadLibraryCells()" << endl; + cdebug_log(30,0) << "PyAllianceFramework_loadLibraryCells()" << endl; unsigned int count = 0; diff --git a/crlcore/src/pyCRL/PyAllianceLibrary.cpp b/crlcore/src/pyCRL/PyAllianceLibrary.cpp index 4bf7baec..581ff66d 100644 --- a/crlcore/src/pyCRL/PyAllianceLibrary.cpp +++ b/crlcore/src/pyCRL/PyAllianceLibrary.cpp @@ -59,7 +59,7 @@ extern "C" { static PyObject* PyAllianceLibrary_getLibrary ( PyAllianceLibrary* self, PyObject* args ) { - cdebug.log(30) << "PyAllianceLibrary_getLibrary()" << endl; + cdebug_log(30,0) << "PyAllianceLibrary_getLibrary()" << endl; Library* lib = NULL; @@ -74,7 +74,7 @@ extern "C" { static PyObject* PyAllianceLibrary_getPath ( PyAllianceLibrary* self, PyObject* args ) { - cdebug.log(30) << "PyAllianceLibrary_getPath()" << endl; + cdebug_log(30,0) << "PyAllianceLibrary_getPath()" << endl; HTRY METHOD_HEAD("AllianceLibrary.getPath()") @@ -114,7 +114,7 @@ extern "C" { DirectHashMethod(PyAllianceLibrary_Hash, PyAllianceLibrary) extern void PyAllianceLibrary_LinkPyType() { - cdebug.log(30) << "PyAllianceLibrary_LinkType()" << endl; + cdebug_log(30,0) << "PyAllianceLibrary_LinkType()" << endl; PyTypeAllianceLibrary.tp_dealloc = (destructor) PyAllianceLibrary_DeAlloc; PyTypeAllianceLibrary.tp_repr = (reprfunc) PyAllianceLibrary_Repr; diff --git a/crlcore/src/pyCRL/PyBanner.cpp b/crlcore/src/pyCRL/PyBanner.cpp index 386639fd..931cf261 100644 --- a/crlcore/src/pyCRL/PyBanner.cpp +++ b/crlcore/src/pyCRL/PyBanner.cpp @@ -57,7 +57,7 @@ extern "C" { static PyObject* PyBanner_new ( PyTypeObject* type, PyObject* args, PyObject* kwArgs ) { - cdebug.log(30) << "PyBanner_new()" << endl; + cdebug_log(30,0) << "PyBanner_new()" << endl; Banner* banner = NULL; PyBanner* pyBanner = (PyBanner*)type->tp_alloc(type,0); @@ -180,7 +180,7 @@ extern "C" { DirectHashMethod(PyBanner_Hash, PyBanner) extern void PyBanner_LinkPyType() { - cdebug.log(30) << "PyBanner_LinkType()" << endl; + cdebug_log(30,0) << "PyBanner_LinkType()" << endl; PyTypeBanner.tp_new = PyBanner_new; PyTypeBanner.tp_dealloc = (destructor)PyBanner_DeAlloc; diff --git a/crlcore/src/pyCRL/PyBlif.cpp b/crlcore/src/pyCRL/PyBlif.cpp index 201d5b8a..c5c25950 100644 --- a/crlcore/src/pyCRL/PyBlif.cpp +++ b/crlcore/src/pyCRL/PyBlif.cpp @@ -55,7 +55,7 @@ extern "C" { static PyObject* PyBlif_load ( PyObject*, PyObject* args ) { - cdebug.log(30) << "PyBlif_load()" << endl; + cdebug_log(30,0) << "PyBlif_load()" << endl; Cell* cell = NULL; diff --git a/crlcore/src/pyCRL/PyCRL.cpp b/crlcore/src/pyCRL/PyCRL.cpp index 55de9efc..45298954 100644 --- a/crlcore/src/pyCRL/PyCRL.cpp +++ b/crlcore/src/pyCRL/PyCRL.cpp @@ -73,7 +73,7 @@ extern "C" { static PyObject* PyVhdl_destroyAllVHDL ( PyObject* module ) { - cdebug.log(30) << "PyVhdl_destroyAllVHDL()" << endl; + cdebug_log(30,0) << "PyVhdl_destroyAllVHDL()" << endl; HTRY EntityExtension::destroyAll(); @@ -103,7 +103,7 @@ extern "C" { // Module Initialization : "initCRL ()" DL_EXPORT(void) initCRL () { - cdebug.log(30) << "initCRL()" << endl; + cdebug_log(30,0) << "initCRL()" << endl; PyBanner_LinkPyType (); PyCatalogState_LinkPyType (); @@ -197,7 +197,7 @@ extern "C" { //PyObject* dictionnary = PyModule_GetDict ( module ); //DbULoadConstants ( dictionnary ); - cdebug.log(30) << "CRL.so loaded " << (void*)&typeid(string) << endl; + cdebug_log(30,0) << "CRL.so loaded " << (void*)&typeid(string) << endl; } diff --git a/crlcore/src/pyCRL/PyCatalogState.cpp b/crlcore/src/pyCRL/PyCatalogState.cpp index 31f5a993..1c2a26f0 100644 --- a/crlcore/src/pyCRL/PyCatalogState.cpp +++ b/crlcore/src/pyCRL/PyCatalogState.cpp @@ -114,7 +114,7 @@ extern "C" { DirectHashMethod(PyCatalogState_Hash, PyCatalogState) extern void PyCatalogState_LinkPyType() { - cdebug.log(30) << "PyCatalogState_LinkType()" << endl; + cdebug_log(30,0) << "PyCatalogState_LinkType()" << endl; PyTypeCatalogState.tp_dealloc = (destructor) PyCatalogState_DeAlloc; PyTypeCatalogState.tp_compare = (cmpfunc) PyCatalogState_Cmp; PyTypeCatalogState.tp_repr = (reprfunc) PyCatalogState_Repr; diff --git a/crlcore/src/pyCRL/PyCellGauge.cpp b/crlcore/src/pyCRL/PyCellGauge.cpp index e50a4575..95d04f2c 100644 --- a/crlcore/src/pyCRL/PyCellGauge.cpp +++ b/crlcore/src/pyCRL/PyCellGauge.cpp @@ -61,7 +61,7 @@ extern "C" { static PyObject* PyCellGauge_create ( PyObject*, PyObject* args ) { - cdebug.log(30) << "PyCellGauge_create()" << endl; + cdebug_log(30,0) << "PyCellGauge_create()" << endl; CellGauge* cg = NULL; PyCellGauge* pyCg = NULL; diff --git a/crlcore/src/pyCRL/PyEnvironment.cpp b/crlcore/src/pyCRL/PyEnvironment.cpp index 55e013c2..9373a82d 100644 --- a/crlcore/src/pyCRL/PyEnvironment.cpp +++ b/crlcore/src/pyCRL/PyEnvironment.cpp @@ -67,7 +67,7 @@ extern "C" { PyObject* PyEnvironment_addSYSTEM_LIBRARY ( PyEnvironment* self, PyObject* args, PyObject* kwArgs ) { - cdebug.log(30) << "PyEnvironment_addSYSTEM_LIBRARY()" << endl; + cdebug_log(30,0) << "PyEnvironment_addSYSTEM_LIBRARY()" << endl; HTRY METHOD_HEAD("Environment.addSYSTEM_LIBRARY()") @@ -113,7 +113,7 @@ extern "C" { PyObject* PyEnvironment_getLIBRARYPath ( PyEnvironment* self, PyObject* args ) { - cdebug.log(30) << "PyEnvironment_getLIBRARYPath()" << endl; + cdebug_log(30,0) << "PyEnvironment_getLIBRARYPath()" << endl; HTRY METHOD_HEAD("Environment.getLIBRARYPath()") @@ -265,7 +265,7 @@ extern "C" { DirectHashMethod(PyEnvironment_Hash, PyEnvironment) extern void PyEnvironment_LinkPyType() { - cdebug.log(30) << "PyEnvironment_LinkType()" << endl; + cdebug_log(30,0) << "PyEnvironment_LinkType()" << endl; PyTypeEnvironment.tp_dealloc = (destructor) PyEnvironment_DeAlloc; PyTypeEnvironment.tp_repr = (reprfunc) PyEnvironment_Repr; diff --git a/crlcore/src/pyCRL/PyIspd05.cpp b/crlcore/src/pyCRL/PyIspd05.cpp index fdf0e30f..4b58a492 100644 --- a/crlcore/src/pyCRL/PyIspd05.cpp +++ b/crlcore/src/pyCRL/PyIspd05.cpp @@ -56,7 +56,7 @@ extern "C" { static PyObject* PyIspd05_load ( PyObject*, PyObject* args ) { - cdebug.log(30) << "PyIspd05_load()" << endl; + cdebug_log(30,0) << "PyIspd05_load()" << endl; Cell* cell = NULL; diff --git a/crlcore/src/pyCRL/PyRoutingGauge.cpp b/crlcore/src/pyCRL/PyRoutingGauge.cpp index f670284f..f2a9050f 100644 --- a/crlcore/src/pyCRL/PyRoutingGauge.cpp +++ b/crlcore/src/pyCRL/PyRoutingGauge.cpp @@ -67,7 +67,7 @@ extern "C" { static PyObject* PyRoutingGauge_create ( PyObject*, PyObject* args ) { - cdebug.log(30) << "PyRoutingGauge_create()" << endl; + cdebug_log(30,0) << "PyRoutingGauge_create()" << endl; RoutingGauge* rg = NULL; PyRoutingGauge* pyRg = NULL; @@ -96,7 +96,7 @@ extern "C" { static PyObject* PyRoutingGauge_getTechnology ( PyRoutingGauge* self ) { - cdebug.log(30) << "PyRoutingGauge_getTechnology()" << endl; + cdebug_log(30,0) << "PyRoutingGauge_getTechnology()" << endl; Technology* technology = NULL; @@ -111,7 +111,7 @@ extern "C" { static PyObject* PyRoutingGauge_getDepth ( PyRoutingGauge* self ) { - cdebug.log(30) << "PyRoutingGauge_getDepth()" << endl; + cdebug_log(30,0) << "PyRoutingGauge_getDepth()" << endl; size_t depth = 0; @@ -126,7 +126,7 @@ extern "C" { static PyObject* PyRoutingGauge_getLayerDepth ( PyRoutingGauge* self, PyObject* args ) { - cdebug.log(30) << "PyRoutingGauge_getLayerDepth()" << endl; + cdebug_log(30,0) << "PyRoutingGauge_getLayerDepth()" << endl; size_t depth = 0; @@ -153,7 +153,7 @@ extern "C" { static PyObject* PyRoutingGauge_getLayerGauge ( PyRoutingGauge* self, PyObject* args ) { - cdebug.log(30) << "PyRoutingGauge_getLayerGauge()" << endl; + cdebug_log(30,0) << "PyRoutingGauge_getLayerGauge()" << endl; RoutingLayerGauge* rlg = NULL; @@ -188,7 +188,7 @@ extern "C" { static PyObject* PyRoutingGauge_getLayerDirection ( PyRoutingGauge* self, PyObject* args ) { - cdebug.log(30) << "PyRoutingGauge_getLayerDirection()" << endl; + cdebug_log(30,0) << "PyRoutingGauge_getLayerDirection()" << endl; unsigned int direction = 0; @@ -219,7 +219,7 @@ extern "C" { static PyObject* PyRoutingGauge_getLayerPitch ( PyRoutingGauge* self, PyObject* args ) { - cdebug.log(30) << "PyRoutingGauge_getLayerPitch()" << endl; + cdebug_log(30,0) << "PyRoutingGauge_getLayerPitch()" << endl; DbU::Unit pitch = 0; @@ -250,7 +250,7 @@ extern "C" { static PyObject* PyRoutingGauge_getRoutingLayer ( PyRoutingGauge* self, PyObject* args ) { - cdebug.log(30) << "PyRoutingGauge_getRoutingLayer()" << endl; + cdebug_log(30,0) << "PyRoutingGauge_getRoutingLayer()" << endl; Layer* layer = NULL; @@ -277,7 +277,7 @@ extern "C" { static PyObject* PyRoutingGauge_getContactLayer ( PyRoutingGauge* self, PyObject* args ) { - cdebug.log(30) << "PyRoutingGauge_getContactLayer()" << endl; + cdebug_log(30,0) << "PyRoutingGauge_getContactLayer()" << endl; Layer* layer = NULL; @@ -304,7 +304,7 @@ extern "C" { PyObject* PyRoutingGauge_addLayerGauge ( PyRoutingGauge* self, PyObject* args ) { - cdebug.log(30) << "PyRoutingGauge_addLayerGauge()" << endl; + cdebug_log(30,0) << "PyRoutingGauge_addLayerGauge()" << endl; HTRY METHOD_HEAD("RoutingGauge.addLayerGauge()") diff --git a/crlcore/src/pyCRL/PyRoutingLayerGauge.cpp b/crlcore/src/pyCRL/PyRoutingLayerGauge.cpp index b7418878..a50a1eb0 100644 --- a/crlcore/src/pyCRL/PyRoutingLayerGauge.cpp +++ b/crlcore/src/pyCRL/PyRoutingLayerGauge.cpp @@ -60,7 +60,7 @@ extern "C" { static PyObject* PyRoutingLayerGauge_create ( PyObject*, PyObject* args ) { - cdebug.log(30) << "PyRoutingLayerGauge_create()" << endl; + cdebug_log(30,0) << "PyRoutingLayerGauge_create()" << endl; RoutingLayerGauge* rlg = NULL; PyRoutingLayerGauge* pyRlg = NULL; @@ -140,7 +140,7 @@ extern "C" { static PyObject* PyRoutingLayerGauge_getLayer ( PyRoutingLayerGauge* self ) { - cdebug.log(30) << "PyRoutingLayerGauge_getLayer()" << endl; + cdebug_log(30,0) << "PyRoutingLayerGauge_getLayer()" << endl; Layer* layer = NULL; @@ -155,7 +155,7 @@ extern "C" { static PyObject* PyRoutingLayerGauge_getBlockageLayer ( PyRoutingLayerGauge* self ) { - cdebug.log(30) << "PyRoutingLayerGauge_getBlockageLayer()" << endl; + cdebug_log(30,0) << "PyRoutingLayerGauge_getBlockageLayer()" << endl; Layer* layer = NULL; @@ -170,7 +170,7 @@ extern "C" { static PyObject* PyRoutingLayerGauge_getTrackNumber ( PyRoutingLayerGauge* self, PyObject* args ) { - cdebug.log(30) << "PyRoutingLayerGauge_getTrackNumber()" << endl; + cdebug_log(30,0) << "PyRoutingLayerGauge_getTrackNumber()" << endl; unsigned int trackNumber = 0; @@ -194,7 +194,7 @@ extern "C" { static PyObject* PyRoutingLayerGauge_getTrackIndex ( PyRoutingLayerGauge* self, PyObject* args ) { - cdebug.log(30) << "PyRoutingLayerGauge_getTrackIndex()" << endl; + cdebug_log(30,0) << "PyRoutingLayerGauge_getTrackIndex()" << endl; unsigned int trackIndex = 0; @@ -232,7 +232,7 @@ extern "C" { static PyObject* PyRoutingLayerGauge_getTrackPosition ( PyRoutingLayerGauge* self, PyObject* args ) { - cdebug.log(30) << "PyRoutingLayerGauge_getTrackPosition()" << endl; + cdebug_log(30,0) << "PyRoutingLayerGauge_getTrackPosition()" << endl; DbU::Unit trackPosition = 0; diff --git a/crlcore/src/pyCRL/PyToolBox.cpp b/crlcore/src/pyCRL/PyToolBox.cpp index 6c7b7aeb..db2f98e0 100644 --- a/crlcore/src/pyCRL/PyToolBox.cpp +++ b/crlcore/src/pyCRL/PyToolBox.cpp @@ -70,7 +70,7 @@ extern "C" { extern PyObject* PyToolBox_createPartRing ( PyObject* module, PyObject* args ) { - cdebug.log(30) << "PyToolBox_createPartRing ()" << endl; + cdebug_log(30,0) << "PyToolBox_createPartRing ()" << endl; HTRY PyObject* arg0; diff --git a/crlcore/src/pyCRL/PyToolEngine.cpp b/crlcore/src/pyCRL/PyToolEngine.cpp index 51daba1f..99691101 100644 --- a/crlcore/src/pyCRL/PyToolEngine.cpp +++ b/crlcore/src/pyCRL/PyToolEngine.cpp @@ -46,7 +46,7 @@ extern "C" { static PyObject* PyToolEngine_get ( PyObject*, PyObject* args, PyObject* kwArgs ) { - cdebug.log(30) << "PyToolEngine_get()" << endl; + cdebug_log(30,0) << "PyToolEngine_get()" << endl; HTRY PyObject* pyCell = NULL; @@ -98,7 +98,7 @@ extern "C" { static PyObject* PyToolEngine_destroyAll ( PyObject* ) { - cdebug.log(30) << "PyToolEngine_destroyAll()" << endl; + cdebug_log(30,0) << "PyToolEngine_destroyAll()" << endl; HTRY ToolEngine::destroyAll(); @@ -110,7 +110,7 @@ extern "C" { static PyObject* PyToolEngine_getCell ( PyToolEngine* self ) { - cdebug.log(30) << "PyToolEngine_getCell ()" << endl; + cdebug_log(30,0) << "PyToolEngine_getCell ()" << endl; Cell* cell = NULL; diff --git a/documentation/UsersGuide/UsersGuide.html b/documentation/UsersGuide/UsersGuide.html index 31b835e9..b22602be 100644 --- a/documentation/UsersGuide/UsersGuide.html +++ b/documentation/UsersGuide/UsersGuide.html @@ -271,15 +271,8 @@ running the ccb installer.

Optional libraries:

    -
  • Lemon (used by the detailed placer)
  • LEF/DEF (from SI2)
-

The Coloquinte component requires the lemon component from coin-or (Coin Or Home). -A repository of coin-or packages backported from Fedora 21 is available here:

-

For other distributions, refer to their own packaging system.


@@ -824,7 +817,8 @@ parametersTable = \ , ('misc.logMode' , TypeBool , True ) , ('misc.verboseLevel1' , TypeBool , False ) , ('misc.verboseLevel2' , TypeBool , True ) - , ('misc.traceLevel' , TypeInt , 1000 ) + , ('misc.minTraceLevel' , TypeInt , 0 ) + , ('misc.maxTraceLevel' , TypeInt , 0 ) ) # Some ordinary Python script... @@ -1568,12 +1562,16 @@ sequences Development/Debug Parameters -misc.traceLevel +misc.minTraceLevel TypeInt 0 -Display trace information below that level -(ltrace stream) +misc.maxTraceLevel +TypeInt +0 + +Display trace information between those two +levels (cdebug stream) misc.catchCore TypeBool diff --git a/documentation/UsersGuide/UsersGuide.pdf b/documentation/UsersGuide/UsersGuide.pdf index 5159e71a..5f0c3589 100644 --- a/documentation/UsersGuide/UsersGuide.pdf +++ b/documentation/UsersGuide/UsersGuide.pdf @@ -89,22 +89,17 @@ Q endstream endobj -92 0 obj -<> +88 0 obj +<> stream -xYYoF~`Đ -kŽɾDl(4n݇ER1r=]  -ήbHH%itshy1U%"ij}6kj7_hu21B"KEs֗94FZk8b80\Sm>B\s'cD.b4DM̨DΌTX)Z=GGV]feiT !hH]mނpJA E*y#-|2*?[YG1o/ssT~1^_*/vy]YocYl"ivя,zYTu{r -S/|vVO6U\{/WXJ3UvRDs1X0}~2=XS&!vP}37y5NS56gV:/L=h(x -"N>^1%zp8U+g:2 6c -B1F+k{sc`e$ѹqRh훻3{_Gebu>>Cv\v@n'<վJ\>4x?w s'\f qIXmV9`z mn]>@!`*Ĩ#!Cm*^0Y#Mxq%UӸ3 n!v@[X)^i󭿫|y? whTVpSǺ5h +Ek-daciUhRǻz:7CZ +xڝWQs6~Per:$!} "͵CN\cq&+$@$tt^zg2I->f!TeT.HlvͣՅכd.Kr"pKa.|Ofz@c8 BW:[ܷb8B[8}a*^B|PIXZ]:RH2^*ǼUOt:bk6_Z|)A(X HM//OV{wOz^=}y|{+ӷ +a6}x1 iX%KfdVdvq$z9:IM^&Ϫ#t*4oM%Pe"B5"+)`x+,;PeF[8v/\- %h#\U +nPZXR)t傺N|U'x\bjfi% f`=G_ ||hq%~mU=:曨֩i|_$@ءzFE}Vx&Gt؃X)4/KWf2D9&aoOX5 2kpX]3p6R2csay#e*bstX Ͱz8sښIS?tE施 TaB E+2z&z#kjT+;RZVU(TT&_>}:J25}o|T ,ʐ :`\ܵSf2Y׊Ϫuj.b̻y?1/ +FPxo1Y1s:s8Zg>KA3g?0fc\[odtOnsh`Si#Vp!x8FP ;O endstream endobj -95 0 obj +91 0 obj <> stream x[mo_"f߸K~*(xHH6-˥/kore0drٙgfghXd%i.+"hP4(A×bΫ6k8 y}qۀKX",\4\7WgIĸ%{O6%bF< y&S"RyUܢ,M—-_fgĥH%#a&0^$X$J`AxXA4lk벰 x@(#i.6GV,lW޼^+><0IA8`&Ǐ?hA#[jڬ,{BpI?`So(fZ:bE fLo1""lک*i!svA& )* ) b7ն,wgQ273@<q*Lu(b`p)u*9QimZswUeƹ1w-Z0 3ʚ/\M' u#.ʝ53F=C2f14=4G @@ -120,7 +115,7 @@ p\ U3/ZǶ"6#)slr D.'Ǫy[UF wp]F:AYT_+KtbFc=$$L̺^nK:Yip3iUٺXtP4ŷ vFD _$ LIx_-]{9C0RH/2z2MN݀p/Rw؋ endstream endobj -99 0 obj +95 0 obj <> stream xڵY[s۸~`C3;SJlniRx=ulIȑ"u}pK$q988|o5lO  4ư4jdPа|R\|8+2ɳc AgEcS58HnհKf3+Gǥ Oz}J {ᜄ^Uv;*;. =Ȼ*IIv$OB)ګ r1ɬ(a͢Bfɖ2ge4Ɨz<;f")ҦޱũmU3űc则gТLΙM7c89RiMO|@!b~w*)a=UmX1O?Eg܃Xbhť Z"%Fy`!9ϦO$M lB4>+y@YXE?Ƴ󸑚H8 ?Vy|լaBr-(-B 9BOİ?W͗lahYm-϶Mkn{a;<q#Ge>HV2ÅXt`M|g]0[e9`tisrQEw)G؏:? 6VBzmDN$!].quyʢ 0Rm{*_ 8i@`Ae"2^w;H|~M6ߕvy9s٢0\Qаf" @@ -133,7 +128,7 @@ o] ~e> stream xZ[s6~_2w#HLw(TD*zUD\II=n;;^ccq[]{7`/Eazfހ{O<ڬ-d@ԧhM$_7'8GS15$ j% ?CQ̼zMk/xR99PM ~*+4IrQjimjAhy S#5 $c!<5[h\f0ÓAL| [‰p'`BT @@ -146,7 +141,7 @@ q Bfu+7_a'u@|'p 7tuK,?{PcXJwn$Ũ0yEhn'j{IdB r8f4/fei0+?Km g#Kc&Ƞ2S=:/uTV8XDDVҧ#N@7#1Q.E%0(ʼ VTy>n T E%izä{ vq$̤ŭҀ^7%b C^.!h-T3.8\,Izyv!׏2$Mmp7(e].Dn]k$NeEwrl7+<[u,v+WԤμe V{sٞѽڀL~0r4M"\D2G }_0W`ꁅuG/Dvip$ 00P%Ԩ9Ⱥ:`w CpYlN`j<_?j endstream endobj -113 0 obj +109 0 obj <>/Length 64>> stream @@ -156,16 +151,16 @@ x 9\\\ܔ endstream endobj -117 0 obj +113 0 obj <>>> +420]/Matrix[1 0 0 1 0 0]/Resources<>>> stream xYnF }W15`yA[6uܮmd ߗfFsHlQ$ϙCά2 pqiۧF%tk;|~I*pO$s79;ӵ(5JBA?Ƈ@oaZYZI=sHyWnFK!H3,RWx!-+ c&c]9"ՠ%Vl![iH\q=Yɢ!7BLϢnUBIz(k<(dǫ/ ;wCipFт[>%dk1]`̺FI[ԛ" zʔ-d 죧_J eY(e?c?mdoc %mx`DulǼZbT" =^U8Ift bUA"aaOf=%¡-~vE6"6żhZa m4m>g< ==ȖB"p-wB|X{#)if}޳;#MْH )e<_'55|@>znjAJ:h'hs13V IyxCBXЌh/NRVc(ub lHDLÓ"LBrM!B~Ș I>A Zِ '9HHo$s%ѐ)y-wȒDDWzft\#S0ƅTI4>mLƀUbkV@Y'Q[V rd/!U>Q@.&U餩B)$(? ٰZِG'ٯ#ᬅ z~%W'鼃uP«I ZMx>R`#Ve<6~c+ h{˅ c&ƍ&9$ ٲr65MMBZ/a :<(gh!r7[ b)ldžr iZ,ٴF 4fγLxW~!PYF5$_|(rRMty䅝3Z$Sn.bjCZ44.L*TC;EխtV.鋇swaiHMW-ƛXD϶mj ҒhamJ6`p`K,Uqi̝/.yX Uvyj݄O%Yz%#1hWgz ?+4y8=#uͫL6+ֽ5g DrtXk˜$veQh WRXWc6)^A׳VtJriW ƔY9wǭ=L@M("܏?_^p <_C#:'&5ZCTq(4nhQ2s8Ͻn<=y|b\G;.kfB*&/bQ(|Bwǚ)!鹔d*})+'+sj(@xº=ȭ5V{f:p5-ywJ1 *ۯw oJ Uh_vwcwWKߞ٥o% endstream endobj -118 0 obj +114 0 obj <> stream xڝX[D~Wx 8{ټ99v&v:ۻ ]${N]J3ӳj]U˩swK OI'߽M6CzǒH-ᇄdmb?ӿuXC1]Zs[k&Ö8o]W,O˃}z'-%\irQ1);_I 3FDM$BO8UCD2KEr (#2CZ ߱nOnH%|3Ź.=wa7X)MSʿ:s<}טg44\,vCp&Hޏ؜V,xpNs.z&'$Ld&JSdF2VwLykt͈1Nm+I.(}4 @@ -174,7 +169,7 @@ xڝX[ [z=z'4F8612|H[Dǔ$'M@C^׈Pڮ+7AVѹ>-1yݾ\Z,y 卽%K2IdtB> stream xZmo_"*Nk h=JtD*nZ!8wf߸)K,r83;PѯdUtuw "* STFݏifE슮j)KƯvx& WjBU<;ӷNDϒ'qKv>>.׈~s)%R]{PE`%Y8dJ陙hu5m[.u,*0 ׮0NFKZB0x @ 7r)ho~B^oEl+2JbcH0^gfi{k00 lE.vb#$̆H I,pQt2hb4RG1'ҁ[gpa aJ H'rF"]6 a endstream endobj -124 0 obj +120 0 obj <> stream xڭZms۸_jw fhTD*n3$-^/X/"%i#]۳ nX _ 4n89F1ʏ\n48+2ɳpC_հ=!DQ89G'gNҶٕ|,p:. z_=?{ñm~m,$?(\mcDx O4AM JLawRS mcE_ &溚x,%R™Ƹ܁9u'vcMŚ v.2Ki_O<~^TI3[%\͏eM&qyX$ld^nVǻO qM[.4+rFT ٕez`y /yݬmy<ah,fYO'O-؉<9-c$xMFWWhW L"o9aq9;d,Oˣqeۯ[arɗz+جn؟pc-&jnM9gl9V<ɉ3z3NbF:u!e路wWROf @@ -203,7 +198,7 @@ b PC^-|AA 9=;-[ԿV!VO e_ebK`ɴU8Zm7 ,ZW1_P'9Ӧw jGdP>E7K4# DU|-x jK}JN!r@TDS~+L55nv8Ag"[Ur~wQglա6$J ,*CSwwVg'drٰuzR tͪ.e?ܢ!(AP`VFo7B8{UtrwPQsLsٯEAg0MR7apȽUxHn*[L fqwXhcʡXl:LC&vz[]Hzѻ'<=Q`ת m?A%uclA"Fpijdڱ0w&@B4Ur$ڋ|Ntq0l:7n+<:P`؆˭Y^DחdUnhu :zgsQHU,];<`Zf͛-/$|.sJ 5D3 4G`Z{<~7h":HasHJ;ENY^9 ߥ|⹈+6_A endstream endobj -128 0 obj +124 0 obj <> stream xڽXmo6_9+l"z-N @@ -218,19 +213,17 @@ xڽXmo ŕS/8ӿa endstream endobj -133 0 obj -<> +129 0 obj +<> stream -xڽZ{oF>nj\>^JmT\.L;BdQ#pwi. w7(*TUl]-8xRzrqI -*]TW?8ǝn* :Ŀ(̲ s%uij:{uqi,Ft&tM ~(+*Ĵl/)RI1##WJ|tJ0keBo]Sq8E5׾БURq%Z(:h 5c؏_4q0#G\SIL+ɛ§:S&kӂx5N̟v6%6;rC78VC7!79 OxF~OŲ`8% [oư~"弨tEef5A2XhZ9zd.QYv0?Uĭ7:6xWFuU٨0k % -m ~cFS"6ZX;ZgC pR='M>DvD.K"{f;I_f ׂW?O_B>Yo'*r>9nua}|Tlap]3|c |`.FzNG"b(v1&?μ*RTlB W7I/Nt]IKŢA0?Cri&k$m Q- ˆo(%v ۮ5#dL찬0_&)A"J3X^mHfLkj0*sԀܮ5SIJzs-vkhk_T/4r|~vl-![ a8, TN7|M[H)QeZ|C] ^1mA.>CA+ǔɚ6h,ԕV(0gDcqΆ ^CAtPEOE޶YF3zijlve -Sz 7J ڭU*Q`oQ(W ūA;ߌ֮F)ÀK\Nv} 6t8nֵ̂ອ-+ѲI]$ tjMgLάdVQ$BQ8|KZQ@g /n:ь-ѣk-^  ,6FDZې ~\?E!kQ1lStNm@S jMV72k;e{_ziL<x| ^QftfˠA\B])3yK-YBdu'hn}1.w*Ҙzq GNVݎza:mCz_x6;.@Ei={ag,%?p7WC|Z׋ XDB^g54 v樷ӥ0l1bq^⽥f7wACjAK~ >\E]N%=l<7$Ө^|P:\q쏫`(6zfI4ZjdTԋ4`h%TR|c#c8-"* ~ah&lW=?Sag]`'?M_`tZ&8cS2[(23CE8ׯh I/}%|[.?拯g2'a4y<[N68HES]FŕqE;i[|bs]++˨v (#adIUCωD;[ ]_j=P-B%.&ߒ..ֿ|.WR be7|CH>%|z}w[l=!R­Z>mힳJwb)^s;q?`ĹJkDFԴUof|[Qⶇ5 ct%>,Wx.[ -kJ_n!@l\He ,~|X 4!'9QeTRF5J,1E9h?|M0^-_ -NPW.4K/dk!Z9؄ "^(q4At %r? -'Y l(?( ATж-T>i -} FDOM%>k +(cס+N03q3SL֩s9[7j-0Lͩ +xڽZyoF?TN83]:4ehGzWW$"$ZVRdU[Gx]esGȶ[M1GH/@>V2LKe:F jA'%XkhT<սєNMCA;B 8Ѣ0%r5m/hJj$4\1tuq@26aYg,o5\ᨂ,P7 oBe+PIʠLGӻӃA* L@g$+j5vp*/$xF5hg|4I3 $u):fUGٍa7|orkHsBw?( +.'UeG΀-O֮fCIv'?јot,1m|3=Hs 3lˠ5²Y6M7tK@`Hrܮ/Ʌ +?}?I|b7L_-rk=ȣ6 l,N:,"/GԽ£50wBVoB/>D9و6T2EmZ$i<1X4E\D*貛MձߩSqY7saeРfa7qOFgmBQ;(*O96j@c ;RsF)phe͸6gsv+j 4?_Yє p|0\R Yj%e:wYG;KofƖx褩Yz{akMt [x@{MnawCClAK~\?~@|lK>lR|:@v36W1gA& 1)7.q{ETPU?7ECCsA!՛ ~Abpa ب _]61^X<5٩sL miF7uP؂.B./~E'Bʿ9sO/6[ǿ}Y%o:'a,߯ Hw" q`Dˡ]Wg(蹸zĨl?d%Z&W +hHV[ ۓsl}DZ]"yvƖ~߿ߗoL3/6~cۚMTd^MJd/S0lJx#*KECKPvw5j7/{x7;*߶#@`[!B}WifPu/śTIg^~8Cs|oĻlNi_&ɷJ6E' iw^rAvgʖ%PM.[̄ERFx0cd-:9wM%Ekjƀ*[:(e4\R?3Y Sp, +;WZzV37C gA8 +c~05dʃ@9G9^?qM6@TŃw"͠MK ͐V> (c1"Sޗ/=6FoQ[ǎm{o F́J~_1 endstream endobj -140 0 obj +136 0 obj <>/Length 13338>> stream @@ -281,16 +274,16 @@ w[ )Czmo'i؋K-ᙱo7lXZY{ 6떯.zjW7\zʹU5knː ]f-~걯;twNZ}}ʓl0 1RF\[7udN)1g-\K. )xׇw\9֣?F ~|%14\E{Տl?~jfi!jUn0fɤ<6UZ<O~vZ3/U>}Gl_8+8{ZsƅθU4=j;f][W#~EJhu3J&í};3$uxB[x?Ye_ޟ0v֎v^}͈9A[ Ĥ5|f|i77f3(5Sn}]Mֱv qq?|l8O7oR[}Ǟ'=|Fe_'y'Dxğݳt`;*HŠ-:>fOviK*6ڝgT;>Fo:uO|}€n=?6ɮ?,]c\pm귻}on9tI|F'sǗxjW6pI W-j:ˠV:Kkn^0B|{NYcϩI蜅)yb1`R_^PƽvwP篜1\ď5Ι2=[ޞx5F4 ΃hŠw;mj Q0: S"tÔ< X;A[@a,m0%”< @8aJ9A[r@[bi+YYW endstream endobj -142 0 obj +138 0 obj <>>> +351]/Matrix[1 0 0 1 0 0]/Resources<>>> stream x+T03T0A(˥d^U`l`hgf76535t ͍ -\z  endstream endobj -143 0 obj +139 0 obj <> stream xڕXKs6Wp4f,xG$ OS;NzE3Eŷoʾf8gdR(?;qV"&XfʰD̶q?[Gel /״[m~72*$%r[ur]힍*i b_HNÇ;imBf#ZdE'O2#.̌R]V{f/98;jaUc]&.R ȄtS罪tJ +`5Ȃ! K*n7[d s| ,Uђ࿫,1"=7$\^pֽOMmZ+.v<8Ŝ&9E˶`ތpA4SY1 -F=锌9 1#RVROq|85W a @@ -302,7 +295,7 @@ hla 2GkzfM>vұO[bKy ;KzrLN P ~`UW endstream endobj -149 0 obj +145 0 obj <>/Length 52128>> stream @@ -485,15 +478,15 @@ q@!( q@!(!8:/d~18/u endstream endobj -151 0 obj +147 0 obj <>>> +434]/Matrix[1 0 0 1 0 0]/Resources<>>> stream x+T03T0A(˥d^U`bjhgb7161Գ44CC3cb |@ \' endstream endobj -153 0 obj +149 0 obj <> stream xYo~_ @@ -506,7 +499,7 @@ $ ڪټYYe#T_3uSq!Essevg|8^Nf(U}_(QV,k '@2*/|\IDD [A) [ .P&1w &^ ]+<_w\ KMǑЉI0wAU^P>rt\o< PhrW{Ax>WɌhgǴv{`uc`w,BwیE"%y9JxsunmOZxcJ(cY"݋^xM'?Ӕ#EHa"6@tZrL_8drGR-`-MƳ]EW@KkH@D}8-b cz. %PʨR Y$\^+Pabz b^O' endstream endobj -157 0 obj +153 0 obj <> stream xڽZ[s~ϯ`)\f[vKCOCdKR9 T%岑;9=Q @@ -524,9 +517,9 @@ D x|yOO<ѳ_!đ""tK8O׻ieXۨT &| iAhx!ܝIqeѺb~pJh:zL`T%{Zۿ"GSYF8TT8l2IJij ă.-ٶ-tEB]r|Ȗ۽=Vuc/5 ~gʏ8CV}s}rˠ&c!r5@MF dpn@sYd5ކ,C^9;Bʿ1D@W 9f\jx'├Նެ_6MȗOMW+^#לgtPIͻy1g~j23<t#M endstream endobj -168 0 obj +164 0 obj <>>> +267]/Matrix[1 0 0 1 0 0]/Resources<>>> stream xYIo7 ϯ[ Oվ\!) v⍃8 ҟ_ZfÛ4?Q"9_gY޸Ix=>`gݼLBk$Y*V)ӧrLrf,A{8}D2|Y&9Շ)-f瘆Lj.^?0#́f]N^0َaB @@ -542,7 +535,7 @@ x ӧՒܑ*lbĠEe! šӰuRX0_5~2 Us٣SlrNOx`  ։qPPKIli endstream endobj -169 0 obj +165 0 obj <> stream xڍWYo6~P,-"Gʊhp@89a,|3ÍF4JFEJ$ˣۇhkKDHٿ"ˣ")쟿?6նl Kg_#.9t6zNxw..,'#K< <66TQ?gC$8'y6~{We)haB9..DT|޿t_NR:۝Igm lޡw 82FRoa.@$\,*֣X8M_C qCgAW.ו {{?~&ǧǻˊq4%B)D`KOۻS]N}ӵf1I㶩nҽY cBӝ*q{\ N0l,l[Lc &1~j<#rV-5Q3~L1$]`x bĮEe{wgK3'ܯioђe[L8\Y}ym "hK(D "3`U_Ep(k, [amL'˂Ry 9}RABrSzt-=P{K= X,1A_w ^q&8_p!C;롷x$m~0Y_. s @@ -551,7 +544,7 @@ xڍWYo SCf̼k+_/HpA,5b/ endstream endobj -176 0 obj +172 0 obj <> stream xڵks{8 5.a#DB" ЊjgS0"rMPB3&#1 *ԪI %1^Ęlzla?6Yy:$LozF/y8C`;fw+oF\PſdȬgRV2xrr 1B_QcvfHC~]Ȟ2?c endstream endobj -180 0 obj +176 0 obj <> stream xڵ<]FrIe|xĒX." P8تN9RtO Ā*_ʵ"hL7ۊR2t珫a[r5e /V,Ql5W|ڡꮽpUE?[ %)O7XoͣHR GrK2հ*Q:[ÍX"Ǖ")rwaկ'E@_$F4Hʤ#|9?f7<]w=-_C<!2\H %'C<l|S>V';p:BB۸2``c2$$IG0zB|FWHLu tQ6MHr(_#";v۝#l4UCMz"kl}o˦nNx)@e>3M3+f`u-_HDm1Xwey?[5( endstream endobj -183 0 obj +179 0 obj <> stream xڽ[[w~PϦI#MIT$jmĻxK}gpN8hӌb켛}}AfE3>5#"l.̺}VMʮigsk_یe"fttrFZW__p%Kb4[PK_*n,N31ՌOHهg,.rSf"-6K˲")s(9PIR UR.XfGY yLN1ITn}JcՠLSx=Z7Bxcrw)o5j <&u$9NͮΒٷYŌQ_u7ǼM|(r MSOr=)ZE^vI:_/PF/]ϕĭo17ovsKT:-þN? @@ -612,7 +605,7 @@ _ ,PƹuQS]޾~0ǫ89Px s^6]yެv4Ib~8zn 7yAru ˢ}'sM",¸_Y޾=u^2]&ɦ<)N<̯?(^g? endstream endobj -190 0 obj +186 0 obj <>/Length 10116>> stream @@ -672,16 +665,16 @@ J D%)J R@ *HAT"pB= endstream endobj -192 0 obj +188 0 obj <>>> +135]/Matrix[1 0 0 1 0 0]/Resources<>>> stream x+T03T0A(˥d^U`hl 3 B%+DS endstream endobj -193 0 obj +189 0 obj <> stream xڥ[m۶_Ԟ7/FIE*"usOiz'g.#)\.b`,?ljȂG\+<у|<ܬDT{lgᾺ+la-iC]5|_5ֆr:.áVE_?2O HY Gxf`KS`%0? hù4 ICw1{{ltftc?epF2 ';ьHvl1{k^x-J 03w-?sp5\$l0ȥw0Nb|;5]uOuV endstream endobj -196 0 obj +192 0 obj <> stream xڽ[o_ChEGVb9ג74}~<;,E"ki4"|[TRej~\}x`*X_1Neƿym9=5XmZ/+^W$[V7;ÃM<+e{-rc' w3~]eT\e\V_ay9,ry endstream endobj -201 0 obj +197 0 obj <> stream xڽ[m_IC <ҩˑs±/ѻ;.;IIE.G;3ϳ;;˛< щf @@ -746,15 +739,17 @@ xڽ[m Sm|{^ݏ6#,^måEň3E~*chtۇq^{)Ԋ*Ol%4 ;9l"c6d0v #>j.JI/<DqA gDfz5 Ӳmw@`Yv5fvamϊ= qe483&$?vfqq!n]Uu [-2/o}UϚw2Nl.6Q]\}Oaᑎ2:h;T5h~lF-eщ_ LRC}Am, mo$x1+!vi%ƣrBk{ J)@ЇkJ*OG 3㵄!D5J9W:mb9/}9-x5oII[q,b?lIF\ž#\8^zw~ Ύ3푿 o= Uھ ik4/Me?/ǣ= ˼j%8}ά?,λE~'7sýO: endstream endobj -204 0 obj -<> +200 0 obj +<> stream -xڽWn8}WmlNqƅmҢh!b,fC)Kr(&u4C30BÉ -KGrYWKF,H-I0ܒHEݔz^tƕ-ڀf)URSŇtYo6俘19)"ɎsX}-Vh* P<4TBhh"RdCJp3ft2ߔuy(^q0EE"]U@,L1X?%0ϰ!l}nL$uً.vJcLt8(G(u <,U*ܷUm*&TfJWLuul2sQ^޾qV,ZC!|F3c!|iX7kcDV@mNE )>8܏t۽$_FT`e}@GnQSv|4mHG[gQ('$ 8hʨiG50 -oz=80MjEګ-+HoqaǫurT`θW:_.:bp+2u;2Gi!.M)$D}bñQ[0lWF\Tt=c;kp"9|kamTEi1cUui'iʲ~,Of{nupi3VAxTI*GD1F?a[ѰxjcMce(*`q`}!u#n:\_dQya=ŭI|'omW/3"ږ+kZxDvUyصjhy.6)(I=ѢSѝ3W2;N9EbcٸBUnj3-&򀇟`b5lmbqs Ͷ/!թҶD7x3^4zrQwB +xڽWo6~_AyoK7l+ź?G(Kr(x}#("GfH++GtЋ%E % QAƒ"^nݪJ&M_O+WofՋLr0PmTSyHpMh^{,g-+~=_ɪNnz˺s+^c:mn $ۭE/.I]dd<3|`x a=Q.yqrq3qw8Q~m| 'b 9)q< +Rj|]DAspTQ±~]f%UB[Xjo6a.Ls H֥uo zMupaR)y5 !.E"CFOSrpǑ0TyM;߀A:Y mf1ayn&41Hgp`~uχä[/ye;ѓ;^O*>znfyw0MZ̔=♈ QxI?&OxrBH4yE4Lh-F")I+4`E:X.\oUT"~x@ֆV)Pj;#0[D.|qW]gz1u~rݻi!x?zwHj(ϲNV(uE>B6$7"ZpNj=۷]V{yyՐM0vwV5m[>t)|+'m5 endstream endobj -218 0 obj +214 0 obj <>/Length 46926>> stream @@ -896,15 +891,15 @@ rk #<>lu=r}όęmJlg?RmDتVr]ʻ#_M~e=TED$ozJrX.]t|AFԩS)5=w@PcIWNt&o"^q@=1*O +=k۹߷򋪇Z tThS$}q#̶>՜fw'Xu}=x 4ߌ>汻׶- UI*~:>9=xAM|.g<JrhJJBu_c<.Е׶5ͿiNGU1C7?\֭?x=)Ccxg"oKXowrrU]ةk7}͝UsVCiO\c,a3÷rhJ<%4dwUGz~o9kTf돈L-Wz>mVcl@S(c OgĶ(CS.=ޭ۟(zu,jߢ\A;mugix+mٽ]Jf=Ts'\OȦNll>E^Xq-ewVC#V2.~|:R7w8X0$e} /[䰲#q~Yȝ29u{ aqׯngcä!qmD6w2P}ںo=zUk J;Yڜ/kǑkTޒkʌfNWÈ'G;o|8jw|'\Xhv9?ylAR^79Y7=>'ұ_R$Mپh@.cM߫}b͞=50JS;|(M^. zР=YObZ&Zsm4zN]?ũ vVmt+7慊3ZзEB,~,Evg糋lݲe_QV||*KgEҥ'W̡tN1hhH̒qMSW;7(lk56ah[MRfg)a#]*4\e|tMy?a:b_O)~(d $Nܚ㯺vձ̨p#VeڝJׇّĦPdY]|-КNi޼9MIW÷t(Ms~ɏ͌b-r(UOȡKeM$Cl_R̛+QwЦZG//_DVwk䊷W{@tvCq"[7oo]>)&|=jM]Mb|z=#MC Lgej5'4 2L'$zo5%ڬO[] ڼQlW˧XKXRz|&Jj)r9@!BrC !9@!BrC !9@!BrC !9@!BrC !9@!BrC !9@!BrC !9@!BrC !9@!BrC !9@!BrC !9@!BrC !9@!BrC !9@!BrC !9@!BrC !9@!BrC !9@!BrC !9@!BrC !9@!BrC !9@!BrC !9@!BrC !9@!BrC !9@!BrC !9@!BrC !9@!BrC !9@!BrC !9@!BrC !9@!BrC !9@!BrC !9@!BrC !9@!BrC !9@!BrC !9@!BrC !9@!BrC !9@!BrC !9@!BrC !9@!BrC !9@!BrC !9@!BrC !9@!BrC !9@!R.{077sx}%e} endstream endobj -220 0 obj +216 0 obj <>>> +434]/Matrix[1 0 0 1 0 0]/Resources<>>> stream x+T03T0A(˥d^U`bjhgb7161Գ44CC3cb |@ \' endstream endobj -221 0 obj +217 0 obj <> stream xڭXmo6_!,&57GVbZt`٧@ݑ'A%{OH8ĚEۇdW")6:q&2Y$K2I_tmպ]XʬHUw(c*~!tS8$˼tO ˌMyT|HgU @@ -918,7 +913,7 @@ BG {} H`:4Gos",mِ2ޔ.3b6J١83y(ij'""Rn:Dg$bs{y endstream endobj -227 0 obj +223 0 obj <>/Length 28112>> stream @@ -1012,15 +1007,15 @@ k #_C,2H^CSʻ~wqΡީŹbCxaJQo9vX_i2S2tnu wqgYWZzb|[;d%^\Ŷ̽./-!>MT7ZƷ~`Gm0;9>IPۭFRsM;>og{ʾ4 7j~sGFy`0kڜqRT)*2cW}a֑z]{ɪZķXæS%w2b*I~Ydh4ƣCJU։2iҢwm:uWC~ב:W>>> +434]/Matrix[1 0 0 1 0 0]/Resources<>>> stream x+T03T0A(˥d^U`bjhgb7161Գ44CC3cb |@ \' endstream endobj -230 0 obj +226 0 obj <> stream xXM6 WMgb!Q<Җl3EǢMOL'+:;"%$M>'4&%PTKw4QD"q%T$9Mܟr[jrrj{B[t{wbt3x42R̓u |ק2Ή*I|x2gd-rZ VtYxv7m#Ξ8rZOo/M}p{ơѥtFCLTSm !L]}h1^H.\DC @@ -1033,7 +1028,7 @@ R BxDDȮ\HڍBch56YcV>гv5|9]~ [~C}ҎT/y(8d PEAm;fA(%Rl62黇*ưiBn백8vɭgnMiFֺ?Ц6xc;J 80Ah=YYB~pҷ#GdTǬXxA'04e`^̝ endstream endobj -236 0 obj +232 0 obj <>/Length 51544>> stream @@ -1207,15 +1202,15 @@ a C! 4Bff)@)dF;ZBX!Cc!z9@AAAAA'CZ!!r r r rt/b~1/uM endstream endobj -238 0 obj +234 0 obj <>>> +434]/Matrix[1 0 0 1 0 0]/Resources<>>> stream x+T03T0A(˥d^U`bjhgb7161Գ44CC3cb |@ \' endstream endobj -239 0 obj +235 0 obj <> stream x}Vێ0}W>TuZ`}SWUUUwȒ"/93cODP @@ -1224,7 +1219,7 @@ x ,J0 5YLV!m&}LK 5&] 2(&Ɍ‡ׂ8% *?={ endstream endobj -245 0 obj +241 0 obj <>/Length 36813>> stream @@ -1332,15 +1327,15 @@ jx= !BB_{Coo_Gw)9@!9 Cr@x+2j -ʼ endstream endobj -247 0 obj +243 0 obj <>>> +434]/Matrix[1 0 0 1 0 0]/Resources<>>> stream x+T03T0A(˥d^U`bjhgb7161Գ44CC3cb |@ \' endstream endobj -251 0 obj +247 0 obj <>/Length 23997>> stream @@ -1425,21 +1420,21 @@ KFݒ_ 7t d9k~ݒq䖐nɯ6Zl9L#F[ˆ[~kFm| 6[B%窫6;lWS-OvW9S5yoc<O`ċ%-!N܈QfKĒigApMP/EtK~ωCDhċ%[.ѲXX2>-BtɈ ’n KFl tK@]2ed|[-%-Dh@,,薀n!dDba@t %#Z6 K%[.ѲXX2>-BtɈ ’n KFl tK@]2ed|[-%-Dh@,,薀n!dDba@t %#Z6 K%[.ѲXX2>-BtɈ ’n KFl tK@]2ed|[-%-Dh@,,薀n!dDba@t %#Z6 K%[.ѲXX2>-BtɈ ’n KFl tK@]2ed|[-%-Dh@,,薀n!dDba@t %#Z6 K%[.ѲXX2>-BtɈ ’n KFl tK@]2ed|[-%-Dh@,,薀n!dDba@t %#Z6 K%[.ѲXX2>-BtɈ ’n KFl tK@]2ed|[-%-Dh@,,薀n!dDba@t %#Z6 K%[.ѲXX2>-BtɈ ’n KFl tK@]2ed|[-%-Dh@,,tK+[ܪn'v6-[Cn @%+btݼx2v7Z~U_8?uw[og~kz~ [:F;m;s4}o8]msv/{{ɗW?߳/˖=>u>x'_zfNn5;y?WHѣG/[ -o>uԹ޽m=9;gﵲW_xW鮧{(?o~U-Y_}M>}ۂ[?ޜn{>vE{nnTO?o/>[w]r;6Y’!w5x!W}[:z% *]wuOFH[_w|sW׿𮯝]O8i'C?ϻ.ɿ,7u3/[W6=6U9{W;7xͩ}_7ʋG%g^|~g=>r#74 *wG?%嫗ӄqrޱ'^{.k]}y7_ܥO?wKGlG~qW<לĞ9gϾ?5DԿ9λ={|֩GO.FO|/f٠nҢU Ju˾t=I;{ɇ_>_=6hoطkf{e{-g~}>=:n˵r~_o0nr3_ӯ7?_}O ^{ƫ_:9sW77'~f_Y{-7oG_sm^q_1'[-xc}N˞ÿp߸ᨬŇ׾mb\tEuu/nz}7=l^OZtҽ[~j7aL{W}ޓG O/|}6p_:}ƣ87=x_~W7P/,_5_%{L-?F| tL?y)=Gӎةl7H~@[%R *e2W-nl2%е[%R9[%R{i2R;u*etKjy33 endstream endobj -253 0 obj +249 0 obj <>>> +573]/Matrix[1 0 0 1 0 0]/Resources<>>> stream x+T03T0A(˥d^U`jangn7573t B%+oW endstream endobj -254 0 obj +250 0 obj <> stream xڍTM0+,-D"S;>iv&+T@ОL T97C#NPZJlXZ0ܒ€b}Sӹ.//m@XL939ErqP Ƒ7J+\l yZj jH!쯖~ XfXFkVZhQמ<4QmYUXBNQ;"[23]e0GY{j0>/Length 67970>> stream @@ -1645,15 +1640,15 @@ v ^eho avs}!=Y#-}bx8`&rЧj9j97(h1uuR)>Z}uM2mPRaDzׯCG- iL?mu(Wsy䠂&Rc^Z R}FvH &rW9$7Z|lk27k( _V!@c9wEeM$^.KPEKU8>Ѣs0k75rлV'L۔߳YUı!oǢT>{T0199])}rл>9]a.Ohaoo!Tj7Vtt=苐C9 C9 C9 C9 CC{{cz͇fIیy endstream endobj -262 0 obj +258 0 obj <>>> +434]/Matrix[1 0 0 1 0 0]/Resources<>>> stream x+T03T0A(˥d^U`bjhgb7161Գ44CC3cb |@ \' endstream endobj -263 0 obj +259 0 obj <> stream xڥXmF_A{ǾGlcV44JtR~fwvraf噗%(?ii,}CtQNOD5ayh"i4+~խ۪Edf:JH×>]HKRQI] ׈H~J Ϣϑ䙿[T9Q"$ɕۄqF`#kLæj~xHX$;,^k*\۲C4'\6USQf[;1v׵DZGYU}_wfEYa{砳1Qqj[NOX cB1X,sg=ܤ7(OCW%n8 @@ -1665,7 +1660,7 @@ z Gq4aj@i&.Z‘ c=l.\O_gx؅E2ϰ˷>oіSPt?~bf<륞)K|p AKH'( NF3 u:kqfk't邜T DPGp#)FD_~sJAQ endstream endobj -269 0 obj +265 0 obj <>/Length 27018>> stream @@ -1761,15 +1756,15 @@ i f֖,BӥJuBYwҼɟ<}/C_ +=UxVxF~57<߾ǓMWt;?) 9Er69l9U9=T?GJG^BtWr9@!BrC !V{e7尾Wz\ endstream endobj -271 0 obj +267 0 obj <>>> +434]/Matrix[1 0 0 1 0 0]/Resources<>>> stream x+T03T0A(˥d^U`bjhgb7161Գ44CC3cb |@ \' endstream endobj -275 0 obj +271 0 obj <>/Length 50990>> stream @@ -1889,15 +1884,15 @@ b 2×BI!r!!!!'`9އ endstream endobj -277 0 obj +273 0 obj <>>> +434]/Matrix[1 0 0 1 0 0]/Resources<>>> stream x+T03T0A(˥d^U`bjhgb7161Գ44CC3cb |@ \' endstream endobj -278 0 obj +274 0 obj <> stream x}AO0 @@ -1905,7 +1900,7 @@ K %MdGٺdUrhXEmi}U&\5:L BƌJ)SkM p\2D#<:?Xpi endstream endobj -284 0 obj +280 0 obj <>/Length 32929>> stream @@ -2003,16 +1998,16 @@ Y ~\_릓F \]-^R[U)Ƣ)e2YHIrr-,W"6''e{+J@yy?2W)2i,O M endstream endobj -286 0 obj +282 0 obj <>>> +436]/Matrix[1 0 0 1 0 0]/Resources<>>> stream x+T03T0A(˥d^U`bjbgb 716M,]= 036Pp BkH endstream endobj -290 0 obj +286 0 obj <>/Length 26788>> stream @@ -2093,21 +2088,21 @@ W9 }(1ffy~: =[[Wwu><}ړqj9!nPy*[]x:L[?N|rC@?h! 9tCa"r4LA:49C 9@rC !9@!BrC !9@!BrC !9@!BrC !9@!BrC !9@!BrTa] uZ0cDI endstream endobj -292 0 obj +288 0 obj <>>> +434]/Matrix[1 0 0 1 0 0]/Resources<>>> stream x+T03T0A(˥d^U`bjhgb7161Գ44CC3cb |@ \' endstream endobj -293 0 obj +289 0 obj <> stream xeRN0+!]-)I4wN NT8nxQdNƓ8 zl=``#(V 9 =UW}wu_`}p&_mҧNΔPs=kPqP&_:O };?JbTyh,Lv',hT:I.BnNj&ۙ%vPT](jw|hoq_;#2LTfr\EB )԰<+,X;Wc>L1wd,b>%#hLphn ԍJř&͗KK#(Č24|':.2@-(1FTgPh&nN[,4<z endstream endobj -298 0 obj +294 0 obj <> stream xڥks۸{sN/t[ă@KF:sx'$/2MXM#}c| xtq\uppăDk&`Ỹ/rY:r?qroL4)DQi8#բ҂H/_l:87Gs&Mdؽ-8kg41Tz'cRIN>.tb!u>&9zp! E<-Dw5C5` _xe, EP @@ -2127,9 +2122,9 @@ K {s"SAkUowԁ/ ~Ebg(sy4ʽﱉ/ Ԝ ӷ4 endstream endobj -310 0 obj +306 0 obj <>>> +438]/Matrix[1 0 0 1 0 0]/Resources<>>> stream xYKoEϯvq!CK9Y ٵ?z+vuMW5_wUuO>bqxҏ7?r|lnRQyA?ݳy}}}]}P}!RȾ^خ^o _ַ~I/["oH|ƞL#by3xH 5_%W`fFk9jc<:jc {j  YN/ށw>FHQm<9gW}~b}mvbU^UZJ_J$b5[BP^8݋ LilVo&#cff9`h|dd4|d|&+!GjITRiȆ' ; kOtԅfSN(k%U2tTj%QؖA *"1ɇ$cc79lHC_u@?6 hm>WYRڞZ)SSbB_^ЯԈe!2ip<==c1)) ^r[FH)hDVGKM8{P1X317)du2:{l3z~WSxoP!g5>WXJq J+M(5dr @@ -2141,7 +2136,7 @@ h pO-j]g7R,T)*}~H`x{# 0p⣫=9I.pyqUF jɈvh#Q`- \|Bi~[AiB㵊BR0v }q|1f endstream endobj -311 0 obj +307 0 obj <> stream xڽYmoF~4Zr%Y>4eN"UcEHj*$M7$"(!P/3ϼv>:O8*fQ,?8s2N|;/;©V?ߕbUReq<ؕ㟫9RLXn:['Ce)9!??@Sga @@ -2155,7 +2150,7 @@ xڽYmo QE!V~#f9 ]a;GGoT{mD6͝C,zm|i۽Cn0O>ӗ6{]w^5jo,|+ov7VMhsR!8L>/!JX]k P\uKɟ+P}/XfWcC2wH3@pn= $n+.m֟$]~l>ڿꩾ.6|UR 65?? endstream endobj -314 0 obj +310 0 obj <> stream x[ܶ5ڣ%%E|t4E/!~g'EуRmqD}Gr(EH_Bix,]L(h~XeL3._~Qeլm]=>dhZp/Jĝb0<m sVd!;Kƭz @@ -2176,7 +2171,7 @@ v 9LUaTqC"j6]USOP03&֐ɤg3<(3pkuRjsY_}>Z_eT,t/~7Zs$37r~"TE)]p.",w WevsC5/|$( endstream endobj -317 0 obj +313 0 obj <> stream xڭZmo6~bsi ЕER$p겖6zZ7m&M Ej%;NR%h4g^ů H?"3E׋~q"NMX,bZ,}ѮUӗ}6'KHOsLX"ݲܟ"ZmOԳTI,}# 'Uuk-p"V"U*.rwj-#VX"iZP@Xi [L*LIę[L@2ʋkg "bԵLL=1e`b,iwXw1Ic5d[&UwwwXզ< s4 @@ -2196,7 +2191,7 @@ WW n}nX-Mc5wbU=\{kGyyg!-;wFhyk\zeItBl \p?4b`͆?ۆyrX73>8@*Dbن]l|J7sv 0 BFNX0DP?n(J~?;c 1j7yуաbJ'Эs87oWLJ?u5ԮƎ$+Ȁ3"_R (c4b3b-bsmuW 4T.KXö,N{e~YC+1נ$y:|#s 2S/dZ73 !Oܼ|;yVۦWNf$oA3 t| /|3YB۱@badɦ "`B2/1dg|`~:/3 endstream endobj -320 0 obj +316 0 obj <> stream xڥY{S?B:+UV"K^K^BB{r{ܷO4$BQFQg(!`?<$ipN)  OyLBu^Y[LGl(&"H7϶,-VəX @@ -2214,297 +2209,286 @@ t3 endstream endobj 9 0 obj -<> +<> stream -x\[o~ϯC8}4-6p@ (dy֖ IN~e]9b yx.΅dRcccX'7޺Ƅ&8 g r^0~No@W>!b>gS u"t u #w|'`H )=w8o)9J$g]Ť/YRd7gY 2¹{$2#g|/z5G -/"x"/Nszj5{a=Z R;K%n!i!XaKyaod (0(lx4!w!8re'~B$*9"DSP:m4j](g"Qa`gh#Pe - -EFp\B3-kx,LhABac]΄:wE%s!gؗqI\21:w}s#&رԹˤƥc#(kh cTiR `Ss@E(Jiu 9`Av!piJyht"ISZ{ 蝭̱آ~%Π͔E͔46<ДnyzW⌸bѢ-ayZ܎+S狮y2.7 ~G?o|:;fo5~,?˛igڣnx^"9O^E2={@R2 JEN -0 *B6DFǡhL@ʭI?W\&3 -]* -CRKsP4`+@+h!PaINʦ|!N~")('5CZ!*MH4Gvʋ@kk{U5,豨Ut<꓊yU @k<%`"B)Zt NLTaDJ!+ nZݐ2h0Зq|r -x w52ghUkzX] (Fc$Xf2gzcw!(5h!c+ƪ&fo; -_C <TI5\EaC\Uq15B!DJ^ YEySz٪ -pk6GpiLHR ܔPRH<Fc -lb15 b mΆ̺2r߈3 U* ]&̚eiB[Љs15fw!z@K23 *vWdN$KٳnHAK 7K?S%x-a Mb~ Ȫ@ۅEqNRCCB LANL4@d$DX%AT0I2*p5 -g4Lt(AAj $H -g<\ d2te&!b}9",eX%+3Q+n* SU:2&ӷXU -H8s4Bƻk q*uXb!iɀuHQ+JU14,TI#d dKMV)8Fl",ƍ4K fWc̲9 $XHۯ)Ncڗˆo²lpc@l:~-޶_l/?ϗ~'_W|WpX\ضNu'Ɠe月dKdF 0s8~  ='^MHM,VLiG\Ax:gYct>[)s\WB}ǪE|:A=5w(m䌹tϧOԼ5}ҷhʎ N_/OP-^KvcEmxONge䤻R\E:xckMf8zO.ړ~Ǘ~:t m -~O)f̘U.kUf&{gi_8MuXus;jmj_{jdߎiw FfF[(5͠ˊGDS=Z*w#KJ=^X67K.Yh]gz ,(.UAs.G8bPʬvt ڼMre}vOktwt<_qˎ $8 pf:-lҾ>xr0fWWo?gcOb9~GgѼڿugE?=}>=;YXdoVM~3!jާ-b[&OGB󭍄9tjk6mX` *btP΂D&!ԭd0wJ%A!9r'{V{zW6652oT*-`+弛ۓyMN./.y ,fqń3M)xkWX].|Yv]~fy{z -͏H|(^Y& 6<8zρ79plWӛ帪zϾ*J8(TSު:mE{ --\GMvʑc'M]x׬J&9p'kΞwvG5䛗hgݏJ{ʰF;^Cho% 4*1W>)a8*B? /1T˛G}myKb`u^+7F?ٜzxbJ^o +x\[o7~ϯcPyx/MNX ȃ,Ocumː&y߾GYkD餁Q3Css!Ye&)+Jkr(\ *8lT^R)CV9dJJ 3FF 8Up݃J!qI0BcK1T,DP(LC| qC" +]%<<,x`Cy'ɘ:%TrC<.Y{tq`2d9T#:tI/p1|(#]A4z C( +2S夢o尘X +wx % b !5h?=l]jKv +)\c(Q],$mm&I9Qc̪$p"n@S*x@Va +{4[B +x)퇵˾ @0Hธµq&p-pRqD!- g@'"!>Fp|pm\d#pG"{@G\2Īr-X'ZĦH3[P&&2P{԰l.)s_2/e{Pޑ#j#F!jѶ98rFhX5Gpi4jZ(v4@lmhT4Hw3G有h.-7p~@2廼F(o.[L%l@usI?UJt6պ oB n-Zf[ILmQ`u-_"[H]}tѽ:^/vϦ~wOo#^Nv'OvGx&Mu"ta4,ӧIJĖu ǐA!7 αꎎD ti@ʯI]5>|]о,+q4 H!)|zsҭε`+ h!|ІɈdr V*tL0[_eH+&mJ #i{65߂pF `l@xȕ1$:X5CZpQ g5MZ'CZ6\2P +`$ZiݮЀP-_ *W0|߂/;p&3 Ih_ УuY;d,(\ e˃Au1-Lٺ!c>hF&&n>x] _CNÅ!gE&/:|0ApZxe;_KټҮn4`G`mmT#Hep + +P߷{tLՀMH\lhH,2K q\wM8z0.LM< j& ]&]#d 7#M~Ü"*LLjAkÐÌڜmƆN YƁNj(-业Kɪ_):4dĐk6kVjEZВ!-8-t$CANL൘G ۚ$waٶv5FBĊ.LANL4@$D $2b"j*Yp5 g4LLAEa3mΆy-P-]2bA9RTf$^%D2te6c:K,Bed +ڰz4I#dkc34Z~<[~|GW|g>>],.ywz2/F O/ƧWݚs"r-#~u~g5/􀡇ˉǍPIob4n[?O2gq7&ӳɼ1} hސ}Mҝ&s\P'gӏKn8:֓i7]NNO/6h7RT@NKs69Si59{=mg텛8O2`aZ)gf,k٫*+Mz(ss>ﵛ͌|K[Q`J3m2@ybir] 5~wd>,r#.׺kz0\[bR!X\n]?`!*ZUr}A|t<_|wbm4)PMp_hgɸ?zQE*kVa5w*sTM}d x ::|ɲ qJ-[5=Oӫ٤}:w}@cwJ&&bCd&#h۶* |.ߖ[*xt~ɗr*̯RXe=%zh%J|3zWJjy|&M>}*?v'j~#.M 뼾*Q<ڜzxʣo۔kX/by7vuʏ%E\^˪Ofں3o>[6~_w/em{<}iٌOBz endstream endobj -322 0 obj -<> -stream -xڝ[[oF~_1OE_E4iI6y`$:&%g$ȡ͹3Z(8S2ŔE3A7g\F21')2i+cWnjsV`p x zgwWLpA!Ʉ7*`Jv 0f00EXʂ\s hA-k< D ׁx7LIX $O - Y$kP9*!9TZ-Jy<Z^# *DXK&Zc`c((B -1-!aLJIi 61H -0 )$ H -)-h@ %]I^ry,j- -d *dCZU; -V%tO#~kHOH<)OT* ,ng~i;hiib,b YljN6t4ҜÁCǚ8!r,#;1PplZCZO eCmCXe;IPh`/cheXNSB;2(SYAr!Ea*q߰д3k5fF#RtGa785s' 4sj` #'҈qG]gpGiX9 -r91`B/ $ -w^߫?(  xKvf0"B -UbmGdO#)PGsbkKI|Br -Ov&IIx@¿$rUnL7IwgbFMCOBXѸH#gQ^,kی\(o4fFey݌GOgT>ayYn7#}w:]}i -ljFu_Ì*s?\̨6ȗ ȗ3=M=gTrv&ŁQv!a KDm2jh ;h{ KΠ)*P0Ոt-`A3.`cMVE!?d䰱MB6 SX]"_a(E6z0~@~=;S`( h|[>(j&Y!^]I;ffOah9E `9Wf}{(ޗ<z$P^ šp }hm;D> &dޫ%x>9^I᰷IQJ9=GVWy4sԄ||^蹛 ̡yԔ9?GiԟOGcK;?֫ h^2^Lx*E?0^z.Xrxn^ G9{Yi}p:fiGj\7CxD\=/0 0{d t ۪f l/|;'ׇa^8/|֨E_PF:nrZ:;W{ջ!<!շ.jֹ2G0y>iL~T ts3 zs\DvU=kzΟ=^ɓU~Ioe({,`ۮҿ9zUW9<[pJ>@TϢNK!\ui\)/iTP~SL9 Әit͞gVxl',¿4_%{tbv첫HÍ᧻flٳkU3eQJ:ɃAmT}|y9k@!˶DwYo[tjbz_'FwQo {S_]&?Iܝ1,z=H_כmZUۦ]`܃|A۝1/uU+v^o={-n-*Q䉵]ܑfJBI!t.ΥR+8b[}d?* vY/nx.[H$ƾh2:ugڊh.B_֫ۺ<3~Q̿DhwKe3a)0cnMSl)!]W9D^\¾ۛf]Dw]pSS(/n[HeϪR<k9 -.b]ׁu͞WOը]U2,-GE~ 6#gƬbz|JG&(cvwC4r^娜n>Uv}mi#7EB^o+r\/6o7Eܢ7mpu򈗣ۡR2źܴZiҫQ|f7mD)v9jbyW0V[>&w} ,yK e$\@QfQuhN^MÏXwSYwPeۮFg/kL}ԋ*))Wea(QPy+SAql)i#^eU(n^%d7Gr%]*.ib]uKRck򎮣 |ÖmefU2ͪJGf倧|FkE2_I+ kC6]3Adb' uKhw?"Cŭ{7U@,v,6,6L$xS>fHbIhJ<!aH]=?|s%cƽ\X iϐ2=(nR5R3RSUuҩ*4}n7wGʏ;2I?l,eOE'f `*&̈́n$%&!|iW LJM "!C&ﺝ+K%J ʫ#Cr@)1|^dWFTO \*%K}kP=OSoL GKR1ulگWo1Z}HϺڶ٫lo VVԳ][Ksqj=E`Ҵն>{#7$İa@(y -endstream -endobj -487 0 obj +482 0 obj <> stream -xڭXwXUW?= Eȕ4%hh!"R Ez/b[LLC ذ Ѩ+'%ƨ: sy} >络kG===ИpBY;KBP~@mST*DV`D8z8Z_F3"zgnI3ݜF g&;L^b$(*)7oEAzjZ]dI6yonnjVլ܂܂';+{Q0ּ ETyƀ a2Cƈ1f,%3d2 3e{ƑLbgf2La\4}ƍqg<Of:309/3\&1Lʄ1|fD2QL4,d357f FgL {wߒ~bSΌ{+*\?? >0y<0dʐ!6C;ezFo7oqj#n6<"{yW~^,,9onl]JI|R\){Q#(eަ șUG2$(2eLzBF|pЎĖ“'JN37pH>̩<u: -G+=RzpoOZ/s©D.M9<4G^=5=5Z߄y8VpOC˃—ώII:oW/W^%7ɫ{]V A%ɟJەe Q+ԹҮDN{nMaQV0jNI  -;{n44_:׾&I3W -1q?' 3F+:R:RC;qɟ2u9pNq`B_؟8Yq!.E8vQqԥo90vUEed1%0dsќ#:p8:<< =uQfG†m.o'v g ?Y*(ZsŁp5Q/ʞ?sf`zH@(DFN4$l B ]gfG0$+|jb>1Sv:o9)fjqoj%ۭ~*lj@;ٕL Lкձסw!8^aC`~T3A'B>u# - BSjDi0[쾿AP䙒4{TBo"x};}(*0V;?&o0 hP Dn~U7LG3͉(YCvM7S`GF ޒ[ym؍S%˓58֛pCœS§8l,FR|Hu79t3t2è6&@{& F4B [֗ m)74ZMq.n HB}A oSayUعsQ,@?ABZ¿'6o('>`QKmyTӾe!Zm _$(\ 0&oQq})2ĩ7va8yVCS11wVS -%3ԈBN^uvZpE:ËUeU/[^i%o=zF"%ڠE  ChChIP1o_{XU:^2eڭ漳yG3eH -ZL! > <F-:9byׄ*lTӖb8U;JV#[@Q$?hDPN:'zAD z5ώ/A|4yEUOivMӗXe!S/5sяuʼniWZN|U=PK, 2J#c44!+PL0U i&mϥ?(>]=i/2lvzcџ‰Aڕ[XǫGGJBixC+׎Tĉ,Xm;%.^\1e1BsMczR@8NRo(1Ee89#%IP~jFutz>W5OP#I1`ܕ!E rZ_Q|4!,L|y ߭(W5__  z7.p™)x%eJMj͊32[Ѡj|̷Vs;x!3L+|oԣgwcA4D% ߒʿڛwoyq"G[Xz -e( h)Kn}HiY`==zƇ)6RE]8vZt=V$QLnQ5`;.̙Xφ X0 -ԑc7m8^ҸͳK3=v1%8o`C.'W- T`6V/v- r$@G{z&Aڎ} 1@]N܎|u3foDJϘZݾ}%=ho;h. 疅Ο5jeoIm;ﺸv<1hP@EʈkݼkA2^~Bk_[ `ϧwG%(D2.^rv6YgqOv`D Z!NB={vJO2V඿ypRۥ?P/jB9ȱ&O^;|34 T -jVXNࡡRCNȵF\ȭa>YR 3;>!Lҥui$ڛ'˫\^{epF|L|Lq#>q7SqVe[-pu* & [ J ( ɥ77yS{VW_;rvS꣫W,`~@rrdɆ 7ƥ{HMOWL݉*)8M:'rIwqN&A["wuJIbt,wv(M -ʎM̈s[?;K. bA-::O}O,G\^izc_d)l-[QrC9D*QEI{-ڞGrIц+ܐK%MurX -,K e< -/)M^IHX*,c+6RC|02"'Q{(JoYTċ1/cQlFE0Fաq Yy8h1C,±{;]S+O:67..'B, ҅0:\ǹht벫0.oPNP„kǢ>kHWXmR;]cD'7Xޢ3 ?Al?!hRbeSWsau?`N̖%0Q['aorpgzҊeU뎐ʊʝGH9n]KH2))^p}V6s]$ݚ,x4I\Vjߏ$vZ7ydK$~GzyѾc$M6﯄uȳ`,Wqyу Yt1Xc[3J8mƇɬIrm6Cwov)**}*:=ŭ:*cJ8a9AGu` 8:<5 +^mVc;7Ԝy35K87덒V?VoDxJ& &hлDSZo0!\0 +hq mљQ!HeDДt9|<{@P/ĩL9O%۪Χ$p0(t5L!E М^f!HpMdž6O?iCpa Q@`B3Z'qw` +`фhO0DtpqA(F(a#F)C#΃Z1Z3-I>h\| +a<" +;u.EU11WH+R}p ѧ}w:*qi-}"/wڷ,rZk D} M>:*\6 q2yNǫTL̝(|B 5f9=a*tѹn㪲-pηk=v mPâ`q!! +$(˘;7=K]U/@2VVsټ#2v$Ҋ KO-}[}J}JЍ 1mxkBMEZiK1 zQLRj%Б@G(c 4"('u_~M }fgǗ\>Djc߼xEʪ4Y\gK)DFQԗv Ꮪ9ˉ:f+-'>MɪD ?W(PYډ`}XKt`XhXW\&*δpLPݞoߗ󿈇TseRLZSViiwX -,P##%JΕkGsY Uq/֘@Eی1^G)łb '7{Ƣ2ƉVp$(T?5#:IFd= +T9THOm_9oeHтV45תtMjH( S<}l+ϯ¯?=]_8p?2&frܭnhP5[cOlrBsz\b~7Qtr; R`oIR_zMB;`M$,=ꢮF]ˇAh;z-W[+U_Y& eLZLgy},h} cȱM6/i\ +٥_DyN`bbGpn`C.'W- T`6V/v- r$@G{z&A?ڎ} 1@]N܎|u3foDJϘZݾ}%=hk=h. tBV2w]q@;4( eĵ.ZеWVB$)m +㦌MpYs;CVӬO枝6ғ7ojvF EPrɓg<|Ly'9M.*nswRT+,x +fCBPyQizZ#.vw0BuM,YRJfW~&RQlnzNqvq4DvdU.Z28#>&>8cދyRƒ8}sȋ[-¼8:_TRٛ՛RG돼u9iՍjW +x??t9VvdCDr}]caҽ $dMKWL݉*)8M:'rIwqN&A["wuJIbt,uQěY!4~v\kу +(Z|{/tu>jΥ'Xϗg)0@FR"Oٞ[ly*rTn/++ۻ4U.[=䒢 W,_!$K&5YJ:3xZ_S&đTYVm(a.exNr~NUttx0F-z@ SYvH_|DNpu%KGQ߲jTċ XF.Qv?$>$`uhvxv\BV},Z A?~y2z};}jiL0!}?O8P+| }y'lfqKՐtB8.NRs)O81;wb/[9  wzwś(P~zif* -ԌuuY)Ghso ~+ ƠO <_} -*|fayay14"]J4H\]sPH1%r~օ(R ;{F ,jrd#= R]B?6wyQ!Q!P@iK#^廹M>'~6<+Bt`7p" F <'hD v@?% vӼ!Ö-Cӱ8Z9ɕ ?zr|dd[_b$.L&'.65OiF((+,[U|RM9~]ɏu :fSP)˟93*ՇRk3O̹ћ.;hVCvY*'aE rEyk\I8 T\^qH@''bMUݹx*|7>~U+*MJ 7a#?9'L7Aژ*Rّ- ܺwK?8os~ǔ?Ы?JW:kW_g%׿rG.۹u`O{g )O\I`ESˮi.wfpLɨl8*&:sڅ5fA4h:ճ$z]O -鐵NJj|7(I[pUbePI̦desKd -@T 8s|BգeK*1Fb!N1.kCZQ%,sxB'E7C9C͞?ӌAs QđĿl0=V9vgHTK$3~"tCWgf_MjP3WgA޿ -墊׾"OձZRፇ7_R\|zɒOL^on &/Ɏ//^.d-2v$^\r fo [#H)#pdű#jDsJ~tNW`sДLH>bףuI 'g-GmU[c-gu/$\(~D(U>8:~D##rU仐`0L%L0jZi{kic'8t0{zIƂI:GTo)TzTTT@%u=/ʮZM9Ȅچ{yم -vHOyz4Au?M`(="87շSu:O]n1/ωJI IL ܯW?qu3XoX= +ԌuuY)Ghso ~+ ƠO 0w Xy-T$kbiE@iWbKr' 3Q@f7vwB#)X|rJO ~Gr{"}+-D߇mm$!lBB<#ҖGws}N|m:x(9WJn?uvLU~q0 )Wu6KU'\s%-96&2`ASS]#?\] ]5=,P5Q? eE37ѥp:ULu1 =k vitMgcEIM)!k:oPf`ʠMɴ0>/p&m=, I-Y&PGɻPgUbGVBb\ֆH6J4kY On,r=B19#I&Pazn]G)sJ΂="IZ/g<-}Et)̾Ԭ&Lgrm//~ςE}EV c嵤o<%'ן =OM^__d]*"[2eH޽,@)G;S@GXuSɊc;uGj<\ٝ^)8},}Gu랯@NΒ[l^vƼ[09_HPP|pJuFUGGN 厫w! l0M0¨i=\󯁧u, h{)\&u &hK{hBP!xlP u/RRS }H@/痐סTv*j37= jbe*؅"#=7s8ӓNDhzh>TrNթ'*9$5$-:3Q0\Os^i~`=vb +endstream +endobj +484 0 obj +<> +stream +xcd`aa`ddp/H N+q1thww<~/ùH#y +L?200<AE)$9ŤBJ2ݜ !2634pL,ɬJMQHI,ITH/,L(QHT0204: +9 +EE%yz W+!cnvN6&FeO&FN&CeXy`[*k ˳2~[o18󱭻'k/1i-~6vۘ1PKnܺiݷVLْ%tkswHYjbZb_ ˞FE^}s+ܲs݇Om.)a}z`7\/c=_w_?%EZB)*U,jZ޽{єy͝{Cs+L).ijN3dD~[|'^*Gt(.jCqДukw/4tq1B`q +endstream +endobj +334 0 obj +<> +stream +x[[oF~_1OE_EiӢIy`d:&DP*@9C b)eU8&dJ+&1=Sxx|c(+GÌżN0A syi"'zYG8c0  ,#n +H<$*) *e5@\^A! jp $4 /*+Kc⏲ 05t$*@#Q-$ `UExGT l+0`JpLrEq 1Vb@Z-i -ƀ\,do?*.&(rWȚKU=!ozN* HXDȢ<M2EZ d|5VI:@L92x{R'@@$9 4 5U "߃!N> tDHm&Qt%B1MiHj t`0' +=ap4 ~xOCI#M@21YR3Inj'>yH/3"$ `}!DE,BYhf5BXSMˬUu0FXgbYCI8cWkSd~8ؑUdp3@ń'!P \0$9Ϟû/m*üx* {*G= 86Fi ?Ti;tR +>l P   $W[Ov 24TD兆`H T4$ސ<&PP%Ȑ X (KkQ,4R1JR];:GHqXkJt*%Q4JG< d'ceP&Y*Aˆ* ,\G1\Z$ +C+uK ӬW eIFG- F8 +N1KԒy˛@_4nw}&Lś_uN%g/HaXPͷ fwdcH~\-Evop8A~ۂfA2 qx.9&3)rA($_PC:ALԦ&rhԂ*z[i#Dd@ U>t4*XB +&+/I%J&+WX>Ey]QV&ª4+"]pMއmr/l j` +(Yd6AV +sIxM)az]wS f} +ݧa"ap {m'9`OftݛɁsRR/q~kjG_F7Z"Ka~y9G{XX)kyn~Q4x3wJ-!1_x y'?Ϋ#?O|֨Ea_0Jn4T{ӻ?ˑ0}8#9/rFrOqT{(uxja0hZ{_xd4eiQI!a<7-]gşLp]jCWM.MWo)]?oggb篪--Rb[ߠ؋fUovKN`M~lu]j&,זPQ`L@e]Õ\\b$n5!L9 󘳢v0lw/^ؙ 3jc}Þ5zյOj[mGFFCi6Emu3e5mKQ2VWAG>"ض=k6]˞MY P{uefo>4vp~;[eepvyŀ<ӑ?mv]^W]n0!z;e:oTכz[e{ztk:vhD!a=kWd)%/"ZI-WqeWa޿WV^muDRJ Ʊj77=}ymEI4'8%0]@^Q3GHM +pcN?4Q5vτ)=_6MTYF,#Ŕg""bT._' +>Vw +VjT4kHee]v엺)ӕ"|n!fϪz]5Zj2\6m9jڗ6C0_0fwͻs*] G=$j4{Z!jY\ϛw}n¯ۇn~3^:UgEBVwRf/\!6W;$jcmlŻnvOr+vwwh-_>yLGLX/P!Vb +?d'x^%'ū>}Bve*5ܗ \?[fSrG.sT)d, ~ +G.TiS Oz=*R_f7e;T<%rߺ-ts7r5ӏ~T .԰ a*[lnWOݫ lR8=qzC[tݑ(>`,nF) +[մUV=Oe~aO_7Jzqq2z=hF=w=>K'TK"#ci–9Kkg,q2Lve +մ`ԚYqMDټ'wN-[;yg'JΒXާL[,meeeiOP6bXYwҾ%K{,祍I6%]];ί>Իz뺿wH^} ?9E9nYz] yI1vעz;fǂmrTrDEN[,C y,Q3(K!5E:<.W0 u0-F dDu \/ M6”TT +hHIsB.t\>pP⢏(s +ڡnAS$?-RK +0~Cn^veqjC)auR};0w@/?Q4K5HfrYt=9Z竜n|M*ISMe@˅\j5̽+ +g#=g6=s +v aOGF+aez9{w'S)}jn3 N+$4ˋÃGO\d(~ aRN 49BM!E# 窾CܱNLi(g[PrpxJy:~T1ycS+gCL)ݩNv6l.>fw"u2q2qfz.-?*%X~\I3 )ytP Vӝ*!:LqeUiڑaujSS2fU8iUqzȪRb.H)gj`OK*TO}fR'_s@E Oo=\MS}~&8k!C_lkg/쏦cwַ>>:Q/_mۛU=ܾ~;C&"HnU]}LYn\{לH~7OMԍg}Mt]+coh;J(cP کױ;&'}Llozj#gm3X$,Bޢ (dWTmaFˍ%N-%ޔKGzCo!8Qᤏp &:^i'p祣tX8H/K{){+Zǧ|zhAfK&=Ux|lXt_ +endstream +endobj +486 0 obj +<> +stream +xڥSSTw{A x#+2"%(VǮ>va%Rl1ql L-/עebH!1i4Y%3:9|bUr6jcλLdwX.WlWR+xNO']V Hy /R4z,61sZ!p̠ +X^KZgtitǝ1/= V+.)^\+֕*MAyOWFgO`Fа$ G>cAΠqYKѢՂy>CO}JQ4QDO]FǢ ǢQȶm1#]b^fY|Snoo2!7o_T2Q[0}ggDE@0gw_ ^@7omcGG7ו!Ti6C0ĵeMeO +X8Ïz@x ;qGlr_`3^$d19{|E~MV=0 L#uwa +]e@܀3"p(~g Vʛ+a.>a8QZv`$>/ڡo9pYPFy==fAH,ڐp0-oFkk>YS][X~hGRNRv'HI3Q܇/yE2$V~9&>M?|U'nJȺe`0>>ق.jID{bmBFţݘ,/퓠B!<sX|.28( =b wqa-|7?C6/c?iS +;Zz:Ԁ. '\Sb$u&,#Q@T@d'ssd%MBtyT$b,? piI+>H,Il7/2? ,oQ*S4_4}Ȇ@@Fl(@7`ɘɘ4I#[kr(=omQ=#!R?̬aџ15|z +X>6qn*{uݺݍ?; }>P1ǘQ +!1w ֱIx,6mc'IQDmҝM7?3qy$^#*tŵXHe0;MKr6{.=/~H#XVeAoP J[sF*K:gfZ0Pۧqlz2lh$de 1d?Ǵx@ < UȨw=Zj}kB%s骩Ͻ~zøGݣA,lKfZ?}r('twD ͫ Iicea~k7ff 8y 0cjŕO{2[ֺ1S }L3}fx3gɱd7.fHVT偰Tujs0 _䎽{c=EݚªV-گٟ\שNE?N}W{WX_E}<^8 zWZV_]_e endstream endobj 489 0 obj -<> +<> stream -xcd`aa`ddp - uq /H N+q1thww<~/ùH#y -L?200<AE)$9ŤBJ2ݜ !2634pL,ɬJMQHI,ITH/,L(QHT0204: -9 -EE%yz W+!cnvN6&FeO&FN&CeXy`[*k ˳2~[o18󱭻'k/1i-~6vۘ1PKnܺiݷVLْ%tkswHYjbZb_ ˞FE^}s+ܲs݇Om.)a}z`7\/c=_w_?%EZB)*U,jZ޽{єy͝{Cs+L).ijN3dD~[|'^*Gt(.jCqДukw/4tq1Bi{`R +xڝWiTǶn2h '  32ˠD@fd0QԤQc0 " 2(F&N1^wWyY֩}z׮W:B.fܬrFւ xh_|f%3FRHJzPŇ 0ޙ nFoaWZ I OHOL c9aq`g9?>>"&rv|RB|RHrT|줥쥥ot#g+~,;A3Sp7fg0#ƘĘ1ƚɌbF36-3c1xƁqd&202Ndf +3a2+qc<OƋf|/3"f11K$]FyuuխӽgWT+*?cq\%/1(apCx?LZpa"6>(dP`_}`\b9dJ*^TiߛUjCTC 6Ǝ]uM~H4Y6 LsΕH^:Ͷ4!1=yt&nߢE +cyM# 9;KWO< Cw4U$u-:ZV~Ck4'J9Xi*D<7VUr[~PaS/N-NO"#M$80:5X:wdʍy`@daYXQmG(Y /FDt&8W+Ia΁q ػЗ?x-:N'%%8n Xv(:Ac/049*ny\VyDLC +yx5l[FjKEl㌤" )+l!ͤ.<4̺Ҙyė,ϊ !~teOw2N[G5u&N畕-ͫ*Ŏ_$/7oHYȫ]&kbs5WM SX1ݫa?nV*f^Q;{Ϯ@Z7tOh3o WRH'yp&0Uog0%/:CZZ]k յh)M:ݾ ǖapK{?%Wխ9TFቫWJf>BC :tGƧ/OE +ܜlWh} G hc=sDGSvs[ XJ/~ с8(q$K4'тQ0'N>xbSY4ST@r !ta(`A W "18/9( tt34M`T26N#އ$o,S;2cNS_q7aэPsa4p$`w ?)N'nQlUE;*Ï}pT +A06>EK@A"G;yirȦ*v n\QzfݭnvX|i-h.R^HCZ\ +1pA8 Zχch78I_DiXOD<"/ _jZ;"H/!:<3>k߅f58j{ܿSxq-RMd<w&8#s^zv"vQ?m,\Ckxz㙎37l?nM.O3h5GD2~`G5s *df-&%S.s!|p!jʽ? WR1w 1AU3'\>H. , >aOC^_]]*M-Jݟ?$GWJH\=ry'۞0Qy[JwJo9&*EdnJr&Zpo0GMvlqpdq9ܘ+hxS.GoC`07~K.ofӫY㒐edўـG%vprx9C"HY|I}f.IN^JH7Wh`aY_%RO{g32Y")צ\CB #PtP%6-yJ#WhEb rqJ.q5u Hp Ee1(tT5[.F?kjАP9D]Ri?xcm25"Z+9'9-@ԯ ocY +^w X$0pTa njꀂIui[pIN|G\NC@෾%A8D&%ٍY4}0 \^;M_?XȦ/#nߺM:cٌVG .A;:G p`87}H@G5m7Cr)jqO-6}UpDo4*Ψ42bi5!5a|Zn{gu\#B}, ҾK{Z4ûxxgygot%ksK%^DP-+034>%k@MǍ7A p 4"7yr⻊C'HKkAҹ|~*̉MO=UՂ3SY}Ц1;Wܺm ,#|[ AꩮS]QMAf|ЋI"E][s$<{Z!!T0? Lyd*`nn*g]FFÔPw)_R^|jy ! T}/TV)9f.iPQGBPXO2QV=aiN=Z]̜xe/ML I<_Pu\mJQjA=[68-A>g۟F&&/jj.>OO,zx#5 6*vhzT=rd_59#?zdkTz z'Io~ɪhx rh#;WY)DNy8R|i"Q焂U5%ԥ =ϛLzbb,p:Pd-[XH|@fBw](|΅5Y}=i<YZZzOXM]o޴d~OwШiQُhr*4,*J6',GUMU-Kb|>e5=ҝ""}}'gs$uUk:M=AO?|]%H)#^*jJ#Gtu$e[m,ʄBe 4.XkO=[ZZ^1rq2jΝ*~f@m8y.BZ˚B\ahF0#`tbKZR46D̕?G'MJJ?%e\KѨg@b4hX_:&@nQ~x@L Z\;.|agܧă;N j+l륹ʊ^:]rc_'*.4jN +x 2glq7rogv1JE= Nyk7l͜d锳 w}Uen*ThnYnͅ[pT ͵nΔ-tT +FOQ6([9Xgwr h5\d*, GCXnHtƣ 4= +ɧekLPXihԲ}jF(~'/Ū+'zS27Σ^n\w5#J#MB-७,,,)B NCx:FRF endstream endobj 491 0 obj -<> -stream -xڥSSTw^$^d* ;ŰH  -\VǮ>i 6D{86JJ@DkQ*ƊBHFNL˞]29ߜ3whJ"h^ܒZ/I/9KBIzqemv- -U'@QÁ/@5"R^"0˔Mkʠ$$sRoUqD/by//6!MN8㆟;PB_"Z\%PUhHPn|t>|/,>a!![E Iz7xc)o/7%*[tʥZ4gsoiߣGO?] Qrj(k_i5)c~UoKdoRB2N)&Na۳8+:қ -[|1 -9[0]@'U@@&+Rݿw&vr֟H3?@ H<' A۷&uQQ > - eHe3Ա mYeͺ/:apȉTiQR Z&WT~F3hAl5vj6LÿX6[#G1[&3KRX,3$J`FsvL7 5/Nc 䨯n ]Ny:d%̒KGdڥy8 -r> ÙlczU -lƜǧ) n ['?qSHp|o.mqQ0Ý_0j¥B\u) fJcHraaO99e+;/J9ʾB)q8f$sv~Q 3sFَ-d5ȰUj7g -`=W% 1<`dJW2B=.kȹ*Z{udfjc什޹4 0h{;!mHL=qbG~GIQ?սS؞Ҟ:M&q3h.~.H M\ƉV\=ml qyz:Ei-?`ngLt=7.lKV>IU&Pif~d][+z -uUIWx@w !/з3S'~]]E~:[0]hihpm~f -endstream -endobj -493 0 obj -<> -stream -xڝWyTGo`Q62aHDLW܇YԠȎ,51j DPDܑUШ[Ec A?o܁1/{xgtOUߺ{W:LKTsݖI_3~vBJb#bgIr%h_)}fEsFTz0ه hBsc~}t77aLGu^8antdtJ+VZ'$f$GGFXم8qxzsZa5'!91!94%:!ArJJ7:`u uG0|;Q30f9 b3F131g, 3͌al;f,cόg #Lb>a>e)Tf63c3 Ƹ30BƏg@f b%Rf.Pu:tuˬdg%W%h~:?\ A 0puFQFg_:ۤf|VCg)ed]>RR\mr#%fplwc+)y-. -lM(W^stk ?Wj+!MM ^+]ۯxq~X>aCώyULNЧ GVѷE&5-8^B63ݙǖK;Mx@u@²"ccbxފJ.{+*}Ԓ %i%{Hov gFFG[,[ `<,`_s L<  yW4B萄.IvEQ2 s%>W0 /PgсHЙd/Ay#KY(aw&ScG=W 0ʴ:oV6xIx`t05p~-Y ۵6EQ<۴8#>胍@C++ZI ϯ(ȯ#M%>,lE~#˳B?]])`ӨaoM}]Fi& GR[rMH緑,ծx5Ry+s֘UjA+s`5+y5V ւ ~tvxI9^뷮o]mmZ";[O&O~Ў18Z-=p?%Wկ9\NIs~%@x%Q[) /fJee-$hÑ- :)%A{y ,)|8y+1A8$iK4gђQ0'N>xdS4`.* -n$vD -0 0$cFX,L .%:uKݦK[&av#`gCjRnlSK̅\:8Уd՗ .W2ƀ!''ޝ-ꅭ -@*QBO nnSx`;$=}ў{_I|hdWڛn&^`o/mVqڜWJFʪ,a qVKUG!4gJY^.'ꓦPÉJYۈ%+\AV| - )r^/kM/"/WOȽ<.j۠d/x|O%'ӶЏ5?Z<ʁ#3.DSD/x8^0H P@C>: ()DjL l/R2!W\ykct7'#DcPa,g)9 u kcrQǣ,"ɜ5"֞KȢ :ty-Σ7V?|/e,/;Ygėd^JвVKx[.HAW7(LOj7oxpʹgf8i/1}8>\oͥd̎F<(s -sṆLWU*f)'fV$v O8i9JY垾pW pzoa?+QkL!ZQ,zm5WJHpd4 - Saҧ4rv?d-qQNCXg?3IST*.y_~ɭ=͇[JN5^bE]c9Q OKx% ?[:?&1DM=^#z:۞o.nݩ̳kz?D&%ۏ]4x0BZ;]_-?.Yȡ/#ߺO7:cՂGA3F6=բ]Q8wYKK#Z#>$K[ڶ!Tvq' ->cUHd_tΨ4b鵡|ZWn{WŚ5\#|Cl ҾK{4^푫"d鹥璮oy«#ƕr4 ՍAG;Ç{#Z؁u0#cBM99]eG6 må ER1~?67ցjE\XiЮ1;O) -ܺm,#b[,A[iiTS߻U?v1yYbTBr|rº('{bcVLY:4$4$͏*u3>Z mнC%OpR;~$eK+JNmRlʇ7uֿG.gƜ9}o%ªõgҬ%k2k2 I(YIЊ'$$)yu^ --wĨĨ ?ʃ UUg%)f+ee8= n-e[ d||~b1nZrcAIJZnfVɮl[AςG!gQ,RAb{A`񭰙;Y_@ oK6} I``'J>+FJI" V?)e_9quSmSKii'G!S>k8X7nWUP[xqDtk,qA\ذ+UmUmmeYt]=$ }}EOD[%DSeaefQV8aUj|vaς<,.|YN<+||Wo9[ ;Ii\@O?gמX{"*"£rRqdQğ;U̢x.\օ5DМH%B7qfĎ,ܵ0`eYT]+H>Z^q(#?ܹ=bP"xz_)Ӛ3ֵmw1ǎ:NГj kp]rњuGI/VC'N˝p=N[/m5CGZZƂ KxHx[45#т&*֎X)$!Odwhnry美atq 4h|-0fУ0$qb-fy\51Vm]TݓЏ9_pvcnzfYyW_\覊Mm*\% -*B[iꮟ%Α() -Fqp]>+4Nx+X{:P& O1DYZW&HQǘE/ $+H7vI޸1#/~j~IqJ ->4,ܮuW3Z0R0dj(dBU=%}]-fʵ},F4EӮ'rA:Fbٰs -endstream -endobj -495 0 obj <> stream -xcd`aa`dd -p/H N+uIIq1thww<2ye!Cy", A~yMDJ B Ǿ.'s/^\dǾ.'s/^\d> stream x=S{Tg$34X5 k -AU%,-CMx$Em=,ۥ P ZA$%AmvA]XϺG%<w{s)iZ.6*9.=4ɨѧEak y}(A ? _FRR%\si^yޮ邷(z?pH@04+. |{1*זj - E⽼]-nCI!O:1ikt{uѺ=b]flX%S (<|;0 e1Þmd ߕ -RaD: fD:! -oHOX*k Qͽ6{_ C--f9 (*]۔"!Eן(`%3$e8Wl YSpCr2}+Y$س߻H2+?!a N`"Bf?inhj5Wbsc!dy} wVGOp^GV;V;PЂs@+"<-<,t7S}v`Tmҗˌ%|C!v~W,/X21tRڒJ|`IЏi -*WX[DޮoȢtmR9Bژڍ )-,$& s;yv@qPⷉ|>_ǘ'_ݶ 6߆1V*$!b{2_ʄ0G#~񫶖5JTYQFeTÛ!g*׸$ U@{ȿN/'Di_\SUۧU:>Q6.MA w|}e3u%Y@Vp$d*/U^yg`L p3ً2,ruKυD U}2d|U͵&0~֪5=  g.YPd@EVZt'Cid{m'QL -m֌ؼe!ɟ~냫9 $y zNޒ\^5|XeIF*S4%pMM?cͱ7`yv]?ȩt& !Nn')Rni zdm߯׶ -H8>ƍwaHԈ܊39]B\t0u[?XY~1qQ`2>d%`%hc0ap"g]@P6SRj9:\2-TUY̭%qZ -`0wi0kړړKUONɌϊ/.BbbTY L)g@|aΌ]~ouBe_6܉B ʸUrXOnWe lW՜PA&lޗirSJ#J3-j.%& e,o5kP.-ݑۚZpR~Ar|u/'oods@Z}툯2-& +AU%,-CMx$Em=,ۥ P ZA$%AmvA]XϺG%<w{s)iZLMJM2j*}QZC.@JP9/×稔=*t)\kk-1ď)R85L4͊K,_^̆㵥B"CAx/ok 5PRȓ{E}J6O=_N"<BY'O#[g(4 +U:~/ZƫVJ#0 (wcjES3ϋ3P^^罺yO{[wkdT)ǻG8(wH1R# +ZADTs2ghKiKYJ$6߅HHm8JsXw I$D<9NUk%[C@9F.PLJ"6~sX`H2F^{]Q܅ՎP?/O 0񍽽T_`=dj2U@e2c1ߐo6{GU>2K i d;9kd6_Xcz-e(>?xx뛷_ (-]}T{<6vcCJ f), ܎gw!4`x?mb;_ϗ1Wm}}ͷa嫕 +7Iȇ2!f}< 0x|(Eh+lUQUfș5z!Im;?o"焮ˉ6QTigU@籎doo"qSP__&AbDIfܸ =}A7 +@WYq0&\LⰄ \Rs!Qljyb uUs (!LogMFřK+Y8P(oGѭUV?I8{ٞFCT"BA5#6/6yY$B_xj/@IA gS$WhM;v2"@YT+M \SOXs uur*ݫIHItļnZ8Y[hgkGD|~q{D55"LNġ-#LVgk_~pr>Y X !~yYW'PM;T}p_ڬuNLmj&am6skIܫVF%(]4>{̆ڸRGӣS2Kб2UGrdʙG??y1_*i3c0bio_['?P .wЂ2nd{Y;g5'T ektܔHnjڲ eBr:[ƚ=T r rwŶf.senjm>_[7$z$&Ї*|_;+vL?-P endstream endobj -499 0 obj +495 0 obj <> stream xڝyTٶv!tu)LhW먈:f8 -(d[I!wӀ$T01gGpg:a0S _K S;o}0,,(33 < vDEr`5^{(QAE$^7Eg.IickM):Pf¬ F >fE \1~xOmG  - ﯉\ kX2E3S jfk}C"5ᚠoh6R1TDjGѾaMx6"FhýC"4moPĞDjC~0!T_ ՟@Q){j5J S#(j45KSIdj -@9RSi5r\LʕEͦ(wjAͥQ'ZD-PKerʋZ,EpBفVw8dnf`l̂mfh9\e0%̥\GUuajEYE[,EET;;uvuQכֹ?\n1~zp.\$;=={amm;:{zY~ jc'ϳ* qqA>V#`K=ۜUZ0{Ƚ%%1H 6e(ZgH)M'1 j#M ?q8\LҧX_l^8<7-P2 rT˫$OL2L׀5'NZn\-jA!*`x2MCՁ;oۑr9Zbeĺ(f:SY~2$D_Tn ilai,o Ϣpޠ5ku*< ח1u uh+slPQ`~\qF9bo JvHu>AM,=ԫ9dgW%jU~p4gs  滸3Woyv-_orG.k7eGhc¢bgJ,l23P -OթQQ^Q>_Gq9l+tť5Ih.3)(==6 wX9@RC"g PBƐOV9L"SRyywi04A_8cUNfnb*E%%UnA[ XDOէ "nv=lS%)T]na zO9(:TT+}6.0[l zI⬒ dlm(*.Fu6J+mW\ `]<+sxlOh#f9`ڳe)Tfp /84 `g>s}xg\.X4ENAY fdS~E%*^4 -b)@asl>SxNG}`?{šw6m9Mڝ+],f͊q ^F{#on.3*D!+vI26HIR_6lZ1t- wۄ q`-NoY -g]:3@c٫Ѐe(Iu ws3C8aTf!7/PjkqMx.l -e~rN- ^ӚZR䗖?^{1ߟ_#P?u)qKE3-o?5X8<RNR+Spp\nMG~GT],-"Xj+W5| -٫ 0xN SW;!O_L'WwPrރ!̛ٙȻōaO(/c3ʭwqxtK)I mۆFEEE0Vq25k pD -=قTBkr:.2?O7xj{@}7Ud=Ӈ߷S0k_aʜSWo^8sg}O.͛8s ݽ|1/JV$sQ qyy(͊u fäSP4)H)J+$IKMwlg4hW -|Pxd4s$ǭ ]>|v]::mlA*-$ά{PJfbZ߱o_V좜d[ l ~" C_TXt *($BY9٤&#X?PÄ23 2mɶ&L@a>/䑚mI˶)(*&0*7ac-Kw>'A=ƴ!$)_\n NJgX%rvۻh#s]j(779e]OJ;{]``l.|qyh,tҼ|ERvBn2b6p^;;SLV&FWʶh? 5fS@!$T& !N]$y$ŻyOytm山;޺d;^өfZ83^sܿvx q`wGڴ -2n8UqB'au%A$%cX-oS7@k\:3s;C/etqueU1$qCQď0[б͕X\4- zUiz;Jt~#}UgOO %%LP.f^K9"'Ƒt@q,, b)+}ҶX!Fmu1Vx37zwKKm4SGXk+*plr[n(9oˌ̷btZѝWAGh7v'pXjS)cԩU@}z H=8_&u&דMڥp`+d=2${K`/*HDG0t9(Gw{Y{h<#bG~:Q:F?mɸzDDĚz%MKsbG֑sd -їs-y - J8h-1;x<'ЛJI},Ӹ=+_4yI~(aZ -8z@tq8e+Y@W8O7Wa@Zkl4#Յ@7;@Aj<]jVH3wa'ڂ*0lCv%b}L*97;h}l:# l, AP\Nps\|? @l1(ss%Aoᗻ+qI;Z@,|}sάyZL_#p@:nU큘f"sDߞȝQ{n&JژQǰ;VACÑ쫹ԤػCA:rg7_daPrp*^b^Vte)Xc;=^z~L2$6*B_Z{_\^( -}a\zEfa*sR):+/0 RĔK2igRBQ i oEag2ZB**();p;VRѵRĤ 3QtXނV7?N+e#22 N$ >bű{eRZ˩䚸 :9+#Hf|THA⽈sbRIQTtD]x)TD^<˰{-fpBWKA2(&P -GBMO]ھ9=:4@W25VaG4'`Ɓy?o&hk -{qhq'<nUtd ը!R -ֳs-sJΚM;t:O-…鲞o\M+Ej^\N-^zkBr&3`ɳЅ7r8 roLgM`o7[IEL`ª`k>xr0!n( w|6f|4d&ݕN;#XTrknH 0Ds,:b5+K W՛Ёm2GL^WƣҌ5%1kT})2D;$0aFd4Cq6-)A1K`PۨyWUsJ.jh a廐āJo$Iaܫ;:8 pկwjFnZjVW!C:P|y; lM難/R燪ݑwb6˿ Kҋ(bsC[vS>-FKCeZ{ZkP)k$qvym\yT=f{i3oM p,7+}Mey>}k[z ?p" -qə#?ʒP%sTHW~\IzY[]Az{.&%oXךAa@`l*J@770,eeE:'='y0`&eY'hhWl93 NˠlOvj*ts[Oahd&44WdAaRkInݟ5kOH)cnQ|5SB$e>PEɧ{c4]yxM>U&z.4z{SȇJfqF'_ُ>|J^VT|ZfO8x8%;4?D^RB|7ty -T^n6J8/DPm jKPS_r;*Q@Dx`v\nZ:JD ܽukQ C<8DjT^ rg|$$o\]ΰ%*E62lMv4POppyt|_ݖyTXH_ٴ >5-IJ2krvgoCZ91:"y!Urr[:cMbVfJaR:u>*+gTCh:. gQm\yb%񞮸C5YL +JO u|qGd:Vlק"P707?E?wvTEy1*(hdeg]w!L!MXd)JQIIն[tDDS)[0,JBɩ].0l&` ikI**ԕ> B\C$xQvqV6#miji:f`U6+M +Tp0i hπt9Pt{Chv0pY2kZ38 3_Jع}JzW+$/MѧSPfVz96YD#b1pQaIcD#q0j +POS1`~(^qrMkC>zvj4Dc\VFj^ ik"냚bˌ +>{"]eLM!R!r+%]K%6!iBB#Xtc g;yŘGj7 ytxbaRD]*..]uܿ#/98Nt0doM PZZ!D^b'x [Bg\S/FK|bZSK +Ҳk f++&*%.w)bbSڼxxד/@ jVM/@LJjj +Ğ +9x1]_qݒ"9m, n[yMTqtb (h)<`q8ȐvD'zE(Ц#yzudyc#%F ZS1"~wԉ5'%Xg o().R::G n@ztG{x>A٥"5:&r? +[q13 픧N{'Oq9wYݽ|1/JV$sQ qyy(͎u fäSP4)H)J+$IKMwlg4hW -|Pxd4s$ǭ GW>;{.6 Gg֊(@3Y6ط/hPωcp|QvQN-FŅ6 +PqVqjXj/*,B:[T[CdglRNLenBMJBh6edegdd|&u0C `HD鶤egedda +XAxcZȐ^N/.7cxCx9U]wɑ {RR5t㝴 +-EC5ƞE/_\?tz8x@b469dy> '.=N&b%p`;` 8iTQUm+D*OB$PH`%&UIAkgmI.!p~qS][ulC'ǎt~0NyOqF̲I@qr+@;\vͰmAR|G!1U[&J㜛>6= +%p=F" +Q `Ϲ1m5FWxbΚ$}B9rw1ty:6Yy`B /y̝=q=OV+I sGm<<wҌQd3roͤ[I3vتh58cz8r<}52C4{w(ٝŠa7HGnk8[T\Z[WŰª]Ջs*/)"S6(i5a2N\VQQݲӦ +p&DAe8RgfoZs(qH+6PZFgzF:Y ?(bRNՓS~6`@k\gi#-ήV1RNkɦ^vh.9UK4(~`Oq A2緄b3•-2<7Ў@ۈ +bn:IK2'bwa:=q$"鄍Dl<'HJ,E+qlǸ4X/I&u$FXKp}K k%_6U0콚K,L%cN4EgetQPUR}tUUU´S7^&^JH4~H 5!9rPFXCE%`6`]KR>Vʐt=a&_K[*ö4ird[Y^F悂\2>$IyTl8qLPKr95Tf%.NHG)ҽY:|Px/bXwRW$Q1y6uʥ/7х2Fs<YGбm5ʲ TSƃfzNGN#7 yU<{-Xԉ>xqo<|c Z^\#Zq{=j܈=6ۯà]=ٰfC5*cȨB윴]çf߃St˫pQ~lqWӊajxo4q1רSKݚǁжdzXl=tMf+A4ܛ=v'MzVRQSD*XΡ욄=O&LHw? )!>kFJwo$տ>Fw+; KX ɒeEDcU&t {[ Sו4$`msbF^4we ঩+$=I6LBt?MPCFpkvJ~P 3y9<{6jxc324}jطsw.$0l?q`ۮxR(㠡C:{{}ƺE⻖oUFHжx67_NFۃhS-˥$`䩔d;B{Bhj7ĭ~c84=Geatz;b;h9Ĕ}ٚod+u}4!x'CtlhēA,co{g/ZѶBjfL#۰- ߵڗ7d: ihMck7B c˙v7  +T?23ӻRwGPMF-Qaƨj&-w9?RͺyVƜNa`.u}3X~Pk܍ ?w G@ɣR_p#jޗ&GAcnOv:c[o +C̢rפ.Q铌޾@zC'bW(ϣk7JF3#+HoU\*gvUGOpZEd{ҷPNWr ~D+ 6Y_~ x"e  ZȈ_KLtt_{vwFNuO'韠.S|1p0F(J>qoO%4#25s 0ln?X߭knt +hЋՊO L1)Od'K_3OC7㗊kS gB:Y߼mwAM~I`Ru WtWcG% ȎMKG(AQ7n +`Ȟᕧ7H*ҋDlC k6D]F͎&J`iNn:۲2OW\ +·Ƨ%QBIfM͡H+1Gކ=k“7Zh&aO:<6šD7{=֢5(,^>"-Ix,mFG[QIٲҢI.^Օ!*'Uk1$kkiu'sCx`yJL|XH1 endstream endobj -501 0 obj -<> +497 0 obj +<> stream -xڝZ XSg־rsk-kIUں:c;v\j.u"K@6 @B vP@p֥VZǮvש˴XmŹw@?<ͽwsO9DHp_GLZ&Iޖ|K&]F!Jk 8Z e,45U.l١ȄN0!iL^c1C6%MmԂ^2 -:Foo>JʔZҝ--ҖXKNۑ! Y}jP*~5̠׃RԫPhB^_>bh**⸤#z I\z٫0zS_^w$#Ǜ.]Z޼p֝4&Ziԃ=p@Qauwua=/Nी` Z`3B'ITnp+ -C_jʁ@}Dl"K_twSO  - *Xң$I)!JKm@]Zhu8kwUBw!H2S'Nݲ-Cb8+7S`}lvJ# -sڝP%k٥)#=0<&\opT -aER(jSČ3j6d:LVsVUR(+ry(9$Y+,&0ڞ]h %n%WEM[n'x6 uv`KcHy`ޠ]wF')=|{S (|}"NsQf_5,oWO4 cBx Q&Y`k{}u#QM, ;7'G.1+-x?_ -~ahҶhbvd3ڌ.s9xqƍ fSPfujLċZxiJ( pTp+;zH9LiLz ` `X#iNn͎I۰̃ xYRRbBr`͢%1۸0:Gk"AJW; .+ -yj,"xx>g}wXYтY$zTE_K4cY/D l'I0> 7Zy1FerOڱNbOӀ5cә PNc/69 ^<';}zFb_?Rq?/Rx8LU/"3͌Az9P`ܧ >>VT]-L `wΖ\3I@*z[ju[>7}=tbC5(-K@@d xTWIO ʠ>:Iu m76nHؼ?u$<`o}Ih  fg -f/ړߋ.{qp cs(m2G'L_zv]7qmX2^(d׋yG+;ס}h뮪Ѕu/&e$ ~ %}4?~BfE3N)N)kLPԗVmחX@Ȩc6wxeefQ)=`'"@!][#ފ74_F,kfn4.vzHQ}lNG'Ϟ U;[r>ʮ̫ɩvCue\"XڢOߥ8+PtlbY~oKe.A%nw{н~Ƿp-zE@%Q(drnPӗRm6Q,)1^;XtF]ZO r OcƤqf裑~p޹ϳfVlg!`LI0+rVZ]-cp+F\%Tf+*nVbEǰKf0f̣Ma6N淕+a1,_յw>3D(޽nNLNwQkP PH˚YmЎk`wďݕ+y0C!tyg˜'g"?WԗC5ȶdOQ*6t<2REWwt\О\zẋęs}OId-8Y1:ɶSp$8 -JjmB-/M/-=h34UB[3/$ΖFO}?tfd 22͹ ̖v]s_Ɋ.!HGn?uTW,*3͝Ԙ茇 \CA+ 3e&pb6N-LƌmE܌U¬3H}\6˳@G֥/riaƕ²Vh \s94*([Q}o1)vzqˍo'8ͅYŚT1~ys/ gA]>}{d!>tς]L"K)8_v;ˡk,rd4lQE1Jͥ;UBu^VEJ:L,&ׯQ"Z.;*D;qiPU7aEֽɭCpZ]݇btNPDn1y7=[$E?1so{nlă7q}їEk6+{C>hL&h3@z-%K1a_]JƿLX(-2Wn9{0  wԁeY-[v]]ؔ]o)b8axfĒ^ ^_.s^~/e -6TB{ o.xGzJk;q(z+q%Dem}gf w2:>3Q2$R.vFYzg -q1ihٛ [_lLOdWI!ٝٚט_b?Z4H2;sʖ7Fb- rAV ɵϞ$@FS޿t'nO)2KϾ,'l6gKU2s&l6{$?ǧt:MrENXQ;:f4Q^$[IckSj?i{`<ضƎMyHC -vo +xڝZ XSg־rsk-kIlպ:c;v\j!K@6 @B vP@p֥VZǮvשNc/MA<4~9{y{>!!y_;q$yGrLy+'ߓS ' +A??L#͏Ob,x6k$ "8Ssss3[z'Nz]&W+$q*ѴW^yEC-}"/VJ⤢i$ ka}q d3زJt:bk@a5JC՚Ul9hfG]6*lrW۞ 8'oJi\Vѡ&s_y؟YQ"6A%T:\vVag-)J0Zrr + + + Efknњ 9V* K~Xu'8mJ4Մ"7 +-3Nl*nΌ0A +m\STKmm} 7w! +qTZKI5J(fݤr!d[e&u"I`B)ymj=WQ!4 +~xWzTWw4|z8肖li씶 +d\rr\ܮavxoeTN.PN0au^(rGE;"H Cu'%իa5DfH"6^$Lm~{C{ܱ3pUwtlS7?ӷ>rk3{f|p[ +^*[wFLh.REԅ8Yk0dB&hmrʯ +&=PQTa7T+t}*j<-r|h/}퓳M ?}[.Q(xWL`%N$lD*.IPbwYkmSK1 L0u 3RO6]AŞ 'NhqM_F->>&:rRn1hXP(25re~,ƑgJ*~\ۺ:߆p1{v'ҾN8 ԇwm^䵪& K=e|H9**v#1\s'f's8L `xadlԪ^76a4^@\|ld[y؋b12_5\ +N#'4I&([v(=l#Ί}Fm Z( (*Uv4\=>ֱ$Шi3 1#-ĠO:4Ƶ_1+U;Puu67!D%)%xȽ ߑ|U' `#3"7RG78[Z,^~7&w%/͇4c))% `%6B]MN.Od#}p܆qKn8qpE!މb.yP-4=;/F'i3bs svjJVN+Js4C _)\+꿦}& 2%ꍰb_OU {G7EmjWx :b+^>q0{ 0ډZiBuNáR_R` 34eY`}~g$mʲW5Z +PmpF4bUنlPj.2ZJ*s\P +eE<3%!< 2su|fP۳paxD׭Ai v3?/$ή2`"}aL)4kԻ$3W_x`o*6ݴTdY.4sMJ<#ۼ54x\`aL(peџW7Bssr2Bm܊%">Y&mơ+VTZM627mxˠ +lf;şʊ5>iYf񽜏ԉM~'_QƄG&6}oQoTnl˒Wk=.߳ Gy&$;z⡨׬A;Pɘ.zw~-腞u!I, @Ud/M>KDHh`;OYظd?Ȏ4*k>M[Վu{4d"pFqi=i3חܝx%`zifvh́{>`gɶ*hdf<=;Lv*tYv~{޳XZn˧zfޠNaxEc_:}*9M>=PCõ6 )cg1?[?_}썺/ \`7ߛlLa E{2<#zU/S/FØ$ +F;Qyy>D2O0݌us?RPXer6c}K*/&^BDGO0>%ϫ^T#K'T +9paLI.#cSE}O6!MF=f +ᇤO_߽M\!?u2'AL~WC\wd׋yG+;A=UG i1|54;MHB>G!hy`5Q 06(ԋfRR?7ݭ2ۮ/ͱ*ґQvm>puc.˴h$S{\O"EBxG,74_F,kfn4.vzHQVΣgOH[խK9dWf!ھ*a`,mwR]W(:g,2mJw=SN?uB8q 5Azr+ךH-A u]8&G&;nca;]oEa?cJAl'uʾymzʙu;|[1~VXX_4混ѳ4,lD\̄s+m +p"㙆( 9IC c@{Z{|XQJͮ $( e|sBj(ȃ" X€Fg:RGfF"`.239Cg~ UUb7ΨywBh\u~{ese,͐S{ȓqu#xpב3p Srx55s`llPfHID%@M_~s!ۜDZV{9oaEwi= 41b<8<#5G#\5uX_6b; ycJZn^Yiܑ=BhllntXq7 +(1TZ6X1Pqr6/:]j`6 41c%o\aMږm[)WbXTkk׶>sT(޽nNLIwQkP PH˚YmЎk`w̏ݵky(C!tyτc˜'g""?WԗC5ȶdOQ*t<2SE芷u\О\zẋęs}Kd-8Y1;ɶ3p,8 +JjmB-/M/-=vYYK[=2&^0;Ku3EfPTǬgֽ EY <#xQ0QLJϱH33 j{ (F{cp/!(bW{u =okSkvH]/NMx xy{`$j$m 1 x?1mxa5!6sP\898"cFIGOЬ$d#¿#/ѻwo FnkSxȺCo=9^wݺF pDi6EQGw̃rVnpּ{:~D"fhLoIe3/"ΖFO tOf 22͹ ̖w]s_Ɋ.!@㳽Gn?uTW,*3͝Ԙ茇M ӊ@A+K3e&pb6N-LƌME܌¬sH}\6˳@G֧/riaƕ²Vh \s94*([Q} vz])'8ͅYŚT1 Ays/ gA]>}{d!>tς=L"+)8 u;ˡk,rd4lUE1Jͥ;UBu^VEJ:L,&7U"Z!;.DqiPU7aeɭʃ#pZ]GbtNPDn1y7=[$E?1ro[nlă7q}WE6+{C>hL&h3@z-%K1a_]JƿLX(-_3þs³a +j/CW TW[ **)v_S p˜q(%] ɽ-6kB\N&m±,Й0]v*bW-2wPVُK.2}"vePuf8dH[XS44 l1*<*bSd7X=5xޕ,Xb٘ȮB;512˛~Ňm]hNZeVwN溕-u%n8c#ZF@jIO˓k/?E[cQkەNܙRdsyWV#!5=Y2OZbc+ml(άdL؎m,%H~O#tЛ.+(+wduVi>2(yIP֦66(7Ԩ)~u{>Uym#- .9ن9ߏJ endstream endobj -503 0 obj +499 0 obj <> stream xڭx T׶v1Tu!8[@Vp@Aq DDdI桙ACy^y@PFAdTfD0q$j x=} -w%]o{E|go{V)ONI kCdSCa#c(zW6H4KPJ~*?]whN(J/\&W]rD MJҌpĤ-)ҨT}0#Ef B}ĨՉ)I)!ST#}'kk*X( 9 *qP"JGRӨ5Eͦ !eDP)SjeF-SK2sʜlՔ-)ʑr)ʕr)ʓRޔZOm|)?ʟ +w%]o{E|go{V);/ I kCdSCa#c(zW6H4KPJ~*?]whN(J/\&W]rD MJҌpĤ-)ҨT}0#Ef B}ĨՉ)I)!ST#}'kk*X( 9 *qP"JGRӨ5Eͦ !eDP)SjeF-SK2sʜlՔ-)ʑr)ʕr)ʓRޔZOm|)?ʟ R*,Uk $Bqj&jkJW_m8FbމʞqY1;9UQ+DqNr® CM'aI|rՔ87m}[s:IGB_$ 'cr#N(9 X L4Nl+ؘMޣ ˏqXMV-LpO 6 ޑgs {*jsE1#/WM`Du 0yCښQ&gR? 0RNӜgGvIh[ .l+L(?  K馸MqI.Ci;s X-9 X 3UE=UOQrJ7P4Y*L-ww) <>P4Pta?(A,4^h[2x2|^.l.h*-*ȩέ>-q:P' F(YTƩC ے37Z`89rzGĪx547c˝@䶤O(<E;#^D##шRFS4YS FyI$wƒ4"1oA!F"v'QO\2FV v!Dcff4<5A)ȌSNg4t++{fcX0MG~DC&{[>AV$5C]Fjf@zoHkXGU{X>qmW_W_Ex6R `DQkQ/]vyl!ް=XFY+~)9,(v:'Ix,6z13J}xНӊx±%1ϳFx` X\4-rP8l -w} h"HҊ& _[BOQp#&aK؅$OBIҾCon!1 ;r8OFv o7Wݴ)*gj+1qx*YZᏎh#3%h>c*_L}L1:,r1؄F6yil`Ra7`? % h^>\FcɸW/C4]]W27_NLtr9PkY"<JjƟ:1lMf_b_zG9i`*=lȐ ꟾbܖ2xְ@4E6~'.,Hfcl4lN׌^cXk6qAO˘RdJ+{T$%5)8rsRF"'-FG9ϕXdàQ\ vw2H~{< BH?NgKeڨgܜ6x OMF=2HIc?Lc-o(D:yH?`` ^.x إ#s@3LߙS. N<)YbuXЄ_ľh%Y$HTTn4geGYd^IMSX2\L-p6!WENwy,#-i]yU$鐏H64,ވXWS  Ә9 Jǃ4JdpR-hWh5 o@) 'Is{gP=K>}ݏƣy^lKG4C li: 0#0s%sb5r:SlRq!2TZ`ԽB)gs*AAo[c{ÝρmK۷okNK麜w<Q`XlD4jnzs=,"T gaqߥ)I{!:Xl%jL˶=_Au_~#R!RO0j G&Dmx&<KOFKI̐cg,y__*܇='n˞#[>"ڕsݵCL4v?iW^|0j7RD:˄9вh80t[(e#0Pc1I[&O%Ax/ŝ_ahОC4cF7S<2?{ -}_ 1DK%r\Ǚ˧ 7Y8 La{1Y3"|# a4k!S/luluФ&O&2/fv#Of5$D6yt#yAPv\U\Nʩweo4޿WtBszeheh)ˆas0nήqNe7M_{Y4 ͳ Qu])=-ՒIj(O ehxP"F[Ȋ>yT6I/I;2HHfJlL61#znaZO$GX#j6w>旪_Z^+&GS~_:7/skY4K%dkpfpml jL'?5tFwp2JF4cISfLŮKaR8ҮsPcHrs`Ar' ''3/McB曵88 q+˻{I҄1hPL+6[n[5[%& tk?eo+~k[7esExE鵰 -FY:8J纠@Ѧ#9E,#rN ڱqGX -yaM!oo2(Т2vh!&qX:W:f:ȇ#ViIM "` Q ((qJ؆OPK/c~!e⤱RiF8ºЖ$V?jE 27BEk|.c ieo$y-)cCL;,N6+ -UyW{+U}߅.֤ (HsНsbګEO[uQ!Pۇl" 2p:\\v.?9<Ғۜt*X C ^Y>iቁBNo,NJG܉vx(dn 8hh7lsc]ǻui9v壗mX2C||?J^~L7o i.\v -kLAe#IhCD5wWAyyGC%{%cwlJ$ˊHa]Xb/|'VR~.AyfNrN(r8O!f^V1 76:bdxĸK]=-uJ~qF QsO:*Hi']xM,iV2Ǚ Xboh -Wŏ> qi H'6wV e)gqn(~a,I) i nDD>|Sg7; 9`O( Bsd89@#뮭L4*zo7Uʀ)#q^r'~XkɄ5Q@|6ǻRqcXc=s&z.axh'ɤ\j/ (>%I'bF4->LaB筳trsrssD|7AۣlKK ww|#Yуhloi8sʡ/;+H,=?P} ]®m%Rc֗֬+(Jh8]Y^\^| lGJ6a -(at,Wx9l䣱7Ǹd|l ~son@!^S7 ~/U~'6 I7|"@."#C(p<oƮ+%|c_eG}x]صA8J,!q" ڻ 4g|nOśOHso=Je \eb̘`k_/0IȯhS(>㐷NϷ|Valߥ,T&*{h!zC܆,FޮĒHp8"& 6BЁ,*޸WA]$G'##!e}8:!Փl {nnXג3 vH+ Nҧ $c*_L}L1:,r1؄F6yil`Ra7`? % h^>\FcɸW/C4]]W27_NLtr9PkY"<JjƟ:1lMf_b_zG9i`*=lȐ ꟾbܖ2xְ@4E6~'.,Hfcl4lN׌^cXk6qAO˘RdJ+{T$%5)8rsRF"'-FG9ϕXdàQ\ vw2H~{< BH?NgKeڨgܜ6x OMF=2HIc?Lc-o(D:yH?`` ^.x إ#s@3LߙS. N<)YbuXЄ_ľh%Y$HTTn4geGYd^IMSX2\L-p6!WENwy,#-i]yU$鐏H64,ވXWS  Ә9 Jǃ4JdpR-hWh5 o@) 'Is{gP=K>}ݏƣy^lKG4C li: 0#ڂt^#-C €ug㖚 ɕѥR5ΧM9\V^VP +z}l\ݾ}[sz]u4O{籵\8xb `PUukkeaa= c\6.M`MR 1b+Qc孭_6R[ +zy?UHh=7!jcL31ؘ1Xx*4ZBHb%;{]<%`̃gdW>9qU^Q.!Ѯ{b|@怴k'}H&@>2WZ&ҙX&́FÁ玦ZF)Y9LIߒ-7}(uF&F. c|I.d:C{],4~t=⁗T=aSG8XP''_,ysm:\>``޾͚G|u)Ne wFhT6ȚA4_%)Gdg X X(ac㝘W$,&}4|0ɘy1+x2〭,&'ɿĿ *vTN+{Sξp+C+C}HY6L7 ˆpvsvus-|m:^>tz4iED_M|p-nQnNRDy~$M(CK,4BVa&ϣ2IzIڑGZe7E:4Wbcis x%9XQU75Tzo_5<ҹ!x3XˢY-![337vnccPcZ?<ߔNϥ-70P6K2#eR.v]ld)vŜ۶mGC b;Y89cM!n2߬ũI[/\9]]?H"&DNAf +-Xrۂ/O4y~hxsX{DTO/{[[Ύނ~ -++OU0'0˜ŁEW|V:6i-bcwZЎ;Rp k +~}PA!HFπArφ uV` c;/wv\?̦`-Ai0W> {(4QOƵ@ՎsG!<5ұ ;+]{MSRfq?hڦE_2yh2wTӼRqqI._^|q +6`7I_$ 1Թ81ӁF> NϰJH +'oy0g*n\uDDS 6\xZaFgx+)-'J3!凶$Q+7o.\3?wkM+@|$ϻΧnIKV8?`aqڷYP- uʳ*[I$~.ti׶&]@QtG$8k/^-zx +-ުlՌ +Yt >.diӉ pEA瑖朦UU5Zj%%oIOO O ܾur"(xExmdFwPj>NGٍ&&sKGFy,g7N:uHѶ-/|hsQK՝]g}gI{6p!S(]e +JG,3GѨLBoJ%' +;r*+ ӥcS&YVD +s੄k?֖!.IA|J  ~A(a[[L P?-CUh 㶭Ǽ2!e$|aiɨ<>LH S]Z斸NC[k5dA3Tf%/; +l@^w: )))˜'z1g5{Wg%%hBsߟ~;q݆ζ3p 3ssG} 0@ +a0Ͽё@ ##]l_S@551d#}Q)@nL;ark"fNKV =d:@S*~|վMHsHX@:l;X(K9#wE \dv`IJIHcp&"䛒?ܗ7m]q?G}BlJ瘳$i$\wm%f +&6&Gnx.Ѥ^V!so=W44_TN!H?b͝;9-ZXK&j䛵98ލ}נ+=]HW퉟L%0s G;L&jTY@)tM:3҄V~wGwgoa?e҄T&hg :osP%Z %5fS\R\bX˿ϊ&Gc{KM[MǙP)YAf顰evUm+VZ[_̶fU_ `G TB=nO`;RдX53UPEk`8Qg&X)88&8%s`[>'|s +YH"p(g{@ݮG;ٰ 4hH:3_,vE#80h?mx3v]F-dkB,s=®(Wz`gydޭ'O9lv{BsllO}Bݥݥ]}QҼ6/[1`*Sg, [zyOF~M@nk;D›GƎCx2Lk ݊y.;rhF! xoEI6=jV~/H=KZz4uɜ ް?/ET'WD6c`_RDQv~+h f-.e2QC 6d1v%D:FK1ްeTQMȽZO>zH"Uu?: )룭 d[оΞv?scw*!fDZY-w>=l$4/c_b Zu NHOªƥQ<:(@4}ڤ - hj +endstream +endobj +501 0 obj +<> +stream +xcd`aa`ddt s /H N+,ILIq1thww<&)yS# YrL?0200<A)$/ 122r'e9dgdV($$*$Teg(h$k* CTĒ<=@.VZh$_˰*úMTϻ@R_DeX-'ҫAq> +stream +x=mLSgm{o^G. ntn@R؋m%l Ĺ@2ʂ /Q$IMYsۧn_~|8H$_d6M֏vuR/"ɵ/L┯WlJ(>I~_-Y'2A,OQ@"T$% IF"76uWFc%URh0jwMP+VPrw7l+RPD.^@N'zV"3Q~5pstAQ_wP[RLr&VoeޯU6 8B|}뗒}8|/Nu|s0as[2!=m}80%|}'&' AHsTd)^۟#GOw/ +N_Eh4&>rgw,ziD).-]/\\ endstream endobj 505 0 obj -<> +<> stream -xcd`aa`dd -r/H N+,ILIq1thww<&)yS# YrL?0200<A)$/ 122r'e9dgdV($$*$Teg(h$k* CTĒ<=@.VZh$_˰*úMTϻ@R_DeX-'ҫAq> -stream -x=mLSgm{o&Q餠 ( x٨:!*b[2|I&;[fB4q,%d"B n0/jD l$,fSn/^>sIDIoޕ;ZS7}Tj22I& -x%$g}e . -uBN&D"x )I% H X*?rFofլ5yZm~=l?*dI5Vc^ԕZKeleh(*+bbcT1ަpb -+\ n[7IJ.J%leޯ#5Yy s!TR 5җKg;7LXlKN͎<Swar =Hp{M+S<fxz+ezw&:O 3gS` D&KRAb&4xs=9ޏ( C̍]N] ? & q(lw:'m$ŋw< tnaG -@2'C#I:ԛߛה@s:V{\{XTn`KKlE'?lW=?3?GgFgf{y' Ch4>R[W5pEdHg +xcd`aa`dds tv 44 l2 ?d1g!"Ћ?,AD~j@1W[mjbQQ~yQfzFs~A%`hii`d``ZXX('gT*hdX뗗%i(gd(((%*@s JKR|SR.dT L,9?:~|xk߫DC ܚ}8wO?wc={Rk_gO߼{StLhﮗc~m*+vϕ+^~!oir\,y8'ppo̽y6~(Ȍ endstream endobj 509 0 obj -<> -stream -xcd`aa`dd -u -v 44 l2 ?d1g!"Ћ?,AD~j@1W[mjbQQ~yQfzFs~A%`hii`d``ZXX('gT*hdX뗗%i(gd(((%*@s JKR|SR.dT L,9?:~|xk߫DC ܚ}8wO?wc={Rk_gO߼{StLhﮗc~m*+vϕ+^~!oir\,y8'ppo̽y6~(ۮ -endstream -endobj -513 0 obj <> stream x]Pn0+/'!qH[PKemCf;I֑~Y-z0*^@pR-fnXܹ3B:jO5HAr\ q Gy;5THN<ާhMpz6}18#yX]G|(Dg@iBVeY U I{+w0nYUa~츌tP 1RUi0_qm+?y{ endstream endobj -516 0 obj +512 0 obj <> stream x]Pn0 +|**!-+$}~@H T( $P=Ē3cgҺܩ6A/A endstream endobj -485 0 obj -<> +488 0 obj +<> stream -xXmS7_w.L3B [|pa5wK}Np2JZ>ZQB -Pң3)8"j -Z2'^8)Ua -ǃ0D<|T``&8-s*#^mq˜hCʄ 'Ka2h@[2፰d`@GQXǒ5f<ͅL͊I5q4`z&`l,RxNiqlL;4Nş7z5`ZT·[LS?Nl:*ʼ뼆5.aڐF_9mQ5_΃יK9(cCy=b4Vpp%xʤpBiqe΢1zei^&7X 4mhz_:4'iܢN7iS^x %D4{ -7."V\7=Ja5ό.=ϱ9"Y`0K,4eZX7`xdǝ4S]U:pWaF -ݪÔQ^թlʡI=ݾO9|堺(a*xVΓg/=_鐝L񴚤Q-jqUx//WSԭy *tb-\H:ק"F?Iڪw`a@b -bߧb7Lk-MWle"\)/,ur}@̖llt\p91t+e {/>8z*L. [d +R<9DA.@3ɼJ[ƧATot)./I^8ԿU i(6Ԅ'O/f5 >]}_%( G -&GUIu~]4(k?#N>0]ڢmڡKО9zIG鐎N[zGgxV^@A5ɑCOh@% -]SI#M)}/ cQ#hxe̦U,}UFZ a(rhWk Ґf.}nY3O_2n9Wu.y?,>rUbSO4{ܷfizY>kמ25m*͗F>p3 vb,Ř^j Y,~+u'iҍ6\o)k=›ZP 1%Xu//#D)XӸ(jZb<3Y80hԔZB$_GP܉3=]51>.QraB!^(@'p:PF.' +sl\NY8HgMa=2˯cʠiN݋QOӼl?Fb$|lݐ]&\%lc :- 7IY#tn{hk?J,FG(Sng@FVaz44}js^ _³]Xw0@@]0`MPHr-0P:vM' sch =|iNظf1\ff"Nb0nQC>KV?|uKWx`Oy&s)kOy|?>Kt)k" jGQE;>8n.eZ'zLЯK?՜v%?-fl k\|{BԱ: 6umu;{ݳcW^68?'InV|9|%lI|?][mš|Y)'9}7ʴ%n͠[5/]XNA,'㤑SV?×Ji#)}MW&'M,;T 6jSքZԜ)ymt[Ӟ˘~0S,"Ʉ˫:g|zvvu!(I HoU%0Jqz&UkL ᴄ~qsv49ȊK(i9w9&ZPL!\Crll 2-a!183x]xfi~q +)\@.!\2>n FPw/(k4elD ~1W^t>-SeZM06ͳ&& R5L UEG72/AG/]/Size -529/W[1 3 2]/Filter/FlateDecode/Length 1263>> +524 0 obj +<<2ab318012312f01e135daa12b3a72ca8>]/Size +525/W[1 3 2]/Filter/FlateDecode/Length 1264>> stream -x5WPUG{+HbKQbo1Ŋ-j4*;jXc5bP%bc2Cd&'8yħs{..cјD`[lc}1?|-r.%9wiz,Fx5;޼>=_xI<zig7!,?fj9+۝<#xTf9$x_ );}'V6$Uоg$g%x> 9Vox+Ϯ -q*4J n]/{0*+۝\+▹:zQ{r>^*=xS=>VjVmcqզ扸&hS'-텂 cþh01c+10]LD7Tz Sv[`o LL5hfcCp(aj8m5 -c$vq7xSq"J&7k-3pYho98}1J,\.Xqړߞ'j\k^p=ڳڞ9=cY4Q<'VY,x/b3^:GxS"5;s5 kKsxٚ%/fW}4{k?-+ꮹxj0EMǴo60#a v,^I1ˡWI +x5yPVU*)斻(($.ac3N4GO653Mc#A`](X91hc,a<6 c l ALdl `[|a{1;ag1&:BuJ~.{b/tUFW3-Ĥ]CDLnF37sŤҺhӰJ_g"1?hҋ)5C/XG`t3up b!8O +}uɞ%bR5yd 'λj&foA:3ĔumF˨G=b*ә<}>h2{X'/ux4'\;O=Q:SIQ_8bf4.ql8VaԹ8g~D3yzȏy&?*&sHNPOq\ UxRoj'g&^œLG=#IQGrz .eXqJUZ`EOp=v .ʗ&Yuں 7/Y[poV,9oC;ǾԤIv! uN L6*S{|*;LsN~{%M$`$Q~vs/DޠsM+xIk~X X#lOrS:FG3joH^œx ++~g,g_AYGbtvCӟkr8ohr85{4}>n|@=cԩ aϿ;grqxlMы [`K &b0` +Em7;u.~d{_w=1 +{c+=~hUc.!83peD藍׌QqEb"NY8bf4 ?|\_Kp1ڻK.nU ޱ\[p=nMX6܋p7}x+ShX/*xm/ѿ9Ze#ga#'j"&Di7WܔKZ/'Z]Hq`AI<-ФcXǦ[bEb endstream endobj startxref -624046 +623475 %%EOF diff --git a/etesian/src/AddFeeds.cpp b/etesian/src/AddFeeds.cpp index 423130ab..2aa5b93d 100644 --- a/etesian/src/AddFeeds.cpp +++ b/etesian/src/AddFeeds.cpp @@ -115,8 +115,8 @@ namespace { void Slice::merge ( DbU::Unit source, DbU::Unit target ) { Interval chunkToMerge = _xspan.getIntersection( Interval(source,target) ); - cdebug.log(129) << " Slice::merge() " << " " << chunkToMerge << endl; - cdebug.log(129) << " | " << _getString() << endl; + cdebug_log(129,0) << " Slice::merge() " << " " << chunkToMerge << endl; + cdebug_log(129,0) << " | " << _getString() << endl; if (chunkToMerge.isEmpty()) return; @@ -126,20 +126,20 @@ namespace { while ( ichunk != _chunks.end() ) { if (imerge == _chunks.end()) { if (chunkToMerge.getVMax() < (*ichunk).getVMin()) { - cdebug.log(129) << " | Insert before " << *ichunk << endl; + cdebug_log(129,0) << " | Insert before " << *ichunk << endl; imerge = _chunks.insert( ichunk, chunkToMerge ); break; } if (chunkToMerge.intersect(*ichunk)) { - cdebug.log(129) << " | Merge with " << *ichunk << endl; + cdebug_log(129,0) << " | Merge with " << *ichunk << endl; imerge = ichunk; (*imerge).merge( chunkToMerge ); } } else { if (chunkToMerge.getVMax() >= (*ichunk).getVMin()) { (*imerge).merge( *ichunk ); - cdebug.log(129) << " | Absorb (erase) " << *ichunk << endl; + cdebug_log(129,0) << " | Absorb (erase) " << *ichunk << endl; ichunk = _chunks.erase( ichunk ); continue; } else @@ -151,8 +151,8 @@ namespace { if (imerge == _chunks.end()) { _chunks.insert( ichunk, chunkToMerge ); - cdebug.log(129) << " | Insert at end " << DbU::getValueString(_ybottom) << " " << chunkToMerge << endl; - cdebug.log(129) << " | " << _getString() << endl; + cdebug_log(129,0) << " | Insert at end " << DbU::getValueString(_ybottom) << " " << chunkToMerge << endl; + cdebug_log(129,0) << " | " << _getString() << endl; } } diff --git a/etesian/src/Configuration.cpp b/etesian/src/Configuration.cpp index 25f1a0a0..c429a8af 100644 --- a/etesian/src/Configuration.cpp +++ b/etesian/src/Configuration.cpp @@ -80,7 +80,7 @@ namespace Etesian { Configuration::~Configuration () { - cdebug.log(129) << "About to delete attribute _cg (CellGauge)." << endl; + cdebug_log(129,0) << "About to delete attribute _cg (CellGauge)." << endl; _cg->destroy (); } diff --git a/etesian/src/EtesianEngine.cpp b/etesian/src/EtesianEngine.cpp index 964693b0..bb5183e7 100644 --- a/etesian/src/EtesianEngine.cpp +++ b/etesian/src/EtesianEngine.cpp @@ -287,7 +287,7 @@ namespace Etesian { void EtesianEngine::_preDestroy () { - cdebug.log(129,1) << "EtesianEngine::_preDestroy()" << endl; + cdebug_log(129,1) << "EtesianEngine::_preDestroy()" << endl; cmess1 << " o Deleting ToolEngine<" << getName() << "> from Cell <" << getCell()->getName() << ">" << endl; diff --git a/etesian/src/PyEtesian.cpp b/etesian/src/PyEtesian.cpp index 39826b90..7d000947 100644 --- a/etesian/src/PyEtesian.cpp +++ b/etesian/src/PyEtesian.cpp @@ -65,7 +65,7 @@ extern "C" { // Module Initialization : "initEtesian ()" DL_EXPORT(void) initEtesian () { - cdebug.log(34) << "initEtesian()" << endl; + cdebug_log(34,0) << "initEtesian()" << endl; PyEtesianEngine_LinkPyType(); PyGraphicEtesianEngine_LinkPyType(); diff --git a/etesian/src/PyEtesianEngine.cpp b/etesian/src/PyEtesianEngine.cpp index 67ed7663..ff439ccf 100644 --- a/etesian/src/PyEtesianEngine.cpp +++ b/etesian/src/PyEtesianEngine.cpp @@ -65,7 +65,7 @@ extern "C" { static PyObject* PyEtesianEngine_get ( PyObject*, PyObject* args ) { - cdebug.log(34) << "PyEtesianEngine_get()" << endl; + cdebug_log(34,0) << "PyEtesianEngine_get()" << endl; EtesianEngine* etesian = NULL; @@ -82,7 +82,7 @@ extern "C" { static PyObject* PyEtesianEngine_create ( PyObject*, PyObject* args ) { - cdebug.log(34) << "PyEtesianEngine_create()" << endl; + cdebug_log(34,0) << "PyEtesianEngine_create()" << endl; EtesianEngine* etesian = NULL; @@ -108,7 +108,7 @@ extern "C" { static PyObject* PyEtesianEngine_setViewer ( PyEtesianEngine* self, PyObject* args ) { - cdebug.log(34) << "PyEtesianEngine_setViewer ()" << endl; + cdebug_log(34,0) << "PyEtesianEngine_setViewer ()" << endl; HTRY METHOD_HEAD( "EtesianEngine.setViewer()" ) @@ -129,7 +129,7 @@ extern "C" { static PyObject* PyEtesianEngine_place ( PyEtesianEngine* self ) { - cdebug.log(34) << "PyEtesianEngine_place()" << endl; + cdebug_log(34,0) << "PyEtesianEngine_place()" << endl; HTRY METHOD_HEAD("EtesianEngine.place()") if (etesian->getViewer()) { diff --git a/etesian/src/PyGraphicEtesianEngine.cpp b/etesian/src/PyGraphicEtesianEngine.cpp index 64d18e41..355a7a48 100644 --- a/etesian/src/PyGraphicEtesianEngine.cpp +++ b/etesian/src/PyGraphicEtesianEngine.cpp @@ -49,7 +49,7 @@ extern "C" { static PyObject* PyGraphicEtesianEngine_grab ( PyObject* ) { - cdebug.log(34) << "PyGraphicEtesianEngine_grab()" << endl; + cdebug_log(34,0) << "PyGraphicEtesianEngine_grab()" << endl; PyGraphicEtesianEngine* pyGraphicEtesianEngine = NULL; HTRY @@ -65,7 +65,7 @@ extern "C" { static PyObject* PyGraphicEtesianEngine_getCell ( PyGraphicEtesianEngine* self ) { - cdebug.log(34) << "PyGraphicEtesianEngine_getCell ()" << endl; + cdebug_log(34,0) << "PyGraphicEtesianEngine_getCell ()" << endl; Cell* cell = NULL; diff --git a/hurricane/src/hurricane/BasicLayer.cpp b/hurricane/src/hurricane/BasicLayer.cpp index 1bda8e6a..240f7510 100644 --- a/hurricane/src/hurricane/BasicLayer.cpp +++ b/hurricane/src/hurricane/BasicLayer.cpp @@ -352,7 +352,7 @@ namespace Hurricane { { if (flags & JsonWriter::RegisterMode) return; - cdebug.log(19) << "JsonBasicLayer::JsonBasicLayer()" << endl; + cdebug_log(19,0) << "JsonBasicLayer::JsonBasicLayer()" << endl; add( "_material" , typeid(string) ); add( "_extractNumber", typeid(string) ); @@ -375,7 +375,7 @@ namespace Hurricane { void JsonBasicLayer::toData(JsonStack& stack) { - cdebug.tabw(19,1); + cdebug_tabw(19,1); check( stack, "JsonBasicLayer::toData" ); @@ -449,7 +449,7 @@ namespace Hurricane { update( stack, basicLayer ); - cdebug.tabw(19,-1); + cdebug_tabw(19,-1); } diff --git a/hurricane/src/hurricane/Box.cpp b/hurricane/src/hurricane/Box.cpp index 4968efec..b16ab4e0 100644 --- a/hurricane/src/hurricane/Box.cpp +++ b/hurricane/src/hurricane/Box.cpp @@ -405,7 +405,7 @@ void JsonBox::toData(JsonStack& stack) if ( (xMin <= xMax) and (yMin <= yMax) ) box.merge( xMin, yMin, xMax, yMax ); - cdebug.log(19) << "Box(" << xMin << ", " + cdebug_log(19,0) << "Box(" << xMin << ", " << yMin << ", " << xMax << ", " << yMax << ")" << endl; diff --git a/hurricane/src/hurricane/Cell.cpp b/hurricane/src/hurricane/Cell.cpp index 8b1bb527..a73b2b7c 100644 --- a/hurricane/src/hurricane/Cell.cpp +++ b/hurricane/src/hurricane/Cell.cpp @@ -194,7 +194,7 @@ namespace Hurricane { UniquifyRelation* relation = NULL; Cell* cell = dynamic_cast( dbo ); - cdebug.log(19) << "topDBo:" << dbo << endl; + cdebug_log(19,0) << "topDBo:" << dbo << endl; if (cell) { relation = UniquifyRelation::get( cell ); @@ -394,7 +394,7 @@ namespace Hurricane { SlavedsRelation* relation = NULL; Cell* cell = dynamic_cast( dbo ); - cdebug.log(19) << "topDBo:" << dbo << endl; + cdebug_log(19,0) << "topDBo:" << dbo << endl; if (cell) { relation = SlavedsRelation::get( cell ); @@ -667,12 +667,12 @@ Entity* Cell::getEntity(const Signature& signature) const return NULL; } - cdebug.log(18) << "Cell::getEntity(): <" << getName() << ">, Net:<" << net->getName() << ">" << endl; + cdebug_log(18,0) << "Cell::getEntity(): <" << getName() << ">, Net:<" << net->getName() << ">" << endl; if (signature.getType() == Signature::TypeContact) { - cdebug.log(18) << "Looking in Contacts..." << endl; + cdebug_log(18,0) << "Looking in Contacts..." << endl; for ( Contact* component : getComponents().getSubSet() ) { - cdebug.log(18) << "| " << component << endl; + cdebug_log(18,0) << "| " << component << endl; if ( (component->getLayer () == signature.getLayer()) and (component->getDx () == signature.getDim(Signature::ContactDx)) and (component->getDy () == signature.getDim(Signature::ContactDy)) @@ -683,9 +683,9 @@ Entity* Cell::getEntity(const Signature& signature) const } if (signature.getType() == Signature::TypeVertical) { - cdebug.log(18) << "Looking in Verticals..." << endl; + cdebug_log(18,0) << "Looking in Verticals..." << endl; for ( Vertical* component : getComponents().getSubSet() ) { - cdebug.log(18) << "| " << component << endl; + cdebug_log(18,0) << "| " << component << endl; if ( (component->getLayer () == signature.getLayer()) and (component->getWidth () == signature.getDim(Signature::VerticalWidth)) and (component->getX () == signature.getDim(Signature::VerticalX)) @@ -696,9 +696,9 @@ Entity* Cell::getEntity(const Signature& signature) const } if (signature.getType() == Signature::TypeHorizontal) { - cdebug.log(18) << "Looking in Horizontals..." << endl; + cdebug_log(18,0) << "Looking in Horizontals..." << endl; for ( Horizontal* component : getComponents().getSubSet() ) { - cdebug.log(18) << "| " << component << endl; + cdebug_log(18,0) << "| " << component << endl; if ( (component->getLayer () == signature.getLayer()) and (component->getWidth () == signature.getDim(Signature::HorizontalWidth)) and (component->getY () == signature.getDim(Signature::HorizontalY)) @@ -709,9 +709,9 @@ Entity* Cell::getEntity(const Signature& signature) const } if (signature.getType() == Signature::TypePad) { - cdebug.log(18) << "Looking in Pads..." << endl; + cdebug_log(18,0) << "Looking in Pads..." << endl; for ( Pad* component : getComponents().getSubSet() ) { - cdebug.log(18) << "| " << component << endl; + cdebug_log(18,0) << "| " << component << endl; if ( (component->getLayer() == signature.getLayer()) and (component->getBoundingBox().getXMin() == signature.getDim(Signature::PadXMin)) and (component->getBoundingBox().getYMin() == signature.getDim(Signature::PadYMin)) @@ -817,7 +817,7 @@ DeepNet* Cell::getDeepNet ( Path path, const Net* leafNet ) const void Cell::flattenNets(unsigned int flags) // *************************************** { - cdebug.log(18) << "Cell::flattenNets() flags:0x" << hex << flags << endl; + cdebug_log(18,0) << "Cell::flattenNets() flags:0x" << hex << flags << endl; UpdateSession::open(); @@ -1003,7 +1003,7 @@ Cell* Cell::getClone() void Cell::uniquify(unsigned int depth) // ************************************ { - cdebug.log(18,1) << "Cell::uniquify() " << this << endl; + cdebug_log(18,1) << "Cell::uniquify() " << this << endl; vector deepNets; for ( DeepNet* deepNet : getNets().getSubSet() ) { @@ -1019,7 +1019,7 @@ void Cell::uniquify(unsigned int depth) for ( Instance* instance : getInstances() ) { Cell* masterCell = instance->getMasterCell(); - cdebug.log(18) << "| " << instance << endl; + cdebug_log(18,0) << "| " << instance << endl; if (masterCell->isTerminal()) continue; if (masterCells.find(masterCell) == masterCells.end()) { @@ -1042,8 +1042,8 @@ void Cell::uniquify(unsigned int depth) cell->uniquify( depth-1 ); } - cdebug.tabw(18,-1); - cdebug.log(18) << "Cell::uniquify() END " << this << endl; + cdebug_tabw(18,-1); + cdebug_log(18,0) << "Cell::uniquify() END " << this << endl; } void Cell::materialize() diff --git a/hurricane/src/hurricane/Component.cpp b/hurricane/src/hurricane/Component.cpp index d5e1f3c8..cdd355c5 100644 --- a/hurricane/src/hurricane/Component.cpp +++ b/hurricane/src/hurricane/Component.cpp @@ -330,7 +330,7 @@ ComponentFilter Component::getIsUnderFilter(const Box& area) void Component::materialize() // ************************** { - cdebug.log(18) << "Component::materialize() - " << this << endl; + cdebug_log(18,0) << "Component::materialize() - " << this << endl; if (!isMaterialized()) { Cell* cell = getCell(); @@ -350,7 +350,7 @@ void Component::materialize() void Component::unmaterialize() // **************************** { - cdebug.log(18) << "Component::unmaterialize() " << this << endl; + cdebug_log(18,0) << "Component::unmaterialize() " << this << endl; if (isMaterialized()) { Cell* cell = getCell(); @@ -408,7 +408,7 @@ void Component::_postCreate() void Component::_preDestroy() // ************************* { - cdebug.log(18,1) << "entering Component::_Predestroy: " << this << endl; + cdebug_log(18,1) << "entering Component::_Predestroy: " << this << endl; clearProperties(); @@ -468,8 +468,8 @@ void Component::_preDestroy() if (_net) _net->_getComponentSet()._remove(this); - cdebug.log(18) << "exiting Component::_Predestroy:" << endl; - cdebug.tabw(18,-1); + cdebug_log(18,0) << "exiting Component::_Predestroy:" << endl; + cdebug_tabw(18,-1); } void Component::_toJson( JsonWriter* writer ) const diff --git a/hurricane/src/hurricane/Contact.cpp b/hurricane/src/hurricane/Contact.cpp index 7db49e72..6ad25244 100644 --- a/hurricane/src/hurricane/Contact.cpp +++ b/hurricane/src/hurricane/Contact.cpp @@ -325,14 +325,14 @@ void Contact::setOffset(const DbU::Unit& dx, const DbU::Unit& dy) void Contact::_preDestroy() // *********************** { - cdebug.log(18,1) << "entering Contact::PreDestroy " << this << endl; + cdebug_log(18,1) << "entering Contact::PreDestroy " << this << endl; Inherit::_preDestroy(); _anchorHook.detach(); - cdebug.log(19) << "exiting Contact::PreDestroy" << endl; - cdebug.tabw(18,-1); + cdebug_log(19,0) << "exiting Contact::PreDestroy" << endl; + cdebug_tabw(18,-1); } void Contact::_toJson(JsonWriter* writer) const diff --git a/hurricane/src/hurricane/ContactLayer.cpp b/hurricane/src/hurricane/ContactLayer.cpp index c5badb40..b53eb29d 100644 --- a/hurricane/src/hurricane/ContactLayer.cpp +++ b/hurricane/src/hurricane/ContactLayer.cpp @@ -225,7 +225,7 @@ namespace Hurricane { { if (flags & JsonWriter::RegisterMode) return; - cdebug.log(19) << "JsonContactLayer::JsonContactLayer()" << endl; + cdebug_log(19,0) << "JsonContactLayer::JsonContactLayer()" << endl; add( "_metal" , typeid(string) ); add( "_cut" , typeid(string) ); @@ -254,7 +254,7 @@ namespace Hurricane { void JsonContactLayer::toData(JsonStack& stack) { - cdebug.tabw(19,1); + cdebug_tabw(19,1); check( stack, "JsonContactLayer::toData" ); @@ -333,7 +333,7 @@ namespace Hurricane { update( stack, layer ); - cdebug.tabw(19,-1); + cdebug_tabw(19,-1); } diff --git a/hurricane/src/hurricane/DeepNet.cpp b/hurricane/src/hurricane/DeepNet.cpp index 25a210e5..d910a5e2 100644 --- a/hurricane/src/hurricane/DeepNet.cpp +++ b/hurricane/src/hurricane/DeepNet.cpp @@ -56,7 +56,7 @@ namespace Hurricane { ) , _netOccurrence(netOccurrence) { - cdebug.log(18) << "DeepNet::DeepNet() " << getCell() << " " << this << endl; + cdebug_log(18,0) << "DeepNet::DeepNet() " << getCell() << " " << this << endl; } @@ -154,7 +154,7 @@ namespace Hurricane { JsonDeepNet::JsonDeepNet ( unsigned long flags ) : JsonNet(flags) { - cdebug.log(19) << "JsonDeepNet::JsonDeepNet()" << endl; + cdebug_log(19,0) << "JsonDeepNet::JsonDeepNet()" << endl; add( "_netOccurrence", typeid(Occurrence) ); } @@ -174,7 +174,7 @@ namespace Hurricane { void JsonDeepNet::toData(JsonStack& stack) { - cdebug.tabw(19,1); + cdebug_tabw(19,1); check( stack, "JsonDeepNet::toData" ); presetId( stack ); @@ -191,7 +191,7 @@ namespace Hurricane { setName( ".Net" ); update( stack, _net ); - cdebug.tabw(19,-1); + cdebug_tabw(19,-1); } diff --git a/hurricane/src/hurricane/DiffusionLayer.cpp b/hurricane/src/hurricane/DiffusionLayer.cpp index c68f5229..7a0da093 100644 --- a/hurricane/src/hurricane/DiffusionLayer.cpp +++ b/hurricane/src/hurricane/DiffusionLayer.cpp @@ -253,7 +253,7 @@ namespace Hurricane { { if (flags & JsonWriter::RegisterMode) return; - cdebug.log(19) << "JsonDiffusionLayer::JsonDiffusionLayer()" << endl; + cdebug_log(19,0) << "JsonDiffusionLayer::JsonDiffusionLayer()" << endl; add( "_active" , typeid(string) ); add( "_diffusion" , typeid(string) ); @@ -281,7 +281,7 @@ namespace Hurricane { void JsonDiffusionLayer::toData(JsonStack& stack) { - cdebug.tabw(19,1); + cdebug_tabw(19,1); check( stack, "JsonDiffusionLayer::toData" ); @@ -360,7 +360,7 @@ namespace Hurricane { update( stack, layer ); - cdebug.tabw(19,-1); + cdebug_tabw(19,-1); } diff --git a/hurricane/src/hurricane/Entity.cpp b/hurricane/src/hurricane/Entity.cpp index dadaf30c..1a4ca9ef 100644 --- a/hurricane/src/hurricane/Entity.cpp +++ b/hurricane/src/hurricane/Entity.cpp @@ -80,7 +80,7 @@ namespace Hurricane { if (_flags & ForcedIdMode) { if (_flags & NextIdSet) { _flags &= ~NextIdSet; - cdebug.log(18) << demangle(typeid(*this).name()) + cdebug_log(18,0) << demangle(typeid(*this).name()) << "::getNextId(): Consuming the preset id:" << _nextId << endl; return _nextId; } else { @@ -223,14 +223,14 @@ namespace Hurricane { void JsonEntityRef::toData ( JsonStack& stack ) { - cdebug.tabw(19,1); + cdebug_tabw(19,1); check( stack, "JsonEntityRef::toData" ); unsigned int jsonId = get( stack, "_id" ); Entity* entity = stack.getEntity( jsonId ); - cdebug.log(19) << "jsonId:" << jsonId << " entity:" << entity << endl; + cdebug_log(19,0) << "jsonId:" << jsonId << " entity:" << entity << endl; if (entity) { JsonBaseArray* array = jget< JsonBaseArray >( stack ); @@ -243,7 +243,7 @@ namespace Hurricane { update( stack, NULL ); - cdebug.tabw(19,-1); + cdebug_tabw(19,-1); } } // End of Hurricane namespace. diff --git a/hurricane/src/hurricane/ExtensionGo.cpp b/hurricane/src/hurricane/ExtensionGo.cpp index 8d67ddc5..f8aefce1 100644 --- a/hurricane/src/hurricane/ExtensionGo.cpp +++ b/hurricane/src/hurricane/ExtensionGo.cpp @@ -50,7 +50,7 @@ namespace Hurricane { void ExtensionGo::_preDestroy () { - cdebug.log(18) << "ExtensionGo::_preDestroy() - " << (void*)this << endl; + cdebug_log(18,0) << "ExtensionGo::_preDestroy() - " << (void*)this << endl; Go::_preDestroy (); } @@ -73,7 +73,7 @@ namespace Hurricane { void ExtensionGo::unmaterialize () { - cdebug.log(18,1) << "ExtensionGo::unmaterialize() - start" << (void*)this << endl; + cdebug_log(18,1) << "ExtensionGo::unmaterialize() - start" << (void*)this << endl; if ( isMaterialized() ) { ExtensionSlice* slice = _cell->getExtensionSlice( getName() ); @@ -84,8 +84,8 @@ namespace Hurricane { } } - cdebug.tabw(18,-1); - cdebug.log(18) << "ExtensionGo::unmaterialize() - completed" << endl; + cdebug_tabw(18,-1); + cdebug_log(18,0) << "ExtensionGo::unmaterialize() - completed" << endl; } diff --git a/hurricane/src/hurricane/ExtensionSlice.cpp b/hurricane/src/hurricane/ExtensionSlice.cpp index 39fc9809..1b9d7496 100644 --- a/hurricane/src/hurricane/ExtensionSlice.cpp +++ b/hurricane/src/hurricane/ExtensionSlice.cpp @@ -66,7 +66,7 @@ namespace Hurricane { ExtensionSlice::~ExtensionSlice () { - cdebug.log(18) << "ExtensionSlice::~ExtensionSlice() - " << (void*)this << endl; + cdebug_log(18,0) << "ExtensionSlice::~ExtensionSlice() - " << (void*)this << endl; _cell->_removeSlice ( this ); } diff --git a/hurricane/src/hurricane/Instance.cpp b/hurricane/src/hurricane/Instance.cpp index 90060f79..5ca9b01e 100644 --- a/hurricane/src/hurricane/Instance.cpp +++ b/hurricane/src/hurricane/Instance.cpp @@ -428,8 +428,8 @@ void Instance::setPlacementStatus(const PlacementStatus& placementStatus) void Instance::setMasterCell(Cell* masterCell, bool secureFlag) // ************************************************************ { - cdebug.log(18,1) << "Instance::setMasterCell() on " << this << endl; - cdebug.log(18) << "NEW masterCell:" << masterCell << endl; + cdebug_log(18,1) << "Instance::setMasterCell() on " << this << endl; + cdebug_log(18,0) << "NEW masterCell:" << masterCell << endl; if (masterCell != _masterCell) { UpdateSession::open(); @@ -475,14 +475,14 @@ void Instance::setMasterCell(Cell* masterCell, bool secureFlag) masterNetList.pop_front(); } - cdebug.log(18) << "Remove " << this << " from " << _masterCell << endl; + cdebug_log(18,0) << "Remove " << this << " from " << _masterCell << endl; _masterCell->_getSlaveInstanceSet()._remove(this); _masterCell = masterCell; - cdebug.log(18) << "Add (before) " << this << " to " << _masterCell << endl; + cdebug_log(18,0) << "Add (before) " << this << " to " << _masterCell << endl; _masterCell->isUnique(); _masterCell->_getSlaveInstanceSet()._insert(this); - cdebug.log(18) << "Add (after) " << this << " to " << _masterCell << endl; + cdebug_log(18,0) << "Add (after) " << this << " to " << _masterCell << endl; _masterCell->isUnique(); for_each_net(externalNet, _masterCell->getExternalNets()) { @@ -493,7 +493,7 @@ void Instance::setMasterCell(Cell* masterCell, bool secureFlag) UpdateSession::close(); } - cdebug.tabw(19,-1); + cdebug_tabw(19,-1); } void Instance::uniquify() diff --git a/hurricane/src/hurricane/JsonReader.cpp b/hurricane/src/hurricane/JsonReader.cpp index d09c399e..d0270add 100644 --- a/hurricane/src/hurricane/JsonReader.cpp +++ b/hurricane/src/hurricane/JsonReader.cpp @@ -212,7 +212,7 @@ namespace Hurricane { } } - cdebug.log(19) << "HurricaneHandler::String() [key/typename] \"" << value << "\"." << endl; + cdebug_log(19,0) << "HurricaneHandler::String() [key/typename] \"" << value << "\"." << endl; _key.clear(); return true; } @@ -230,13 +230,13 @@ namespace Hurricane { _key = key; if (_state & TypenameKey) return true; - //cdebug.log(19) << "HurricaneHandler::Key() key:" << _key << " objects().size():" << objects().size() << endl; + //cdebug_log(19,0) << "HurricaneHandler::Key() key:" << _key << " objects().size():" << objects().size() << endl; if (objects().back()) { if ( doCallToData() and not _key.empty() and (_key[0] != '_') ) { // The key is no longer a simple attribute of the object. // Triggers it's creation in the Json stack. - cdebug.log(19) << "HurricaneHandler::key() Calling " + cdebug_log(19,0) << "HurricaneHandler::key() Calling " << objects().back()->getTypeName() << "::toData(JsonStack&)." << endl; objects().back()->toData( stack() ); } @@ -248,28 +248,28 @@ namespace Hurricane { bool HurricaneHandler::StartObject () { - cdebug.log(19,1) << "Hurricane::StartObject()" << endl; + cdebug_log(19,1) << "Hurricane::StartObject()" << endl; _state |= TypenameKey; _objectName = _key; objects().push_back( new JsonDummy() ); _key.clear(); - cdebug.log(19) << "objects().push_back(NULL), size():" << objects().size() << "." << endl; - cdebug.tabw(19,1); + cdebug_log(19,0) << "objects().push_back(NULL), size():" << objects().size() << "." << endl; + cdebug_tabw(19,1); return true; } bool HurricaneHandler::EndObject ( SizeType ) { - cdebug.tabw(19,-2); - cdebug.log(19) << "HurricaneHandler::EndObject()" << endl; - cdebug.tabw(19,1); + cdebug_tabw(19,-2); + cdebug_log(19,0) << "HurricaneHandler::EndObject()" << endl; + cdebug_tabw(19,1); _objectName.clear(); if (not isDummy()) { if (doCallToData()) { - cdebug.log(19) << "Calling " << objects().back()->getTypeName() << "::toData(JsonStack&)." << endl; + cdebug_log(19,0) << "Calling " << objects().back()->getTypeName() << "::toData(JsonStack&)." << endl; objects().back()->toData( stack() ); } if (stack().size() > 1) { @@ -277,21 +277,21 @@ namespace Hurricane { } } - cdebug.log(19) << "objects().pop_back(), size():" << objects().size() << "." << endl; + cdebug_log(19,0) << "objects().pop_back(), size():" << objects().size() << "." << endl; if (objects().back()->issetFlags(JsonWriter::DBoObject)) stack().pop_back_dbo(); delete objects().back(); objects().pop_back(); - cdebug.tabw(19,-1); + cdebug_tabw(19,-1); return true; } bool HurricaneHandler::StartArray() { - cdebug.log(19,1) << "HurricaneHandler::StartArray() key:\"" << _key << "\"." << endl; + cdebug_log(19,1) << "HurricaneHandler::StartArray() key:\"" << _key << "\"." << endl; _objectName.clear(); if (_key[0] != '+') { @@ -306,8 +306,8 @@ namespace Hurricane { bool HurricaneHandler::EndArray ( SizeType ) { - cdebug.tabw(19,-1); - cdebug.log(19) << "HurricaneHandler::EndArray()" << endl; + cdebug_tabw(19,-1); + cdebug_log(19,0) << "HurricaneHandler::EndArray()" << endl; return true; } @@ -351,7 +351,7 @@ namespace Hurricane { fileName += ".json.bz2"; _file = fopen( fileName.c_str(), "r" ); - cdebug.log(19) << "_file:" << _file << ", _buffer:" << (void*)_buffer << endl; + cdebug_log(19,0) << "_file:" << _file << ", _buffer:" << (void*)_buffer << endl; if (not _file) { throw Error( "JsonReader::parse(): Cannot open file \"%s\"." diff --git a/hurricane/src/hurricane/Net.cpp b/hurricane/src/hurricane/Net.cpp index 6cea668f..76e4d5b0 100644 --- a/hurricane/src/hurricane/Net.cpp +++ b/hurricane/src/hurricane/Net.cpp @@ -1113,7 +1113,7 @@ string Net_SlavePlugs::Locator::_getString() const { if (flags & JsonWriter::RegisterMode) return; - cdebug.log(19) << "JsonNet::JsonNet()" << endl; + cdebug_log(19,0) << "JsonNet::JsonNet()" << endl; add( "_name" , typeid(string) ); add( "_isGlobal" , typeid(bool) ); @@ -1125,7 +1125,7 @@ string Net_SlavePlugs::Locator::_getString() const add( "+componentSet" , typeid(JsonArray) ); add( "+externalComponents", typeid(JsonArray) ); - cdebug.log(19) << "Disabling auto-materialization (" << _autoMaterialize << ")." << endl; + cdebug_log(19,0) << "Disabling auto-materialization (" << _autoMaterialize << ")." << endl; Go::disableAutoMaterialization(); } @@ -1140,7 +1140,7 @@ string Net_SlavePlugs::Locator::_getString() const if (_autoMaterialize) { Go::enableAutoMaterialization(); - cdebug.log(18) << "Enabling auto-materialization." << endl; + cdebug_log(18,0) << "Enabling auto-materialization." << endl; } } @@ -1155,7 +1155,7 @@ string Net_SlavePlugs::Locator::_getString() const void JsonNet::toData ( JsonStack& stack ) { - cdebug.tabw(19,1); + cdebug_tabw(19,1); check( stack, "JsonNet::toData" ); presetId( stack ); @@ -1169,7 +1169,7 @@ string Net_SlavePlugs::Locator::_getString() const update( stack, _net ); - cdebug.tabw(19,-1); + cdebug_tabw(19,-1); } diff --git a/hurricane/src/hurricane/NetExternalComponents.cpp b/hurricane/src/hurricane/NetExternalComponents.cpp index ed5f8b40..abd7d874 100644 --- a/hurricane/src/hurricane/NetExternalComponents.cpp +++ b/hurricane/src/hurricane/NetExternalComponents.cpp @@ -149,12 +149,12 @@ namespace Hurricane { void JsonNetExternalComponents::toData ( JsonStack& stack ) { - cdebug.tabw(19,1); + cdebug_tabw(19,1); check ( stack, "JsonNetExternalComponents::toData" ); update( stack, NULL ); - cdebug.tabw(19,-1); + cdebug_tabw(19,-1); } diff --git a/hurricane/src/hurricane/Plug.cpp b/hurricane/src/hurricane/Plug.cpp index 4c84cf51..5bff9ef1 100644 --- a/hurricane/src/hurricane/Plug.cpp +++ b/hurricane/src/hurricane/Plug.cpp @@ -180,14 +180,14 @@ void Plug::_destroy() void Plug::_preDestroy() // ******************** { - cdebug.log(18,1) << "entering Plug::_preDestroy: " << this << endl; + cdebug_log(18,1) << "entering Plug::_preDestroy: " << this << endl; Inherit::_preDestroy(); _instance->_getPlugMap()._remove(this); - cdebug.log(18) << "exiting Plug::_preDestroy:" << endl; - cdebug.tabw(18,-1); + cdebug_log(18,0) << "exiting Plug::_preDestroy:" << endl; + cdebug_tabw(18,-1); } void Plug::_toJson(JsonWriter* writer) const @@ -289,7 +289,7 @@ void JsonPlug::toData(JsonStack& stack) } else { cerr << Error( "JsonPlug::toData(): Cannot find \".Instance\" in stack, skipping." ) << endl; } - cdebug.log(19) << "Instance Plug contents ignored for now." << endl; + cdebug_log(19,0) << "Instance Plug contents ignored for now." << endl; update( stack, plug ); } diff --git a/hurricane/src/hurricane/Quark.cpp b/hurricane/src/hurricane/Quark.cpp index 0795ded6..8e1c35d7 100644 --- a/hurricane/src/hurricane/Quark.cpp +++ b/hurricane/src/hurricane/Quark.cpp @@ -81,7 +81,7 @@ void Quark::_postCreate() void Quark::_preDestroy() // ********************* { - cdebug.log(18,1) << "entering Quark::_preDestroy: " << this << endl; + cdebug_log(18,1) << "entering Quark::_preDestroy: " << this << endl; Inherit::_preDestroy(); @@ -92,8 +92,8 @@ void Quark::_preDestroy() else if (NULL_SHARED_PATH_QUARK_MAP) NULL_SHARED_PATH_QUARK_MAP->_remove(this); - cdebug.log(18) << "exiting Quark::_preDestroy:" << endl; - cdebug.tabw(18,-1); + cdebug_log(18,0) << "exiting Quark::_preDestroy:" << endl; + cdebug_tabw(18,-1); } string Quark::_getString() const diff --git a/hurricane/src/hurricane/RegularLayer.cpp b/hurricane/src/hurricane/RegularLayer.cpp index ada523ed..688aff35 100644 --- a/hurricane/src/hurricane/RegularLayer.cpp +++ b/hurricane/src/hurricane/RegularLayer.cpp @@ -350,7 +350,7 @@ namespace Hurricane { { if (flags & JsonWriter::RegisterMode) return; - cdebug.log(19) << "JsonRegularLayer::JsonRegularLayer()" << endl; + cdebug_log(19,0) << "JsonRegularLayer::JsonRegularLayer()" << endl; add( "_basicLayer" , typeid(string) ); add( "_enclosure" , typeid(int64_t) ); @@ -373,7 +373,7 @@ namespace Hurricane { void JsonRegularLayer::toData( JsonStack& stack ) { - cdebug.tabw(19,1); + cdebug_tabw(19,1); check( stack, "JsonRegularLayer::toData" ); @@ -440,7 +440,7 @@ namespace Hurricane { update( stack, layer ); - cdebug.tabw(19,-1); + cdebug_tabw(19,-1); } } // Hurricane namespace. diff --git a/hurricane/src/hurricane/RoutingPad.cpp b/hurricane/src/hurricane/RoutingPad.cpp index 726ba860..0d1e2bbf 100644 --- a/hurricane/src/hurricane/RoutingPad.cpp +++ b/hurricane/src/hurricane/RoutingPad.cpp @@ -236,14 +236,14 @@ namespace Hurricane { void RoutingPad::_preDestroy () { - cdebug.log(18,1) << "entering RoutingPad::preDestroy: " << this << endl; + cdebug_log(18,1) << "entering RoutingPad::preDestroy: " << this << endl; if ( not _occurrence.getPath().isEmpty() ) _occurrence.getMasterCell()->_removeSlaveEntity(_occurrence.getEntity(),this); Inherit::_preDestroy(); - cdebug.log(18) << "exiting RoutingPad::preDestroy:" << endl; - cdebug.tabw(18,-1); + cdebug_log(18,0) << "exiting RoutingPad::preDestroy:" << endl; + cdebug_tabw(18,-1); } diff --git a/hurricane/src/hurricane/Rubber.cpp b/hurricane/src/hurricane/Rubber.cpp index a676eaf8..86768860 100644 --- a/hurricane/src/hurricane/Rubber.cpp +++ b/hurricane/src/hurricane/Rubber.cpp @@ -179,7 +179,7 @@ void Rubber::_destroy() void Rubber::_preDestroy() // ********************** { - cdebug.log(18,1) << "entering Rubber::_preDestroy: " << this << endl; + cdebug_log(18,1) << "entering Rubber::_preDestroy: " << this << endl; Inherit::_preDestroy(); @@ -192,8 +192,8 @@ void Rubber::_preDestroy() _net->_getRubberSet()._remove(this); - cdebug.log(18) << "exiting Rubber::_preDestroy:" << endl; - cdebug.tabw(18,-1); + cdebug_log(18,0) << "exiting Rubber::_preDestroy:" << endl; + cdebug_tabw(18,-1); } string Rubber::_getString() const diff --git a/hurricane/src/hurricane/Segment.cpp b/hurricane/src/hurricane/Segment.cpp index aa0ecc21..b2ce337a 100644 --- a/hurricane/src/hurricane/Segment.cpp +++ b/hurricane/src/hurricane/Segment.cpp @@ -294,15 +294,15 @@ void Segment::invert() void Segment::_preDestroy() // *********************** { - cdebug.log(18,1) << "entering Segment::_preDestroy: " << this << endl; + cdebug_log(18,1) << "entering Segment::_preDestroy: " << this << endl; Inherit::_preDestroy(); _sourceHook.detach(); _targetHook.detach(); - cdebug.log(18) << "exiting Segment::_preDestroy:" << endl; - cdebug.tabw(18,-1); + cdebug_log(18,0) << "exiting Segment::_preDestroy:" << endl; + cdebug_tabw(18,-1); } void Segment::_toJson(JsonWriter* writer) const diff --git a/hurricane/src/hurricane/Signature.cpp b/hurricane/src/hurricane/Signature.cpp index c300bf9e..da486c8a 100644 --- a/hurricane/src/hurricane/Signature.cpp +++ b/hurricane/src/hurricane/Signature.cpp @@ -107,7 +107,7 @@ namespace Hurricane { void JsonSignature::toData ( JsonStack& stack ) { - cdebug.log(19) << (void*)this << " _subTypeName:" << _subTypeName << endl; + cdebug_log(19,0) << (void*)this << " _subTypeName:" << _subTypeName << endl; check( stack, "JsonSignature::toData" ); diff --git a/hurricane/src/hurricane/Technology.cpp b/hurricane/src/hurricane/Technology.cpp index 5b5ce23a..1f7aa05a 100644 --- a/hurricane/src/hurricane/Technology.cpp +++ b/hurricane/src/hurricane/Technology.cpp @@ -640,7 +640,7 @@ JsonTechnology::JsonTechnology(unsigned long flags) { if (flags & JsonWriter::RegisterMode) return; - cdebug.log(19) << "JsonTechnology::JsonTechnology()" << endl; + cdebug_log(19,0) << "JsonTechnology::JsonTechnology()" << endl; add( "_name" , typeid(string) ); add( "+layers", typeid(JsonArray) ); @@ -683,7 +683,7 @@ void JsonTechnology::addBlockageRef(const string& blockageLayer, BasicLayer* lay void JsonTechnology::toData(JsonStack& stack) // ****************************************** { - cdebug.tabw(19,1); + cdebug_tabw(19,1); check( stack, "JsonTechnology::toData" ); @@ -708,7 +708,7 @@ void JsonTechnology::toData(JsonStack& stack) update( stack, techno ); - cdebug.tabw(19,-1); + cdebug_tabw(19,-1); } } // End of Hurricane namespace. diff --git a/hurricane/src/hurricane/TransistorLayer.cpp b/hurricane/src/hurricane/TransistorLayer.cpp index 41ecde68..c94713b3 100644 --- a/hurricane/src/hurricane/TransistorLayer.cpp +++ b/hurricane/src/hurricane/TransistorLayer.cpp @@ -258,7 +258,7 @@ namespace Hurricane { { if (flags & JsonWriter::RegisterMode) return; - cdebug.log(19) << "JsonTransistorLayer::JsonTransistorLayer()" << endl; + cdebug_log(19,0) << "JsonTransistorLayer::JsonTransistorLayer()" << endl; add( "_gate" , typeid(string) ); add( "_active" , typeid(string) ); @@ -289,7 +289,7 @@ namespace Hurricane { void JsonTransistorLayer::toData ( JsonStack& stack ) { - cdebug.tabw(19,1); + cdebug_tabw(19,1); check( stack, "JsonTransistorLayer::toData" ); @@ -374,7 +374,7 @@ namespace Hurricane { update( stack, layer ); - cdebug.tabw(19,-1); + cdebug_tabw(19,-1); } diff --git a/hurricane/src/hurricane/UpdateSession.cpp b/hurricane/src/hurricane/UpdateSession.cpp index 1f02e2a6..55316a0c 100644 --- a/hurricane/src/hurricane/UpdateSession.cpp +++ b/hurricane/src/hurricane/UpdateSession.cpp @@ -147,7 +147,7 @@ void UpdateSession::onNotOwned() void Go::invalidate(bool propagateFlag) // ************************************ { - cdebug.log(18,1) << "Go::invalidate(" << this << ")" << endl; + cdebug_log(18,1) << "Go::invalidate(" << this << ")" << endl; if (not UPDATOR_STACK or UPDATOR_STACK->empty()) throw Error( "Can't invalidate go: empty update session stack" ); @@ -184,30 +184,30 @@ void Go::invalidate(bool propagateFlag) } } - cdebug.log(18) << "Go::invalidate(" << this << ") - Completed." << endl; - cdebug.tabw(18,-1); + cdebug_log(18,0) << "Go::invalidate(" << this << ") - Completed." << endl; + cdebug_tabw(18,-1); } void UpdateSession::open() // *********************** { - cdebug.log(18,1) << "UpdateSession::open()" << endl; + cdebug_log(18,1) << "UpdateSession::open()" << endl; UpdateSession::_create(); } void UpdateSession::close() // ************************ { - cdebug.tabw(18,-1); - cdebug.log(18,1) << "UpdateSession::close() - Start materialization." << endl; + cdebug_tabw(18,-1); + cdebug_log(18,1) << "UpdateSession::close() - Start materialization." << endl; if (!UPDATOR_STACK || UPDATOR_STACK->empty()) throw Error("Can't end update : empty update session stack"); UPDATOR_STACK->top()->_destroy(); - cdebug.tabw(18,-1); - cdebug.log(18) << "UpdateSession::close() - Materialization completed." << endl; + cdebug_tabw(18,-1); + cdebug_log(18,0) << "UpdateSession::close() - Materialization completed." << endl; } diff --git a/hurricane/src/hurricane/ViaLayer.cpp b/hurricane/src/hurricane/ViaLayer.cpp index 6be52d52..37dd19b7 100644 --- a/hurricane/src/hurricane/ViaLayer.cpp +++ b/hurricane/src/hurricane/ViaLayer.cpp @@ -230,7 +230,7 @@ namespace Hurricane { { if (flags & JsonWriter::RegisterMode) return; - cdebug.log(19) << "JsonViaLayer::JsonViaLayer()" << endl; + cdebug_log(19,0) << "JsonViaLayer::JsonViaLayer()" << endl; add( "_bottom" , typeid(string) ); add( "_cut" , typeid(string) ); @@ -255,7 +255,7 @@ namespace Hurricane { void JsonViaLayer::toData(JsonStack& stack) { - cdebug.tabw(19,1); + cdebug_tabw(19,1); check( stack, "JsonViaLayer::toData" ); @@ -326,7 +326,7 @@ namespace Hurricane { update( stack, layer ); - cdebug.tabw(19,-1); + cdebug_tabw(19,-1); } diff --git a/hurricane/src/hurricane/grenier/json/JsonReader.cpp b/hurricane/src/hurricane/grenier/json/JsonReader.cpp index e75e0026..1ea711ea 100644 --- a/hurricane/src/hurricane/grenier/json/JsonReader.cpp +++ b/hurricane/src/hurricane/grenier/json/JsonReader.cpp @@ -176,7 +176,7 @@ namespace { _objects[_objects.size()-1]->setName( _objectName ); } - cdebug.log(19) << "HurricaneHandler::String() [key/typename] " << value << endl; + cdebug_log(19,0) << "HurricaneHandler::String() [key/typename] " << value << endl; return true; } @@ -201,13 +201,13 @@ namespace { return true; } - //cdebug.log(19) << "HurricaneHandler::Key() key:" << _key << " _objects.size():" << _objects.size() << endl; + //cdebug_log(19,0) << "HurricaneHandler::Key() key:" << _key << " _objects.size():" << _objects.size() << endl; if (_objects.back()) { if ( doCallToData() and not _key.empty() and (_key[0] != '_') ) { // The key is no longer a simple attribute of the object. // Triggers it's creation in the Json stack. - cdebug.log(19) << "HurricaneHandler::key() Calling " + cdebug_log(19,0) << "HurricaneHandler::key() Calling " << _objects.back()->getTypeName() << "::toData(JsonStack&)." << endl; _objects.back()->toData( _stack ); } @@ -219,17 +219,17 @@ namespace { bool HurricaneHandler::StartObject () { - cdebug.log(19) << "Hurricane::StartObject()" << endl; + cdebug_log(19,0) << "Hurricane::StartObject()" << endl; ltracein(50); _state |= TypenameKey; // if (doCallToData()) { - // cdebug.log(19) << "Calling " << _objects.back()->getTypeName() << "::toData(JsonStack&)." << endl; + // cdebug_log(19,0) << "Calling " << _objects.back()->getTypeName() << "::toData(JsonStack&)." << endl; // _objects.back()->toData( _stack ); // } _objectName = (_key == ".Array") ? "" : _key; _objects.push_back( NULL ); - cdebug.log(19) << "_objects.push_back(NULL), size():" << _objects.size() << "." << endl; + cdebug_log(19,0) << "_objects.push_back(NULL), size():" << _objects.size() << "." << endl; ltracein(50); return true; @@ -239,7 +239,7 @@ namespace { bool HurricaneHandler::EndObject ( SizeType ) { ltraceout(50,2); - cdebug.log(19) << "HurricaneHandler::EndObject()" << endl; + cdebug_log(19,0) << "HurricaneHandler::EndObject()" << endl; ltracein(50); _objectName.clear(); @@ -247,11 +247,11 @@ namespace { _state &= ~SkipObject; } else { if (doCallToData()) { - cdebug.log(19) << "Calling " << _objects.back()->getTypeName() << "::toData(JsonStack&)." << endl; + cdebug_log(19,0) << "Calling " << _objects.back()->getTypeName() << "::toData(JsonStack&)." << endl; _objects.back()->toData( _stack ); } if (_objects.size() > 1) { - cdebug.log(19) << "_objects.pop_back(), size():" << _objects.size() << "." << endl; + cdebug_log(19,0) << "_objects.pop_back(), size():" << _objects.size() << "." << endl; delete _objects.back(); _objects.pop_back(); } @@ -259,14 +259,14 @@ namespace { if (_stack[-1].first[0] != '_') _stack.pop_back(); } } - cdebug.tabw(19,-1); + cdebug_tabw(19,-1); return true; } bool HurricaneHandler::StartArray() { - cdebug.log(19) << "HurricaneHandler::StartArray() key:\"" << _key << "\"." << endl; + cdebug_log(19,0) << "HurricaneHandler::StartArray() key:\"" << _key << "\"." << endl; ltracein(50); _objectName.clear(); @@ -285,14 +285,14 @@ namespace { bool HurricaneHandler::EndArray ( SizeType ) { - cdebug.tabw(19,-1); - cdebug.log(19) << "HurricaneHandler::EndArray()" << endl; + cdebug_tabw(19,-1); + cdebug_log(19,0) << "HurricaneHandler::EndArray()" << endl; ltracein(50); _state &= ~(ArrayMode | SkipArray); _key.clear(); - cdebug.tabw(19,-1); + cdebug_tabw(19,-1); return true; } diff --git a/hurricane/src/hurricane/grenier/json/JsonReader.h b/hurricane/src/hurricane/grenier/json/JsonReader.h index e23e6374..6e0114f7 100644 --- a/hurricane/src/hurricane/grenier/json/JsonReader.h +++ b/hurricane/src/hurricane/grenier/json/JsonReader.h @@ -655,7 +655,7 @@ namespace Hurricane { { } template inline void JsonStack::push_back ( const std::string& key, T t ) { - cdebug.log(19) << "JsonStack::push_back() key:" << key << " t:" << t + cdebug_log(19,0) << "JsonStack::push_back() key:" << key << " t:" << t << " (" << demangle(typeid(T)) << ")." << endl; _stack.push_back(std::make_pair(key,boost::any(t))); } @@ -667,7 +667,7 @@ namespace Hurricane { << (count+1) << " elements remains to pop." << std::endl; break; } - cdebug.log(19) << "| _stack.pop_back() " << _stack.back().first << endl; + cdebug_log(19,0) << "| _stack.pop_back() " << _stack.back().first << endl; _stack.pop_back(); } } @@ -685,7 +685,7 @@ namespace Hurricane { int i = _stack.size()-1; do { if (_stack[i].first == key) { - cdebug.log(19) << "JsonStack::rhas(): key \"" << key << "\" found at index:" + cdebug_log(19,0) << "JsonStack::rhas(): key \"" << key << "\" found at index:" << (i-(int)_stack.size()) << " (i:" << i << ")." << endl; return i-(int)_stack.size(); } @@ -693,7 +693,7 @@ namespace Hurricane { --i; } while ( true ); - cdebug.log(19) << "JsonStack::rhas(): key \"" << key << "\" not found (returning index: 0)." << endl; + cdebug_log(19,0) << "JsonStack::rhas(): key \"" << key << "\" not found (returning index: 0)." << endl; return 0; } @@ -703,7 +703,7 @@ namespace Hurricane { int i = _stack.size()-1; do { if (_stack[i].first == key) { - cdebug.log(19) << "JsonStack::as() k:" << key + cdebug_log(19,0) << "JsonStack::as() k:" << key << " t:" << _stack[i].second.type().name() << std::endl; return boost::any_cast( _stack[i].second ); } diff --git a/hurricane/src/hurricane/grenier/json/Net.cpp b/hurricane/src/hurricane/grenier/json/Net.cpp index 5654ba5e..0c58ea43 100644 --- a/hurricane/src/hurricane/grenier/json/Net.cpp +++ b/hurricane/src/hurricane/grenier/json/Net.cpp @@ -1095,7 +1095,7 @@ void JsonNet::toData(JsonStack& stack) update( stack, net ); - cdebug.tabw(19,-1); + cdebug_tabw(19,-1); } } // End of Hurricane namespace. diff --git a/hurricane/src/hurricane/hurricane/Collection.h b/hurricane/src/hurricane/hurricane/Collection.h index a84bc090..1e320d87 100644 --- a/hurricane/src/hurricane/hurricane/Collection.h +++ b/hurricane/src/hurricane/hurricane/Collection.h @@ -1107,16 +1107,16 @@ template inline void jsonWrite ( JsonWriter* w, const std::string& key, Hurricane::GenericCollection collection ) { if (cdebug.enabled(19)) - cdebug.log(19) << "jsonWrite< GenericCollection<" << Hurricane::demangle(typeid(Type).name()) + cdebug_log(19,0) << "jsonWrite< GenericCollection<" << Hurricane::demangle(typeid(Type).name()) << "> >(w,key,coll)" << " key:\"" << key << "\"" << std::endl; - cdebug.tabw(19,1); + cdebug_tabw(19,1); w->key( key ); w->startArray(); for ( Type element : collection ) jsonWrite( w, element ); w->endArray(); - cdebug.tabw(19,-1); + cdebug_tabw(19,-1); } diff --git a/hurricane/src/hurricane/hurricane/Commons.h b/hurricane/src/hurricane/hurricane/Commons.h index c91ed20f..e0553044 100644 --- a/hurricane/src/hurricane/hurricane/Commons.h +++ b/hurricane/src/hurricane/hurricane/Commons.h @@ -815,6 +815,10 @@ inline tstream& operator<< ( tstream& o, const std::string& s ) extern tstream cdebug; +#define cdebug_log(level,indent) if (cdebug.enabled(level)) cdebug.log(level,indent) +#define cdebug_tabw(level,indent) cdebug.tabw(level,indent) + + // x-----------------------------------------------------------------x // | Classes Neededs in All Hurricane Modules | // x-----------------------------------------------------------------x diff --git a/hurricane/src/hurricane/hurricane/JsonObject.h b/hurricane/src/hurricane/hurricane/JsonObject.h index cf1068b8..05c6e47e 100644 --- a/hurricane/src/hurricane/hurricane/JsonObject.h +++ b/hurricane/src/hurricane/hurricane/JsonObject.h @@ -284,7 +284,7 @@ namespace Hurricane { template inline void JsonStack::push_back ( const std::string& key, T t ) { - cdebug.log(19) << "JsonStack::push_back(T) key:" << key << " value:" << t + cdebug_log(19,0) << "JsonStack::push_back(T) key:" << key << " value:" << t << " (" << demangle(typeid(T)) << ")." << endl; _stack.push_back(std::make_pair(key,boost::any(t))); } @@ -297,7 +297,7 @@ namespace Hurricane { << (count+1) << " elements remains to pop." << std::endl; break; } - cdebug.log(19) << "| _stack.pop_back() \"" << _stack.back().first + cdebug_log(19,0) << "| _stack.pop_back() \"" << _stack.back().first << "\", size:" << _stack.size() << ", dbos:" << _dbos.size() << endl; _stack.pop_back(); } @@ -316,7 +316,7 @@ namespace Hurricane { int i = _stack.size()-1; do { if (_stack[i].first == key) { - cdebug.log(19) << "JsonStack::rhas(): key \"" << key << "\" found at index:" + cdebug_log(19,0) << "JsonStack::rhas(): key \"" << key << "\" found at index:" << (i-(int)_stack.size()) << " (i:" << i << ") " << "(" << demangle(_stack[i].second.type().name()) << ")." << endl; @@ -326,7 +326,7 @@ namespace Hurricane { --i; } while ( true ); - cdebug.log(19) << "JsonStack::rhas(): key \"" << key << "\" not found (returning index: 0)." << endl; + cdebug_log(19,0) << "JsonStack::rhas(): key \"" << key << "\" not found (returning index: 0)." << endl; return 0; } @@ -336,7 +336,7 @@ namespace Hurricane { int i = _stack.size()-1; do { if (_stack[i].first == key) { - cdebug.log(19) << "JsonStack::as() k:" << key + cdebug_log(19,0) << "JsonStack::as() k:" << key << " value:" << demangle(_stack[i].second.type().name()) << std::endl; return boost::any_cast( _stack[i].second ); } @@ -405,7 +405,7 @@ namespace Hurricane { template inline void JsonObject::update ( JsonStack& stack, T hobject ) { - cdebug.log(19) << "JsonObject::update()" << endl; + cdebug_log(19,0) << "JsonObject::update()" << endl; stack.pop_back( _attributes.size() ); stack.push_back( getStackName(), hobject ); setObject( hobject ); diff --git a/hurricane/src/hurricane/hurricane/JsonWriter.h b/hurricane/src/hurricane/hurricane/JsonWriter.h index 1160b7a6..7ea4097a 100644 --- a/hurricane/src/hurricane/hurricane/JsonWriter.h +++ b/hurricane/src/hurricane/hurricane/JsonWriter.h @@ -221,12 +221,12 @@ inline void jsonWrite ( JsonWriter* w, const std::string& key, const C& ) template inline void jsonWrite ( JsonWriter* w, const C* object ) { - cdebug.log(19,1) << "jsonWrite<" << Hurricane::demangle(typeid(C).name()) << "*>(w,object)" << std::endl; + cdebug_log(19,1) << "jsonWrite<" << Hurricane::demangle(typeid(C).name()) << "*>(w,object)" << std::endl; if (object) object->toJson( w ); else jsonWrite(w); - cdebug.tabw(19,-1); + cdebug_tabw(19,-1); } @@ -240,21 +240,21 @@ inline void jsonWrite ( JsonWriter* w, const std::string& key, C* object ) template inline void jsonWrite ( JsonWriter* w, const std::string& key, const C* object ) { - cdebug.log(19,1) << "jsonWrite<" << Hurricane::demangle(typeid(C).name()) << "*>(w,key,object)" + cdebug_log(19,1) << "jsonWrite<" << Hurricane::demangle(typeid(C).name()) << "*>(w,key,object)" << " key:\"" << key << "\"" << std::endl; w->key( key ); if (object) jsonWrite( w, object ); else jsonWrite(w); - cdebug.tabw(19,-1); + cdebug_tabw(19,-1); } template inline void jsonWrite ( JsonWriter* w, const std::string& key, const std::vector& v ) { - cdebug.log(19,1) << "jsonWrite< vector<" << Hurricane::demangle(typeid(Element).name()) + cdebug_log(19,1) << "jsonWrite< vector<" << Hurricane::demangle(typeid(Element).name()) << "> >(w,key,v)" << " key:\"" << key << "\"" << std::endl; w->key( key ); @@ -262,7 +262,7 @@ inline void jsonWrite ( JsonWriter* w, const std::string& key, const std::vecto for ( Element element : v ) jsonWrite( w, element ); w->endArray(); - cdebug.tabw(19,-1); + cdebug_tabw(19,-1); } @@ -271,7 +271,7 @@ inline void jsonWrite ( JsonWriter* w , const std::string& key , const std::map& m ) { - cdebug.log(19,1) << "jsonWrite< map<" + cdebug_log(19,1) << "jsonWrite< map<" << Hurricane::demangle(typeid(Key ).name()) << "," << Hurricane::demangle(typeid(Element).name()) << "," << Hurricane::demangle(typeid(Compare).name()) @@ -282,7 +282,7 @@ inline void jsonWrite ( JsonWriter* w for ( auto mapElement : m ) jsonWrite( w, mapElement.second ); w->endArray(); - cdebug.tabw(19,-1); + cdebug_tabw(19,-1); } diff --git a/hurricane/src/isobar/ProxyProperty.cpp b/hurricane/src/isobar/ProxyProperty.cpp index e525118a..788fe3ed 100644 --- a/hurricane/src/isobar/ProxyProperty.cpp +++ b/hurricane/src/isobar/ProxyProperty.cpp @@ -80,12 +80,12 @@ ProxyProperty* ProxyProperty::create ( void* shadow ) { void ProxyProperty::_preDestroy () { if ( _owner ) _owner->_onDestroyed ( this ); - cdebug.log(20) << "ProxyProperty::_owner := " << hex << (void*)_owner << endl; + cdebug_log(20,0) << "ProxyProperty::_owner := " << hex << (void*)_owner << endl; if ( _offset > 0 ) { void** shadowMember = ( (void**)( (unsigned long)_shadow + _offset ) ); - cdebug.log(20) << "ProxyProperty::_shadowMember := " << hex << *shadowMember << endl; + cdebug_log(20,0) << "ProxyProperty::_shadowMember := " << hex << *shadowMember << endl; *shadowMember = NULL; } diff --git a/hurricane/src/isobar/PyBasicLayer.cpp b/hurricane/src/isobar/PyBasicLayer.cpp index 87011753..316fc8c2 100644 --- a/hurricane/src/isobar/PyBasicLayer.cpp +++ b/hurricane/src/isobar/PyBasicLayer.cpp @@ -47,7 +47,7 @@ extern "C" { static PyObject* PyBasicLayer_create ( PyObject*, PyObject* args ) { - cdebug.log(20) << "PyBasicLayer_create()" << endl; + cdebug_log(20,0) << "PyBasicLayer_create()" << endl; BasicLayer* basicLayer = NULL; @@ -96,7 +96,7 @@ extern "C" { static PyObject* PyBasicLayer_getMaterial ( PyBasicLayer *self ) { - cdebug.log(20) << "PyBasicLayer_getMaterial ()" << endl; + cdebug_log(20,0) << "PyBasicLayer_getMaterial ()" << endl; METHOD_HEAD ( "BasicLayer.getMaterial()" ) BasicLayer::Material* material = NULL; diff --git a/hurricane/src/isobar/PyBox.cpp b/hurricane/src/isobar/PyBox.cpp index bb7bcf08..6be21130 100644 --- a/hurricane/src/isobar/PyBox.cpp +++ b/hurricane/src/isobar/PyBox.cpp @@ -62,7 +62,7 @@ extern "C" { // Class Method : "PyBox_NEW ()" static PyObject* PyBox_NEW (PyObject *module, PyObject *args) { - cdebug.log(20) << "PyBox_NEW()" << endl; + cdebug_log(20,0) << "PyBox_NEW()" << endl; Box* box = NULL; PyBox* pyBox = NULL; @@ -106,13 +106,13 @@ extern "C" { static int PyBox_Init ( PyBox* self, PyObject* args, PyObject* kwargs ) { - cdebug.log(20) << "PyBox_Init(): " << (void*)self << endl; + cdebug_log(20,0) << "PyBox_Init(): " << (void*)self << endl; return 0; } static PyObject* PyBox_getCenter ( PyBox *self ) { - cdebug.log(20) << "PyBox_getCenter()" << endl; + cdebug_log(20,0) << "PyBox_getCenter()" << endl; METHOD_HEAD ( "Box.Center()" ) @@ -128,7 +128,7 @@ extern "C" { static PyObject* PyBox_getUnion ( PyBox *self, PyObject* args ) { - cdebug.log(20) << "PyBox_getUnion()" << endl; + cdebug_log(20,0) << "PyBox_getUnion()" << endl; METHOD_HEAD ( "Box.getUnion()" ) @@ -154,7 +154,7 @@ extern "C" { // Attribute Method : "PyBox_getIntersection ()" static PyObject* PyBox_getIntersection ( PyBox *self, PyObject* args ) { - cdebug.log(20) << "PyBox_getIntersection()" << endl; + cdebug_log(20,0) << "PyBox_getIntersection()" << endl; METHOD_HEAD ( "Box.getIntersection()" ) @@ -179,7 +179,7 @@ extern "C" { // Attribute Method : "PyBox_contains ()" static PyObject* PyBox_contains ( PyBox *self, PyObject* args ) { - cdebug.log(20) << "PyBox_contains ()" << endl; + cdebug_log(20,0) << "PyBox_contains ()" << endl; METHOD_HEAD ( "Box.contains()" ) @@ -214,7 +214,7 @@ extern "C" { // Attribute Method : "PyBox_intersect ()" static PyObject* PyBox_intersect ( PyBox *self, PyObject* args ) { - cdebug.log(20) << "PyBox_intersect ()" << endl; + cdebug_log(20,0) << "PyBox_intersect ()" << endl; bool result = false; HTRY @@ -244,7 +244,7 @@ extern "C" { // Attribute Method : "PyBox_isConstrainedBy ()" static PyObject* PyBox_isConstrainedBy ( PyBox *self, PyObject* args ) { - cdebug.log(20) << "PyBox_isConstrainedBy ()" << endl; + cdebug_log(20,0) << "PyBox_isConstrainedBy ()" << endl; bool result = false; HTRY @@ -273,7 +273,7 @@ extern "C" { // Attribute Method : "PyBox_makeEmpty ()" static PyObject* PyBox_makeEmpty ( PyBox *self, PyObject* args ) { - cdebug.log(20) << "PyBox_makeEmpty ()" << endl; + cdebug_log(20,0) << "PyBox_makeEmpty ()" << endl; HTRY METHOD_HEAD ( "Box.makeEmpty()" ) @@ -289,7 +289,7 @@ extern "C" { // Attribute Method : "PyBox_inflate ()" static PyObject* PyBox_inflate ( PyBox *self, PyObject* args ) { - cdebug.log(20) << "PyBox_inflate ()" << endl; + cdebug_log(20,0) << "PyBox_inflate ()" << endl; METHOD_HEAD ( "Box.inflate()" ) @@ -326,7 +326,7 @@ extern "C" { // Attribute Method : "PyBox_merge ()" static PyObject* PyBox_merge ( PyBox *self, PyObject* args ) { - cdebug.log(20) << "Box_merge()" << endl; + cdebug_log(20,0) << "Box_merge()" << endl; METHOD_HEAD ( "Box.merge()" ) @@ -364,7 +364,7 @@ extern "C" { // Attribute Method : "PyBox_translate ()" static PyObject* PyBox_translate ( PyBox *self, PyObject* args ) { - cdebug.log(20) << "PyBox_translate ()" << endl; + cdebug_log(20,0) << "PyBox_translate ()" << endl; HTRY METHOD_HEAD ( "Box.translate()" ) diff --git a/hurricane/src/isobar/PyBreakpoint.cpp b/hurricane/src/isobar/PyBreakpoint.cpp index 6bc70edb..114f8d63 100644 --- a/hurricane/src/isobar/PyBreakpoint.cpp +++ b/hurricane/src/isobar/PyBreakpoint.cpp @@ -44,13 +44,13 @@ extern "C" { static void PyBreakpoint_DeAlloc ( PyBreakpoint* self ) { - cdebug.log(20) << "PySingletonObject_DeAlloc(" << hex << self << ")" << endl; + cdebug_log(20,0) << "PySingletonObject_DeAlloc(" << hex << self << ")" << endl; } static PyObject* PyBreakpoint_stop ( PyObject*, PyObject *args ) { - cdebug.log(20) << "PyBreakpoint_stop()" << endl; + cdebug_log(20,0) << "PyBreakpoint_stop()" << endl; bool result = false; @@ -71,7 +71,7 @@ extern "C" { static PyObject* PyBreakpoint_setStopLevel ( PyObject*, PyObject* args ) { - cdebug.log(20) << "PyBreakpoint_setStopLevel()" << endl; + cdebug_log(20,0) << "PyBreakpoint_setStopLevel()" << endl; HTRY @@ -89,7 +89,7 @@ extern "C" { static PyObject* PyBreakpoint_getStopLevel ( PyObject* ) { - cdebug.log(20) << "PyBreakpoint_getStopLevel()" << endl; + cdebug_log(20,0) << "PyBreakpoint_getStopLevel()" << endl; return Py_BuildValue ( "i", Breakpoint::getStopLevel() ); @@ -112,7 +112,7 @@ extern "C" { // extern void PyBreakpoint_LinkPyType() // { - // cdebug.log(20) << "PyBreakpoint_LinkType()" << endl; + // cdebug_log(20,0) << "PyBreakpoint_LinkType()" << endl; // PyTypeBreakpoint.tp_new = (newfunc) PyType_GenericNew; // PyTypeBreakpoint.tp_dealloc = (destructor)PyBreakpoint_DeAlloc; diff --git a/hurricane/src/isobar/PyCell.cpp b/hurricane/src/isobar/PyCell.cpp index 801dadf6..2c33ef84 100644 --- a/hurricane/src/isobar/PyCell.cpp +++ b/hurricane/src/isobar/PyCell.cpp @@ -65,7 +65,7 @@ extern "C" { // Attribute Method : "PyCell_create ()" PyObject* PyCell_create ( PyObject*, PyObject *args ) { - cdebug.log(20) << "PyCell_create()" << endl; + cdebug_log(20,0) << "PyCell_create()" << endl; char* name = NULL; PyLibrary* pyLibrary = NULL; @@ -88,7 +88,7 @@ extern "C" { // Attribute Method : "PyCell_getLibrary ()" static PyObject* PyCell_getLibrary ( PyCell *self ) { - cdebug.log(20) << "PyCell_getLibrary ()" << endl; + cdebug_log(20,0) << "PyCell_getLibrary ()" << endl; Library* library = NULL; @@ -110,7 +110,7 @@ extern "C" { // Attribute Method : "PyCell_getInstance ()" static PyObject* PyCell_getInstance ( PyCell *self, PyObject* args ) { - cdebug.log(20) << "PyCell_getInstance ()" << endl; + cdebug_log(20,0) << "PyCell_getInstance ()" << endl; METHOD_HEAD("Cell.getInstance()") Instance* instance = NULL; @@ -133,7 +133,7 @@ extern "C" { // Attribute Method : "PyCell_getInstances()" static PyObject* PyCell_getInstances( PyCell *self ) { - cdebug.log(20) << "PyCell_getInstances()" << endl; + cdebug_log(20,0) << "PyCell_getInstances()" << endl; METHOD_HEAD ( "Cell.getInstances()" ) @@ -158,7 +158,7 @@ extern "C" { // Attribute Method : "PyCell_getInstancesUnder()" static PyObject* PyCell_getInstancesUnder(PyCell *self, PyObject* args) { - cdebug.log(20) << "PyCell_getInstancesUnder()" << endl; + cdebug_log(20,0) << "PyCell_getInstancesUnder()" << endl; METHOD_HEAD("Cell.getInstancesUnder()") @@ -188,7 +188,7 @@ extern "C" { // Attribute Method : "PyCell_getSlaveInstances()" static PyObject* PyCell_getSlaveInstances(PyCell *self) { - cdebug.log(20) << "PyCell_getSlaveInstances()" << endl; + cdebug_log(20,0) << "PyCell_getSlaveInstances()" << endl; METHOD_HEAD("Cell.getSlaveInstances()") @@ -213,7 +213,7 @@ extern "C" { // Attribute Method : "PyCell_getComponents()" static PyObject* PyCell_getComponents(PyCell *self) { - cdebug.log(20) << "PyCell_getComponents()" << endl; + cdebug_log(20,0) << "PyCell_getComponents()" << endl; METHOD_HEAD("Cell.getComponents()") @@ -239,7 +239,7 @@ extern "C" { // Attribute Method : "PyCell_getComponentsUnder()" static PyObject* PyCell_getComponentsUnder(PyCell *self, PyObject* args) { - cdebug.log(20) << "PyCell_getComponentsUnder()" << endl; + cdebug_log(20,0) << "PyCell_getComponentsUnder()" << endl; METHOD_HEAD("Cell.getComponentsUnder()") @@ -268,7 +268,7 @@ extern "C" { // Attribute Method : "PyCell_getOccurrences()" static PyObject* PyCell_getOccurrences(PyCell *self) { - cdebug.log(20) << "PyCell_getOccurrences()" << endl; + cdebug_log(20,0) << "PyCell_getOccurrences()" << endl; METHOD_HEAD("Cell.getOccurrences()") @@ -294,7 +294,7 @@ extern "C" { // Attribute Method : "PyCell_getOccurrencesUnder()" static PyObject* PyCell_getOccurrencesUnder(PyCell *self, PyObject* args) { - cdebug.log(20) << "PyCell_getOccurrencesUnder()" << endl; + cdebug_log(20,0) << "PyCell_getOccurrencesUnder()" << endl; METHOD_HEAD("Cell.getOccurrencesUnder()") @@ -323,7 +323,7 @@ extern "C" { // Attribute Method : "PyCell_getLeafInstanceOccurrences()" static PyObject* PyCell_getLeafInstanceOccurrences(PyCell *self) { - cdebug.log(20) << "PyCell_getLeafInstanceOccurrences()" << endl; + cdebug_log(20,0) << "PyCell_getLeafInstanceOccurrences()" << endl; METHOD_HEAD ( "Cell.getLeafInstanceOccurrences()" ) @@ -348,7 +348,7 @@ extern "C" { // Attribute Method : "PyCell_getLeafInstanceOccurrencesUnder()" static PyObject* PyCell_getLeafInstanceOccurrencesUnder(PyCell *self, PyObject* args) { - cdebug.log(20) << "PyCell_getLeafInstanceOccurrencesUnder()" << endl; + cdebug_log(20,0) << "PyCell_getLeafInstanceOccurrencesUnder()" << endl; METHOD_HEAD ( "Cell.getLeafInstanceOccurrencesUnder()" ) @@ -378,7 +378,7 @@ extern "C" { // Attribute Method : "PyCell_getReferences()" static PyObject* PyCell_getReferences(PyCell *self) { - cdebug.log(20) << "PyCell_getReferences()" << endl; + cdebug_log(20,0) << "PyCell_getReferences()" << endl; METHOD_HEAD("Cell.getReferences()") @@ -403,7 +403,7 @@ extern "C" { // Attribute Method : "PyCell_getHyperNets()" static PyObject* PyCell_getHyperNets(PyCell *self) { - cdebug.log(20) << "PyCell_getHyperNets()" << endl; + cdebug_log(20,0) << "PyCell_getHyperNets()" << endl; METHOD_HEAD ( "Cell.getHyperNets()" ) @@ -428,7 +428,7 @@ extern "C" { // Attribute Method : "PyCell_getNet ()" static PyObject* PyCell_getNet(PyCell *self, PyObject* args) { - cdebug.log(20) << "PyCell_getNet ()" << endl; + cdebug_log(20,0) << "PyCell_getNet ()" << endl; METHOD_HEAD ( "Cell.getNet()" ) Net* net = NULL; @@ -449,7 +449,7 @@ extern "C" { // Attribute Method : "PyCell_getNets ()" static PyObject* PyCell_getNets ( PyCell *self ) { - cdebug.log(20) << "PyCell_getNets()" << endl; + cdebug_log(20,0) << "PyCell_getNets()" << endl; METHOD_HEAD("Cell.getNets()") @@ -474,7 +474,7 @@ extern "C" { // Attribute Method : "PyCell_getExternalNets()" static PyObject* PyCell_getExternalNets(PyCell *self) { - cdebug.log(20) << "PyCell_getExternalNets()" << endl; + cdebug_log(20,0) << "PyCell_getExternalNets()" << endl; METHOD_HEAD("Cell.getExternalNets()") @@ -498,7 +498,7 @@ extern "C" { // Attribute Method : "PyCell_getClockNets()" static PyObject* PyCell_getClockNets(PyCell *self) { - cdebug.log(20) << "PyCell_getClockNets()" << endl; + cdebug_log(20,0) << "PyCell_getClockNets()" << endl; METHOD_HEAD("Cell.getClockNets") @@ -522,7 +522,7 @@ extern "C" { // Attribute Method : "PyCell_getSupplyNets()" static PyObject* PyCell_getSupplyNets(PyCell *self) { - cdebug.log(20) << "PyCell_getSupplyNets()" << endl; + cdebug_log(20,0) << "PyCell_getSupplyNets()" << endl; METHOD_HEAD ( "Cell.getSupplyNets()" ) @@ -547,7 +547,7 @@ extern "C" { // Attribute Method : "PyCell_getPowerNets()" static PyObject* PyCell_getPowerNets(PyCell *self) { - cdebug.log(20) << "PyCell_getPowerNets()" << endl; + cdebug_log(20,0) << "PyCell_getPowerNets()" << endl; METHOD_HEAD ( "Cell.getPowerNets()" ) @@ -572,7 +572,7 @@ extern "C" { // Attribute Method : "PyCell_getGroundNets()" static PyObject* PyCell_getGroundNets(PyCell *self) { - cdebug.log(20) << "PyCell_getGroundNets()" << endl; + cdebug_log(20,0) << "PyCell_getGroundNets()" << endl; METHOD_HEAD ( "Cell.getGroundNets()" ) @@ -596,7 +596,7 @@ extern "C" { // Attribute Method : "PyCell_getAbutmentBox ()" static PyObject* PyCell_getAbutmentBox ( PyCell *self ) { - cdebug.log(20) << "PyCell_getAbutmentBox()" << endl; + cdebug_log(20,0) << "PyCell_getAbutmentBox()" << endl; METHOD_HEAD ( "Cell.getAbutmentBox()" ) @@ -620,7 +620,7 @@ extern "C" { // Attribute Method : "PyCell_setAbutmentBox ()" static PyObject* PyCell_setAbutmentBox ( PyCell *self, PyObject* args ) { - cdebug.log(20) << "Cell.setAbutmentBox()" << endl; + cdebug_log(20,0) << "Cell.setAbutmentBox()" << endl; HTRY METHOD_HEAD ( "Cell.setAbutmentBox()" ) @@ -640,7 +640,7 @@ extern "C" { // Attribute Method : "PyCell_setTerminal ()" static PyObject* PyCell_setTerminal ( PyCell *self, PyObject* args ) { - cdebug.log(20) << "PyCell_setTerminal ()" << endl; + cdebug_log(20,0) << "PyCell_setTerminal ()" << endl; HTRY METHOD_HEAD ( "Cell.setTerminal()" ) @@ -658,7 +658,7 @@ extern "C" { // Attribute Method : "PyCell_uniquify ()" static PyObject* PyCell_uniquify ( PyCell *self, PyObject* args ) { - cdebug.log(20) << "PyCell_uniquify ()" << endl; + cdebug_log(20,0) << "PyCell_uniquify ()" << endl; HTRY METHOD_HEAD ( "Cell.uniquify()" ) @@ -677,7 +677,7 @@ extern "C" { // Attribute Method : "PyCell_getClone ()" static PyObject* PyCell_getClone ( PyCell *self ) { - cdebug.log(20) << "PyCell_getClone ()" << endl; + cdebug_log(20,0) << "PyCell_getClone ()" << endl; Cell* cloneCell = NULL; HTRY diff --git a/hurricane/src/isobar/PyComponent.cpp b/hurricane/src/isobar/PyComponent.cpp index 366bc790..09deb04f 100644 --- a/hurricane/src/isobar/PyComponent.cpp +++ b/hurricane/src/isobar/PyComponent.cpp @@ -61,7 +61,7 @@ extern "C" { static PyObject* PyComponent_getPosition ( PyComponent *self ) { - cdebug.log(20) << "PyComponent_getPosition ()" << endl; + cdebug_log(20,0) << "PyComponent_getPosition ()" << endl; METHOD_HEAD ( "Component.getPosition()" ) PyPoint* pyPoint = PyObject_NEW ( PyPoint, &PyTypePoint ); @@ -77,7 +77,7 @@ extern "C" { static PyObject* PyComponent_getNet ( PyComponent *self ) { - cdebug.log(20) << "PyComponent_getNet ()" << endl; + cdebug_log(20,0) << "PyComponent_getNet ()" << endl; Net* net = NULL; @@ -93,7 +93,7 @@ extern "C" { static PyObject* PyComponent_getLayer ( PyComponent *self ) { - cdebug.log(20) << "PyComponent_getLayer ()" << endl; + cdebug_log(20,0) << "PyComponent_getLayer ()" << endl; METHOD_HEAD ( "Component.getLayer()" ) Layer* layer = NULL; @@ -108,7 +108,7 @@ extern "C" { static PyObject* PyComponent_getCenter ( PyComponent *self ) { - cdebug.log(20) << "PyComponent_getCenter ()" << endl; + cdebug_log(20,0) << "PyComponent_getCenter ()" << endl; METHOD_HEAD( "Component.getCenter()" ) PyPoint* pyPoint = PyObject_NEW( PyPoint, &PyTypePoint ); @@ -124,7 +124,7 @@ extern "C" { static PyObject* PyComponent_getBoundingBox ( PyComponent *self, PyObject* args ) { - cdebug.log(20) << "PyComponent_getBoundingBox ()" << endl; + cdebug_log(20,0) << "PyComponent_getBoundingBox ()" << endl; METHOD_HEAD ( "Component.getBoundingBox()" ) PyBox* pyBox = PyObject_NEW ( PyBox, &PyTypeBox ); @@ -154,7 +154,7 @@ extern "C" { static PyObject* PyComponent_getConnexComponents ( PyComponent *self ) { - cdebug.log(20) << "PyComponent_getConnexComponents()" << endl; + cdebug_log(20,0) << "PyComponent_getConnexComponents()" << endl; METHOD_HEAD( "PyComponent.getConnexComponents()" ) PyComponentCollection* pyComponentCollection = NULL; @@ -176,7 +176,7 @@ extern "C" { static PyObject* PyComponent_getSlaveComponents ( PyComponent *self ) { - cdebug.log(20) << "PyComponent_getSlaveComponents()" << endl; + cdebug_log(20,0) << "PyComponent_getSlaveComponents()" << endl; METHOD_HEAD( "PyComponent.getSlaveComponents()" ) PyComponentCollection* pyComponentCollection = NULL; diff --git a/hurricane/src/isobar/PyContact.cpp b/hurricane/src/isobar/PyContact.cpp index 22b53f51..70dae493 100644 --- a/hurricane/src/isobar/PyContact.cpp +++ b/hurricane/src/isobar/PyContact.cpp @@ -66,7 +66,7 @@ extern "C" { static PyObject* PyContact_create ( PyObject*, PyObject *args ) { - cdebug.log(20) << "PyContact_create()" << endl; + cdebug_log(20,0) << "PyContact_create()" << endl; Contact* contact = NULL; @@ -99,7 +99,7 @@ extern "C" { static PyObject* PyContact_translate ( PyContact *self, PyObject* args ) { - cdebug.log(20) << "PyContact_translate ()" << endl; + cdebug_log(20,0) << "PyContact_translate ()" << endl; HTRY METHOD_HEAD ( "Contact.translate()" ) diff --git a/hurricane/src/isobar/PyContactLayer.cpp b/hurricane/src/isobar/PyContactLayer.cpp index 030ec2b0..c090a26c 100644 --- a/hurricane/src/isobar/PyContactLayer.cpp +++ b/hurricane/src/isobar/PyContactLayer.cpp @@ -76,7 +76,7 @@ extern "C" { static PyObject* PyContactLayer_create ( PyObject*, PyObject* args ) { - cdebug.log(20) << "PyContactLayer_create()" << endl; + cdebug_log(20,0) << "PyContactLayer_create()" << endl; ContactLayer* contactLayer = NULL; diff --git a/hurricane/src/isobar/PyDataBase.cpp b/hurricane/src/isobar/PyDataBase.cpp index 491da1ba..4fdad060 100644 --- a/hurricane/src/isobar/PyDataBase.cpp +++ b/hurricane/src/isobar/PyDataBase.cpp @@ -38,7 +38,7 @@ extern "C" { static PyObject* PyDataBase_create ( PyObject* ) { - cdebug.log(20) << "PyDataBase_create()" << endl; + cdebug_log(20,0) << "PyDataBase_create()" << endl; DataBase* db = NULL; @@ -51,7 +51,7 @@ extern "C" { static PyObject* PyDataBase_getDB ( PyObject* ) { - cdebug.log(20) << "PyDataBase_getDB()" << endl; + cdebug_log(20,0) << "PyDataBase_getDB()" << endl; DataBase* db = NULL; @@ -66,7 +66,7 @@ extern "C" { PyObject* PyDataBase_getTechnology ( PyDataBase* self ) { - cdebug.log(20) << "PyDataBase_getTechnology()" << endl; + cdebug_log(20,0) << "PyDataBase_getTechnology()" << endl; Technology* techno = NULL; @@ -84,7 +84,7 @@ extern "C" { static PyObject* PyDataBase_getRootLibrary ( PyDataBase *self ) { - cdebug.log(20) << "PyDataBase_getRootLibrary ()" << endl; + cdebug_log(20,0) << "PyDataBase_getRootLibrary ()" << endl; Library* library = NULL; diff --git a/hurricane/src/isobar/PyDbU.cpp b/hurricane/src/isobar/PyDbU.cpp index b4bf5e83..e5c66170 100644 --- a/hurricane/src/isobar/PyDbU.cpp +++ b/hurricane/src/isobar/PyDbU.cpp @@ -531,7 +531,7 @@ extern "C" { extern void PyDbU_LinkPyType() { - cdebug.log(20) << "PyDbU_LinkType()" << endl; + cdebug_log(20,0) << "PyDbU_LinkType()" << endl; PyTypeDbU.tp_methods = PyDbU_Methods; } diff --git a/hurricane/src/isobar/PyDebugSession.cpp b/hurricane/src/isobar/PyDebugSession.cpp index 92735105..9c59038a 100644 --- a/hurricane/src/isobar/PyDebugSession.cpp +++ b/hurricane/src/isobar/PyDebugSession.cpp @@ -44,13 +44,13 @@ extern "C" { static void PyDebugSession_DeAlloc ( PyDebugSession* self ) { - cdebug.log(20) << "PyDebugSession_DeAlloc(" << hex << self << ")" << endl; + cdebug_log(20,0) << "PyDebugSession_DeAlloc(" << hex << self << ")" << endl; } static PyObject* PyDebugSession_open ( PyObject*, PyObject* args ) { - cdebug.log(20) << "PyDebugSession_open()" << endl; + cdebug_log(20,0) << "PyDebugSession_open()" << endl; HTRY PyObject* arg0; @@ -85,7 +85,7 @@ extern "C" { static PyObject* PyDebugSession_close ( PyObject* ) { - cdebug.log(20) << "PyDebugSession_close()" << endl; + cdebug_log(20,0) << "PyDebugSession_close()" << endl; HTRY DebugSession::close (); @@ -97,7 +97,7 @@ extern "C" { static PyObject* PyDebugSession_addToTrace ( PyObject*, PyObject* args ) { - cdebug.log(20) << "PyDebugSession_addToTrace()" << endl; + cdebug_log(20,0) << "PyDebugSession_addToTrace()" << endl; HTRY PyObject* pySymbol = NULL; diff --git a/hurricane/src/isobar/PyDiffusionLayer.cpp b/hurricane/src/isobar/PyDiffusionLayer.cpp index 007b6d27..d5ef3a5f 100644 --- a/hurricane/src/isobar/PyDiffusionLayer.cpp +++ b/hurricane/src/isobar/PyDiffusionLayer.cpp @@ -76,7 +76,7 @@ extern "C" { static PyObject* PyDiffusionLayer_create ( PyObject*, PyObject* args ) { - cdebug.log(20) << "PyDiffusionLayer_create()" << endl; + cdebug_log(20,0) << "PyDiffusionLayer_create()" << endl; DiffusionLayer* diffusionLayer = NULL; diff --git a/hurricane/src/isobar/PyEntity.cpp b/hurricane/src/isobar/PyEntity.cpp index 14c85bbc..6c0c4e9a 100644 --- a/hurricane/src/isobar/PyEntity.cpp +++ b/hurricane/src/isobar/PyEntity.cpp @@ -59,7 +59,7 @@ extern "C" { // Attribute Method : "PyEntity_getCell ()" static PyObject* PyEntity_getCell ( PyEntity *self ) { - cdebug.log(20) << "PyEntity_getCell ()" << endl; + cdebug_log(20,0) << "PyEntity_getCell ()" << endl; Cell* cell = NULL; diff --git a/hurricane/src/isobar/PyHook.cpp b/hurricane/src/isobar/PyHook.cpp index 2f429fe5..085fb004 100644 --- a/hurricane/src/isobar/PyHook.cpp +++ b/hurricane/src/isobar/PyHook.cpp @@ -48,7 +48,7 @@ extern "C" { static PyObject* PyHook_getComponent ( PyHook *self ) { - cdebug.log(20) << "PyHook_getComponent()" << endl; + cdebug_log(20,0) << "PyHook_getComponent()" << endl; METHOD_HEAD ( "Hook.getComponent()" ) Component* component = NULL; @@ -62,7 +62,7 @@ extern "C" { static PyObject* PyHook_getHooks ( PyHook *self ) { - cdebug.log(20) << "PyHook_getHooks()" << endl; + cdebug_log(20,0) << "PyHook_getHooks()" << endl; METHOD_HEAD( "Hook.getHooks()" ) @@ -83,7 +83,7 @@ extern "C" { static PyObject* PyHook_getSlaveHooks ( PyHook *self ) { - cdebug.log(20) << "PyHook_getSlaveHooks()" << endl; + cdebug_log(20,0) << "PyHook_getSlaveHooks()" << endl; METHOD_HEAD( "Hook.getSlaveHooks()" ) @@ -104,7 +104,7 @@ extern "C" { static PyObject* PyHook_detach ( PyHook *self ) { - cdebug.log(20) << "PyHook_detach()" << endl; + cdebug_log(20,0) << "PyHook_detach()" << endl; METHOD_HEAD ( "Hook.detach()" ) PyHook* pyReturnHook = PyObject_NEW ( PyHook, &PyTypeHook ); @@ -120,7 +120,7 @@ extern "C" { static PyObject* PyHook_attach ( PyHook *self, PyObject* args ) { - cdebug.log(20) << "PyHook_attach()" << endl; + cdebug_log(20,0) << "PyHook_attach()" << endl; METHOD_HEAD ( "Hook.attach()" ) PyHook* pyReturnHook = PyObject_NEW ( PyHook, &PyTypeHook ); @@ -147,7 +147,7 @@ extern "C" { static PyObject* PyHook_merge ( PyHook *self, PyObject* args ) { - cdebug.log(20) << "PyHook_merge()" << endl; + cdebug_log(20,0) << "PyHook_merge()" << endl; METHOD_HEAD ( "Hook.merge()" ) PyHook* pyReturnHook = PyObject_NEW ( PyHook, &PyTypeHook ); diff --git a/hurricane/src/isobar/PyHorizontal.cpp b/hurricane/src/isobar/PyHorizontal.cpp index 0fb44240..4dee3bf4 100644 --- a/hurricane/src/isobar/PyHorizontal.cpp +++ b/hurricane/src/isobar/PyHorizontal.cpp @@ -61,7 +61,7 @@ extern "C" { // Attribute Method : "PyHorizontal_create ()" static PyObject* PyHorizontal_create ( PyObject*, PyObject *args ) { - cdebug.log(20) << "PyHorizontal_create()" << endl; + cdebug_log(20,0) << "PyHorizontal_create()" << endl; PyObject* arg0; PyObject* arg1; @@ -152,7 +152,7 @@ extern "C" { // Attribute Method : "PyHorizontal_translate ()" static PyObject* PyHorizontal_translate ( PyHorizontal *self, PyObject* args ) { - cdebug.log(20) << "PyHorizontal_translate ()" << endl; + cdebug_log(20,0) << "PyHorizontal_translate ()" << endl; HTRY METHOD_HEAD ( "Horizontal.translate()" ) diff --git a/hurricane/src/isobar/PyHurricane.cpp b/hurricane/src/isobar/PyHurricane.cpp index f7b8a31f..6e69c871 100644 --- a/hurricane/src/isobar/PyHurricane.cpp +++ b/hurricane/src/isobar/PyHurricane.cpp @@ -209,7 +209,7 @@ using namespace Hurricane; for ( unsigned i=0 ; i < _types.size() ; i++ ) { if ( ! strcmp ( _types[i]->_id, id ) ) { //throw Error ( objectTypeRedefinition ); // 04.09.2009 d2 modification so Pharos can run several scripts during one execution - cdebug.log(20) << objectTypeRedefinition << endl; + cdebug_log(20,0) << objectTypeRedefinition << endl; return; } } @@ -526,7 +526,7 @@ extern "C" { DL_EXPORT(void) initHurricane () { //trace_on(); - cdebug.log(20) << "initHurricane()" << endl; + cdebug_log(20,0) << "initHurricane()" << endl; PyDebugSession_LinkPyType (); PyUpdateSession_LinkPyType (); @@ -836,7 +836,7 @@ extern "C" { PyInstance_postModuleInit(); PyQuery_postModuleInit(); - cdebug.log(20) << "Hurricane.so loaded " << (void*)&typeid(string) << endl; + cdebug_log(20,0) << "Hurricane.so loaded " << (void*)&typeid(string) << endl; } diff --git a/hurricane/src/isobar/PyHyperNet.cpp b/hurricane/src/isobar/PyHyperNet.cpp index 9f6cf7ee..0f2a3a6c 100644 --- a/hurricane/src/isobar/PyHyperNet.cpp +++ b/hurricane/src/isobar/PyHyperNet.cpp @@ -43,7 +43,7 @@ extern "C" { static PyObject* PyHyperNet_create ( PyObject*, PyObject *args ) { - cdebug.log(20) << "PyHyperNet_create()" << endl; + cdebug_log(20,0) << "PyHyperNet_create()" << endl; HyperNet* hyperNet = NULL; PyObject* arg0; @@ -69,7 +69,7 @@ extern "C" { static PyObject* PyHyperNet_getNetOccurrences(PyHyperNet *self) { - cdebug.log(20) << "PyHyperNet_getNetOccurrences()" << endl; + cdebug_log(20,0) << "PyHyperNet_getNetOccurrences()" << endl; METHOD_HEAD ( "HyperNet.getNetOccurrences()" ) @@ -92,7 +92,7 @@ extern "C" { static PyObject* PyHyperNet_getLeafPlugOccurrences(PyHyperNet *self) { - cdebug.log(20) << "PyHyperNet_getLeafPlugOccurrences()" << endl; + cdebug_log(20,0) << "PyHyperNet_getLeafPlugOccurrences()" << endl; METHOD_HEAD ( "HyperNet.getLeafPlugOccurrences()" ) @@ -115,7 +115,7 @@ extern "C" { static PyObject* PyHyperNet_getCell ( PyHyperNet *self ) { - cdebug.log(20) << "PyHyperNet_getCell ()" << endl; + cdebug_log(20,0) << "PyHyperNet_getCell ()" << endl; Cell* cell = NULL; diff --git a/hurricane/src/isobar/PyInstance.cpp b/hurricane/src/isobar/PyInstance.cpp index 734859e7..236f26e4 100644 --- a/hurricane/src/isobar/PyInstance.cpp +++ b/hurricane/src/isobar/PyInstance.cpp @@ -73,7 +73,7 @@ extern "C" { static PyObject* PyInstance_create ( PyObject*, PyObject *args ) { - cdebug.log(20) << "PyInstance_create()" << endl; + cdebug_log(20,0) << "PyInstance_create()" << endl; Instance* instance = NULL; PyObject* arg0 = NULL; @@ -117,7 +117,7 @@ extern "C" { static PyObject* PyInstance_getMasterCell ( PyInstance *self ) { - cdebug.log(20) << "PyInstance_getMasterCell ()" << endl; + cdebug_log(20,0) << "PyInstance_getMasterCell ()" << endl; Cell* cell = NULL; @@ -132,7 +132,7 @@ extern "C" { static PyObject* PyInstance_getPlacementStatus ( PyInstance *self ) { - cdebug.log(20) << "PyInstance_getPlacementStatus ()" << endl; + cdebug_log(20,0) << "PyInstance_getPlacementStatus ()" << endl; METHOD_HEAD ( "Instance.getPlacementStatus()" ); @@ -147,7 +147,7 @@ extern "C" { static PyObject* PyInstance_setPlacementStatus ( PyInstance *self, PyObject* args ) { - cdebug.log(20) << "PyInstance_setPlacementStatus()" << endl; + cdebug_log(20,0) << "PyInstance_setPlacementStatus()" << endl; METHOD_HEAD ( "Instance.setPlacementStatus()" ) HTRY @@ -163,7 +163,7 @@ extern "C" { static PyObject* PyInstance_getTransformation ( PyInstance *self ) { - cdebug.log(20) << "PyInstance_getTransformation ()" << endl; + cdebug_log(20,0) << "PyInstance_getTransformation ()" << endl; METHOD_HEAD ( "Instance.getTransformation()" ); PyTransformation* resultPyTransf = PyObject_NEW ( PyTransformation, &PyTypeTransformation ); @@ -179,7 +179,7 @@ extern "C" { static PyObject* PyInstance_getPlug ( PyInstance *self, PyObject* args ) { - cdebug.log(20) << "PyInstance_getPlug ()" << endl; + cdebug_log(20,0) << "PyInstance_getPlug ()" << endl; Plug* plug = NULL; @@ -198,7 +198,7 @@ extern "C" { static PyObject* PyInstance_getPlugs(PyInstance *self ) { - cdebug.log(20) << "PyInstance_getPlugs()" << endl; + cdebug_log(20,0) << "PyInstance_getPlugs()" << endl; METHOD_HEAD ( "Instance.getPlugs()" ) @@ -221,7 +221,7 @@ extern "C" { static PyObject* PyInstance_getConnectedPlugs(PyInstance *self) { - cdebug.log(20) << "PyInstance_getConnectedPlugs ()" << endl; + cdebug_log(20,0) << "PyInstance_getConnectedPlugs ()" << endl; METHOD_HEAD ( "Instance.getConnectedPlugs()") @@ -244,7 +244,7 @@ extern "C" { static PyObject* PyInstance_getUnconnectedPlugs(PyInstance *self) { - cdebug.log(20) << "PyInstance_getUnconnectedPlugs ()" << endl; + cdebug_log(20,0) << "PyInstance_getUnconnectedPlugs ()" << endl; METHOD_HEAD ( "Instance.getUnconnectedPlugs()") @@ -267,7 +267,7 @@ extern "C" { static PyObject* PyInstance_getAbutmentBox ( PyInstance *self ) { - cdebug.log(20) << "PyInstance_getAbutmentBox ()" << endl; + cdebug_log(20,0) << "PyInstance_getAbutmentBox ()" << endl; METHOD_HEAD ( "Instance.getAbutmentBox()" ) PyBox* pyBox = PyObject_NEW ( PyBox, &PyTypeBox ); @@ -283,7 +283,7 @@ extern "C" { static PyObject* PyInstance_uniquify ( PyInstance *self ) { - cdebug.log(20) << "PyInstance_uniquify ()" << endl; + cdebug_log(20,0) << "PyInstance_uniquify ()" << endl; HTRY METHOD_HEAD ( "Instance.uniquify()" ) @@ -295,7 +295,7 @@ extern "C" { static PyObject* PyInstance_slaveAbutmentBox ( PyInstance *self ) { - cdebug.log(20) << "PyInstance_slaveAbutmentBox ()" << endl; + cdebug_log(20,0) << "PyInstance_slaveAbutmentBox ()" << endl; METHOD_HEAD ( "Instance.slaveAbutmentBox()" ) HTRY @@ -309,7 +309,7 @@ extern "C" { static PyObject* PyInstance_getClone ( PyInstance *self, PyObject* args ) { - cdebug.log(20) << "PyInstance_getClone ()" << endl; + cdebug_log(20,0) << "PyInstance_getClone ()" << endl; Instance* cloneInstance = NULL; HTRY @@ -332,7 +332,7 @@ extern "C" { static PyObject* PyInstance_setTransformation ( PyInstance *self, PyObject* args ) { - cdebug.log(20) << "PyInstance_setTransformation()" << endl; + cdebug_log(20,0) << "PyInstance_setTransformation()" << endl; METHOD_HEAD ( "Instance.setTransformation()" ) HTRY @@ -348,7 +348,7 @@ extern "C" { static PyObject* PyInstance_setMasterCell ( PyInstance *self, PyObject* args ) { - cdebug.log(20) << "Instance.setMasterCell()" << endl; + cdebug_log(20,0) << "Instance.setMasterCell()" << endl; METHOD_HEAD ( "Instance.setMasterCell()" ) HTRY diff --git a/hurricane/src/isobar/PyInterval.cpp b/hurricane/src/isobar/PyInterval.cpp index cb9edc56..97337d0c 100644 --- a/hurricane/src/isobar/PyInterval.cpp +++ b/hurricane/src/isobar/PyInterval.cpp @@ -54,7 +54,7 @@ extern "C" { // Class Method : "PyInterval_NEW ()" static PyObject* PyInterval_NEW (PyObject *module, PyObject *args) { - cdebug.log(20) << "PyInterval_NEW()" << endl; + cdebug_log(20,0) << "PyInterval_NEW()" << endl; Interval* interval = NULL; @@ -85,13 +85,13 @@ extern "C" { static int PyInterval_Init ( PyInterval* self, PyObject* args, PyObject* kwargs ) { - cdebug.log(20) << "PyInterval_Init(): " << (void*)self << endl; + cdebug_log(20,0) << "PyInterval_Init(): " << (void*)self << endl; return 0; } static PyObject* PyInterval_getUnion ( PyInterval *self, PyObject* args ) { - cdebug.log(20) << "PyInterval_getUnion()" << endl; + cdebug_log(20,0) << "PyInterval_getUnion()" << endl; METHOD_HEAD ( "Interval.getUnion()" ) @@ -110,7 +110,7 @@ extern "C" { static PyObject* PyInterval_getIntersection ( PyInterval *self, PyObject* args ) { - cdebug.log(20) << "PyInterval_getIntersection()" << endl; + cdebug_log(20,0) << "PyInterval_getIntersection()" << endl; METHOD_HEAD ( "Interval.getIntersection()" ) @@ -129,7 +129,7 @@ extern "C" { static PyObject* PyInterval_contains ( PyInterval *self, PyObject* args ) { - cdebug.log(20) << "PyInterval_contains ()" << endl; + cdebug_log(20,0) << "PyInterval_contains ()" << endl; METHOD_HEAD( "Interval.contains()" ) @@ -155,7 +155,7 @@ extern "C" { static PyObject* PyInterval_intersect ( PyInterval *self, PyObject* args ) { - cdebug.log(20) << "PyInterval_intersect ()" << endl; + cdebug_log(20,0) << "PyInterval_intersect ()" << endl; bool result = false; HTRY @@ -176,7 +176,7 @@ extern "C" { static PyObject* PyInterval_makeEmpty ( PyInterval *self, PyObject* args ) { - cdebug.log(20) << "PyInterval_makeEmpty ()" << endl; + cdebug_log(20,0) << "PyInterval_makeEmpty ()" << endl; METHOD_HEAD( "Interval.makeEmpty()" ) interval->makeEmpty(); @@ -187,7 +187,7 @@ extern "C" { static PyObject* PyInterval_inflate ( PyInterval *self, PyObject* args ) { - cdebug.log(20) << "PyInterval_inflate ()" << endl; + cdebug_log(20,0) << "PyInterval_inflate ()" << endl; METHOD_HEAD( "Interval.inflate()" ) @@ -213,7 +213,7 @@ extern "C" { static PyObject* PyInterval_merge ( PyInterval *self, PyObject* args ) { - cdebug.log(20) << "PyInterval_merge ()" << endl; + cdebug_log(20,0) << "PyInterval_merge ()" << endl; METHOD_HEAD( "Interval.merge()" ) @@ -239,7 +239,7 @@ extern "C" { static PyObject* PyInterval_intersection ( PyInterval *self, PyObject* args ) { - cdebug.log(20) << "PyInterval_intersection ()" << endl; + cdebug_log(20,0) << "PyInterval_intersection ()" << endl; METHOD_HEAD( "Interval.intersection()" ) @@ -265,7 +265,7 @@ extern "C" { static PyObject* PyInterval_translate ( PyInterval *self, PyObject* args ) { - cdebug.log(20) << "PyInterval_translate ()" << endl; + cdebug_log(20,0) << "PyInterval_translate ()" << endl; HTRY METHOD_HEAD( "Interval.translate()" ) diff --git a/hurricane/src/isobar/PyLayer.cpp b/hurricane/src/isobar/PyLayer.cpp index eeb06238..a466ebb8 100644 --- a/hurricane/src/isobar/PyLayer.cpp +++ b/hurricane/src/isobar/PyLayer.cpp @@ -51,7 +51,7 @@ extern "C" { # define accessorDbuFromOptBasicLayer(FUNC_NAME,PY_SELF_TYPE,SELF_TYPE) \ static PyObject* PY_SELF_TYPE##_##FUNC_NAME ( PY_SELF_TYPE* self, PyObject* args ) \ { \ - cdebug.log(20) << #PY_SELF_TYPE "_" #FUNC_NAME "()" << endl; \ + cdebug_log(20,0) << #PY_SELF_TYPE "_" #FUNC_NAME "()" << endl; \ \ DbU::Unit rvalue = 0; \ \ @@ -85,7 +85,7 @@ extern "C" { # define accessorLayerFromLayer(FUNC_NAME,PY_SELF_TYPE,SELF_TYPE) \ static PyObject* PY_SELF_TYPE##_##FUNC_NAME ( PY_SELF_TYPE* self, PyObject* args ) \ { \ - cdebug.log(20) << #PY_SELF_TYPE "_" #FUNC_NAME "()" << endl; \ + cdebug_log(20,0) << #PY_SELF_TYPE "_" #FUNC_NAME "()" << endl; \ \ Layer* rlayer = 0; \ \ @@ -116,7 +116,7 @@ extern "C" { # define accessorMaskFromVoid(FUNC_NAME,PY_SELF_TYPE,SELF_TYPE) \ static PyObject* PY_SELF_TYPE##_##FUNC_NAME ( PY_SELF_TYPE* self ) \ { \ - cdebug.log(20) << #PY_SELF_TYPE "_" #FUNC_NAME "()" << endl; \ + cdebug_log(20,0) << #PY_SELF_TYPE "_" #FUNC_NAME "()" << endl; \ \ Layer::Mask mask = 0; \ \ @@ -132,7 +132,7 @@ extern "C" { # define accessorLayerFromOptBool(FUNC_NAME,PY_SELF_TYPE,SELF_TYPE) \ static PyObject* PY_SELF_TYPE##_##FUNC_NAME ( PY_SELF_TYPE* self, PyObject* args ) \ { \ - cdebug.log(20) << #PY_SELF_TYPE "_" #FUNC_NAME "()" << endl; \ + cdebug_log(20,0) << #PY_SELF_TYPE "_" #FUNC_NAME "()" << endl; \ \ Layer* rlayer = NULL; \ \ @@ -162,7 +162,7 @@ extern "C" { # define predicateFromVoid(FUNC_NAME,PY_SELF_TYPE,SELF_TYPE) \ static PyObject* PY_SELF_TYPE##_##FUNC_NAME ( PY_SELF_TYPE* self ) \ { \ - cdebug.log(20) << #PY_SELF_TYPE "_" #FUNC_NAME "()" << endl; \ + cdebug_log(20,0) << #PY_SELF_TYPE "_" #FUNC_NAME "()" << endl; \ \ HTRY \ GENERIC_METHOD_HEAD(SELF_TYPE,cobject,#SELF_TYPE"."#FUNC_NAME"()") \ @@ -176,7 +176,7 @@ extern "C" { # define updatorFromDbu(FUNC_NAME,PY_SELF_TYPE,SELF_TYPE) \ static PyObject* PY_SELF_TYPE##_##FUNC_NAME ( PY_SELF_TYPE* self, PyObject* args ) \ { \ - cdebug.log(20) << #PY_SELF_TYPE "_" #FUNC_NAME "()" << endl; \ + cdebug_log(20,0) << #PY_SELF_TYPE "_" #FUNC_NAME "()" << endl; \ \ HTRY \ GENERIC_METHOD_HEAD(SELF_TYPE,cobject,#SELF_TYPE"."#FUNC_NAME"()") \ @@ -199,7 +199,7 @@ extern "C" { # define updatorFromBasicLayerDbu(FUNC_NAME,PY_SELF_TYPE,SELF_TYPE) \ static PyObject* PY_SELF_TYPE##_##FUNC_NAME ( PY_SELF_TYPE* self, PyObject* args ) \ { \ - cdebug.log(20) << #PY_SELF_TYPE "_" #FUNC_NAME "()" << endl; \ + cdebug_log(20,0) << #PY_SELF_TYPE "_" #FUNC_NAME "()" << endl; \ \ HTRY \ GENERIC_METHOD_HEAD(SELF_TYPE,cobject,#SELF_TYPE"."#FUNC_NAME"()") \ @@ -227,7 +227,7 @@ extern "C" { static PyObject* PyLayer_getTechnology ( PyLayer *self ) { - cdebug.log(20) << "PyLayer_getTechnology ()" << endl; + cdebug_log(20,0) << "PyLayer_getTechnology ()" << endl; Technology* techno = NULL; diff --git a/hurricane/src/isobar/PyLayerMask.cpp b/hurricane/src/isobar/PyLayerMask.cpp index f0006768..27cf4b1a 100644 --- a/hurricane/src/isobar/PyLayerMask.cpp +++ b/hurricane/src/isobar/PyLayerMask.cpp @@ -106,7 +106,7 @@ extern "C" { static PyObject* PyLayerMask_new ( PyTypeObject* type, PyObject* args, PyObject* kwds ) { - cdebug.log(20) << "PyLayerMask_new()" << endl; + cdebug_log(20,0) << "PyLayerMask_new()" << endl; PyLayerMask* pyMask = (PyLayerMask*)type->tp_alloc(type,0); @@ -287,7 +287,7 @@ extern "C" { static void PyLayerMask_DeAlloc ( PyLayerMask *self ) { - cdebug.log(20) << "PyLayerMask_DeAlloc(" << hex << self << ") " << self->_object << endl; + cdebug_log(20,0) << "PyLayerMask_DeAlloc(" << hex << self << ") " << self->_object << endl; PyObject_DEL ( self ); } @@ -312,7 +312,7 @@ extern "C" { extern void PyLayerMask_LinkPyType() { - cdebug.log(20) << "PyLayerMask_LinkType()" << endl; + cdebug_log(20,0) << "PyLayerMask_LinkType()" << endl; PyTypeLayerMask.tp_new = PyLayerMask_new; PyTypeLayerMask.tp_dealloc = (destructor) PyLayerMask_DeAlloc; diff --git a/hurricane/src/isobar/PyLibrary.cpp b/hurricane/src/isobar/PyLibrary.cpp index f172767b..b6873a93 100644 --- a/hurricane/src/isobar/PyLibrary.cpp +++ b/hurricane/src/isobar/PyLibrary.cpp @@ -40,7 +40,7 @@ extern "C" { static PyObject* PyLibrary_create ( PyObject *, PyObject *args ) { - cdebug.log(20) << "PyLibrary_create()" << endl; + cdebug_log(20,0) << "PyLibrary_create()" << endl; PyObject* arg0; PyObject* arg1; @@ -69,7 +69,7 @@ extern "C" { static PyObject* PyLibrary_getSubLibrary ( PyLibrary *self, PyObject* args ) { - cdebug.log(20) << "PyLibrary_getLibrary ()" << endl; + cdebug_log(20,0) << "PyLibrary_getLibrary ()" << endl; Library* subLibrary = NULL; @@ -89,7 +89,7 @@ extern "C" { static PyObject* PyLibrary_getCell ( PyLibrary* self, PyObject* args ) { - cdebug.log(20) << "PyLibrary_getCell ()" << endl; + cdebug_log(20,0) << "PyLibrary_getCell ()" << endl; Cell* cell = NULL; @@ -109,7 +109,7 @@ extern "C" { static PyObject* PyLibrary_getCells(PyLibrary *self) { - cdebug.log(20) << "PyLibrary_getCells()" << endl; + cdebug_log(20,0) << "PyLibrary_getCells()" << endl; METHOD_HEAD ( "Library.getCells()" ) diff --git a/hurricane/src/isobar/PyMaterial.cpp b/hurricane/src/isobar/PyMaterial.cpp index 98f0e563..28057b21 100644 --- a/hurricane/src/isobar/PyMaterial.cpp +++ b/hurricane/src/isobar/PyMaterial.cpp @@ -71,7 +71,7 @@ extern "C" { static PyObject* PyMaterial_new ( PyTypeObject* type, PyObject* args, PyObject* kwds ) { - cdebug.log(20) << "PyMaterial_new()" << endl; + cdebug_log(20,0) << "PyMaterial_new()" << endl; BasicLayer::Material* material = NULL; PyMaterial* pyMaterial = (PyMaterial*)type->tp_alloc(type,0); @@ -101,7 +101,7 @@ extern "C" { PyObject* PyMaterial_getCode ( PyMaterial* self ) { - cdebug.log(20) << "PyMaterial_getCode()" << endl; + cdebug_log(20,0) << "PyMaterial_getCode()" << endl; int code = 0; @@ -146,7 +146,7 @@ extern "C" { DirectDeleteMethod(PyMaterial_DeAlloc, PyMaterial) extern void PyMaterial_LinkPyType() { - cdebug.log(20) << "PyMaterial_LinkType()" << endl; + cdebug_log(20,0) << "PyMaterial_LinkType()" << endl; PyTypeMaterial.tp_new = PyMaterial_new; PyTypeMaterial.tp_dealloc = (destructor) PyMaterial_DeAlloc; diff --git a/hurricane/src/isobar/PyNet.cpp b/hurricane/src/isobar/PyNet.cpp index b1b08d5a..f08981c3 100644 --- a/hurricane/src/isobar/PyNet.cpp +++ b/hurricane/src/isobar/PyNet.cpp @@ -127,7 +127,7 @@ extern "C" { // Attribute Method : "PyNet_create ()" static PyObject* PyNet_create ( PyObject*, PyObject *args ) { - cdebug.log(20) << "PyNet_create()" << endl; + cdebug_log(20,0) << "PyNet_create()" << endl; char* name = NULL; PyCell* pyCell = NULL; @@ -151,7 +151,7 @@ extern "C" { static PyObject* PyNet_getType ( PyNet *self ) { - cdebug.log(20) << "PyNet_getType ()" << endl; + cdebug_log(20,0) << "PyNet_getType ()" << endl; METHOD_HEAD ( "Net.getType()" ) @@ -165,7 +165,7 @@ extern "C" { static PyObject* PyNet_getDirection ( PyNet *self ) { - cdebug.log(20) << "PyNet_getDirection ()" << endl; + cdebug_log(20,0) << "PyNet_getDirection ()" << endl; METHOD_HEAD ( "Net.getDirection()" ) @@ -177,7 +177,7 @@ extern "C" { // Attribute Method : "PyNet_getPlugs()" static PyObject* PyNet_getPlugs(PyNet *self) { - cdebug.log(20) << "PyNet_getPlugs()" << endl; + cdebug_log(20,0) << "PyNet_getPlugs()" << endl; METHOD_HEAD("Net.getPlugs()") @@ -202,7 +202,7 @@ extern "C" { // Attribute Method : "PyNet_getSegments()" static PyObject* PyNet_getSegments(PyNet *self) { - cdebug.log(20) << "PyNet_getSegments()" << endl; + cdebug_log(20,0) << "PyNet_getSegments()" << endl; METHOD_HEAD ("Net.getSegments()") @@ -227,7 +227,7 @@ extern "C" { // Attribute Method : "PyNet_getPins()" static PyObject* PyNet_getPins(PyNet *self) { - cdebug.log(20) << "PyNet_getPins()" << endl; + cdebug_log(20,0) << "PyNet_getPins()" << endl; METHOD_HEAD ("Net.getPins()") @@ -252,7 +252,7 @@ extern "C" { // Attribute Method : "PyNet_getComponents()" static PyObject* PyNet_getComponents(PyNet *self) { - cdebug.log(20) << "PyNet_getComponents()" << endl; + cdebug_log(20,0) << "PyNet_getComponents()" << endl; METHOD_HEAD ( "Net.getComponents()" ) @@ -275,7 +275,7 @@ extern "C" { // Attribute Method : "PyNet_getExternalComponents()" static PyObject* PyNet_getExternalComponents(PyNet *self) { - cdebug.log(20) << "PyNet_getExternalComponents()" << endl; + cdebug_log(20,0) << "PyNet_getExternalComponents()" << endl; METHOD_HEAD ( "Net.getExternalcomponents()" ) @@ -304,7 +304,7 @@ extern "C" { // Attribute Method : "PyNet_setGlobal ()" static PyObject* PyNet_setGlobal ( PyNet *self, PyObject* args ) { - cdebug.log(20) << "PyNet_setGlobal()" << endl; + cdebug_log(20,0) << "PyNet_setGlobal()" << endl; HTRY METHOD_HEAD ( "Net.setGlobal()" ) @@ -326,7 +326,7 @@ extern "C" { // Attribute Method : "PyNet_setExternal ()" static PyObject* PyNet_setExternal ( PyNet *self, PyObject* args ) { - cdebug.log(20) << "PyNet_setExternal()" << endl; + cdebug_log(20,0) << "PyNet_setExternal()" << endl; HTRY METHOD_HEAD ( "Net.setExternal()" ) @@ -349,7 +349,7 @@ extern "C" { static PyObject* PyNet_setType ( PyNet *self, PyObject* args ) { - cdebug.log(20) << "PyNet_setType()" << endl; + cdebug_log(20,0) << "PyNet_setType()" << endl; HTRY @@ -375,7 +375,7 @@ extern "C" { static PyObject* PyNet_setDirection ( PyNet *self, PyObject* args ) { - cdebug.log(20) << "PyNet_setDirection()" << endl; + cdebug_log(20,0) << "PyNet_setDirection()" << endl; HTRY @@ -397,7 +397,7 @@ extern "C" { static PyObject* PyNet_addAlias ( PyNet *self, PyObject* args ) { - cdebug.log(20) << "PyNet_addAlias()" << endl; + cdebug_log(20,0) << "PyNet_addAlias()" << endl; HTRY METHOD_HEAD ( "Net.addAlias()" ) @@ -421,7 +421,7 @@ extern "C" { static PyObject* PyNet_removeAlias ( PyNet *self, PyObject* args ) { - cdebug.log(20) << "PyNet_removeAlias()" << endl; + cdebug_log(20,0) << "PyNet_removeAlias()" << endl; HTRY METHOD_HEAD ( "Net.removeAlias()" ) @@ -445,7 +445,7 @@ extern "C" { static PyObject* PyNet_setPosition ( PyNet *self, PyObject* args ) { - cdebug.log(20) << "PyNet_setPosition()" << endl; + cdebug_log(20,0) << "PyNet_setPosition()" << endl; HTRY @@ -466,7 +466,7 @@ extern "C" { // Attribute Method : "PyNet_merge ()" static PyObject* PyNet_merge ( PyNet *self, PyObject* args ) { - cdebug.log(20) << "PyNet_merge()" << endl; + cdebug_log(20,0) << "PyNet_merge()" << endl; HTRY PyNet* pyNetToMerge; @@ -486,7 +486,7 @@ extern "C" { // Attribute Method : "PyNet_merge ()" static PyObject* PyNet_getClone ( PyNet *self, PyObject* args ) { - cdebug.log(20) << "PyNet_getClone()" << endl; + cdebug_log(20,0) << "PyNet_getClone()" << endl; Net* cloneNet = NULL; HTRY diff --git a/hurricane/src/isobar/PyNetDirection.cpp b/hurricane/src/isobar/PyNetDirection.cpp index 062eef15..bc4d8f2e 100644 --- a/hurricane/src/isobar/PyNetDirection.cpp +++ b/hurricane/src/isobar/PyNetDirection.cpp @@ -68,7 +68,7 @@ extern "C" { DirectHashMethod(PyNetDirection_Hash, PyNetDirection) extern void PyNetDirection_LinkPyType() { - cdebug.log(20) << "PyNetDirection_LinkType()" << endl; + cdebug_log(20,0) << "PyNetDirection_LinkType()" << endl; PyTypeNetDirection.tp_dealloc = (destructor) PyNetDirection_DeAlloc; PyTypeNetDirection.tp_compare = (cmpfunc) PyNetDirection_Cmp; PyTypeNetDirection.tp_repr = (reprfunc) PyNetDirection_Repr; diff --git a/hurricane/src/isobar/PyNetExternalComponents.cpp b/hurricane/src/isobar/PyNetExternalComponents.cpp index 6ef26487..42870827 100644 --- a/hurricane/src/isobar/PyNetExternalComponents.cpp +++ b/hurricane/src/isobar/PyNetExternalComponents.cpp @@ -39,13 +39,13 @@ extern "C" { static void PyNetExternalComponents_DeAlloc ( PyNetExternalComponents* self ) { - cdebug.log(20) << "PySingletonObject_DeAlloc(" << hex << self << ")" << endl; + cdebug_log(20,0) << "PySingletonObject_DeAlloc(" << hex << self << ")" << endl; } static PyObject* PyNetExternalComponents_isExternal ( PyObject*, PyObject *args ) { - cdebug.log(20) << "PyNetExternalComponents_isExternal()" << endl; + cdebug_log(20,0) << "PyNetExternalComponents_isExternal()" << endl; bool isExternal = false; @@ -63,7 +63,7 @@ extern "C" { static PyObject* PyNetExternalComponents_setExternal ( PyObject*, PyObject *args ) { - cdebug.log(20) << "PyNetExternalComponents_setExternal()" << endl; + cdebug_log(20,0) << "PyNetExternalComponents_setExternal()" << endl; HTRY PyObject* pyComponent; @@ -85,7 +85,7 @@ extern "C" { static PyObject* PyNetExternalComponents_get ( PyObject*, PyObject* args ) { - cdebug.log(20) << "PyNetExternalComponents_getExternalComponents()" << endl; + cdebug_log(20,0) << "PyNetExternalComponents_getExternalComponents()" << endl; PyObject* arg0; @@ -123,7 +123,7 @@ extern "C" { // extern void PyNetExternalComponents_LinkPyType() // { - // cdebug.log(20) << "PyNetExternalComponents_LinkType()" << endl; + // cdebug_log(20,0) << "PyNetExternalComponents_LinkType()" << endl; // PyTypeNetExternalComponents.tp_new = (newfunc) PyType_GenericNew; // PyTypeNetExternalComponents.tp_dealloc = (destructor)PyNetExternalComponents_DeAlloc; diff --git a/hurricane/src/isobar/PyNetType.cpp b/hurricane/src/isobar/PyNetType.cpp index 6d181d5d..e0af3882 100644 --- a/hurricane/src/isobar/PyNetType.cpp +++ b/hurricane/src/isobar/PyNetType.cpp @@ -67,7 +67,7 @@ extern "C" { DirectHashMethod(PyNetType_Hash, PyNetType) extern void PyNetType_LinkPyType() { - cdebug.log(20) << "PyNetType_LinkType()" << endl; + cdebug_log(20,0) << "PyNetType_LinkType()" << endl; PyTypeNetType.tp_dealloc = (destructor) PyNetType_DeAlloc; PyTypeNetType.tp_compare = (cmpfunc) PyNetType_Cmp; PyTypeNetType.tp_repr = (reprfunc) PyNetType_Repr; diff --git a/hurricane/src/isobar/PyOccurrence.cpp b/hurricane/src/isobar/PyOccurrence.cpp index df0393f5..9834d2bc 100644 --- a/hurricane/src/isobar/PyOccurrence.cpp +++ b/hurricane/src/isobar/PyOccurrence.cpp @@ -62,7 +62,7 @@ extern "C" { // Attribute Method : "PyOccurrence_NEW ()" PyObject* PyOccurrence_NEW ( PyObject *module, PyObject *args ) { - cdebug.log(20) << "PyOccurrence_NEW()" << endl; + cdebug_log(20,0) << "PyOccurrence_NEW()" << endl; Occurrence* occurrence; PyObject* arg0; @@ -102,7 +102,7 @@ extern "C" { static int PyOccurrence_Init ( PyOccurrence* self, PyObject* args, PyObject* kwargs ) { - cdebug.log(20) << "PyOccurrence_Init(): " << (void*)self << endl; + cdebug_log(20,0) << "PyOccurrence_Init(): " << (void*)self << endl; return 0; } @@ -111,7 +111,7 @@ extern "C" { // Attribute Method : "PyOccurrence_getEntity ()" static PyObject* PyOccurrence_getEntity ( PyOccurrence *self ) { - cdebug.log(20) << "PyOccurrence_getEntity()" << endl; + cdebug_log(20,0) << "PyOccurrence_getEntity()" << endl; METHOD_HEAD ( "Occurrence.getEntity()" ) @@ -133,7 +133,7 @@ extern "C" { // Attribute Method : "PyOccurrence_getOwnerCell ()" static PyObject* PyOccurrence_getOwnerCell ( PyOccurrence *self ) { - cdebug.log(20) << "PyOccurrence_getOwnerCell()" << endl; + cdebug_log(20,0) << "PyOccurrence_getOwnerCell()" << endl; METHOD_HEAD ( "Occurernce.getOwnerCell()" ) @@ -152,7 +152,7 @@ extern "C" { static PyObject* PyOccurrence_getMasterCell ( PyOccurrence *self ) { - cdebug.log(20) << "PyOccurrence_getMasterCell()" << endl; + cdebug_log(20,0) << "PyOccurrence_getMasterCell()" << endl; METHOD_HEAD ( "Occurrence.getMasterCell()" ) @@ -171,7 +171,7 @@ extern "C" { static PyObject* PyOccurrence_getPath ( PyOccurrence *self ) { - cdebug.log(20) << "PyOccurrence_getPath ()" << endl; + cdebug_log(20,0) << "PyOccurrence_getPath ()" << endl; METHOD_HEAD ( "Occurrence.getPath()" ) @@ -197,7 +197,7 @@ extern "C" { static PyObject* PyOccurrence_getBoundingBox ( PyOccurrence *self ) { - cdebug.log(20) << "PyOccurrence_getBoundingBox ()" << endl; + cdebug_log(20,0) << "PyOccurrence_getBoundingBox ()" << endl; METHOD_HEAD ( "Occurrence.getBoundingBox()" ) diff --git a/hurricane/src/isobar/PyOrientation.cpp b/hurricane/src/isobar/PyOrientation.cpp index b9f05dc0..db1ac766 100644 --- a/hurricane/src/isobar/PyOrientation.cpp +++ b/hurricane/src/isobar/PyOrientation.cpp @@ -72,7 +72,7 @@ extern "C" { DirectHashMethod(PyOrientation_Hash, PyOrientation) extern void PyOrientation_LinkPyType() { - cdebug.log(20) << "PyOrientation_LinkType()" << endl; + cdebug_log(20,0) << "PyOrientation_LinkType()" << endl; PyTypeOrientation.tp_dealloc = (destructor) PyOrientation_DeAlloc; PyTypeOrientation.tp_compare = (cmpfunc) PyOrientation_Cmp; PyTypeOrientation.tp_repr = (reprfunc) PyOrientation_Repr; diff --git a/hurricane/src/isobar/PyPad.cpp b/hurricane/src/isobar/PyPad.cpp index 8306686e..ba9f7610 100644 --- a/hurricane/src/isobar/PyPad.cpp +++ b/hurricane/src/isobar/PyPad.cpp @@ -57,7 +57,7 @@ extern "C" { // Attribute Method : "PyPad_create ()" static PyObject* PyPad_create ( PyObject*, PyObject *args ) { - cdebug.log(20) << "PyPad_create()" << endl; + cdebug_log(20,0) << "PyPad_create()" << endl; PyObject* arg0; PyObject* arg1; @@ -91,7 +91,7 @@ extern "C" { // Attribute Method : "PyPad_getBoundingBox ()" static PyObject* PyPad_getBoundingBox( PyPad *self ) { - cdebug.log(20) << "PyPad_getBoundingBox()" << endl; + cdebug_log(20,0) << "PyPad_getBoundingBox()" << endl; METHOD_HEAD ( "Pad.BoundingBox()" ) @@ -109,7 +109,7 @@ extern "C" { // Attribute Method : "PyPad_setBoudingBox()" static PyObject* PyPad_setBoundingBox(PyPad *self, PyObject* args) { - cdebug.log(20) << "Pad.setBoudingBox()" << endl; + cdebug_log(20,0) << "Pad.setBoudingBox()" << endl; HTRY METHOD_HEAD ( "Pad.setBoudingBox()" ) @@ -129,7 +129,7 @@ extern "C" { // Attribute Method : "PyPad_translate ()" static PyObject* PyPad_translate ( PyPad *self, PyObject* args ) { - cdebug.log(20) << "PyPad_translate ()" << endl; + cdebug_log(20,0) << "PyPad_translate ()" << endl; HTRY METHOD_HEAD ( "Pad.translate()" ) diff --git a/hurricane/src/isobar/PyPath.cpp b/hurricane/src/isobar/PyPath.cpp index f7ba620b..b783336f 100644 --- a/hurricane/src/isobar/PyPath.cpp +++ b/hurricane/src/isobar/PyPath.cpp @@ -58,7 +58,7 @@ extern "C" { // Attribute Method : "PyPath_NEW ()" static PyObject* PyPath_NEW ( PyObject *module, PyObject *args ) { - cdebug.log(20) << "PyPath_NEW()" << endl; + cdebug_log(20,0) << "PyPath_NEW()" << endl; Path* path = NULL; PyObject* arg0 = NULL; @@ -102,7 +102,7 @@ extern "C" { static int PyPath_Init ( PyPath* self, PyObject* args, PyObject* kwargs ) { - cdebug.log(20) << "PyPath_Init(): " << (void*)self << endl; + cdebug_log(20,0) << "PyPath_Init(): " << (void*)self << endl; return 0; } @@ -111,7 +111,7 @@ extern "C" { // Attribute Method : "PyPath_getHeadInstance ()" static PyObject* PyPath_getHeadInstance ( PyPath *self ) { - cdebug.log(20) << "PyPath_getHeadInstance()" << endl; + cdebug_log(20,0) << "PyPath_getHeadInstance()" << endl; METHOD_HEAD ( "Path.getHeadInstance()" ) @@ -129,7 +129,7 @@ extern "C" { // Attribute Method : "PyPath_getTailInstance ()" static PyObject* PyPath_getTailInstance ( PyPath *self ) { - cdebug.log(20) << "PyPath_getTailInstance()" << endl; + cdebug_log(20,0) << "PyPath_getTailInstance()" << endl; METHOD_HEAD ( "Path.getTailInstance()" ) @@ -147,7 +147,7 @@ extern "C" { // Attribute Method : "PyPath_getOwnerCell ()" static PyObject* PyPath_getOwnerCell ( PyPath *self ) { - cdebug.log(20) << "PyPath_getOwnerCell()" << endl; + cdebug_log(20,0) << "PyPath_getOwnerCell()" << endl; METHOD_HEAD ( "Path.getOwnerCell()" ) @@ -165,7 +165,7 @@ extern "C" { // Attribute Method : "PyPath_getMasterCell ()" static PyObject* PyPath_getMasterCell ( PyPath *self ) { - cdebug.log(20) << "PyPath_getMasterCell()" << endl; + cdebug_log(20,0) << "PyPath_getMasterCell()" << endl; METHOD_HEAD ( "Path.getMasterCell()" ) @@ -190,7 +190,7 @@ extern "C" { static PyObject* PyPath_getHeadPath ( PyPath *self ) { - cdebug.log(20) << "PyPath_getHeadPath ()" << endl; + cdebug_log(20,0) << "PyPath_getHeadPath ()" << endl; METHOD_HEAD ( "Path.getHeadPath()" ) @@ -211,7 +211,7 @@ extern "C" { static PyObject* PyPath_getTailPath ( PyPath *self ) { - cdebug.log(20) << "PyPath_getTailPath ()" << endl; + cdebug_log(20,0) << "PyPath_getTailPath ()" << endl; METHOD_HEAD ( "Path.getTailPath()" ) @@ -231,7 +231,7 @@ extern "C" { static PyObject* PyPath_getTransformation ( PyPath *self, PyObject* args ) { - cdebug.log(20) << "PyPath_getTransformation ()" << endl; + cdebug_log(20,0) << "PyPath_getTransformation ()" << endl; METHOD_HEAD ( "Instance.getTransformation()" ); @@ -263,7 +263,7 @@ extern "C" { static PyObject* PyPath_getInstances(PyPath *self) { - cdebug.log(20) << "PyPath_getInstances()" << endl; + cdebug_log(20,0) << "PyPath_getInstances()" << endl; METHOD_HEAD ( "Path.getInstances()" ) diff --git a/hurricane/src/isobar/PyPin.cpp b/hurricane/src/isobar/PyPin.cpp index 6cfe21b6..eed2b505 100644 --- a/hurricane/src/isobar/PyPin.cpp +++ b/hurricane/src/isobar/PyPin.cpp @@ -79,7 +79,7 @@ extern "C" { HTRY - cdebug.log(20) << "PyPin_create()" << endl; + cdebug_log(20,0) << "PyPin_create()" << endl; PyObject* arg0; PyObject* arg1; PyObject* arg2; @@ -152,7 +152,7 @@ extern "C" { // Standart Accessors (Attributes). PyObject* PyPin_getAccessDirection( PyPin* self ) { - cdebug.log(20) << "PyNet_getAccessDirection ()" << endl; + cdebug_log(20,0) << "PyNet_getAccessDirection ()" << endl; METHOD_HEAD ( "Net.getAccessDirection()" ) diff --git a/hurricane/src/isobar/PyPinDirection.cpp b/hurricane/src/isobar/PyPinDirection.cpp index dbc59023..4b1f1131 100644 --- a/hurricane/src/isobar/PyPinDirection.cpp +++ b/hurricane/src/isobar/PyPinDirection.cpp @@ -68,7 +68,7 @@ extern "C" { DirectHashMethod(PyPinDirection_Hash, PyPinDirection) extern void PyPinDirection_LinkPyType() { - cdebug.log(20) << "PyPinDirection_LinkType()" << endl; + cdebug_log(20,0) << "PyPinDirection_LinkType()" << endl; PyTypePinDirection.tp_dealloc = (destructor) PyPinDirection_DeAlloc; PyTypePinDirection.tp_compare = (cmpfunc) PyPinDirection_Cmp; PyTypePinDirection.tp_repr = (reprfunc) PyPinDirection_Repr; diff --git a/hurricane/src/isobar/PyPinPlacementStatus.cpp b/hurricane/src/isobar/PyPinPlacementStatus.cpp index a4e10380..f9c2d034 100644 --- a/hurricane/src/isobar/PyPinPlacementStatus.cpp +++ b/hurricane/src/isobar/PyPinPlacementStatus.cpp @@ -68,7 +68,7 @@ extern "C" { DirectHashMethod(PyPinPlacementStatus_Hash, PyPinPlacementStatus) extern void PyPinPlacementStatus_LinkPyType() { - cdebug.log(20) << "PyPinPlacementStatus_LinkType()" << endl; + cdebug_log(20,0) << "PyPinPlacementStatus_LinkType()" << endl; PyTypePinPlacementStatus.tp_dealloc = (destructor) PyPinPlacementStatus_DeAlloc; PyTypePinPlacementStatus.tp_compare = (cmpfunc) PyPinPlacementStatus_Cmp; PyTypePinPlacementStatus.tp_repr = (reprfunc) PyPinPlacementStatus_Repr; diff --git a/hurricane/src/isobar/PyPlacementStatus.cpp b/hurricane/src/isobar/PyPlacementStatus.cpp index ced50c59..25a22026 100644 --- a/hurricane/src/isobar/PyPlacementStatus.cpp +++ b/hurricane/src/isobar/PyPlacementStatus.cpp @@ -72,7 +72,7 @@ extern "C" { DirectHashMethod(PyPlacementStatus_Hash, PyPlacementStatus) extern void PyPlacementStatus_LinkPyType() { - cdebug.log(20) << "PyPlacementStatus_LinkType()" << endl; + cdebug_log(20,0) << "PyPlacementStatus_LinkType()" << endl; PyTypePlacementStatus.tp_dealloc = (destructor) PyPlacementStatus_DeAlloc; PyTypePlacementStatus.tp_compare = (cmpfunc) PyPlacementStatus_Cmp; PyTypePlacementStatus.tp_repr = (reprfunc) PyPlacementStatus_Repr; diff --git a/hurricane/src/isobar/PyPlug.cpp b/hurricane/src/isobar/PyPlug.cpp index 9644571c..66975dc2 100644 --- a/hurricane/src/isobar/PyPlug.cpp +++ b/hurricane/src/isobar/PyPlug.cpp @@ -94,7 +94,7 @@ extern "C" { static PyObject* PyPlug_getInstance ( PyPlug *self ) { - cdebug.log(20) << "PyPlug_getInstance ()" << endl; + cdebug_log(20,0) << "PyPlug_getInstance ()" << endl; Instance* instance = NULL; @@ -112,7 +112,7 @@ extern "C" { static PyObject* PyPlug_getMasterNet ( PyPlug *self ) { - cdebug.log(20) << "PyPlug_getMasterNet ()" << endl; + cdebug_log(20,0) << "PyPlug_getMasterNet ()" << endl; Net* net = NULL; @@ -130,7 +130,7 @@ extern "C" { // Attribute Method : "PyPlug_getNet ()" static PyObject* PyPlug_getNet ( PyPlug *self ) { - cdebug.log(20) << "PyPlug_getNet ()" << endl; + cdebug_log(20,0) << "PyPlug_getNet ()" << endl; Net* net = NULL; @@ -149,7 +149,7 @@ extern "C" { // Attribute Method : "PyPlug_setNet ()" static PyObject* PyPlug_setNet ( PyPlug *self, PyObject* args ) { - cdebug.log(20) << "PyPlug_setNet()" << endl; + cdebug_log(20,0) << "PyPlug_setNet()" << endl; HTRY diff --git a/hurricane/src/isobar/PyPoint.cpp b/hurricane/src/isobar/PyPoint.cpp index 9cb8cf62..a950f25c 100644 --- a/hurricane/src/isobar/PyPoint.cpp +++ b/hurricane/src/isobar/PyPoint.cpp @@ -44,7 +44,7 @@ extern "C" { static PyObject* PyPoint_NEW ( PyObject* module, PyObject *args ) { - cdebug.log(20) << "PyPoint_NEW()" << endl; + cdebug_log(20,0) << "PyPoint_NEW()" << endl; Point* point; PyObject* arg0; @@ -81,7 +81,7 @@ extern "C" { static int PyPoint_Init ( PyPoint* self, PyObject* args, PyObject* kwargs ) { - cdebug.log(20) << "PyPoint_Init(): " << (void*)self << endl; + cdebug_log(20,0) << "PyPoint_Init(): " << (void*)self << endl; return 0; } @@ -91,7 +91,7 @@ extern "C" { static PyObject* PyPoint_Translate ( PyPoint *self, PyObject* args ) { - cdebug.log(20) << "PyPoint_Translate()" << endl; + cdebug_log(20,0) << "PyPoint_Translate()" << endl; HTRY diff --git a/hurricane/src/isobar/PyQuery.cpp b/hurricane/src/isobar/PyQuery.cpp index 5ccd5dbd..ce487b86 100644 --- a/hurricane/src/isobar/PyQuery.cpp +++ b/hurricane/src/isobar/PyQuery.cpp @@ -131,7 +131,7 @@ extern "C" { static PyObject* PyQuery_getMasterCell ( PyQuery *self ) { - cdebug.log(20) << "PyQuery.getMasterCell()" << endl; + cdebug_log(20,0) << "PyQuery.getMasterCell()" << endl; Cell* cell = NULL; @@ -145,7 +145,7 @@ extern "C" { static PyObject* PyQuery_getInstance ( PyQuery *self ) { - cdebug.log(20) << "PyQuery.getInstance()" << endl; + cdebug_log(20,0) << "PyQuery.getInstance()" << endl; Instance* instance = NULL; @@ -160,7 +160,7 @@ extern "C" { static PyObject* PyQuery_getPath ( PyQuery *self ) { - cdebug.log(20) << "PyQuery_getPath ()" << endl; + cdebug_log(20,0) << "PyQuery_getPath ()" << endl; METHOD_HEAD( "PyQuery.getPath()" ) @@ -177,7 +177,7 @@ extern "C" { static PyObject* PyQuery_getTransformation ( PyQuery *self ) { - cdebug.log(20) << "PyQuery_getTransformation ()" << endl; + cdebug_log(20,0) << "PyQuery_getTransformation ()" << endl; METHOD_HEAD( "PyQuery.getTransformation()" ) @@ -194,7 +194,7 @@ extern "C" { static PyObject* PyQuery_setCell ( PyQuery* self, PyObject* args ) { - cdebug.log(20) << "PyQuery.setCell()" << endl; + cdebug_log(20,0) << "PyQuery.setCell()" << endl; METHOD_HEAD("PyQuery.setCell()") HTRY @@ -217,7 +217,7 @@ extern "C" { static PyObject* PyQuery_setFilter ( PyQuery* self, PyObject* args ) { - cdebug.log(20) << "PyQuery.setFilter()" << endl; + cdebug_log(20,0) << "PyQuery.setFilter()" << endl; METHOD_HEAD("PyQuery.setFilter()") HTRY @@ -235,7 +235,7 @@ extern "C" { static PyObject* PyQuery_setArea ( PyQuery* self, PyObject* args ) { - cdebug.log(20) << "PyQuery.setArea()" << endl; + cdebug_log(20,0) << "PyQuery.setArea()" << endl; METHOD_HEAD("PyQuery.setArea()") HTRY @@ -258,7 +258,7 @@ extern "C" { static PyObject* PyQuery_setTransformation ( PyQuery* self, PyObject* args ) { - cdebug.log(20) << "PyQuery.setTransformation()" << endl; + cdebug_log(20,0) << "PyQuery.setTransformation()" << endl; METHOD_HEAD("PyQuery.setTransformation()") HTRY @@ -281,7 +281,7 @@ extern "C" { static PyObject* PyQuery_setBasicLayer ( PyQuery* self, PyObject* args ) { - cdebug.log(20) << "PyQuery.setBasicLayer()" << endl; + cdebug_log(20,0) << "PyQuery.setBasicLayer()" << endl; METHOD_HEAD("PyQuery.setBasicLayer()") HTRY @@ -304,7 +304,7 @@ extern "C" { static PyObject* PyQuery_setMasterCellCallback ( PyQuery* self, PyObject* args ) { - cdebug.log(20) << "PyQuery.setMasterCellCallback()" << endl; + cdebug_log(20,0) << "PyQuery.setMasterCellCallback()" << endl; METHOD_HEAD("PyQuery.setMasterCellCallback()") HTRY @@ -327,7 +327,7 @@ extern "C" { static PyObject* PyQuery_setGoCallback ( PyQuery* self, PyObject* args ) { - cdebug.log(20) << "PyQuery.setGoCallback()" << endl; + cdebug_log(20,0) << "PyQuery.setGoCallback()" << endl; METHOD_HEAD("PyQuery.setGoCallback()") HTRY @@ -350,7 +350,7 @@ extern "C" { static PyObject* PyQuery_setMarkerCallback ( PyQuery* self, PyObject* args ) { - cdebug.log(20) << "PyQuery.setMarkerCallback()" << endl; + cdebug_log(20,0) << "PyQuery.setMarkerCallback()" << endl; METHOD_HEAD("PyQuery.setMarkerCallback()") HTRY @@ -373,7 +373,7 @@ extern "C" { static PyObject* PyQuery_setRubberCallback ( PyQuery* self, PyObject* args ) { - cdebug.log(20) << "PyQuery.setRubberCallback()" << endl; + cdebug_log(20,0) << "PyQuery.setRubberCallback()" << endl; METHOD_HEAD("PyQuery.setRubberCallback()") HTRY @@ -396,7 +396,7 @@ extern "C" { static PyObject* PyQuery_setExtensionGoCallback ( PyQuery* self, PyObject* args ) { - cdebug.log(20) << "PyQuery.setExtensionGoCallback()" << endl; + cdebug_log(20,0) << "PyQuery.setExtensionGoCallback()" << endl; METHOD_HEAD("PyQuery.setExtensionGoCallback()") HTRY @@ -419,7 +419,7 @@ extern "C" { PyObject* PyQuery_NEW ( PyObject* module, PyObject* args ) { - cdebug.log(20) << "PyQuery.new()" << endl; + cdebug_log(20,0) << "PyQuery.new()" << endl; BaseQuery* query = NULL; PyQuery* pyQuery = NULL; diff --git a/hurricane/src/isobar/PyQueryMask.cpp b/hurricane/src/isobar/PyQueryMask.cpp index cca05c8e..383d10a0 100644 --- a/hurricane/src/isobar/PyQueryMask.cpp +++ b/hurricane/src/isobar/PyQueryMask.cpp @@ -106,7 +106,7 @@ extern "C" { static PyObject* PyQueryMask_new ( PyTypeObject* type, PyObject* args, PyObject* kwds ) { - cdebug.log(20) << "PyQueryMask_new()" << endl; + cdebug_log(20,0) << "PyQueryMask_new()" << endl; PyQueryMask* pyMask = (PyQueryMask*)type->tp_alloc(type,0); @@ -287,7 +287,7 @@ extern "C" { static void PyQueryMask_DeAlloc ( PyQueryMask *self ) { - cdebug.log(20) << "PyQueryMask_DeAlloc(" << hex << self << ") " << self->_object << endl; + cdebug_log(20,0) << "PyQueryMask_DeAlloc(" << hex << self << ") " << self->_object << endl; PyObject_DEL ( self ); } @@ -312,7 +312,7 @@ extern "C" { extern void PyQueryMask_LinkPyType() { - cdebug.log(20) << "PyQueryMask_LinkType()" << endl; + cdebug_log(20,0) << "PyQueryMask_LinkType()" << endl; PyTypeQueryMask.tp_new = PyQueryMask_new; PyTypeQueryMask.tp_dealloc = (destructor) PyQueryMask_DeAlloc; diff --git a/hurricane/src/isobar/PyReference.cpp b/hurricane/src/isobar/PyReference.cpp index 6f0bc833..3593ff6f 100644 --- a/hurricane/src/isobar/PyReference.cpp +++ b/hurricane/src/isobar/PyReference.cpp @@ -55,7 +55,7 @@ extern "C" { // Attribute Method : "PyReference_create ()" PyObject* PyReference_create ( PyObject*, PyObject *args ) { - cdebug.log(20) << "PyReference_create()" << endl; + cdebug_log(20,0) << "PyReference_create()" << endl; Reference* reference = NULL; PyObject* arg0; @@ -99,7 +99,7 @@ extern "C" { static PyObject* PyReference_getPoint ( PyReference *self ) { - cdebug.log(20) << "PyReference_getPoint()" << endl; + cdebug_log(20,0) << "PyReference_getPoint()" << endl; METHOD_HEAD ( "Reference.getPoint()" ) @@ -118,7 +118,7 @@ extern "C" { // Attribute Method : "PyReference_getBoundingBox ()" static PyObject* PyReference_getBoundingBox( PyReference *self ) { - cdebug.log(20) << "PyReference_getBoundingBox()" << endl; + cdebug_log(20,0) << "PyReference_getBoundingBox()" << endl; METHOD_HEAD ( "Reference.BoundingBox()" ) @@ -138,7 +138,7 @@ extern "C" { // Attribute Method : "PyReference_translate ()" static PyObject* PyReference_translate ( PyReference *self, PyObject* args ) { - cdebug.log(20) << "PyReference_translate ()" << endl; + cdebug_log(20,0) << "PyReference_translate ()" << endl; METHOD_HEAD ( "Reference.translate()" ) diff --git a/hurricane/src/isobar/PyRegularLayer.cpp b/hurricane/src/isobar/PyRegularLayer.cpp index da658866..2984d034 100644 --- a/hurricane/src/isobar/PyRegularLayer.cpp +++ b/hurricane/src/isobar/PyRegularLayer.cpp @@ -77,7 +77,7 @@ extern "C" { static PyObject* PyRegularLayer_create ( PyObject*, PyObject* args ) { - cdebug.log(20) << "PyRegularLayer_create()" << endl; + cdebug_log(20,0) << "PyRegularLayer_create()" << endl; RegularLayer* regularLayer = NULL; diff --git a/hurricane/src/isobar/PyRoutingPad.cpp b/hurricane/src/isobar/PyRoutingPad.cpp index 10be82a4..1edda7d4 100644 --- a/hurricane/src/isobar/PyRoutingPad.cpp +++ b/hurricane/src/isobar/PyRoutingPad.cpp @@ -62,7 +62,7 @@ extern "C" { static PyObject* PyRoutingPad_create ( PyObject*, PyObject* args ) { - cdebug.log(20) << "PyRoutingPad_create()" << endl; + cdebug_log(20,0) << "PyRoutingPad_create()" << endl; PyObject* arg0 = NULL; PyObject* arg1 = NULL; @@ -96,7 +96,7 @@ extern "C" { static PyObject* PyRoutingPad_getOccurrence ( PyRoutingPad *self ) { - cdebug.log(20) << "PyRoutingPad_getOccurrence ()" << endl; + cdebug_log(20,0) << "PyRoutingPad_getOccurrence ()" << endl; METHOD_HEAD( "Component.getOccurrence()" ) PyOccurrence* pyOccurrence = PyObject_NEW(PyOccurrence, &PyTypeOccurrence); @@ -112,7 +112,7 @@ extern "C" { static PyObject* PyRoutingPad_getPlugOccurrence ( PyRoutingPad *self ) { - cdebug.log(20) << "PyRoutingPad_getPlugOccurrence ()" << endl; + cdebug_log(20,0) << "PyRoutingPad_getPlugOccurrence ()" << endl; METHOD_HEAD( "Component.getPlugOccurrence()" ) PyOccurrence* pyOccurrence = PyObject_NEW(PyOccurrence, &PyTypeOccurrence); @@ -128,7 +128,7 @@ extern "C" { static PyObject* PyRoutingPad_getSourcePosition ( PyRoutingPad *self ) { - cdebug.log(20) << "PyRoutingPad_getSourcePosition ()" << endl; + cdebug_log(20,0) << "PyRoutingPad_getSourcePosition ()" << endl; METHOD_HEAD( "Component.getSourcePosition()" ) PyPoint* pyPoint = PyObject_NEW( PyPoint, &PyTypePoint ); @@ -144,7 +144,7 @@ extern "C" { static PyObject* PyRoutingPad_getTargetPosition ( PyRoutingPad *self ) { - cdebug.log(20) << "PyRoutingPad_getTargetPosition ()" << endl; + cdebug_log(20,0) << "PyRoutingPad_getTargetPosition ()" << endl; METHOD_HEAD( "Component.getTargetPosition()" ) PyPoint* pyPoint = PyObject_NEW( PyPoint, &PyTypePoint ); @@ -160,7 +160,7 @@ extern "C" { static PyObject* PyRoutingPad_translate ( PyRoutingPad *self, PyObject* args ) { - cdebug.log(20) << "PyRoutingPad_translate ()" << endl; + cdebug_log(20,0) << "PyRoutingPad_translate ()" << endl; HTRY METHOD_HEAD ( "RoutingPad.translate()" ) @@ -181,7 +181,7 @@ extern "C" { #if THIS_IS_DEPRECATED static PyObject* PyRoutingPad_setPosition ( PyRoutingPad *self, PyObject* args ) { - cdebug.log(20) << "PyRoutingPad_setPosition ()" << endl; + cdebug_log(20,0) << "PyRoutingPad_setPosition ()" << endl; HTRY METHOD_HEAD ( "RoutingPad.setPosition()" ) @@ -213,7 +213,7 @@ extern "C" { static PyObject* PyRoutingPad_setOffset ( PyRoutingPad *self, PyObject* args ) { - cdebug.log(20) << "PyRoutingPad_setOffset ()" << endl; + cdebug_log(20,0) << "PyRoutingPad_setOffset ()" << endl; HTRY METHOD_HEAD ( "RoutingPad.setOffset()" ) @@ -234,7 +234,7 @@ extern "C" { static PyObject* PyRoutingPad_setExternalComponent ( PyRoutingPad *self, PyObject* args ) { - cdebug.log(20) << "PyRoutingPad_setExternalComponent ()" << endl; + cdebug_log(20,0) << "PyRoutingPad_setExternalComponent ()" << endl; HTRY METHOD_HEAD ( "RoutingPad.setExternalComponent()" ) @@ -257,7 +257,7 @@ extern "C" { static PyObject* PyRoutingPad_setOnBestComponent ( PyRoutingPad *self, PyObject* args ) { - cdebug.log(20) << "PyRoutingPad_setOnBestComponent ()" << endl; + cdebug_log(20,0) << "PyRoutingPad_setOnBestComponent ()" << endl; Component* selected = NULL; @@ -278,7 +278,7 @@ extern "C" { static PyObject* PyRoutingPad_restorePlugOccurrence ( PyRoutingPad *self, PyObject* args ) { - cdebug.log(20) << "PyRoutingPad_restorePlugOccurrence ()" << endl; + cdebug_log(20,0) << "PyRoutingPad_restorePlugOccurrence ()" << endl; HTRY METHOD_HEAD ( "RoutingPad.restorePlugOccurrence()" ) diff --git a/hurricane/src/isobar/PySegment.cpp b/hurricane/src/isobar/PySegment.cpp index eee727c3..fca13b9a 100644 --- a/hurricane/src/isobar/PySegment.cpp +++ b/hurricane/src/isobar/PySegment.cpp @@ -66,7 +66,7 @@ extern "C" { static PyObject* PySegment_getOppositeHook ( PySegment *self, PyObject* args ) { - cdebug.log(20) << "PySegment_getOppositeHook()" << endl; + cdebug_log(20,0) << "PySegment_getOppositeHook()" << endl; METHOD_HEAD ( "Segment.getOppositeHook()" ) PyHook* pyReturnHook = PyObject_NEW( PyHook, &PyTypeHook ); @@ -87,7 +87,7 @@ extern "C" { static PyObject* PySegment_getSource ( PySegment *self ) { - cdebug.log(20) << "PySegment_getSource()" << endl; + cdebug_log(20,0) << "PySegment_getSource()" << endl; METHOD_HEAD( "Segment.Source()" ) @@ -106,7 +106,7 @@ extern "C" { static PyObject* PySegment_getTarget ( PySegment *self ) { - cdebug.log(20) << "PySegment_getTarget()" << endl; + cdebug_log(20,0) << "PySegment_getTarget()" << endl; METHOD_HEAD( "Segment.Target()" ) @@ -125,7 +125,7 @@ extern "C" { static PyObject* PySegment_getSourcePosition ( PySegment *self ) { - cdebug.log(20) << "PySegment_getSourcePosition()" << endl; + cdebug_log(20,0) << "PySegment_getSourcePosition()" << endl; METHOD_HEAD ( "Segment.SourcePosition()" ) @@ -142,7 +142,7 @@ extern "C" { static PyObject* PySegment_getTargetPosition ( PySegment *self ) { - cdebug.log(20) << "PySegment_getTargetPosition()" << endl; + cdebug_log(20,0) << "PySegment_getTargetPosition()" << endl; METHOD_HEAD ( "Segment.TargetPosition()" ) diff --git a/hurricane/src/isobar/PyTechnology.cpp b/hurricane/src/isobar/PyTechnology.cpp index c617acae..d99049ba 100644 --- a/hurricane/src/isobar/PyTechnology.cpp +++ b/hurricane/src/isobar/PyTechnology.cpp @@ -80,7 +80,7 @@ extern "C" { static PyObject* PyTechnology_create ( PyTechnology*, PyObject* args ) { - cdebug.log(20) << "Technology.create()" << endl; + cdebug_log(20,0) << "Technology.create()" << endl; Technology* technology = NULL; @@ -105,7 +105,7 @@ extern "C" { static PyObject* PyTechnology_getDataBase ( PyTechnology* self ) { - cdebug.log(20) << "PyTechnology_getDataBase()" << endl; + cdebug_log(20,0) << "PyTechnology_getDataBase()" << endl; DataBase* db = NULL; @@ -121,7 +121,7 @@ extern "C" { static PyObject* PyTechnology_getLayer ( PyTechnology *self, PyObject* args ) { - cdebug.log(20) << "Technology.getLayer()" << endl; + cdebug_log(20,0) << "Technology.getLayer()" << endl; METHOD_HEAD("Technology.getLayer()") @@ -152,7 +152,7 @@ extern "C" { static PyObject* PyTechnology_getBasicLayers ( PyTechnology* self, PyObject* args ) { - cdebug.log(20) << "PyTechnology_getBasicLayers()" << endl; + cdebug_log(20,0) << "PyTechnology_getBasicLayers()" << endl; PyBasicLayerCollection* pyObjects = NULL; @@ -189,7 +189,7 @@ extern "C" { static PyObject* PyTechnology_setWorkingLayer ( PyTechnology *self, PyObject* args ) { - cdebug.log(20) << "Technology.setWorkingLayer()" << endl; + cdebug_log(20,0) << "Technology.setWorkingLayer()" << endl; METHOD_HEAD("Technology.setWorkingLayer()") diff --git a/hurricane/src/isobar/PyTransformation.cpp b/hurricane/src/isobar/PyTransformation.cpp index 0c5465e1..0710f6b2 100644 --- a/hurricane/src/isobar/PyTransformation.cpp +++ b/hurricane/src/isobar/PyTransformation.cpp @@ -71,7 +71,7 @@ extern "C" { // Attribute Method : "PyTransformation_NEW ()" static PyObject* PyTransformation_NEW (PyObject *module, PyObject *args) { - cdebug.log(20) << "PyTransformation_NEW()" << endl; + cdebug_log(20,0) << "PyTransformation_NEW()" << endl; Transformation* transf; PyObject* arg0; @@ -106,7 +106,7 @@ extern "C" { PyTransformation* pyTransformation = PyObject_NEW(PyTransformation, &PyTypeTransformation); if (pyTransformation == NULL) { return NULL; } - cdebug.log(20) << "new PyTransformation [" << hex << pyTransformation << "]" << endl; + cdebug_log(20,0) << "new PyTransformation [" << hex << pyTransformation << "]" << endl; HTRY @@ -120,7 +120,7 @@ extern "C" { static int PyTransformation_Init ( PyTransformation* self, PyObject* args, PyObject* kwargs ) { - cdebug.log(20) << "PyTransformation_Init(): " << (void*)self << endl; + cdebug_log(20,0) << "PyTransformation_Init(): " << (void*)self << endl; return 0; } @@ -129,14 +129,14 @@ extern "C" { // Attribute Method : "PyBox_getTranslation ()" static PyObject* PyTransformation_getTranslation ( PyTransformation *self ) { - cdebug.log(20) << "PyBox_getTranslation ()" << endl; + cdebug_log(20,0) << "PyBox_getTranslation ()" << endl; METHOD_HEAD ( "Translation.getTranslation()" ) PyPoint* pyPoint = PyObject_NEW ( PyPoint, &PyTypePoint ); if (pyPoint == NULL) { return NULL; } - cdebug.log(20) << "new PyPoint [" << hex << pyPoint << "]" << endl; + cdebug_log(20,0) << "new PyPoint [" << hex << pyPoint << "]" << endl; HTRY @@ -154,7 +154,7 @@ extern "C" { // Attribute Method : "PyTransformation_getOrientation ()" static PyObject* PyTransformation_getOrientation ( PyTransformation *self ) { - cdebug.log(20) << "PyTransformation_getOrientation ()" << endl; + cdebug_log(20,0) << "PyTransformation_getOrientation ()" << endl; METHOD_HEAD ( "Translation.getOrientation()" ) @@ -169,7 +169,7 @@ extern "C" { static PyObject* PyTransformation_getX ( PyTransformation *self, PyObject* args ) { - cdebug.log(20) << "PyTransformation_getX ()" << endl; + cdebug_log(20,0) << "PyTransformation_getX ()" << endl; METHOD_HEAD ( "Transformation.getX()" ) @@ -204,7 +204,7 @@ extern "C" { static PyObject* PyTransformation_getY ( PyTransformation *self, PyObject* args ) { - cdebug.log(20) << "PyTransformation_getY ()" << endl; + cdebug_log(20,0) << "PyTransformation_getY ()" << endl; METHOD_HEAD ( "Transformation.getY()" ) @@ -239,7 +239,7 @@ extern "C" { static PyObject* PyTransformation_getDx ( PyTransformation *self, PyObject* args ) { - cdebug.log(20) << "PyTransformation_getDx ()" << endl; + cdebug_log(20,0) << "PyTransformation_getDx ()" << endl; METHOD_HEAD ( "Transformation.getDx()" ) @@ -265,7 +265,7 @@ extern "C" { static PyObject* PyTransformation_getDy ( PyTransformation *self, PyObject* args ) { - cdebug.log(20) << "PyTransformation_getDy ()" << endl; + cdebug_log(20,0) << "PyTransformation_getDy ()" << endl; METHOD_HEAD ( "Transformation.getDy()" ) @@ -291,7 +291,7 @@ extern "C" { static PyObject* PyTransformation_getTransformation ( PyTransformation *self, PyObject* args ) { - cdebug.log(20) << "PyTransformation_getTransformation ()" << endl; + cdebug_log(20,0) << "PyTransformation_getTransformation ()" << endl; METHOD_HEAD ( "Transformation.getTransformation()" ) @@ -304,7 +304,7 @@ extern "C" { PyTransformation* resultPyTransf = PyObject_NEW ( PyTransformation, &PyTypeTransformation ); if ( resultPyTransf == NULL ) { return NULL; } - cdebug.log(20) << "new PyTransformation [" << hex << resultPyTransf << "]" << endl; + cdebug_log(20,0) << "new PyTransformation [" << hex << resultPyTransf << "]" << endl; HTRY @@ -323,7 +323,7 @@ extern "C" { static PyObject* PyTransformation_getPoint ( PyTransformation *self, PyObject* args ) { - cdebug.log(20) << "PyTransformation_getPoint ()" << endl; + cdebug_log(20,0) << "PyTransformation_getPoint ()" << endl; METHOD_HEAD ( "Transformation.getPoint()" ) @@ -346,7 +346,7 @@ extern "C" { PyPoint* resultPyPoint = PyObject_NEW ( PyPoint, &PyTypePoint ); if ( resultPyPoint == NULL ) { return NULL; } - cdebug.log(20) << "new PyPoint [" << hex << resultPyPoint << "]" << endl; + cdebug_log(20,0) << "new PyPoint [" << hex << resultPyPoint << "]" << endl; HTRY @@ -365,7 +365,7 @@ extern "C" { static PyObject* PyTransformation_getBox ( PyTransformation *self, PyObject* args ) { - cdebug.log(20) << "PyTransformation_getBox ()" << endl; + cdebug_log(20,0) << "PyTransformation_getBox ()" << endl; METHOD_HEAD ( "Transformation.getBox()" ) @@ -398,7 +398,7 @@ extern "C" { PyBox* resultPyBox = PyObject_NEW ( PyBox, &PyTypeBox ); if ( resultPyBox == NULL ) { return NULL; } - cdebug.log(20) << "new PyBox [" << hex << resultPyBox << "]" << endl; + cdebug_log(20,0) << "new PyBox [" << hex << resultPyBox << "]" << endl; HTRY @@ -417,7 +417,7 @@ extern "C" { static PyObject* PyTransformation_getInvert ( PyTransformation *self ) { - cdebug.log(20) << "PyTransformation_getInvert ()" << endl; + cdebug_log(20,0) << "PyTransformation_getInvert ()" << endl; METHOD_HEAD ( "Transformation.getInvert()" ) @@ -426,7 +426,7 @@ extern "C" { PyTransformation* resultPyTransf = PyObject_NEW ( PyTransformation, &PyTypeTransformation ); if ( resultPyTransf == NULL ) { return NULL; } - cdebug.log(20) << "new PyTransformation [" << hex << resultPyTransf << "]" << endl; + cdebug_log(20,0) << "new PyTransformation [" << hex << resultPyTransf << "]" << endl; HTRY @@ -445,7 +445,7 @@ extern "C" { static PyObject* PyTransformation_Invert ( PyTransformation *self ) { - cdebug.log(20) << "PyTransformation_Invert ()" << endl; + cdebug_log(20,0) << "PyTransformation_Invert ()" << endl; METHOD_HEAD ( "Transformation.Invert()" ) @@ -467,7 +467,7 @@ extern "C" { static PyObject* PyTransformation_ApplyOn ( PyTransformation *self, PyObject* args ) { - cdebug.log(20) << "PyTransformation_ApplyOn ()" << endl; + cdebug_log(20,0) << "PyTransformation_ApplyOn ()" << endl; METHOD_HEAD ( "Transformation.ApplyOn()" ) diff --git a/hurricane/src/isobar/PyTransistorLayer.cpp b/hurricane/src/isobar/PyTransistorLayer.cpp index 19f80f2d..4158c41f 100644 --- a/hurricane/src/isobar/PyTransistorLayer.cpp +++ b/hurricane/src/isobar/PyTransistorLayer.cpp @@ -76,7 +76,7 @@ extern "C" { static PyObject* PyTransistorLayer_create ( PyObject*, PyObject* args ) { - cdebug.log(20) << "PyTransistorLayer_create()" << endl; + cdebug_log(20,0) << "PyTransistorLayer_create()" << endl; TransistorLayer* transistorLayer = NULL; diff --git a/hurricane/src/isobar/PyUpdateSession.cpp b/hurricane/src/isobar/PyUpdateSession.cpp index 987514cc..123f663f 100644 --- a/hurricane/src/isobar/PyUpdateSession.cpp +++ b/hurricane/src/isobar/PyUpdateSession.cpp @@ -41,13 +41,13 @@ extern "C" { static void PyUpdateSession_DeAlloc ( PyUpdateSession* self ) { - cdebug.log(20) << "PyUpdateSession_DeAlloc(" << hex << self << ")" << endl; + cdebug_log(20,0) << "PyUpdateSession_DeAlloc(" << hex << self << ")" << endl; } static PyObject* PyUpdateSession_open ( PyObject* ) { - cdebug.log(20) << "PyUpdateSession_open()" << endl; + cdebug_log(20,0) << "PyUpdateSession_open()" << endl; HTRY UpdateSession::open (); @@ -59,7 +59,7 @@ extern "C" { static PyObject* PyUpdateSession_close ( PyObject* ) { - cdebug.log(20) << "PyUpdateSession_close()" << endl; + cdebug_log(20,0) << "PyUpdateSession_close()" << endl; HTRY UpdateSession::close (); diff --git a/hurricane/src/isobar/PyVertical.cpp b/hurricane/src/isobar/PyVertical.cpp index 13530a3c..9d631a82 100644 --- a/hurricane/src/isobar/PyVertical.cpp +++ b/hurricane/src/isobar/PyVertical.cpp @@ -59,7 +59,7 @@ extern "C" { // Attribute Method : "PyVertical_create ()" static PyObject* PyVertical_create ( PyObject*, PyObject *args ) { - cdebug.log(20) << "PyVertical_create()" << endl; + cdebug_log(20,0) << "PyVertical_create()" << endl; PyObject* arg0; PyObject* arg1; @@ -149,7 +149,7 @@ extern "C" { // Attribute Method : "PyVertical_translate ()" static PyObject* PyVertical_translate ( PyVertical *self, PyObject* args ) { - cdebug.log(20) << "PyVertical_translate ()" << endl; + cdebug_log(20,0) << "PyVertical_translate ()" << endl; HTRY METHOD_HEAD ( "Vertical.translate()" ) diff --git a/hurricane/src/isobar/PyViaLayer.cpp b/hurricane/src/isobar/PyViaLayer.cpp index b55ea7f0..8e9582cf 100644 --- a/hurricane/src/isobar/PyViaLayer.cpp +++ b/hurricane/src/isobar/PyViaLayer.cpp @@ -76,7 +76,7 @@ extern "C" { static PyObject* PyViaLayer_create ( PyObject*, PyObject* args ) { - cdebug.log(20) << "PyViaLayer_create()" << endl; + cdebug_log(20,0) << "PyViaLayer_create()" << endl; ViaLayer* viaLayer = NULL; diff --git a/hurricane/src/isobar/hurricane/isobar/PyHurricane.h b/hurricane/src/isobar/hurricane/isobar/PyHurricane.h index 5ff9a836..f83922a8 100644 --- a/hurricane/src/isobar/hurricane/isobar/PyHurricane.h +++ b/hurricane/src/isobar/hurricane/isobar/PyHurricane.h @@ -223,7 +223,7 @@ extern "C" { # define predicateFromLayer(FUNC_NAME,PY_SELF_TYPE,SELF_TYPE) \ static PyObject* PY_SELF_TYPE##_##FUNC_NAME ( PY_SELF_TYPE* self, PyObject* args ) \ { \ - cdebug.log(20) << #PY_SELF_TYPE "_" #FUNC_NAME "()" << endl; \ + cdebug_log(20,0) << #PY_SELF_TYPE "_" #FUNC_NAME "()" << endl; \ \ HTRY \ GENERIC_METHOD_HEAD(SELF_TYPE,cobject,#SELF_TYPE"."#FUNC_NAME"()") \ @@ -356,7 +356,7 @@ extern "C" { # define accessorLayerFromVoid(FUNC_NAME,PY_SELF_TYPE,SELF_TYPE) \ static PyObject* PY_SELF_TYPE##_##FUNC_NAME ( PY_SELF_TYPE* self ) \ { \ - cdebug.log(20) << #PY_SELF_TYPE "_" #FUNC_NAME "()" << endl; \ + cdebug_log(20,0) << #PY_SELF_TYPE "_" #FUNC_NAME "()" << endl; \ \ Layer* rlayer = NULL; \ \ @@ -373,7 +373,7 @@ extern "C" { # define accessorAnyLayerFromName(FUNC_NAME,PY_SELF_TYPE,SELF_TYPE,LAYER_TYPE) \ static PyObject* PY_SELF_TYPE##_##FUNC_NAME ( PY_SELF_TYPE* self, PyObject* args ) \ { \ - cdebug.log(20) << #PY_SELF_TYPE "_" #FUNC_NAME "()" << endl; \ + cdebug_log(20,0) << #PY_SELF_TYPE "_" #FUNC_NAME "()" << endl; \ \ LAYER_TYPE * rlayer = NULL; \ \ @@ -399,7 +399,7 @@ extern "C" { # define accessorLayerFromLayerOptBool(FUNC_NAME,PY_SELF_TYPE,SELF_TYPE) \ static PyObject* PY_SELF_TYPE##_##FUNC_NAME ( PY_SELF_TYPE* self, PyObject* args ) \ { \ - cdebug.log(20) << #PY_SELF_TYPE "_" #FUNC_NAME "()" << endl; \ + cdebug_log(20,0) << #PY_SELF_TYPE "_" #FUNC_NAME "()" << endl; \ \ Layer* rlayer = NULL; \ \ @@ -435,7 +435,7 @@ extern "C" { # define accessorLayerFromLayerLayer(FUNC_NAME,PY_SELF_TYPE,SELF_TYPE) \ static PyObject* PY_SELF_TYPE##_##FUNC_NAME ( PY_SELF_TYPE* self, PyObject* args ) \ { \ - cdebug.log(20) << #PY_SELF_TYPE "_" #FUNC_NAME "()" << endl; \ + cdebug_log(20,0) << #PY_SELF_TYPE "_" #FUNC_NAME "()" << endl; \ \ Layer* rlayer = NULL; \ \ @@ -467,7 +467,7 @@ extern "C" { # define accessorLayerFromInt(FUNC_NAME,PY_SELF_TYPE,SELF_TYPE) \ static PyObject* PY_SELF_TYPE##_##FUNC_NAME ( PY_SELF_TYPE* self, PyObject* args ) \ { \ - cdebug.log(20) << #PY_SELF_TYPE "_" #FUNC_NAME "()" << endl; \ + cdebug_log(20,0) << #PY_SELF_TYPE "_" #FUNC_NAME "()" << endl; \ \ Layer* rlayer = NULL; \ int value = 0; \ @@ -492,7 +492,7 @@ extern "C" { # define updatorFromBasicLayer(FUNC_NAME,PY_SELF_TYPE,SELF_TYPE) \ static PyObject* PY_SELF_TYPE##_##FUNC_NAME ( PY_SELF_TYPE* self, PyObject* args ) \ { \ - cdebug.log(20) << #PY_SELF_TYPE "_" #FUNC_NAME "()" << endl; \ + cdebug_log(20,0) << #PY_SELF_TYPE "_" #FUNC_NAME "()" << endl; \ \ HTRY \ GENERIC_METHOD_HEAD(SELF_TYPE,cobject,#SELF_TYPE"."#FUNC_NAME"()") \ @@ -521,7 +521,7 @@ extern "C" { #define accessorHook(FUNC_NAME,PY_SELF_TYPE,SELF_TYPE) \ static PyObject* PY_SELF_TYPE##_##FUNC_NAME( PY_SELF_TYPE *self ) \ { \ - cdebug.log(20) << #PY_SELF_TYPE "_" #FUNC_NAME "()" << endl; \ + cdebug_log(20,0) << #PY_SELF_TYPE "_" #FUNC_NAME "()" << endl; \ \ PyHook* pyHook = PyObject_NEW( PyHook, &PyTypeHook ); \ if (pyHook == NULL) return NULL; \ @@ -638,7 +638,7 @@ extern "C" { #define GetNameMethod(SELF_TYPE, SELF) \ static PyObject* Py##SELF_TYPE##_getName(Py##SELF_TYPE* self) { \ - cdebug.log(20) << "Py"#SELF_TYPE"_getName()" << endl; \ + cdebug_log(20,0) << "Py"#SELF_TYPE"_getName()" << endl; \ HTRY \ METHOD_HEAD (#SELF_TYPE".getName()") \ return PyString_FromString(getString(SELF->getName()).c_str()); \ @@ -648,7 +648,7 @@ extern "C" { #define SetNameMethod(SELF_TYPE, SELF) \ static PyObject* Py##SELF_TYPE##_setName(Py##SELF_TYPE* self, PyObject* args) { \ - cdebug.log(20) << "Py"#SELF_TYPE"_setName()" << endl; \ + cdebug_log(20,0) << "Py"#SELF_TYPE"_setName()" << endl; \ HTRY \ METHOD_HEAD (#SELF_TYPE".setName()") \ char* name = NULL; \ @@ -685,12 +685,12 @@ extern "C" { #define DirectDeleteMethod(PY_FUNC_NAME, PY_SELF_TYPE) \ static void PY_FUNC_NAME ( PY_SELF_TYPE *self ) \ { \ - cdebug.log(20) << #PY_SELF_TYPE"_DeAlloc(" << hex << self << ") " \ + cdebug_log(20,0) << #PY_SELF_TYPE"_DeAlloc(" << hex << self << ") " \ << hex << (void*)(self->ACCESS_OBJECT) \ << ":" << self->ACCESS_OBJECT << endl; \ \ if ( self->ACCESS_OBJECT ) { \ - cdebug.log(20) << "C++ object := " << hex \ + cdebug_log(20,0) << "C++ object := " << hex \ << &(self->ACCESS_OBJECT) << endl; \ delete self->ACCESS_OBJECT; \ } \ @@ -705,7 +705,7 @@ extern "C" { #define PlugDeleteMethod(PY_FUNC_NAME,PY_SELF_TYPE) \ static void PY_FUNC_NAME ( PY_SELF_TYPE *self ) \ { \ - cdebug.log(20) << "PyHObject_DeAlloc(" << hex << self << ") " \ + cdebug_log(20,0) << "PyHObject_DeAlloc(" << hex << self << ") " \ << self->ACCESS_OBJECT << endl; \ \ PyObject_DEL ( self ); \ @@ -730,7 +730,7 @@ extern "C" { #define DirectVoidMethod(SELF_TYPE, SELF_OBJECT, FUNC_NAME) \ static PyObject* Py##SELF_TYPE##_##FUNC_NAME(Py##SELF_TYPE* self) \ { \ - cdebug.log(20) << "Py" #SELF_TYPE "_" #FUNC_NAME "()" << endl; \ + cdebug_log(20,0) << "Py" #SELF_TYPE "_" #FUNC_NAME "()" << endl; \ HTRY \ METHOD_HEAD(#SELF_TYPE "." #FUNC_NAME "()") \ SELF_OBJECT->FUNC_NAME(); \ @@ -764,7 +764,7 @@ extern "C" { \ extern void Py##TYPE##Collection_LinkPyType () \ { \ - cdebug.log(20) << "Py"#TYPE"Collection_LinkType()" << endl; \ + cdebug_log(20,0) << "Py"#TYPE"Collection_LinkType()" << endl; \ PyType##TYPE##Collection.tp_iter = (getiterfunc)GetLocator; \ PyType##TYPE##Collection.tp_dealloc = (destructor)Py##TYPE##Collection_DeAlloc; \ PyType##TYPE##CollectionLocator.tp_dealloc = (destructor)Py##TYPE##CollectionLocatorDeAlloc; \ @@ -820,7 +820,7 @@ extern "C" { # define accessorCollectionFromVoid(FUNC_NAME,PY_SELF_TYPE,SELF_TYPE,COLL_TYPE) \ static PyObject* PY_SELF_TYPE##_##FUNC_NAME ( PY_SELF_TYPE* self ) \ { \ - cdebug.log(20) << #PY_SELF_TYPE "_" #FUNC_NAME "()" << endl; \ + cdebug_log(20,0) << #PY_SELF_TYPE "_" #FUNC_NAME "()" << endl; \ \ Py##COLL_TYPE##Collection* pyObjects = NULL; \ \ @@ -883,7 +883,7 @@ extern "C" { \ extern void Py##TYPE##Vector_LinkPyType () \ { \ - cdebug.log(20) << "Py"#TYPE"Vector_LinkType()" << endl; \ + cdebug_log(20,0) << "Py"#TYPE"Vector_LinkType()" << endl; \ \ PyType##TYPE##Vector.tp_iter = (getiterfunc)Py##TYPE##Vector_GetIterator; \ PyType##TYPE##Vector.tp_dealloc = (destructor)Py##TYPE##Vector_DeAlloc; \ @@ -909,7 +909,7 @@ extern "C" { # define accessorVectorFromVoid(FUNC_NAME,PY_SELF_TYPE,SELF_TYPE,TYPE) \ static PyObject* PY_SELF_TYPE##_##FUNC_NAME ( PY_SELF_TYPE* self ) \ { \ - cdebug.log(20) << #PY_SELF_TYPE "_" #FUNC_NAME "()" << endl; \ + cdebug_log(20,0) << #PY_SELF_TYPE "_" #FUNC_NAME "()" << endl; \ \ Py##TYPE##Vector* pyVector = NULL; \ \ @@ -1040,7 +1040,7 @@ extern "C" { if (pyObject == NULL) { return NULL; } \ \ pyObject->ACCESS_OBJECT = object; \ - cdebug.log(20) << "Py" #SELF_TYPE "_Link(" << hex << pyObject << ") " \ + cdebug_log(20,0) << "Py" #SELF_TYPE "_Link(" << hex << pyObject << ") " \ << hex << (void*)object << ":" << object << endl; \ HCATCH \ \ @@ -1102,7 +1102,7 @@ extern "C" { pyObject = (Py##SELF_TYPE*)proxy->getShadow (); \ Py_INCREF ( ACCESS_CLASS(pyObject) ); \ } \ - cdebug.log(20) << "PyDbo" #SELF_TYPE "_Link(" << hex << pyObject << ") " \ + cdebug_log(20,0) << "PyDbo" #SELF_TYPE "_Link(" << hex << pyObject << ") " \ << hex << (void*)object << ":" << object << endl; \ HCATCH \ \ @@ -1115,7 +1115,7 @@ extern "C" { # define DBoDeleteMethod(SELF_TYPE) \ static void Py##SELF_TYPE##_DeAlloc ( Py##SELF_TYPE *self ) \ { \ - cdebug.log(20) << "PyDbObject_DeAlloc(" << hex << self << ") " \ + cdebug_log(20,0) << "PyDbObject_DeAlloc(" << hex << self << ") " \ << hex << (void*)(self->ACCESS_OBJECT) << ":" << self->ACCESS_OBJECT << endl; \ \ if ( self->ACCESS_OBJECT != NULL ) { \ @@ -1140,7 +1140,7 @@ extern "C" { # define PythonOnlyDeleteMethod(SELF_TYPE) \ static void Py##SELF_TYPE##_DeAlloc ( Py##SELF_TYPE *self ) \ { \ - cdebug.log(20) << "PythonOnlyObject_DeAlloc(" << hex << self << ") " \ + cdebug_log(20,0) << "PythonOnlyObject_DeAlloc(" << hex << self << ") " \ << hex << (void*)(self->ACCESS_OBJECT) \ << ":" << self->ACCESS_OBJECT << endl; \ PyObject_DEL ( self ); \ @@ -1155,7 +1155,7 @@ extern "C" { # define NoObjectDeleteMethod(SELF_TYPE) \ static void Py##SELF_TYPE##_DeAlloc ( Py##SELF_TYPE *self ) \ { \ - cdebug.log(20) << "PythonOnlyObject_DeAlloc(" << hex << self << ") " \ + cdebug_log(20,0) << "PythonOnlyObject_DeAlloc(" << hex << self << ") " \ << "[no object]" << endl; \ PyObject_DEL ( self ); \ } @@ -1168,7 +1168,7 @@ extern "C" { #define PyTypeObjectLinkPyTypeWithoutObject(PY_SELF_TYPE,SELF_TYPE) \ extern void Py##PY_SELF_TYPE##_LinkPyType() { \ - cdebug.log(20) << "Py" #PY_SELF_TYPE "_LinkType()" << endl; \ + cdebug_log(20,0) << "Py" #PY_SELF_TYPE "_LinkType()" << endl; \ \ PyType##PY_SELF_TYPE.tp_dealloc = (destructor) Py##PY_SELF_TYPE##_DeAlloc; \ PyType##PY_SELF_TYPE.tp_methods = Py##PY_SELF_TYPE##_Methods; \ @@ -1186,7 +1186,7 @@ extern "C" { DirectCmpMethod (Py##PY_SELF_TYPE##_Cmp, IsPy##PY_SELF_TYPE, Py##PY_SELF_TYPE) \ DirectHashMethod(Py##PY_SELF_TYPE##_Hash, Py##SELF_TYPE) \ extern void Py##PY_SELF_TYPE##_LinkPyType() { \ - cdebug.log(20) << "Py" #PY_SELF_TYPE "_LinkType()" << endl; \ + cdebug_log(20,0) << "Py" #PY_SELF_TYPE "_LinkType()" << endl; \ \ PyType##PY_SELF_TYPE.tp_dealloc = (destructor) Py##PY_SELF_TYPE##_DeAlloc; \ PyType##PY_SELF_TYPE.tp_compare = (cmpfunc) Py##PY_SELF_TYPE##_Cmp; \ @@ -1203,7 +1203,7 @@ extern "C" { DirectCmpMethod (Py##PY_SELF_TYPE##_Cmp, IsPy##PY_SELF_TYPE, Py##PY_SELF_TYPE) \ DirectHashMethod(Py##PY_SELF_TYPE##_Hash, Py##SELF_TYPE) \ extern void Py##PY_SELF_TYPE##_LinkPyType() { \ - cdebug.log(20) << "Py" #PY_SELF_TYPE "_LinkType()" << endl; \ + cdebug_log(20,0) << "Py" #PY_SELF_TYPE "_LinkType()" << endl; \ \ PyType##PY_SELF_TYPE.tp_dealloc = (destructor) Py##PY_SELF_TYPE##_DeAlloc; \ PyType##PY_SELF_TYPE.tp_compare = (cmpfunc) Py##PY_SELF_TYPE##_Cmp; \ @@ -1230,7 +1230,7 @@ extern "C" { DirectCmpMethod (Py##PY_SELF_TYPE##Locator_Cmp, IsPy##PY_SELF_TYPE##Locator, Py##PY_SELF_TYPE##Locator) \ extern void Py##PY_SELF_TYPE##Locator_LinkPyType () \ { \ - cdebug.log(20) << "Py" #PY_SELF_TYPE "Locator_LinkType()" << endl; \ + cdebug_log(20,0) << "Py" #PY_SELF_TYPE "Locator_LinkType()" << endl; \ \ PyType##PY_SELF_TYPE##Locator.tp_dealloc = (destructor)Py##PY_SELF_TYPE##Locator_DeAlloc; \ PyType##PY_SELF_TYPE##Locator.tp_compare = (cmpfunc) Py##PY_SELF_TYPE##Locator_Cmp; \ diff --git a/hurricane/src/viewer/DisplayStyle.cpp b/hurricane/src/viewer/DisplayStyle.cpp index f829a69e..cbebab48 100644 --- a/hurricane/src/viewer/DisplayStyle.cpp +++ b/hurricane/src/viewer/DisplayStyle.cpp @@ -216,7 +216,7 @@ namespace Hurricane { void JsonDrawingStyle::toData(JsonStack& stack) { - cdebug.log(19,1); + cdebug_log(19,1); check( stack, "JsonDrawingStyle::toData" ); @@ -260,7 +260,7 @@ namespace Hurricane { update( stack, NULL ); - cdebug.tabw(19,-1); + cdebug_tabw(19,-1); } @@ -399,7 +399,7 @@ namespace Hurricane { void JsonDrawingGroup::toData(JsonStack& stack) { - cdebug.log(19,1); + cdebug_log(19,1); check( stack, "JsonDrawingGroup::toData" ); @@ -427,7 +427,7 @@ namespace Hurricane { update( stack, dg ); - cdebug.tabw(19,-1); + cdebug_tabw(19,-1); } @@ -695,7 +695,7 @@ namespace Hurricane { void JsonDisplayStyle::toData(JsonStack& stack) { - cdebug.log(19,1); + cdebug_log(19,1); check( stack, "JsonDisplayStyle::toData" ); @@ -726,7 +726,7 @@ namespace Hurricane { update( stack, ds ); - cdebug.tabw(19,-1); + cdebug_tabw(19,-1); } @@ -765,7 +765,7 @@ namespace Hurricane { void JsonHSVr::toData(JsonStack& stack) { - cdebug.log(19,1); + cdebug_log(19,1); check( stack, "JsonHSVr::toData" ); @@ -777,7 +777,7 @@ namespace Hurricane { update( stack, hsvr ); - cdebug.tabw(19,-1); + cdebug_tabw(19,-1); } diff --git a/hurricane/src/viewer/Graphics.cpp b/hurricane/src/viewer/Graphics.cpp index 4b2b63e3..ee46917b 100644 --- a/hurricane/src/viewer/Graphics.cpp +++ b/hurricane/src/viewer/Graphics.cpp @@ -418,7 +418,7 @@ namespace Hurricane { void JsonGraphics::toData(JsonStack& stack) { - cdebug.tabw(19,1); + cdebug_tabw(19,1); check( stack, "JsonGraphics::toData" ); @@ -426,7 +426,7 @@ namespace Hurricane { update( stack, Graphics::getGraphics() ); - cdebug.tabw(19,-1); + cdebug_tabw(19,-1); } diff --git a/hurricane/src/viewer/PyCellViewer.cpp b/hurricane/src/viewer/PyCellViewer.cpp index 407e929b..63bb953d 100644 --- a/hurricane/src/viewer/PyCellViewer.cpp +++ b/hurricane/src/viewer/PyCellViewer.cpp @@ -42,7 +42,7 @@ extern "C" { static PyObject* PyCellViewer_hasMenu ( PyCellViewer* self, PyObject* args ) { - cdebug.log(20) << "PyCellViewer_hasMenu()" << endl; + cdebug_log(20,0) << "PyCellViewer_hasMenu()" << endl; HTRY METHOD_HEAD("CellViewer.hasMenu()") @@ -62,7 +62,7 @@ extern "C" { static PyObject* PyCellViewer_hasMenuAction ( PyCellViewer* self, PyObject* args ) { - cdebug.log(20) << "PyCellViewer_hasMenuAction()" << endl; + cdebug_log(20,0) << "PyCellViewer_hasMenuAction()" << endl; HTRY METHOD_HEAD("CellViewer.hasMenuAction()") @@ -82,7 +82,7 @@ extern "C" { static PyObject* PyCellViewer_addMenu ( PyCellViewer* self, PyObject* args ) { - cdebug.log(20) << "PyCellViewer_addMenu()" << endl; + cdebug_log(20,0) << "PyCellViewer_addMenu()" << endl; HTRY METHOD_HEAD("CellViewer.addMenu()") @@ -104,7 +104,7 @@ extern "C" { static PyObject* PyCellViewer_addToMenu ( PyCellViewer* self, PyObject* args ) { - cdebug.log(20) << "PyCellViewer_addToMenu()" << endl; + cdebug_log(20,0) << "PyCellViewer_addToMenu()" << endl; HTRY METHOD_HEAD("CellViewer.addToMenu()") @@ -131,7 +131,7 @@ extern "C" { static PyObject* PyCellViewer_getCell ( PyCellViewer* self ) { - cdebug.log(20) << "PyCellViewer_getCell ()" << endl; + cdebug_log(20,0) << "PyCellViewer_getCell ()" << endl; Cell* cell = NULL; @@ -149,7 +149,7 @@ extern "C" { static PyObject* PyCellViewer_setCell ( PyCellViewer* self, PyObject* args ) { - cdebug.log(20) << "PyCellViewer_setCell ()" << endl; + cdebug_log(20,0) << "PyCellViewer_setCell ()" << endl; HTRY METHOD_HEAD("CellViewer.setCell()") @@ -168,7 +168,7 @@ extern "C" { static PyObject* PyCellViewer_setApplicationName ( PyCellViewer* self, PyObject* args ) { - cdebug.log(20) << "PyCellViewer_setApplicationName ()" << endl; + cdebug_log(20,0) << "PyCellViewer_setApplicationName ()" << endl; HTRY METHOD_HEAD("CellViewer.setApplicationName()") @@ -188,7 +188,7 @@ extern "C" { static PyObject* PyCellViewer_setLayerVisible ( PyCellViewer* self, PyObject* args ) { - cdebug.log(20) << "PyCellViewer_setLayerVisible ()" << endl; + cdebug_log(20,0) << "PyCellViewer_setLayerVisible ()" << endl; HTRY METHOD_HEAD("CellViewer.setLayerVisible()") @@ -209,7 +209,7 @@ extern "C" { static PyObject* PyCellViewer_setAnonNetSelectable ( PyCellViewer* self, PyObject* args ) { - cdebug.log(20) << "PyCellViewer_setAnonNetSelectable ()" << endl; + cdebug_log(20,0) << "PyCellViewer_setAnonNetSelectable ()" << endl; HTRY METHOD_HEAD("CellViewer.setAnonNetSelectable()") @@ -230,7 +230,7 @@ extern "C" { static PyObject* PyCellViewer_fit ( PyCellViewer* self ) { - cdebug.log(20) << "PyCellViewer_fit()" << endl; + cdebug_log(20,0) << "PyCellViewer_fit()" << endl; HTRY METHOD_HEAD("CellViewer.fit()") @@ -243,7 +243,7 @@ extern "C" { static PyObject* PyCellViewer_refresh ( PyCellViewer* self ) { - cdebug.log(20) << "PyCellViewer_refresh()" << endl; + cdebug_log(20,0) << "PyCellViewer_refresh()" << endl; HTRY METHOD_HEAD("CellViewer.refresh()") diff --git a/hurricane/src/viewer/PyDisplayStyle.cpp b/hurricane/src/viewer/PyDisplayStyle.cpp index d854c3ee..ea3e5ea0 100644 --- a/hurricane/src/viewer/PyDisplayStyle.cpp +++ b/hurricane/src/viewer/PyDisplayStyle.cpp @@ -79,7 +79,7 @@ extern "C" { static PyObject* PyDisplayStyle_new ( PyTypeObject* type, PyObject* args, PyObject* kwds ) { - cdebug.log(20) << "PyDisplayStyle_new()" << endl; + cdebug_log(20,0) << "PyDisplayStyle_new()" << endl; DisplayStyle* ds = NULL; PyDisplayStyle* pyDs = (PyDisplayStyle*)type->tp_alloc(type,0); @@ -103,7 +103,7 @@ extern "C" { PyObject* PyDisplayStyle_getDarkening ( PyDisplayStyle* self, PyObject* args ) { - cdebug.log(20) << "PyDisplayStyle_getDarkening()" << endl; + cdebug_log(20,0) << "PyDisplayStyle_getDarkening()" << endl; DisplayStyle::HSVr* darkening = new DisplayStyle::HSVr(); @@ -118,7 +118,7 @@ extern "C" { PyObject* PyDisplayStyle_getGroup ( PyDisplayStyle* self, PyObject* args ) { - cdebug.log(20) << "PyDisplayStyle_getGroup()" << endl; + cdebug_log(20,0) << "PyDisplayStyle_getGroup()" << endl; const char* group = NULL; @@ -139,7 +139,7 @@ extern "C" { PyObject* PyDisplayStyle_getPattern ( PyDisplayStyle* self, PyObject* args ) { - cdebug.log(20) << "PyDisplayStyle_getPattern()" << endl; + cdebug_log(20,0) << "PyDisplayStyle_getPattern()" << endl; const char* pattern = NULL; @@ -160,7 +160,7 @@ extern "C" { PyObject* PyDisplayStyle_getThreshold ( PyDisplayStyle* self, PyObject* args ) { - cdebug.log(20) << "PyDisplayStyle_getThreshold()" << endl; + cdebug_log(20,0) << "PyDisplayStyle_getThreshold()" << endl; float threshold = 0.0; @@ -181,7 +181,7 @@ extern "C" { PyObject* PyDisplayStyle_find ( PyDisplayStyle* self, PyObject* args ) { - cdebug.log(20) << "PyDisplayStyle_find()" << endl; + cdebug_log(20,0) << "PyDisplayStyle_find()" << endl; DrawingStyle drawingStyle; @@ -202,7 +202,7 @@ extern "C" { PyObject* PyDisplayStyle_setDescription ( PyDisplayStyle* self, PyObject* args ) { - cdebug.log(20) << "PyDisplayStyle_setDescription()" << endl; + cdebug_log(20,0) << "PyDisplayStyle_setDescription()" << endl; HTRY METHOD_HEAD("DisplayStyle.setDescription()") @@ -221,7 +221,7 @@ extern "C" { PyObject* PyDisplayStyle_setDarkening ( PyDisplayStyle* self, PyObject* args ) { - cdebug.log(20) << "PyDisplayStyle_setDarkening()" << endl; + cdebug_log(20,0) << "PyDisplayStyle_setDarkening()" << endl; HTRY METHOD_HEAD("DisplayStyle.setDarkening()") @@ -240,7 +240,7 @@ extern "C" { PyObject* PyDisplayStyle_inheritFrom ( PyDisplayStyle* self, PyObject* args ) { - cdebug.log(20) << "PyDisplayStyle_inheritFrom()" << endl; + cdebug_log(20,0) << "PyDisplayStyle_inheritFrom()" << endl; HTRY METHOD_HEAD("DisplayStyle.inheritFrom()") @@ -266,7 +266,7 @@ extern "C" { PyObject* PyDisplayStyle_addDrawingStyle ( PyDisplayStyle* self, PyObject* args, PyObject* kwArgs ) { - cdebug.log(20) << "PyDisplayStyle_addDrawingStyle()" << endl; + cdebug_log(20,0) << "PyDisplayStyle_addDrawingStyle()" << endl; HTRY METHOD_HEAD("DisplayStyle.addDrawingStyle()") @@ -381,7 +381,7 @@ extern "C" { DirectHashMethod(PyDisplayStyle_Hash, PyDisplayStyle) extern void PyDisplayStyle_LinkPyType() { - cdebug.log(20) << "PyDisplayStyle_LinkType()" << endl; + cdebug_log(20,0) << "PyDisplayStyle_LinkType()" << endl; PyTypeDisplayStyle.tp_new = PyDisplayStyle_new; PyTypeDisplayStyle.tp_dealloc = (destructor) PyDisplayStyle_DeAlloc; diff --git a/hurricane/src/viewer/PyDrawingGroup.cpp b/hurricane/src/viewer/PyDrawingGroup.cpp index fb999eea..55972977 100644 --- a/hurricane/src/viewer/PyDrawingGroup.cpp +++ b/hurricane/src/viewer/PyDrawingGroup.cpp @@ -77,7 +77,7 @@ extern "C" { PyObject* PyDrawingGroup_find ( PyDrawingGroup* self, PyObject* args ) { - cdebug.log(20) << "PyDrawingGroup_find()" << endl; + cdebug_log(20,0) << "PyDrawingGroup_find()" << endl; DrawingStyle drawingStyle; @@ -98,7 +98,7 @@ extern "C" { PyObject* PyDrawingGroup_addDrawingStyle ( PyDrawingGroup* self, PyObject* args, PyObject* kwArgs ) { - cdebug.log(20) << "PyDrawingGroup_addDrawingStyle()" << endl; + cdebug_log(20,0) << "PyDrawingGroup_addDrawingStyle()" << endl; HTRY METHOD_HEAD("DrawingGroup.addDrawingStyle()") @@ -192,7 +192,7 @@ extern "C" { DirectHashMethod(PyDrawingGroup_Hash, PyDrawingGroup) extern void PyDrawingGroup_LinkPyType() { - cdebug.log(20) << "PyDrawingGroup_LinkType()" << endl; + cdebug_log(20,0) << "PyDrawingGroup_LinkType()" << endl; PyTypeDrawingGroup.tp_dealloc = (destructor) PyDrawingGroup_DeAlloc; PyTypeDrawingGroup.tp_repr = (reprfunc) PyDrawingGroup_Repr; diff --git a/hurricane/src/viewer/PyDrawingStyle.cpp b/hurricane/src/viewer/PyDrawingStyle.cpp index a2cd7ad5..e91be8ba 100644 --- a/hurricane/src/viewer/PyDrawingStyle.cpp +++ b/hurricane/src/viewer/PyDrawingStyle.cpp @@ -57,7 +57,7 @@ extern "C" { PyObject* PyRawDrawingStyle_getPattern ( PyRawDrawingStyle* self, PyObject* args ) { - cdebug.log(20) << "PyDrawingStyle_getPattern()" << endl; + cdebug_log(20,0) << "PyDrawingStyle_getPattern()" << endl; const char* pattern = NULL; @@ -72,7 +72,7 @@ extern "C" { PyObject* PyRawDrawingStyle_getThreshold ( PyRawDrawingStyle* self, PyObject* args ) { - cdebug.log(20) << "PyRawDrawingStyle_getThreshold()" << endl; + cdebug_log(20,0) << "PyRawDrawingStyle_getThreshold()" << endl; float threshold = 0.0; diff --git a/hurricane/src/viewer/PyGraphics.cpp b/hurricane/src/viewer/PyGraphics.cpp index 091e379a..1dff74bf 100644 --- a/hurricane/src/viewer/PyGraphics.cpp +++ b/hurricane/src/viewer/PyGraphics.cpp @@ -50,7 +50,7 @@ extern "C" { static PyObject* PyGraphics_get ( PyObject* ) { - cdebug.log(20) << "PyGraphics_get()" << endl; + cdebug_log(20,0) << "PyGraphics_get()" << endl; Graphics* graphics = NULL; PyGraphics* pyGraphics = NULL; @@ -70,7 +70,7 @@ extern "C" { static PyObject* PyGraphics_setStyle ( PyObject*, PyObject* args ) { - cdebug.log(20) << "PyGraphics_setStyle()" << endl; + cdebug_log(20,0) << "PyGraphics_setStyle()" << endl; HTRY Graphics* graphics = Graphics::getGraphics (); @@ -90,7 +90,7 @@ extern "C" { PyObject* PyGraphics_getPattern ( PyGraphics* , PyObject* args ) { - cdebug.log(20) << "PyGraphics_getPattern()" << endl; + cdebug_log(20,0) << "PyGraphics_getPattern()" << endl; const char* pattern = NULL; @@ -111,7 +111,7 @@ extern "C" { PyObject* PyGraphics_getStyle ( PyGraphics* , PyObject* args ) { - cdebug.log(20) << "PyGraphics_getStyle()" << endl; + cdebug_log(20,0) << "PyGraphics_getStyle()" << endl; DisplayStyle* style = NULL; @@ -133,7 +133,7 @@ extern "C" { PyObject* PyGraphics_getGroup ( PyGraphics* , PyObject* args ) { - cdebug.log(20) << "PyGraphics_getGroup()" << endl; + cdebug_log(20,0) << "PyGraphics_getGroup()" << endl; const char* group = "NoGroup"; @@ -154,7 +154,7 @@ extern "C" { PyObject* PyGraphics_getThreshold ( PyGraphics* , PyObject* args ) { - cdebug.log(20) << "PyGraphics_getThreshold()" << endl; + cdebug_log(20,0) << "PyGraphics_getThreshold()" << endl; float threshold = 0.0; @@ -175,7 +175,7 @@ extern "C" { PyObject* PyGraphics_getDarkening ( PyGraphics* , PyObject* args ) { - cdebug.log(20) << "PyGraphics_getDarkening()" << endl; + cdebug_log(20,0) << "PyGraphics_getDarkening()" << endl; DisplayStyle::HSVr* darkening = new DisplayStyle::HSVr(); @@ -190,7 +190,7 @@ extern "C" { PyObject* PyGraphics_toHtml ( PyGraphics* , PyObject* args ) { - cdebug.log(20) << "PyGraphics_toHtml()" << endl; + cdebug_log(20,0) << "PyGraphics_toHtml()" << endl; string htmlText = ""; @@ -211,7 +211,7 @@ extern "C" { PyObject* PyGraphics_breakpointStopCb ( PyGraphics* , PyObject* args ) { - cdebug.log(20) << "PyGraphics_breakpointStopCb()" << endl; + cdebug_log(20,0) << "PyGraphics_breakpointStopCb()" << endl; bool rvalue = false; @@ -233,7 +233,7 @@ extern "C" { static PyObject* PyGraphics_addStyle ( PyObject*, PyObject* args ) { - cdebug.log(20) << "PyGraphics_addStyle()" << endl; + cdebug_log(20,0) << "PyGraphics_addStyle()" << endl; HTRY Graphics* graphics = Graphics::getGraphics (); @@ -252,7 +252,7 @@ extern "C" { static PyObject* PyGraphics_enable ( PyObject*, PyObject* args ) { - cdebug.log(20) << "PyGraphics_enable()" << endl; + cdebug_log(20,0) << "PyGraphics_enable()" << endl; HTRY Graphics::getGraphics()->enable(); @@ -268,7 +268,7 @@ extern "C" { static PyObject* PyGraphics_getStyles ( PyObject* ) { - cdebug.log(20) << "PyGraphics_getStyles()" << endl; + cdebug_log(20,0) << "PyGraphics_getStyles()" << endl; PyDisplayStyleVector* pyVector = NULL; diff --git a/hurricane/src/viewer/PyHApplication.cpp b/hurricane/src/viewer/PyHApplication.cpp index 99c47dda..15c32434 100644 --- a/hurricane/src/viewer/PyHApplication.cpp +++ b/hurricane/src/viewer/PyHApplication.cpp @@ -57,7 +57,7 @@ extern "C" { static char** argv = NULL; vector vargv; - cdebug.log(20) << "PyHApplication_create()" << endl; + cdebug_log(20,0) << "PyHApplication_create()" << endl; HApplication* ha = NULL; PyHApplication* pyHApplication = NULL; @@ -116,7 +116,7 @@ extern "C" { static PyObject* PyHApplication_qtExec ( PyHApplication* self, PyObject* args ) { - cdebug.log(20) << "PyHApplication_qtExec()" << endl; + cdebug_log(20,0) << "PyHApplication_qtExec()" << endl; int returnCode = 0; diff --git a/hurricane/src/viewer/PyHSVr.cpp b/hurricane/src/viewer/PyHSVr.cpp index 8e3036b3..cc45d07d 100644 --- a/hurricane/src/viewer/PyHSVr.cpp +++ b/hurricane/src/viewer/PyHSVr.cpp @@ -51,7 +51,7 @@ extern "C" { static PyObject* PyHSVr_new ( PyTypeObject* type, PyObject* args, PyObject* kwds ) { - cdebug.log(20) << "PyHSVr_new()" << endl; + cdebug_log(20,0) << "PyHSVr_new()" << endl; DisplayStyle::HSVr* hsvr = NULL; PyHSVr* pyHSVr = (PyHSVr*)type->tp_alloc(type,0); @@ -119,7 +119,7 @@ extern "C" { DirectHashMethod(PyHSVr_Hash, PyHSVr) extern void PyHSVr_LinkPyType() { - cdebug.log(20) << "PyHSVr_LinkType()" << endl; + cdebug_log(20,0) << "PyHSVr_LinkType()" << endl; PyTypeHSVr.tp_new = PyHSVr_new; PyTypeHSVr.tp_dealloc = (destructor) PyHSVr_DeAlloc; diff --git a/hurricane/src/viewer/PyViewer.cpp b/hurricane/src/viewer/PyViewer.cpp index 6c8ff810..7f94d174 100644 --- a/hurricane/src/viewer/PyViewer.cpp +++ b/hurricane/src/viewer/PyViewer.cpp @@ -62,7 +62,7 @@ extern "C" { // Module Initialization : "initViewer ()" DL_EXPORT(void) initViewer () { - cdebug.log(20) << "initViewer()" << endl; + cdebug_log(20,0) << "initViewer()" << endl; PyHSVr_LinkPyType (); PyRawDrawingStyle_LinkPyType (); @@ -114,7 +114,7 @@ extern "C" { PyDisplayStyle_postModuleInit(); PyCellViewer_postModuleInit(); - cdebug.log(20) << "Viewer.so loaded " << (void*)&typeid(string) << endl; + cdebug_log(20,0) << "Viewer.so loaded " << (void*)&typeid(string) << endl; } diff --git a/hurricane/src/viewer/SelectCommand.cpp b/hurricane/src/viewer/SelectCommand.cpp index e8c28d9e..9bf1f0c3 100644 --- a/hurricane/src/viewer/SelectCommand.cpp +++ b/hurricane/src/viewer/SelectCommand.cpp @@ -130,7 +130,7 @@ namespace Hurricane { void Occurrences_GetNets::Locator::progress () { - cdebug.log(18) << "Occurrences_GetNets::Locator::progress()" << endl; + cdebug_log(18,0) << "Occurrences_GetNets::Locator::progress()" << endl; //boost::regex pattern ( "onymous" ); //boost::smatch match; diff --git a/katabatic/src/AutoContact.cpp b/katabatic/src/AutoContact.cpp index b7542078..c774cd2e 100644 --- a/katabatic/src/AutoContact.cpp +++ b/katabatic/src/AutoContact.cpp @@ -89,16 +89,16 @@ namespace Katabatic { { restoreNativeConstraintBox(); - cdebug.log(145) << "Native CBox: " << this - << " <" << DbU::toLambda(getCBXMin()) - << " " << DbU::toLambda(getCBYMin()) - << " " << DbU::toLambda(getCBXMax()) - << " " << DbU::toLambda(getCBYMax()) << ">" << endl; + cdebug_log(145,0) << "Native CBox: " << this + << " <" << DbU::toLambda(getCBXMin()) + << " " << DbU::toLambda(getCBYMin()) + << " " << DbU::toLambda(getCBXMax()) + << " " << DbU::toLambda(getCBYMax()) << ">" << endl; Session::link( this ); invalidate( KbTopology ); - cdebug.log(145) << "AutoContact::_postCreate() - " << this << " in " << _gcell << endl; + cdebug_log(145,0) << "AutoContact::_postCreate() - " << this << " in " << _gcell << endl; } @@ -113,7 +113,7 @@ namespace Katabatic { { DebugSession::open( _contact->getNet(), 140, 150 ); - cdebug.log(145) << "AutoContact::_preDestroy() - " << endl; + cdebug_log(145,0) << "AutoContact::_preDestroy() - " << endl; #if 0 bool canDestroyBase = true; @@ -190,12 +190,12 @@ namespace Katabatic { Component* anchor = getAnchor (); if (anchor) { minDepth = std::min( minDepth, Session::getRoutingGauge()->getLayerDepth(anchor->getLayer()) ); - //cdebug.log(149) << "Anchor:" << anchor << endl; + //cdebug_log(149,0) << "Anchor:" << anchor << endl; } forEach ( AutoSegment*, isegment, const_cast(this)->getAutoSegments() ) { minDepth = std::min( minDepth, Session::getRoutingGauge()->getLayerDepth(isegment->getLayer()) ); - //cdebug.log(149) << "Slave:" << *icomponent << endl; + //cdebug_log(149,0) << "Slave:" << *icomponent << endl; } return (unsigned int)minDepth; @@ -208,12 +208,12 @@ namespace Katabatic { Component* anchor = getAnchor (); if ( anchor ) { maxDepth = std::max ( maxDepth, Session::getRoutingGauge()->getLayerDepth(anchor->getLayer()) ); - //cdebug.log(149) << "Anchor:" << anchor << endl; + //cdebug_log(149,0) << "Anchor:" << anchor << endl; } forEach ( AutoSegment*, isegment, const_cast(this)->getAutoSegments() ) { maxDepth = std::max ( maxDepth, Session::getRoutingGauge()->getLayerDepth(isegment->getLayer()) ); - //cdebug.log(149) << "Slave:" << *icomponent << endl; + //cdebug_log(149,0) << "Slave:" << *icomponent << endl; } return (unsigned int)maxDepth; @@ -296,7 +296,7 @@ namespace Katabatic { void AutoContact::invalidate ( unsigned int flags ) { if (not isInvalidated()) { - cdebug.log(145,1) << "AutoContact::invalidate() - " << this << endl; + cdebug_log(145,1) << "AutoContact::invalidate() - " << this << endl; setFlags( CntInvalidated ); if (flags & KbTopology ) setFlags( CntInvalidatedCache ); Session::invalidate( this ); @@ -306,7 +306,7 @@ namespace Katabatic { // isegment->invalidate(); getGCell()->invalidate(); - cdebug.tabw(145,-1); + cdebug_tabw(145,-1); } } @@ -318,14 +318,14 @@ namespace Katabatic { _gcell = gcell; if (_gcell) { - cdebug.log(145) << "AutoContact::setGCell() " << gcell << endl; + cdebug_log(145,0) << "AutoContact::setGCell() " << gcell << endl; _gcell->addContact( this ); _contact->setPosition( _gcell->getCenter() ); _dxMin = 0; _dyMin = 0; _dxMax = (int)DbU::toLambda( _gcell->getXMax()-_gcell->getX() ); _dyMax = (int)DbU::toLambda( _gcell->getYMax()-_gcell->getY() ); - cdebug.log(145) << "* deltas: [" << _dxMin << " " << _dyMin << " " << _dxMax << " " << _dyMax << "]" << endl; + cdebug_log(145,0) << "* deltas: [" << _dxMin << " " << _dyMin << " " << _dxMax << " " << _dyMax << "]" << endl; } else { cerr << Bug( "NULL GCell for %s.", _getString().c_str() ) << endl; } @@ -395,7 +395,7 @@ namespace Katabatic { void AutoContact::checkTopology () { - //cdebug.log(145) << "checkTopology() NOT RE-IMPLEMENTED YET " << this << endl; + //cdebug_log(145,0) << "checkTopology() NOT RE-IMPLEMENTED YET " << this << endl; } @@ -408,7 +408,7 @@ namespace Katabatic { bool AutoContact::canMoveUp ( const AutoSegment* moved ) const { - cdebug.log(149) << "AutoContact::canMoveUp() " << this << endl; + cdebug_log(149,0) << "AutoContact::canMoveUp() " << this << endl; size_t viaDepth = 100; RoutingGauge* rg = Session::getRoutingGauge(); @@ -417,7 +417,7 @@ namespace Katabatic { Component* anchor = getAnchor(); if (anchor) { viaDepth = rg->getLayerDepth( anchor->getLayer() ); - cdebug.log(149) << "| Anchor depth: " << viaDepth << endl; + cdebug_log(149,0) << "| Anchor depth: " << viaDepth << endl; } forEach ( AutoSegment*, isegment, const_cast(this)->getAutoSegments() ) { @@ -428,7 +428,7 @@ namespace Katabatic { else if (viaDepth != depth) return false; - cdebug.log(149) << "| Segment depth: " << depth << endl; + cdebug_log(149,0) << "| Segment depth: " << depth << endl; } return (movedDepth+1 == viaDepth); @@ -441,8 +441,8 @@ namespace Katabatic { setCBXMax ( box.getXMax() ); setCBYMin ( box.getYMin() ); setCBYMax ( box.getYMax() ); - cdebug.log(149) << "setConstraintBox() - " << this << " " << getConstraintBox() << endl; - cdebug.log(149) << "* " << _gcell << endl; + cdebug_log(149,0) << "setConstraintBox() - " << this << " " << getConstraintBox() << endl; + cdebug_log(149,0) << "* " << _gcell << endl; } @@ -451,7 +451,7 @@ namespace Katabatic { , unsigned int flags ) { - cdebug.log(149) << "restrictConstraintBox() - " << this << " " << getConstraintBox() << endl; + cdebug_log(149,0) << "restrictConstraintBox() - " << this << " " << getConstraintBox() << endl; if (flags & KbHorizontal) { if ( (constraintMin > getCBYMax()) or (constraintMax < getCBYMin()) ) { if ( Session::isInDemoMode() or not (flags & KbWarnOnError) ) return false; @@ -491,7 +491,7 @@ namespace Katabatic { setCBXMin ( std::max(getCBXMin(),constraintMin) ); setCBXMax ( std::min(getCBXMax(),constraintMax) ); } - cdebug.log(149) << "restrictConstraintBox() - " << this << " " << getConstraintBox() << endl; + cdebug_log(149,0) << "restrictConstraintBox() - " << this << " " << getConstraintBox() << endl; return true; } diff --git a/katabatic/src/AutoContactHTee.cpp b/katabatic/src/AutoContactHTee.cpp index 8c73d090..a54544f3 100644 --- a/katabatic/src/AutoContactHTee.cpp +++ b/katabatic/src/AutoContactHTee.cpp @@ -62,7 +62,7 @@ namespace Katabatic { autoContact->_postCreate(); autoContact->unsetFlags( CntInCreationStage ); - cdebug.log(145) << "create(net*) " << autoContact << endl; + cdebug_log(145,0) << "create(net*) " << autoContact << endl; return autoContact; } @@ -124,10 +124,10 @@ namespace Katabatic { void AutoContactHTee::cacheDetach ( AutoSegment* segment ) { - cdebug.log(145) << _getTypeName() << "::cacheDetach() " << this << endl; - cdebug.log(145) << "| h1:" << _horizontal1 << endl; - cdebug.log(145) << "| h2:" << _horizontal2 << endl; - cdebug.log(145) << "| v1:" << _vertical1 << endl; + cdebug_log(145,0) << _getTypeName() << "::cacheDetach() " << this << endl; + cdebug_log(145,0) << "| h1:" << _horizontal1 << endl; + cdebug_log(145,0) << "| h2:" << _horizontal2 << endl; + cdebug_log(145,0) << "| v1:" << _vertical1 << endl; if (segment == _horizontal1) _horizontal1 = NULL; else if (segment == _horizontal2) _horizontal2 = NULL; @@ -150,8 +150,8 @@ namespace Katabatic { void AutoContactHTee::cacheAttach ( AutoSegment* segment ) { - cdebug.log(145,1) << _getTypeName() << "::cacheAttach() " << this << endl; - cdebug.log(145) << "Attaching: " << segment << endl; + cdebug_log(145,1) << _getTypeName() << "::cacheAttach() " << this << endl; + cdebug_log(145,0) << "Attaching: " << segment << endl; if (segment->getDirection() == KbHorizontal) { if (not _horizontal1) _horizontal1 = static_cast(segment); @@ -161,7 +161,7 @@ namespace Katabatic { " h1 & h2 cache have not been cleared first, cancelled." , _getTypeName().c_str(), getString(this).c_str() ) << endl; - cdebug.tabw(145,-1); + cdebug_tabw(145,-1); return; } } else if (segment->getDirection() == KbVertical) { @@ -170,7 +170,7 @@ namespace Katabatic { " v1 cache has not been cleared first, cancelled." , _getTypeName().c_str(), getString(this).c_str() ) << endl; - cdebug.tabw(145,-1); + cdebug_tabw(145,-1); return; } _vertical1 = static_cast(segment); @@ -179,11 +179,11 @@ namespace Katabatic { if (_horizontal1 and _horizontal2 and _vertical1) unsetFlags( CntInvalidatedCache ); - cdebug.log(145) << "| h1:" << _horizontal1 << endl; - cdebug.log(145) << "| h2:" << _horizontal2 << endl; - cdebug.log(145) << "| v1:" << _vertical1 << endl; + cdebug_log(145,0) << "| h1:" << _horizontal1 << endl; + cdebug_log(145,0) << "| h2:" << _horizontal2 << endl; + cdebug_log(145,0) << "| v1:" << _vertical1 << endl; - cdebug.tabw(145,-1); + cdebug_tabw(145,-1); } @@ -191,7 +191,7 @@ namespace Katabatic { { DebugSession::open( getNet(), 140, 150 ); - cdebug.log(145,1) << _getTypeName() << "::updateCache() " << this << endl; + cdebug_log(145,1) << _getTypeName() << "::updateCache() " << this << endl; Component* anchor; Horizontal** horizontals = new Horizontal* [3]; @@ -224,14 +224,14 @@ namespace Katabatic { } unsetFlags( CntInvalidatedCache ); - cdebug.log(145) << "h1:" << _horizontal1 << endl; - cdebug.log(145) << "h2:" << _horizontal2 << endl; - cdebug.log(145) << "v1:" << _vertical1 << endl; + cdebug_log(145,0) << "h1:" << _horizontal1 << endl; + cdebug_log(145,0) << "h2:" << _horizontal2 << endl; + cdebug_log(145,0) << "v1:" << _vertical1 << endl; delete [] horizontals; delete [] verticals; - cdebug.tabw(145,-1); + cdebug_tabw(145,-1); DebugSession::close(); } @@ -240,13 +240,13 @@ namespace Katabatic { { DebugSession::open( getNet(), 140, 150 ); - cdebug.log(145,1) << _getTypeName() << "::updateGeometry() " << this << endl; + cdebug_log(145,1) << _getTypeName() << "::updateGeometry() " << this << endl; if (isInvalidatedCache()) updateCache(); if (isInvalidatedCache()) { cerr << Error( "%s::updateGeometry() %s: Unable to restore cache." , _getTypeName().c_str(), getString(this).c_str() ) << endl; - cdebug.tabw(145,-1); + cdebug_tabw(145,-1); return; } @@ -258,7 +258,7 @@ namespace Katabatic { setY( getHorizontal1()->getY() ); } - cdebug.tabw(145,-1); + cdebug_tabw(145,-1); DebugSession::close(); } @@ -267,13 +267,13 @@ namespace Katabatic { { DebugSession::open( getNet(), 140, 150 ); - cdebug.log(145,1) << _getTypeName() << "::updateTopology() " << this << endl; + cdebug_log(145,1) << _getTypeName() << "::updateTopology() " << this << endl; if (isInvalidatedCache()) updateCache(); if (isInvalidatedCache()) { cerr << Error( "%s::updateGeometry() %s: Unable to restore cache." , _getTypeName().c_str(), getString(this).c_str() ) << endl; - cdebug.tabw(145,-1); + cdebug_tabw(145,-1); return; } @@ -286,7 +286,7 @@ namespace Katabatic { size_t maxDepth = std::max( depthV1, std::max(depthH1,depthH2) ); size_t delta = maxDepth - minDepth; - cdebug.log(145) << "delta:" << delta << endl; + cdebug_log(145,0) << "delta:" << delta << endl; unsetFlags( CntWeakTerminal ); @@ -313,12 +313,12 @@ namespace Katabatic { setLayer( rg->getContactLayer( depthH2 + ((depthH2( _horizontal1->makeDogleg(this) ); _horizontal1->makeDogleg(this); - cdebug.log(145) << "New h1:" << _horizontal1 << endl; + cdebug_log(145,0) << "New h1:" << _horizontal1 << endl; } else { setLayer( rg->getContactLayer( depthH1 + ((depthH1( _horizontal2->makeDogleg(this) ); _horizontal2->makeDogleg(this); - cdebug.log(145) << "New h2:" << _horizontal2 << endl; + cdebug_log(145,0) << "New h2:" << _horizontal2 << endl; } } } @@ -328,7 +328,7 @@ namespace Katabatic { _vertical1 ->invalidate( this ); } - cdebug.tabw(145,-1); + cdebug_tabw(145,-1); DebugSession::close(); } diff --git a/katabatic/src/AutoContactTerminal.cpp b/katabatic/src/AutoContactTerminal.cpp index c79d8e83..c8e8d55f 100644 --- a/katabatic/src/AutoContactTerminal.cpp +++ b/katabatic/src/AutoContactTerminal.cpp @@ -60,8 +60,8 @@ namespace Katabatic { , DbU::Unit height ) { - cdebug.log(145,1) << "AutoContactTerminal::create(... Point, ...)" << endl; - cdebug.log(145) << "@" << point << endl; + cdebug_log(145,1) << "AutoContactTerminal::create(... Point, ...)" << endl; + cdebug_log(145,0) << "@" << point << endl; anchor->getBodyHook()->detach(); @@ -71,7 +71,7 @@ namespace Katabatic { , point.getX(), point.getY() , width, height ); - cdebug.tabw(145,-1); + cdebug_tabw(145,-1); return autoContact; } @@ -85,8 +85,8 @@ namespace Katabatic { , const DbU::Unit height ) { - cdebug.log(145) << "AutoContactTerminal::create(... x, y, ...)" << endl; - cdebug.log(145) << "@ x:" << DbU::getValueString(x) << " y:" << DbU::getValueString(y) << endl; + cdebug_log(145,0) << "AutoContactTerminal::create(... x, y, ...)" << endl; + cdebug_log(145,0) << "@ x:" << DbU::getValueString(x) << " y:" << DbU::getValueString(y) << endl; Point anchorPosition = anchor->getPosition(); @@ -102,7 +102,7 @@ namespace Katabatic { autoContact->_postCreate(); autoContact->unsetFlags( CntInCreationStage ); - cdebug.log(145) << "create(Component*) " << autoContact << endl; + cdebug_log(145,0) << "create(Component*) " << autoContact << endl; return autoContact; } @@ -141,12 +141,12 @@ namespace Katabatic { Box AutoContactTerminal::getNativeConstraintBox () const { - cdebug.log(145,1) << "AutoContactTerminal::getNativeConstraintBox()" << endl; + cdebug_log(145,1) << "AutoContactTerminal::getNativeConstraintBox()" << endl; Component* component = getAnchor(); if (component == NULL) { cerr << Error( "%s is not anchored.", getString(this).c_str() ) << endl; - cdebug.tabw(145,-1); + cdebug_tabw(145,-1); return _gcell->getBoundingBox (); } @@ -159,13 +159,13 @@ namespace Katabatic { RoutingPad* routingPad; if ( (horizontal = dynamic_cast(component)) ) { - cdebug.log(145) << "Anchor: " << horizontal << "@" << horizontal->getSourcePosition() << endl; + cdebug_log(145,0) << "Anchor: " << horizontal << "@" << horizontal->getSourcePosition() << endl; xMin = horizontal->getSourcePosition().getX(); xMax = horizontal->getTargetPosition().getX(); yMin = yMax = horizontal->getTargetPosition().getY(); } else if ( (vertical = dynamic_cast(component)) ) { - cdebug.log(145) << "Anchor: " << vertical << "@" << vertical->getSourcePosition() << endl; + cdebug_log(145,0) << "Anchor: " << vertical << "@" << vertical->getSourcePosition() << endl; yMin = vertical->getSourcePosition().getY(); yMax = vertical->getTargetPosition().getY(); xMin = xMax @@ -173,7 +173,7 @@ namespace Katabatic { } else if ( (routingPad = dynamic_cast(component)) ) { Entity* entity = routingPad->getOccurrence().getEntity(); Transformation transf = routingPad->getOccurrence().getPath().getTransformation(); - cdebug.log(145) << "Anchor: " << routingPad << endl; + cdebug_log(145,0) << "Anchor: " << routingPad << endl; int rpOrient = 1; switch ( transf.getOrientation() ) { @@ -222,10 +222,10 @@ namespace Katabatic { order( xMin, xMax ); order( yMin, yMax ); - cdebug.log(145) << "| Using (y): " << DbU::getValueString(yMin) << " " + cdebug_log(145,0) << "| Using (y): " << DbU::getValueString(yMin) << " " << DbU::getValueString(yMax) << endl; - cdebug.tabw(145,-1); + cdebug_tabw(145,-1); return Box( xMin, yMin, xMax, yMax ); } @@ -263,7 +263,7 @@ namespace Katabatic { { DebugSession::open( getNet(), 140, 150 ); - cdebug.log(145,1) << _getTypeName() << "::updateCache() " << this << endl; + cdebug_log(145,1) << _getTypeName() << "::updateCache() " << this << endl; Component* anchor; Horizontal** horizontals = new Horizontal* [2]; @@ -300,12 +300,12 @@ namespace Katabatic { throw Error( os.str() ); } unsetFlags( CntInvalidatedCache ); - cdebug.log(145) << "seg:" << _segment << endl; + cdebug_log(145,0) << "seg:" << _segment << endl; delete [] horizontals; delete [] verticals; - cdebug.tabw(145,-1); + cdebug_tabw(145,-1); DebugSession::close(); } @@ -314,13 +314,13 @@ namespace Katabatic { { DebugSession::open( getNet(), 140, 150 ); - cdebug.log(145,1) << _getTypeName() << "::updateGeometry() " << this << endl; + cdebug_log(145,1) << _getTypeName() << "::updateGeometry() " << this << endl; if (isInvalidatedCache()) updateCache(); if (isInvalidatedCache()) { cerr << Error( "%s::updateGeometry() %s: Unable to restore cache." , _getTypeName().c_str(), getString(this).c_str() ) << endl; - cdebug.tabw(145,-1); + cdebug_tabw(145,-1); return; } @@ -331,7 +331,7 @@ namespace Katabatic { if (not hasBadTopology()) { if (_segment->isHorizontal()) { if (not getUConstraints(KbVertical).contains(_segment->getY())) { - cdebug.log(145) << "Cached: " << _segment << endl; + cdebug_log(145,0) << "Cached: " << _segment << endl; message << "Terminal horizontal segment Y " << DbU::getValueString(_segment->getY()) << " axis is outside RoutingPad " << getUConstraints(KbVertical) << "."; @@ -342,7 +342,7 @@ namespace Katabatic { setY( _segment->getY() ); } else { if (not getUConstraints(KbHorizontal).contains(_segment->getX())) { - cdebug.log(145) << "Cached: " << _segment << endl; + cdebug_log(145,0) << "Cached: " << _segment << endl; message << "Terminal vertical segment X" << DbU::getValueString(_segment->getX()) << " axis is outside RoutingPad " << getUConstraints(KbHorizontal) << "."; @@ -354,7 +354,7 @@ namespace Katabatic { } } - cdebug.tabw(145,-1); + cdebug_tabw(145,-1); DebugSession::close(); } @@ -363,13 +363,13 @@ namespace Katabatic { { DebugSession::open( getNet(), 140, 150 ); - cdebug.log(145,1) << _getTypeName() << "::updateTopology() " << this << endl; + cdebug_log(145,1) << _getTypeName() << "::updateTopology() " << this << endl; if (isInvalidatedCache()) updateCache(); if (isInvalidatedCache()) { cerr << Error( "%s::updateGeometry() %s: Unable to restore cache." , _getTypeName().c_str(), getString(this).c_str() ) << endl; - cdebug.tabw(145,-1); + cdebug_tabw(145,-1); return; } @@ -386,7 +386,7 @@ namespace Katabatic { if (delta > 1) { //_segment = _segment->makeDogleg( this ); _segment->makeDogleg( this ); - cdebug.log(145) << "Update seg: " << _segment << endl; + cdebug_log(145,0) << "Update seg: " << _segment << endl; delta = abssub( anchorDepth, rg->getLayerDepth( _segment->getLayer() ) ); } else if (delta == 0) setLayer( rg->getRoutingLayer(anchorDepth) ); @@ -394,7 +394,7 @@ namespace Katabatic { } _segment->invalidate( this ); - cdebug.tabw(145,-1); + cdebug_tabw(145,-1); DebugSession::close(); } diff --git a/katabatic/src/AutoContactTurn.cpp b/katabatic/src/AutoContactTurn.cpp index 1c5d7b06..b0631ca0 100644 --- a/katabatic/src/AutoContactTurn.cpp +++ b/katabatic/src/AutoContactTurn.cpp @@ -64,7 +64,7 @@ namespace Katabatic { autoContact->_postCreate(); autoContact->unsetFlags( CntInCreationStage ); - cdebug.log(145) << "create(net*) " << autoContact << endl; + cdebug_log(145,0) << "create(net*) " << autoContact << endl; return autoContact; } @@ -151,7 +151,7 @@ namespace Katabatic { { DebugSession::open( getNet(), 140, 150 ); - cdebug.log(145,1) << _getTypeName() << "::updateCache() " << this << endl; + cdebug_log(145,1) << _getTypeName() << "::updateCache() " << this << endl; Component* anchor; Horizontal** horizontals = new Horizontal* [2]; @@ -175,13 +175,13 @@ namespace Katabatic { } else unsetFlags( CntInvalidatedCache ); - cdebug.log(145) << "h1:" << _horizontal1 << endl; - cdebug.log(145) << "v1:" << _vertical1 << endl; + cdebug_log(145,0) << "h1:" << _horizontal1 << endl; + cdebug_log(145,0) << "v1:" << _vertical1 << endl; delete [] horizontals; delete [] verticals; - cdebug.tabw(145,-1); + cdebug_tabw(145,-1); DebugSession::close(); } @@ -190,13 +190,13 @@ namespace Katabatic { { DebugSession::open( getNet(), 140, 150 ); - cdebug.log(145,1) << _getTypeName() << "::updateGeometry() " << this << endl; + cdebug_log(145,1) << _getTypeName() << "::updateGeometry() " << this << endl; if (isInvalidatedCache()) updateCache(); if (isInvalidatedCache()) { cerr << Error( "%s::updateGeometry() %s: Unable to restore cache." , _getTypeName().c_str(), getString(this).c_str() ) << endl; - cdebug.tabw(145,-1); + cdebug_tabw(145,-1); return; } @@ -208,7 +208,7 @@ namespace Katabatic { setY( getHorizontal1()->getY() ); } - cdebug.tabw(145,-1); + cdebug_tabw(145,-1); DebugSession::close(); } @@ -217,13 +217,13 @@ namespace Katabatic { { DebugSession::open ( getNet(), 140, 150 ); - cdebug.log(145,1) << _getTypeName() << "::updateTopology() " << this << endl; + cdebug_log(145,1) << _getTypeName() << "::updateTopology() " << this << endl; if (isInvalidatedCache()) updateCache(); if (isInvalidatedCache()) { cerr << Error( "%s::updateGeometry() %s: Unable to restore cache." , _getTypeName().c_str(), getString(this).c_str() ) << endl; - cdebug.tabw(145,-1); + cdebug_tabw(145,-1); return; } @@ -244,12 +244,12 @@ namespace Katabatic { //_horizontal1 = static_cast( _horizontal1->makeDogleg(this) ); _horizontal1->makeDogleg(this); depthH1 = rg->getLayerDepth( _horizontal1->getLayer() ); - cdebug.log(145) << "Update h1: " << _horizontal1 << endl; + cdebug_log(145,0) << "Update h1: " << _horizontal1 << endl; } else /*if (_vertical1->isInvalidatedLayer())*/ { //_vertical1 = static_cast( _vertical1->makeDogleg(this) ); _vertical1->makeDogleg(this); depthV1 = rg->getLayerDepth( _vertical1->getLayer() ); - cdebug.log(145) << "Update v1: " << _vertical1 << endl; + cdebug_log(145,0) << "Update v1: " << _vertical1 << endl; } delta = abssub ( depthH1, depthV1 ); } @@ -261,7 +261,7 @@ namespace Katabatic { _vertical1 ->invalidate( this ); } - cdebug.tabw(145,-1); + cdebug_tabw(145,-1); DebugSession::close (); } diff --git a/katabatic/src/AutoContactVTee.cpp b/katabatic/src/AutoContactVTee.cpp index 5fd4e280..5127ffd9 100644 --- a/katabatic/src/AutoContactVTee.cpp +++ b/katabatic/src/AutoContactVTee.cpp @@ -62,7 +62,7 @@ namespace Katabatic { autoContact->_postCreate(); autoContact->unsetFlags( CntInCreationStage ); - cdebug.log(145) << "create(net*) " << autoContact << endl; + cdebug_log(145,0) << "create(net*) " << autoContact << endl; return autoContact; } @@ -161,7 +161,7 @@ namespace Katabatic { { DebugSession::open( getNet(), 140, 150 ); - cdebug.log(145,1) << "AutoContactVTee::updateCache() " << this << endl; + cdebug_log(145,1) << "AutoContactVTee::updateCache() " << this << endl; Component* anchor; Horizontal** horizontals = new Horizontal* [3]; @@ -191,14 +191,14 @@ namespace Katabatic { } unsetFlags( CntInvalidatedCache ); - cdebug.log(145) << "h1:" << _horizontal1 << endl; - cdebug.log(145) << "v1:" << _vertical1 << endl; - cdebug.log(145) << "v2:" << _vertical2 << endl; + cdebug_log(145,0) << "h1:" << _horizontal1 << endl; + cdebug_log(145,0) << "v1:" << _vertical1 << endl; + cdebug_log(145,0) << "v2:" << _vertical2 << endl; delete [] horizontals; delete [] verticals; - cdebug.tabw(145,-1); + cdebug_tabw(145,-1); DebugSession::close(); } @@ -207,13 +207,13 @@ namespace Katabatic { { DebugSession::open( getNet(), 140, 150 ); - cdebug.log(145,1) << "AutoContactVTee::updateGeometry() " << this << endl; + cdebug_log(145,1) << "AutoContactVTee::updateGeometry() " << this << endl; if (isInvalidatedCache()) updateCache(); if (isInvalidatedCache()) { cerr << Error( "%s::updateGeometry() %s: Unable to restore cache." , _getTypeName().c_str(), getString(this).c_str() ) << endl; - cdebug.tabw(145,-1); + cdebug_tabw(145,-1); return; } @@ -225,7 +225,7 @@ namespace Katabatic { setY( getHorizontal1()->getY() ); } - cdebug.tabw(145,-1); + cdebug_tabw(145,-1); DebugSession::close(); } @@ -234,13 +234,13 @@ namespace Katabatic { { DebugSession::open ( getNet(), 140, 150 ); - cdebug.log(145,1) << "AutoContactVTee::updateTopology() " << this << endl; + cdebug_log(145,1) << "AutoContactVTee::updateTopology() " << this << endl; if (isInvalidatedCache()) updateCache(); if (isInvalidatedCache()) { cerr << Error( "%s::updateGeometry() %s: Unable to restore cache." , _getTypeName().c_str(), getString(this).c_str() ) << endl; - cdebug.tabw(145,-1); + cdebug_tabw(145,-1); return; } @@ -253,9 +253,9 @@ namespace Katabatic { size_t maxDepth = std::max( depthH1, std::max(depthV1,depthV2) ); size_t delta = maxDepth - minDepth; - cdebug.log(145) << "minDepth:" << minDepth << endl; - cdebug.log(145) << "maxDepth:" << maxDepth << endl; - cdebug.log(145) << "delta:" << delta << endl; + cdebug_log(145,0) << "minDepth:" << minDepth << endl; + cdebug_log(145,0) << "maxDepth:" << maxDepth << endl; + cdebug_log(145,0) << "delta:" << delta << endl; unsetFlags( CntWeakTerminal ); @@ -264,13 +264,13 @@ namespace Katabatic { setFlags( CntBadTopology ); } else { if (depthV1 == depthV2) { - cdebug.log(145) << "depthV1 == depthV2 (" << depthV1 << ")" << endl; + cdebug_log(145,0) << "depthV1 == depthV2 (" << depthV1 << ")" << endl; // Dogleg on the horizontal. switch ( delta ) { case 0: setLayer( rg->getRoutingLayer(minDepth) ); break; case 1: setLayer( rg->getContactLayer(minDepth) ); break; default: - cdebug.log(145) << "Restore connectivity: dogleg on h1." << endl; + cdebug_log(145,0) << "Restore connectivity: dogleg on h1." << endl; setLayer( rg->getContactLayer( depthV1 + ((depthV1==minDepth)?0:-1) ) ); _horizontal1 = static_cast( _horizontal1->makeDogleg(this) ); break; @@ -297,7 +297,7 @@ namespace Katabatic { _vertical2 ->invalidate( this ); } - cdebug.tabw(145,-1); + cdebug_tabw(145,-1); DebugSession::close (); } diff --git a/katabatic/src/AutoHorizontal.cpp b/katabatic/src/AutoHorizontal.cpp index 2ca1438e..a17b60fa 100644 --- a/katabatic/src/AutoHorizontal.cpp +++ b/katabatic/src/AutoHorizontal.cpp @@ -59,8 +59,8 @@ namespace Katabatic { : AutoSegment(horizontal) , _horizontal(horizontal) { - cdebug.log(145) << "CTOR AutoHorizontal " << this << endl; - cdebug.log(145) << " over " << horizontal << endl; + cdebug_log(145,0) << "CTOR AutoHorizontal " << this << endl; + cdebug_log(145,0) << " over " << horizontal << endl; } @@ -107,9 +107,9 @@ namespace Katabatic { void AutoHorizontal::_preDestroy () { - cdebug.log(149) << "AutoHorizontal::_preDestroy() - " << endl; - cdebug.log(149) << " " << _getString() << endl; - cdebug.tabw(145,1); + cdebug_log(149,0) << "AutoHorizontal::_preDestroy() - " << endl; + cdebug_log(149,0) << " " << _getString() << endl; + cdebug_tabw(145,1); if ( not Session::doDestroyTool() ) { AutoContact* source = getAutoSource(); @@ -138,14 +138,14 @@ namespace Katabatic { } AutoSegment::_preDestroy (); - cdebug.tabw(145,-1); + cdebug_tabw(145,-1); } AutoHorizontal::~AutoHorizontal () { if ( Session::doDestroyBaseSegment() and not Session::doDestroyTool() ) { - cdebug.log(149) << "~AutoHorizontal() - " << endl; + cdebug_log(149,0) << "~AutoHorizontal() - " << endl; _horizontal->destroy (); } } @@ -177,7 +177,7 @@ namespace Katabatic { constraintMin = contact->getCBYMin(); constraintMax = contact->getCBYMax(); - cdebug.log(149) << "Source constraints: " << contact << " [" + cdebug_log(149,0) << "Source constraints: " << contact << " [" << DbU::getValueString(constraintMin) << ":" << DbU::getValueString(constraintMax) << "]" << endl; @@ -186,7 +186,7 @@ namespace Katabatic { constraintMin = max ( constraintMin, contact->getCBYMin() ); constraintMax = min ( constraintMax, contact->getCBYMax() ); - cdebug.log(149) << "Merge with target constraints: " << contact << " [" + cdebug_log(149,0) << "Merge with target constraints: " << contact << " [" << DbU::getValueString(contact->getCBYMin()) << ":" << DbU::getValueString(contact->getCBYMax()) << "]" << endl; @@ -194,12 +194,12 @@ namespace Katabatic { constraintMin = max ( constraintMin, getUserConstraints().getVMin() ); constraintMax = min ( constraintMax, getUserConstraints().getVMax() ); - cdebug.log(149) << "Merge with user constraints: " << getUserConstraints() << " [" + cdebug_log(149,0) << "Merge with user constraints: " << getUserConstraints() << " [" << DbU::getValueString(getUserConstraints().getVMin()) << ":" << DbU::getValueString(getUserConstraints().getVMax()) << "]" << endl; - cdebug.log(149) << "Resulting constraints: " << " [" + cdebug_log(149,0) << "Resulting constraints: " << " [" << DbU::getValueString(constraintMin) << ":" << DbU::getValueString(constraintMax) << "]" << endl; @@ -233,7 +233,7 @@ namespace Katabatic { bool AutoHorizontal::_canSlacken () const { - cdebug.tabw(149,1); + cdebug_tabw(149,1); Interval sourceSide = getAutoSource()->getGCell()->getSide( KbVertical ); Interval targetSide = getAutoTarget()->getGCell()->getSide( KbVertical ); @@ -244,24 +244,24 @@ namespace Katabatic { sourceConstraints.inflate( 1 ); targetConstraints.inflate( 1 ); - cdebug.log(149) << "source " << getAutoSource() << endl; - cdebug.log(149) << "source constraints: " << sourceConstraints + cdebug_log(149,0) << "source " << getAutoSource() << endl; + cdebug_log(149,0) << "source constraints: " << sourceConstraints << " " << DbU::getValueString(sourceConstraints.getSize()) << endl; - cdebug.log(149) << "target " << getAutoTarget() << endl; - cdebug.log(149) << "target constraints: " << targetConstraints + cdebug_log(149,0) << "target " << getAutoTarget() << endl; + cdebug_log(149,0) << "target constraints: " << targetConstraints << " " << DbU::getValueString(targetConstraints.getSize()) << endl; - if (not sourceConstraints.contains(sourceSide)) { cdebug.tabw(149,-1); return true; } - if (not targetConstraints.contains(targetSide)) { cdebug.tabw(149,-1); return true; } + if (not sourceConstraints.contains(sourceSide)) { cdebug_tabw(149,-1); return true; } + if (not targetConstraints.contains(targetSide)) { cdebug_tabw(149,-1); return true; } - cdebug.tabw(149,-1); + cdebug_tabw(149,-1); return false; } bool AutoHorizontal::_slacken ( unsigned int flags ) { - cdebug.log(149) << "AutoHorizontal::_slacken() " << this << endl; + cdebug_log(149,0) << "AutoHorizontal::_slacken() " << this << endl; if (not isStrongTerminal()) return false; @@ -288,10 +288,10 @@ namespace Katabatic { return false; } - cdebug.tabw(149,1); - cdebug.log(149) << "_flags:" << (_flags & (SegGlobal|SegWeakGlobal)) << endl; - cdebug.log(149) << "test:" << (getLength() < 5*getPitch()) << endl; - cdebug.log(149) << "length:" << DbU::getValueString(getLength()) << endl; + cdebug_tabw(149,1); + cdebug_log(149,0) << "_flags:" << (_flags & (SegGlobal|SegWeakGlobal)) << endl; + cdebug_log(149,0) << "test:" << (getLength() < 5*getPitch()) << endl; + cdebug_log(149,0) << "length:" << DbU::getValueString(getLength()) << endl; int lowSlack = (flags & KbHalfSlacken) ? 3 : 10; bool slackened = false; @@ -306,13 +306,13 @@ namespace Katabatic { int slack = constraints.getSize() / getPitch(); int nativeSlack = nativeConstraints.getSize() / getPitch(); - cdebug.log(149) << "Source constraint: " << constraints + cdebug_log(149,0) << "Source constraint: " << constraints << " slack:" << slack << " native slack:" << nativeSlack << endl; - cdebug.log(149) << "Perpand constraints on target: " << perpandConstraints << endl; + cdebug_log(149,0) << "Perpand constraints on target: " << perpandConstraints << endl; // Ugly: GCell's track number is hardwired. if ((nativeSlack < lowSlack) or (nativeSlack - slack < 3)) { - cdebug.log(149) << "Slackening from Source: " << source << endl; + cdebug_log(149,0) << "Slackening from Source: " << source << endl; _makeDogleg( source->getGCell(), KbNoFlags ); slackened = true; } else if (slack < 10) { @@ -321,12 +321,12 @@ namespace Katabatic { const vector& doglegs = Session::getDoglegs(); if (doglegs.size() >= 2) { - cdebug.log(149) << "AutoSegment::_slaken(): Source @" << DbU::getValueString(getSourcePosition()) << endl; + cdebug_log(149,0) << "AutoSegment::_slaken(): Source @" << DbU::getValueString(getSourcePosition()) << endl; doglegs[doglegs.size()-2]->setAxis( getSourcePosition() ); success = true; if (isMetal2Source) { - cdebug.log(149) << "Fixing on source terminal contact." + cdebug_log(149,0) << "Fixing on source terminal contact." << doglegs[doglegs.size()-2]->getAutoSource() << endl; //doglegs[doglegs.size()-2]->getAutoSource()->setFlags( CntFixed ); doglegs[doglegs.size()-2]->getAutoSource()->setConstraintBox( source->getConstraintBox() ); @@ -346,11 +346,11 @@ namespace Katabatic { int nativeSlack = nativeConstraints.getSize() / getPitch(); // Ugly: GCell's track number is hardwired. - cdebug.log(149) << "Target constraint: " << constraints + cdebug_log(149,0) << "Target constraint: " << constraints << " slack:" << slack << " native slack:" << nativeSlack << endl; if ((nativeSlack < lowSlack) or (nativeSlack - slack < 3)) { - cdebug.log(149) << "Slackening from Target: " << target << endl; + cdebug_log(149,0) << "Slackening from Target: " << target << endl; parallel->_makeDogleg( target->getGCell(), KbNoFlags ); slackened = true; } else if (slack < 10) { @@ -366,12 +366,12 @@ namespace Katabatic { const vector& doglegs = Session::getDoglegs(); if (doglegs.size() >= 2) { - cdebug.log(149) << "AutoSegment::_slaken(): Target @" << DbU::getValueString(targetPosition) << endl; + cdebug_log(149,0) << "AutoSegment::_slaken(): Target @" << DbU::getValueString(targetPosition) << endl; doglegs[doglegs.size()-2]->setAxis( targetPosition ); success = true; if (isMetal2Target) { - cdebug.log(149) << "Fixing on target terminal contact: " + cdebug_log(149,0) << "Fixing on target terminal contact: " << doglegs[doglegs.size()-2]->getAutoTarget() << endl; //doglegs[doglegs.size()-2]->getAutoTarget()->setFlags( CntFixed ); doglegs[doglegs.size()-2]->getAutoTarget()->setConstraintBox( target->getConstraintBox() ); @@ -379,7 +379,7 @@ namespace Katabatic { } } } - cdebug.tabw(149,-1); + cdebug_tabw(149,-1); return success; } @@ -399,7 +399,7 @@ namespace Katabatic { if (_horizontal->getY() == axis) return; - cdebug.log(145) << "_setAxis() @Y " << DbU::toLambda(axis) << " " << this << endl; + cdebug_log(145,0) << "_setAxis() @Y " << DbU::toLambda(axis) << " " << this << endl; _horizontal->setY( axis ); invalidate(); @@ -417,7 +417,7 @@ namespace Katabatic { void AutoHorizontal::updateOrient () { if (_horizontal->getTargetX() < _horizontal->getSourceX()) { - cdebug.log(145) << "updateOrient() " << this << " (before S/T swap)" << endl; + cdebug_log(145,0) << "updateOrient() " << this << " (before S/T swap)" << endl; _horizontal->invert(); unsigned int spinFlags = _flags & SegDepthSpin; @@ -705,8 +705,8 @@ namespace Katabatic { unsigned int AutoHorizontal::_makeDogleg ( GCell* doglegGCell, unsigned int flags ) { DebugSession::open( getNet(), 140, 150 ); - cdebug.log(149) << "AutoHorizontal::_makeDogleg(GCell*)" << endl; - cdebug.tabw(149,1); + cdebug_log(149,0) << "AutoHorizontal::_makeDogleg(GCell*)" << endl; + cdebug_tabw(149,1); //Session::doglegReset(); @@ -719,7 +719,7 @@ namespace Katabatic { if (isLocal()) doglegAxis = (getSourceX() + getTargetX()) / 2; - cdebug.log(149) << "Detaching from Target AutoContact " << autoTarget << "." << endl; + cdebug_log(149,0) << "Detaching from Target AutoContact " << autoTarget << "." << endl; if (doglegGCell == begin) unsetFlags( SegGlobal ); if (doglegGCell != end) { @@ -747,8 +747,8 @@ namespace Katabatic { segment1->_setAxis( doglegAxis ); segment1->setFlags( SegDogleg|SegSlackened|SegCanonical|SegNotAligned ); - cdebug.log(149) << "New " << dlContact1 << endl; - cdebug.log(149) << "New " << dlContact2 << endl; + cdebug_log(149,0) << "New " << dlContact1 << endl; + cdebug_log(149,0) << "New " << dlContact2 << endl; Session::dogleg( segment1 ); targetAttach( dlContact1 ); @@ -780,9 +780,9 @@ namespace Katabatic { segment2->setFlags( SegWeakTerminal1 ); } - cdebug.log(149) << "Session::dogleg[x+1] perpand: " << segment1 << endl; - cdebug.log(149) << "Session::dogleg[x+2] new paral: " << segment2 << endl; - cdebug.log(149) << "Session::dogleg[x+0] original: " << this << endl; + cdebug_log(149,0) << "Session::dogleg[x+1] perpand: " << segment1 << endl; + cdebug_log(149,0) << "Session::dogleg[x+2] new paral: " << segment2 << endl; + cdebug_log(149,0) << "Session::dogleg[x+0] original: " << this << endl; dlContact1->updateCache(); dlContact2->updateCache(); @@ -791,7 +791,7 @@ namespace Katabatic { segment2->canonize( flags ); if (not isCanonical()) canonize( flags ); - cdebug.tabw(149,-1); + cdebug_tabw(149,-1); DebugSession::close(); return (upLayer) ? KbUseAboveLayer : KbUseBelowLayer; diff --git a/katabatic/src/AutoSegment.cpp b/katabatic/src/AutoSegment.cpp index 853ebe7b..4ec2a364 100644 --- a/katabatic/src/AutoSegment.cpp +++ b/katabatic/src/AutoSegment.cpp @@ -111,7 +111,7 @@ namespace { } else { if ( autoSegment->isGlobal() ) return false; - cdebug.log(145) << "Examining " << autoSegment << " " << fromContact << endl; + cdebug_log(145,0) << "Examining " << autoSegment << " " << fromContact << endl; if ( autoSegment->getSource() == autoSegment->getTarget() ) { cerr << Error("Source & Target are the same :\n" @@ -146,7 +146,7 @@ namespace { return false; } } else { - cdebug.log(145) << "Terminal is " << terminalContact << endl; + cdebug_log(145,0) << "Terminal is " << terminalContact << endl; Box constraintBox = terminalContact->getConstraintBox(); if ( isHorizontal ) { @@ -198,7 +198,7 @@ namespace { _attractors[position]++; _attractorsCount++; - cdebug.log(145) << "add Attractor @" << DbU::toLambda(position) + cdebug_log(145,0) << "add Attractor @" << DbU::toLambda(position) << " [" << _attractors[position] << "]" << endl; } @@ -367,13 +367,13 @@ namespace Katabatic { void AutoSegment::_preDestroy () { - cdebug.log(149) << "AutoSegment::_preDestroy() - " << (void*)this << endl; - cdebug.tabw(145,1); + cdebug_log(149,0) << "AutoSegment::_preDestroy() - " << (void*)this << endl; + cdebug_tabw(145,1); _observers.notify( Destroy ); Session::unlink( this ); - cdebug.tabw(145,-1); + cdebug_tabw(145,-1); } @@ -420,8 +420,8 @@ namespace Katabatic { if (flags & KbTarget) setFlags( SegInvalidatedTarget ); if (isInvalidated()) return; - cdebug.log(149) << "AutoSegment::invalidate() " << flags << " " << this << endl; - cdebug.tabw(149,1); + cdebug_log(149,0) << "AutoSegment::invalidate() " << flags << " " << this << endl; + cdebug_tabw(149,1); _invalidate(); @@ -430,14 +430,14 @@ namespace Katabatic { isegment->_invalidate(); } } - cdebug.tabw(149,-1); + cdebug_tabw(149,-1); } void AutoSegment::_invalidate () { if (isInvalidated()) return; - cdebug.log(145) << "AutoSegment::_invalidate() " << this << endl; + cdebug_log(145,0) << "AutoSegment::_invalidate() " << this << endl; setFlags( SegInvalidated ); Session::invalidate( this ); @@ -456,10 +456,10 @@ namespace Katabatic { void AutoSegment::revalidate () { - cdebug.log(149) << "AutoSegment::revalidate() " << this << endl; + cdebug_log(149,0) << "AutoSegment::revalidate() " << this << endl; if (not isInvalidated()) return; - cdebug.tabw(149,1); + cdebug_tabw(149,1); updateOrient (); updatePositions(); @@ -470,7 +470,7 @@ namespace Katabatic { AutoContact* source = getAutoSource(); const Layer* contactLayer = source->getLayer(); const Layer* segmentLayer = getLayer(); - cdebug.log(149) << "Changed source: " << source << endl; + cdebug_log(149,0) << "Changed source: " << source << endl; unsetFlags( SegSourceTop|SegSourceBottom ); if (contactLayer != segmentLayer) @@ -483,7 +483,7 @@ namespace Katabatic { AutoContact* target = getAutoTarget(); const Layer* contactLayer = target->getLayer(); const Layer* segmentLayer = getLayer(); - cdebug.log(149) << "Changed target: " << target << endl; + cdebug_log(149,0) << "Changed target: " << target << endl; unsetFlags( SegTargetTop|SegTargetBottom ); if (contactLayer != segmentLayer) @@ -505,8 +505,8 @@ namespace Katabatic { _observers.notify( observerFlags ); - cdebug.log(149) << "Updated: " << this << endl; - cdebug.tabw(149,-1); + cdebug_log(149,0) << "Updated: " << this << endl; + cdebug_tabw(149,-1); } @@ -558,14 +558,14 @@ namespace Katabatic { AutoSegment* AutoSegment::getCanonical ( DbU::Unit& min, DbU::Unit& max ) { - cdebug.log(145) << "AutoSegment::getCanonical() - " << this << endl; + cdebug_log(145,0) << "AutoSegment::getCanonical() - " << this << endl; min = getSourcePosition (); max = getTargetPosition (); if (max < min) swap( min, max ); - //cdebug.log(145) << "[" << DbU::getValueString(min) << " " << DbU::getValueString(max) << "]" << endl; + //cdebug_log(145,0) << "[" << DbU::getValueString(min) << " " << DbU::getValueString(max) << "]" << endl; AutoSegment* canonical = this; size_t canonicals = isCanonical(); @@ -588,8 +588,8 @@ namespace Katabatic { aligneds++; } - //cdebug.log(145) << "[" << DbU::getValueString(min) << " " << DbU::getValueString(max) << "]" << endl; - cdebug.log(145) << "Canonical: " << canonical << endl; + //cdebug_log(145,0) << "[" << DbU::getValueString(min) << " " << DbU::getValueString(max) << "]" << endl; + cdebug_log(145,0) << "Canonical: " << canonical << endl; if ( (canonicals > 1) or ( not canonicals and (aligneds > 2) ) ) { cerr << Bug("AutoSegment::getCanonical(): %p:%s" @@ -631,7 +631,7 @@ namespace Katabatic { AutoSegments AutoSegment::getAligneds ( unsigned int flags ) { - cdebug.log(145) << "AutoSegment::getAligneds() - flags:" << flags << endl; + cdebug_log(145,0) << "AutoSegment::getAligneds() - flags:" << flags << endl; return AutoSegments_Aligneds( this, flags ); } @@ -757,17 +757,17 @@ namespace Katabatic { void AutoSegment::mergeUserConstraints ( const Interval& constraints ) { - cdebug.log(149) << "mergeUserConstraints() " << this << endl; - cdebug.log(149) << "| " << constraints << " merged with " << _userConstraints << endl; + cdebug_log(149,0) << "mergeUserConstraints() " << this << endl; + cdebug_log(149,0) << "| " << constraints << " merged with " << _userConstraints << endl; _userConstraints.intersection(constraints); } bool AutoSegment::toConstraintAxis ( unsigned int flags ) { - cdebug.log(149,1) << "toConstraintAxis() " << this << endl; + cdebug_log(149,1) << "toConstraintAxis() " << this << endl; - if (not isCanonical()) { cdebug.tabw(149,-1); return false; } + if (not isCanonical()) { cdebug_tabw(149,-1); return false; } DbU::Unit constraintMin; DbU::Unit constraintMax; @@ -775,7 +775,7 @@ namespace Katabatic { getConstraints( constraintMin, constraintMax ); // Empty constraint interval: ignore. - if (constraintMin > constraintMax) { cdebug.tabw(149,-1); return false; } + if (constraintMin > constraintMax) { cdebug_tabw(149,-1); return false; } if (isDogleg()) { DbU::Unit halfSideLength = getAutoSource()->getGCell()->getSide @@ -786,26 +786,26 @@ namespace Katabatic { if (getAxis() < constraintMin) { setAxis( constraintMin, flags ); - cdebug.tabw(149,-1); + cdebug_tabw(149,-1); return true; } if (getAxis() > constraintMax) { setAxis( constraintMax, flags ); - cdebug.tabw(149,-1); + cdebug_tabw(149,-1); return true; } - cdebug.tabw(149,-1); + cdebug_tabw(149,-1); return false; } bool AutoSegment::toOptimalAxis ( unsigned int flags ) { - cdebug.log(149,1) << "toOptimalAxis() " << this << endl; + cdebug_log(149,1) << "toOptimalAxis() " << this << endl; - if (not isCanonical()) { cdebug.tabw(149,-1); return false; } + if (not isCanonical()) { cdebug_tabw(149,-1); return false; } DbU::Unit constraintMin; DbU::Unit constraintMax; @@ -817,19 +817,19 @@ namespace Katabatic { if (getAxis() < optimalMin) { setAxis( optimalMin, flags ); - cdebug.tabw(149,-1); + cdebug_tabw(149,-1); return true; } if (getAxis() > optimalMax) { setAxis( optimalMax, flags ); - cdebug.tabw(149,-1); + cdebug_tabw(149,-1); return true; } if (flags & KbRealignate) setAxis( getAxis(), flags ); - cdebug.tabw(149,-1); + cdebug_tabw(149,-1); return false; } @@ -840,10 +840,10 @@ namespace Katabatic { if ( (axis == getAxis()) and not (flags & KbRealignate) ) return; - cdebug.log(149) << "setAxis() @" + cdebug_log(149,0) << "setAxis() @" << ((isHorizontal())?"Y ":"X ") << DbU::toLambda(getAxis()) << " to " << DbU::toLambda(axis) << " on " << this << endl; - cdebug.tabw(145,1); + cdebug_tabw(145,1); _setAxis( axis ); @@ -852,10 +852,10 @@ namespace Katabatic { isegment->_setAxis( getAxis() ); } } else { - cdebug.log(149) << "No need to process parallels." << endl; + cdebug_log(149,0) << "No need to process parallels." << endl; } - cdebug.tabw(145,-1); + cdebug_tabw(145,-1); } @@ -864,7 +864,7 @@ namespace Katabatic { AutoContact* source = getAutoSource(); AutoContact* target = getAutoTarget(); - cdebug.log(145) << "computeTerminal() S:" << source->isTerminal() + cdebug_log(145,0) << "computeTerminal() S:" << source->isTerminal() << " T:" << target->isTerminal() << " " << this << endl; @@ -902,7 +902,7 @@ namespace Katabatic { void AutoSegment::computeOptimal ( set& processeds ) { - cdebug.log(145,1) << "computeOptimal() - " << this << endl; + cdebug_log(145,1) << "computeOptimal() - " << this << endl; DbU::Unit optimalMin; DbU::Unit optimalMax; @@ -953,9 +953,9 @@ namespace Katabatic { } forEach( AutoSegment*, autoSegment, getPerpandiculars() ) { - cdebug.log(145,1) << "Perpandicular " << *autoSegment << endl; + cdebug_log(145,1) << "Perpandicular " << *autoSegment << endl; if (autoSegment->isLocal()) { - if (not autoSegment->isStrongTerminal()) { cdebug.tabw(145,-1); continue; } + if (not autoSegment->isStrongTerminal()) { cdebug_tabw(145,-1); continue; } DbU::Unit terminalMin; DbU::Unit terminalMax; @@ -979,12 +979,12 @@ namespace Katabatic { isMin = false; attractors.addAttractor( (isMin) ? minGCell : maxGCell ); } - cdebug.tabw(145,-1); + cdebug_tabw(145,-1); } if (attractors.getAttractorsCount()) { - cdebug.log(145) << "Lower Median " << DbU::toLambda(attractors.getLowerMedian()) << endl; - cdebug.log(145) << "Upper Median " << DbU::toLambda(attractors.getUpperMedian()) << endl; + cdebug_log(145,0) << "Lower Median " << DbU::toLambda(attractors.getLowerMedian()) << endl; + cdebug_log(145,0) << "Upper Median " << DbU::toLambda(attractors.getUpperMedian()) << endl; optimalMin = attractors.getLowerMedian(); optimalMax = attractors.getUpperMedian(); @@ -998,29 +998,29 @@ namespace Katabatic { setInBound( constraintMin, constraintMax, optimalMin ); setInBound( constraintMin, constraintMax, optimalMax ); - cdebug.log(145) << "Applying constraint on: " << this << endl; + cdebug_log(145,0) << "Applying constraint on: " << this << endl; setOptimalMin( optimalMin ); setOptimalMax( optimalMax ); processeds.insert( this ); if (not isNotAligned()) { forEach ( AutoSegment*, autoSegment, getAligneds() ) { - cdebug.log(145) << "Applying constraint on: " << *autoSegment << endl; + cdebug_log(145,0) << "Applying constraint on: " << *autoSegment << endl; autoSegment->setOptimalMin( optimalMin ); autoSegment->setOptimalMax( optimalMax ); processeds.insert( (*autoSegment) ); } } - cdebug.tabw(145,-1); + cdebug_tabw(145,-1); } AutoSegment* AutoSegment::canonize ( unsigned int flags ) { - cdebug.log(149) << "canonize() - " << this << endl; + cdebug_log(149,0) << "canonize() - " << this << endl; // if (isCanonical() and isGlobal()) { - // cdebug.log(149) << "* " << this << " canonical" << endl; + // cdebug_log(149,0) << "* " << this << " canonical" << endl; // return this; // } @@ -1038,7 +1038,7 @@ namespace Katabatic { if (not hasCanonical) { if (isegment->isCanonical()) { - cdebug.log(149) << "* " << *isegment << " canonical already set" << endl; + cdebug_log(149,0) << "* " << *isegment << " canonical already set" << endl; canonical = *isegment; hasCanonical = true; } @@ -1059,10 +1059,10 @@ namespace Katabatic { } if (segments.empty()) setFlags( SegNotAligned ); - if (isCanonical()) { cdebug.log(149) << "* " << this << " canonical" << endl; } + if (isCanonical()) { cdebug_log(149,0) << "* " << this << " canonical" << endl; } else { - cdebug.log(149) << "* " << this << " not canonical" << endl; - cdebug.log(149) << "* " << canonical << " *is* the canonical" << endl; + cdebug_log(149,0) << "* " << this << " not canonical" << endl; + cdebug_log(149,0) << "* " << canonical << " *is* the canonical" << endl; } } else { setFlags ( SegCanonical ); @@ -1260,7 +1260,7 @@ namespace Katabatic { void AutoSegment::changeDepth ( unsigned int depth, unsigned int flags ) { - cdebug.log(149,1) << "changeDepth() " << depth << " - " << this << endl; + cdebug_log(149,1) << "changeDepth() " << depth << " - " << this << endl; Session::invalidate( getNet() ); _changeDepth( depth, flags & ~KbPropagate ); @@ -1271,13 +1271,13 @@ namespace Katabatic { } } - cdebug.tabw(149,-1); + cdebug_tabw(149,-1); } void AutoSegment::_changeDepth ( unsigned int depth, unsigned int flags ) { - cdebug.log(149,1) << "_changeDepth() - " << this << endl; + cdebug_log(149,1) << "_changeDepth() - " << this << endl; invalidate( KbNoFlags ); setFlags( SegInvalidatedLayer|SegInvalidatedSource|SegInvalidatedTarget ); @@ -1291,7 +1291,7 @@ namespace Katabatic { } if (not (flags & KbWithNeighbors)) { - cdebug.tabw(149,-1); + cdebug_tabw(149,-1); return; } @@ -1322,13 +1322,13 @@ namespace Katabatic { for ( size_t i=0 ; iinvalidate(); - cdebug.tabw(149,-1); + cdebug_tabw(149,-1); } bool AutoSegment::canSlacken ( unsigned int flags ) const { - cdebug.log(149) << "AutoSegment::canSlacken()" << endl; + cdebug_log(149,0) << "AutoSegment::canSlacken()" << endl; if (not isGlobal() and not (flags & KbPropagate)) return false; @@ -1361,7 +1361,7 @@ namespace Katabatic { float AutoSegment::getMaxUnderDensity ( unsigned int flags ) { - cdebug.log(149) << "AutoSegment::getMaxUnderDensity() " << endl; + cdebug_log(149,0) << "AutoSegment::getMaxUnderDensity() " << endl; GCell* begin = NULL; GCell* end = NULL; @@ -1397,7 +1397,7 @@ namespace Katabatic { bool AutoSegment::canPivotUp ( float reserve, unsigned int flags ) const { - cdebug.log(149) << "AutoSegment::canPivotUp() - " << flags + cdebug_log(149,0) << "AutoSegment::canPivotUp() - " << flags << " (reserve:" << reserve << ")" << endl; if ( isLayerChange() or isFixed() ) return false; @@ -1413,9 +1413,9 @@ namespace Katabatic { } if ( not (flags&KbIgnoreContacts) ) { - cdebug.log(149) << getAutoSource() << endl; - cdebug.log(149) << getAutoTarget() << endl; - cdebug.log(149) << "min depths, Segment:" << depth + cdebug_log(149,0) << getAutoSource() << endl; + cdebug_log(149,0) << getAutoTarget() << endl; + cdebug_log(149,0) << "min depths, Segment:" << depth << " S:" << getAutoSource()->getMinDepth() << " T:" << getAutoTarget()->getMinDepth() << endl; @@ -1433,11 +1433,11 @@ namespace Katabatic { if (isegment->getAutoTarget()->getMinDepth() < depth) return false; } } else { - cdebug.log(149) << "AutoSegment::canPivotUp() - true [no propagate]" << endl; + cdebug_log(149,0) << "AutoSegment::canPivotUp() - true [no propagate]" << endl; return true; } - cdebug.log(149) << "AutoSegment::canPivotUp() - true [propagate]" << endl; + cdebug_log(149,0) << "AutoSegment::canPivotUp() - true [propagate]" << endl; return true; } @@ -1445,7 +1445,7 @@ namespace Katabatic { bool AutoSegment::canPivotDown ( float reserve, unsigned int flags ) const { - cdebug.log(149) << "AutoSegment::canPivotDown()" + cdebug_log(149,0) << "AutoSegment::canPivotDown()" << " (reserve:" << reserve << ")" << endl; if ( isLayerChange() or isFixed() ) return false; @@ -1460,16 +1460,16 @@ namespace Katabatic { if (not gcells[i]->hasFreeTrack(depth-2,reserve)) return false; } - cdebug.log(149) << getAutoSource() << endl; - cdebug.log(149) << getAutoTarget() << endl; - cdebug.log(149) << "max depths, Segment:" << depth + cdebug_log(149,0) << getAutoSource() << endl; + cdebug_log(149,0) << getAutoTarget() << endl; + cdebug_log(149,0) << "max depths, Segment:" << depth << " S:" << getAutoSource()->getMaxDepth() << " T:" << getAutoTarget()->getMaxDepth() << endl; if (getAutoSource()->getMaxDepth() > depth) return false; if (getAutoTarget()->getMaxDepth() > depth) return false; if (not (flags & KbPropagate)) { - cdebug.log(149) << "AutoSegment::canPivotDown() - true [no propagate]" << endl; + cdebug_log(149,0) << "AutoSegment::canPivotDown() - true [no propagate]" << endl; return true; } @@ -1484,7 +1484,7 @@ namespace Katabatic { } } - cdebug.log(149) << "AutoSegment::canPivotDown() - true [propagate]" << endl; + cdebug_log(149,0) << "AutoSegment::canPivotDown() - true [propagate]" << endl; return true; } @@ -1492,7 +1492,7 @@ namespace Katabatic { bool AutoSegment::canMoveUp ( float reserve, unsigned int flags ) const { - cdebug.log(149) << "AutoSegment::canMoveUp() " << flags + cdebug_log(149,0) << "AutoSegment::canMoveUp() " << flags << " (reserve:" << reserve << ")" << endl; bool lowDensity = true; @@ -1514,12 +1514,12 @@ namespace Katabatic { for ( size_t i=0 ; igetWDensity(depth-2) > 0.5) ) lowDensity = false; if (not gcells[i]->hasFreeTrack(depth,reserve)) { - cdebug.log(149) << "Not enough free track in " << gcells[i] << endl; + cdebug_log(149,0) << "Not enough free track in " << gcells[i] << endl; return false; } } - cdebug.log(149) << "Enough free track under canonical segment." << endl; + cdebug_log(149,0) << "Enough free track under canonical segment." << endl; if ( isLocal() and not (flags & KbPropagate) ) { if (not getAutoSource()->canMoveUp(this)) return false; @@ -1540,7 +1540,7 @@ namespace Katabatic { for ( size_t i=0 ; igetWDensity(depth-2) > 0.6) ) lowDensity = false; if (not gcells[i]->hasFreeTrack(depth,reserve)) { - cdebug.log(149) << "Not enough free track in " << gcells[i] << endl; + cdebug_log(149,0) << "Not enough free track in " << gcells[i] << endl; return false; } } @@ -1551,20 +1551,20 @@ namespace Katabatic { if ( (depth >= 4) and (flags & KbWithPerpands) ) { float fragmentation = begin->getFragmentation( depth-1 ); - cdebug.log(149) << "Check begin GCell perpandicular fragmentation: " << fragmentation << endl; + cdebug_log(149,0) << "Check begin GCell perpandicular fragmentation: " << fragmentation << endl; if (fragmentation < 0.5) { - cdebug.log(149) << "Not enough free track for perpandicular in begin GCell " + cdebug_log(149,0) << "Not enough free track for perpandicular in begin GCell " << "(frag:" << fragmentation << ")." << endl; return false; } fragmentation = end->getFragmentation( depth-1 ); - cdebug.log(149) << "Check end GCell perpandicular fragmentation: " << fragmentation << endl; + cdebug_log(149,0) << "Check end GCell perpandicular fragmentation: " << fragmentation << endl; if (fragmentation < 0.5) { - cdebug.log(149) << "Not enough free track for perpandicular in end GCell " + cdebug_log(149,0) << "Not enough free track for perpandicular in end GCell " << "(frag:" << fragmentation << ")." << endl; return false; @@ -1624,7 +1624,7 @@ namespace Katabatic { bool AutoSegment::shearUp ( GCell* upGCell, AutoSegment*& movedUp, float reserve, unsigned int flags ) { - cdebug.log(149) << "AutoSegment::shearUp() " << this << endl; + cdebug_log(149,0) << "AutoSegment::shearUp() " << this << endl; movedUp = NULL; @@ -1651,7 +1651,7 @@ namespace Katabatic { GCell* rightShear = NULL; for ( size_t i=iupGCell ; ihasFreeTrack(upDepth,reserve) ) { - cdebug.log(149) << "Right shearing @ " << gcells[i] << endl; + cdebug_log(149,0) << "Right shearing @ " << gcells[i] << endl; rightShear = gcells[i]; } } @@ -1662,7 +1662,7 @@ namespace Katabatic { do { --i; if ( not gcells[i]->hasFreeTrack(upDepth,reserve) ) { - cdebug.log(149) << "Left shearing @ " << gcells[i] << endl; + cdebug_log(149,0) << "Left shearing @ " << gcells[i] << endl; leftShear = gcells[i]; } } while (i > 0); @@ -1695,7 +1695,7 @@ namespace Katabatic { unsigned int AutoSegment::canDogleg ( Interval interval ) { - cdebug.log(149) << "AutoSegment::canDogleg(Interval) " << interval << endl; + cdebug_log(149,0) << "AutoSegment::canDogleg(Interval) " << interval << endl; size_t leftDogleg = 0; size_t rightDogleg = 0; @@ -1718,7 +1718,7 @@ namespace Katabatic { if ( (leftDogleg == 1) and (rightDogleg <= 1) ) return KbDoglegOnLeft; if ( (leftDogleg <= 1) and (rightDogleg == 1) ) return KbDoglegOnRight; - cdebug.log(149) << "leftCount:" << leftDogleg << " rightCount:" << rightDogleg << endl; + cdebug_log(149,0) << "leftCount:" << leftDogleg << " rightCount:" << rightDogleg << endl; return 0; } @@ -1726,8 +1726,8 @@ namespace Katabatic { AutoSegment* AutoSegment::makeDogleg ( AutoContact* from ) { - cdebug.log(149,1) << "AutoSegment::makeDogleg(AutoContact*) " << from << endl; - cdebug.log(149) << this << endl; + cdebug_log(149,1) << "AutoSegment::makeDogleg(AutoContact*) " << from << endl; + cdebug_log(149,0) << this << endl; RoutingGauge* rg = Session::getRoutingGauge(); size_t segmentDepth = rg->getLayerDepth( getLayer() ); @@ -1735,71 +1735,71 @@ namespace Katabatic { size_t index = doglegs.size(); bool isSource = (getAutoSource() == from); - cdebug.log(149) << "isSource:" << isSource << endl; + cdebug_log(149,0) << "isSource:" << isSource << endl; makeDogleg( from->getGCell(), KbNoCheckLayer ); if (doglegs.size() == index) { - cdebug.tabw(149,-1); + cdebug_tabw(149,-1); return NULL; } doglegs[ index+1 ]->setAxis( isHorizontal() ? from->getX() : from->getY() ); if (not from->getLayer()->contains(getLayer())) { - cdebug.log(149) << "Contact layer do not contains Segment layer, adjust layers" << endl; + cdebug_log(149,0) << "Contact layer do not contains Segment layer, adjust layers" << endl; if (getLayer()->above(from->getLayer())) { - cdebug.log(149) << "Go Down from depth " << segmentDepth << endl; + cdebug_log(149,0) << "Go Down from depth " << segmentDepth << endl; doglegs[ index + 1 ]->setLayer( rg->getRoutingLayer(segmentDepth-1) ); - cdebug.log(149) << "doglegs[i+1]: " << doglegs[index+1] << endl; + cdebug_log(149,0) << "doglegs[i+1]: " << doglegs[index+1] << endl; if (isSource) { doglegs[ index + 0 ]->setLayer( rg->getRoutingLayer(segmentDepth-2) ); doglegs[ index + 1 ]->getAutoSource()->setLayer( rg->getContactLayer(segmentDepth-2) ); doglegs[ index + 1 ]->getAutoTarget()->setLayer( rg->getContactLayer(segmentDepth-1) ); - cdebug.log(149) << "doglegs[i+0]: " << doglegs[index+0] << endl; - cdebug.log(149) << "doglegs[i+1]: " << doglegs[index+1]->getAutoSource() << endl; - cdebug.log(149) << "doglegs[i+1]: " << doglegs[index+1]->getAutoTarget() << endl; + cdebug_log(149,0) << "doglegs[i+0]: " << doglegs[index+0] << endl; + cdebug_log(149,0) << "doglegs[i+1]: " << doglegs[index+1]->getAutoSource() << endl; + cdebug_log(149,0) << "doglegs[i+1]: " << doglegs[index+1]->getAutoTarget() << endl; } else { doglegs[ index + 2 ]->setLayer( rg->getRoutingLayer(segmentDepth-2) ); doglegs[ index + 1 ]->getAutoTarget()->setLayer( rg->getContactLayer(segmentDepth-2) ); doglegs[ index + 1 ]->getAutoSource()->setLayer( rg->getContactLayer(segmentDepth-1) ); - cdebug.log(149) << "doglegs[i+2]: " << doglegs[index+2] << endl; - cdebug.log(149) << "doglegs[i+1]: " << doglegs[index+1]->getAutoTarget() << endl; - cdebug.log(149) << "doglegs[i+1]: " << doglegs[index+1]->getAutoSource() << endl; + cdebug_log(149,0) << "doglegs[i+2]: " << doglegs[index+2] << endl; + cdebug_log(149,0) << "doglegs[i+1]: " << doglegs[index+1]->getAutoTarget() << endl; + cdebug_log(149,0) << "doglegs[i+1]: " << doglegs[index+1]->getAutoSource() << endl; } } else { - cdebug.log(149) << "Go Up from depth " << segmentDepth << endl; + cdebug_log(149,0) << "Go Up from depth " << segmentDepth << endl; doglegs[ index + 1 ]->setLayer( rg->getRoutingLayer(segmentDepth+1) ); - cdebug.log(149) << "doglegs[i+1]: " << doglegs[index+1] << endl; + cdebug_log(149,0) << "doglegs[i+1]: " << doglegs[index+1] << endl; if (isSource) { doglegs[ index + 0 ]->setLayer( rg->getRoutingLayer(segmentDepth+2) ); doglegs[ index + 1 ]->getAutoSource()->setLayer( rg->getContactLayer(segmentDepth+1) ); doglegs[ index + 1 ]->getAutoTarget()->setLayer( rg->getContactLayer(segmentDepth ) ); - cdebug.log(149) << "doglegs[i+0]: " << doglegs[index+0] << endl; - cdebug.log(149) << "doglegs[i+1]: " << doglegs[index+1]->getAutoSource() << endl; - cdebug.log(149) << "doglegs[i+1]: " << doglegs[index+1]->getAutoTarget() << endl; + cdebug_log(149,0) << "doglegs[i+0]: " << doglegs[index+0] << endl; + cdebug_log(149,0) << "doglegs[i+1]: " << doglegs[index+1]->getAutoSource() << endl; + cdebug_log(149,0) << "doglegs[i+1]: " << doglegs[index+1]->getAutoTarget() << endl; } else { doglegs[ index + 2 ]->setLayer( rg->getRoutingLayer(segmentDepth+2) ); doglegs[ index + 1 ]->getAutoTarget()->setLayer( rg->getContactLayer(segmentDepth+1) ); doglegs[ index + 1 ]->getAutoSource()->setLayer( rg->getContactLayer(segmentDepth ) ); - cdebug.log(149) << "doglegs[i+2]: " << doglegs[index+2] << endl; - cdebug.log(149) << "doglegs[i+1]: " << doglegs[index+1]->getAutoTarget() << endl; - cdebug.log(149) << "doglegs[i+1]: " << doglegs[index+1]->getAutoSource() << endl; + cdebug_log(149,0) << "doglegs[i+2]: " << doglegs[index+2] << endl; + cdebug_log(149,0) << "doglegs[i+1]: " << doglegs[index+1]->getAutoTarget() << endl; + cdebug_log(149,0) << "doglegs[i+1]: " << doglegs[index+1]->getAutoSource() << endl; } } } - cdebug.tabw(149,-1); + cdebug_tabw(149,-1); return doglegs[ index + (isSource?0:2) ]; } unsigned int AutoSegment::makeDogleg ( Interval interval, unsigned int flags ) { - cdebug.log(149,1) << "AutoSegment::makeDogleg(Interval) - " << interval << endl; + cdebug_log(149,1) << "AutoSegment::makeDogleg(Interval) - " << interval << endl; bool leftDogleg = true; unsigned int rflags = 0; @@ -1818,7 +1818,7 @@ namespace Katabatic { } } - if ( (leftDoglegCount != 1) and (rightDoglegCount != 1) ) { cdebug.tabw(149,-1); return 0; } + if ( (leftDoglegCount != 1) and (rightDoglegCount != 1) ) { cdebug_tabw(149,-1); return 0; } if (not leftDoglegCount) { leftDogleg = false; leftCandidate = rightCandidate; @@ -1826,8 +1826,8 @@ namespace Katabatic { } if (leftCandidate and rightCandidate) { - cdebug.log(149) << "Left Constraint: " << leftCandidate->getSourceConstraints(KbNativeConstraints) << endl; - cdebug.log(149) << "Right Constraint: " << rightCandidate->getTargetConstraints(KbNativeConstraints) << endl; + cdebug_log(149,0) << "Left Constraint: " << leftCandidate->getSourceConstraints(KbNativeConstraints) << endl; + cdebug_log(149,0) << "Right Constraint: " << rightCandidate->getTargetConstraints(KbNativeConstraints) << endl; if ( leftCandidate ->getTargetConstraints(KbNativeConstraints).getSize() < rightCandidate->getSourceConstraints(KbNativeConstraints).getSize() ) { @@ -1847,7 +1847,7 @@ namespace Katabatic { if (leftDogleg) axis = interval.getVMin() - getPitch(); else axis = interval.getVMax() + getPitch(); - cdebug.log(149) << "Break @" << DbU::getValueString(axis) << " " << leftCandidate << endl; + cdebug_log(149,0) << "Break @" << DbU::getValueString(axis) << " " << leftCandidate << endl; unsigned int direction = getDirection(); GCell* gcell = leftCandidate->getAutoSource()->getGCell(); @@ -1857,26 +1857,26 @@ namespace Katabatic { gcell = (direction == KbHorizontal) ? gcell->getRight() : gcell->getUp(); } - cdebug.log(149) << "In " << gcell << endl; + cdebug_log(149,0) << "In " << gcell << endl; rflags = leftCandidate->_makeDogleg( gcell, flags ); const vector& doglegs = Session::getDoglegs(); if (doglegs.size() >= 2) { - cdebug.log(149) << "AutoSegment::makeDogleg(): @" << DbU::getValueString(axis) << endl; + cdebug_log(149,0) << "AutoSegment::makeDogleg(): @" << DbU::getValueString(axis) << endl; doglegs[1]->setAxis( axis ); } } - cdebug.tabw(149,-1); + cdebug_tabw(149,-1); return rflags | (leftDogleg ? KbDoglegOnLeft : KbDoglegOnRight); } unsigned int AutoSegment::makeDogleg ( GCell* doglegGCell, unsigned int flags ) { - cdebug.log(9000) << "Deter| AutoSegment::makeDogleg(GCell*) " << doglegGCell << endl; - cdebug.log(9000) << "Deter| in " << this << endl; - cdebug.tabw(149,1); + cdebug_log(9000,0) << "Deter| AutoSegment::makeDogleg(GCell*) " << doglegGCell << endl; + cdebug_log(9000,0) << "Deter| in " << this << endl; + cdebug_tabw(149,1); unsigned int rflags = 0; @@ -1896,17 +1896,17 @@ namespace Katabatic { } if (doglegGCell->getSide(getDirection()).intersect(getSpanU())) { - cdebug.log(149) << "Dogleg in " << this << endl; + cdebug_log(149,0) << "Dogleg in " << this << endl; rflags = _makeDogleg( doglegGCell, flags ); } else { - cdebug.log(149) << "Looking in aligneds." << endl; + cdebug_log(149,0) << "Looking in aligneds." << endl; if (not isNotAligned()) { forEach ( AutoSegment*, aligned, getAligneds(flags) ) { - cdebug.log(149) << "| Try in " << *aligned << endl; + cdebug_log(149,0) << "| Try in " << *aligned << endl; if (doglegGCell->getSide(getDirection()).intersect(aligned->getSpanU())) { - cdebug.log(149) << "Dogleg in " << *aligned << endl; + cdebug_log(149,0) << "Dogleg in " << *aligned << endl; rflags = aligned->_makeDogleg( doglegGCell, flags ); - cdebug.tabw(149,-1); + cdebug_tabw(149,-1); return 0; } } @@ -1914,7 +1914,7 @@ namespace Katabatic { cerr << Bug("Cannot make a dogleg in %s at %s" ,_getString().c_str(), getString(doglegGCell).c_str()) << endl; } - cdebug.tabw(149,-1); + cdebug_tabw(149,-1); return rflags; } @@ -2002,8 +2002,8 @@ namespace Katabatic { Vertical* vertical = dynamic_cast( hurricaneSegment ); AutoContact* reference = source; - cdebug.log(149) << "Source:" << source << endl; - cdebug.log(149) << "Target:" << target << endl; + cdebug_log(149,0) << "Source:" << source << endl; + cdebug_log(149,0) << "Target:" << target << endl; if (target->isFixed()) { if (source->isFixed()) { @@ -2131,8 +2131,8 @@ namespace Katabatic { AutoSegment* segment; AutoContact* reference = source; - cdebug.log(149) << "Source:" << source << endl; - cdebug.log(149) << "Target:" << target << endl; + cdebug_log(149,0) << "Source:" << source << endl; + cdebug_log(149,0) << "Target:" << target << endl; if (target->isFixed()) { if (source->isFixed()) { @@ -2187,7 +2187,7 @@ namespace Katabatic { bool AutoSegment::isTopologicalBound ( AutoSegment* seed, unsigned int flags ) { - cdebug.log(145,1) << "isTopologicalBound() - " << seed << endl; + cdebug_log(145,1) << "isTopologicalBound() - " << seed << endl; set exploreds; vector stack; @@ -2196,7 +2196,7 @@ namespace Katabatic { if (flags & KbSuperior) axis = seed->getTargetU(); else axis = seed->getSourceU(); - cdebug.log(145) << "check for bound " << DbU::getValueString(axis) << endl; + cdebug_log(145,0) << "check for bound " << DbU::getValueString(axis) << endl; exploreds.insert( seed->getAutoSource() ); exploreds.insert( seed->getAutoTarget() ); @@ -2213,11 +2213,11 @@ namespace Katabatic { AutoContact* currentContact = stack.back(); stack.pop_back(); - cdebug.log(145) << "Exploring: " << (void*)currentContact << " " << currentContact << endl; + cdebug_log(145,0) << "Exploring: " << (void*)currentContact << " " << currentContact << endl; exploreds.insert( currentContact ); - if (currentContact->getAnchor()) { cdebug.tabw(145,-1); return true; } + if (currentContact->getAnchor()) { cdebug_tabw(145,-1); return true; } forEach ( Component*, component, currentContact->getSlaveComponents() ) { Segment* segment = dynamic_cast( *component ); @@ -2244,17 +2244,17 @@ namespace Katabatic { if (autoSegment->isHorizontal() xor (flags & KbHorizontal)) continue; - cdebug.log(145) << "| " << autoSegment << endl; + cdebug_log(145,0) << "| " << autoSegment << endl; if (flags & KbSuperior) { - if (autoSegment->getTargetU() > axis) { cdebug.tabw(145,-1); return true; } + if (autoSegment->getTargetU() > axis) { cdebug_tabw(145,-1); return true; } } else { - if (autoSegment->getSourceU() < axis) { cdebug.tabw(145,-1); return true; } + if (autoSegment->getSourceU() < axis) { cdebug_tabw(145,-1); return true; } } } } - cdebug.tabw(145,-1); + cdebug_tabw(145,-1); return false; } @@ -2304,7 +2304,7 @@ namespace Katabatic { , DbU::Unit& rightBound ) { - cdebug.log(145,1) << "getTopologicalInfos() - " << seed << endl; + cdebug_log(145,1) << "getTopologicalInfos() - " << seed << endl; leftBound = DbU::Max; rightBound = DbU::Min; @@ -2330,11 +2330,11 @@ namespace Katabatic { else constraint = sourceContact->getCBYMin(); if (constraint > rightBound) rightBound = constraint; - cdebug.log(149) << "Segments of: " << sourceContact << endl; + cdebug_log(149,0) << "Segments of: " << sourceContact << endl; LocatorHelper helper (sourceContact, KbHorizontal|KbWithPerpands); for ( ; helper.isValid() ; helper.progress() ) { AutoSegment* currentSegment = helper.getSegment(); - cdebug.log(149) << "Looking for: " << currentSegment << endl; + cdebug_log(149,0) << "Looking for: " << currentSegment << endl; if (currentSegment == sourceSegment) continue; if (AutoSegment::areAlignedsAndDiffLayer(currentSegment,seed)) { @@ -2350,28 +2350,28 @@ namespace Katabatic { aligneds.push_back( currentSegment ); AutoContact* targetContact = currentSegment->getOppositeAnchor( sourceContact ); - cdebug.log(149) << "Target: " << targetContact << endl; + cdebug_log(149,0) << "Target: " << targetContact << endl; if (targetContact) { if ( (seed->isHorizontal() and sourceContact->isHTee()) or (seed->isVertical () and sourceContact->isVTee()) ) { - cdebug.log(149) << "Stacking target. " << endl; + cdebug_log(149,0) << "Stacking target. " << endl; stack.push( targetContact, currentSegment ); } } } else { - cdebug.log(149) << "| perpandicular " << currentSegment << endl; + cdebug_log(149,0) << "| perpandicular " << currentSegment << endl; perpandiculars.push_back( currentSegment ); } } } - cdebug.tabw(145,-1); + cdebug_tabw(145,-1); } int AutoSegment::getTerminalCount ( AutoSegment* seed, vector& collapseds ) { - cdebug.log(145) << "getTerminalCount() - " << seed << " (+collapseds)" << endl; + cdebug_log(145,0) << "getTerminalCount() - " << seed << " (+collapseds)" << endl; int count = 0; for ( size_t i=0 ; i < collapseds.size() ; i++ ) { diff --git a/katabatic/src/AutoSegments.cpp b/katabatic/src/AutoSegments.cpp index afebaa64..3043e0db 100644 --- a/katabatic/src/AutoSegments.cpp +++ b/katabatic/src/AutoSegments.cpp @@ -36,7 +36,7 @@ namespace Katabatic { void AutoSegmentStack::push ( AutoContact* contact, AutoSegment* segment ) { - cdebug.log(145) << "Stacking " << contact << " + " << segment << endl; + cdebug_log(145,0) << "Stacking " << contact << " + " << segment << endl; push_back( make_pair(contact,segment) ); } @@ -68,7 +68,7 @@ namespace Katabatic { void AutoSegments_OnContact::Locator::progress () { - cdebug.log(145) << "AutoSegments_OnContact::Locator::progress()" << endl; + cdebug_log(145,0) << "AutoSegments_OnContact::Locator::progress()" << endl; while (_hook and not _hook->isMaster()) { _hook = _hook->getNextHook(); @@ -124,7 +124,7 @@ namespace Katabatic { if (not _master) return; _flags |= (_master->isHorizontal()) ? KbHorizontal : KbVertical; - cdebug.log(145) << "AutoSegments_Aligneds::Locator::Locator() - _flags:" << _flags << endl; + cdebug_log(145,0) << "AutoSegments_Aligneds::Locator::Locator() - _flags:" << _flags << endl; AutoContact* contact = segment->getAutoSource(); if (contact) _stack.push( contact, segment ); @@ -146,7 +146,7 @@ namespace Katabatic { void AutoSegments_Aligneds::Locator::progress () { - cdebug.log(145) << "AutoSegments_Aligneds::Locator::progress()" << endl; + cdebug_log(145,0) << "AutoSegments_Aligneds::Locator::progress()" << endl; while (not _stack.isEmpty()) { AutoContact* sourceContact = _stack.getAutoContact (); @@ -157,7 +157,7 @@ namespace Katabatic { LocatorHelper helper (sourceContact, _flags); for ( ; helper.isValid() ; helper.progress() ) { AutoSegment* currentSegment = helper.getSegment(); - cdebug.log(145) << "Looking at: " << currentSegment << endl; + cdebug_log(145,0) << "Looking at: " << currentSegment << endl; if (currentSegment == sourceSegment) continue; @@ -219,8 +219,8 @@ namespace Katabatic { , _stack () , _perpandiculars() { - cdebug.log(145) << "AutoSegments_Perpandiculars::Locator::Locator()" << endl; - cdebug.log(145) << " " << _master << endl; + cdebug_log(145,0) << "AutoSegments_Perpandiculars::Locator::Locator()" << endl; + cdebug_log(145,0) << " " << _master << endl; if (not _master) return; if (_master->isHorizontal()) _flags |= KbHorizontal; @@ -245,7 +245,7 @@ namespace Katabatic { void AutoSegments_Perpandiculars::Locator::progress () { - cdebug.log(145) << "AutoSegments_Perpandiculars::Locator::progress()" << endl; + cdebug_log(145,0) << "AutoSegments_Perpandiculars::Locator::progress()" << endl; if (not _perpandiculars.empty()) _perpandiculars.pop_back(); if (not _perpandiculars.empty()) return; @@ -275,7 +275,7 @@ namespace Katabatic { continue; } - cdebug.log(145) << "Stacking target. " << endl; + cdebug_log(145,0) << "Stacking target. " << endl; _stack.push( targetContact, currentSegment ); } } @@ -354,17 +354,17 @@ namespace Katabatic { void AutoSegments_AnchorOnGCell::Locator::progress () { - cdebug.log(145,1) << "AutoSegments_AnchorOnGCell::Locator::progress()" << endl; + cdebug_log(145,1) << "AutoSegments_AnchorOnGCell::Locator::progress()" << endl; while ( true ) { if (_hookLocator == NULL) { if (_itContact == _itEnd) { - cdebug.log(145) << "No more AutoContacts" << endl; - cdebug.tabw(145,-1); + cdebug_log(145,0) << "No more AutoContacts" << endl; + cdebug_tabw(145,-1); return; } - cdebug.log(145) << *_itContact << endl; + cdebug_log(145,0) << *_itContact << endl; _hookLocator = (*_itContact)->getBodyHook()->getSlaveHooks().getLocator(); _itContact++; @@ -373,7 +373,7 @@ namespace Katabatic { } while ( _hookLocator->isValid() ) { - cdebug.log(145) << _hookLocator->getElement() << endl; + cdebug_log(145,0) << _hookLocator->getElement() << endl; Hook* hook = dynamic_cast(_hookLocator->getElement()); if (hook) { if ( ((_flags & KbSource) and (dynamic_cast(hook))) @@ -381,9 +381,9 @@ namespace Katabatic { _element = Session::lookup( static_cast(hook->getComponent()) ); if (_element->isHorizontal()) { - if (_flags & KbHorizontal) { cdebug.tabw(145,-1); return; } + if (_flags & KbHorizontal) { cdebug_tabw(145,-1); return; } } else - if (_flags & KbVertical) { cdebug.tabw(145,-1); return; } + if (_flags & KbVertical) { cdebug_tabw(145,-1); return; } } } _hookLocator->progress(); @@ -392,7 +392,7 @@ namespace Katabatic { _element = NULL; } - cdebug.tabw(145,-1); + cdebug_tabw(145,-1); } @@ -447,7 +447,7 @@ namespace Katabatic { void AutoSegments_CachedOnContact::Locator::progress () { - cdebug.log(145) << "AutoSegments_CachedOnContact::Locator::progress()" << endl; + cdebug_log(145,0) << "AutoSegments_CachedOnContact::Locator::progress()" << endl; _helper->progress(); } diff --git a/katabatic/src/AutoVertical.cpp b/katabatic/src/AutoVertical.cpp index 14b33e13..fb56fa5d 100644 --- a/katabatic/src/AutoVertical.cpp +++ b/katabatic/src/AutoVertical.cpp @@ -54,8 +54,8 @@ namespace Katabatic { : AutoSegment(vertical) , _vertical(vertical) { - cdebug.log(145) << "CTOR AutoVertical " << this << endl; - cdebug.log(145) << " over " << vertical << endl; + cdebug_log(145,0) << "CTOR AutoVertical " << this << endl; + cdebug_log(145,0) << " over " << vertical << endl; } @@ -95,8 +95,8 @@ namespace Katabatic { void AutoVertical::_preDestroy () { - cdebug.log(149,1) << "AutoVertical::_preDestroy() - " << endl; - cdebug.log(149) << _getString() << endl; + cdebug_log(149,1) << "AutoVertical::_preDestroy() - " << endl; + cdebug_log(149,0) << _getString() << endl; if ( not Session::doDestroyTool() ) { AutoContact* source = getAutoSource(); @@ -124,14 +124,14 @@ namespace Katabatic { } AutoSegment::_preDestroy (); - cdebug.tabw(145,-1); + cdebug_tabw(145,-1); } AutoVertical::~AutoVertical () { if ( Session::doDestroyBaseSegment() and not Session::doDestroyTool() ) { - cdebug.log(149) << "~AutoVertical() - " << endl; + cdebug_log(149,0) << "~AutoVertical() - " << endl; _vertical->destroy (); } } @@ -163,7 +163,7 @@ namespace Katabatic { constraintMin = contact->getCBXMin(); constraintMax = contact->getCBXMax(); - cdebug.log(149) << "Source constraints: " << contact << " [" + cdebug_log(149,0) << "Source constraints: " << contact << " [" << DbU::getValueString(constraintMin) << ":" << DbU::getValueString(constraintMax) << "]" << endl; @@ -172,7 +172,7 @@ namespace Katabatic { constraintMin = max ( constraintMin, contact->getCBXMin() ); constraintMax = min ( constraintMax, contact->getCBXMax() ); - cdebug.log(149) << "Merge with target constraints: " << contact << " [" + cdebug_log(149,0) << "Merge with target constraints: " << contact << " [" << DbU::getValueString(constraintMin) << ":" << DbU::getValueString(constraintMax) << "]" << endl; @@ -180,7 +180,7 @@ namespace Katabatic { constraintMin = max ( constraintMin, getUserConstraints().getVMin() ); constraintMax = min ( constraintMax, getUserConstraints().getVMax() ); - cdebug.log(149) << "Merge with user constraints: " << getUserConstraints() << " [" + cdebug_log(149,0) << "Merge with user constraints: " << getUserConstraints() << " [" << DbU::getValueString(constraintMin) << ":" << DbU::getValueString(constraintMax) << "]" << endl; @@ -214,7 +214,7 @@ namespace Katabatic { bool AutoVertical::_canSlacken () const { - cdebug.tabw(149,-1); + cdebug_tabw(149,-1); Interval sourceSide = getAutoSource()->getGCell()->getSide( KbHorizontal ); Interval targetSide = getAutoTarget()->getGCell()->getSide( KbHorizontal ); @@ -225,25 +225,25 @@ namespace Katabatic { sourceConstraints.inflate( 1 ); targetConstraints.inflate( 1 ); - if (not sourceConstraints.contains(sourceSide)) { cdebug.tabw(149,-1); return true; } - if (not targetConstraints.contains(targetSide)) { cdebug.tabw(149,-1); return true; } + if (not sourceConstraints.contains(sourceSide)) { cdebug_tabw(149,-1); return true; } + if (not targetConstraints.contains(targetSide)) { cdebug_tabw(149,-1); return true; } - cdebug.tabw(149,-1); + cdebug_tabw(149,-1); return false; } bool AutoVertical::_slacken ( unsigned int flags ) { - cdebug.log(149,1) << "AutoVertical::_slacken() " << this << endl; + cdebug_log(149,1) << "AutoVertical::_slacken() " << this << endl; if ( not isStrongTerminal() or (not (_flags & (SegGlobal|SegWeakGlobal)) and (getLength() < getPitch()*5)) ) - { cdebug.tabw(149,-1); return false; } + { cdebug_tabw(149,-1); return false; } - cdebug.log(149) << "_flags:" << (_flags & (SegGlobal|SegWeakGlobal)) << endl; - cdebug.log(149) << "test:" << (getLength() < getPitch()*5) << endl; - cdebug.log(149) << "length:" << DbU::getValueString(getLength()) << endl; + cdebug_log(149,0) << "_flags:" << (_flags & (SegGlobal|SegWeakGlobal)) << endl; + cdebug_log(149,0) << "test:" << (getLength() < getPitch()*5) << endl; + cdebug_log(149,0) << "length:" << DbU::getValueString(getLength()) << endl; bool success = false; bool slackened = false; @@ -268,7 +268,7 @@ namespace Katabatic { const vector& doglegs = Session::getDoglegs(); if (doglegs.size() >= 2) { - cdebug.log(149) << "AutoSegment::_slaken(): Source @" << DbU::getValueString(getSourcePosition()) << endl; + cdebug_log(149,0) << "AutoSegment::_slaken(): Source @" << DbU::getValueString(getSourcePosition()) << endl; doglegs[doglegs.size()-2]->_setAxis( getSourcePosition() ); success = true; @@ -299,7 +299,7 @@ namespace Katabatic { const vector& doglegs = Session::getDoglegs(); if (doglegs.size() >= 2) { - cdebug.log(149) << "AutoSegment::_slaken(): Source @" << DbU::getValueString(getTargetPosition()) << endl; + cdebug_log(149,0) << "AutoSegment::_slaken(): Source @" << DbU::getValueString(getTargetPosition()) << endl; doglegs[doglegs.size()-2]->_setAxis( getTargetPosition() ); success = true; } @@ -311,7 +311,7 @@ namespace Katabatic { setFlags ( SegSlackened ); unsetFlags( SegHalfSlackened ); } - cdebug.tabw(149,-1); + cdebug_tabw(149,-1); return success; } @@ -323,7 +323,7 @@ namespace Katabatic { if (_vertical->getX() == axis) return; - cdebug.log(149) << "_setAxis() @X " << DbU::toLambda(axis) << " " << this << endl; + cdebug_log(149,0) << "_setAxis() @X " << DbU::toLambda(axis) << " " << this << endl; _vertical->setX( axis ); invalidate(); @@ -341,7 +341,7 @@ namespace Katabatic { void AutoVertical::updateOrient () { if (_vertical->getTargetY() < _vertical->getSourceY()) { - cdebug.log(145) << "updateOrient() " << this << " (before S/T swap)" << endl; + cdebug_log(145,0) << "updateOrient() " << this << " (before S/T swap)" << endl; _vertical->invert(); unsigned int spinFlags = _flags & SegDepthSpin; @@ -545,7 +545,7 @@ namespace Katabatic { bool AutoVertical::moveURight () { - cdebug.log(149) << "AutoVertical::moveURight()" << endl; + cdebug_log(149,0) << "AutoVertical::moveURight()" << endl; if (not getAutoSource()->isTurn() or not getAutoTarget()->isTurn()) return true; if (not getAutoSource()->getGCell()->getRight()) return true; @@ -600,7 +600,7 @@ namespace Katabatic { DbU::Unit x = begin->getSide( KbHorizontal ).getVMin(); setAxis( x ); - cdebug.log(149) << "Moved to axis: " << DbU::getValueString(x) << endl; + cdebug_log(149,0) << "Moved to axis: " << DbU::getValueString(x) << endl; return true; } @@ -608,7 +608,7 @@ namespace Katabatic { unsigned int AutoVertical::_makeDogleg ( GCell* doglegGCell, unsigned int flags ) { - cdebug.log(149) << "AutoVertical::_makeDogleg(GCell*)" << endl; + cdebug_log(149,0) << "AutoVertical::_makeDogleg(GCell*)" << endl; AutoContact* autoSource = getAutoSource(); AutoContact* autoTarget = getAutoTarget(); @@ -641,16 +641,16 @@ namespace Katabatic { invalidate( KbTopology ); autoTarget->invalidate( KbTopology ); AutoContact* dlContact1 = AutoContactTurn::create( doglegGCell, _vertical->getNet(), contactLayer ); - cdebug.log(149) << dlContact1 << endl; + cdebug_log(149,0) << dlContact1 << endl; AutoContact* dlContact2 = AutoContactTurn::create( doglegGCell, _vertical->getNet(), contactLayer ); - cdebug.log(149) << dlContact2 << endl; + cdebug_log(149,0) << dlContact2 << endl; AutoSegment* segment1 = AutoSegment::create( dlContact1 , dlContact2, KbHorizontal ); - cdebug.log(149) << segment1 << endl; + cdebug_log(149,0) << segment1 << endl; segment1->setLayer( doglegLayer ); segment1->_setAxis( doglegAxis ); segment1->setFlags( SegDogleg|SegSlackened|SegCanonical|SegNotAligned ); - cdebug.log(149) << "New " << dlContact1->base() << "." << endl; - cdebug.log(149) << "New " << dlContact2->base() << "." << endl; + cdebug_log(149,0) << "New " << dlContact1->base() << "." << endl; + cdebug_log(149,0) << "New " << dlContact2->base() << "." << endl; Session::dogleg( segment1 ); targetAttach( dlContact1 ); @@ -682,9 +682,9 @@ namespace Katabatic { segment2->setFlags( SegWeakTerminal1 ); } - cdebug.log(149) << "Session::dogleg[x+1] perpand: " << segment1 << endl; - cdebug.log(149) << "Session::dogleg[x+2] new paral: " << segment2 << endl; - cdebug.log(149) << "Session::dogleg[x+0] original: " << this << endl; + cdebug_log(149,0) << "Session::dogleg[x+1] perpand: " << segment1 << endl; + cdebug_log(149,0) << "Session::dogleg[x+2] new paral: " << segment2 << endl; + cdebug_log(149,0) << "Session::dogleg[x+0] original: " << this << endl; dlContact1->updateCache(); dlContact2->updateCache(); diff --git a/katabatic/src/ChipTools.cpp b/katabatic/src/ChipTools.cpp index 110b13ad..3860b561 100644 --- a/katabatic/src/ChipTools.cpp +++ b/katabatic/src/ChipTools.cpp @@ -74,14 +74,14 @@ namespace { void breakSegments ( GCell* begin, GCell* end, Layer::Mask mask, unsigned int flags ) { for ( GCell* gcell=begin ; gcell != NULL ; ) { - cdebug.log(149) << "Pre-break in " << gcell << endl; + cdebug_log(149,0) << "Pre-break in " << gcell << endl; if ( (flags & KbHorizontal) and (flags & KbGlobalSegment) ) { const vector& hsegments = gcell->getHSegments(); for ( size_t i=0 ; igetLayer()->getMask() & mask) ) continue; - cdebug.log(149) << "Pre-break: " << hsegments[i] << " @" << gcell << endl; + cdebug_log(149,0) << "Pre-break: " << hsegments[i] << " @" << gcell << endl; #ifdef THIS_IS_DISABLED hsegments[i]->makeDogLeg ( gcell, true ); #endif @@ -96,7 +96,7 @@ namespace { for ( size_t i=0 ; igetLayer()->getMask() & mask) ) continue; - cdebug.log(149) << "Pre-break: " << vsegments[i] << " @" << gcell << endl; + cdebug_log(149,0) << "Pre-break: " << vsegments[i] << " @" << gcell << endl; #if THIS_IS_DISABLED vsegments[i]->makeDogLeg ( gcell, true ); #endif @@ -120,7 +120,7 @@ namespace { } for ( size_t i=0 ; igetDirection() << "&" << flags << " " << segments[i] << endl; #if THIS_IS_DISABLED diff --git a/katabatic/src/Configuration.cpp b/katabatic/src/Configuration.cpp index 91d9fc96..5c96346a 100644 --- a/katabatic/src/Configuration.cpp +++ b/katabatic/src/Configuration.cpp @@ -143,7 +143,7 @@ namespace Katabatic { ConfigurationConcrete::~ConfigurationConcrete () { - cdebug.log(145) << "About to delete attribute _rg (RoutingGauge)." << endl; + cdebug_log(145,0) << "About to delete attribute _rg (RoutingGauge)." << endl; _cg->destroy (); _rg->destroy (); } diff --git a/katabatic/src/GCell.cpp b/katabatic/src/GCell.cpp index a296200c..57ebcb0b 100644 --- a/katabatic/src/GCell.cpp +++ b/katabatic/src/GCell.cpp @@ -347,11 +347,11 @@ namespace Katabatic { void GCell::_postCreate () { - cdebug.log(145,1) << "GCell::_postCreate() - " << (void*)this << " " << this << endl; + cdebug_log(145,1) << "GCell::_postCreate() - " << (void*)this << " " << this << endl; ExtensionGo::_postCreate (); - cdebug.tabw(145,-1); + cdebug_tabw(145,-1); } @@ -362,7 +362,7 @@ namespace Katabatic { DbU::Unit trShrink = ( gcellGrid->isOnTopBorder (index) or gcellGrid->isOnRightBorder(index)) ? 0 : _topRightShrink; - cdebug.log(145) << "Gcell::create()" << endl; + cdebug_log(145,0) << "Gcell::create()" << endl; GCell* gcell = new GCell ( gcellGrid, index, box.inflate( 0 ,0 ,-trShrink ,-trShrink ) ); gcell->_postCreate (); @@ -373,7 +373,7 @@ namespace Katabatic { GCell::~GCell () { - cdebug.log(145) << "GCell::~GCell()" << endl; + cdebug_log(145,0) << "GCell::~GCell()" << endl; delete [] _blockages; delete [] _densities; @@ -388,7 +388,7 @@ namespace Katabatic { void GCell::_preDestroy () { - cdebug.log(145) << "GCell::_preDestroy() - " << (void*)this << " " << this << endl; + cdebug_log(145,0) << "GCell::_preDestroy() - " << (void*)this << " " << this << endl; ExtensionGo::_preDestroy (); } @@ -403,14 +403,14 @@ namespace Katabatic { float difference = roundfp ( getDensity() - threshold ); //int difference = floatDifference(getDensity(),threshold,10000); - cdebug.log(149) << "GCell:isAboveDensity() " << threshold << " diff:" << difference << endl; + cdebug_log(149,0) << "GCell:isAboveDensity() " << threshold << " diff:" << difference << endl; return (difference >= 0.0); } bool GCell::areDensityConnex ( GCell* a, GCell* b ) { - cdebug.log(149) << "GCell:areDensityConnex()" << endl; + cdebug_log(149,0) << "GCell:areDensityConnex()" << endl; for ( unsigned int i=1 ; igetDepth() ; i++ ) { // Ugly: hard-coded skip METAL1. //int highDiffa = floatDifference(a->_densities[i],0.6,10000); @@ -418,12 +418,12 @@ namespace Katabatic { float highDiffa = roundfp ( a->_densities[i] - 0.6 ); float highDiffb = roundfp ( b->_densities[i] - 0.6 ); - cdebug.log(149) << "Compare depth " << i + cdebug_log(149,0) << "Compare depth " << i << " " << a->_densities[i] << "," << highDiffa << " & " << b->_densities[i] << "," << highDiffb << endl; if ( (highDiffa > 0) and (highDiffb > 0) ) { - cdebug.log(149) << "GCell::areDensityConnex() Neighboring high saturated GCell (depth:" << i + cdebug_log(149,0) << "GCell::areDensityConnex() Neighboring high saturated GCell (depth:" << i << " " << a->_densities[i] << " & " << b->_densities[i] << ")" << endl; return true; } @@ -649,7 +649,7 @@ namespace Katabatic { // } // } - cdebug.log(149) << "GCell:addBlockage() " << this << " " + cdebug_log(149,0) << "GCell:addBlockage() " << this << " " << depth << ":" << DbU::getValueString(_blockages[depth]) << endl; } @@ -668,7 +668,7 @@ namespace Katabatic { } if (found) { - cdebug.log(149) << "remove " << ac << " from " << this << endl; + cdebug_log(149,0) << "remove " << ac << " from " << this << endl; _contacts.pop_back(); } else { cerr << Bug("%p:%s do not belong to %s." @@ -906,7 +906,7 @@ namespace Katabatic { //for ( size_t i=0 ; i<_depth ; i++ ) { _densities[i] = roundfp ( _densities[i] ); } //_cDensity = roundfp (_cDensity ); - //cdebug.log(149) << "updateDensity: " << this << endl; + //cdebug_log(149,0) << "updateDensity: " << this << endl; checkDensity(); @@ -1020,7 +1020,7 @@ namespace Katabatic { case KbVertical: capacity = getVCapacity(); break; } - cdebug.log(149) << " | hasFreeTrack [" << getIndex() << "] depth:" << depth << " " + cdebug_log(149,0) << " | hasFreeTrack [" << getIndex() << "] depth:" << depth << " " << Session::getRoutingGauge()->getRoutingLayer(depth)->getName() //<< " " << (_densities[depth]*capacity) << " vs. " << capacity << " " << _feedthroughs[depth] << " vs. " << capacity @@ -1122,7 +1122,7 @@ namespace Katabatic { AutoSegment* segment; while ( (_densities[1] > 0.5) and stepDesaturate(1,globalNets,segment,KbForceMove) ) { - cdebug.log(149) << "Moved up: " << segment << endl; + cdebug_log(149,0) << "Moved up: " << segment << endl; } } @@ -1133,7 +1133,7 @@ namespace Katabatic { , unsigned int flags ) { - cdebug.log(9000) << "Deter| GCell::stepDesaturate() [" << getIndex() << "] depth:" << depth << endl; + cdebug_log(9000,0) << "Deter| GCell::stepDesaturate() [" << getIndex() << "] depth:" << depth << endl; updateDensity (); moved = NULL; @@ -1164,7 +1164,7 @@ namespace Katabatic { if ( segmentDepth > depth ) break; globalNets.insert ( (*isegment)->getNet() ); - cdebug.log(9000) << "Deter| Move up " << (*isegment) << endl; + cdebug_log(9000,0) << "Deter| Move up " << (*isegment) << endl; #if THIS_IS_DISABLED (*isegment)->changeDepth ( depth+2, false, false ); @@ -1180,7 +1180,7 @@ namespace Katabatic { bool GCell::stepBalance ( unsigned int depth, GCell::SetIndex& invalidateds ) { - cdebug.log(149) << "stepBalance() - " << this << endl; + cdebug_log(149,0) << "stepBalance() - " << this << endl; updateDensity (); @@ -1225,8 +1225,8 @@ namespace Katabatic { bool GCell::stepNetDesaturate ( unsigned int depth, set& globalNets, GCell::SetIndex& invalidateds ) { - cdebug.log(9000) << "Deter| GCell::stepNetDesaturate() depth:" << depth << endl; - cdebug.log(9000) << "Deter| " << this << endl; + cdebug_log(9000,0) << "Deter| GCell::stepNetDesaturate() depth:" << depth << endl; + cdebug_log(9000,0) << "Deter| " << this << endl; updateDensity (); @@ -1253,7 +1253,7 @@ namespace Katabatic { if ( segmentDepth < depth ) continue; if ( segmentDepth > depth ) break; - cdebug.log(9000) << "Deter| Move up " << (*isegment) << endl; + cdebug_log(9000,0) << "Deter| Move up " << (*isegment) << endl; if ( getGCellGrid()->getKatabatic()->moveUpNetTrunk2(*isegment,globalNets,invalidateds) ) return true; @@ -1389,7 +1389,7 @@ namespace Katabatic { void GCellDensitySet::requeue () { - cdebug.log(149) << "GCellDensitySet::requeue()" << endl; + cdebug_log(149,0) << "GCellDensitySet::requeue()" << endl; std::set::iterator iinserted; GCell::SetIndex::iterator igcell = _requests.begin(); diff --git a/katabatic/src/GCellGrid.cpp b/katabatic/src/GCellGrid.cpp index 61da3aa1..db6fe334 100644 --- a/katabatic/src/GCellGrid.cpp +++ b/katabatic/src/GCellGrid.cpp @@ -73,9 +73,9 @@ namespace Katabatic { _rawSize = _columns * _rows; - cdebug.log(145,1) << "Katabatic GCell Matrix [" << getColumns() << "x" << getRows() << "]" << endl; - cdebug.log(145) << "_xGraduations := " << _xGraduations._print() << endl; - cdebug.log(145) << "_yGraduations := " << _yGraduations._print() << endl; + cdebug_log(145,1) << "Katabatic GCell Matrix [" << getColumns() << "x" << getRows() << "]" << endl; + cdebug_log(145,0) << "_xGraduations := " << _xGraduations._print() << endl; + cdebug_log(145,0) << "_yGraduations := " << _yGraduations._print() << endl; for ( unsigned int row=0 ; row < getRows() ; row++ ) { for ( unsigned int column=0; column::iterator it = _gcells.begin(); vector::iterator end = _gcells.end (); for ( ; it != end ; it++ ) (*it)->destroy (); - cdebug.tabw(145,-1); + cdebug_tabw(145,-1); } diff --git a/katabatic/src/KatabaticEngine.cpp b/katabatic/src/KatabaticEngine.cpp index 310bb667..c60117aa 100644 --- a/katabatic/src/KatabaticEngine.cpp +++ b/katabatic/src/KatabaticEngine.cpp @@ -46,7 +46,7 @@ namespace { #if 0 bool isTopAndBottomConnected ( Segment* segment, set& layers ) { - cdebug.log(145,1) << "* Potential Null Length: " << segment << endl; + cdebug_log(145,1) << "* Potential Null Length: " << segment << endl; Contact* source = dynamic_cast(segment->getSource()); Contact* target = dynamic_cast(segment->getTarget()); @@ -55,7 +55,7 @@ namespace { if (source != NULL) { forEach ( Hook*, ihook, source->getBodyHook()->getSlaveHooks() ) { - cdebug.log(145) << "* Slave: " << (*ihook)->getComponent() << endl; + cdebug_log(145,0) << "* Slave: " << (*ihook)->getComponent() << endl; if ((*ihook)->getComponent() == segment) continue; layers.insert( (*ihook)->getComponent()->getLayer() ); } @@ -63,7 +63,7 @@ namespace { if (target != NULL) { forEach ( Hook*, ihook, target->getBodyHook()->getSlaveHooks() ) { - cdebug.log(145) << "* Slave: " << (*ihook)->getComponent() << endl; + cdebug_log(145,0) << "* Slave: " << (*ihook)->getComponent() << endl; if ((*ihook)->getComponent() == segment) continue; layers.insert( (*ihook)->getComponent()->getLayer() ); } @@ -73,7 +73,7 @@ namespace { if ( (source->getAnchor() != NULL) or (target->getAnchor() != NULL) ) supplemental++; - cdebug.tabw(145,-1); + cdebug_tabw(145,-1); return layers.size()+supplemental > 2; } @@ -179,22 +179,22 @@ namespace Katabatic { for ( unsigned int depth=0 ; depth<8 ; ++depth ) { // West. forEach( GCell*, igcell, _gcellGrid->getGCellsColumn(depth,0,rows-1)) { - cdebug.log(145) << "Setting as West Pad:" << (*igcell) << endl; + cdebug_log(145,0) << "Setting as West Pad:" << (*igcell) << endl; igcell->setUnderIoPad(); } // East. forEach( GCell*, igcell, _gcellGrid->getGCellsColumn(columns-1-depth,0,rows-1)) { - cdebug.log(145) << "Setting as East Pad:" << (*igcell) << endl; + cdebug_log(145,0) << "Setting as East Pad:" << (*igcell) << endl; igcell->setUnderIoPad(); } // South. forEach( GCell*, igcell, _gcellGrid->getGCellsRow(depth,0,columns-1)) { - cdebug.log(145) << "Setting as South Pad:" << (*igcell) << endl; + cdebug_log(145,0) << "Setting as South Pad:" << (*igcell) << endl; igcell->setUnderIoPad(); } // North. forEach( GCell*, igcell, _gcellGrid->getGCellsRow(rows-1-depth,0,columns-1)) { - cdebug.log(145) << "Setting as North Pad:" << (*igcell) << endl; + cdebug_log(145,0) << "Setting as North Pad:" << (*igcell) << endl; igcell->setUnderIoPad(); } } @@ -204,7 +204,7 @@ namespace Katabatic { KatabaticEngine* KatabaticEngine::create ( Cell* cell ) { - cdebug.log(145) << "KatabaticEngine::create() - " << cell << endl; + cdebug_log(145,0) << "KatabaticEngine::create() - " << cell << endl; KatabaticEngine* katabatic = new KatabaticEngine( cell ); @@ -220,7 +220,7 @@ namespace Katabatic { void KatabaticEngine::_preDestroy () { - cdebug.log(145,1) << "Katabatic::_preDestroy ()" << endl; + cdebug_log(145,1) << "Katabatic::_preDestroy ()" << endl; if (getState() < Katabatic::EngineGutted) setState( Katabatic::EnginePreDestroying ); @@ -228,11 +228,11 @@ namespace Katabatic { _gutKatabatic(); _state = EngineGutted; - cdebug.log(145) << "About to delete base class ToolEngine." << endl; + cdebug_log(145,0) << "About to delete base class ToolEngine." << endl; ToolEngine::_preDestroy(); - cdebug.log(145) << "Exiting Katabatic::_preDestroy()." << endl; - cdebug.tabw(145,-1); + cdebug_log(145,0) << "Exiting Katabatic::_preDestroy()." << endl; + cdebug_tabw(145,-1); cmess2 << " - GCells := " << GCell::getAllocateds() << endl; cmess2 << " - AutoContacts := " << AutoContact::getAllocateds() << endl; @@ -247,7 +247,7 @@ namespace Katabatic { unsetFlags( EngineDestroyBaseContact|EngineDestroyBaseSegment ); if (_state == EngineDriving) { - cdebug.log(145,1) << "Saving AutoContacts/AutoSegments." << endl; + cdebug_log(145,1) << "Saving AutoContacts/AutoSegments." << endl; size_t fixedSegments = 0; size_t sameLayerDoglegs = 0; @@ -269,11 +269,11 @@ namespace Katabatic { //_autoContactLut.clear (); - cdebug.tabw(145,-1); + cdebug_tabw(145,-1); } if (_state < EngineGutted ) { - cdebug.log(145) << "Gutting Katabatic." << endl; + cdebug_log(145,0) << "Gutting Katabatic." << endl; _state = EngineGutted; setFlags( EngineDestroyBaseContact ); @@ -426,7 +426,7 @@ namespace Katabatic { void KatabaticEngine::_destroyAutoSegments () { - cdebug.log(145) << "Katabatic::_destroyAutoSegments ()" << endl; + cdebug_log(145,0) << "Katabatic::_destroyAutoSegments ()" << endl; size_t expandeds = 0; @@ -445,7 +445,7 @@ namespace Katabatic { void KatabaticEngine::_destroyAutoContacts () { - cdebug.log(145) << "Katabatic::_destroyAutoContacts ()" << endl; + cdebug_log(145,0) << "Katabatic::_destroyAutoContacts ()" << endl; AutoContactLut::iterator it = _autoContactLut.begin(); AutoContactLut::iterator end = _autoContactLut.end (); @@ -535,7 +535,7 @@ namespace Katabatic { void KatabaticEngine::finalizeLayout () { - cdebug.log(145) << "Katabatic::finalizeLayout()" << endl; + cdebug_log(145,0) << "Katabatic::finalizeLayout()" << endl; if (_state > EngineDriving) return; _state = EngineDriving; @@ -553,8 +553,8 @@ namespace Katabatic { { DebugSession::open( net, 140, 150 ); - cdebug.log(149) << "Katabatic::_alignate( " << net << " )" << endl; - cdebug.tabw(145,1); + cdebug_log(149,0) << "Katabatic::_alignate( " << net << " )" << endl; + cdebug_tabw(145,1); //cmess2 << " - " << getString(net) << endl; @@ -575,33 +575,33 @@ namespace Katabatic { AutoSegment* seedSegment = unexploreds[i]; if (exploredSegments.find(seedSegment->base()) == exploredSegments.end()) { - cdebug.log(145) << "New chunk from: " << seedSegment << endl; + cdebug_log(145,0) << "New chunk from: " << seedSegment << endl; aligneds.push_back( seedSegment ); forEach ( AutoSegment*, collapsed, seedSegment->getAligneds() ) { - cdebug.log(145) << "Aligned: " << *collapsed << endl; + cdebug_log(145,0) << "Aligned: " << *collapsed << endl; aligneds.push_back( *collapsed ); exploredSegments.insert( collapsed->base() ); } - cdebug.tabw(145,1); + cdebug_tabw(145,1); sort( aligneds.begin(), aligneds.end(), AutoSegment::CompareId() ); - cdebug.log(145) << "Seed: " << (void*)aligneds[0]->base() << " " << aligneds[0] << endl; + cdebug_log(145,0) << "Seed: " << (void*)aligneds[0]->base() << " " << aligneds[0] << endl; for ( size_t j=1 ; jbase()) << " " << aligneds[j] << endl; + cdebug_log(145,0) << "Secondary: " << (void*)(aligneds[j]->base()) << " " << aligneds[j] << endl; } - cdebug.log(149) << "Align on " << aligneds[0] + cdebug_log(149,0) << "Align on " << aligneds[0] << " " << DbU::toLambda(aligneds[0]->getAxis()) << endl; aligneds[0]->setAxis( aligneds[0]->getAxis(), KbRealignate ); aligneds.clear(); - cdebug.tabw(145,-1); + cdebug_tabw(145,-1); } } - cdebug.tabw(145,-1); + cdebug_tabw(145,-1); DebugSession::close(); } @@ -611,8 +611,8 @@ namespace Katabatic { { DebugSession::open( net, 140, 150 ); - cdebug.log(149) << "Katabatic::updateNetTopology( " << net << " )" << endl; - cdebug.tabw(145,1); + cdebug_log(149,0) << "Katabatic::updateNetTopology( " << net << " )" << endl; + cdebug_tabw(145,1); vector contacts; forEach ( Component*, icomponent, net->getComponents() ) { @@ -627,7 +627,7 @@ namespace Katabatic { for ( size_t i=0 ; iupdateTopology(); - cdebug.tabw(145,-1); + cdebug_tabw(145,-1); DebugSession::close(); } @@ -636,8 +636,8 @@ namespace Katabatic { { DebugSession::open( net, 140, 150 ); - cdebug.log(149) << "Katabatic::_computeNetTerminals( " << net << " )" << endl; - cdebug.tabw(145,1); + cdebug_log(149,0) << "Katabatic::_computeNetTerminals( " << net << " )" << endl; + cdebug_tabw(145,1); vector segments; forEach ( Segment*, segment, net->getSegments() ) { @@ -646,7 +646,7 @@ namespace Katabatic { if (autoSegment->isInvalidated()) autoSegment->computeTerminal(); } - cdebug.tabw(145,-1); + cdebug_tabw(145,-1); DebugSession::close(); } @@ -656,11 +656,11 @@ namespace Katabatic { { DebugSession::open( net, 140, 150 ); - cdebug.log(145) << "Katabatic::_saveNet() " << net << endl; - cdebug.tabw(145,1); + cdebug_log(145,0) << "Katabatic::_saveNet() " << net << endl; + cdebug_tabw(145,1); #if 0 - cdebug.log(145) << "Deleting zero-length segments." << endl; + cdebug_log(145,0) << "Deleting zero-length segments." << endl; vector nullSegments; set connectedLayers; @@ -674,13 +674,13 @@ namespace Katabatic { } if (Session::lookup(*segment) == NULL) { - cdebug.log(145) << "* Not associated to an AutoSegment: " << *segment << endl; + cdebug_log(145,0) << "* Not associated to an AutoSegment: " << *segment << endl; continue; } if (not isTopAndBottomConnected(*segment,connectedLayers)) { nullSegments.push_back( *segment ); - cdebug.log(145) << "* Null Length: " << *segment << endl; + cdebug_log(145,0) << "* Null Length: " << *segment << endl; } } @@ -703,20 +703,20 @@ namespace Katabatic { swap( source, target ); } - cdebug.log(145) << "Deleting: " << nullSegments[i] << endl; + cdebug_log(145,0) << "Deleting: " << nullSegments[i] << endl; if (isTopAndBottomConnected(nullSegments[i],connectedLayers)) { - cdebug.log(145) << "Deletion cancelled, no longer top or bottom connected." << endl; + cdebug_log(145,0) << "Deletion cancelled, no longer top or bottom connected." << endl; continue; } - cdebug.log(145) << "* Source: " << (void*)source << " " << source << endl; - cdebug.log(145) << "* Target: " << (void*)target << " " << target << endl; + cdebug_log(145,0) << "* Source: " << (void*)source << " " << source << endl; + cdebug_log(145,0) << "* Target: " << (void*)target << " " << target << endl; const Layer* layer = DataBase::getDB()->getTechnology() ->getViaBetween( *connectedLayers.begin(), *connectedLayers.rbegin() ); - cdebug.log(145) << *connectedLayers.begin() << " + " << *connectedLayers.rbegin() << endl; - cdebug.log(145) << "* Shrink layer: " << layer << endl; + cdebug_log(145,0) << *connectedLayers.begin() << " + " << *connectedLayers.rbegin() << endl; + cdebug_log(145,0) << "* Shrink layer: " << layer << endl; if ( !layer ) { cerr << Error("NULL contact layer while deleting %s." ,getString(nullSegments[i]).c_str()) << endl; @@ -730,7 +730,7 @@ namespace Katabatic { while ( masterHook->getNextHook() != source->getBodyHook() ) { slaveHooks.push_back( masterHook->getNextHook() ); - cdebug.log(145) << "* detach: " + cdebug_log(145,0) << "* detach: " << (void*)masterHook->getNextHook()->getComponent() << " " << masterHook->getNextHook()->getComponent() << endl; masterHook->getNextHook()->detach(); @@ -742,34 +742,34 @@ namespace Katabatic { slaveHooks[j]->attach( masterHook ); } - cdebug.log(145) << (void*)target << " " << target << " setLayer: " << layer << endl; + cdebug_log(145,0) << (void*)target << " " << target << " setLayer: " << layer << endl; target->setLayer( layer ); } unsetFlags( EngineDestroyBaseSegment ); #endif - cdebug.tabw(145,-1); + cdebug_tabw(145,-1); DebugSession::close(); } void KatabaticEngine::_check ( Net* net ) const { - cdebug.log(149,1) << "Checking " << net << endl; + cdebug_log(149,1) << "Checking " << net << endl; forEach ( Segment*, isegment, net->getComponents().getSubSet() ) { AutoSegment* autoSegment = _lookup ( *isegment ); - cdebug.log(149) << autoSegment << endl; + cdebug_log(149,0) << autoSegment << endl; if ( autoSegment ) { AutoContact* autoContact = autoSegment->getAutoSource(); - cdebug.log(149) << autoContact << endl; + cdebug_log(149,0) << autoContact << endl; if ( autoContact ) autoContact->checkTopology (); autoContact = autoSegment->getAutoTarget(); - cdebug.log(149) << autoContact << endl; + cdebug_log(149,0) << autoContact << endl; if ( autoContact ) autoContact->checkTopology (); } } - cdebug.tabw(149,-1); + cdebug_tabw(149,-1); } diff --git a/katabatic/src/LayerAssign.cpp b/katabatic/src/LayerAssign.cpp index e9d5a3c4..fa0039cc 100644 --- a/katabatic/src/LayerAssign.cpp +++ b/katabatic/src/LayerAssign.cpp @@ -70,11 +70,11 @@ namespace Katabatic { std::set::const_iterator igcell = queue.getGCells().begin(); size_t i = 0; for ( ; igcell!=queue.getGCells().end() ; ++igcell, ++i ) { - cdebug.log(149) << "_desaturate: [" << depth << "]:" + cdebug_log(149,0) << "_desaturate: [" << depth << "]:" << (*igcell)->getDensity(depth) << " " << *igcell << endl; if (not (*igcell)->isSaturated(depth)) { - cdebug.log(149) << "STOP desaturated: @" << i << " " << *igcell << endl; + cdebug_log(149,0) << "STOP desaturated: @" << i << " " << *igcell << endl; for ( ; igcell!=queue.getGCells().end() ; ++igcell ) { if ( (*igcell)->isSaturated( depth ) ) { cparanoid << "[ERROR] Still saturated: @" << i << " " << *igcell << endl; @@ -100,8 +100,8 @@ namespace Katabatic { { DebugSession::open ( net, 140, 150 ); - cdebug.log(149) << "Katabatic::_layerAssignByLength( " << net << " )" << endl; - cdebug.tabw(145,1); + cdebug_log(149,0) << "Katabatic::_layerAssignByLength( " << net << " )" << endl; + cdebug_tabw(145,1); bool isGlobal = false; set globalContacts; @@ -120,7 +120,7 @@ namespace Katabatic { } } - cdebug.tabw(145,-1); + cdebug_tabw(145,-1); DebugSession::close(); } @@ -142,8 +142,8 @@ namespace Katabatic { { DebugSession::open( net, 140, 150 ); - cdebug.log(149) << "Katabatic::_layerAssignByTrunk ( " << net << " )" << endl; - cdebug.tabw(145,1); + cdebug_log(149,0) << "Katabatic::_layerAssignByTrunk ( " << net << " )" << endl; + cdebug_tabw(145,1); bool isGlobal = false; unsigned long netGlobal = 0; @@ -169,7 +169,7 @@ namespace Katabatic { if ( autoSegment and not autoSegment->isStrongTerminal() ) { netGlobal++; - cdebug.log(145) << "Migrate to M4/M5: " << autoSegment << endl; + cdebug_log(145,0) << "Migrate to M4/M5: " << autoSegment << endl; if (autoSegment->isHorizontal()) autoSegment->setLayer( Session::getRoutingLayer(3) ); if (autoSegment->isVertical ()) autoSegment->setLayer( Session::getRoutingLayer(4) ); } @@ -179,7 +179,7 @@ namespace Katabatic { total += netTotal; global += netGlobal; - cdebug.tabw(145,-1); + cdebug_tabw(145,-1); DebugSession::close(); } @@ -202,7 +202,7 @@ namespace Katabatic { Net* net = seed->getNet(); DebugSession::open( net, 140, 150 ); - cdebug.log(9000) << "Deter| Move left: " << seed << endl; + cdebug_log(9000,0) << "Deter| Move left: " << seed << endl; seed->moveULeft(); globalNets.insert( net ); @@ -239,7 +239,7 @@ namespace Katabatic { Net* net = seed->getNet(); DebugSession::open( net, 140, 150 ); - cdebug.log(9000) << "Deter| Move right: " << seed << endl; + cdebug_log(9000,0) << "Deter| Move right: " << seed << endl; seed->moveURight(); globalNets.insert( net ); @@ -277,14 +277,14 @@ namespace Katabatic { unsigned int seedDepth = Session::getRoutingGauge()->getLayerDepth(seed->getLayer()); DebugSession::open( net, 140, 150 ); - cdebug.log(9000) << "Deter| moveUpNetTrunk() depth:" << seedDepth << " " << seed << endl; + cdebug_log(9000,0) << "Deter| moveUpNetTrunk() depth:" << seedDepth << " " << seed << endl; if (not seed->canMoveUp( 1.0, KbPropagate|KbAllowTerminal|KbNoCheckLayer) ) { - cdebug.log(9000) << "Deter| Reject seed move up, cannot move up." << endl; + cdebug_log(9000,0) << "Deter| Reject seed move up, cannot move up." << endl; DebugSession::close(); return false; } - cdebug.tabw(149,1); + cdebug_tabw(149,1); globalNets.insert( net ); @@ -328,7 +328,7 @@ namespace Katabatic { } for ( size_t i=0 ; igetLayerDepth( globals[i]->getLayer() ); globals[i]->changeDepth( depth+2, KbWithNeighbors ); @@ -340,7 +340,7 @@ namespace Katabatic { } for ( size_t i=0 ; igetLayerDepth(locals[i]->getLayer()); if (depth > seedDepth+1) continue; @@ -348,7 +348,7 @@ namespace Katabatic { if (locals[i]->canPivotUp(2.0,KbPropagate|KbNoCheckLayer)) { locals[i]->changeDepth( depth+2, KbWithNeighbors ); - //cdebug.log(9000) << "Deter| Trunk move up L:" << locals[i] << endl; + //cdebug_log(9000,0) << "Deter| Trunk move up L:" << locals[i] << endl; vector gcells; locals[i]->getGCells( gcells ); @@ -358,7 +358,7 @@ namespace Katabatic { } } - cdebug.tabw(149,-1); + cdebug_tabw(149,-1); DebugSession::close(); return true; @@ -371,14 +371,14 @@ namespace Katabatic { unsigned int seedDepth = Session::getRoutingGauge()->getLayerDepth(seed->getLayer()); DebugSession::open( net, 140, 150 ); - cdebug.log(9000) << "Deter| moveUpNetTrunk() depth:" << seedDepth << " " << seed << endl; + cdebug_log(9000,0) << "Deter| moveUpNetTrunk() depth:" << seedDepth << " " << seed << endl; if (not seed->canMoveUp( 1.0, KbPropagate|KbAllowTerminal|KbNoCheckLayer) ) { - cdebug.log(9000) << "Deter| Reject seed move up, cannot move up." << endl; + cdebug_log(9000,0) << "Deter| Reject seed move up, cannot move up." << endl; DebugSession::close(); return false; } - cdebug.tabw(149,1); + cdebug_tabw(149,1); globalNets.insert( net ); @@ -388,7 +388,7 @@ namespace Katabatic { forEach ( Segment*, isegment, net->getSegments() ) { AutoSegment* autoSegment = Session::lookup( *isegment ); - //cdebug.log(9000) << "Deter| Loop " << autoSegment << endl; + //cdebug_log(9000,0) << "Deter| Loop " << autoSegment << endl; if (not autoSegment) continue; if (autoSegment->isLocal()) { @@ -407,7 +407,7 @@ namespace Katabatic { sort( locals.begin(), locals.end(), AutoSegment::CompareId() ); for ( size_t i=0 ; igetLayerDepth( globals[i]->getLayer() ); if (depth > seedDepth+1) continue; @@ -417,7 +417,7 @@ namespace Katabatic { if ( globals[i]->canMoveUp(1.0,KbPropagate|KbAllowTerminal|KbNoCheckLayer) ) { globals[i]->changeDepth( depth+2, KbWithNeighbors ); - //cdebug.log(9000) << "Deter| Trunk move up G:" << globals[i] << endl; + //cdebug_log(9000,0) << "Deter| Trunk move up G:" << globals[i] << endl; vector gcells; globals[i]->getGCells( gcells ); @@ -425,12 +425,12 @@ namespace Katabatic { invalidateds.insert( gcells[j] ); } } else { - //cdebug.log(9000) << "Deter| Reject Trunk move up G:" << globals[i] << endl; + //cdebug_log(9000,0) << "Deter| Reject Trunk move up G:" << globals[i] << endl; } } for ( size_t i=0 ; igetLayerDepth(locals[i]->getLayer()); if (depth > seedDepth+1) continue; @@ -438,7 +438,7 @@ namespace Katabatic { if (locals[i]->canPivotUp(2.0,KbPropagate|KbNoCheckLayer)) { locals[i]->changeDepth( depth+2, KbWithNeighbors ); - //cdebug.log(9000) << "Deter| Trunk move up L:" << locals[i] << endl; + //cdebug_log(9000,0) << "Deter| Trunk move up L:" << locals[i] << endl; vector gcells; locals[i]->getGCells( gcells ); @@ -448,7 +448,7 @@ namespace Katabatic { } } - cdebug.tabw(149,-1); + cdebug_tabw(149,-1); DebugSession::close(); return true; @@ -475,11 +475,11 @@ namespace Katabatic { std::set::const_iterator igcell = queue.getGCells().begin(); size_t i = 0; for ( ; igcell!=queue.getGCells().end() ; ++igcell, ++i ) { - cdebug.log(149) << "_balance: [" << depth << "]:" + cdebug_log(149,0) << "_balance: [" << depth << "]:" << (*igcell)->getDensity(depth) << " " << *igcell << endl; if (not (*igcell)->isSaturated(depth)) { - cdebug.log(149) << "STOP desaturated: @" << i << " " << *igcell << endl; + cdebug_log(149,0) << "STOP desaturated: @" << i << " " << *igcell << endl; for ( ; igcell!=queue.getGCells().end() ; ++igcell ) { if ((*igcell)->isSaturated(depth)) { cparanoid << Error( "Still saturated: @%d %s", i, getString(*igcell).c_str() ) << endl; @@ -508,7 +508,7 @@ namespace Katabatic { void KatabaticEngine::balanceGlobalDensity () { - cdebug.log(9000) << "Deter| Balance Global Density" << endl; + cdebug_log(9000,0) << "Deter| Balance Global Density" << endl; //_balanceGlobalDensity( 1 ); // metal2 //_balanceGlobalDensity( 2 ); // metal3 @@ -554,7 +554,7 @@ namespace Katabatic { void KatabaticEngine::layerAssign ( unsigned int method ) { - cdebug.log(9000) << "Deter| Layer Assignment" << endl; + cdebug_log(9000,0) << "Deter| Layer Assignment" << endl; set globalNets; diff --git a/katabatic/src/LoadGrByNet.cpp b/katabatic/src/LoadGrByNet.cpp index da45b2dc..b6bdbed5 100644 --- a/katabatic/src/LoadGrByNet.cpp +++ b/katabatic/src/LoadGrByNet.cpp @@ -498,7 +498,7 @@ namespace { flags |= (height < 3*Session::getPitch(anchorDepth)) ? VSmall : 0; flags |= ((width == 0) && (height == 0)) ? Punctual : 0; - cdebug.log(145) << "::checkRoutingPadSize(): pitch[" << anchorDepth << "]:" + cdebug_log(145,0) << "::checkRoutingPadSize(): pitch[" << anchorDepth << "]:" << DbU::toLambda(Session::getPitch(anchorDepth)) << " " << ((flags & HSmall) ? "HSmall " : " ") << ((flags & VSmall) ? "VSmall " : " ") @@ -623,7 +623,7 @@ namespace { inline void ForkStack::push ( Hook* from, AutoContact* contact ) { - cdebug.log(145) << " Stacking " << from << " + " << contact << endl; + cdebug_log(145,0) << " Stacking " << from << " + " << contact << endl; _stack.push_back( Element(from,contact) ); } @@ -819,15 +819,15 @@ namespace { { _connexity.connexity = 0; - cdebug.log(145,1) << "GCellTopology::GCellTopology()" << endl; - cdebug.log(145) << getString(fromHook) << endl; - cdebug.log(145) << sourceContact << endl; + cdebug_log(145,1) << "GCellTopology::GCellTopology()" << endl; + cdebug_log(145,0) << getString(fromHook) << endl; + cdebug_log(145,0) << sourceContact << endl; Segment* fromSegment = static_cast( _fromHook->getComponent() ); _net = fromSegment->getNet(); forEach ( Hook*, hook, fromHook->getHooks() ) { - cdebug.log(145) << "Topology [" << _connexity.connexity << "] = " + cdebug_log(145,0) << "Topology [" << _connexity.connexity << "] = " << "[" << _connexity.fields.globals << "+" << _connexity.fields.M1 << "+" << _connexity.fields.M2 @@ -852,7 +852,7 @@ namespace { Component* anchor = hook->getComponent(); RoutingPad* rp = dynamic_cast( anchor ); - cdebug.log(145) << "| Looking for Anchor:" << anchor << " rp:" << rp << endl; + cdebug_log(145,0) << "| Looking for Anchor:" << anchor << " rp:" << rp << endl; if (anchor) { Contact* contact = dynamic_cast( anchor ); @@ -861,8 +861,8 @@ namespace { or Session::getKatabatic()->isGMetal ( anchor->getLayer() )) ) { // Global routing articulation contact are in not ? GCell* gcell = gcellGrid->getGCell( contact->getCenter() ); - cdebug.log(145) << "* Global Routing Articulation: " << contact << endl; - cdebug.log(145) << "| " << gcell << endl; + cdebug_log(145,0) << "* Global Routing Articulation: " << contact << endl; + cdebug_log(145,0) << "| " << gcell << endl; if (gcell == NULL) throw Error( invalidGCell ); if (_gcell == NULL) _gcell = gcell; @@ -891,16 +891,16 @@ namespace { if (dynamic_cast(rp->getOccurrence().getEntity())) _connexity.fields.Pin++; } - cdebug.log(145) << "| Component to connect: " << anchor << endl; + cdebug_log(145,0) << "| Component to connect: " << anchor << endl; _routingPads.push_back( rp ); } } } } - cdebug.log(145) << "east: " << _east << endl; - cdebug.log(145) << "west: " << _west << endl; - cdebug.log(145) << "north:" << _north << endl; - cdebug.log(145) << "south:" << _south << endl; + cdebug_log(145,0) << "east: " << _east << endl; + cdebug_log(145,0) << "west: " << _west << endl; + cdebug_log(145,0) << "north:" << _north << endl; + cdebug_log(145,0) << "south:" << _south << endl; if (_connexity.fields.globals == 1) { if ( _north or _south ) _topology |= Global_Vertical_End; @@ -913,7 +913,7 @@ namespace { _topology |= Global_Fork; } - cdebug.tabw(145,-1); + cdebug_tabw(145,-1); if (_gcell == NULL) throw Error( missingGCell ); } @@ -921,7 +921,7 @@ namespace { void GCellTopology::construct ( ForkStack& forks ) { - cdebug.log(145,1) << "GCellTopology::construct() [" << _connexity.connexity << "] in " << _gcell << endl; + cdebug_log(145,1) << "GCellTopology::construct() [" << _connexity.connexity << "] in " << _gcell << endl; _southWestContact = NULL; _northEastContact = NULL; @@ -1020,16 +1020,16 @@ namespace { ); globalSegment->setFlags( (_degree == 2) ? SegBipoint : 0 ); - cdebug.log(145) << "Create global segment: " << globalSegment << endl; + cdebug_log(145,0) << "Create global segment: " << globalSegment << endl; #if THIS_IS_DEPRECATED if ( globalSegment->isHorizontal() and ( (Session::getRoutingGauge()->getLayerDepth(_sourceContact->getLayer()->getBottom()) > 1) or (Session::getRoutingGauge()->getLayerDepth(targetContact ->getLayer()->getBottom()) > 1)) ) { globalSegment->setLayer ( Session::getRoutingLayer(3) ); - cdebug.log(145) << "Source:" << _sourceContact << endl; - cdebug.log(145) << "Target:" << targetContact << endl; - cdebug.log(145) << "Moving up global:" << globalSegment << endl; + cdebug_log(145,0) << "Source:" << _sourceContact << endl; + cdebug_log(145,0) << "Target:" << targetContact << endl; + cdebug_log(145,0) << "Moving up global:" << globalSegment << endl; } #endif // HARDCODED VALUE. @@ -1037,7 +1037,7 @@ namespace { _toFixSegments.push_back( globalSegment ); if (_connexity.fields.globals < 2) { - cdebug.tabw(145,-1); + cdebug_tabw(145,-1); return; } } else @@ -1046,30 +1046,30 @@ namespace { if ( _east and (_fromHook != _east) ) { Hook* toHook = getSegmentOppositeHook( _east ); - cdebug.log(145) << "Pushing East (to) " << getString(toHook) << endl; - cdebug.log(145) << "Pushing East (from) " << _northEastContact << endl; + cdebug_log(145,0) << "Pushing East (to) " << getString(toHook) << endl; + cdebug_log(145,0) << "Pushing East (from) " << _northEastContact << endl; forks.push( toHook, _northEastContact ); } if ( _west and (_fromHook != _west) ) { Hook* toHook = getSegmentOppositeHook( _west ); - cdebug.log(145) << "Pushing West (to) " << getString(toHook) << endl; - cdebug.log(145) << "Pushing West (from) " << _southWestContact << endl; + cdebug_log(145,0) << "Pushing West (to) " << getString(toHook) << endl; + cdebug_log(145,0) << "Pushing West (from) " << _southWestContact << endl; forks.push( toHook, _southWestContact ); } if ( _north and (_fromHook != _north) ) { Hook* toHook = getSegmentOppositeHook( _north ); - cdebug.log(145) << "Pushing North (to) " << getString(toHook) << endl; - cdebug.log(145) << "Pushing North (from) " << _northEastContact << endl; + cdebug_log(145,0) << "Pushing North (to) " << getString(toHook) << endl; + cdebug_log(145,0) << "Pushing North (from) " << _northEastContact << endl; forks.push( toHook, _northEastContact ); } if ( _south and (_fromHook != _south) ) { Hook* toHook = getSegmentOppositeHook( _south ); - cdebug.log(145) << "Pushing South (to) " << getString(toHook) << endl; - cdebug.log(145) << "Pushing South (from) " << _southWestContact << endl; + cdebug_log(145,0) << "Pushing South (to) " << getString(toHook) << endl; + cdebug_log(145,0) << "Pushing South (from) " << _southWestContact << endl; forks.push( toHook, _southWestContact ); } - cdebug.tabw(145,-1); + cdebug_tabw(145,-1); } @@ -1080,8 +1080,8 @@ namespace { , unsigned int flags ) { - cdebug.log(145,1) << "doRp_AutoContacts()" << endl; - cdebug.log(145) << rp << endl; + cdebug_log(145,1) << "doRp_AutoContacts()" << endl; + cdebug_log(145,0) << rp << endl; source = target = NULL; @@ -1158,14 +1158,14 @@ namespace { ); } - cdebug.tabw(145,-1); + cdebug_tabw(145,-1); return; } AutoContact* GCellTopology::doRp_Access ( GCell* gcell, Component* rp, unsigned int flags ) { - cdebug.log(145,1) << "doRp_Access() - flags:" << flags << endl; + cdebug_log(145,1) << "doRp_Access() - flags:" << flags << endl; AutoContact* rpContactSource; AutoContact* rpContactTarget; @@ -1190,7 +1190,7 @@ namespace { } } - cdebug.tabw(145,-1); + cdebug_tabw(145,-1); return rpContactSource; } @@ -1198,8 +1198,8 @@ namespace { AutoContact* GCellTopology::doRp_AccessPad ( RoutingPad* rp, unsigned int flags ) { - cdebug.log(145,1) << "doRp_AccessPad()" << endl; - cdebug.log(145) << rp << endl; + cdebug_log(145,1) << "doRp_AccessPad()" << endl; + cdebug_log(145,0) << rp << endl; // Hardcoded: H access is METAL2 (depth=1), V access is METAL3 (depth=2). size_t accessDepth = (flags & HAccess) ? 1 : 2 ; @@ -1281,7 +1281,7 @@ namespace { , Session::getWireWidth(depth) ); } - cdebug.log(145) << "Pad strap: " << anchor << endl; + cdebug_log(145,0) << "Pad strap: " << anchor << endl; source = target; } } else { @@ -1324,7 +1324,7 @@ namespace { , Session::getWireWidth(depth) ); } - cdebug.log(145) << "Pad strap: " << anchor << endl; + cdebug_log(145,0) << "Pad strap: " << anchor << endl; source = target; } } @@ -1338,14 +1338,14 @@ namespace { , Session::getWireWidth(accessDepth) , Session::getWireWidth(accessDepth) ); - cdebug.tabw(145,-1); + cdebug_tabw(145,-1); return autoSource; } void GCellTopology::doRp_StairCaseH ( GCell* gcell, Component* rp1, Component* rp2 ) { - cdebug.log(145) << "doRp_StairCaseH()" << endl; + cdebug_log(145,0) << "doRp_StairCaseH()" << endl; if (rp1->getCenter().getX() > rp2->getCenter().getX()) swap( rp1, rp2 ); @@ -1359,7 +1359,7 @@ namespace { doRp_AutoContacts( gcell, rp2, rp2ContactSource, rp2ContactTarget, DoSourceContact ); if (rp1ContactTarget->getY() == rp2ContactSource->getY()) { - cdebug.log(145) << "Aligned horizontal routing pads : straight wire" << endl; + cdebug_log(145,0) << "Aligned horizontal routing pads : straight wire" << endl; viaLayer = rp1->getLayer(); AutoSegment::create( rp1ContactTarget, rp2ContactSource, KbHorizontal ); @@ -1379,7 +1379,7 @@ namespace { void GCellTopology::doRp_StairCaseV ( GCell* gcell, Component* rp1, Component* rp2 ) { - cdebug.log(145) << "doRp_StairCaseV()" << endl; + cdebug_log(145,0) << "doRp_StairCaseV()" << endl; if (rp1->getCenter().getY() > rp2->getCenter().getY()) swap( rp1, rp2 ); @@ -1393,7 +1393,7 @@ namespace { doRp_AutoContacts( gcell, rp2, rp2ContactSource, rp2ContactTarget, DoSourceContact ); if (rp1ContactTarget->getX() == rp2ContactSource->getX()) { - cdebug.log(145) << "Aligned vertical routing pads : straight wire" << endl; + cdebug_log(145,0) << "Aligned vertical routing pads : straight wire" << endl; viaLayer = rp1->getLayer(); AutoSegment::create( rp1ContactTarget, rp2ContactSource, KbVertical ); @@ -1413,7 +1413,7 @@ namespace { void GCellTopology::_do_xG () { - cdebug.log(145,1) << "_do_xG()" << endl; + cdebug_log(145,1) << "_do_xG()" << endl; if (_connexity.fields.globals == 2) { _southWestContact @@ -1440,14 +1440,14 @@ namespace { AutoSegment::create( _southWestContact, turn, KbHorizontal ); AutoSegment::create( turn, _northEastContact, KbVertical ); } - cdebug.tabw(145,-1); + cdebug_tabw(145,-1); } void GCellTopology::_do_xG_1Pad () { - cdebug.log(145,1) << "_do_xG_1Pad() [Managed Configuration - Optimized] " << _topology << endl; - cdebug.log(145) << "_connexity.globals:" << _connexity.fields.globals << endl; + cdebug_log(145,1) << "_do_xG_1Pad() [Managed Configuration - Optimized] " << _topology << endl; + cdebug_log(145,0) << "_connexity.globals:" << _connexity.fields.globals << endl; unsigned int flags = NoFlags; bool eastPad = false; @@ -1468,7 +1468,7 @@ namespace { , getString(padInstance).c_str() ) << endl; break; } - cdebug.log(145) << "eastPad:" << eastPad << ", " + cdebug_log(145,0) << "eastPad:" << eastPad << ", " << "westPad:" << westPad << ", " << "northPad:" << northPad << ", " << "southPad:" << southPad @@ -1489,7 +1489,7 @@ namespace { // if (northPad or eastPad) { // _southWestContact = _northEastContact = source; - // cdebug.tabw(145,-1); + // cdebug_tabw(145,-1); // return; // } @@ -1502,7 +1502,7 @@ namespace { = AutoContactTurn::create( _gcell, _net, Session::getContactLayer(1) ); AutoSegment::create( source, turn, KbHorizontal ); AutoSegment::create( turn, _northEastContact, KbVertical ); - cdebug.tabw(145,-1); + cdebug_tabw(145,-1); return; } else if ( (southPad and (_north != NULL)) or (northPad and (_south != NULL)) ) { @@ -1511,7 +1511,7 @@ namespace { = AutoContactTurn::create( _gcell, _net, Session::getContactLayer(1) ); AutoSegment::create( source, turn, KbVertical ); AutoSegment::create( turn, _northEastContact, KbHorizontal ); - cdebug.tabw(145,-1); + cdebug_tabw(145,-1); return; } } @@ -1544,13 +1544,13 @@ namespace { } --_connexity.fields.globals; - cdebug.tabw(145,-1); + cdebug_tabw(145,-1); } void GCellTopology::_do_1G_1PinM2 () { - cdebug.log(145,1) << "_do_1G_1PinM2() [Managed Configuration - Optimized] " << _topology << endl; + cdebug_log(145,1) << "_do_1G_1PinM2() [Managed Configuration - Optimized] " << _topology << endl; AutoContact* rpContact = doRp_Access( _gcell, _routingPads[0], NoFlags ); AutoContact* turn1 = AutoContactTurn::create( _gcell, _net, Session::getContactLayer(1) ); @@ -1563,13 +1563,13 @@ namespace { } _southWestContact = _northEastContact = turn1; - cdebug.tabw(145,-1); + cdebug_tabw(145,-1); } void GCellTopology::_do_1G_1M1 () { - cdebug.log(145,1) << "_do_1G_1M1() [Managed Configuration - Optimized] " << _topology << endl; + cdebug_log(145,1) << "_do_1G_1M1() [Managed Configuration - Optimized] " << _topology << endl; unsigned int flags = NoFlags; if (_east ) { flags |= HAccess; } @@ -1579,13 +1579,13 @@ namespace { _southWestContact = _northEastContact = doRp_Access( _gcell, _routingPads[0], flags ); - cdebug.tabw(145,-1); + cdebug_tabw(145,-1); } void GCellTopology::_do_1G_xM1 () { - cdebug.log(145,1) << "_do_1G_" << _connexity.fields.M1 << "M1() [Managed Configuration]" << endl; + cdebug_log(145,1) << "_do_1G_" << _connexity.fields.M1 << "M1() [Managed Configuration]" << endl; sort( _routingPads.begin(), _routingPads.end(), SortRpByX(NoFlags) ); // increasing X. for ( unsigned int i=1 ; i<_routingPads.size() ; ++i ) { @@ -1600,10 +1600,10 @@ namespace { else { globalRp = _routingPads[0]; - cdebug.log(145) << "| Initial N/S Global RP: " << globalRp << endl; + cdebug_log(145,0) << "| Initial N/S Global RP: " << globalRp << endl; for ( unsigned int i=1 ; i<_routingPads.size() ; ++i ) { if (_routingPads[i]->getBoundingBox().getHeight() > globalRp->getBoundingBox().getHeight()) { - cdebug.log(145) << "| Better RP: " << globalRp << endl; + cdebug_log(145,0) << "| Better RP: " << globalRp << endl; globalRp = _routingPads[i]; } } @@ -1619,13 +1619,13 @@ namespace { _northEastContact = _southWestContact = globalContact; - cdebug.tabw(145,-1); + cdebug_tabw(145,-1); } void GCellTopology::_do_xG_1M1_1M2 () { - cdebug.log(145,1) << "_do_xG_1M1_1M2() [Managed Configuration]" << endl; + cdebug_log(145,1) << "_do_xG_1M1_1M2() [Managed Configuration]" << endl; Component* rpL1; Component* rpL2; @@ -1636,8 +1636,8 @@ namespace { rpL1 = _routingPads[1]; rpL2 = _routingPads[0]; } - cdebug.log(145) << "rpL1 := " << rpL1 << endl; - cdebug.log(145) << "rpL2 := " << rpL2 << endl; + cdebug_log(145,0) << "rpL1 := " << rpL1 << endl; + cdebug_log(145,0) << "rpL2 := " << rpL2 << endl; AutoContact* rpL1ContactSource = NULL; AutoContact* rpL1ContactTarget = NULL; @@ -1681,20 +1681,20 @@ namespace { } } - cdebug.tabw(145,-1); + cdebug_tabw(145,-1); } void GCellTopology::_do_xG_xM1_xM3 () { - cdebug.log(145,1) << "_do_xG_" << _connexity.fields.M1 + cdebug_log(145,1) << "_do_xG_" << _connexity.fields.M1 << "M1_" << _connexity.fields.M3 << "M3() [G:" << _connexity.fields.globals << " Managed Configuration]" << endl; - cdebug.log(145) << "_connexity: " << _connexity.connexity << endl; - cdebug.log(145) << "_north: " << _north << endl; - cdebug.log(145) << "_south: " << _south << endl; - cdebug.log(145) << "_east: " << _east << endl; - cdebug.log(145) << "_west: " << _west << endl; + cdebug_log(145,0) << "_connexity: " << _connexity.connexity << endl; + cdebug_log(145,0) << "_north: " << _north << endl; + cdebug_log(145,0) << "_south: " << _south << endl; + cdebug_log(145,0) << "_east: " << _east << endl; + cdebug_log(145,0) << "_west: " << _west << endl; Component* rpM3 = NULL; if (_routingPads[0]->getLayer() == Session::getRoutingLayer(2)) @@ -1738,11 +1738,11 @@ namespace { } else { // All RoutingPad are M1. Component* southWestRp = _routingPads[0]; - cdebug.log(145) << "| Initial S-W Global RP: " << southWestRp << endl; + cdebug_log(145,0) << "| Initial S-W Global RP: " << southWestRp << endl; for ( unsigned int i=1 ; i<_routingPads.size() ; ++i ) { if (southWestRp->getBoundingBox().getHeight() >= 4*Session::getPitch(1)) break; if (_routingPads[i]->getBoundingBox().getHeight() > southWestRp->getBoundingBox().getHeight()) { - cdebug.log(145) << "| Better RP: " << southWestRp << endl; + cdebug_log(145,0) << "| Better RP: " << southWestRp << endl; southWestRp = _routingPads[i]; } } @@ -1760,14 +1760,14 @@ namespace { } Component* northEastRp = _routingPads[_routingPads.size()-1]; - cdebug.log(145) << "| Initial N-E Global RP: " << northEastRp << endl; + cdebug_log(145,0) << "| Initial N-E Global RP: " << northEastRp << endl; if (_routingPads.size() > 1) { for ( unsigned int i=_routingPads.size()-1; i != 0 ; ) { i -= 1; if (northEastRp->getBoundingBox().getHeight() >= 4*Session::getPitch(1)) break; if (_routingPads[i]->getBoundingBox().getHeight() > northEastRp->getBoundingBox().getHeight()) { - cdebug.log(145) << "| Better RP: " << northEastRp << endl; + cdebug_log(145,0) << "| Better RP: " << northEastRp << endl; northEastRp = _routingPads[i]; } } @@ -1786,16 +1786,16 @@ namespace { } } - cdebug.tabw(145,-1); + cdebug_tabw(145,-1); } void GCellTopology::_do_4G_1M2 () { - cdebug.log(145,1) << "_do_4G_1M2() [Managed Configuration]" << endl; + cdebug_log(145,1) << "_do_4G_1M2() [Managed Configuration]" << endl; Component* rpL2 = _routingPads[0]; - cdebug.log(145) << "rpL2 := " << rpL2 << endl; + cdebug_log(145,0) << "rpL2 := " << rpL2 << endl; AutoContact* rpL2ContactSource = NULL; AutoContact* rpL2ContactTarget = NULL; @@ -1808,12 +1808,12 @@ namespace { AutoSegment::create( _southWestContact, rpL2ContactSource, KbHorizontal ); AutoSegment::create( rpL2ContactTarget, _northEastContact, KbHorizontal ); - cdebug.tabw(145,-1); + cdebug_tabw(145,-1); } void GCellTopology::_do_xG_xM2 () { - cdebug.log(145,1) << "_do_" + cdebug_log(145,1) << "_do_" << _connexity.fields.globals << "G_" << _connexity.fields.M2 << "M2() [Managed Configuration - x]" << endl; @@ -1846,13 +1846,13 @@ namespace { AutoSegment::create( rpContact, _northEastContact, KbVertical ); } - cdebug.tabw(145,-1); + cdebug_tabw(145,-1); } void GCellTopology::_do_1G_1M3 () { - cdebug.log(145,1) << "_do_1G_1M3() [Optimised Configuration]" << endl; + cdebug_log(145,1) << "_do_1G_1M3() [Optimised Configuration]" << endl; unsigned int flags = (_east or _west) ? HAccess : NoFlags; flags |= (_north) ? DoTargetContact : NoFlags; @@ -1867,8 +1867,8 @@ namespace { if (not _southWestContact) _southWestContact = _northEastContact; if (not _northEastContact) _northEastContact = _southWestContact; - cdebug.log(145) << "_southWest: " << _southWestContact << endl; - cdebug.log(145) << "_northEast: " << _northEastContact << endl; + cdebug_log(145,0) << "_southWest: " << _southWestContact << endl; + cdebug_log(145,0) << "_northEast: " << _northEastContact << endl; if (flags & HAccess) { // HARDCODED VALUE. @@ -1889,18 +1889,18 @@ namespace { } } } - cdebug.tabw(145,-1); + cdebug_tabw(145,-1); } void GCellTopology::_do_xG_xM3 () { - cdebug.log(145,1) << "_do_xG_" << _connexity.fields.M3 + cdebug_log(145,1) << "_do_xG_" << _connexity.fields.M3 << "M3() [Managed Configuration]" << endl; - cdebug.log(145) << "_west:" << _west << endl; - cdebug.log(145) << "_east:" << _east << endl; - cdebug.log(145) << "_south:" << _south << endl; - cdebug.log(145) << "_north:" << _north << endl; + cdebug_log(145,0) << "_west:" << _west << endl; + cdebug_log(145,0) << "_east:" << _east << endl; + cdebug_log(145,0) << "_south:" << _south << endl; + cdebug_log(145,0) << "_north:" << _north << endl; sort( _routingPads.begin(), _routingPads.end(), SortRpByY(NoFlags) ); // increasing Y. for ( unsigned int i=1 ; i<_routingPads.size() ; i++ ) { @@ -1916,7 +1916,7 @@ namespace { doRp_AutoContacts( _gcell, rp, _southWestContact, unusedContact, DoSourceContact ); if (_sourceContact) { if (_sourceContact->getX() != _southWestContact->getX()) { - cdebug.log(149) << "Misaligned South: _source:" << DbU::getValueString(_sourceContact->getX()) + cdebug_log(149,0) << "Misaligned South: _source:" << DbU::getValueString(_sourceContact->getX()) << "_southWest:" << DbU::getValueString(_southWestContact->getX()) << endl; AutoContactTurn* turn1 = AutoContactTurn::create( _gcell, _net, Session::getContactLayer(1) ); @@ -1940,7 +1940,7 @@ namespace { doRp_AutoContacts( _gcell, rp, unusedContact, _northEastContact, DoTargetContact ); if (_sourceContact) { if (_sourceContact->getX() != _northEastContact->getX()) { - cdebug.log(149) << "Misaligned North: _source:" << DbU::getValueString(_sourceContact->getX()) + cdebug_log(149,0) << "Misaligned North: _source:" << DbU::getValueString(_sourceContact->getX()) << "_southWest:" << DbU::getValueString(_northEastContact->getX()) << endl; AutoContactTurn* turn1 = AutoContactTurn::create( _gcell, _net, Session::getContactLayer(1) ); @@ -1957,13 +1957,13 @@ namespace { AutoSegment::create( rpContact, _northEastContact, KbVertical ); } - cdebug.tabw(145,-1); + cdebug_tabw(145,-1); } void singleGCell ( KatabaticEngine* ktbt, Net* net ) { - cdebug.log(145,1) << "singleGCell() " << net << endl; + cdebug_log(145,1) << "singleGCell() " << net << endl; vector rpM1s; Component* rpM2 = NULL; @@ -1979,7 +1979,7 @@ namespace { cerr << Error( "For %s, less than two Plugs/Pins (%d)." , getString(net).c_str() , rpM1s.size() ) << endl; - cdebug.tabw(145,-1); + cdebug_tabw(145,-1); return; } @@ -1990,11 +1990,11 @@ namespace { if (not gcell) { cerr << Error( "No GCell under %s.", getString(rpM1s[0]).c_str() ) << endl; - cdebug.tabw(145,-1); + cdebug_tabw(145,-1); return; } - cdebug.log(145) << "singleGCell " << gcell << endl; + cdebug_log(145,0) << "singleGCell " << gcell << endl; AutoContact* turn = NULL; AutoContact* source = NULL; @@ -2014,7 +2014,7 @@ namespace { AutoSegment::create( turn , target, KbVertical ); } - cdebug.tabw(145,-1); + cdebug_tabw(145,-1); } @@ -2068,8 +2068,8 @@ namespace Katabatic { void KatabaticEngine::_loadNetGlobalRouting ( Net* net ) { - cdebug.log(149) << "Katabatic::_loadNetGlobalRouting( " << net << " )" << endl; - cdebug.tabw(145,1); + cdebug_log(149,0) << "Katabatic::_loadNetGlobalRouting( " << net << " )" << endl; + cdebug_tabw(145,1); ForkStack forks; Hook* sourceHook = NULL; @@ -2083,7 +2083,7 @@ namespace Katabatic { if (degree == 0) { cmess2 << Warning("Net \"%s\" do not have any RoutingPad (ignored)." ,getString(net->getName()).c_str()) << endl; - cdebug.tabw(145,-1); + cdebug_tabw(145,-1); return; } if (degree < 2) { @@ -2092,11 +2092,11 @@ namespace Katabatic { cmess2 << Warning("Net \"%s\" have less than 2 plugs/pins (ignored)." ,getString(net->getName()).c_str()) << endl; #endif - cdebug.tabw(145,-1); + cdebug_tabw(145,-1); return; } - cdebug.tabw(145,1); + cdebug_tabw(145,1); Hook* startHook = NULL; GCell* lowestGCell = NULL; size_t unconnecteds = 0; @@ -2104,12 +2104,12 @@ namespace Katabatic { GCellTopology::init( degree ); - cdebug.log(145) << "Start RoutingPad Ring" << endl; + cdebug_log(145,0) << "Start RoutingPad Ring" << endl; forEach ( RoutingPad*, startRp, routingPads ) { bool segmentFound = false; forEach ( Hook*, ihook, startRp->getBodyHook()->getHooks() ) { - cdebug.log(145) << "Component " << ihook->getComponent() << endl; + cdebug_log(145,0) << "Component " << ihook->getComponent() << endl; Segment* segment = dynamic_cast( ihook->getComponent() ); if (segment) { @@ -2119,7 +2119,7 @@ namespace Katabatic { GCellTopology gcellConf ( getGCellGrid(), *ihook, NULL ); if (gcellConf.getStateG() == 1) { if ( (lowestGCell == NULL) or (lowestGCell->getIndex() > gcellConf.getGCell()->getIndex()) ) { - cdebug.log(145) << "Starting from GCell " << gcellConf.getGCell() << endl; + cdebug_log(145,0) << "Starting from GCell " << gcellConf.getGCell() << endl; lowestGCell = gcellConf.getGCell(); startHook = *ihook; } @@ -2135,16 +2135,16 @@ namespace Katabatic { NetRoutingExtension::create( net )->setFlags ( NetRoutingState::Excluded ); NetRoutingExtension::create( net )->unsetFlags( NetRoutingState::AutomaticGlobalRoute ); - cdebug.tabw(145,-1); + cdebug_tabw(145,-1); return; } // Uncomment the next line to disable the lowest GCell search. // (takes first GCell with exactly one global). //if (startHook) break; } - cdebug.tabw(145,-1); + cdebug_tabw(145,-1); - if (startHook == NULL) { singleGCell( this, net ); cdebug.tabw(145,-1); return; } + if (startHook == NULL) { singleGCell( this, net ); cdebug_tabw(145,-1); return; } GCellTopology startGCellConf ( getGCellGrid(), startHook, NULL ); startGCellConf.construct( forks ); @@ -2161,8 +2161,8 @@ namespace Katabatic { sourceContact = forks.getContact(); forks.pop(); - cdebug.log(145) << "Popping (from) " << sourceHook << endl; - cdebug.log(145) << "Popping (to) " << sourceContact << endl; + cdebug_log(145,0) << "Popping (from) " << sourceHook << endl; + cdebug_log(145,0) << "Popping (to) " << sourceContact << endl; } lookupClear(); @@ -2177,7 +2177,7 @@ namespace Katabatic { Session::revalidate(); GCellTopology::fixSegments(); - cdebug.tabw(145,-1); + cdebug_tabw(145,-1); } diff --git a/katabatic/src/NetConstraints.cpp b/katabatic/src/NetConstraints.cpp index 1769db8e..74352814 100644 --- a/katabatic/src/NetConstraints.cpp +++ b/katabatic/src/NetConstraints.cpp @@ -61,27 +61,27 @@ namespace { void propagateConstraintFromRp ( RoutingPad* rp ) { - cdebug.log(145,1) << "propagateConstraintFromRp() - " << rp << endl; + cdebug_log(145,1) << "propagateConstraintFromRp() - " << rp << endl; forEach ( Component*, icomponent, rp->getSlaveComponents() ) { - cdebug.log(145) << "slave component: " << *icomponent << endl; + cdebug_log(145,0) << "slave component: " << *icomponent << endl; AutoContact* sourceContact = Session::lookup( dynamic_cast(*icomponent) ); if (sourceContact) { - cdebug.log(145) << "Start slave: " << sourceContact << endl; + cdebug_log(145,0) << "Start slave: " << sourceContact << endl; set verticalSegments; set horizontalSegments; forEach ( AutoSegment*, isegment, sourceContact->getAutoSegments() ) { - cdebug.log(145) << "Examining: " << (*isegment) << endl; + cdebug_log(145,0) << "Examining: " << (*isegment) << endl; AutoContact* targetContact = isegment->getOppositeAnchor(sourceContact); if (targetContact) { if (isegment->isHorizontal()) { - cdebug.log(145) << "On horizontal stack " << (*isegment) << endl; + cdebug_log(145,0) << "On horizontal stack " << (*isegment) << endl; horizontalSegments.insert( (*isegment) ); } else { - cdebug.log(145) << "On vertical stack " << (*isegment) << endl; + cdebug_log(145,0) << "On vertical stack " << (*isegment) << endl; verticalSegments.insert( (*isegment) ); } } @@ -90,24 +90,24 @@ namespace { Box constraintBox = sourceContact->getConstraintBox(); // Propagate constraint through horizontally aligned segments. - cdebug.log(145) << "Propagate constraint on horizontal segments" << endl; + cdebug_log(145,0) << "Propagate constraint on horizontal segments" << endl; set::iterator ihorizontal = horizontalSegments.begin(); for ( ; ihorizontal != horizontalSegments.end() ; ++ihorizontal ) { AutoContact* contact = NULL; forEach ( AutoSegment*, ialigned, (*ihorizontal)->getAligneds() ) { contact = ialigned->getAutoTarget(); - cdebug.log(145) << "contact: " << contact << endl; + cdebug_log(145,0) << "contact: " << contact << endl; if (contact) { - cdebug.log(145) << "Apply to (target): " << contact << endl; + cdebug_log(145,0) << "Apply to (target): " << contact << endl; contact->restrictConstraintBox( constraintBox.getYMin() , constraintBox.getYMax() , KbHorizontal|KbWarnOnError ); } contact = ialigned->getAutoSource(); - cdebug.log(145) << "contact: " << contact << endl; + cdebug_log(145,0) << "contact: " << contact << endl; if (contact) { - cdebug.log(145) << "Apply to (source): " << contact << endl; + cdebug_log(145,0) << "Apply to (source): " << contact << endl; contact->restrictConstraintBox( constraintBox.getYMin() , constraintBox.getYMax() , KbHorizontal|KbWarnOnError ); @@ -116,7 +116,7 @@ namespace { } // Propagate constraint through vertically aligned segments. - cdebug.log(145) << "Propagate constraint on vertical segments" << endl; + cdebug_log(145,0) << "Propagate constraint on vertical segments" << endl; set::iterator ivertical = verticalSegments.begin(); for ( ; ivertical != verticalSegments.end() ; ++ivertical ) { @@ -124,14 +124,14 @@ namespace { forEach ( AutoSegment*, ialigned, (*ivertical)->getAligneds() ) { contact = ialigned->getAutoTarget(); if (contact) { - cdebug.log(145) << "Apply to (target): " << contact << endl; + cdebug_log(145,0) << "Apply to (target): " << contact << endl; contact->restrictConstraintBox( constraintBox.getXMin() , constraintBox.getXMax() , KbVertical|KbWarnOnError ); } contact = ialigned->getAutoSource(); if (contact) { - cdebug.log(145) << "Apply to (source): " << contact << endl; + cdebug_log(145,0) << "Apply to (source): " << contact << endl; contact->restrictConstraintBox( constraintBox.getXMin() , constraintBox.getXMax() , KbVertical|KbWarnOnError ); @@ -141,8 +141,8 @@ namespace { } } - cdebug.log(145) << "propagateConstraintFromRp() - Exit" << endl; - cdebug.tabw(145,-1); + cdebug_log(145,0) << "propagateConstraintFromRp() - Exit" << endl; + cdebug_tabw(145,-1); } @@ -160,8 +160,8 @@ namespace Katabatic { { DebugSession::open( net, 140, 150); - cdebug.log(149) << "Katabatic::computeNetConstraints( " << net << " )" << endl; - cdebug.tabw(145,1); + cdebug_log(149,0) << "Katabatic::computeNetConstraints( " << net << " )" << endl; + cdebug_tabw(145,1); vector routingPads; forEach ( Component*, icomponent, net->getComponents() ) { @@ -184,7 +184,7 @@ namespace Katabatic { // if (autoSegment) autoSegment->toConstraintAxis(); // } - cdebug.tabw(145,-1); + cdebug_tabw(145,-1); DebugSession::close(); } diff --git a/katabatic/src/NetOptimals.cpp b/katabatic/src/NetOptimals.cpp index 4e32de29..304f292f 100644 --- a/katabatic/src/NetOptimals.cpp +++ b/katabatic/src/NetOptimals.cpp @@ -38,8 +38,8 @@ namespace Katabatic { void KatabaticEngine::_computeNetOptimals ( Net* net ) { DebugSession::open( net, 140, 150 ); - cdebug.log(149) << "Katabatic::_computeNetOptimals( " << net << " )" << endl; - cdebug.tabw(145,1); + cdebug_log(149,0) << "Katabatic::_computeNetOptimals( " << net << " )" << endl; + cdebug_tabw(145,1); vector segments; forEach ( Segment*, segment, net->getSegments() ) { @@ -52,7 +52,7 @@ namespace Katabatic { for ( size_t i=0 ; icomputeOptimal( processeds ); - cdebug.tabw(145,-1); + cdebug_tabw(145,-1); DebugSession::close(); } @@ -60,8 +60,8 @@ namespace Katabatic { void KatabaticEngine::toOptimals ( Net* net ) { DebugSession::open( net, 140, 150 ); - cdebug.log(149) << "Katabatic::_toOptimals( " << net << " )" << endl; - cdebug.tabw(145,1); + cdebug_log(149,0) << "Katabatic::_toOptimals( " << net << " )" << endl; + cdebug_tabw(145,1); vector segments; forEach ( Segment*, segment, net->getSegments() ) { @@ -74,7 +74,7 @@ namespace Katabatic { if (segments[i]->isCanonical()) segments[i]->toOptimalAxis(); } - cdebug.tabw(145,-1); + cdebug_tabw(145,-1); DebugSession::close(); } diff --git a/katabatic/src/PyKatabatic.cpp b/katabatic/src/PyKatabatic.cpp index 25cf9fe0..8bf77564 100644 --- a/katabatic/src/PyKatabatic.cpp +++ b/katabatic/src/PyKatabatic.cpp @@ -54,7 +54,7 @@ extern "C" { // Module Initialization : "initKatabatic ()" DL_EXPORT(void) initKatabatic () { - cdebug.log(38) << "initKatabatic()" << endl; + cdebug_log(38,0) << "initKatabatic()" << endl; PyObject* module = Py_InitModule ( "Katabatic", PyKatabatic_Methods ); if ( module == NULL ) { diff --git a/katabatic/src/Session.cpp b/katabatic/src/Session.cpp index edae05df..60e0052d 100644 --- a/katabatic/src/Session.cpp +++ b/katabatic/src/Session.cpp @@ -119,18 +119,18 @@ namespace Katabatic { void Session::_invalidate ( Net* net ) { - cdebug.log(149) << "Session::invalidate(Net*) - " << net << endl; + cdebug_log(149,0) << "Session::invalidate(Net*) - " << net << endl; _netInvalidateds.insert(net); } void Session::_canonize () { - cdebug.log(145,1) << "Katabatic::Session::_canonize()" << endl; + cdebug_log(145,1) << "Katabatic::Session::_canonize()" << endl; if (_segmentInvalidateds.empty()) { - cdebug.log(145) << "Invalidated AutoSegment collection <_segmentInvalidateds> is empty." << endl; - cdebug.tabw(145,-1); + cdebug_log(145,0) << "Invalidated AutoSegment collection <_segmentInvalidateds> is empty." << endl; + cdebug_tabw(145,-1); return; } @@ -145,13 +145,13 @@ namespace Katabatic { AutoSegment* canonical = seedSegment; if (exploredSegments.find(seedSegment->base()) == exploredSegments.end()) { - cdebug.log(145) << "New chunk from: " << seedSegment << endl; + cdebug_log(145,0) << "New chunk from: " << seedSegment << endl; aligneds.push_back( seedSegment ); bool isWeakGlobal = seedSegment->isGlobal(); if (not seedSegment->isNotAligned()) { forEach ( AutoSegment*, aligned, seedSegment->getAligneds() ) { - cdebug.log(145) << "Aligned: " << *aligned << endl; + cdebug_log(145,0) << "Aligned: " << *aligned << endl; aligneds.push_back ( *aligned ); exploredSegments.insert ( aligned->base() ); @@ -161,10 +161,10 @@ namespace Katabatic { } } - cdebug.tabw(145,1); + cdebug_tabw(145,1); canonical->setFlags( SegCanonical ); - cdebug.log(145) << "Canonical: " << canonical << endl; + cdebug_log(145,0) << "Canonical: " << canonical << endl; for ( size_t j=0 ; jisGlobal()) aligneds[j]->setFlags ( SegWeakGlobal ); @@ -177,33 +177,33 @@ namespace Katabatic { ,getString(aligneds[j]).c_str()) << endl; } aligneds[j]->unsetFlags( SegCanonical ); - cdebug.log(145) << "Secondary: " << aligneds[j] << endl; + cdebug_log(145,0) << "Secondary: " << aligneds[j] << endl; } if (aligneds.empty()) canonical->setFlags( SegNotAligned ); - cdebug.log(149) << "Align @" << DbU::toLambda(canonical->getAxis()) + cdebug_log(149,0) << "Align @" << DbU::toLambda(canonical->getAxis()) << " on " << canonical << endl; //canonical->setAxis( canonical->getAxis(), KbRealignate ); if (canonical->isUnsetAxis()) canonical->toOptimalAxis( KbRealignate|KbPropagate ); else canonical->setAxis( canonical->getAxis(), KbRealignate|KbPropagate ); aligneds.clear(); - cdebug.tabw(145,-1); + cdebug_tabw(145,-1); } } - cdebug.tabw(145,-1); + cdebug_tabw(145,-1); } void Session::_revalidateTopology () { - cdebug.log(145,1) << "Katabatic::Session::_revalidateTopology()" << endl; + cdebug_log(145,1) << "Katabatic::Session::_revalidateTopology()" << endl; set::iterator inet = _netInvalidateds.begin(); for ( ; inet != _netInvalidateds.end() ; inet++ ) { - cdebug.log(145) << "Katabatic::Session::_revalidateTopology(Net*)" << *inet << endl; + cdebug_log(145,0) << "Katabatic::Session::_revalidateTopology(Net*)" << *inet << endl; _katabatic->updateNetTopology ( *inet ); _katabatic->computeNetConstraints( *inet ); _katabatic->_computeNetOptimals ( *inet ); @@ -221,27 +221,27 @@ namespace Katabatic { _netRevalidateds.clear(); _netRevalidateds.swap( _netInvalidateds ); - cdebug.tabw(145,-1); + cdebug_tabw(145,-1); } size_t Session::_revalidate () { - cdebug.log(145,1) << "Katabatic::Session::revalidate()" << endl; - cdebug.log(145) << "_segmentInvalidateds.size(): " << _segmentInvalidateds.size() << endl; - cdebug.log(145) << "_autoContacts.size(): " << _autoContacts.size() << endl; + cdebug_log(145,1) << "Katabatic::Session::revalidate()" << endl; + cdebug_log(145,0) << "_segmentInvalidateds.size(): " << _segmentInvalidateds.size() << endl; + cdebug_log(145,0) << "_autoContacts.size(): " << _autoContacts.size() << endl; size_t count = 0; if (not _netInvalidateds.empty()) _revalidateTopology(); - cdebug.log(145) << "AutoContacts Revalidate (after _revalidateTopology())." << endl; + cdebug_log(145,0) << "AutoContacts Revalidate (after _revalidateTopology())." << endl; for ( size_t i=0 ; i < _autoContacts.size() ; i++, count++ ) _autoContacts[i]->updateGeometry(); _autoContacts.clear(); - cdebug.log(145) << "AutoSegments Revalidate (after AutoContact::updateGeometry())." << endl; - cdebug.log(145) << "_segmentInvalidateds.size(): " << _segmentInvalidateds.size() << endl; + cdebug_log(145,0) << "AutoSegments Revalidate (after AutoContact::updateGeometry())." << endl; + cdebug_log(145,0) << "_segmentInvalidateds.size(): " << _segmentInvalidateds.size() << endl; _segmentRevalidateds.clear(); for ( size_t i=0 ; i < _segmentInvalidateds.size() ; ++i, ++count ) { @@ -254,7 +254,7 @@ namespace Katabatic { } _segmentInvalidateds.clear(); - cdebug.log(145) << "AutoSegments/AutoContacts queued deletion." << endl; + cdebug_log(145,0) << "AutoSegments/AutoContacts queued deletion." << endl; unsigned int flags = _katabatic->getFlags( EngineDestroyMask ); _katabatic->setFlags( EngineDestroyMask ); set::iterator isegment = _destroyedSegments.begin(); @@ -268,7 +268,7 @@ namespace Katabatic { _katabatic->setFlags( flags ); set().swap( _destroyedSegments ); - cdebug.tabw(145,-1); + cdebug_tabw(145,-1); return count; } @@ -276,7 +276,7 @@ namespace Katabatic { Session* Session::open ( KatabaticEngine* ktbt ) { - cdebug.log(145) << "Session::open()" << endl; + cdebug_log(145,0) << "Session::open()" << endl; if (_session) { if (_session->_katabatic != ktbt) @@ -294,7 +294,7 @@ namespace Katabatic { void Session::close () { - cdebug.log(145,1) << "Session::close()" << endl; + cdebug_log(145,1) << "Session::close()" << endl; if (not _session) throw Error( openSessionError, "Session::Close()" ); @@ -303,7 +303,7 @@ namespace Katabatic { delete _session; _session = NULL; - cdebug.tabw(145,-1); + cdebug_tabw(145,-1); } diff --git a/katabatic/src/katabatic/AutoContact.h b/katabatic/src/katabatic/AutoContact.h index 39286105..fbdf122f 100644 --- a/katabatic/src/katabatic/AutoContact.h +++ b/katabatic/src/katabatic/AutoContact.h @@ -289,13 +289,13 @@ namespace Katabatic { inline LocatorHelper::LocatorHelper ( AutoContact* contact, unsigned int flags ) : _flags(flags), _index(_min()), _contact(contact) { - cdebug.tabw(145,1); - cdebug.log(145) << "CTOR LocatorHelper " << contact->_getString() << endl; - cdebug.log(145) << "+ _min():" << _min() << endl; - cdebug.log(145) << "+ _max():" << _max() << endl; - cdebug.log(145) << "+ getSegment(_min()):" << _contact->getSegment(_min()) << endl; + cdebug_tabw(145,1); + cdebug_log(145,0) << "CTOR LocatorHelper " << contact->_getString() << endl; + cdebug_log(145,0) << "+ _min():" << _min() << endl; + cdebug_log(145,0) << "+ _max():" << _max() << endl; + cdebug_log(145,0) << "+ getSegment(_min()):" << _contact->getSegment(_min()) << endl; if (not _contact->getSegment(_index)) progress(); - cdebug.tabw(145,-1); + cdebug_tabw(145,-1); } inline bool LocatorHelper::isValid () const @@ -309,20 +309,20 @@ namespace Katabatic { inline AutoSegment* LocatorHelper::getSegment () const { - cdebug.log(145) << "LocatorHelper::getSegment(" << _index << ") - " << _contact->getSegment(_index) << endl; + cdebug_log(145,0) << "LocatorHelper::getSegment(" << _index << ") - " << _contact->getSegment(_index) << endl; return (_index < _max()) ? _contact->getSegment(_index) : NULL; } inline void LocatorHelper::progress () { - cdebug.tabw(145,1); + cdebug_tabw(145,1); ++_index; - cdebug.log(145) << "LocatorHelper::progress() [" << _index << "] " << _contact->getSegment(_index) << endl; + cdebug_log(145,0) << "LocatorHelper::progress() [" << _index << "] " << _contact->getSegment(_index) << endl; while ((_index < _max()) and (_contact->getSegment(_index) == NULL)) { ++_index; - cdebug.log(145) << "LocatorHelper::progress() [" << _index << "] " << _contact->getSegment(_index) << endl; + cdebug_log(145,0) << "LocatorHelper::progress() [" << _index << "] " << _contact->getSegment(_index) << endl; } - cdebug.tabw(145,-1); + cdebug_tabw(145,-1); } diff --git a/katabatic/src/katabatic/AutoSegment.h b/katabatic/src/katabatic/AutoSegment.h index 3e6728ea..d29b47ca 100644 --- a/katabatic/src/katabatic/AutoSegment.h +++ b/katabatic/src/katabatic/AutoSegment.h @@ -521,7 +521,7 @@ namespace Katabatic { inline int AutoSegment::getTerminalCount ( AutoSegment* seed ) { - cdebug.log(145) << "getTerminalCount() - " << seed << endl; + cdebug_log(145,0) << "getTerminalCount() - " << seed << endl; vector collapseds; vector perpandiculars; diff --git a/kite/src/BuildPowerRails.cpp b/kite/src/BuildPowerRails.cpp index b38f1087..333a1599 100644 --- a/kite/src/BuildPowerRails.cpp +++ b/kite/src/BuildPowerRails.cpp @@ -377,7 +377,7 @@ namespace { Net* GlobalNetTable::getRootNet ( const Net* net, Path path ) const { - cdebug.log(159) << " getRootNet:" << path << ":" << net << endl; + cdebug_log(159,0) << " getRootNet:" << path << ":" << net << endl; if (net == _blockage) return _blockage; @@ -396,12 +396,12 @@ namespace { if (not path.isEmpty()) { DeepNet* deepClockNet = getTopCell()->getDeepNet( path, net ); if (deepClockNet) { - cdebug.log(159) << " Deep Clock Net:" << deepClockNet + cdebug_log(159,0) << " Deep Clock Net:" << deepClockNet << " state:" << NetRoutingExtension::getFlags(deepClockNet) << endl; return NetRoutingExtension::isFixed(deepClockNet) ? _blockage : NULL; } else { - cdebug.log(159) << " Top Clock Net:" << net + cdebug_log(159,0) << " Top Clock Net:" << net << " state:" << NetRoutingExtension::getFlags(net) << endl; } @@ -410,7 +410,7 @@ namespace { Plug* plug = NULL; while ( true ) { - cdebug.log(159) << " " << path << "+" << upNet << endl; + cdebug_log(159,0) << " " << path << "+" << upNet << endl; if (path.isEmpty()) break; if ((upNet == NULL) or not upNet->isExternal()) return _blockage; @@ -424,7 +424,7 @@ namespace { } } - cdebug.log(159) << " Check againts top clocks ck:" << ((_ck) ? _ck->getName() : "NULL") + cdebug_log(159,0) << " Check againts top clocks ck:" << ((_ck) ? _ck->getName() : "NULL") << " cki:" << ((_cki) ? _cki->getName() : "NULL") << " cko:" << ((_cko) ? _cko->getName() : "NULL") << endl; @@ -555,7 +555,7 @@ namespace { , _width (width) , _chunks() { - cdebug.log(159) << " new Rail " + cdebug_log(159,0) << " new Rail " << " @" << DbU::getValueString(axis) << " " << getRoutingPlane()->getLayer()->getName() << " " << getRails()->getNet() @@ -573,10 +573,10 @@ namespace { void PowerRailsPlanes::Rail::merge ( DbU::Unit source, DbU::Unit target ) { Interval chunkToMerge ( source, target ); - cdebug.log(159) << " Rail::merge() " + cdebug_log(159,0) << " Rail::merge() " << ((getDirection()==KbHorizontal) ? "Horizontal" : "Vertical") << " " << chunkToMerge << endl; - cdebug.log(159) << " | " << _getString() << endl; + cdebug_log(159,0) << " | " << _getString() << endl; list::iterator imerge = _chunks.end(); list::iterator ichunk = _chunks.begin(); @@ -584,20 +584,20 @@ namespace { while ( ichunk != _chunks.end() ) { if (imerge == _chunks.end()) { if (chunkToMerge.getVMax() < (*ichunk).getVMin()) { - cdebug.log(159) << " | Insert before " << *ichunk << endl; + cdebug_log(159,0) << " | Insert before " << *ichunk << endl; imerge = _chunks.insert( ichunk, chunkToMerge ); break; } if (chunkToMerge.intersect(*ichunk)) { - cdebug.log(159) << " | Merge with " << *ichunk << endl; + cdebug_log(159,0) << " | Merge with " << *ichunk << endl; imerge = ichunk; (*imerge).merge( chunkToMerge ); } } else { if (chunkToMerge.getVMax() >= (*ichunk).getVMin()) { (*imerge).merge( *ichunk ); - cdebug.log(159) << " | Absorb (erase) " << *ichunk << endl; + cdebug_log(159,0) << " | Absorb (erase) " << *ichunk << endl; ichunk = _chunks.erase( ichunk ); continue; } else @@ -606,12 +606,12 @@ namespace { // if (chunkToMerge.intersect(*ichunk)) { // if (imerge == _chunks.end()) { - // cdebug.log(159) << " | Merge with " << *ichunk << endl; + // cdebug_log(159,0) << " | Merge with " << *ichunk << endl; // imerge = ichunk; // (*imerge).merge( chunkToMerge ); // } else { // (*imerge).merge( *ichunk ); - // cdebug.log(159) << " | Absorb (erase) " << *ichunk << endl; + // cdebug_log(159,0) << " | Absorb (erase) " << *ichunk << endl; // ichunk = _chunks.erase( ichunk ); // continue; // } @@ -621,19 +621,19 @@ namespace { if (imerge == _chunks.end()) { _chunks.insert( ichunk, chunkToMerge ); - cdebug.log(159) << " | Insert at end " << DbU::getValueString(_axis) << " " << chunkToMerge << endl; - cdebug.log(159) << " | " << _getString() << endl; + cdebug_log(159,0) << " | Insert at end " << DbU::getValueString(_axis) << " " << chunkToMerge << endl; + cdebug_log(159,0) << " | " << _getString() << endl; } } void PowerRailsPlanes::Rail::doLayout ( const Layer* layer ) { - cdebug.log(159) << "Doing layout of rail: " + cdebug_log(159,0) << "Doing layout of rail: " << " " << layer->getName() << " " << ((getDirection()==KbHorizontal) ? "Horizontal" : "Vertical") << " @" << DbU::getValueString(_axis) << endl; - cdebug.log(159) << _getString() << endl; + cdebug_log(159,0) << _getString() << endl; Net* net = getNet(); RoutingPlane* plane = getRoutingPlane(); @@ -649,13 +649,13 @@ namespace { DbU::Unit axisMin = 0; DbU::Unit axisMax = 0; - cdebug.log(159) << " delta:" << DbU::getValueString(delta) + cdebug_log(159,0) << " delta:" << DbU::getValueString(delta) << " (pitch:" << DbU::getValueString(plane->getLayerGauge()->getPitch()) << " , ww/2:" << DbU::getValueString(plane->getLayerGauge()->getHalfWireWidth()) << ")" << endl; // if ( type == Constant::PinOnly ) { - // cdebug.log(159) << " Layer is PinOnly." << endl; + // cdebug_log(159,0) << " Layer is PinOnly." << endl; // return; // } @@ -677,7 +677,7 @@ namespace { ) << endl; } - cdebug.log(159) << " chunk: [" << DbU::getValueString((*ichunk).getVMin()) + cdebug_log(159,0) << " chunk: [" << DbU::getValueString((*ichunk).getVMin()) << ":" << DbU::getValueString((*ichunk).getVMax()) << "]" << endl; segment = Horizontal::create ( net @@ -700,13 +700,13 @@ namespace { Track* track = plane->getTrackByPosition ( axisMin, Constant::Superior ); for ( ; track and (track->getAxis() <= axisMax) ; track = track->getNextTrack() ) { TrackElement* element = TrackFixedSegment::create ( track, segment ); - cdebug.log(159) << " Insert in " << track << "+" << element << endl; + cdebug_log(159,0) << " Insert in " << track << "+" << element << endl; } } } else { list::iterator ichunk = _chunks.begin(); for ( ; ichunk != _chunks.end() ; ichunk++ ) { - cdebug.log(159) << " chunk: [" << DbU::getValueString((*ichunk).getVMin()) + cdebug_log(159,0) << " chunk: [" << DbU::getValueString((*ichunk).getVMin()) << ":" << DbU::getValueString((*ichunk).getVMax()) << "]" << endl; segment = Vertical::create ( net @@ -726,13 +726,13 @@ namespace { axisMax += delta; //} - cdebug.log(159) << " axisMin:" << DbU::getValueString(axisMin) + cdebug_log(159,0) << " axisMin:" << DbU::getValueString(axisMin) << " axisMax:" << DbU::getValueString(axisMax) << endl; Track* track = plane->getTrackByPosition ( axisMin, Constant::Superior ); for ( ; track and (track->getAxis() <= axisMax) ; track = track->getNextTrack() ) { TrackElement* element = TrackFixedSegment::create ( track, segment ); - cdebug.log(159) << " Insert in " << track + cdebug_log(159,0) << " Insert in " << track << "+" << element << " " << (net->isExternal() ? "external" : "internal") << endl; @@ -784,7 +784,7 @@ namespace { , _net (net) , _rails () { - cdebug.log(159) << " new Rails @" + cdebug_log(159,0) << " new Rails @" << " " << getRoutingPlane()->getLayer()->getName() << " " << net << " " << ((getDirection()==KbHorizontal) ? "Horizontal": "Vertical") << endl; @@ -842,7 +842,7 @@ namespace { void PowerRailsPlanes::Rails::doLayout ( const Layer* layer ) { - cdebug.log(159) << "Doing layout of rails: " << layer->getName() + cdebug_log(159,0) << "Doing layout of rails: " << layer->getName() << " " << ((_direction==KbHorizontal) ? "Horizontal" : "Vertical") << " " << _net->getName() << endl; @@ -858,7 +858,7 @@ namespace { , _verticalRails () , _powerDirection (routingPlane->getDirection()) { - cdebug.log(159) << "New Plane " << _layer->getName() << " " << _routingPlane << endl; + cdebug_log(159,0) << "New Plane " << _layer->getName() << " " << _routingPlane << endl; // Hard-coded SxLib gauge. if (_routingPlane->getDepth() == 0) _powerDirection = KbHorizontal; @@ -888,7 +888,7 @@ namespace { { Rails* rails = NULL; - cdebug.log(159) << " Plane::merge() " << net->getName() << " " << bb << endl; + cdebug_log(159,0) << " Plane::merge() " << net->getName() << " " << bb << endl; unsigned int direction = getDirection(); if ( (net->getType() == Net::Type::POWER) or (net->getType() == Net::Type::GROUND) ) @@ -911,7 +911,7 @@ namespace { } else rails = (*irails).second; - cdebug.log(159) << " Vertical Merging" << endl; + cdebug_log(159,0) << " Vertical Merging" << endl; rails->merge ( bb ); } } @@ -919,7 +919,7 @@ namespace { void PowerRailsPlanes::Plane::doLayout () { - cdebug.log(159) << "Doing layout of plane: " << _layer->getName() << endl; + cdebug_log(159,0) << "Doing layout of plane: " << _layer->getName() << endl; RailsMap::iterator irails = _horizontalRails.begin(); for ( ; irails != _horizontalRails.end() ; ++irails ) { @@ -952,10 +952,10 @@ namespace { RoutingLayerGauge* lg = rg->getLayerGauge(regular); if ( not lg ) continue; - cdebug.log(159) << "Gauge: [" << lg->getDepth() << "] " << lg << endl; + cdebug_log(159,0) << "Gauge: [" << lg->getDepth() << "] " << lg << endl; RoutingPlane* rp = _kite->getRoutingPlaneByIndex(lg->getDepth()); - cdebug.log(159) << "Plane:" << rp << endl; + cdebug_log(159,0) << "Plane:" << rp << endl; _planes.insert( make_pair(regular->getBasicLayer(),new Plane(regular,rp)) ); @@ -1020,7 +1020,7 @@ namespace { Net* topGlobalNet = _globalNets.getRootNet( net, Path() ); if (topGlobalNet == NULL) { - cdebug.log(159) << "Not a global net: " << net << endl; + cdebug_log(159,0) << "Not a global net: " << net << endl; return; } @@ -1171,17 +1171,17 @@ namespace { #endif if ( rootNet == NULL ) { - cdebug.log(159) << " rootNet is NULL, not taken into account." << endl; + cdebug_log(159,0) << " rootNet is NULL, not taken into account." << endl; return; } - cdebug.log(159) << " rootNet " << rootNet << " (" << rootNet->isClock() << ") " + cdebug_log(159,0) << " rootNet " << rootNet << " (" << rootNet->isClock() << ") " << go->getCell() << " (" << go->getCell()->isTerminal() << ")" << endl; const Segment* segment = dynamic_cast(component); if ( segment != NULL ) { _goMatchCount++; - cdebug.log(159) << " Merging PowerRail element: " << segment << endl; + cdebug_log(159,0) << " Merging PowerRail element: " << segment << endl; Box bb = segment->getBoundingBox ( basicLayer ); @@ -1210,7 +1210,7 @@ namespace { Box bb = contact->getBoundingBox ( basicLayer ); transformation.applyOn ( bb ); - cdebug.log(159) << " Merging PowerRail element: " << contact << " bb:" << bb + cdebug_log(159,0) << " Merging PowerRail element: " << contact << " bb:" << bb << " " << basicLayer << endl; _powerRailsPlanes.merge ( bb, rootNet ); diff --git a/kite/src/DataNegociate.cpp b/kite/src/DataNegociate.cpp index 14195368..84e5a49c 100644 --- a/kite/src/DataNegociate.cpp +++ b/kite/src/DataNegociate.cpp @@ -83,8 +83,8 @@ namespace Kite { { DebugSession::open( _trackSegment->getNet(), 150, 160 ); - //cdebug.log(9000) << "Deter| DataNegociate::update() - " << _trackSegment << endl; - cdebug.log(159,1) << "DataNegociate::update() - " << _trackSegment << endl; + //cdebug_log(9000,0) << "Deter| DataNegociate::update() - " << _trackSegment << endl; + cdebug_log(159,1) << "DataNegociate::update() - " << _trackSegment << endl; size_t reduceCandidates = 0; DbU::Unit pitch = _trackSegment->getPitch(); @@ -103,12 +103,12 @@ namespace Kite { ); _terminals = AutoSegment::getTerminalCount( _trackSegment->base(), collapseds ); - //cdebug.log(9000) << "Deter| Terminals:" << _terminals << endl; + //cdebug_log(9000,0) << "Deter| Terminals:" << _terminals << endl; _attractors.clear(); _perpandiculars.clear(); _perpandicularFree = Interval(false); - cdebug.log(159) << "Extracting attractors from perpandiculars." << endl; + cdebug_log(159,0) << "Extracting attractors from perpandiculars." << endl; for ( size_t i=0 ; i < perpandiculars.size() ; i++ ) { Interval interval; TrackElement* perpandicular; @@ -136,25 +136,25 @@ namespace Kite { //cerr << " " << interval << endl; //interval.inflate( DbU::fromLambda(-0.5) ); - cdebug.log(159) << "| perpandicular: " << perpandiculars[i] << endl; - cdebug.log(159) << "| canonical: " << perpandicular << endl; - cdebug.log(159,1) << "Canonical // interval: " << interval << endl; + cdebug_log(159,0) << "| perpandicular: " << perpandiculars[i] << endl; + cdebug_log(159,0) << "| canonical: " << perpandicular << endl; + cdebug_log(159,1) << "Canonical // interval: " << interval << endl; _perpandiculars.push_back( perpandicular ); if (perpandicular->getTrack()) { Interval trackFree = perpandicular->getFreeInterval(); - cdebug.log(159) << "Track Perpandicular Free: " << trackFree << endl; + cdebug_log(159,0) << "Track Perpandicular Free: " << trackFree << endl; _perpandicularFree.intersection( trackFree ); } else { - cdebug.log(159) << "Not in any track " << perpandicular << endl; + cdebug_log(159,0) << "Not in any track " << perpandicular << endl; } #if 0 if (interval.isPonctual()) { - cdebug.log(159) << "Punctual attractor @" << DbU::getValueString(interval.getVMin()) << endl; + cdebug_log(159,0) << "Punctual attractor @" << DbU::getValueString(interval.getVMin()) << endl; _attractors.push_back( interval.getVMin() ); - cdebug.tabw(159,-1); + cdebug_tabw(159,-1); continue; } @@ -168,7 +168,7 @@ namespace Kite { } else { iattractor->second -= 1; } - cdebug.log(159) << "Left attractor @" << DbU::getValueString(interval.getVMin()) << endl; + cdebug_log(159,0) << "Left attractor @" << DbU::getValueString(interval.getVMin()) << endl; } if ( (interval.getVMax() != _trackSegment->getAxis()) @@ -181,7 +181,7 @@ namespace Kite { } else { iattractor->second += 1; } - cdebug.log(159) << "Right attractor @" << DbU::getValueString(interval.getVMax()) << endl; + cdebug_log(159,0) << "Right attractor @" << DbU::getValueString(interval.getVMax()) << endl; } if (perpandicular->base()->isReduceCandidate()) { @@ -198,7 +198,7 @@ namespace Kite { } #endif - cdebug.tabw(159,-1); + cdebug_tabw(159,-1); } if ( not _trackSegment->isTerminal() and (_perpandiculars.size() < 2) ) cerr << Bug( "Less than two perpandiculars on %s.", getString(_trackSegment).c_str() ) << endl; @@ -216,11 +216,11 @@ namespace Kite { s << DbU::getValueString( _attractors[i] ); } s << "]"; - cdebug.log(159) << s.str() << endl; - cdebug.log(159) << "Perpandicular Free: " << _perpandicularFree << endl; + cdebug_log(159,0) << s.str() << endl; + cdebug_log(159,0) << "Perpandicular Free: " << _perpandicularFree << endl; - cdebug.tabw(159,-1); + cdebug_tabw(159,-1); DebugSession::close(); } diff --git a/kite/src/KiteEngine.cpp b/kite/src/KiteEngine.cpp index 248f41e4..d4fc36ef 100644 --- a/kite/src/KiteEngine.cpp +++ b/kite/src/KiteEngine.cpp @@ -151,7 +151,7 @@ namespace Kite { void KiteEngine::_initDataBase () { - cdebug.log(155,1) << "KiteEngine::_initDataBase()" << endl; + cdebug_log(155,1) << "KiteEngine::_initDataBase()" << endl; Session::open( this ); createGlobalGraph( KtNoFlags ); @@ -163,7 +163,7 @@ namespace Kite { Session::close(); _runKiteInit(); - cdebug.tabw(155,-1); + cdebug_tabw(155,-1); } @@ -180,7 +180,7 @@ namespace Kite { void KiteEngine::_preDestroy () { - cdebug.log(155,1) << "KiteEngine::_preDestroy()" << endl; + cdebug_log(155,1) << "KiteEngine::_preDestroy()" << endl; cmess1 << " o Deleting ToolEngine<" << getName() << "> from Cell <" << _cell->getName() << ">" << endl; @@ -205,7 +205,7 @@ namespace Kite { _knik->destroy(); } - cdebug.tabw(155,-1); + cdebug_tabw(155,-1); } @@ -440,21 +440,21 @@ namespace Kite { for ( size_t itrack=0 ; itrackgetTrackByIndex ( itrack ); - cdebug.log(159) << "Capacity from: " << track << endl; + cdebug_log(159,0) << "Capacity from: " << track << endl; if (track->getDirection() == KbHorizontal) { for ( size_t ielement=0 ; ielementgetSize() ; ++ielement ) { TrackElement* element = track->getSegment( ielement ); if (element->getNet() == NULL) { - cdebug.log(159) << "Reject capacity from (not Net): " << element << endl; + cdebug_log(159,0) << "Reject capacity from (not Net): " << element << endl; continue; } if ( (not element->isFixed()) and (not element->isBlockage()) and (not element->isUserDefined()) ) { cmess2 << "Reject capacity from (neither fixed, blockage nor user defined): " << element << endl; - //cdebug.log(159) << "Reject capacity from (neither fixed nor blockage): " << element << endl; + //cdebug_log(159,0) << "Reject capacity from (neither fixed nor blockage): " << element << endl; continue; } @@ -462,7 +462,7 @@ namespace Kite { //int elementCapacity = (chipCorona.contains(elementBb)) ? -hEdgeCapacity : -1; int elementCapacity = -1; - cdebug.log(159) << "Capacity from: " << element << ":" << elementCapacity << endl; + cdebug_log(159,0) << "Capacity from: " << element << ":" << elementCapacity << endl; Katabatic::GCell* gcell = getGCellGrid()->getGCell( Point(element->getSourceU(),track->getAxis()) ); Katabatic::GCell* end = getGCellGrid()->getGCell( Point(element->getTargetU(),track->getAxis()) ); @@ -488,11 +488,11 @@ namespace Kite { TrackElement* element = track->getSegment( ielement ); if (element->getNet() == NULL) { - cdebug.log(159) << "Reject capacity from (not Net): " << element << endl; + cdebug_log(159,0) << "Reject capacity from (not Net): " << element << endl; continue; } if ( (not element->isFixed()) and not (element->isBlockage()) ) { - cdebug.log(159) << "Reject capacity from (neither fixed nor blockage): " << element << endl; + cdebug_log(159,0) << "Reject capacity from (neither fixed nor blockage): " << element << endl; continue; } @@ -500,7 +500,7 @@ namespace Kite { //int elementCapacity = (chipCorona.contains(elementBb)) ? -vEdgeCapacity : -1; int elementCapacity = -1; - cdebug.log(159) << "Capacity from: " << element << ":" << elementCapacity << endl; + cdebug_log(159,0) << "Capacity from: " << element << ":" << elementCapacity << endl; Katabatic::GCell* gcell = getGCellGrid()->getGCell( Point(track->getAxis(),element->getSourceU()) ); Katabatic::GCell* end = getGCellGrid()->getGCell( Point(track->getAxis(),element->getTargetU()) ); @@ -809,27 +809,27 @@ namespace Kite { void KiteEngine::finalizeLayout () { - cdebug.log(155) << "KiteEngine::finalizeLayout()" << endl; + cdebug_log(155,0) << "KiteEngine::finalizeLayout()" << endl; if (getState() > Katabatic::EngineDriving) return; - cdebug.tabw(155,1); + cdebug_tabw(155,1); setState( Katabatic::EngineDriving ); _gutKite(); KatabaticEngine::finalizeLayout(); - cdebug.log(155) << "State: " << getState() << endl; + cdebug_log(155,0) << "State: " << getState() << endl; getCell()->setFlags( Cell::Flags::Routed ); - cdebug.tabw(155,-1); + cdebug_tabw(155,-1); } void KiteEngine::_gutKite () { - cdebug.log(155,1) << "KiteEngine::_gutKite()" << endl; - cdebug.log(155) << "State: " << getState() << endl; + cdebug_log(155,1) << "KiteEngine::_gutKite()" << endl; + cdebug_log(155,0) << "State: " << getState() << endl; if (getState() < Katabatic::EngineGutted) { Session::open( this ); @@ -842,7 +842,7 @@ namespace Kite { Session::close(); } - cdebug.tabw(155,-1); + cdebug_tabw(155,-1); } diff --git a/kite/src/Manipulator.cpp b/kite/src/Manipulator.cpp index a75bd507..6bde7360 100644 --- a/kite/src/Manipulator.cpp +++ b/kite/src/Manipulator.cpp @@ -143,7 +143,7 @@ namespace Kite { bool Manipulator::ripup ( unsigned int type, DbU::Unit axisHint ) { - cdebug.log(159) << "Manipulator::ripup() " << endl; + cdebug_log(159,0) << "Manipulator::ripup() " << endl; if (not canRipup()) return false; @@ -157,7 +157,7 @@ namespace Kite { bool Manipulator::ripupPerpandiculars ( unsigned int flags ) { - cdebug.log(159) << "Manipulator::ripupPerpandiculars() - " << flags << endl; + cdebug_log(159,0) << "Manipulator::ripupPerpandiculars() - " << flags << endl; bool success = true; bool cagedPerpandiculars = false; @@ -177,7 +177,7 @@ namespace Kite { parallelActionFlags |= SegmentAction::ToRipupLimit; } - cdebug.log(159) << "Pure constraints: " << constraints << endl; + cdebug_log(159,0) << "Pure constraints: " << constraints << endl; Track* track = NULL; const vector& perpandiculars = _event->getPerpandiculars(); @@ -202,7 +202,7 @@ namespace Kite { // Try to ripup the perpandicular. DataNegociate* data2 = perpandiculars[i]->getDataNegociate(); - cdebug.log(159) << "| " << perpandiculars[i] << endl; + cdebug_log(159,0) << "| " << perpandiculars[i] << endl; if ( (flags & Manipulator::ToMoveUp) and (data2->getState() < DataNegociate::MoveUp) ) data2->setState( DataNegociate::MoveUp ); @@ -229,23 +229,23 @@ namespace Kite { // Try to ripup conflicting neighbor. if (Manipulator(other,_fsm).canRipup()) { - cdebug.log(159) << " | Ripup: " << begin << " " << other << endl; + cdebug_log(159,0) << " | Ripup: " << begin << " " << other << endl; _fsm.addAction( other, SegmentAction::OtherRipup ); } else { - cdebug.log(159) << "Aborted ripup of perpandiculars, fixed or blocked." << endl; + cdebug_log(159,0) << "Aborted ripup of perpandiculars, fixed or blocked." << endl; return false; } } } if (cagedPerpandiculars and not placedPerpandiculars) { - cdebug.log(159) << "Aborted ripup of perpandiculars, constraints are due to fixed/blockage." << endl; + cdebug_log(159,0) << "Aborted ripup of perpandiculars, constraints are due to fixed/blockage." << endl; _fsm.addAction( _segment, SegmentAction::SelfRipup ); return true; } if (_segment->isLocal() and not placedPerpandiculars) { - cdebug.log(159) << "No placed perpandiculars, tight native constraints, place perpandiculars FIRST." << endl; + cdebug_log(159,0) << "No placed perpandiculars, tight native constraints, place perpandiculars FIRST." << endl; for ( size_t i=0 ; i < perpandiculars.size() ; i++ ) { _fsm.addAction( perpandiculars[i], perpandicularActionFlags|SegmentAction::EventLevel4 ); } @@ -272,7 +272,7 @@ namespace Kite { bool Manipulator::relax ( Interval interval, unsigned int flags ) { interval.inflate( - Session::getExtensionCap(getLayer()) ); - cdebug.log(159) << "Manipulator::relax() of: " << _segment << " " << interval << endl; + cdebug_log(159,0) << "Manipulator::relax() of: " << _segment << " " << interval << endl; if (_segment->isFixed()) return false; if (not interval.intersect(_segment->getCanonicalInterval())) return false; @@ -284,10 +284,10 @@ namespace Kite { if (interval.contains(_segment->base()->getAutoTarget()->getX())) return false; } - cdebug.tabw(159,1); + cdebug_tabw(159,1); bool success = true; bool expand = _segment->isGlobal() and (flags&AllowExpand); - cdebug.log(159) << "Expand:" << expand << endl; + cdebug_log(159,0) << "Expand:" << expand << endl; Katabatic::GCellVector gcells; _segment->getGCells( gcells ); @@ -297,7 +297,7 @@ namespace Kite { , getString(_segment).c_str() , getString(gcells[0]).c_str() ) << endl; - cdebug.tabw(159,-1); + cdebug_tabw(159,-1); return false; } @@ -311,15 +311,15 @@ namespace Kite { // Look for closest enclosing min & max GCells indexes. for ( igcell=0 ; igcellgetSide(_segment->getDirection()); - cdebug.log(159) << "| " << setw(3) << igcell << " " << gcells[igcell] << " uside: " << uside << endl; + cdebug_log(159,0) << "| " << setw(3) << igcell << " " << gcells[igcell] << " uside: " << uside << endl; if (uside.contains(interval.getVMin())) { iminconflict = igcell; - cdebug.log(159) << "> Min conflict: " << iminconflict << endl; + cdebug_log(159,0) << "> Min conflict: " << iminconflict << endl; } if (uside.contains(interval.getVMax())) { imaxconflict = igcell; - cdebug.log(159) << "> Max conflict: " << imaxconflict << endl; + cdebug_log(159,0) << "> Max conflict: " << imaxconflict << endl; } } @@ -329,13 +329,13 @@ namespace Kite { bool maxExpanded = false; if (expand) { if (iminconflict < gcells.size()) { - //cdebug.log(159) << "Expand min" << endl; + //cdebug_log(159,0) << "Expand min" << endl; size_t imindensity = 0; for ( size_t iexpand=1 ; iexpandcanDogleg(gcells[iexpand],KtAllowDoglegReuse)) continue; - // cdebug.log(159) << " Density " + // cdebug_log(159,0) << " Density " // << "Density " << Session::getRoutingGauge()->getRoutingLayer(depth)->getName() // << " min. dens.:" << gcells[imindensity]->getDensity(depth) // << " exp. dens.:" << gcells[iexpand ]->getDensity(depth) @@ -343,7 +343,7 @@ namespace Kite { if (gcells[imindensity]->getDensity(depth) - gcells[iexpand]->getDensity(depth) > 1e-3) { imindensity = iexpand; - //cdebug.log(159) << "Accepted expand " << imindensity << endl; + //cdebug_log(159,0) << "Accepted expand " << imindensity << endl; } } @@ -352,13 +352,13 @@ namespace Kite { } if (imaxconflict < gcells.size()) { - //cdebug.log(159) << "Expand max" << endl; + //cdebug_log(159,0) << "Expand max" << endl; size_t imindensity = imaxconflict; for ( size_t iexpand=imaxconflict+1 ; iexpandcanDogleg(gcells[iexpand],KtAllowDoglegReuse)) continue; - // cdebug.log(159) << " Density " + // cdebug_log(159,0) << " Density " // << Session::getRoutingGauge()->getRoutingLayer(depth)->getName() // << " min. dens.:" << gcells[imindensity]->getDensity(depth) // << " exp. dens.:" << gcells[iexpand ]->getDensity(depth) @@ -366,7 +366,7 @@ namespace Kite { if (gcells[imindensity]->getDensity(depth) - gcells[iexpand]->getDensity(depth) > 1e-3) { imindensity = iexpand; - //cdebug.log(159) << "Accepted expand " << imindensity << endl; + //cdebug_log(159,0) << "Accepted expand " << imindensity << endl; } } @@ -374,14 +374,14 @@ namespace Kite { imaxconflict = (imindensity < gcells.size()) ? imindensity : gcells.size(); } } - cdebug.log(159) << "minExpanded:" << minExpanded << " (" << iminconflict + cdebug_log(159,0) << "minExpanded:" << minExpanded << " (" << iminconflict << ") maxExpanded:" << maxExpanded << " (" << imaxconflict << ")" << endl; // Check for full enclosure. if ( ( (iminconflict == gcells.size()) and (imaxconflict == gcells.size() ) ) or ( (iminconflict == 0) and (imaxconflict == gcells.size()-1) )) { cinfo << "[INFO] Manipulator::relax(): Segment fully enclosed in interval." << endl; - cdebug.tabw(159,-1); + cdebug_tabw(159,-1); return false; } @@ -412,47 +412,47 @@ namespace Kite { case 0: cerr << Bug( "Manipulator::relax() Can't find a GCell suitable for making dogleg." , getString(interval).c_str() ) << endl; - cdebug.tabw(159,-1); + cdebug_tabw(159,-1); return false; } - cdebug.log(159) << "| Has to do " << dogLegCount << " doglegs." << endl; + cdebug_log(159,0) << "| Has to do " << dogLegCount << " doglegs." << endl; // Check of "min is less than one track close the edge" (while not expanded). // AND we are on the first GCell AND there's one dogleg only. if (not minExpanded and (iminconflict == 0) and (imaxconflict == gcells.size())) { - cdebug.log(159) << "Cannot break in first GCell only." << endl; - cdebug.tabw(159,-1); + cdebug_log(159,0) << "Cannot break in first GCell only." << endl; + cdebug_tabw(159,-1); return false; } // Check of "min is less than one track close the edge" (while not expanded). if ( /*not minExpanded and*/ (iminconflict > 0) and (iminconflict < gcells.size()) ) { uside = gcells[iminconflict-1]->getSide(_segment->getDirection()); - cdebug.log(159) << "GCell Edge Comparison (min): " << uside + cdebug_log(159,0) << "GCell Edge Comparison (min): " << uside << " vs. " << DbU::getValueString(interval.getVMin()) << endl; // Ugly: One lambda shrink. if (interval.getVMin()-DbU::lambda(1.0) <= uside.getVMax()) { - cdebug.log(159) << "Using previous GCell." << endl; + cdebug_log(159,0) << "Using previous GCell." << endl; iminconflict--; } } // Check if there is only one dogleg AND it's the last one. if (not maxExpanded and (iminconflict == gcells.size()) and (imaxconflict == gcells.size()-1)) { - cdebug.log(159) << "Cannot break in last GCell only." << endl; - cdebug.tabw(159,-1); + cdebug_log(159,0) << "Cannot break in last GCell only." << endl; + cdebug_tabw(159,-1); return false; } // Check of "max is less than one track close the edge" (while not expanded). if ((imaxconflict < gcells.size()-1)) { uside = gcells[imaxconflict+1]->getSide( _segment->getDirection() ); - cdebug.log(159) << "GCell Edge Comparison (max): " << uside + cdebug_log(159,0) << "GCell Edge Comparison (max): " << uside << " vs. " << DbU::getValueString(interval.getVMax()) << endl; if (interval.getVMax()+getPPitch() >= uside.getVMin()) { interval.inflate( 0, getPPitch() ); - cdebug.log(159) << "Using next GCell " << interval << endl; + cdebug_log(159,0) << "Using next GCell " << interval << endl; imaxconflict++; } } @@ -467,7 +467,7 @@ namespace Kite { } // Making first dogleg. - cdebug.log(159) << "Making FIRST dogleg at " << ifirstDogleg << endl; + cdebug_log(159,0) << "Making FIRST dogleg at " << ifirstDogleg << endl; TrackElement* segment1 = NULL; TrackElement* segment2 = NULL; Track* track = _segment->getTrack(); @@ -481,14 +481,14 @@ namespace Kite { if (ifirstDogleg == 0) dogleg = _segment->getSourceDogleg(); if (ifirstDogleg == gcells.size()-1) dogleg = _segment->getTargetDogleg(); if (dogleg) { - cdebug.log(159) << "Reusing dogleg." << endl; + cdebug_log(159,0) << "Reusing dogleg." << endl; doglegReuse1 = true; segment1 = _segment; } else { // Try to create a new dogleg. if (not _segment->canDogleg(dogLegGCell)) { - cdebug.log(159) << "Cannot create FIRST dogleg." << endl; - cdebug.tabw(159,-1); + cdebug_log(159,0) << "Cannot create FIRST dogleg." << endl; + cdebug_tabw(159,-1); return false; } _segment->makeDogleg( dogLegGCell, dogleg, segment1 ); @@ -497,18 +497,18 @@ namespace Kite { if (firstDoglegIsMin) { if (minExpanded) { doglegAxis = dogLegGCell->getSide( _segment->getDirection() ).getCenter(); - //cdebug.log(159) << "MARK 1 doglegAxis: " << DbU::getValueString(doglegAxis) << endl; + //cdebug_log(159,0) << "MARK 1 doglegAxis: " << DbU::getValueString(doglegAxis) << endl; } else { doglegAxis = interval.getVMin() - getPPitch(); - //cdebug.log(159) << "MARK 2 doglegAxis: " << DbU::getValueString(doglegAxis) << endl; + //cdebug_log(159,0) << "MARK 2 doglegAxis: " << DbU::getValueString(doglegAxis) << endl; } } else { if (maxExpanded) { doglegAxis = dogLegGCell->getSide( _segment->getDirection() ).getVMin(); - //cdebug.log(159) << "MARK 3 doglegAxis: " << DbU::getValueString(doglegAxis) << endl; + //cdebug_log(159,0) << "MARK 3 doglegAxis: " << DbU::getValueString(doglegAxis) << endl; } else { doglegAxis = interval.getVMax() + getPPitch() - DbU::fromLambda(1.0); - //cdebug.log(159) << "MARK 4 doglegAxis: " << DbU::getValueString(doglegAxis) << endl; + //cdebug_log(159,0) << "MARK 4 doglegAxis: " << DbU::getValueString(doglegAxis) << endl; } } if (doglegReuse1) _fsm.addAction( dogleg, SegmentAction::OtherRipup ); @@ -517,35 +517,35 @@ namespace Kite { // If event is present, the dogleg is in the current RoutingSet. RoutingEvent* event = dogleg->getDataNegociate()->getRoutingEvent(); if (event) { - cdebug.log(159) << "Set Axis Hint: @" << DbU::getValueString(doglegAxis) << " " << dogleg << endl; + cdebug_log(159,0) << "Set Axis Hint: @" << DbU::getValueString(doglegAxis) << " " << dogleg << endl; event->setAxisHint( doglegAxis ); } else { - cdebug.log(159) << "Dogleg has no RoutingEvent yet." << endl; + cdebug_log(159,0) << "Dogleg has no RoutingEvent yet." << endl; } // Making second dogleg. if (dogLegCount > 1) { - cdebug.log(159) << "Making SECOND dogleg at " << isecondDogleg + cdebug_log(159,0) << "Making SECOND dogleg at " << isecondDogleg << " on " << segment1 << endl; dogleg = NULL; dogLegGCell = gcells[isecondDogleg]; if (ifirstDogleg == isecondDogleg) { - cdebug.log(159) << "Double break in same GCell." << endl; + cdebug_log(159,0) << "Double break in same GCell." << endl; segment1->setFlags( TElemSourceDogleg ); } if (isecondDogleg == gcells.size()-1) dogleg = segment1->getTargetDogleg(); if (dogleg) { - cdebug.log(159) << "Reusing dogleg." << endl; + cdebug_log(159,0) << "Reusing dogleg." << endl; doglegReuse2 = true; segment2 = segment1; } else { // Try to create a new dogleg. if (not segment1->canDogleg(dogLegGCell)) { - cdebug.log(159) << "Cannot create SECOND dogleg." << endl; - cdebug.tabw(159,-1); + cdebug_log(159,0) << "Cannot create SECOND dogleg." << endl; + cdebug_tabw(159,-1); return false; } segment1->makeDogleg( dogLegGCell, dogleg, segment2 ); @@ -562,10 +562,10 @@ namespace Kite { // If event is present, the dogleg is in the current RoutingSet. RoutingEvent* event = dogleg->getDataNegociate()->getRoutingEvent(); if (event) { - cdebug.log(159) << "Set Axis Hint: @" << DbU::getValueString(doglegAxis) << " " << dogleg << endl; + cdebug_log(159,0) << "Set Axis Hint: @" << DbU::getValueString(doglegAxis) << " " << dogleg << endl; event->setAxisHint( doglegAxis ); } else { - cdebug.log(159) << "Dogleg has no RoutingEvent yet." << endl; + cdebug_log(159,0) << "Dogleg has no RoutingEvent yet." << endl; } // This cases seems never to occurs. @@ -573,7 +573,7 @@ namespace Kite { for ( size_t i=0 ; igetTrack() and track) { - cdebug.log(159) << "Direct Track insert of: " << segment << endl; + cdebug_log(159,0) << "Direct Track insert of: " << segment << endl; Session::addInsertEvent( segment, track ); } } @@ -599,23 +599,23 @@ namespace Kite { } if (_segment->isLocal()) { - cdebug.log(159) << "Reset state of: " << _segment << endl; + cdebug_log(159,0) << "Reset state of: " << _segment << endl; _segment->getDataNegociate()->setState( DataNegociate::RipupPerpandiculars, true ); } else { - cdebug.log(159) << "No state reset: " << _segment << endl; + cdebug_log(159,0) << "No state reset: " << _segment << endl; } if ((not doglegReuse1) and segment1 and segment1->isLocal()) { - cdebug.log(159) << "Reset state of: " << segment1 << endl; + cdebug_log(159,0) << "Reset state of: " << segment1 << endl; segment1->getDataNegociate()->setState( DataNegociate::RipupPerpandiculars, true ); } if ((not doglegReuse2) and segment2 and segment2->isLocal()) { - cdebug.log(159) << "Reset state of: " << segment2 << endl; + cdebug_log(159,0) << "Reset state of: " << segment2 << endl; segment2->getDataNegociate()->setState( DataNegociate::RipupPerpandiculars, true ); } - cdebug.tabw(159,-1); + cdebug_tabw(159,-1); return success; } @@ -635,37 +635,37 @@ namespace Kite { bool rightIntrication = false; bool success = true; - cdebug.log(159) << "Manipulator::insertInTrack() - " << toFree << endl; + cdebug_log(159,0) << "Manipulator::insertInTrack() - " << toFree << endl; for ( size_t i = begin ; success && (i < end) ; i++ ) { TrackElement* segment2 = track->getSegment(i); - cdebug.log(159) << "* Looking // " << segment2 << endl; + cdebug_log(159,0) << "* Looking // " << segment2 << endl; if ( segment2->getNet() == ownerNet ) continue; if ( not toFree.intersect(segment2->getCanonicalInterval()) ) { - cdebug.log(159) << "No intersection with: " << segment2->getCanonicalInterval() << endl; + cdebug_log(159,0) << "No intersection with: " << segment2->getCanonicalInterval() << endl; continue; } if ( segment2->isBlockage() or segment2->isFixed() ) { - cdebug.log(159) << "Ovelap is blockage or fixed." << endl; + cdebug_log(159,0) << "Ovelap is blockage or fixed." << endl; success = false; continue; } // if ( segment2->getId() >= maxId ) { - // cdebug.log(159) << "Ovelap has an Id superior to AutoSegment::maxId:" << maxId << "." << endl; + // cdebug_log(159,0) << "Ovelap has an Id superior to AutoSegment::maxId:" << maxId << "." << endl; // continue; // } // ripupNet = segment2->getNet(); DataNegociate* data2 = segment2->getDataNegociate(); if ( !data2 ) { - cdebug.log(159) << "No DataNegociate, ignoring." << endl; + cdebug_log(159,0) << "No DataNegociate, ignoring." << endl; continue; } if ( data2->getState() == DataNegociate::MaximumSlack ) { - cdebug.log(159) << "At " << DataNegociate::getStateString(data2) + cdebug_log(159,0) << "At " << DataNegociate::getStateString(data2) << " for " << segment2 << endl; success = false; continue; @@ -675,7 +675,7 @@ namespace Kite { bool shrinkRight = false; if ( data2->getRightMinExtend() < toFree.getVMin() ) { - cdebug.log(159) << "- Shrink right edge (push left) " << segment2 << endl; + cdebug_log(159,0) << "- Shrink right edge (push left) " << segment2 << endl; shrinkRight = true; TrackElement* rightNeighbor2 = track->getSegment(i+1); if ( rightNeighbor2 && (rightNeighbor2->getNet() == segment2->getNet()) ) { @@ -688,7 +688,7 @@ namespace Kite { } if ( data2->getLeftMinExtend() > toFree.getVMax() ) { - cdebug.log(159) << "- Shrink left edge (push right) " << segment2 << endl; + cdebug_log(159,0) << "- Shrink left edge (push right) " << segment2 << endl; shrinkLeft = true; if ( i > 0 ) { TrackElement* leftNeighbor2 = track->getSegment(i-1); @@ -710,7 +710,7 @@ namespace Kite { } } - cdebug.log(159) << "- Hard overlap/enclosure/shrink " << segment2 << endl; + cdebug_log(159,0) << "- Hard overlap/enclosure/shrink " << segment2 << endl; if ( _segment->isStrap() and segment2->isGlobal() ) continue; if ( not (success = Manipulator(segment2,_fsm).ripup(SegmentAction::OtherRipup)) ) continue; @@ -725,11 +725,11 @@ namespace Kite { if ( not event3 ) continue; if ( not toFree.intersect(event3->getConstraints()) ) { - cdebug.log(159) << " . " << segment3 << endl; + cdebug_log(159,0) << " . " << segment3 << endl; continue; } - cdebug.log(159) << " | " << segment3 << endl; + cdebug_log(159,0) << " | " << segment3 << endl; if ( shrinkRight xor shrinkLeft ) { if ( shrinkRight ) { @@ -740,7 +740,7 @@ namespace Kite { break; if ( event3->getTracksFree() == 1 ) { - cdebug.log(159) << "Potential left intrication with other perpandicular." << endl; + cdebug_log(159,0) << "Potential left intrication with other perpandicular." << endl; if ( segment3->getAxis() == segment2->getTargetU() - Session::getExtensionCap(getLayer()) ) { leftIntrication = true; leftAxisHint = segment3->getAxis(); @@ -754,7 +754,7 @@ namespace Kite { )) ) break; if ( event3->getTracksFree() == 1 ) { - cdebug.log(159) << "Potential right intrication with other perpandicular." << endl; + cdebug_log(159,0) << "Potential right intrication with other perpandicular." << endl; if ( segment3->getAxis() == segment2->getSourceU() + Session::getExtensionCap(getLayer()) ) { rightIntrication = true; rightAxisHint = segment3->getAxis(); @@ -772,7 +772,7 @@ namespace Kite { } if ( success ) { - cdebug.log(159) << "Manipulator::insertInTrack() success" << endl; + cdebug_log(159,0) << "Manipulator::insertInTrack() success" << endl; _fsm.setState ( SegmentFsm::OtherRipup ); _fsm.addAction ( _segment @@ -802,12 +802,12 @@ namespace Kite { set canonicals; bool success = true; - cdebug.log(159) << "Manipulator::forceToTrack() - " << toFree << endl; + cdebug_log(159,0) << "Manipulator::forceToTrack() - " << toFree << endl; for ( size_t i=begin ; success and (i < end) ; ++i ) { TrackElement* segment2 = track->getSegment(i); - cdebug.log(159) << "* Looking // " << segment2 << endl; + cdebug_log(159,0) << "* Looking // " << segment2 << endl; if (segment2->getNet() == ownerNet) continue; if (not toFree.intersect(segment2->getCanonicalInterval())) continue; @@ -819,11 +819,11 @@ namespace Kite { DataNegociate* data2 = segment2->getDataNegociate(); if (not data2 ) { - cdebug.log(159) << "No DataNegociate, ignoring." << endl; + cdebug_log(159,0) << "No DataNegociate, ignoring." << endl; continue; } - cdebug.log(159) << "- Forced ripup " << segment2 << endl; + cdebug_log(159,0) << "- Forced ripup " << segment2 << endl; if (not (success=Manipulator(segment2,_fsm).ripup(SegmentAction::OtherRipup))) continue; @@ -864,17 +864,17 @@ namespace Kite { DbU::Unit leftExtend = _segment->getSourceU() + Session::getExtensionCap(getLayer()); DbU::Unit rightExtend = _segment->getSourceU() - Session::getExtensionCap(getLayer()); - cdebug.log(159) << "Manipulator::shrinkToTrack()" << endl; + cdebug_log(159,0) << "Manipulator::shrinkToTrack()" << endl; if (_segment->isLocal()) return false; Interval shrunkFree = _segment->base()->getMinSpanU(); - cdebug.log(159) << "* " << shrunkFree << endl; + cdebug_log(159,0) << "* " << shrunkFree << endl; for ( size_t i = begin ; success and (i < end) ; ++i ) { TrackElement* segment2 = track->getSegment(i); - cdebug.log(159) << "* Looking // " << segment2 << endl; + cdebug_log(159,0) << "* Looking // " << segment2 << endl; if (segment2->getNet() == ownerNet) continue; if (segment2->isFixed()) { success = false; continue; } @@ -895,7 +895,7 @@ namespace Kite { for ( iperpand = perpandiculars.begin() ; iperpand != perpandiculars.end() ; ++iperpand ) { DataNegociate* data2 = (*iperpand)->getDataNegociate(); if (data2) { - cdebug.log(159) << "| perpandicular bound:" << *iperpand << endl; + cdebug_log(159,0) << "| perpandicular bound:" << *iperpand << endl; success = Manipulator(*iperpand,_fsm).ripup( SegmentAction::SelfRipupPerpandWithAxisHint ); if (success) { if ((*iperpand)->getAxis() == leftExtend ) axisHint = leftAxisHint; @@ -913,7 +913,7 @@ namespace Kite { _fsm.addAction( _segment, SegmentAction::SelfInsert ); _fsm.setState ( SegmentFsm::OtherRipup ); - cdebug.log(159) << "Successful shrinkToTrack." << endl; + cdebug_log(159,0) << "Successful shrinkToTrack." << endl; return true; } #endif @@ -924,12 +924,12 @@ namespace Kite { bool Manipulator::forceOverLocals () { - cdebug.log(159,1) << "Manipulator::forceOverLocals()" << endl; + cdebug_log(159,1) << "Manipulator::forceOverLocals()" << endl; vector& costs = _fsm.getCosts(); size_t itrack = 0; for ( ; itrackgetSegment(i); - cdebug.log(159) << "* Looking // " << segment2 << endl; + cdebug_log(159,0) << "* Looking // " << segment2 << endl; if ( segment2->getNet() == ownerNet ) continue; if ( not toFree.intersect(segment2->getCanonicalInterval()) ) continue; @@ -958,12 +958,12 @@ namespace Kite { DataNegociate* data2 = segment2->getDataNegociate(); if ( not data2 ) { - cdebug.log(159) << "No DataNegociate, ignoring." << endl; + cdebug_log(159,0) << "No DataNegociate, ignoring." << endl; success = false; continue; } - cdebug.log(159) << "- Forced ripup " << segment2 << endl; + cdebug_log(159,0) << "- Forced ripup " << segment2 << endl; if ( not (success=Manipulator(segment2,_fsm).ripup(SegmentAction::OtherRipup)) ) { continue; } @@ -979,14 +979,14 @@ namespace Kite { } } - cdebug.tabw(159,-1); + cdebug_tabw(159,-1); return (itrack < costs.size()); } bool Manipulator::slacken ( unsigned int flags ) { - cdebug.log(159) << "Manipulator::slacken() " << _segment << endl; + cdebug_log(159,0) << "Manipulator::slacken() " << _segment << endl; if ( _segment->isFixed ()) return false; if (not _segment->canSlacken()) return false; @@ -997,7 +997,7 @@ namespace Kite { bool Manipulator::ripple () { - cdebug.log(159) << "Manipulator::ripple() from " << _segment << endl; + cdebug_log(159,0) << "Manipulator::ripple() from " << _segment << endl; //if (not _segment->canRipple()) return false; if (not _segment->isLocal()) return false; @@ -1006,7 +1006,7 @@ namespace Kite { Interval uside = _segment->base()->getAutoSource()->getGCell()->getSide ( Katabatic::perpandicularTo(_segment->getDirection())/*, false*/ ); RoutingPlane* plane = Session::getKiteEngine()->getRoutingPlaneByLayer(_segment->getLayer()); - cdebug.tabw(159,1); + cdebug_tabw(159,1); for( Track* track : Tracks_Range::get(plane,uside)) { size_t begin; size_t end; @@ -1014,7 +1014,7 @@ namespace Kite { track->getOverlapBounds( _segment->getCanonicalInterval(), begin, end ); for ( ; begin < end ; begin++ ) { TrackElement* other = track->getSegment(begin); - cdebug.log(159) << "| " << other << endl; + cdebug_log(159,0) << "| " << other << endl; if (other->getNet() == net) continue; if (not other->canRipple()) continue; @@ -1041,7 +1041,7 @@ namespace Kite { _fsm.addAction( other, SegmentAction::OtherRipup ); } } - cdebug.tabw(159,-1); + cdebug_tabw(159,-1); return true; } @@ -1049,7 +1049,7 @@ namespace Kite { bool Manipulator::pivotUp () { - cdebug.log(159) << "Manipulator::pivotUp() " << _segment << endl; + cdebug_log(159,0) << "Manipulator::pivotUp() " << _segment << endl; return false; if (_segment->isFixed()) return false; @@ -1064,7 +1064,7 @@ namespace Kite { bool Manipulator::pivotDown () { - cdebug.log(159) << "Manipulator::pivotDown() " << _segment << endl; + cdebug_log(159,0) << "Manipulator::pivotDown() " << _segment << endl; return false; if ( _segment->isFixed () ) return false; @@ -1077,7 +1077,7 @@ namespace Kite { bool Manipulator::moveUp ( unsigned int flags ) { - cdebug.log(159) << "Manipulator::moveUp() " << _segment << endl; + cdebug_log(159,0) << "Manipulator::moveUp() " << _segment << endl; unsigned int kflags = Katabatic::KbWithNeighbors; //kflags |= (flags & AllowLocalMoveUp ) ? Katabatic::AutoSegment::AllowLocal : 0; @@ -1103,7 +1103,7 @@ namespace Kite { bool Manipulator::makeDogleg () { - cdebug.log(159) << "Manipulator::makeDogleg() " << _segment << endl; + cdebug_log(159,0) << "Manipulator::makeDogleg() " << _segment << endl; if ( _segment->isFixed()) return false; if (not _segment->isLocal()) return false; @@ -1120,7 +1120,7 @@ namespace Kite { for ( size_t i=begin ; igetSegment(i); - cdebug.log(159) << "* Looking // " << segment2 << endl; + cdebug_log(159,0) << "* Looking // " << segment2 << endl; if ( segment2->getNet() == ownerNet) continue; if (not toFree.intersect(segment2->getCanonicalInterval())) continue; @@ -1143,8 +1143,8 @@ namespace Kite { bool Manipulator::makeDogleg ( Interval overlap ) { - cdebug.log(159) << "Manipulator::makeDogleg(Interval) " << _segment << endl; - cdebug.log(159) << overlap << endl; + cdebug_log(159,0) << "Manipulator::makeDogleg(Interval) " << _segment << endl; + cdebug_log(159,0) << overlap << endl; if ( _segment->isFixed () ) return false; if (not _segment->canDogleg(overlap)) return false; @@ -1152,7 +1152,7 @@ namespace Kite { unsigned int flags = 0; TrackElement* dogleg = _segment->makeDogleg(overlap,flags); if (dogleg) { - cdebug.log(159) << "Manipulator::makeDogleg(Interval) - Push dogleg to the " + cdebug_log(159,0) << "Manipulator::makeDogleg(Interval) - Push dogleg to the " << ((flags&Katabatic::KbDoglegOnLeft)?"left":"right") << endl; if (_segment->isTerminal()) { Katabatic::AutoContact* contact = @@ -1163,7 +1163,7 @@ namespace Kite { if (event) { event->setAxisHint ( axisHint ); event->setForcedToHint( true ); - cdebug.log(159) << "Forced to axis hint @" << DbU::getValueString(axisHint) << endl; + cdebug_log(159,0) << "Forced to axis hint @" << DbU::getValueString(axisHint) << endl; } } return true; @@ -1175,8 +1175,8 @@ namespace Kite { bool Manipulator::makeDogleg ( DbU::Unit position ) { - cdebug.log(159) << "Manipulator::makeDogleg(position) " << _segment << endl; - cdebug.log(159) << "Breaking position: " << DbU::getValueString(position) << endl; + cdebug_log(159,0) << "Manipulator::makeDogleg(position) " << _segment << endl; + cdebug_log(159,0) << "Breaking position: " << DbU::getValueString(position) << endl; if (_segment->isFixed()) return false; @@ -1200,7 +1200,7 @@ namespace Kite { bool Manipulator::minimize () { - cdebug.log(159) << "Manipulator::minimize() " << _segment << endl; + cdebug_log(159,0) << "Manipulator::minimize() " << _segment << endl; if (_segment->isFixed()) return false; if (not _event->canMinimize()) return false; @@ -1210,10 +1210,10 @@ namespace Kite { Interval punctualSpan ( false ); if (_segment->base()->getAutoSource()->getAnchor()) { - cdebug.log(159) << " | " << _segment->base()->getAutoSource() << endl; + cdebug_log(159,0) << " | " << _segment->base()->getAutoSource() << endl; Interval constraints ( _segment->base()->getAutoSource()->getUConstraints (perpandicularTo(_segment->getDirection())) ); - cdebug.log(159) << " | Constraints: " << constraints << endl; + cdebug_log(159,0) << " | Constraints: " << constraints << endl; minSpan = min( minSpan, constraints.getVMax() ); maxSpan = max( maxSpan, constraints.getVMin() ); @@ -1221,10 +1221,10 @@ namespace Kite { } if (_segment->base()->getAutoTarget()->getAnchor()) { - cdebug.log(159) << " | " << _segment->base()->getAutoTarget() << endl; + cdebug_log(159,0) << " | " << _segment->base()->getAutoTarget() << endl; Interval constraints ( _segment->base()->getAutoTarget()->getUConstraints (perpandicularTo(_segment->getDirection())) ); - cdebug.log(159) << " | Constraints: " << constraints << endl; + cdebug_log(159,0) << " | Constraints: " << constraints << endl; minSpan = min( minSpan, constraints.getVMax() ); maxSpan = max( maxSpan, constraints.getVMin() ); @@ -1236,12 +1236,12 @@ namespace Kite { DataNegociate* data2 = perpandiculars[i]->getDataNegociate(); if (not data2) continue; - cdebug.log(159) << " | " << perpandiculars[i] << endl; + cdebug_log(159,0) << " | " << perpandiculars[i] << endl; RoutingEvent* event2 = data2->getRoutingEvent(); if (not event2) continue; - cdebug.log(159) << " | Constraints: " << event2->getConstraints() << endl; + cdebug_log(159,0) << " | Constraints: " << event2->getConstraints() << endl; minSpan = min( minSpan, event2->getConstraints().getVMax() ); maxSpan = max( maxSpan, event2->getConstraints().getVMin() ); @@ -1249,7 +1249,7 @@ namespace Kite { } if (minSpan > maxSpan) swap( minSpan, maxSpan ); - cdebug.log(159) << "punctualSpan: " << punctualSpan + cdebug_log(159,0) << "punctualSpan: " << punctualSpan << " min/max span: [" << DbU::getValueString(minSpan) << ":" << DbU::getValueString(maxSpan) << "]" << " long: [" << minSpan @@ -1263,7 +1263,7 @@ namespace Kite { if (end < track->getSize()) end++; - cdebug.log(159) << "Looking for holes in " << _fsm.getCost(itrack) << endl; + cdebug_log(159,0) << "Looking for holes in " << _fsm.getCost(itrack) << endl; TrackElement* otherPrevious = NULL; // ToDo: Manage disjoint but subsequent segment of a Net. @@ -1274,13 +1274,13 @@ namespace Kite { if (not otherPrevious) { holes.push_back( Interval(track->getMin() ,otherSegment->getSourceU()) ); - cdebug.log(159) << "| First hole: " << holes.back() << " " << otherSegment << endl; + cdebug_log(159,0) << "| First hole: " << holes.back() << " " << otherSegment << endl; } else { if (otherSegment->getNet() == otherPrevious->getNet()) continue; holes.push_back( Interval(otherPrevious->getTargetU() ,otherSegment ->getSourceU()) ); - cdebug.log(159) << "| Found hole: " << holes.back() + cdebug_log(159,0) << "| Found hole: " << holes.back() << " " << otherPrevious << " <-> " << " " << otherSegment << endl; } otherPrevious = otherSegment; @@ -1288,7 +1288,7 @@ namespace Kite { } if (holes.empty()) { - cdebug.log(159) << "No holes found to minimize into." << endl; + cdebug_log(159,0) << "No holes found to minimize into." << endl; return false; } @@ -1305,45 +1305,45 @@ namespace Kite { bool success = false; if (biggestHole.intersect(punctualSpan)) { - cdebug.log(159) << "Go as punctual into biggest hole: " << biggestHole << endl; + cdebug_log(159,0) << "Go as punctual into biggest hole: " << biggestHole << endl; axisHint = biggestHole.intersection(punctualSpan).getCenter(); success = true; } else { for ( size_t i=0 ; igetDataNegociate(); if (not data2) continue; - cdebug.log(159) << " | " << perpandiculars[i] << endl; + cdebug_log(159,0) << " | " << perpandiculars[i] << endl; RoutingEvent* event2 = data2->getRoutingEvent(); if (not event2) continue; @@ -1388,7 +1388,7 @@ namespace Kite { void Manipulator::repackPerpandiculars () { - cdebug.log(159) << "Manipulator::repackPerpandiculars()" << endl; + cdebug_log(159,0) << "Manipulator::repackPerpandiculars()" << endl; const vector& perpandiculars = _event->getPerpandiculars(); for ( size_t iperpand=0 ; iperpandgetCanonicalInterval(); if (not intersect.intersect(cost.getInterval())) return; if (segment->isBlockage() or segment->isFixed()) { - cdebug.log(159) << "Infinite cost from: " << segment << endl; + cdebug_log(159,0) << "Infinite cost from: " << segment << endl; cost.setInfinite (); cost.setOverlap (); cost.setHardOverlap(); @@ -83,7 +83,7 @@ namespace { if ( segment->isLocal() ) { cost.mergeDataState( data->getState() ); if (data->getState() >= DataNegociate::LocalVsGlobal) { - cdebug.log(159) << "MaximumSlack/LocalVsGlobal for " << segment << endl; + cdebug_log(159,0) << "MaximumSlack/LocalVsGlobal for " << segment << endl; } } @@ -101,13 +101,13 @@ namespace { cost.setOverlap(); if ( segment->isLocal() or (cost.isForGlobal() and (Session::getRoutingGauge()->getLayerDepth(segment->getLayer()) < 3)) ) { - cdebug.log(9000) << "Deter| incTerminals() " << boolalpha << cost.isForGlobal() << " " << (data->getTerminals()*100) << endl; + cdebug_log(9000,0) << "Deter| incTerminals() " << boolalpha << cost.isForGlobal() << " " << (data->getTerminals()*100) << endl; cost.incTerminals( data->getTerminals()*100 ); } else { - cdebug.log(9000) << "Deter| isForGlobal() " << boolalpha << cost.isForGlobal() << endl; + cdebug_log(9000,0) << "Deter| isForGlobal() " << boolalpha << cost.isForGlobal() << endl; } - cdebug.log(159) << "| Increment Delta: " << DbU::getValueString(intersect.getSize()) << endl; + cdebug_log(159,0) << "| Increment Delta: " << DbU::getValueString(intersect.getSize()) << endl; cost.incDelta( intersect.getSize() ); } @@ -225,7 +225,7 @@ namespace Kite { TrackElement* NegociateWindow::createTrackSegment ( AutoSegment* autoSegment, unsigned int flags ) { - cdebug.log(159,1) << "NegociateWindow::createTrackSegment() - " << autoSegment << endl; + cdebug_log(159,1) << "NegociateWindow::createTrackSegment() - " << autoSegment << endl; // Special case: fixed AutoSegments must not interfere with blockages. // Ugly: uses of getExtensionCap(). @@ -244,25 +244,25 @@ namespace Kite { for ( ; (begin < end) ; begin++ ) { TrackElement* other = track->getSegment(begin); - cdebug.log(159) << "| overlap: " << other << endl; + cdebug_log(159,0) << "| overlap: " << other << endl; if (not other->isBlockage()) continue; other->getCanonical( blockageSpan ); blockageSpan.inflate( Session::getExtensionCap(autoSegment->getLayer()) ); - cdebug.log(159) << " fixed:" << fixedSpan << " vs. blockage:" << blockageSpan << endl; + cdebug_log(159,0) << " fixed:" << fixedSpan << " vs. blockage:" << blockageSpan << endl; if (not fixedSpan.intersect(blockageSpan)) continue; // Overlap between fixed & blockage. - cdebug.log(159) << "* Blockage overlap: " << autoSegment << endl; + cdebug_log(159,0) << "* Blockage overlap: " << autoSegment << endl; Session::destroyRequest( autoSegment ); cerr << Warning( "Overlap between fixed %s and blockage at %s." , getString(autoSegment).c_str() , getString(blockageSpan).c_str() ) << endl; - cdebug.tabw(159,-1); + cdebug_tabw(159,-1); return NULL; } } @@ -274,10 +274,10 @@ namespace Kite { TrackElement* trackSegment = TrackSegment::create( autoSegment, NULL, created ); if (not (flags & KtLoadingStage)) - cdebug.log(159) << "* lookup: " << autoSegment << endl; + cdebug_log(159,0) << "* lookup: " << autoSegment << endl; if (created) { - cdebug.log(159) << "* " << trackSegment << endl; + cdebug_log(159,0) << "* " << trackSegment << endl; RoutingPlane* plane = Session::getKiteEngine()->getRoutingPlaneByLayer(autoSegment->getLayer()); Track* track = plane->getTrackByPosition ( autoSegment->getAxis() ); @@ -286,9 +286,9 @@ namespace Kite { if (track->getAxis() > uside.getVMax()) track = track->getPreviousTrack(); if (track->getAxis() < uside.getVMin()) track = track->getNextTrack(); - cdebug.log(159) << "* GCell U-side " << uside << endl; - cdebug.log(159) << "* " << plane << endl; - cdebug.log(159) << "* " << track << endl; + cdebug_log(159,0) << "* GCell U-side " << uside << endl; + cdebug_log(159,0) << "* " << plane << endl; + cdebug_log(159,0) << "* " << track << endl; trackSegment->setAxis( track->getAxis(), Katabatic::SegAxisSet ); trackSegment->invalidate(); @@ -301,10 +301,10 @@ namespace Kite { } if (not created and not (flags & KtLoadingStage)) { - cdebug.log(159) << "TrackSegment already exists (and not in loading stage)." << endl; + cdebug_log(159,0) << "TrackSegment already exists (and not in loading stage)." << endl; } - cdebug.tabw(159,-1); + cdebug_tabw(159,-1); return trackSegment; } @@ -347,26 +347,26 @@ namespace Kite { void NegociateWindow::_createRouting ( Katabatic::GCell* gcell ) { - cdebug.log(159,1) << "NegociateWindow::_createRouting() - " << gcell << endl; + cdebug_log(159,1) << "NegociateWindow::_createRouting() - " << gcell << endl; Segment* segment; AutoSegment* autoSegment; - cdebug.log(159) << "AutoSegments from AutoContacts" << endl; + cdebug_log(159,0) << "AutoSegments from AutoContacts" << endl; const vector& contacts = gcell->getContacts(); for ( size_t i=0 ; igetSlaveComponents() ) { segment = dynamic_cast(component); autoSegment = Session::base()->lookup( segment ); - cdebug.log(159) << autoSegment << endl; + cdebug_log(159,0) << autoSegment << endl; if (autoSegment and autoSegment->isCanonical()) { createTrackSegment( autoSegment, KtLoadingStage ); } } } - cdebug.log(159) << "_segments.size():" << _segments.size() << endl; - cdebug.tabw(159,-1); + cdebug_log(159,0) << "_segments.size():" << _segments.size() << endl; + cdebug_tabw(159,-1); } @@ -424,8 +424,8 @@ namespace Kite { size_t NegociateWindow::_negociate () { - cdebug.log(9000) << "Deter| NegociateWindow::_negociate()" << endl; - cdebug.log(159,1) << "NegociateWindow::_negociate() - " << _segments.size() << endl; + cdebug_log(9000,0) << "Deter| NegociateWindow::_negociate()" << endl; + cdebug_log(159,1) << "NegociateWindow::_negociate() - " << _segments.size() << endl; cmess1 << " o Negociation Stage." << endl; @@ -469,10 +469,10 @@ namespace Kite { //_pack( count, true ); if (count and cmess2.enabled() and tty::enabled()) cmess1 << endl; - cdebug.log(9000) << "Deter| Repair Stage" << endl; + cdebug_log(9000,0) << "Deter| Repair Stage" << endl; cmess1 << " o Repair Stage." << endl; - cdebug.log(159) << "Loadind Repair queue." << endl; + cdebug_log(159,0) << "Loadind Repair queue." << endl; RoutingEvent::setStage( RoutingEvent::Repair ); for ( size_t i=0 ; (i<_eventHistory.size()) and not isInterrupted() ; i++ ) { RoutingEvent* event = _eventHistory.getNth(i); @@ -524,7 +524,7 @@ namespace Kite { } _statistics.setEventsCount( eventsCount ); - cdebug.tabw(159,-1); + cdebug_tabw(159,-1); return eventsCount; } @@ -532,7 +532,7 @@ namespace Kite { void NegociateWindow::run ( unsigned int flags ) { - cdebug.log(159,1) << "NegociateWindow::run()" << endl; + cdebug_log(159,1) << "NegociateWindow::run()" << endl; cmess1 << " o Running Negociate Algorithm" << endl; @@ -571,7 +571,7 @@ namespace Kite { _kite->_check( overlaps, "after negociation" ); # endif - cdebug.tabw(159,-1); + cdebug_tabw(159,-1); } diff --git a/kite/src/PreProcess.cpp b/kite/src/PreProcess.cpp index 36fec087..880d2962 100644 --- a/kite/src/PreProcess.cpp +++ b/kite/src/PreProcess.cpp @@ -51,7 +51,7 @@ namespace { TrackElement* perpandicular; for( Segment* osegment : segment->base()->getAutoSource()->getSlaveComponents().getSubSet() ) { perpandicular = Session::lookup ( osegment ); - cdebug.log(159) << "S " << perpandicular << endl; + cdebug_log(159,0) << "S " << perpandicular << endl; if ( not perpandicular or (perpandicular->getDirection() == direction) ) continue; @@ -60,7 +60,7 @@ namespace { for( Segment* osegment : segment->base()->getAutoTarget()->getSlaveComponents().getSubSet() ) { perpandicular = Session::lookup ( osegment ); - cdebug.log(159) << "T " << perpandicular << endl; + cdebug_log(159,0) << "T " << perpandicular << endl; if ( not perpandicular or (perpandicular->getDirection() == direction) ) continue; @@ -71,12 +71,12 @@ namespace { void findFailedPerpandiculars ( RoutingPad* rp, unsigned int direction, set& faileds ) { - cdebug.log(159) << "Find failed caging: " << rp << endl; + cdebug_log(159,0) << "Find failed caging: " << rp << endl; TrackElement* parallel; for( Segment* osegment : rp->getSlaveComponents().getSubSet() ) { parallel = Session::lookup ( osegment ); - cdebug.log(159) << "* " << parallel << endl; + cdebug_log(159,0) << "* " << parallel << endl; if ( parallel->isFixed () ) continue; if ( parallel->getDirection() != direction ) continue; @@ -97,7 +97,7 @@ namespace { { if (not segment->isFixed()) return; - cdebug.log(159) << "Propagate caging: " << segment << endl; + cdebug_log(159,0) << "Propagate caging: " << segment << endl; Track* track = segment->getTrack(); //unsigned int direction = Session::getRoutingGauge()->getLayerDirection(segment->getLayer()); @@ -124,7 +124,7 @@ namespace { if (parallel->getNet() == segment->getNet()) continue; if (not parallel->isFixed()) continue; - cdebug.log(159) << "Min Constraint from: " << parallel << endl; + cdebug_log(159,0) << "Min Constraint from: " << parallel << endl; minConstraint = max( minConstraint, parallel->getTargetU() ); } @@ -136,7 +136,7 @@ namespace { if (parallel->getNet() == segment->getNet()) continue; if (not parallel->isFixed()) continue; - cdebug.log(159) << "Max Constraint from: " << parallel << endl; + cdebug_log(159,0) << "Max Constraint from: " << parallel << endl; maxConstraint = min( maxConstraint, parallel->getSourceU() ); } @@ -145,7 +145,7 @@ namespace { return; } if ( (minConstraint <= uside.getVMin()) and (maxConstraint >= uside.getVMax()) ) { - cdebug.log(159) << "No constraints [" << DbU::getValueString(minConstraint) + cdebug_log(159,0) << "No constraints [" << DbU::getValueString(minConstraint) << ":" << DbU::getValueString(maxConstraint) << " vs. " << uside << endl; return; @@ -158,7 +158,7 @@ namespace { TrackElement* parallel; for( Segment* osegment : rp->getSlaveComponents().getSubSet() ) { parallel = Session::lookup( osegment ); - cdebug.log(159) << "* " << parallel << endl; + cdebug_log(159,0) << "* " << parallel << endl; if (parallel->isFixed ()) continue; if (parallel->isGlobal()) continue; @@ -173,31 +173,31 @@ namespace { } // Apply caging constraints to perpandiculars. - cdebug.tabw(159,1); + cdebug_tabw(159,1); if (perpandiculars.size() == 0) { - cdebug.log(159) << "No perpandiculars to " << segment << endl; - cdebug.tabw(159,-1); + cdebug_log(159,0) << "No perpandiculars to " << segment << endl; + cdebug_tabw(159,-1); return; } Interval constraints ( minConstraint, maxConstraint ); for ( size_t iperpand=0 ; iperpandbase()->mergeUserConstraints( constraints ); if (perpandiculars[iperpand]->base()->getUserConstraints().isEmpty()) { - cdebug.log(159) << "Cumulative caged constraints are too tight on " << perpandiculars[iperpand] << endl; + cdebug_log(159,0) << "Cumulative caged constraints are too tight on " << perpandiculars[iperpand] << endl; findFailedPerpandiculars( rp, direction, faileds ); } } - cdebug.tabw(159,-1); + cdebug_tabw(159,-1); } void moveUpCaged ( TrackElement* segment ) { DebugSession::open( segment->getNet(), 150, 160 ); - cdebug.log(159,1) << "::moveUpCaged() " << segment << endl; + cdebug_log(159,1) << "::moveUpCaged() " << segment << endl; //Configuration* configuration = Session::getConfiguration(); //const Layer* metal2 = configuration->getRoutingLayer( 1 ); @@ -215,14 +215,14 @@ namespace { } } - cdebug.tabw(159,-1); + cdebug_tabw(159,-1); DebugSession::close(); } void protectCagedTerminals ( Track* track ) { - cdebug.log(159,1) << "protectCagedTerminals() " << track << endl; + cdebug_log(159,1) << "protectCagedTerminals() " << track << endl; DbU::Unit lastMovedUp = track->getMin(); unsigned int moveUpCount = 0; @@ -234,7 +234,7 @@ namespace { RoutingPlane* metal3plane = track->getRoutingPlane()->getTop(); if (track->getLayer() != metal2) { - cdebug.tabw(159,-1); + cdebug_tabw(159,-1); return; } @@ -315,7 +315,7 @@ namespace { } } - cdebug.tabw(159,-1); + cdebug_tabw(159,-1); } diff --git a/kite/src/PyGraphicKiteEngine.cpp b/kite/src/PyGraphicKiteEngine.cpp index 0ac5107e..aa126c6a 100644 --- a/kite/src/PyGraphicKiteEngine.cpp +++ b/kite/src/PyGraphicKiteEngine.cpp @@ -48,7 +48,7 @@ extern "C" { static PyObject* PyGraphicKiteEngine_grab ( PyObject* ) { - cdebug.log(40) << "PyGraphicKiteEngine_grab()" << endl; + cdebug_log(40,0) << "PyGraphicKiteEngine_grab()" << endl; PyGraphicKiteEngine* pyGraphicKiteEngine = NULL; HTRY @@ -64,7 +64,7 @@ extern "C" { static PyObject* PyGraphicKiteEngine_getCell ( PyGraphicKiteEngine* self ) { - cdebug.log(40) << "PyGraphicKiteEngine_getCell ()" << endl; + cdebug_log(40,0) << "PyGraphicKiteEngine_getCell ()" << endl; Cell* cell = NULL; diff --git a/kite/src/PyKite.cpp b/kite/src/PyKite.cpp index ac838ac0..9550085a 100644 --- a/kite/src/PyKite.cpp +++ b/kite/src/PyKite.cpp @@ -65,7 +65,7 @@ extern "C" { // Module Initialization : "initKite ()" DL_EXPORT(void) initKite () { - cdebug.log(40) << "initKite()" << endl; + cdebug_log(40,0) << "initKite()" << endl; PyKiteEngine_LinkPyType(); PyGraphicKiteEngine_LinkPyType(); diff --git a/kite/src/PyKiteEngine.cpp b/kite/src/PyKiteEngine.cpp index d4598fe5..572f095e 100644 --- a/kite/src/PyKiteEngine.cpp +++ b/kite/src/PyKiteEngine.cpp @@ -62,7 +62,7 @@ extern "C" { #define DirectVoidToolMethod(SELF_TYPE, SELF_OBJECT, FUNC_NAME) \ static PyObject* Py##SELF_TYPE##_##FUNC_NAME(Py##SELF_TYPE* self) \ { \ - cdebug.log(40) << "Py" #SELF_TYPE "_" #FUNC_NAME "()" << endl; \ + cdebug_log(40,0) << "Py" #SELF_TYPE "_" #FUNC_NAME "()" << endl; \ HTRY \ METHOD_HEAD(#SELF_TYPE "." #FUNC_NAME "()") \ if (SELF_OBJECT->getViewer()) { \ @@ -85,7 +85,7 @@ extern "C" { static PyObject* PyKiteEngine_wipeoutRouting ( PyObject*, PyObject* args ) { - cdebug.log(40) << "PyKiteEngine_wipeoutRouting()" << endl; + cdebug_log(40,0) << "PyKiteEngine_wipeoutRouting()" << endl; HTRY PyObject* arg0; @@ -102,7 +102,7 @@ extern "C" { static PyObject* PyKiteEngine_get ( PyObject*, PyObject* args ) { - cdebug.log(40) << "PyKiteEngine_get()" << endl; + cdebug_log(40,0) << "PyKiteEngine_get()" << endl; KiteEngine* kite = NULL; @@ -119,7 +119,7 @@ extern "C" { static PyObject* PyKiteEngine_create ( PyObject*, PyObject* args ) { - cdebug.log(40) << "PyKiteEngine_create()" << endl; + cdebug_log(40,0) << "PyKiteEngine_create()" << endl; KiteEngine* kite = NULL; @@ -145,7 +145,7 @@ extern "C" { static PyObject* PyKiteEngine_setViewer ( PyKiteEngine* self, PyObject* args ) { - cdebug.log(40) << "PyKiteEngine_setViewer ()" << endl; + cdebug_log(40,0) << "PyKiteEngine_setViewer ()" << endl; HTRY METHOD_HEAD( "KiteEngine.setViewer()" ) @@ -166,7 +166,7 @@ extern "C" { PyObject* PyKiteEngine_runGlobalRouter ( PyKiteEngine* self, PyObject* args ) { - cdebug.log(40) << "PyKiteEngine_runGlobalRouter()" << endl; + cdebug_log(40,0) << "PyKiteEngine_runGlobalRouter()" << endl; HTRY METHOD_HEAD("KiteEngine.runGlobalRouter()") @@ -192,7 +192,7 @@ extern "C" { PyObject* PyKiteEngine_loadGlobalRouting ( PyKiteEngine* self, PyObject* args ) { - cdebug.log(40) << "PyKiteEngine_loadGlobalRouting()" << endl; + cdebug_log(40,0) << "PyKiteEngine_loadGlobalRouting()" << endl; HTRY METHOD_HEAD("KiteEngine.loadGlobalRouting()") @@ -243,7 +243,7 @@ extern "C" { PyObject* PyKiteEngine_layerAssign ( PyKiteEngine* self, PyObject* args ) { - cdebug.log(40) << "PyKiteEngine_layerAssign()" << endl; + cdebug_log(40,0) << "PyKiteEngine_layerAssign()" << endl; HTRY METHOD_HEAD("KiteEngine.layerAssign()") @@ -275,7 +275,7 @@ extern "C" { static PyObject* PyKiteEngine_runNegociatePreRouted ( PyKiteEngine* self ) { - cdebug.log(40) << "PyKiteEngine_runNegociatePreRouted()" << endl; + cdebug_log(40,0) << "PyKiteEngine_runNegociatePreRouted()" << endl; HTRY METHOD_HEAD("KiteEngine.runNegociatePreRouted()") if (kite->getViewer()) { @@ -293,7 +293,7 @@ extern "C" { static PyObject* PyKiteEngine_runNegociate ( PyKiteEngine* self ) { - cdebug.log(40) << "PyKiteEngine_runNegociate()" << endl; + cdebug_log(40,0) << "PyKiteEngine_runNegociate()" << endl; HTRY METHOD_HEAD("KiteEngine.runNegociate()") if (kite->getViewer()) { diff --git a/kite/src/RoutingEvent.cpp b/kite/src/RoutingEvent.cpp index a2c495ee..4799a2d9 100644 --- a/kite/src/RoutingEvent.cpp +++ b/kite/src/RoutingEvent.cpp @@ -186,8 +186,8 @@ namespace Kite { DataNegociate* data = _segment->getDataNegociate(); if (data) data->setRoutingEvent( this ); - cdebug.log(159) << "create: " << this << endl; - cdebug.log(159) << "Initial setAxisHint @" << DbU::getValueString(getAxisHint()) << endl; + cdebug_log(159,0) << "create: " << this << endl; + cdebug_log(159,0) << "Initial setAxisHint @" << DbU::getValueString(getAxisHint()) << endl; if (_segment->getTrack()) { cerr << Bug( "RoutingEvent::create() - TrackElement is already inserted in a Track." @@ -224,7 +224,7 @@ namespace Kite { clone->_disabled = false; clone->_eventLevel = 0; - cdebug.log(159) << "RoutingEvent::clone() " << clone + cdebug_log(159,0) << "RoutingEvent::clone() " << clone << " (from: " << ")" << endl; return clone; @@ -233,7 +233,7 @@ namespace Kite { RoutingEvent::~RoutingEvent () { - cdebug.log(159) << "~RoutingEvent() " << endl; + cdebug_log(159,0) << "~RoutingEvent() " << endl; DataNegociate* data = _segment->getDataNegociate(); if ( data and (data->getRoutingEvent() == this) ) @@ -243,7 +243,7 @@ namespace Kite { void RoutingEvent::destroy () { - cdebug.log(159) << "RoutingEvent::destroy() " << this << endl; + cdebug_log(159,0) << "RoutingEvent::destroy() " << this << endl; if (_allocateds > 0) --_allocateds; delete this; @@ -274,7 +274,7 @@ namespace Kite { void RoutingEvent::setAxisHint ( DbU::Unit axis ) { - cdebug.log(159) << "setAxisHint @" << DbU::getValueString(axis) << " " << _segment << endl; + cdebug_log(159,0) << "setAxisHint @" << DbU::getValueString(axis) << " " << _segment << endl; _axisHint = axis; } @@ -298,7 +298,7 @@ namespace Kite { } _axisHint = parent->getAxis(); - cdebug.log(159) << "setAxisHintFromParent() - hint:" << DbU::getValueString(_axisHint) + cdebug_log(159,0) << "setAxisHintFromParent() - hint:" << DbU::getValueString(_axisHint) << " axis:" << DbU::getValueString(parent->getAxis()) << " parent:" << parent << endl; return; } @@ -312,14 +312,14 @@ namespace Kite { RoutingEvent* fork = NULL; if ( (getStage() != Repair) and isUnimplemented() ) { - cdebug.log(159) << "Reschedule: cancelled (Unimplemented) " + cdebug_log(159,0) << "Reschedule: cancelled (Unimplemented) " << " -> " << fork << endl; return NULL; } if (not isProcessed()) { fork = this; - cdebug.log(159) << "Reschedule/Self: " + cdebug_log(159,0) << "Reschedule/Self: " << " -> " << eventLevel << ":" << fork << endl; } else { @@ -328,7 +328,7 @@ namespace Kite { _segment->getDataNegociate()->setRoutingEvent( fork ); - cdebug.log(159) << "Reschedule/Fork: " + cdebug_log(159,0) << "Reschedule/Fork: " << " -> " << fork << endl; } @@ -396,19 +396,19 @@ namespace Kite { DebugSession::open( _segment->getNet(), 150, 160 ); - cdebug.log(9000) << "Deter| Event " + cdebug_log(9000,0) << "Deter| Event " << getProcesseds() << "," << getEventLevel() << "," << setw(6) << getPriority() << ": " << _segment << endl; _processeds++; - cdebug.tabw(159,1); - cdebug.log(159) << "State: *before* " + cdebug_tabw(159,1); + cdebug_log(159,0) << "State: *before* " << DataNegociate::getStateString(_segment->getDataNegociate()) << " ripup:" << _segment->getDataNegociate()->getRipupCount() << endl; - cdebug.log(159) << "Level: " << getEventLevel() + cdebug_log(159,0) << "Level: " << getEventLevel() << ", area: " << _segment->getFreedomDegree() << endl; //_preCheck( _segment ); @@ -417,7 +417,7 @@ namespace Kite { if (_mode != Pack) history.push( this ); if ( isProcessed() or isDisabled() ) { - cdebug.log(159) << "Already processed or disabled." << endl; + cdebug_log(159,0) << "Already processed or disabled." << endl; } else { setProcessed(); setTimeStamp( _processeds ); @@ -431,7 +431,7 @@ namespace Kite { break; } } - cdebug.tabw(159,-1); + cdebug_tabw(159,-1); queue.repushInvalidateds(); Session::revalidate(); @@ -450,7 +450,7 @@ namespace Kite { void RoutingEvent::_processNegociate ( RoutingEventQueue& queue, RoutingEventHistory& history ) { - cdebug.log(159) << "* Mode:Negociation." << endl; + cdebug_log(159,0) << "* Mode:Negociation." << endl; SegmentFsm fsm ( this, queue, history ); @@ -459,23 +459,23 @@ namespace Kite { return; } - cdebug.tabw(159,1); + cdebug_tabw(159,1); fsm.getData()->incRipupCount(); size_t itrack = 0; for ( itrack = 0 ; itrack < fsm.getCosts().size() ; itrack++ ) - cdebug.log(159) << "| " << fsm.getCost(itrack) << endl; + cdebug_log(159,0) << "| " << fsm.getCost(itrack) << endl; itrack = 0; if ( (not isOverConstrained()) and Manipulator(_segment,fsm).canRipup() ) { if (fsm.getCosts().size() and fsm.getCost(itrack).isFree()) { - cdebug.log(159) << "Insert in free space " << this << endl; + cdebug_log(159,0) << "Insert in free space " << this << endl; resetInsertState(); _axisHistory = _segment->getAxis(); _eventLevel = 0; - cdebug.log(9000) << "Deter| addInsertEvent() @" << fsm.getCost(itrack).getTrack() << endl; + cdebug_log(9000,0) << "Deter| addInsertEvent() @" << fsm.getCost(itrack).getTrack() << endl; if (not _segment->isReduced()) Session::addInsertEvent( _segment, fsm.getCost(itrack).getTrack() ); fsm.setState( SegmentFsm::SelfInserted ); @@ -487,11 +487,11 @@ namespace Kite { if (Manipulator(_segment,fsm).canRipup(Manipulator::NotOnLastRipup)) { if (cdebug.enabled(9000)) { for ( itrack=0 ; itracksetState( DataNegociate::Slacken ); } if (not fsm.slackenTopology()) { @@ -517,17 +517,17 @@ namespace Kite { fsm.doActions(); if (itrack < fsm.getCosts().size()) { - cdebug.log(159) << "Placed: @" << DbU::getValueString(fsm.getCost(itrack).getTrack()->getAxis()) + cdebug_log(159,0) << "Placed: @" << DbU::getValueString(fsm.getCost(itrack).getTrack()->getAxis()) << " " << this << endl; } - cdebug.tabw(159,-1); + cdebug_tabw(159,-1); } void RoutingEvent::_processPack ( RoutingEventQueue& queue, RoutingEventHistory& history ) { - cdebug.log(159) << "* Mode:Pack." << endl; + cdebug_log(159,0) << "* Mode:Pack." << endl; if (not _segment->isUTurn()) return; @@ -535,10 +535,10 @@ namespace Kite { if (fsm.getState() == SegmentFsm::MissingData ) return; if (fsm.getState() == SegmentFsm::EmptyTrackList) return; - cdebug.tabw(159,1); + cdebug_tabw(159,1); for ( size_t i = 0 ; i < fsm.getCosts().size() ; i++ ) - cdebug.log(159) << "| " << fsm.getCost(i) << endl; - cdebug.tabw(159,-1); + cdebug_log(159,0) << "| " << fsm.getCost(i) << endl; + cdebug_tabw(159,-1); if ( _segment->getTrack() and fsm.getCosts().size() @@ -554,10 +554,10 @@ namespace Kite { void RoutingEvent::_processRepair ( RoutingEventQueue& queue, RoutingEventHistory& history ) { - cdebug.log(159) << "* Mode:Repair." << endl; + cdebug_log(159,0) << "* Mode:Repair." << endl; if ( _segment->getTrack() != NULL ) { - cdebug.log(159) << "* Cancel: already in Track." << endl; + cdebug_log(159,0) << "* Cancel: already in Track." << endl; return; } @@ -565,13 +565,13 @@ namespace Kite { if (fsm.getState() == SegmentFsm::MissingData ) return; if (fsm.getState() == SegmentFsm::EmptyTrackList) return; - cdebug.tabw(159,1); + cdebug_tabw(159,1); for ( size_t i = 0 ; i < fsm.getCosts().size() ; i++ ) - cdebug.log(159) << "| " << fsm.getCost(i) << endl; - cdebug.tabw(159,-1); + cdebug_log(159,0) << "| " << fsm.getCost(i) << endl; + cdebug_tabw(159,-1); if (fsm.getCosts().size() and fsm.getCost(0).isFree()) { - cdebug.log(159) << "Insert in free space." << endl; + cdebug_log(159,0) << "Insert in free space." << endl; Session::addInsertEvent( _segment, fsm.getCost(0).getTrack() ); fsm.setState( SegmentFsm::SelfInserted ); } else { @@ -591,7 +591,7 @@ namespace Kite { queue.commit(); break; default: - cdebug.log(159) << "Repair failed." << endl; + cdebug_log(159,0) << "Repair failed." << endl; break; } } @@ -602,34 +602,34 @@ namespace Kite { { DebugSession::open( _segment->getNet(), 150, 160 ); - cdebug.log(159,1) << "RoutingEvent::revalidate() - " << this << endl; + cdebug_log(159,1) << "RoutingEvent::revalidate() - " << this << endl; //_dataNegociate->update(); setAxisHintFromParent(); - cdebug.log(159) << "axisHint:" << DbU::getValueString(getAxisHint()) << endl; + cdebug_log(159,0) << "axisHint:" << DbU::getValueString(getAxisHint()) << endl; _overConstrained = false; _segment->base()->getConstraints( _constraints ); _segment->base()->getOptimal ( _optimal ); - cdebug.log(159) << "Stage:" << RoutingEvent::getStage() << endl; + cdebug_log(159,0) << "Stage:" << RoutingEvent::getStage() << endl; if (RoutingEvent::getStage() == RoutingEvent::Repair) { if (_segment->isStrongTerminal(KbPropagate)) { - cdebug.log(159) << "Not expanding on Terminals:" << _constraints << endl; + cdebug_log(159,0) << "Not expanding on Terminals:" << _constraints << endl; } else { - cdebug.log(159) << "Expanding:" << _constraints << endl; + cdebug_log(159,0) << "Expanding:" << _constraints << endl; _constraints.inflate( Session::getSliceHeight() ); - cdebug.log(159) << "Expanding (after):" << _constraints << endl; + cdebug_log(159,0) << "Expanding (after):" << _constraints << endl; } } - cdebug.log(159) << "| Raw Track Constraint: " << _constraints << endl; + cdebug_log(159,0) << "| Raw Track Constraint: " << _constraints << endl; _tracksNb = 0; Interval perpandicular = _constraints; perpandicular.intersection( getPerpandicularFree()); - cdebug.log(159) << "| Perpandicular Free: " << perpandicular << endl; + cdebug_log(159,0) << "| Perpandicular Free: " << perpandicular << endl; if (not perpandicular.isEmpty()) { RoutingPlane* plane = Session::getKiteEngine()->getRoutingPlaneByLayer(_segment->getLayer()); @@ -640,7 +640,7 @@ namespace Kite { ; track = track->getNextTrack(), _tracksNb++ ); } if (not _tracksNb) { - cdebug.log(159) << "| Reverting to pure constraints." << endl; + cdebug_log(159,0) << "| Reverting to pure constraints." << endl; RoutingPlane* plane = Session::getKiteEngine()->getRoutingPlaneByLayer(_segment->getLayer()); Track* track = plane->getTrackByPosition(_constraints.getVMin()); @@ -649,7 +649,7 @@ namespace Kite { ; track = track->getNextTrack(), _tracksNb++ ); } if (not _tracksNb) { - cdebug.log(159) << "| Pure constraints are too tight." << endl; + cdebug_log(159,0) << "| Pure constraints are too tight." << endl; if (_segment->base()) _overConstrained = _segment->base()->getAutoSource()->isTerminal() and _segment->base()->getAutoTarget()->isTerminal(); @@ -659,8 +659,8 @@ namespace Kite { = (DbU::toLambda(_segment->getLength()) + 1.0) * (DbU::toLambda(_segment->base()->getSlack()) + 1.0); - cdebug.log(159) << _segment << " has " << _tracksNb << " choices " << perpandicular << endl; - cdebug.tabw(159,-1); + cdebug_log(159,0) << _segment << " has " << _tracksNb << " choices " << perpandicular << endl; + cdebug_tabw(159,-1); DebugSession::close(); } diff --git a/kite/src/RoutingEventQueue.cpp b/kite/src/RoutingEventQueue.cpp index 0270f64e..b1fd6f91 100644 --- a/kite/src/RoutingEventQueue.cpp +++ b/kite/src/RoutingEventQueue.cpp @@ -89,7 +89,7 @@ namespace Kite { void RoutingEventQueue::commit () { - cdebug.log(159,1) << "RoutingEventQueue::commit()" << endl; + cdebug_log(159,1) << "RoutingEventQueue::commit()" << endl; size_t addeds = _pushRequests.size(); size_t before = _events.size(); @@ -101,7 +101,7 @@ namespace Kite { _topEventLevel = max( _topEventLevel, (*ipushEvent)->getEventLevel() ); _events.insert( (*ipushEvent) ); - cdebug.log(159) << "| " << (*ipushEvent) << endl; + cdebug_log(159,0) << "| " << (*ipushEvent) << endl; } _pushRequests.clear(); #if defined(CHECK_ROUTINGEVENT_QUEUE) @@ -113,7 +113,7 @@ namespace Kite { , addeds,(after-before) ) << endl; } - cdebug.tabw(159,-1); + cdebug_tabw(159,-1); } diff --git a/kite/src/RoutingPlane.cpp b/kite/src/RoutingPlane.cpp index 3214783c..996e521f 100644 --- a/kite/src/RoutingPlane.cpp +++ b/kite/src/RoutingPlane.cpp @@ -76,7 +76,7 @@ namespace Kite { void RoutingPlane::destroy () { - cdebug.log(155,1) << "RoutingPlane::destroy() - " + cdebug_log(155,1) << "RoutingPlane::destroy() - " << (void*)this << " " << this << endl; for ( size_t index=0 ; index<_tracks.size() ; ++index ) @@ -84,7 +84,7 @@ namespace Kite { delete this; - cdebug.tabw(155,-1); + cdebug_tabw(155,-1); } diff --git a/kite/src/SegmentFsm.cpp b/kite/src/SegmentFsm.cpp index b775691f..736da6b2 100644 --- a/kite/src/SegmentFsm.cpp +++ b/kite/src/SegmentFsm.cpp @@ -160,7 +160,7 @@ namespace { void UnionIntervals::addInterval ( Interval& interval ) { - cdebug.log(159) << "UnionInterval::addInterval() - " << interval << endl; + cdebug_log(159,0) << "UnionInterval::addInterval() - " << interval << endl; list::iterator iintv = _intervals.begin (); @@ -367,9 +367,9 @@ namespace Kite { DebugSession::open( _segment->getNet(), 150, 160 ); if (_type & Perpandicular) { - cdebug.log(159) << "* Riping Pp " << _segment << endl; + cdebug_log(159,0) << "* Riping Pp " << _segment << endl; } else { - cdebug.log(159) << "* Riping // " << _segment << endl; + cdebug_log(159,0) << "* Riping // " << _segment << endl; } if (_segment->isFixed()) { DebugSession::close(); return true; } @@ -395,7 +395,7 @@ namespace Kite { } if ( (_type & AxisHint) /*and not _segment->isSlackenDogleg()*/ ) { - cdebug.log(159) << "Setting Axis Hint: @" << DbU::getValueString(_axisHint) << endl; + cdebug_log(159,0) << "Setting Axis Hint: @" << DbU::getValueString(_axisHint) << endl; event->setAxisHint( _axisHint ); } @@ -403,7 +403,7 @@ namespace Kite { // There should be no need to move the axis of the segment to be inserted, // it will automatically slot into the empty track, if any. if (_type & MoveToAxis) { - cdebug.log(159) << "Moving Axis To: @" << DbU::getValueString(_axisHint) << endl; + cdebug_log(159,0) << "Moving Axis To: @" << DbU::getValueString(_axisHint) << endl; _segment->setAxis( _axisHint ); } @@ -469,28 +469,28 @@ namespace Kite { const Interval& perpandicular = _event->getPerpandicularFree(); - cdebug.log(159) << "Katabatic intervals:" << endl; - cdebug.log(159) << "* Optimal: " << _optimal << endl; - cdebug.log(159) << "* Constraints: " << _constraint << endl; - cdebug.log(159) << "* Perpandicular: " << perpandicular << endl; - cdebug.log(159) << "* AxisHint: " << DbU::getValueString(_event->getAxisHint()) << endl; + cdebug_log(159,0) << "Katabatic intervals:" << endl; + cdebug_log(159,0) << "* Optimal: " << _optimal << endl; + cdebug_log(159,0) << "* Constraints: " << _constraint << endl; + cdebug_log(159,0) << "* Perpandicular: " << perpandicular << endl; + cdebug_log(159,0) << "* AxisHint: " << DbU::getValueString(_event->getAxisHint()) << endl; if (_event->getTracksNb()) { if (_constraint.getIntersection(perpandicular).isEmpty()) { - cdebug.log(159) << "Perpandicular free is too tight." << endl; + cdebug_log(159,0) << "Perpandicular free is too tight." << endl; _state = EmptyTrackList; } else _constraint.intersection( perpandicular ); } else { - cdebug.log(159) << "No Track in perpandicular free." << endl; + cdebug_log(159,0) << "No Track in perpandicular free." << endl; _state = EmptyTrackList; } if (_state == EmptyTrackList) return; - cdebug.log(159) << "Negociate intervals:" << endl; - cdebug.log(159) << "* Optimal: " << _optimal << endl; - cdebug.log(159,1) << "* Constraints: " << _constraint << endl; + cdebug_log(159,0) << "Negociate intervals:" << endl; + cdebug_log(159,0) << "* Optimal: " << _optimal << endl; + cdebug_log(159,1) << "* Constraints: " << _constraint << endl; // if ( segment->isLocal() and (_data->getState() >= DataNegociate::MaximumSlack) ) // _constraint.inflate ( 0, DbU::lambda(1.0) ); @@ -511,7 +511,7 @@ namespace Kite { _costs.back().setAxisWeight ( _event->getAxisWeight(track->getAxis()) ); _costs.back().incDeltaPerpand( _data->getWiringDelta(track->getAxis()) ); if (segment->isGlobal()) { - cdebug.log(9000) << "Deter| setForGlobal() on " << track << endl; + cdebug_log(9000,0) << "Deter| setForGlobal() on " << track << endl; _costs.back().setForGlobal(); } @@ -527,9 +527,9 @@ namespace Kite { if ( _fullBlocked and (not _costs.back().isBlockage() and not _costs.back().isFixed()) ) _fullBlocked = false; - cdebug.log(159) << "| " << _costs.back() << ((_fullBlocked)?" FB ": " -- ") << track << endl; + cdebug_log(159,0) << "| " << _costs.back() << ((_fullBlocked)?" FB ": " -- ") << track << endl; } - cdebug.tabw(159,-1); + cdebug_tabw(159,-1); if (_costs.empty()) { Track* nearest = plane->getTrackByPosition(_constraint.getCenter()); @@ -557,7 +557,7 @@ namespace Kite { flags |= (RoutingEvent::getStage() == RoutingEvent::Repair) ? TrackCost::IgnoreSharedLength : 0; if (flags & TrackCost::DiscardGlobals) { - cdebug.log(159) << "TrackCost::Compare() - DiscardGlobals" << endl; + cdebug_log(159,0) << "TrackCost::Compare() - DiscardGlobals" << endl; } sort( _costs.begin(), _costs.end(), TrackCost::Compare(flags) ); @@ -575,14 +575,14 @@ namespace Kite { { if ( not segment->isFixed() ) { _actions.push_back ( SegmentAction(segment,type,axisHint,toSegmentFsm) ); - cdebug.log(159) << "SegmentFsm::addAction(): " << segment << endl; + cdebug_log(159,0) << "SegmentFsm::addAction(): " << segment << endl; } } void SegmentFsm::doActions () { - cdebug.log(159) << "SegmentFsm::doActions() - " << _actions.size() << endl; + cdebug_log(159,0) << "SegmentFsm::doActions() - " << _actions.size() << endl; bool ripupOthersParallel = false; bool ripedByLocal = getEvent()->getSegment()->isLocal(); @@ -611,7 +611,7 @@ namespace Kite { bool SegmentFsm::insertInTrack ( size_t i ) { - cdebug.log(159) << "SegmentFsm::insertInTrack() istate:" << _event->getInsertState() + cdebug_log(159,0) << "SegmentFsm::insertInTrack() istate:" << _event->getInsertState() << " track:" << i << endl; _event->incInsertState(); @@ -637,7 +637,7 @@ namespace Kite { RoutingEvent* event; TrackElement* segment = _event->getSegment(); - cdebug.log(159) << "SegmentFsm::conflictSolveByHistory()" << endl; + cdebug_log(159,0) << "SegmentFsm::conflictSolveByHistory()" << endl; size_t maxDepth = min( getHistory().size(), (size_t)300 ); size_t depth = 0; @@ -663,10 +663,10 @@ namespace Kite { if (sourceDogleg) { if (segment->isHorizontal()) { breakPoint = Point( minConflict, segment->getAxis() ); - cdebug.log(159) << breakPoint << endl; + cdebug_log(159,0) << breakPoint << endl; } else { breakPoint = Point( segment->getAxis(), minConflict ); - cdebug.log(159) << breakPoint << endl; + cdebug_log(159,0) << breakPoint << endl; } Katabatic::GCell* dogLegGCell = Session::getGCellUnder( breakPoint.getX(), breakPoint.getY() ); @@ -682,10 +682,10 @@ namespace Kite { if (not success and targetDogleg) { if (segment->isHorizontal()) { breakPoint = Point( maxConflict, segment->getAxis() ); - cdebug.log(159) << breakPoint << endl; + cdebug_log(159,0) << breakPoint << endl; } else { breakPoint = Point( segment->getAxis(), maxConflict ); - cdebug.log(159) << breakPoint << endl; + cdebug_log(159,0) << breakPoint << endl; } Katabatic::GCell* dogLegGCell = Session::getGCellUnder( breakPoint.getX(), breakPoint.getY() ); @@ -699,14 +699,14 @@ namespace Kite { } } } else { - cdebug.log(159) << "No disloggers found @" << DbU::getValueString(segment->getAxis()) << endl; + cdebug_log(159,0) << "No disloggers found @" << DbU::getValueString(segment->getAxis()) << endl; Interval freeSpan = Session::getKiteEngine()-> getTrackByPosition(segment->getLayer(),segment->getAxis())-> getFreeInterval(segment->getSourceU(),segment->getNet()); if (freeSpan.contains(segment->getCanonicalInterval())) { - cdebug.log(159) << "Disloggers vanished, Segment can be re-inserted." << endl; + cdebug_log(159,0) << "Disloggers vanished, Segment can be re-inserted." << endl; success = true; } } @@ -726,8 +726,8 @@ namespace Kite { | ((_data and (_data->getStateCount() < 2)) ? Manipulator::AllowExpand : Manipulator::NoExpand); - cdebug.log(159) << "SegmentFsm::conflictSolveByPlaceds()" << endl; - cdebug.log(159) << "| Candidates Tracks: " << endl; + cdebug_log(159,0) << "SegmentFsm::conflictSolveByPlaceds()" << endl; + cdebug_log(159,0) << "| Candidates Tracks: " << endl; segment->base()->getConstraints( constraints ); Interval overlap = segment->getCanonicalInterval(); @@ -759,29 +759,29 @@ namespace Kite { candidates.back().setBegin( begin ); candidates.back().setEnd ( end ); - cdebug.log(159) << "* " << track << " [" << begin << ":" << end << "]" << endl; + cdebug_log(159,0) << "* " << track << " [" << begin << ":" << end << "]" << endl; for ( ; (begin < end) ; ++begin ) { other = track->getSegment( begin ); if (other->getNet() == segment->getNet()) { - cdebug.log(159) << " | " << begin << " Same net: " << " " << other << endl; + cdebug_log(159,0) << " | " << begin << " Same net: " << " " << other << endl; continue; } if (not other->getCanonicalInterval().intersect(overlap)) { - cdebug.log(159) << " | " << begin << " No Conflict: " << " " << other << endl; + cdebug_log(159,0) << " | " << begin << " No Conflict: " << " " << other << endl; if (otherNet == NULL) candidates.back().setBegin( begin+1 ); continue; } - cdebug.log(159) << " | " << begin << " Conflict: " << " " << other << endl; + cdebug_log(159,0) << " | " << begin << " Conflict: " << " " << other << endl; if (otherNet != other->getNet()) { if (otherNet) { if (otherIsGlobal) { candidates.back().addConflict( otherOverlap ); - cdebug.log(159) << " | Other overlap G: " << otherOverlap << endl; + cdebug_log(159,0) << " | Other overlap G: " << otherOverlap << endl; } else { - cdebug.log(159) << " | Other overlap L: " << otherOverlap << " ignored." << endl; + cdebug_log(159,0) << " | Other overlap L: " << otherOverlap << " ignored." << endl; } } otherNet = other->getNet(); @@ -795,9 +795,9 @@ namespace Kite { if (not otherOverlap.isEmpty()) { if (otherIsGlobal) { candidates.back().addConflict( otherOverlap ); - cdebug.log(159) << " | Other overlap G: " << otherOverlap << endl; + cdebug_log(159,0) << " | Other overlap G: " << otherOverlap << endl; } else { - cdebug.log(159) << " | Other overlap L: " << otherOverlap << " ignored." << endl; + cdebug_log(159,0) << " | Other overlap L: " << otherOverlap << " ignored." << endl; } } @@ -807,14 +807,14 @@ namespace Kite { sort( candidates.begin(), candidates.end() ); for ( size_t icandidate=0 ; icandidateisGlobal()) { - cdebug.log(159) << "conflictSolveByPlaceds() - Conflict with global, other move up" << endl; + cdebug_log(159,0) << "conflictSolveByPlaceds() - Conflict with global, other move up" << endl; if ((success = Manipulator(other,*this).moveUp())) break; } - cdebug.log(159) << "conflictSolveByPlaceds() - Relaxing self" << endl; + cdebug_log(159,0) << "conflictSolveByPlaceds() - Relaxing self" << endl; if (Manipulator(segment,*this).relax(overlap0,relaxFlags)) { success = true; @@ -839,7 +839,7 @@ namespace Kite { if ( not canMoveUp and (relaxFlags != Manipulator::NoExpand) and Manipulator(segment,*this).relax(overlap0,Manipulator::NoExpand|Manipulator::NoDoglegReuse) ) { - cdebug.log(159) << "Cannot move up but successful narrow breaking." << endl; + cdebug_log(159,0) << "Cannot move up but successful narrow breaking." << endl; success = true; break; } @@ -847,8 +847,8 @@ namespace Kite { } if ( not success and segment->isGlobal() and (_costs.size() <= 1) ) { - cdebug.log(159) << "Overconstrained perpandiculars, rip them up. On track:" << endl; - cdebug.log(159) << " " << track << endl; + cdebug_log(159,0) << "Overconstrained perpandiculars, rip them up. On track:" << endl; + cdebug_log(159,0) << " " << track << endl; Manipulator(segment,*this).ripupPerpandiculars (); success = true; } @@ -860,7 +860,7 @@ namespace Kite { bool SegmentFsm::solveTerminalVsGlobal () { TrackElement* segment = getEvent()->getSegment(); - cdebug.log(159) << "SegmentFsm::solveTerminalVsGlobal: " << " " << segment << endl; + cdebug_log(159,0) << "SegmentFsm::solveTerminalVsGlobal: " << " " << segment << endl; if (not (segment->isTerminal() and segment->isLocal())) return false; @@ -878,9 +878,9 @@ namespace Kite { if (not other->isGlobal()) continue; if (not otherOverlap.contains(overlap)) continue; - cdebug.log(159) << "| Global candidate:" << other << endl; + cdebug_log(159,0) << "| Global candidate:" << other << endl; if (Manipulator(other,*this).moveUp(Manipulator::AllowTerminalMoveUp)) { - cdebug.log(159) << "| Global candidate selected." << endl; + cdebug_log(159,0) << "| Global candidate selected." << endl; return true; } } @@ -895,13 +895,13 @@ namespace Kite { bool success = false; TrackElement* segment = getEvent()->getSegment(); - cdebug.log(159,1) << "SegmentFsm::solveFullBlockages: " << " " << segment << endl; + cdebug_log(159,1) << "SegmentFsm::solveFullBlockages: " << " " << segment << endl; if ( segment->isLocal() ) { success = Manipulator(segment,*this).pivotUp(); if ( not success ) { - cdebug.log(159) << "Tightly constrained local segment overlapping a blockage, move up." << endl; - cdebug.log(159) << segment << endl; + cdebug_log(159,0) << "Tightly constrained local segment overlapping a blockage, move up." << endl; + cdebug_log(159,0) << segment << endl; success = Manipulator(segment,*this).moveUp (Manipulator::AllowLocalMoveUp|Manipulator::AllowTerminalMoveUp); } @@ -918,7 +918,7 @@ namespace Kite { if ( other->getNet() == segment->getNet() ) continue; if ( not otherOverlap.intersect(overlap) ) continue; - cdebug.log(159) << "| " << begin << " Blockage conflict: " << " " << other << endl; + cdebug_log(159,0) << "| " << begin << " Blockage conflict: " << " " << other << endl; if ( (success = Manipulator(segment,*this).relax (otherOverlap,Manipulator::NoDoglegReuse|Manipulator::NoExpand)) ) { break; @@ -928,24 +928,24 @@ namespace Kite { if ( not success ) { cparanoid << Error( "Tighly constrained segment overlapping a blockage:\n %s" , getString(segment).c_str() ) << endl; - cdebug.log(159) << "Segment is hard blocked, bypass to Unimplemented." << endl; + cdebug_log(159,0) << "Segment is hard blocked, bypass to Unimplemented." << endl; } - cdebug.tabw(159,-1); + cdebug_tabw(159,-1); return success; } bool SegmentFsm::desaturate () { - cdebug.log(159,1) << "SegmentFsm::desaturate()" << endl; + cdebug_log(159,1) << "SegmentFsm::desaturate()" << endl; size_t itrack = 0; #if THIS_IS_DISABLED TrackElement* segment = _event->getSegment(); for ( ; itrackgetSegment(i); - cdebug.log(159) << "* Looking // " << segment2 << endl; + cdebug_log(159,0) << "* Looking // " << segment2 << endl; if ( segment2->getNet() == ownerNet ) continue; if ( not toFree.intersect(segment2->getCanonicalInterval()) ) continue; @@ -969,12 +969,12 @@ namespace Kite { DataNegociate* data2 = segment2->getDataNegociate(); if ( not data2 ) { - cdebug.log(159) << "No DataNegociate, ignoring." << endl; + cdebug_log(159,0) << "No DataNegociate, ignoring." << endl; success = false; continue; } - cdebug.log(159) << "- Forced moveUp " << segment2 << endl; + cdebug_log(159,0) << "- Forced moveUp " << segment2 << endl; if ( not (success=Manipulator(segment2,*this).moveUp(Manipulator::AllowTerminalMoveUp)) ) { continue; } @@ -992,7 +992,7 @@ namespace Kite { } #endif - cdebug.tabw(159,-1); + cdebug_tabw(159,-1); return (itrack < _costs.size()); } @@ -1000,7 +1000,7 @@ namespace Kite { bool SegmentFsm::_slackenStrap ( TrackElement*& segment, DataNegociate*& data, unsigned int flags ) { - cdebug.log(159) << "Strap segment Fsm." << endl; + cdebug_log(159,0) << "Strap segment Fsm." << endl; bool success = false; unsigned int nextState = data->getState(); @@ -1032,7 +1032,7 @@ namespace Kite { if (not (flags&NoTransition)) { data->setState( nextState ); - cdebug.log(159) << "Incrementing state (after): " << nextState << " count:" << data->getStateCount() << endl; + cdebug_log(159,0) << "Incrementing state (after): " << nextState << " count:" << data->getStateCount() << endl; } return success; @@ -1041,7 +1041,7 @@ namespace Kite { bool SegmentFsm::_slackenLocal ( TrackElement*& segment, DataNegociate*& data, unsigned int flags ) { - cdebug.log(159) << "Local segment Fsm." << endl; + cdebug_log(159,0) << "Local segment Fsm." << endl; bool success = false; unsigned int nextState = data->getState(); @@ -1053,7 +1053,7 @@ namespace Kite { if (success) break; case DataNegociate::Minimize: if (isFullBlocked() and not segment->isTerminal()) { - cdebug.log(159) << "Is Fully blocked." << endl; + cdebug_log(159,0) << "Is Fully blocked." << endl; nextState = DataNegociate::Unimplemented; break; } @@ -1109,7 +1109,7 @@ namespace Kite { if (not (flags&NoTransition)) { data->setState( nextState ); - cdebug.log(159) << "Incrementing state (after): " << nextState << " count:" << data->getStateCount() << endl; + cdebug_log(159,0) << "Incrementing state (after): " << nextState << " count:" << data->getStateCount() << endl; } return success; @@ -1125,17 +1125,17 @@ namespace Kite { case DataNegociate::RipupPerpandiculars: case DataNegociate::Minimize: case DataNegociate::Dogleg: - cdebug.log(159) << "Global, SegmentFsm: RipupPerpandiculars." << endl; + cdebug_log(159,0) << "Global, SegmentFsm: RipupPerpandiculars." << endl; nextState = DataNegociate::Slacken; break; case DataNegociate::Slacken: - cdebug.log(159) << "Global, SegmentFsm: Slacken." << endl; + cdebug_log(159,0) << "Global, SegmentFsm: Slacken." << endl; if ((success = Manipulator(segment,*this).slacken(KbHalfSlacken))) { nextState = DataNegociate::RipupPerpandiculars; break; } case DataNegociate::MoveUp: - cdebug.log(159) << "Global, SegmentFsm: MoveUp." << endl; + cdebug_log(159,0) << "Global, SegmentFsm: MoveUp." << endl; if ((success = Manipulator(segment,*this).moveUp(Manipulator::AllowShortPivotUp))) { break; } @@ -1143,7 +1143,7 @@ namespace Kite { break; case DataNegociate::ConflictSolveByHistory: case DataNegociate::ConflictSolveByPlaceds: - cdebug.log(159) << "Global, SegmentFsm: ConflictSolveByHistory or ConflictSolveByPlaceds." << endl; + cdebug_log(159,0) << "Global, SegmentFsm: ConflictSolveByHistory or ConflictSolveByPlaceds." << endl; if ((success = conflictSolveByPlaceds())) { if (segment->canMoveUp(1.0,Katabatic::KbCheckLowDensity)) nextState = DataNegociate::MoveUp; @@ -1160,7 +1160,7 @@ namespace Kite { break; } case DataNegociate::Unimplemented: - cdebug.log(159) << "Global, SegmentFsm: MaximumSlack or Unimplemented." << endl; + cdebug_log(159,0) << "Global, SegmentFsm: MaximumSlack or Unimplemented." << endl; nextState = DataNegociate::Unimplemented; break; } @@ -1180,12 +1180,12 @@ namespace Kite { if (not (flags&NoTransition)) { if (data->getChildSegment()) { TrackElement* child = segment; - cdebug.log(159) << "Incrementing state of childs (after): " << endl; + cdebug_log(159,0) << "Incrementing state of childs (after): " << endl; while ( child ) { - cdebug.log(159) << "| " << child << endl; + cdebug_log(159,0) << "| " << child << endl; if (child->base()->isGlobal()) { child->getDataNegociate()->setState( nextState ); - cdebug.log(159) << "| Update:" << nextState << " count:" << child->getDataNegociate()->getStateCount() << endl; + cdebug_log(159,0) << "| Update:" << nextState << " count:" << child->getDataNegociate()->getStateCount() << endl; } TrackElement* parent = child; child = parent->getDataNegociate()->getChildSegment(); @@ -1193,8 +1193,8 @@ namespace Kite { } } else { data->setState( nextState ); - cdebug.log(159) << "Incrementing state (after): " << segment << endl; - cdebug.log(159) << "| " << nextState << " count:" << data->getStateCount() << endl; + cdebug_log(159,0) << "Incrementing state (after): " << segment << endl; + cdebug_log(159,0) << "| " << nextState << " count:" << data->getStateCount() << endl; } } @@ -1210,10 +1210,10 @@ namespace Kite { unsigned int actionFlags = SegmentAction::SelfInsert|SegmentAction::EventLevel5; DebugSession::open( segment->getNet(), 150, 160 ); - cdebug.log(159,1) << "Slacken Topology for " << segment->getNet() + cdebug_log(159,1) << "Slacken Topology for " << segment->getNet() << " " << segment << endl; - if (not segment or not data) { cdebug.tabw(159,-1); DebugSession::close(); return false; } + if (not segment or not data) { cdebug_tabw(159,-1); DebugSession::close(); return false; } _event->resetInsertState(); data->resetRipupCount(); @@ -1232,7 +1232,7 @@ namespace Kite { } } - cdebug.tabw(159,-1); + cdebug_tabw(159,-1); DebugSession::close(); return success; diff --git a/kite/src/Session.cpp b/kite/src/Session.cpp index bfd75940..aa932976 100644 --- a/kite/src/Session.cpp +++ b/kite/src/Session.cpp @@ -75,7 +75,7 @@ namespace Kite { Session* Session::open ( KiteEngine* kite ) { - cdebug.log(159) << "Kite::Session::open()" << endl; + cdebug_log(159,0) << "Kite::Session::open()" << endl; Session* session = Session::get(); if (session) { @@ -151,7 +151,7 @@ namespace Kite { size_t Session::_revalidate () { - cdebug.log(159,1) << "Kite::Session::_revalidate()" << endl; + cdebug_log(159,1) << "Kite::Session::_revalidate()" << endl; _doRemovalEvents(); @@ -168,7 +168,7 @@ namespace Kite { set::const_iterator idestroyed = destroyeds.begin(); for ( ; idestroyed != destroyeds.end() ; ++idestroyed ) { if (lookup(*idestroyed)) { - cdebug.tabw(155,-1); + cdebug_tabw(155,-1); throw Error( "Destroyed AutoSegment is associated with a TrackSegment\n" " (%s)" , getString(*idestroyed).c_str()); @@ -235,18 +235,18 @@ namespace Kite { revalidateds[i]->reduce(); TrackElement* trackSegment = lookup( revalidateds[i] ); if (trackSegment->getTrack()) _addRemoveEvent( trackSegment ); - cdebug.log(159) << "Session: reduce:" << revalidateds[i] << endl; + cdebug_log(159,0) << "Session: reduce:" << revalidateds[i] << endl; } if (revalidateds[i]->mustRaise()) { revalidateds[i]->raise(); lookup( revalidateds[i] )->reschedule( 0 ); - cdebug.log(159) << "Session: raise:" << revalidateds[i] << endl; + cdebug_log(159,0) << "Session: raise:" << revalidateds[i] << endl; } } _doRemovalEvents(); - cdebug.tabw(159,-1); + cdebug_tabw(159,-1); return count; } @@ -281,7 +281,7 @@ namespace Kite { void Session::_addInsertEvent ( TrackElement* segment, Track* track ) { - cdebug.log(159) << "addInsertEvent() " << segment + cdebug_log(159,0) << "addInsertEvent() " << segment << "\n @" << track << endl; if ( segment->getTrack() != NULL ) { @@ -307,7 +307,7 @@ namespace Kite { return; } - cdebug.log(159) << "Ripup: @" << DbU::getValueString(segment->getAxis()) << " " << segment << endl; + cdebug_log(159,0) << "Ripup: @" << DbU::getValueString(segment->getAxis()) << " " << segment << endl; _removeEvents.push_back( Event(segment,segment->getTrack()) ); _addSortEvent( segment->getTrack(), true ); } diff --git a/kite/src/Track.cpp b/kite/src/Track.cpp index 8f4740ed..a678dc2e 100644 --- a/kite/src/Track.cpp +++ b/kite/src/Track.cpp @@ -86,12 +86,12 @@ namespace Kite { Track::~Track () - { cdebug.log(155) << "Track::~Track() - " << (void*)this << endl; } + { cdebug_log(155,0) << "Track::~Track() - " << (void*)this << endl; } void Track::_preDestroy () { - cdebug.log(155,1) << "Track::_preDestroy() - " << (void*)this << " " << this << endl; + cdebug_log(155,1) << "Track::_preDestroy() - " << (void*)this << " " << this << endl; for ( size_t i=0 ; i<_segments.size() ; i++ ) if (_segments[i]) { _segments[i]->detach(); _segments[i]->destroy(); } @@ -99,13 +99,13 @@ namespace Kite { for ( size_t i=0 ; i<_markers.size() ; i++ ) if (_markers[i]) _markers[i]->destroy(); - cdebug.tabw(155,-1); + cdebug_tabw(155,-1); } void Track::destroy () { - cdebug.log(155) << "Track::destroy() - " << (void*)this << " " << this << endl; + cdebug_log(155,0) << "Track::destroy() - " << (void*)this << " " << this << endl; Track::_preDestroy(); delete this; @@ -275,7 +275,7 @@ namespace Kite { if (_segments[end]->getSourceU() >= interval.getVMax()) break; } - cdebug.log(159) << "Track::getOverlapBounds(): begin:" << begin << " end:" << end << endl; + cdebug_log(159,0) << "Track::getOverlapBounds(): begin:" << begin << " end:" << end << endl; } @@ -287,7 +287,7 @@ namespace Kite { { TrackCost cost ( const_cast(this), interval, begin, end, net, flags ); - cdebug.log(159,1) << "getOverlapCost() @" << DbU::getValueString(_axis) + cdebug_log(159,1) << "getOverlapCost() @" << DbU::getValueString(_axis) << " [" << DbU::getValueString(interval.getVMin()) << ":" << DbU::getValueString(interval.getVMax()) << "] <-> [" << begin << ":" << end << "]" @@ -299,16 +299,16 @@ namespace Kite { for ( ; (mbegin < _markers.size()) and (_markers[mbegin]->getSourceU() <= interval.getVMax()) ; mbegin++ ) { - cdebug.log(159) << "| @" << DbU::getValueString(_axis) << _markers[mbegin] << endl; + cdebug_log(159,0) << "| @" << DbU::getValueString(_axis) << _markers[mbegin] << endl; if ( _markers[mbegin]->getNet() != net ) { - cdebug.log(159) << "* Mark: @" << DbU::getValueString(_axis) << " " << _markers[mbegin] << endl; + cdebug_log(159,0) << "* Mark: @" << DbU::getValueString(_axis) << " " << _markers[mbegin] << endl; cost.incTerminals( _markers[mbegin]->getWeight(this) ); } } if (begin == npos) { - cdebug.log(159) << " begin == npos (after last TrackElement)." << endl; - cdebug.tabw(159,-1); + cdebug_log(159,0) << " begin == npos (after last TrackElement)." << endl; + cdebug_tabw(159,-1); return cost; } @@ -317,12 +317,12 @@ namespace Kite { if ( _segments[begin]->getNet() == net ) { cost.incDeltaShared ( overlap.getSize() ); } - cdebug.log(159) << "| overlap: " << _segments[begin] << endl; + cdebug_log(159,0) << "| overlap: " << _segments[begin] << endl; _segments[begin]->incOverlapCost( net, cost ); if (cost.isInfinite()) break; } - cdebug.tabw(159,-1); + cdebug_tabw(159,-1); return cost; } @@ -345,7 +345,7 @@ namespace Kite { void Track::getTerminalWeight ( Interval interval, Net* net, size_t& count, unsigned int& weight ) const { - cdebug.log(159,1) << "getTerminalWeight() @" << DbU::getValueString(_axis) + cdebug_log(159,1) << "getTerminalWeight() @" << DbU::getValueString(_axis) << " [" << interval.getVMin() << " " << interval.getVMax() << "]" << endl; //count = 0; @@ -357,14 +357,14 @@ namespace Kite { for ( ; (mbegin < _markers.size()) && (_markers[mbegin]->getSourceU() <= interval.getVMax()) ; mbegin++ ) { - cdebug.log(159) << "| @" << DbU::getValueString(_axis) << _markers[mbegin] << endl; + cdebug_log(159,0) << "| @" << DbU::getValueString(_axis) << _markers[mbegin] << endl; if ( _markers[mbegin]->getNet() == net ) { - cdebug.log(159) << "* Mark: @" << DbU::getValueString(_axis) << " " << _markers[mbegin] << endl; + cdebug_log(159,0) << "* Mark: @" << DbU::getValueString(_axis) << " " << _markers[mbegin] << endl; weight += _markers[mbegin]->getWeight(this); ++count; } } - cdebug.tabw(159,-1); + cdebug_tabw(159,-1); } @@ -450,9 +450,9 @@ namespace Kite { void Track::insert ( TrackElement* segment ) { - // cdebug.log(9000) << "Deter| Track::insert() " << getLayer()->getName() + // cdebug_log(9000,0) << "Deter| Track::insert() " << getLayer()->getName() // << " @" << DbU::getValueString(getAxis()) << " " << segment << endl; - cdebug.log(159) << "Track::insert() " << getLayer()->getName() + cdebug_log(159,0) << "Track::insert() " << getLayer()->getName() << " @" << DbU::getValueString(getAxis()) << " " << segment << endl; if ( (getLayer()->getMask() != segment->getLayer()->getMask()) @@ -482,7 +482,7 @@ namespace Kite { bool holes = false; if (message) cerr << " o Checking Track - " << message << endl; - cdebug.log(155) << (void*)this << ":" << this << endl; + cdebug_log(155,0) << (void*)this << ":" << this << endl; for ( size_t i=0 ; i<_segments.size() ; i++ ) { if (_segments[i]) { @@ -623,7 +623,7 @@ namespace Kite { size_t Track::doRemoval () { - cdebug.log(159,1) << "Track::doRemoval() - " << this << endl; + cdebug_log(159,1) << "Track::doRemoval() - " << this << endl; size_t size = _segments.size(); @@ -632,8 +632,8 @@ namespace Kite { _segments.erase( beginRemove, _segments.end() ); - cdebug.log(159) << "After doRemoval " << this << endl; - cdebug.tabw(159,-1); + cdebug_log(159,0) << "After doRemoval " << this << endl; + cdebug_tabw(159,-1); return size - _segments.size(); } @@ -641,7 +641,7 @@ namespace Kite { void Track::doReorder () { - cdebug.log(159) << "Track::doReorder() " << this << endl; + cdebug_log(159,0) << "Track::doReorder() " << this << endl; if (not _segmentsValid ) { std::sort ( _segments.begin(), _segments.end(), SegmentCompare() ); diff --git a/kite/src/TrackElement.cpp b/kite/src/TrackElement.cpp index 3a2a19e4..69450e4c 100644 --- a/kite/src/TrackElement.cpp +++ b/kite/src/TrackElement.cpp @@ -101,7 +101,7 @@ namespace Kite { TrackElement* segment = getOwner(); if (flags & AutoSegment::Invalidate) { if (not segment->isInvalidated()) { - cdebug.log(159) << "::notify() on " << segment << endl; + cdebug_log(159,0) << "::notify() on " << segment << endl; segment->invalidate(); } } @@ -109,7 +109,7 @@ namespace Kite { if (flags & AutoSegment::Revalidate) { // Revalidation must be delayed until *all* the AutoSegments have been revalidated. // if (segment->isInvalidated()) { - // cdebug.log(159) << "::notify() on " << segment << endl; + // cdebug_log(159,0) << "::notify() on " << segment << endl; // segment->revalidate( true ); // } } diff --git a/kite/src/TrackElements.cpp b/kite/src/TrackElements.cpp index e9091b12..079694fc 100644 --- a/kite/src/TrackElements.cpp +++ b/kite/src/TrackElements.cpp @@ -39,8 +39,8 @@ namespace Kite { , _locator (segment->base()) , _element (NULL) { - cdebug.log(155) << "TrackElements_Perpandiculars::Locator::Locator()" << endl; - cdebug.log(155) << " " << segment << endl; + cdebug_log(155,0) << "TrackElements_Perpandiculars::Locator::Locator()" << endl; + cdebug_log(155,0) << " " << segment << endl; Interval bounds; if ( _locator.isValid() ) { @@ -59,7 +59,7 @@ namespace Kite { void TrackElements_Perpandiculars::Locator::progress () { - cdebug.log(155) << "TrackElements_Perpandiculars::Locator::progress()" << endl; + cdebug_log(155,0) << "TrackElements_Perpandiculars::Locator::progress()" << endl; Interval bounds; while ( _locator.isValid() ) { diff --git a/kite/src/TrackFixedSegment.cpp b/kite/src/TrackFixedSegment.cpp index 5c51bf43..1fc119cd 100644 --- a/kite/src/TrackFixedSegment.cpp +++ b/kite/src/TrackFixedSegment.cpp @@ -159,7 +159,7 @@ namespace Kite { void TrackFixedSegment::_preDestroy () { - cdebug.log(155) << "TrackFixedSegment::_preDestroy() - " << (void*)this << endl; + cdebug_log(155,0) << "TrackFixedSegment::_preDestroy() - " << (void*)this << endl; TrackElement::_preDestroy(); } @@ -173,8 +173,8 @@ namespace Kite { trackFixedSegment = new TrackFixedSegment ( track, segment ); trackFixedSegment->_postCreate(); - cdebug.log(159) << "Adding: " << segment << " on " << track << endl; - cdebug.log(159) << "TrackFixedSegment::create(): " << trackFixedSegment << endl; + cdebug_log(159,0) << "Adding: " << segment << " on " << track << endl; + cdebug_log(159,0) << "TrackFixedSegment::create(): " << trackFixedSegment << endl; Session::addInsertEvent( trackFixedSegment, track ); } diff --git a/kite/src/TrackSegment.cpp b/kite/src/TrackSegment.cpp index ca628e34..955789f5 100644 --- a/kite/src/TrackSegment.cpp +++ b/kite/src/TrackSegment.cpp @@ -66,8 +66,8 @@ namespace Kite { , _data (NULL) , _dogLegLevel (0) { - cdebug.log(155) << "CTOR TrackSegment " << (void*)this << ":" << this << endl; - cdebug.log(155) << " over " << (void*)segment << ":" << segment << endl; + cdebug_log(155,0) << "CTOR TrackSegment " << (void*)this << ":" << this << endl; + cdebug_log(155,0) << " over " << (void*)segment << ":" << segment << endl; setFlags( TElemCreated|TElemLocked ); if (segment) { @@ -97,7 +97,7 @@ namespace Kite { void TrackSegment::_preDestroy () { - cdebug.log(155) << "TrackSegment::_preDestroy() - " << (void*)this + cdebug_log(155,0) << "TrackSegment::_preDestroy() - " << (void*)this << " [" << (void*)_base << ", " << (void*)(_base?_base->base():NULL) << "]" << endl; @@ -134,7 +134,7 @@ namespace Kite { trackSegment->invalidate(); - cdebug.log(159) << "TrackSegment::create(): " << trackSegment << endl; + cdebug_log(159,0) << "TrackSegment::create(): " << trackSegment << endl; trackElement = trackSegment; } @@ -229,22 +229,22 @@ namespace Kite { Katabatic::GCell* sourceGCell = base()->getAutoSource()->getGCell(); Katabatic::GCell* targetGCell = base()->getAutoTarget()->getGCell(); - cdebug.log(159) << "getGCells(): sourceGCell: " << sourceGCell << endl; - cdebug.log(159) << "getGCells(): targetGCell: " << targetGCell << endl; + cdebug_log(159,0) << "getGCells(): sourceGCell: " << sourceGCell << endl; + cdebug_log(159,0) << "getGCells(): targetGCell: " << targetGCell << endl; for( AutoSegment* segment : base()->getAligneds() ) { - cdebug.log(159) << "| " << segment << endl; + cdebug_log(159,0) << "| " << segment << endl; Katabatic::GCell* gcell = segment->getAutoSource()->getGCell(); if (gcell->getIndex() < sourceGCell->getIndex()) { sourceGCell = gcell; - cdebug.log(159) << "getGCells(): new sourceGCell: " << sourceGCell << endl; + cdebug_log(159,0) << "getGCells(): new sourceGCell: " << sourceGCell << endl; } gcell = segment->getAutoTarget()->getGCell(); if (gcell->getIndex() > targetGCell->getIndex()) { targetGCell = gcell; - cdebug.log(159) << "getGCells(): new targetGCell: " << targetGCell << endl; + cdebug_log(159,0) << "getGCells(): new targetGCell: " << targetGCell << endl; } } @@ -320,7 +320,7 @@ namespace Kite { void TrackSegment::detach () { - cdebug.log(159) << "TrackSegment::detach() - " << endl; + cdebug_log(159,0) << "TrackSegment::detach() - " << endl; setTrack( NULL ); setIndex( (size_t)-1 ); @@ -331,7 +331,7 @@ namespace Kite { void TrackSegment::revalidate () { unsetFlags( TElemCreated ); - cdebug.log(159) << "revalidate() - " << this << endl; + cdebug_log(159,0) << "revalidate() - " << this << endl; _base->getCanonical( _sourceU, _targetU ); @@ -351,7 +351,7 @@ namespace Kite { { if (not other) return; - cdebug.log(159) << "TrackSegment::swapTrack()" << endl; + cdebug_log(159,0) << "TrackSegment::swapTrack()" << endl; size_t thisIndex = getIndex (); Track* thisTrack = getTrack (); @@ -384,14 +384,14 @@ namespace Kite { if (thisEvent ) thisEvent ->setSegment( other ); if (otherEvent) otherEvent->setSegment( this ); - cdebug.log(159) << "| this: " << this << endl; - cdebug.log(159) << "| other: " << other << endl; + cdebug_log(159,0) << "| this: " << this << endl; + cdebug_log(159,0) << "| other: " << other << endl; } void TrackSegment::reschedule ( unsigned int level ) { - cdebug.log(159,1) << "TrackSegment::reschedule() - " << this << endl; + cdebug_log(159,1) << "TrackSegment::reschedule() - " << this << endl; if (not _data or not _data->hasRoutingEvent()) Session::getNegociateWindow()->addRoutingEvent( this, level ); @@ -401,7 +401,7 @@ namespace Kite { Session::getNegociateWindow()->rescheduleEvent( _data->getRoutingEvent(), level ); } - cdebug.tabw(159,-1); + cdebug_tabw(159,-1); } @@ -423,13 +423,13 @@ namespace Kite { bool TrackSegment::canSlacken () const { - cdebug.log(159) << "TrackSegment::canSlacken() doglegLevel:" << getDoglegLevel() << endl; + cdebug_log(159,0) << "TrackSegment::canSlacken() doglegLevel:" << getDoglegLevel() << endl; return (not isSlackened() and (getDoglegLevel() <= 3)) ? _base->canSlacken(KbPropagate) : false; } bool TrackSegment::slacken ( unsigned int flags ) { - cdebug.log(159) << "TrackSegment::slacken()" << endl; + cdebug_log(159,0) << "TrackSegment::slacken()" << endl; bool success = false; @@ -437,12 +437,12 @@ namespace Kite { TrackElement* perpandicular = NULL; TrackElement* parallel = NULL; - cdebug.tabw(159,1); + cdebug_tabw(159,1); success = base()->slacken( flags|KbPropagate ); _postDoglegs( perpandicular, parallel ); - cdebug.tabw(159,-1); + cdebug_tabw(159,-1); return success; } else cerr << Bug("TrackSegment::slacken(): NULL base or already slackened.") << endl; @@ -455,7 +455,7 @@ namespace Kite { { bool success = false; - cdebug.log(159,1) << "TrackSegment::moveUp() " << flags << endl; + cdebug_log(159,1) << "TrackSegment::moveUp() " << flags << endl; success = base()->moveUp( flags ); if (success) { @@ -466,7 +466,7 @@ namespace Kite { _postDoglegs( perpandicular, parallel ); } - cdebug.tabw(159,-1); + cdebug_tabw(159,-1); return success; } @@ -476,7 +476,7 @@ namespace Kite { { bool success = false; - cdebug.log(159,1) << "TrackSegment::moveDown() " << flags << endl; + cdebug_log(159,1) << "TrackSegment::moveDown() " << flags << endl; success = base()->moveDown( flags ); if (success) { @@ -487,7 +487,7 @@ namespace Kite { _postDoglegs( perpandicular, parallel ); } - cdebug.tabw(159,-1); + cdebug_tabw(159,-1); return success; } @@ -497,12 +497,12 @@ namespace Kite { { bool success = true; - cdebug.log(159,1) << "TrackSegment::moveAside() - " + cdebug_log(159,1) << "TrackSegment::moveAside() - " << ((flags&KtMoveToLeft )?"left" :"") << ((flags&KtMoveToRight)?"rigth":"") << endl; if (flags & KtMoveToLeft ) base()->moveULeft (); if (flags & KtMoveToRight) base()->moveURight(); - cdebug.tabw(159,-1); + cdebug_tabw(159,-1); return success; } @@ -517,7 +517,7 @@ namespace Kite { for( Segment* segment : base()->getAutoSource()->getSlaveComponents().getSubSet() ) { dogleg = Session::lookup( segment ); if (dogleg and (dogleg->getDirection() == direction)) { - cdebug.log(159) << "Source dogleg: " << dogleg << endl; + cdebug_log(159,0) << "Source dogleg: " << dogleg << endl; return dogleg; } } @@ -534,7 +534,7 @@ namespace Kite { for( Segment* segment : base()->getAutoTarget()->getSlaveComponents().getSubSet() ) { dogleg = Session::lookup( segment ); if (dogleg and (dogleg->getDirection() == direction)) { - cdebug.log(159) << "Target dogleg: " << dogleg << endl; + cdebug_log(159,0) << "Target dogleg: " << dogleg << endl; return dogleg; } } @@ -544,35 +544,35 @@ namespace Kite { bool TrackSegment::canDogleg () { - cdebug.log(159) << "TrackSegment::canDogleg()" << endl; + cdebug_log(159,0) << "TrackSegment::canDogleg()" << endl; if (not isLocal()) { - cdebug.log(159) << "Failed: is not local." << endl; + cdebug_log(159,0) << "Failed: is not local." << endl; return false; } if (isFixed()) { - cdebug.log(159) << "Failed: is fixed." << endl; + cdebug_log(159,0) << "Failed: is fixed." << endl; return false; } if (isRouted()) { - cdebug.log(159) << "Failed: belongs to an already routed net." << endl; + cdebug_log(159,0) << "Failed: belongs to an already routed net." << endl; return false; } if (isSlackened()) { - cdebug.log(159) << "Failed: is local & slackened." << endl; + cdebug_log(159,0) << "Failed: is local & slackened." << endl; return false; } if (hasSourceDogleg() or hasTargetDogleg()) { - cdebug.log(159) << "Failed: already has source or target dogleg." << endl; + cdebug_log(159,0) << "Failed: already has source or target dogleg." << endl; return false; } if (getDoglegLevel() > 3) { - cdebug.log(159) << "Failed: maximum dogleg level reached (4)." << endl; + cdebug_log(159,0) << "Failed: maximum dogleg level reached (4)." << endl; return false; } @@ -582,50 +582,50 @@ namespace Kite { bool TrackSegment::canDogleg ( Katabatic::GCell* doglegGCell, unsigned int flags ) { - cdebug.log(159,1) << "TrackSegment::canDogleg(GCell*) " << doglegGCell << endl; + cdebug_log(159,1) << "TrackSegment::canDogleg(GCell*) " << doglegGCell << endl; if (doglegGCell->isUnderIoPad()) { - cdebug.log(159) << "false: Cannot dogleg in a GCell under an I/O Pad." << endl; - cdebug.tabw(159,-1); + cdebug_log(159,0) << "false: Cannot dogleg in a GCell under an I/O Pad." << endl; + cdebug_tabw(159,-1); return false; } if (isFixed()) { - cdebug.log(159) << "false: Cannot dogleg a fixed segment." << endl; - cdebug.tabw(159,-1); + cdebug_log(159,0) << "false: Cannot dogleg a fixed segment." << endl; + cdebug_tabw(159,-1); return false; } if (isRouted()) { - cdebug.log(159) << "false: Cannot dogleg a segment belonging to an already routed net." << endl; - cdebug.tabw(159,-1); + cdebug_log(159,0) << "false: Cannot dogleg a segment belonging to an already routed net." << endl; + cdebug_tabw(159,-1); return false; } if (isLocal()) { if (hasSourceDogleg() or hasTargetDogleg()) { - cdebug.log(159) << "false: Cannot dogleg again a local segment." << endl; - cdebug.tabw(159,-1); + cdebug_log(159,0) << "false: Cannot dogleg again a local segment." << endl; + cdebug_tabw(159,-1); return false; } if (isSlackened()) { - cdebug.log(159) << "false: Cannot dogleg a local slackened segment." << endl; - cdebug.tabw(159,-1); + cdebug_log(159,0) << "false: Cannot dogleg a local slackened segment." << endl; + cdebug_tabw(159,-1); return false; } } if (getDoglegLevel() > 3) { - cdebug.log(159) << "Failed: maximum dogleg level reached (4)." << endl; - cdebug.tabw(159,-1); + cdebug_log(159,0) << "Failed: maximum dogleg level reached (4)." << endl; + cdebug_tabw(159,-1); return false; } vector gcells; getGCells( gcells ); - cdebug.log(159) << "Source: " << *gcells.begin () << endl; - cdebug.log(159) << "Target: " << *gcells.rbegin() << endl; + cdebug_log(159,0) << "Source: " << *gcells.begin () << endl; + cdebug_log(159,0) << "Target: " << *gcells.rbegin() << endl; bool isGCellInside = false; for ( size_t igcell=0 ; igcell 3) { - cdebug.log(159) << "Failed: maximum dogleg level reached (4)." << endl; + cdebug_log(159,0) << "Failed: maximum dogleg level reached (4)." << endl; return false; } @@ -719,7 +719,7 @@ namespace Kite { DbU::Unit axis = (_base->isHorizontal()) ? source->getX() : source->getY(); - cdebug.log(159) << "Setting dogleg axis @" << DbU::getValueString(axis) << endl; + cdebug_log(159,0) << "Setting dogleg axis @" << DbU::getValueString(axis) << endl; dogleg->setAxis( axis ); } } @@ -732,8 +732,8 @@ namespace Kite { , TrackElement*& parallel ) { - cdebug.log(159) << "TrackSegment::makeDogleg(GCell*)" << endl; - cdebug.log(159) << "Break in: " << dogLegGCell << endl; + cdebug_log(159,0) << "TrackSegment::makeDogleg(GCell*)" << endl; + cdebug_log(159,0) << "Break in: " << dogLegGCell << endl; base()->makeDogleg( dogLegGCell ); _postDoglegs( perpandicular, parallel ); @@ -747,7 +747,7 @@ namespace Kite { TrackElement* perpandicular = NULL; TrackElement* parallel = NULL; - cdebug.log(159) << "TrackSegment::makeDogleg(Interval)" << endl; + cdebug_log(159,0) << "TrackSegment::makeDogleg(Interval)" << endl; flags = base()->makeDogleg( interval ); _postDoglegs( perpandicular, parallel ); @@ -757,7 +757,7 @@ namespace Kite { void TrackSegment::_postDoglegs ( TrackElement*& perpandicular, TrackElement*& parallel ) { - cdebug.log(159,1) << "TrackSegment::_postDoglegs()" << endl; + cdebug_log(159,1) << "TrackSegment::_postDoglegs()" << endl; unsigned int doglegLevel = 0; const vector& doglegs = Session::getDoglegs(); @@ -769,7 +769,7 @@ namespace Kite { , doglegs.size() ) << endl; for ( size_t i=0 ; icreateTrackSegment(doglegs[i],0) ); segments[i+0]->setFlags( TElemTargetDogleg ); segments[i+0]->getDataNegociate()->resetRipupCount(); @@ -778,12 +778,12 @@ namespace Kite { doglegLevel = segments[i+0]->getDoglegLevel(); segments[i+0]->setDoglegLevel( doglegLevel + (segments[i]->isLocal()?1:0) ); - cdebug.log(159) << "Looking up new perpand: " << doglegs[i+1] << endl; + cdebug_log(159,0) << "Looking up new perpand: " << doglegs[i+1] << endl; segments.push_back( Session::getNegociateWindow()->createTrackSegment(doglegs[i+1],0) ); segments[i+1]->setFlags( TElemSourceDogleg|TElemTargetDogleg ); segments[i+1]->setDoglegLevel( doglegLevel + 1 ); - cdebug.log(159) << "Looking up new parallel: " << doglegs[i+2] << endl; + cdebug_log(159,0) << "Looking up new parallel: " << doglegs[i+2] << endl; segments.push_back( Session::getNegociateWindow()->createTrackSegment(doglegs[i+2],0) ); segments[i+2]->setFlags( TElemSourceDogleg ); segments[i+2]->getDataNegociate()->resetStateCount(); @@ -809,14 +809,14 @@ namespace Kite { case 1: segPart = "perpand "; break; case 2: segPart = "new paral"; break; } - cdebug.log(159) << "[" << (i/3) << ":" << i << "] " << segPart << ": " + cdebug_log(159,0) << "[" << (i/3) << ":" << i << "] " << segPart << ": " << segments[i] << endl; } } else { reschedule( 1 ); } - cdebug.tabw(159,-1); + cdebug_tabw(159,-1); Session::doglegReset(); } diff --git a/kite/src/TrackSegmentCost.cpp b/kite/src/TrackSegmentCost.cpp index dd89c54d..b29f49c7 100644 --- a/kite/src/TrackSegmentCost.cpp +++ b/kite/src/TrackSegmentCost.cpp @@ -75,7 +75,7 @@ namespace Kite { { DebugSession::open ( trackSegment->getNet(), 150, 160 ); - cdebug.log(159,1) << "TrackSegmentCost::update() - " << trackSegment << endl; + cdebug_log(159,1) << "TrackSegmentCost::update() - " << trackSegment << endl; vector collapseds; vector perpandiculars; @@ -114,14 +114,14 @@ namespace Kite { } interval.inflate ( DbU::lambda(-1.5) ); - cdebug.log(159) << "| perpandicular: " << perpandiculars[i] << endl; - cdebug.log(159,1) << "| canonical: " << perpandicular << endl; - cdebug.log(159) << "interval: " << interval << endl; + cdebug_log(159,0) << "| perpandicular: " << perpandiculars[i] << endl; + cdebug_log(159,1) << "| canonical: " << perpandicular << endl; + cdebug_log(159,0) << "interval: " << interval << endl; if ( interval.isPonctual() ) { - cdebug.log(159) << "Punctual attractor @" << DbU::getValueString(interval.getVMin()) << endl; + cdebug_log(159,0) << "Punctual attractor @" << DbU::getValueString(interval.getVMin()) << endl; _attractors.push_back ( interval.getVMin() ); - cdebug.tabw(159,-1); + cdebug_tabw(159,-1); continue; } @@ -136,7 +136,7 @@ namespace Kite { } else { iattractor->second -= 1; } - cdebug.log(159) << "Left attractor @" << DbU::getValueString(interval.getVMin()) << endl; + cdebug_log(159,0) << "Left attractor @" << DbU::getValueString(interval.getVMin()) << endl; } if ( ( interval.getVMax() != trackSegment->getAxis() ) @@ -150,10 +150,10 @@ namespace Kite { } else { iattractor->second += 1; } - cdebug.log(159) << "Right attractor @" << DbU::getValueString(interval.getVMax()) << endl; + cdebug_log(159,0) << "Right attractor @" << DbU::getValueString(interval.getVMax()) << endl; } - cdebug.tabw(159,-1); + cdebug_tabw(159,-1); } map::iterator iattractor = attractorSpins.begin(); @@ -169,10 +169,10 @@ namespace Kite { s << DbU::getValueString(_attractors[i]); } s << "]"; - cdebug.log(159) << s.str() << endl; + cdebug_log(159,0) << s.str() << endl; - cdebug.tabw(159,-1); + cdebug_tabw(159,-1); DebugSession::close (); } diff --git a/kite/src/Tracks.cpp b/kite/src/Tracks.cpp index 112409b0..7c60721d 100644 --- a/kite/src/Tracks.cpp +++ b/kite/src/Tracks.cpp @@ -38,15 +38,15 @@ namespace Kite { : Hurricane::Locator() , _constraints (constraints) { - cdebug.log(159) << "Tracks_Range::Locator()" << endl; - cdebug.log(159) << "* Constraints: " << _constraints << endl; + cdebug_log(159,0) << "Tracks_Range::Locator()" << endl; + cdebug_log(159,0) << "* Constraints: " << _constraints << endl; _track = routingPlane->getTrackByPosition ( _constraints.getVMin() ); if ( _track and (_track->getAxis() < _constraints.getVMin()) ) _track = _track->getNextTrack(); if ( _track and (_track->getAxis() > _constraints.getVMax()) ) _track = NULL; - cdebug.log(159) << "_track: " << _track << endl;; + cdebug_log(159,0) << "_track: " << _track << endl;; } @@ -147,9 +147,9 @@ namespace Kite { , _inMinOptimal(true) , _inMaxOptimal(true) { - cdebug.log(159) << "Tracks_Spiral::Locator()" << endl; - cdebug.log(159) << "* Optimal: " << _optimal << endl; - cdebug.log(159) << "* Constraints: " << _constraints << endl; + cdebug_log(159,0) << "Tracks_Spiral::Locator()" << endl; + cdebug_log(159,0) << "* Optimal: " << _optimal << endl; + cdebug_log(159,0) << "* Constraints: " << _constraints << endl; _minTrack = _maxTrack = routingPlane->getTrackByPosition ( _optimal.getCenter() ); @@ -169,8 +169,8 @@ namespace Kite { if ( _minTrack && (_minTrack->getAxis() < _optimal.getVMin()) ) _inMinOptimal = false; if ( _maxTrack && (_maxTrack->getAxis() > _optimal.getVMax()) ) _inMaxOptimal = false; - cdebug.log(159) << "_minTrack: " << _minTrack << endl;; - cdebug.log(159) << "_maxTrack: " << _maxTrack << endl;; + cdebug_log(159,0) << "_minTrack: " << _minTrack << endl;; + cdebug_log(159,0) << "_maxTrack: " << _maxTrack << endl;; } @@ -210,13 +210,13 @@ namespace Kite { void Tracks_Spiral::Locator::progress () { - cdebug.log(159,1) << "Track_Spiral::progress() - State:" << endl; - cdebug.log(159) << _onMin + cdebug_log(159,1) << "Track_Spiral::progress() - State:" << endl; + cdebug_log(159,0) << _onMin << " " << _minTrack << " " << _maxTrack << endl; if ( !isValid() ) { - cdebug.tabw(159,-1); + cdebug_tabw(159,-1); return; } @@ -245,10 +245,10 @@ namespace Kite { } } - cdebug.log(159) << _onMin + cdebug_log(159,0) << _onMin << " " << _minTrack << " " << _maxTrack << endl; - cdebug.tabw(159,-1); + cdebug_tabw(159,-1); } diff --git a/kite/src/kite/RoutingEvent.h b/kite/src/kite/RoutingEvent.h index 5262cab4..9081e1d9 100644 --- a/kite/src/kite/RoutingEvent.h +++ b/kite/src/kite/RoutingEvent.h @@ -260,7 +260,7 @@ namespace Kite { << Session::getSegmentStackSize() << ")." << endl; # define _postCheck(segment) \ - cdebug.log(159) << "Bounds := [" \ + cdebug_log(159,0) << "Bounds := [" \ << DbU::getValueString(segment->base()->getSourcePosition()) << ":" \ << DbU::getValueString(segment->base()->getTargetPosition()) << "] " \ << DbU::getValueString(segment->getAxis()) << " " \ diff --git a/knik/src/Edge.cpp b/knik/src/Edge.cpp index e01aa8b6..50ef76d1 100644 --- a/knik/src/Edge.cpp +++ b/knik/src/Edge.cpp @@ -104,7 +104,7 @@ void Edge::increaseCapacity ( int capacity ) //cerr << "Increasing capacity to " << _capacity << " on " << this << endl; if ( _capacity == 0 ) - cdebug.log(139) << Warning("%s has reached NULL capacity.",getString(this).c_str()) << endl; + cdebug_log(139,0) << Warning("%s has reached NULL capacity.",getString(this).c_str()) << endl; } void Edge::incOccupancy () diff --git a/knik/src/Graph.cpp b/knik/src/Graph.cpp index ef677393..6f4360d9 100644 --- a/knik/src/Graph.cpp +++ b/knik/src/Graph.cpp @@ -785,14 +785,14 @@ void Graph::increaseVTuplePriority ( VTuple* vtuple, float distance ) void Graph::printVTuplePriorityQueue() // *********************************** { - cdebug.tabw(139,1); - cdebug.log(139) << "VTuplePriorityQueue:" << endl; + cdebug_tabw(139,1); + cdebug_log(139,0) << "VTuplePriorityQueue:" << endl; unsigned int i=0; for ( auto iv : _vtuplePriorityQueue ) { - cdebug.log(139) << setw(3) << i << "| " << iv->getVertex() << " : " << iv->getDistance() << endl; + cdebug_log(139,0) << setw(3) << i << "| " << iv->getVertex() << " : " << iv->getDistance() << endl; ++i; } - cdebug.tabw(139,-1); + cdebug_tabw(139,-1); } void Graph::clearPriorityQueue() @@ -979,7 +979,7 @@ int Graph::initRouting ( Net* net ) //editor->Stop ("Going to init"); //if (_working_net->getName() == "read0") DebugSession::open( 130, 140 ); - cdebug.log(139,1) << "Graph::initRouting() " << _working_net << endl; + cdebug_log(139,1) << "Graph::initRouting() " << _working_net << endl; int currentConnexID = 0; vector vContacts; @@ -1029,9 +1029,9 @@ int Graph::initRouting ( Net* net ) //bool useConnexID = false; for ( unsigned index = 0 ; index < vRoutingPads.size() ; index ++ ) { RoutingPad* routingPad = vRoutingPads[index]; - cdebug.log(139) << routingPad << endl; + cdebug_log(139,0) << routingPad << endl; Vertex* rpVertex = getVertex ( routingPad->getCenter() ); - cdebug.log(139) << rpVertex << endl; + cdebug_log(139,0) << rpVertex << endl; Contact* rpContact = rpVertex->getContact(); if ( rpContact && (rpContact->getNet() == routingPad->getNet()) ) { // s'il existe deja un contact pour ce vertex pour ce net, on s'y attache @@ -1114,7 +1114,7 @@ int Graph::initRouting ( Net* net ) //cerr << "net " << net << " has " << _vertexes_to_route.size() << " vertexes to route." << endl; //} - cdebug.tabw(139,-1); + cdebug_tabw(139,-1); //DebugSession::close(); return _vertexes_to_route.size(); @@ -1146,13 +1146,13 @@ void Graph::Dijkstra() //DebugSession::open( _working_net, 130, 140 ); //if (_working_net->getName() == "read0") DebugSession::open( 130, 140 ); - cdebug.log(139,1) << "Dijkstra for net: " << _working_net << endl; - cdebug.log(139) << "Stamp:" << _netStamp << endl; - cdebug.log(139) << "Search area : " << _searchingArea + cdebug_log(139,1) << "Dijkstra for net: " << _working_net << endl; + cdebug_log(139,0) << "Stamp:" << _netStamp << endl; + cdebug_log(139,0) << "Search area : " << _searchingArea << " h:" << DbU::getValueString(_searchingArea.getHeight()) << endl; - cdebug.log(139) << "Matrix tile height : " << DbU::getValueString(_matrixVertex->getTileHeight()) << endl; - cdebug.log(139) << "Central vertex : " << centralVertex << endl; - cdebug.log(139,1) << "_vertexes_to_route.size(): " << _vertexes_to_route.size() << endl; + cdebug_log(139,0) << "Matrix tile height : " << DbU::getValueString(_matrixVertex->getTileHeight()) << endl; + cdebug_log(139,0) << "Central vertex : " << centralVertex << endl; + cdebug_log(139,1) << "_vertexes_to_route.size(): " << _vertexes_to_route.size() << endl; //Breakpoint::stop(1, "
Dijkstra
initialized
"); while ( _vertexes_to_route.size() > 1 ) { @@ -1162,12 +1162,12 @@ void Graph::Dijkstra() //checkGraphConsistency(); if (cdebug.enabled(139)) { - cdebug.log(139) << "_vertexes_to_route:" << endl; + cdebug_log(139,0) << "_vertexes_to_route:" << endl; for ( auto iv : _vertexes_to_route ) - cdebug.log(139) << "| " << iv << endl; + cdebug_log(139,0) << "| " << iv << endl; } - cdebug.log(139) << "Source component" << endl; + cdebug_log(139,0) << "Source component" << endl; printVTuplePriorityQueue(); //Breakpoint::stop(1, "
Dijkstra
source connexe component
"); @@ -1188,7 +1188,7 @@ void Graph::Dijkstra() reachedDistance = currentVertex->getDistance(); reachedVertexes.clear(); reachedVertexes.push_back ( currentVertex ); - cdebug.log(139) << "Re-init reachedVertexes with " << currentVertex << endl; + cdebug_log(139,0) << "Re-init reachedVertexes with " << currentVertex << endl; break; } @@ -1228,21 +1228,21 @@ void Graph::Dijkstra() VTuple* oppositeVTuple = oppositeVertex->getVTuple(); if (oppositeVTuple) { - cdebug.log(139) << "Increasing priority for:" << endl; - cdebug.log(139) << "* " << oppositeVertex << endl; - cdebug.log(139) << "* " << oppositeVTuple << endl; + cdebug_log(139,0) << "Increasing priority for:" << endl; + cdebug_log(139,0) << "* " << oppositeVertex << endl; + cdebug_log(139,0) << "* " << oppositeVTuple << endl; increaseVTuplePriority( oppositeVTuple, newDistance ); // Du fait de la reinit ce n'est plus seulement un increase! // Non, c'est bon si on garde le CleanRoutingState (avec clearPriorityQueue) } else { VTuple* newOppositeVTuple = VTuple::create ( oppositeVertex, newDistance ); - cdebug.log(139) << "Creating New VTuple for Vertex:" << endl; - cdebug.log(139) << "* " << oppositeVertex << ":" << newDistance << endl; - cdebug.log(139) << "* " << newOppositeVTuple << endl; + cdebug_log(139,0) << "Creating New VTuple for Vertex:" << endl; + cdebug_log(139,0) << "* " << oppositeVertex << ":" << newDistance << endl; + cdebug_log(139,0) << "* " << newOppositeVTuple << endl; addVTupleToPriorityQueue( newOppositeVTuple ); } - cdebug.log(139) << "Updated distance " << newDistance << " on: " << (*iedge) << endl; + cdebug_log(139,0) << "Updated distance " << newDistance << " on: " << (*iedge) << endl; printVTuplePriorityQueue(); //Breakpoint::stop(1, "
Dijkstra
distance has been updated
"); } @@ -1256,7 +1256,7 @@ void Graph::Dijkstra() reachedDistance = newDistance; reachedVertexes.clear(); reachedVertexes.push_back( oppositeVertex ); - cdebug.log(139) << "Re-init (< distance) reachedVertexes with " << oppositeVertex << endl; + cdebug_log(139,0) << "Re-init (< distance) reachedVertexes with " << oppositeVertex << endl; } else if (newDistance == reachedDistance) { // on pourrait simplifier grandement tout ca : 1 seul vertex atteint sauvergardé! // Conclusion qu'il ait le meme connexID ou pas, on ne fait rien, on en a deja atteint @@ -1273,7 +1273,7 @@ void Graph::Dijkstra() } if (not foundVertex) { reachedVertexes.push_back( oppositeVertex ); - cdebug.log(139) << "Re-init (== distance) reachedVertexes with " << oppositeVertex << endl; + cdebug_log(139,0) << "Re-init (== distance) reachedVertexes with " << oppositeVertex << endl; } } else { // Nothing to do? @@ -1293,9 +1293,9 @@ void Graph::Dijkstra() } assert( reachedDistance < (float)(HUGE_VAL) ); - cdebug.log(139) << "Updating two connex components:" << endl; - cdebug.log(139) << "1. " << (*(reachedVertexes.begin())) << endl; - cdebug.log(139) << "2. " << firstVertex << endl; + cdebug_log(139,0) << "Updating two connex components:" << endl; + cdebug_log(139,0) << "1. " << (*(reachedVertexes.begin())) << endl; + cdebug_log(139,0) << "2. " << firstVertex << endl; UpdateConnexComp( reachedVertexes, firstVertex ); } @@ -1306,7 +1306,7 @@ void Graph::Dijkstra() //_vertexes_to_route.clear(); // no more useful //_vertexes_to_route = copy_vertex ; - cdebug.tabw(139,-2); + cdebug_tabw(139,-2); //DebugSession::close(); } diff --git a/knik/src/MatrixVertex.cpp b/knik/src/MatrixVertex.cpp index 113308ff..2b9c4bc4 100644 --- a/knik/src/MatrixVertex.cpp +++ b/knik/src/MatrixVertex.cpp @@ -383,10 +383,10 @@ Vertex* MatrixVertex::getVertex ( Point point ) pair indexes = getIJ ( point ); Vertex* vertex = getVertex ( indexes ); - cdebug.log(139) << "MatrixVertex::getVertex(): " << vertex << endl; + cdebug_log(139,0) << "MatrixVertex::getVertex(): " << vertex << endl; if (vertex and vertex->isBlocked()) { - cdebug.log(139) << "Vertex is blocked, looking for neighbor." << endl; + cdebug_log(139,0) << "Vertex is blocked, looking for neighbor." << endl; Vertex* neighbor = NULL; for ( size_t i=0; i<4 ; ++i ) { neighbor = vertex->getFirstEdges(i)->getOpposite( vertex ); diff --git a/unicorn/src/PyUnicorn.cpp b/unicorn/src/PyUnicorn.cpp index 9fb3bac8..003fe6fc 100644 --- a/unicorn/src/PyUnicorn.cpp +++ b/unicorn/src/PyUnicorn.cpp @@ -57,7 +57,7 @@ extern "C" { // Module Initialization : "initUnicorn ()" DL_EXPORT(void) initUnicorn () { - cdebug.log(46) << "initUnicorn()" << endl; + cdebug_log(46,0) << "initUnicorn()" << endl; PyUnicornGui_LinkPyType (); diff --git a/unicorn/src/PyUnicornGui.cpp b/unicorn/src/PyUnicornGui.cpp index dd1c0f20..bd3e8baa 100644 --- a/unicorn/src/PyUnicornGui.cpp +++ b/unicorn/src/PyUnicornGui.cpp @@ -45,7 +45,7 @@ extern "C" { static PyObject* PyUnicornGui_create ( PyObject*, PyObject* args ) { - cdebug.log(46) << "PyUnicornGui_create()" << endl; + cdebug_log(46,0) << "PyUnicornGui_create()" << endl; UnicornGui* gui = NULL; PyUnicornGui* pyGui = NULL; @@ -68,7 +68,7 @@ extern "C" { static PyObject* PyUnicornGui_registerTool ( PyUnicornGui* self, PyObject* args ) { - cdebug.log(46) << "PyUnicornGui_registerTool()" << endl; + cdebug_log(46,0) << "PyUnicornGui_registerTool()" << endl; HTRY METHOD_HEAD("UnicornGui.registerTool()") @@ -92,7 +92,7 @@ extern "C" { static PyObject* PyUnicornGui_show ( PyUnicornGui* self ) { - cdebug.log(46) << "PyUnicornGui_show()" << endl; + cdebug_log(46,0) << "PyUnicornGui_show()" << endl; HTRY METHOD_HEAD("UnicornGui.show()") @@ -105,7 +105,7 @@ extern "C" { static PyObject* PyUnicornGui_getBanner ( PyUnicornGui* self ) { - cdebug.log(46) << "PyUnicornGui_getBanner()" << endl; + cdebug_log(46,0) << "PyUnicornGui_getBanner()" << endl; Banner* banner = NULL; diff --git a/unicorn/src/cgt.py b/unicorn/src/cgt.py index c8ac6c22..a28b8bc4 100755 --- a/unicorn/src/cgt.py +++ b/unicorn/src/cgt.py @@ -179,7 +179,7 @@ if __name__ == '__main__': unicorn = Unicorn.UnicornGui.create() unicorn.setApplicationName ('cgt') - unicorn.registerTool (Anabatic.GraphicAnabaticEngine.grab()) + #unicorn.registerTool (Anabatic.GraphicAnabaticEngine.grab()) unicorn.registerTool (Etesian.GraphicEtesianEngine.grab()) unicorn.registerTool (Kite.GraphicKiteEngine.grab()) #unicorn.setAnonNetSelectable(False)