Ignore:
Timestamp:
02/15/18 00:43:07 (6 years ago)
Author:
Maciej Komosinski
Message:

Code formatting

File:
1 edited

Legend:

Unmodified
Added
Removed
  • cpp/frams/util/multirange.h

    r286 r733  
    1212   - (a,a) contains single integer: a
    1313   - (a,b) contains [b-a+1] integers
    14  */
     14   */
    1515class IRange
    1616{
    17   public:
    18 int begin,end;
    19 IRange():begin(0),end(0) {}
    20 IRange(int b,int e):begin(b),end(e) {}
    21 IRange(const IRange& r):begin(r.begin),end(r.end) {}
    22 int size() const {return end-begin+1;}
    23 int isEmpty() const {return end<begin;}
    24 void makeEmpty() {end=begin;}
    25 void set(int b,int e) {begin=b; end=e;}
    26 void intersect(const IRange& r);
    27 void add(const IRange& r);
    28 /** all empty ranges are equal */
    29 int operator==(const IRange& r);
    30 void operator=(const IRange& r) {begin=r.begin; end=r.end;}
    31 int contains(int x) {return (x>=begin)&&(x<=end);}
    32 int contains(const IRange& r) {return !r.isEmpty()&&contains(r.begin)&&contains(r.end);}
    33 void print() const;
     17public:
     18        int begin, end;
     19        IRange() :begin(0), end(0) {}
     20        IRange(int b, int e) :begin(b), end(e) {}
     21        IRange(const IRange& r) :begin(r.begin), end(r.end) {}
     22        int size() const { return end - begin + 1; }
     23        int isEmpty() const { return end < begin; }
     24        void makeEmpty() { end = begin; }
     25        void set(int b, int e) { begin = b; end = e; }
     26        void intersect(const IRange& r);
     27        void add(const IRange& r);
     28        /** all empty ranges are equal */
     29        int operator==(const IRange& r);
     30        void operator=(const IRange& r) { begin = r.begin; end = r.end; }
     31        int contains(int x) { return (x >= begin) && (x <= end); }
     32        int contains(const IRange& r) { return !r.isEmpty() && contains(r.begin) && contains(r.end); }
     33        void print() const;
    3434};
    3535
     
    3737class MultiRange
    3838{
    39 /** subsequent ranges in array, stored as: {begin1,end1,begin2,end2,...}
    40     there are data.size()/2 ranges.
    41     all ranges are sorted by 'begin' value.
    42     ranges cannot intersect.
    43  */
    44 SListTempl<int> data;
    45 int getData(int i) const {return (int)data(i);}
    46 void setData(int i,int x) {data.set(i,x);}
    47 int getBegin(int i) const {return getData(2*i);}
    48 int getEnd(int i) const {return getData(2*i+1);}
    49 void setBegin(int i,int x) {setData(2*i,x);}
    50 void setEnd(int i,int x) {setData(2*i+1,x);}
    51 /** find the last range with begin<=x
    52  @return -1 if not found */
    53 int findRange(int x) const;
    54 void addRange(int i,int b,int e);
    55 void removeRange(int i);
    56 void removeRanges(int r1,int r2);
     39        /** subsequent ranges in array, stored as: {begin1,end1,begin2,end2,...}
     40                there are data.size()/2 ranges.
     41                all ranges are sorted by 'begin' value.
     42                ranges cannot intersect.
     43                */
     44        SListTempl<int> data;
     45        int getData(int i) const { return (int)data(i); }
     46        void setData(int i, int x) { data.set(i, x); }
     47        int getBegin(int i) const { return getData(2 * i); }
     48        int getEnd(int i) const { return getData(2 * i + 1); }
     49        void setBegin(int i, int x) { setData(2 * i, x); }
     50        void setEnd(int i, int x) { setData(2 * i + 1, x); }
     51        /** find the last range with begin<=x
     52        @return -1 if not found */
     53        int findRange(int x) const;
     54        void addRange(int i, int b, int e);
     55        void removeRange(int i);
     56        void removeRanges(int r1, int r2);
    5757
    58   public:
    59 MultiRange() {}
    60 MultiRange(const MultiRange &mr) {data=mr.data;}
    61 void operator=(const MultiRange &mr) {data=mr.data;}
    62 MultiRange(const IRange &r) {add(r);}
    63 MultiRange(int begin,int end) {add(begin,end);}
    64 MultiRange(int x) {add(x);}
     58public:
     59        MultiRange() {}
     60        MultiRange(const MultiRange &mr) { data = mr.data; }
     61        void operator=(const MultiRange &mr) { data = mr.data; }
     62        MultiRange(const IRange &r) { add(r); }
     63        MultiRange(int begin, int end) { add(begin, end); }
     64        MultiRange(int x) { add(x); }
    6565
    66 int operator==(const MultiRange &mr) const {return data==mr.data;}
     66        int operator==(const MultiRange &mr) const { return data == mr.data; }
    6767
    68 void clear();
    69 int isEmpty() const;
     68        void clear();
     69        int isEmpty() const;
    7070
    71 IRange singleRange() const;
    72 int rangeCount() const;
    73 IRange getRange(int i) const;
     71        IRange singleRange() const;
     72        int rangeCount() const;
     73        IRange getRange(int i) const;
    7474
    75 void add(int x) {add(x,x);}
    76 void add(const IRange& r) {add(r.begin,r.end);}
    77 void add(int begin, int end);
    78 void add(const MultiRange &mr);
     75        void add(int x) { add(x, x); }
     76        void add(const IRange& r) { add(r.begin, r.end); }
     77        void add(int begin, int end);
     78        void add(const MultiRange &mr);
    7979
    80 void remove(int x) {remove(x,x);}
    81 void remove(const IRange& r) {remove(r.begin,r.end);}
    82 void remove(int begin, int end);
    83 void remove(const MultiRange &mr);
     80        void remove(int x) { remove(x, x); }
     81        void remove(const IRange& r) { remove(r.begin, r.end); }
     82        void remove(int begin, int end);
     83        void remove(const MultiRange &mr);
    8484
    85 int contains(int x) const;
    86 int contains(const IRange& r) const;
    87 int contains(const MultiRange &mr) const;
     85        int contains(int x) const;
     86        int contains(const IRange& r) const;
     87        int contains(const MultiRange &mr) const;
    8888
    89 void intersect(const IRange& r) {intersect(r.begin,r.end);}
    90 void intersect(int begin, int end);
    91 void intersect(const MultiRange &mr);
     89        void intersect(const IRange& r) { intersect(r.begin, r.end); }
     90        void intersect(int begin, int end);
     91        void intersect(const MultiRange &mr);
    9292
    93 void shift(int delta);
     93        void shift(int delta);
    9494
    95 void print() const;
    96 void print2() const;
     95        void print() const;
     96        void print2() const;
    9797};
    9898
    9999#endif
    100 
    101 
    102 
    103 
    104 
Note: See TracChangeset for help on using the changeset viewer.