Skip to content

Commit fb787db

Browse files
author
Tyler Burdsall
authored
Merge pull request #12 from iamtheburd/further-optimize-memory
Further optimize memory
2 parents 4d40aa9 + 0e4ac7b commit fb787db

File tree

5 files changed

+21
-21
lines changed

5 files changed

+21
-21
lines changed

src/boost_functions.cpp

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -86,8 +86,7 @@ const void parse_args(const generation_args &args)
8686
}
8787
else
8888
{
89-
set<uint1024_t> range = lazy_cartesian_product::boost_generate_random_indices(args.sample_size, max_size);
90-
generate_random_samples(range, args);
89+
generate_random_samples(max_size, args);
9190
}
9291
exit(0);
9392
}
@@ -99,7 +98,7 @@ const void parse_args(const generation_args &args)
9998
}
10099
}
101100

102-
const void generate_random_samples(const set<uint1024_t> &range, const generation_args &args)
101+
const void generate_random_samples(const uint1024_t &max_size, const generation_args &args)
103102
{
104103
if (!args.display_json)
105104
{
@@ -112,16 +111,16 @@ const void generate_random_samples(const set<uint1024_t> &range, const generatio
112111
{
113112
cout << "[\n";
114113
}
115-
set<uint1024_t>::const_iterator i = range.begin();
116-
while (i != range.end())
114+
const uint1024_t parsed_sample_size(args.sample_size);
115+
lazycp::RandomIterator iter(parsed_sample_size, max_size - 1);
116+
while (iter.has_next())
117117
{
118-
vector<string> result = lazy_cartesian_product::boost_entry_at(args.pc.combinations, (*i).convert_to<string>());
118+
vector<string> result = lazy_cartesian_product::boost_entry_at(args.pc.combinations, iter.next().convert_to<string>());
119119
output_result(result, args, true);
120-
if (args.display_json && i != range.end())
120+
if (args.display_json && iter.has_next())
121121
{
122122
cout << ",";
123123
}
124-
++i;
125124
}
126125
if (args.display_json)
127126
{

src/combigen.cpp

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -84,8 +84,7 @@ const void parse_args(const generation_args &args)
8484
}
8585
else
8686
{
87-
set<unsigned long long> range = lazy_cartesian_product::generate_random_indices(n, max_size);
88-
generate_random_samples(range, args);
87+
generate_random_samples(max_size, args);
8988
}
9089
exit(0);
9190
}
@@ -127,7 +126,7 @@ const void generate_all(const unsigned long long &max_size, const generation_arg
127126
}
128127
}
129128

130-
const void generate_random_samples(const set<unsigned long long> &range, const generation_args &args)
129+
const void generate_random_samples(const unsigned long long &max_size, const generation_args &args)
131130
{
132131
if (!args.display_json)
133132
{
@@ -140,16 +139,16 @@ const void generate_random_samples(const set<unsigned long long> &range, const g
140139
{
141140
cout << "[\n";
142141
}
143-
set<unsigned long long>::const_iterator i = range.begin();
144-
while (i != range.end())
142+
unsigned long long parsed_sample_size = stoull(args.sample_size);
143+
lazycp::RandomIterator iter(parsed_sample_size, max_size - 1);
144+
while (iter.has_next())
145145
{
146-
vector<string> result = lazy_cartesian_product::entry_at(args.pc.combinations, *i);
146+
vector<string> result = lazy_cartesian_product::entry_at(args.pc.combinations, iter.next());
147147
output_result(result, args, true);
148-
if (args.display_json && i != range.end())
148+
if (args.display_json && iter.has_next())
149149
{
150150
cout << ",";
151151
}
152-
++i;
153152
}
154153
if (args.display_json)
155154
{

src/combigen.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,10 +68,10 @@ struct generation_args
6868

6969
#ifdef USE_BOOST
7070
const void generate_all(const uint1024_t &max_size, const generation_args &args);
71-
const void generate_random_samples(const set<uint1024_t> &range, const generation_args &args);
71+
const void generate_random_samples(const uint1024_t &max_size, const generation_args &args);
7272
#else
7373
const void generate_all(const unsigned long long &max_size, const generation_args &args);
74-
const void generate_random_samples(const set<unsigned long long> &range, const generation_args &args);
74+
const void generate_random_samples(const unsigned long long &max_size, const generation_args &args);
7575
#endif
7676
const void generate_random_samples_performance_mode(const generation_args &args);
7777
const void generate_random_samples_memory_mode(const generation_args &args);

src/main.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@
2020
#define MAIN
2121

2222
#define COMBIGEN_MAJOR_VERSION 1
23-
#define COMBIGEN_MINOR_VERSION 3
24-
#define COMBIGEN_REVISION_VERSION 2
23+
#define COMBIGEN_MINOR_VERSION 4
24+
#define COMBIGEN_REVISION_VERSION 0
2525

2626
#if defined(WIN32) || defined(_WIN32) || defined(__WIN32) && !defined(__CYGWIN__)
2727
#include "lib/win-getopt/getopt.h"
@@ -101,12 +101,14 @@ int main(int argc, char* argv[])
101101
break;
102102
case 'k':
103103
args_provided = true;
104+
args.display_keys = true;
104105
break;
105106
case 'v':
106107
cout << "combigen - v" << COMBIGEN_MAJOR_VERSION << '.' << COMBIGEN_MINOR_VERSION << '.' << COMBIGEN_REVISION_VERSION << '\n';
107108
exit(0);
108109
case 'p':
109110
args.perf_mode = true;
111+
args_provided = true;
110112
break;
111113
default:
112114
display_help();

0 commit comments

Comments
 (0)