effspm 0.3.0__cp311-cp311-win_amd64.whl → 0.3.2__cp311-cp311-win_amd64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,64 +1,27 @@
1
- #ifndef LARGEHM_LOAD_INST_HPP
2
- #define LARGEHM_LOAD_INST_HPP
1
+ #pragma once
3
2
 
4
- #include <string>
5
3
  #include <vector>
4
+ #include <string>
6
5
  #include <fstream>
7
- #include <ctime> // for clock_t
8
-
9
- // We need Pattern and VPattern, so include freq_miner.hpp here:
10
- #include "freq_miner.hpp"
6
+ #include <map>
7
+ #include <unordered_set>
8
+ #include <unordered_map>
9
+ #include <time.h>
11
10
 
12
11
  namespace largehm {
13
12
 
14
- //
15
- // ─── Globals & Function Prototypes ───────────────────────────────────────────
16
- //
17
-
18
- // Output/folder:
19
- extern std::string out_file;
20
- extern std::string folder;
21
-
22
- // Flags:
23
- extern bool b_disp;
24
- extern bool b_write;
25
- extern bool use_dic;
26
- extern bool use_list;
27
- extern bool just_build;
28
- extern bool pre_pro;
29
- extern bool itmset_exists;
13
+ using namespace std;
30
14
 
31
- // Database statistics:
32
- extern unsigned int M;
33
- extern unsigned int L;
34
- extern unsigned int mlim;
35
- extern unsigned int time_limit;
15
+ bool Load_instance(string& items_file, double thresh);
36
16
 
37
- extern unsigned long long int N;
38
- extern unsigned long long int theta;
39
- extern unsigned long long int E;
17
+ extern string out_file, folder;
40
18
 
41
- // Timing:
42
- extern clock_t start_time;
43
-
44
- // In‐memory sequences (only if “in‐memory” mode):
45
- extern std::vector<std::vector<int>> items;
46
-
47
- // Preprocessing dictionary (maps original → compressed IDs):
48
- extern std::vector<int> item_dic;
19
+ extern bool b_disp, b_write, use_dic, just_build, pre_pro, itmset_exists;
49
20
 
50
- // DFS stacks used by the miner (Pattern / VPattern):
51
- extern std::vector<Pattern> DFS;
52
- extern std::vector<VPattern> VDFS;
21
+ extern unsigned int M, L, mlim, time_limit;
53
22
 
54
- // Internal loader functions:
55
- bool Load_items_pre(std::string &inst_name);
56
- bool Load_items(std::string &inst_name);
57
- bool Preprocess(std::string &inst, double thresh);
23
+ extern unsigned long long int N, theta, E;
58
24
 
59
- // Main entry‐point for loading & building the MDD:
60
- bool Load_instance(std::string &items_file, double thresh);
25
+ extern clock_t start_time;
61
26
 
62
27
  } // namespace largehm
63
-
64
- #endif // LARGEHM_LOAD_INST_HPP
@@ -0,0 +1,95 @@
1
+ #include <iostream>
2
+ #include <time.h>
3
+ #include <string.h>
4
+ #include <string>
5
+ #include "load_inst.hpp"
6
+ #include "build_mdd.hpp"
7
+ #include "utility.hpp"
8
+ #include "freq_miner.hpp"
9
+
10
+ using namespace std;
11
+
12
+ string out_file;
13
+
14
+ bool b_disp = 0, b_write = 0, use_dic = 0, just_build = 0, pre_pro = 1;
15
+
16
+ unsigned int time_limit = 10 * 3600;
17
+
18
+ clock_t start_time;
19
+
20
+ string folder;
21
+
22
+ int main(int argc, char* argv[]) {
23
+
24
+ string VV, attr;
25
+
26
+ double thresh = 0;
27
+ for (int i = 1; i<argc; i++) {
28
+ if (argv[i][0] != '-' || isdigit(argv[i][1]))
29
+ continue;
30
+ else if (strcmp(argv[i], "-thr") == 0)
31
+ thresh = stod(argv[i + 1]);
32
+ else if (strcmp(argv[i], "-file") == 0)
33
+ VV = argv[i + 1];
34
+ else if (strcmp(argv[i], "-time") == 0)
35
+ time_limit = stoi(argv[i + 1]);
36
+ else if (strcmp(argv[i], "-jbuild") == 0)
37
+ just_build = 1;
38
+ else if (strcmp(argv[i], "-folder") == 0)
39
+ folder = argv[i + 1];
40
+ else if (strcmp(argv[i], "-npre") == 0)
41
+ pre_pro = 0;
42
+ else if (strcmp(argv[i], "-dic") == 0)
43
+ use_dic = 1;
44
+ else if (strcmp(argv[i], "-out") == 0) {
45
+ if (i + 1 == argc || argv[i + 1][0] == '-')
46
+ b_disp = 1;
47
+ else if (argv[i + 1][0] == '+') {
48
+ b_disp = 1;
49
+ b_write = 1;
50
+ if (strlen(argv[i + 1]) > 1) {
51
+ out_file = argv[i + 1];
52
+ out_file = out_file.substr(1, out_file.size() - 1);
53
+ }
54
+ else
55
+ out_file = VV;
56
+ }
57
+ else {
58
+ b_write = 1;
59
+ out_file = argv[i + 1];
60
+ }
61
+ }
62
+
63
+ else
64
+ cout << "Command " << argv[i] << " not recognized and skipped.\n";
65
+ }
66
+
67
+
68
+
69
+ cout << "\n********************** " << VV << "**********************\n";
70
+
71
+ string item_file = folder + VV + ".txt";
72
+
73
+ cout << "loading instances...\n";
74
+
75
+ start_time = clock();
76
+
77
+ if (!Load_instance(item_file, thresh)) {
78
+ cout << "Files invalid, exiting.\n";
79
+ cin.get();
80
+ return 0;
81
+ }
82
+
83
+ //kk = clock();
84
+
85
+ if (!just_build && give_time(clock() - start_time) < time_limit) {
86
+ Freq_miner();
87
+ if (give_time(clock() - start_time) >= time_limit)
88
+ cout << "TIME LIMIT REACHED\n";
89
+ cout << "Mining Complete\n\nFound a total of " << num_patt << " patterns\n";
90
+ cout << "\nTotal CPU time " << give_time(clock() - start_time) << " seconds\n\n";
91
+ }
92
+
93
+
94
+ return 0;
95
+ }
@@ -2,37 +2,55 @@
2
2
  #include "build_mdd.hpp"
3
3
  #include "load_inst.hpp"
4
4
  #include <iostream>
5
+
5
6
  namespace largehm {
6
- std::vector<std::vector<int>> collected;
7
- bool check_parent(unsigned long long int cur_anct, unsigned long long int str_pnt, unsigned long long int start, vector<unsigned long long int>& strpnt_vec) {
8
-
9
- vector<unsigned long long int> ancestors;
10
-
11
- while (abs(Tree[cur_anct].itmset) > abs(Tree[str_pnt].itmset)) {
12
- if (Tree[cur_anct].item > 0)
13
- ancestors.push_back(cur_anct);
14
- cur_anct = Tree[cur_anct].anct;
15
- }
16
-
17
- if (abs(Tree[cur_anct].itmset) == abs(Tree[str_pnt].itmset))
18
- return 1;
19
- else {
20
- for (vector<unsigned long long int>::reverse_iterator it = ancestors.rbegin(); it != ancestors.rend(); ++it) {
21
- for (unsigned int i = start; i < strpnt_vec.size(); ++i) {
22
- if (strpnt_vec[i] == *it)
23
- return 1;
24
- }
25
- }
26
- }
27
-
28
- return 0;
29
7
 
8
+ using namespace std;
9
+
10
+ // storage for mined patterns (each pattern = vector<int>)
11
+ std::vector<std::vector<int>> collectedPatterns;
12
+
13
+ bool check_parent(unsigned long long int cur_anct,
14
+ unsigned long long int str_pnt,
15
+ unsigned long long int start,
16
+ vector<unsigned long long int>& strpnt_vec) {
17
+
18
+ vector<unsigned long long int> ancestors;
19
+
20
+ while (abs(Tree[cur_anct].itmset) > abs(Tree[str_pnt].itmset)) {
21
+ if (Tree[cur_anct].item > 0)
22
+ ancestors.push_back(cur_anct);
23
+ cur_anct = Tree[cur_anct].anct;
24
+ }
25
+
26
+ if (abs(Tree[cur_anct].itmset) == abs(Tree[str_pnt].itmset))
27
+ return 1;
28
+ else {
29
+ for (vector<unsigned long long int>::reverse_iterator it = ancestors.rbegin();
30
+ it != ancestors.rend(); ++it) {
31
+ for (unsigned int i = start; i < strpnt_vec.size(); ++i) {
32
+ if (strpnt_vec[i] == *it)
33
+ return 1;
34
+ }
35
+ }
36
+ }
37
+
38
+ return 0;
30
39
  }
31
40
 
41
+ float give_time(clock_t kk) {
42
+ float ll = ((float)kk) / CLOCKS_PER_SEC;
43
+ return ll;
44
+ }
32
45
 
46
+ // clear vector used to return patterns to Python
47
+ void ClearCollected() {
48
+ collectedPatterns.clear();
49
+ }
50
+
51
+ // return reference so Python wrapper can build list[list[int]]
52
+ const std::vector<std::vector<int>>& GetCollected() {
53
+ return collectedPatterns;
54
+ }
33
55
 
34
- // float give_time(clock_t kk) {
35
- // float ll = ((float)kk) / CLOCKS_PER_SEC;
36
- // return ll;
37
- // }
38
- }
56
+ } // namespace largehm
@@ -6,24 +6,26 @@
6
6
  #include "build_mdd.hpp"
7
7
 
8
8
  namespace largehm {
9
- using namespace std;
10
9
 
11
- extern std::vector<std::vector<int>> collected;
10
+ using std::vector;
11
+ using std::string;
12
12
 
13
- // Helpers to clear and fetch collected patterns from Python:
14
- inline void ClearCollected() {
15
- collected.clear();
16
- }
17
- inline const std::vector<std::vector<int>>& GetCollected() {
18
- return collected;
19
- }
13
+ // time helper
14
+ float give_time(clock_t kk);
20
15
 
21
- // A small timer helper:
22
- inline float give_time(clock_t kk) {
23
- float ll = ((float)kk) / CLOCKS_PER_SEC;
24
- return ll;
25
- }
26
- bool check_parent(unsigned long long int cur_anct, unsigned long long int str_pnt, unsigned long long int start, vector<unsigned long long int>& strpnt_vec);
16
+ // ancestor-check helper
17
+ bool check_parent(unsigned long long int cur_anct,
18
+ unsigned long long int str_pnt,
19
+ unsigned long long int start,
20
+ vector<unsigned long long int>& strpnt_vec);
27
21
 
22
+ // pattern collection for Python wrapper
23
+ extern std::vector<std::vector<int>> collectedPatterns;
28
24
 
29
- }
25
+ // clear collected patterns between runs
26
+ void ClearCollected();
27
+
28
+ // get collected patterns after mining
29
+ const std::vector<std::vector<int>>& GetCollected();
30
+
31
+ } // namespace largehm
@@ -50,10 +50,11 @@ bool Load_instance(string& items_file, double thresh)
50
50
  return false;
51
51
  else
52
52
  theta = (thresh < 1.0) ? ceil(thresh * N) : thresh;
53
-
54
- cout << "\nMDD Database built in " << give_time(clock() - kk) << " seconds\n\n";
55
- cout << "Found " << N << " sequence, with max line len " << M
56
- << ", and " << L << " items, and " << E << " enteries\n";
53
+ if (b_disp)
54
+ cout << "\nMDD Database built in " << give_time(clock() - kk) << " seconds\n\n";
55
+ if (b_disp)
56
+ cout << "Found " << N << " sequence, with max line len " << M
57
+ << ", and " << L << " items, and " << E << " enteries\n";
57
58
 
58
59
  // ───────────────────────────────────────────────────────────
59
60
  // DEBUG snapshot of seeds right after loading
@@ -0,0 +1,108 @@
1
+ #include <iostream>
2
+ #include <time.h>
3
+ #include <string.h>
4
+ #include <string>
5
+ #include "load_inst.hpp"
6
+ #include "freq_miner.hpp"
7
+ #include "utility.hpp"
8
+
9
+ namespace largepp // ← BEGIN namespacing
10
+ {
11
+ using namespace std;
12
+
13
+ string out_file;
14
+
15
+ bool b_disp = 0, b_write = 0, use_dic = 0, just_build = 0, ovr_count = 0, pre_pro = 0;
16
+
17
+ unsigned int time_limit = 10 * 3600;
18
+
19
+ clock_t start_time;
20
+
21
+ int main(int argc, char* argv[]) {
22
+
23
+ double thresh = 0;
24
+ string VV, folder;
25
+ for (int i = 1; i < argc; ++i){
26
+ if (argv[i][0] !='-')
27
+ continue;
28
+ else if (strcmp(argv[i], "-thr") == 0)
29
+ thresh = stof(argv[i + 1]);
30
+ else if (strcmp(argv[i], "-file") == 0)
31
+ VV = argv[i + 1];
32
+ else if (strcmp(argv[i], "-folder") == 0)
33
+ folder = argv[i + 1];
34
+ else if (strcmp(argv[i], "-time") == 0)
35
+ time_limit = stoi(argv[i + 1]);
36
+ else if (strcmp(argv[i], "-jbuild") == 0)
37
+ just_build = 1;
38
+ else if (strcmp(argv[i], "-npre") == 0)
39
+ pre_pro = 0;
40
+ else if (strcmp(argv[i], "-ovrc") == 0)
41
+ ovr_count = 1;
42
+ else if (strcmp(argv[i], "-dic") == 0)
43
+ use_dic = 1;
44
+ else if (strcmp(argv[i], "-out") == 0){
45
+ if (i + 1 == argc || argv[i + 1][0] == '-')
46
+ b_disp = 1;
47
+ else if (argv[i + 1][0] == '+') {
48
+ b_disp = 1;
49
+ b_write = 1;
50
+ out_file = argv[i + 1];
51
+ out_file = out_file.substr(1,out_file.size()-1);
52
+ }
53
+ else {
54
+ b_write = 1;
55
+ out_file = argv[i + 1];
56
+ }
57
+ }
58
+ else
59
+ cout << "Command " << argv[i] << " not recognized and skipped.\n";
60
+ }
61
+
62
+ if (thresh == 0){
63
+ cout << "No Threshold given, using threshold deafult of 1%\n";
64
+ thresh = 0.01;
65
+ }
66
+ if (folder.back() != '/'){
67
+ folder += '/';
68
+ }
69
+
70
+
71
+ cout << "\n********************** " << VV << "**********************\n";
72
+
73
+ string item_file = folder + VV + ".txt";
74
+ //out_file = folder + VV + "_result.txt";
75
+ cout << "loading instances...\n";
76
+
77
+ start_time = clock();
78
+
79
+ if(!Load_instance(item_file, thresh)){
80
+ cout << "Files invalid, exiting.\n";
81
+ return 0;
82
+ }
83
+
84
+ cout << "Instances loaded\n";
85
+
86
+ if (!just_build && give_time(clock() - start_time) < time_limit) {
87
+ cout << "\nRunning mining algorithm...\n";
88
+ Freq_miner();
89
+ if (give_time(clock() - start_time) >= time_limit)
90
+ cout << "TIME LIMIT REACHED\n";
91
+ cout << "Mining Complete\n\nFound a total of " << num_patt << " patterns\n";
92
+ }
93
+
94
+ cout << "Total CPU time is: ";
95
+ cout << give_time(clock() - start_time) << "\n";
96
+
97
+ if (b_write){
98
+ ofstream file;
99
+ file.open(out_file, std::ios::app);
100
+ file << "\nMining completed in " << give_time(clock() - start_time) << " seconds\n";
101
+ //file << "Found a total of " << num_max_patt << " maximal patterns\n";
102
+ file.close();
103
+ }
104
+
105
+
106
+ return 0;
107
+ }
108
+ }
effspm/load_inst.cpp CHANGED
@@ -25,8 +25,8 @@ bool Load_instance(string &items_file, double thresh) {
25
25
  if (pre_pro) {
26
26
  if(!Preprocess(items_file, thresh))
27
27
  return 0;
28
-
29
- cout << "\nPreprocess done in " << give_time(clock() - kk) << " seconds\n\n";
28
+ if (b_disp)
29
+ cout << "\nPreprocess done in " << give_time(clock() - kk) << " seconds\n\n";
30
30
 
31
31
  DFS.reserve(L);
32
32
  for (int i = 0; i < L; ++i)
@@ -48,10 +48,10 @@ bool Load_instance(string &items_file, double thresh) {
48
48
  else
49
49
  theta = thresh;
50
50
  }
51
-
52
- cout << "\nMDD Database built in " << give_time(clock() - kk) << " seconds\n\n";
53
-
54
- cout << "Found " << N << " sequence, with max line len " << M << ", and " << L << " items, and " << E << " enteries\n";
51
+ if (b_disp)
52
+ cout << "\nMDD Database built in " << give_time(clock() - kk) << " seconds\n\n";
53
+ if (b_disp)
54
+ cout << "Found " << N << " sequence, with max line len " << M << ", and " << L << " items, and " << E << " enteries\n";
55
55
 
56
56
 
57
57
  return 1;
@@ -108,8 +108,8 @@ bool Preprocess(string &inst, double thresh) {
108
108
  if (freq[i] >= theta)
109
109
  item_dic[i] = ++real_L;
110
110
  }
111
-
112
- cout << "Original number of items: " << L << " Reduced to: " << real_L << endl;
111
+ if (b_disp)
112
+ cout << "Original number of items: " << L << " Reduced to: " << real_L << endl;
113
113
 
114
114
  L = real_L;
115
115
  N = 0;
effspm/main.cpp ADDED
@@ -0,0 +1,103 @@
1
+ #include <iostream>
2
+ #include <time.h>
3
+ #include <string.h>
4
+ #include <string>
5
+ #include "load_inst.hpp"
6
+ #include "freq_miner.hpp"
7
+ #include "utility.hpp"
8
+
9
+ using namespace std;
10
+
11
+ string out_file;
12
+
13
+ bool b_disp = 0, b_write = 0, use_dic = 0, use_list = 0, pre_pro = 0;
14
+
15
+ unsigned int time_limit = 10 * 3600;
16
+
17
+ clock_t start_time;
18
+
19
+ int main(int argc, char* argv[]) {
20
+
21
+ double thresh = 0;
22
+ string VV, folder;
23
+ for (int i = 1; i < argc; ++i){
24
+ if (argv[i][0] !='-')
25
+ continue;
26
+ else if (strcmp(argv[i], "-thr") == 0)
27
+ thresh = stof(argv[i + 1]);
28
+ else if (strcmp(argv[i], "-file") == 0)
29
+ VV = argv[i + 1];
30
+ else if (strcmp(argv[i], "-folder") == 0)
31
+ folder = argv[i + 1];
32
+ else if (strcmp(argv[i], "-time") == 0)
33
+ time_limit = stoi(argv[i + 1]);
34
+ else if (strcmp(argv[i], "-uselist") == 0)
35
+ use_list = 1;
36
+ else if (strcmp(argv[i], "-preproc") == 0)
37
+ pre_pro = 1;
38
+ else if (strcmp(argv[i], "-dic") == 0)
39
+ use_dic = 1;
40
+ else if (strcmp(argv[i], "-out") == 0){
41
+ if (i + 1 == argc || argv[i + 1][0] == '-')
42
+ b_disp = 1;
43
+ else if (argv[i + 1][0] == '+') {
44
+ b_disp = 1;
45
+ b_write = 1;
46
+ out_file = argv[i + 1];
47
+ out_file = out_file.substr(1,out_file.size()-1);
48
+ }
49
+ else {
50
+ b_write = 1;
51
+ out_file = argv[i + 1];
52
+ }
53
+ }
54
+ else
55
+ cout << "Command " << argv[i] << " not recognized and skipped.\n";
56
+ }
57
+
58
+ if (thresh == 0){
59
+ cout << "No Threshold given, using threshold deafult of 1%\n";
60
+ thresh = 0.01;
61
+ }
62
+ if (folder.back() != '/'){
63
+ folder += '/';
64
+ }
65
+
66
+
67
+ cout << "\n********************** " << VV << "**********************\n";
68
+
69
+ string item_file = folder + VV + ".txt";
70
+ //out_file = folder + VV + "_result.txt";
71
+ cout << "loading instances...\n";
72
+
73
+ start_time = clock();
74
+
75
+ if(!Load_instance(item_file, thresh)){
76
+ cout << "Files invalid, exiting.\n";
77
+ return 0;
78
+ }
79
+
80
+ cout << "Instances loaded\n";
81
+
82
+ if (give_time(clock() - start_time) < time_limit) {
83
+ cout << "\nRunning mining algorithm...\n";
84
+ Freq_miner();
85
+ if (give_time(clock() - start_time) >= time_limit)
86
+ cout << "TIME LIMIT REACHED\n";
87
+ cout << "Mining Complete\n\nFound a total of " << num_patt << " patterns\n";
88
+ }
89
+
90
+ cout << "Total CPU time is: ";
91
+ cout << give_time(clock() - start_time) << "\n";
92
+
93
+ if (b_write){
94
+ ofstream file;
95
+ file.open(out_file, std::ios::app);
96
+ file << "\nMining completed in " << give_time(clock() - start_time) << " seconds\n";
97
+ //file << "Found a total of " << num_max_patt << " maximal patterns\n";
98
+ file.close();
99
+ }
100
+
101
+
102
+ return 0;
103
+ }
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: effspm
3
- Version: 0.3.0
3
+ Version: 0.3.2
4
4
  Summary: Prefix‑Projection and other sequential pattern mining algorithms
5
5
  Author: Yeswanth Vootla
6
6
  Author-email: yeshu999 <vootlayeswanth20@gmail.com>
@@ -0,0 +1,60 @@
1
+ effspm/__init__.py,sha256=SRhZaFwKFWVneO_TCS9_ld5akH3rq3XtHcinJlAvjPw,257
2
+ effspm/_core.cpp,sha256=JzUCIVmmDMVfRIjIsmXtVkSMkRMprE3wpOrx-jYhAQU,3781
3
+ effspm/_effspm.cp311-win_amd64.pyd,sha256=Mf0-mG47s22-zGmIqHCt3m-wbLRkb3xbkUCfOaqC8iY,383488
4
+ effspm/_effspm.cpp,sha256=PygUvyogziT-GnESdMRJtS3kLvG3F8wtu7abJdP_2yk,48503
5
+ effspm/freq_miner.cpp,sha256=qQDFPoPKY3ICaH2brm1CUKwNBhCy0-0dUWEoV_3FwME,4785
6
+ effspm/freq_miner.hpp,sha256=Ni4ayFci6zPnpwbLBQ6FU5MSvLjgn6jk2_GQ45HHtgo,835
7
+ effspm/load_inst.cpp,sha256=RxqvG3e2fIuIdhejORboISTC38sYR7vtGinGxRbtukQ,4843
8
+ effspm/load_inst.hpp,sha256=S8NvO3KCU6dGcDX8a24SE6uhD1cSAL0jCo0XYFnrwKE,938
9
+ effspm/main.cpp,sha256=CbH7oZ1BKKpmqUXSqazxRlkqHgi0KEMT-mQwbHZ3Av4,2661
10
+ effspm/utility.cpp,sha256=OD5K0K0jQKgqVGJm91pSofImXOEVkDnqQvFh1qytvpA,1458
11
+ effspm/utility.hpp,sha256=hECSm-ORd20QJMundbOLkZvo9nj-I2pXd5AokagyGqQ,773
12
+ effspm/btminer/src/build_mdd.cpp,sha256=t4Exn5vJTekl5nyRg77p898pwjC9NxECAgL4DKgwpR4,2297
13
+ effspm/btminer/src/build_mdd.hpp,sha256=3HDZdQ8k_sJR9UNPvO-48mdnjJGfFaE0vorp86DsQIU,661
14
+ effspm/btminer/src/freq_miner.cpp,sha256=GjttxpUpJpvKugXcKJ2utKG6IeZKVEyiv2RI-nE9jM0,9456
15
+ effspm/btminer/src/freq_miner.hpp,sha256=REbDhYzn7PG1XKjLqaMnk_PzUwwCQKiBGD0DPx3DBI4,1110
16
+ effspm/btminer/src/load_inst.cpp,sha256=0SKue_vk1pdhBhrXvrv9EbJ3pjYyCrI2cmm-ftTATQc,8359
17
+ effspm/btminer/src/load_inst.hpp,sha256=n47RjtvkBuBSb5OLxSuqvUQpPFd7ukMQTD0AIHiYIfw,1030
18
+ effspm/btminer/src/main.cpp,sha256=vfxRTArsjo0sgHaLazs7IHzWhbMAGeATcg4b4TSnTnA,2761
19
+ effspm/btminer/src/utility.cpp,sha256=5at1rTDLS3Jw90tENm0V3W1fEc7q_HhtIG6TyrKYKgg,1244
20
+ effspm/btminer/src/utility.hpp,sha256=ite_7AY33HJKZiFRENhQ3xjNmak5yKy_hE8Ku6-9q2Y,328
21
+ effspm/htminer/src/build_mdd.cpp,sha256=Tvqg9BuKRjTLhMiz-EebX_8_QyW0PbzF82A9IMJDtMc,4025
22
+ effspm/htminer/src/build_mdd.hpp,sha256=zvFhnBniosumIG_rJdgQk-j4U5aLHs3NN_4X1DF7fh8,1223
23
+ effspm/htminer/src/freq_miner.cpp,sha256=odYP3TyLGkLrM42us3S3mEixK6FI-s3g7d1rTU8wHLU,14422
24
+ effspm/htminer/src/freq_miner.hpp,sha256=wNrqMW6m_NZwcFaatqOIuALW_rh8ntp0bxsT-MPP_cM,1049
25
+ effspm/htminer/src/load_inst.cpp,sha256=dRJNSUgUqaicT4eoNCSq4omsWsAY2Q4MNo3uDwWjxyw,10290
26
+ effspm/htminer/src/load_inst.hpp,sha256=-Aaj34a8QIrKI9fnlQJDhfIZSkSlq1LqkLZHRQpiyjA,847
27
+ effspm/htminer/src/main.cpp,sha256=Cq1frpRZH-Et2Ahr2pE-7BBbS90Dt5ECluf9mG9ceEU,2303
28
+ effspm/htminer/src/utility.cpp,sha256=gE4JWPMHzzZQ4xSYnExsU1C793fcV9_nuR9kiItQi9I,1306
29
+ effspm/htminer/src/utility.hpp,sha256=Y_vrZzo5k1DjcBf3_TKn_5bRIAIaDW2tQtDSMSi_dT8,492
30
+ effspm/largebm/src/build_mdd.cpp,sha256=7rFfsKMsmVPWpeawgAKhIT1g7IFJDAGND8Ru7E4nnFg,2680
31
+ effspm/largebm/src/build_mdd.hpp,sha256=ie7EYt7Cu8-04-f4QRrboVyxjstor1OB3V6eGAtBQiA,891
32
+ effspm/largebm/src/freq_miner.cpp,sha256=A6DcQRHJoJECbQPLeGpXmQhZtMQdZ8fOcvxlmJxJdRQ,11212
33
+ effspm/largebm/src/freq_miner.hpp,sha256=EaU1SL3K4ZB_7CFhCIv8pS5UkefqGWzr9iTjrDd23XY,911
34
+ effspm/largebm/src/load_inst.cpp,sha256=_Ym6viWbn6XyE8Mo1kMWujj7ud40egkw2M_eMY9lViE,7044
35
+ effspm/largebm/src/load_inst.hpp,sha256=ujfHWuK2W2ptQ8Pal2Z9ZEkwfImbSlZCspdHAg0BsJA,1193
36
+ effspm/largebm/src/main.cpp,sha256=llo0mmqmHdeige42NkhiDRjAzgbDMzfBfS3K9_5ksFU,2177
37
+ effspm/largebm/src/utility.cpp,sha256=QfgLD5mss5FIWgWwPzIEPNzTIzEnTTYBzkznYrcGz-M,1084
38
+ effspm/largebm/src/utility.hpp,sha256=CZ70tPKMA5qZnqLGTRdgaqfdWzBb1Gfrc7rKniLOHAo,428
39
+ effspm/largehm/src/build_mdd.cpp,sha256=TzpYNJECnq4No8np-L_ua82iJFAYBOsG0wPnq2gUjOM,4583
40
+ effspm/largehm/src/build_mdd.hpp,sha256=cvjxmNKfZcdR82gAq7Fr_mCnebkbXsPGxKrYd199joM,1353
41
+ effspm/largehm/src/freq_miner.cpp,sha256=Rx9Mb1jrTd_shUD2m5ahY2J_XeU4mO_TXxkNnXORKco,14441
42
+ effspm/largehm/src/freq_miner.hpp,sha256=dQf4GXdLxbBlYOB-TjAjn-PZJ0twTB_leEEAj-yCzqU,951
43
+ effspm/largehm/src/load_inst.cpp,sha256=oPL_7gQ1RSW0iA7NupS3Lp9kcwgTFzESfhqs788Dx3g,8628
44
+ effspm/largehm/src/load_inst.hpp,sha256=Ky9BGmtIZj_Fyisi3t51fWpLFIAY2K01jS4rSH6UBJM,527
45
+ effspm/largehm/src/main.cpp,sha256=8ZQMPBCqbdSfTnip67IVk0iUVLpvIcxP2x8QJw0SdDM,2237
46
+ effspm/largehm/src/utility.cpp,sha256=zCf-DQUGBJRpnNE-Tx9RgqrrBk8jXZezKb5hW0dhBPA,1551
47
+ effspm/largehm/src/utility.hpp,sha256=q_9R_wmF78bW1AXPnJ_XgqzFyqYxainGTj23ZRctBTI,747
48
+ effspm/largepp/src/freq_miner.cpp,sha256=wep14Yt0ld_Y76LG1fwYw0zvoB3Vd29enx8GwOQBwDA,7432
49
+ effspm/largepp/src/freq_miner.hpp,sha256=achRvRSVUloeeAbRVhPK0M05pnf4DxSdYTBV8YvOz7w,417
50
+ effspm/largepp/src/load_inst.cpp,sha256=VKnrp5ua-Z7JC_53qQn35et6cCCWho4Ge_MHOt_Mfdg,8346
51
+ effspm/largepp/src/load_inst.hpp,sha256=fDvtWFTiHTIpjA-5n62OAbcS3cFP8XQ_rK1TlVhdpgw,941
52
+ effspm/largepp/src/main.cpp,sha256=uM1zwBC4w4fLC-8rtcATtqyTNGTak3PQ_ztXicxDeRQ,2803
53
+ effspm/largepp/src/pattern.hpp,sha256=UNaO53pDLnEoN5Vdyka4Dg9dFrt7ANH51oRXgdpiarA,670
54
+ effspm/largepp/src/utility.cpp,sha256=YzdLehjqe2arQCiAdkdLUZODLYooy_gWltJGhBAHtyc,988
55
+ effspm/largepp/src/utility.hpp,sha256=6zYJWHSqUL3deyvvNqfKQxabtLtRS5Kh52No5zZ78VQ,757
56
+ effspm-0.3.2.dist-info/licenses/LICENSE,sha256=HrhfyXIkWY2tGFK11kg7vPCqhgh5DcxleloqdhrpyMY,11558
57
+ effspm-0.3.2.dist-info/METADATA,sha256=3Fvy_sX8yAURFngvOAd2suZmIXiSapyUD-MwudwgOpE,14464
58
+ effspm-0.3.2.dist-info/WHEEL,sha256=JLOMsP7F5qtkAkINx5UnzbFguf8CqZeraV8o04b0I8I,101
59
+ effspm-0.3.2.dist-info/top_level.txt,sha256=2O-AuI0nw0pDmJMo2jzM1wvV2rj48AmkjskkAnsuuQk,7
60
+ effspm-0.3.2.dist-info/RECORD,,