File: mate-distance-stats.hpp

package info (click to toggle)
sra-sdk 2.10.9%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 38,576 kB
  • sloc: ansic: 211,129; cpp: 54,855; perl: 7,788; sh: 6,988; makefile: 5,174; python: 3,840; java: 2,363; yacc: 786; lex: 416; ruby: 329; lisp: 268; xml: 55
file content (20 lines) | stat: -rw-r--r-- 623 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <map>

class MateDistanceStats {
public:
    typedef unsigned long distance_t;
    typedef unsigned long long count_t;
private:
    typedef std::map<distance_t, count_t> map_t;
    map_t map;
    static bool compare_count_descending(map_t::const_iterator a, map_t::const_iterator b) {
        return b->second < a->second;
    }
    static bool compare_distance(map_t::const_iterator a, map_t::const_iterator b) {
        return a->first < b->first;
    }
public:
    MateDistanceStats() {}
    void Count(distance_t const &d) { ++map[d]; }
    unsigned NthMostFrequent(unsigned N, distance_t result[N]) const;
};