Skip to content

Commit 07dd414

Browse files
committed
Undo changes in generate_hash_arrays.cpp
1 parent d396933 commit 07dd414

File tree

1 file changed

+55
-70
lines changed

1 file changed

+55
-70
lines changed

test/hash_functions/generate_hash_arrays.cpp

+55-70
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
#include <stdio.h>
1+
#include <iostream>
2+
#include <fstream>
23

34
extern "C" {
45
#include "nmhash.h"
@@ -51,130 +52,114 @@ void SpookyHash_seed_state_test(int in_bits, const void *seed, void *state) {
5152
}
5253
}
5354

55+
using namespace std;
56+
5457
static const int SIZE = 2048;
5558
char * key_array = new char[SIZE];
5659
static const uint32_t NM_SEED = 0xdeadbeef;
5760
static const uint64_t WATER_SEED = 0xdeadbeef1eadbeef;
5861
static const uint32_t PENGY_SEED = 0xdeadbeef;
5962
static const uint64_t SPOOKY_SEED[2] = { WATER_SEED, WATER_SEED };
6063

61-
int read_keys() {
62-
const char *inFileName = "key_array.bin";
63-
FILE *fin = fopen(inFileName, "rb");
64-
65-
if (!fin) {
66-
fprintf(stderr, "Cannot open key_array.bin!\n");
67-
return 1;
68-
}
69-
70-
size_t bytesRead = fread(key_array, 1, SIZE, fin);
71-
if (bytesRead != SIZE) {
72-
fprintf(stderr, "Error reading key_array.bin! Only %zu bytes read.\n", bytesRead);
73-
fclose(fin);
64+
int read_keys(){
65+
string inFileName = "key_array.bin";
66+
std::ifstream fin( inFileName, ios::in | ios::binary );
67+
if (!fin){
68+
cout << "Cannot open key_array.bin!" << endl;
7469
return 1;
7570
}
76-
77-
fclose(fin);
71+
fin.read(key_array, SIZE);
72+
fin.close();
7873
return 0;
7974
}
8075

81-
int write_nmhash32() {
76+
int write_nmhash32(){
8277
size_t i;
8378
uint32_t hash;
84-
const char *outFileName = "c_nmhash32_array.bin";
85-
FILE *fout = fopen(outFileName, "wb");
79+
string outFileName = "c_nmhash32_array.bin";
80+
std::ofstream fout( outFileName, ios::out | ios::binary );
8681

87-
if (!fout) {
88-
fprintf(stderr, "Cannot open c_nmhash32_array.bin!\n");
82+
if (!fout){
83+
cout << "Cannot open c_nmhash32_array.bin!" << endl;
8984
return 1;
9085
}
91-
92-
for (i = 0; i <= SIZE; i++) {
93-
hash = NMHASH32((const void *)key_array, i, NM_SEED);
94-
fwrite(&hash, sizeof(uint32_t), 1, fout); // Write 4 bytes (1 uint32_t) to the file
86+
for( i=0; i<=SIZE; i+=1 ){
87+
hash = NMHASH32((void *) key_array, i, NM_SEED);
88+
fout.write((char *) &hash, 4);
9589
}
96-
97-
fclose(fout);
90+
fout.close();
9891
return 0;
9992
}
10093

101-
int write_nmhash32x() {
94+
int write_nmhash32x(){
10295
size_t i;
10396
uint32_t hash;
104-
const char *outFileName = "c_nmhash32x_array.bin";
105-
FILE *fout = fopen(outFileName, "wb");
97+
string outFileName = "c_nmhash32x_array.bin";
98+
std::ofstream fout( outFileName, ios::out | ios::binary );
10699

107-
if (!fout) {
108-
fprintf(stderr, "Cannot open c_nmhash32x_array.bin!\n");
100+
if (!fout){
101+
cout << "Cannot open c_nmhash32x_array.bin!" << endl;
109102
return 1;
110103
}
111-
112-
for (i = 0; i <= SIZE; i++) {
113-
hash = NMHASH32X((const void *)key_array, i, NM_SEED);
114-
fwrite(&hash, sizeof(uint32_t), 1, fout); // Write 4 bytes (1 uint32_t) to the file
104+
for( i=0; i<=SIZE; i+=1 ){
105+
hash = NMHASH32X((void *) key_array, i, NM_SEED);
106+
fout.write((char *) &hash, 4);
115107
}
116-
117-
fclose(fout);
108+
fout.close();
118109
return 0;
119110
}
120111

121-
int write_water() {
112+
int write_water(){
122113
uint32_t i;
123114
uint32_t hash;
124-
const char *outFileName = "c_water_hash_array.bin";
125-
FILE *fout = fopen(outFileName, "wb");
115+
string outFileName = "c_water_hash_array.bin";
116+
std::ofstream fout( outFileName, ios::out | ios::binary );
126117

127-
if (!fout) {
128-
fprintf(stderr, "Cannot open c_water_hash_array.bin!\n");
118+
if (!fout){
119+
cout << "Cannot open c_water_hash_array.bin!" << endl;
129120
return 1;
130121
}
131-
132-
for (i = 0; i <= SIZE; i++) {
133-
hash = waterhash((const void *)key_array, i, WATER_SEED);
134-
fwrite(&hash, sizeof(uint32_t), 1, fout); // Write 4 bytes (1 uint32_t) to the file
122+
for( i=0; i<=SIZE; i+=1 ){
123+
hash = waterhash((void *) key_array, i, WATER_SEED);
124+
fout.write((char *) &hash, 4);
135125
}
136-
137-
fclose(fout);
126+
fout.close();
138127
return 0;
139128
}
140129

141130
int write_pengy(){
142131
size_t i;
143132
uint64_t hash;
144-
const char *outFileName = "c_pengy_hash_array.bin";
145-
FILE *fout = fopen(outFileName, "wb");
133+
string outFileName = "c_pengy_hash_array.bin";
134+
std::ofstream fout( outFileName, ios::out | ios::binary );
146135

147-
if (!fout) {
148-
fprintf(stderr, "Cannot open c_pengy_hash_array.bin!\n");
136+
if (!fout){
137+
cout << "Cannot open c_pengy_hash_array.bin!" << endl;
149138
return 1;
150139
}
151-
152-
for (i = 0; i <= SIZE; i++) {
153-
hash = pengyhash((const void *)key_array, i, PENGY_SEED);
154-
fwrite(&hash, sizeof(uint64_t), 1, fout); // Write 8 bytes (1 uint64_t) to the file
140+
for( i=0; i<=SIZE; i+=1 ){
141+
hash = pengyhash((void *) key_array, i, PENGY_SEED);
142+
fout.write((char *) &hash, 8);
155143
}
156-
157-
fclose(fout);
144+
fout.close();
158145
return 0;
159146
}
160147

161-
int write_spooky() {
148+
int write_spooky(){
162149
size_t i;
163150
uint64_t hash[2];
164-
const char *outFileName = "c_spooky_hash_array.bin";
165-
FILE *fout = fopen(outFileName, "wb");
151+
string outFileName = "c_spooky_hash_array.bin";
152+
std::ofstream fout( outFileName, ios::out | ios::binary );
166153

167-
if (!fout) {
168-
fprintf(stderr, "Cannot open c_spooky_hash_array.bin!\n");
154+
if (!fout){
155+
cout << "Cannot open c_spooky_hash_array.bin!" << endl;
169156
return 1;
170157
}
171-
172-
for (i = 0; i <= SIZE; i++) {
173-
SpookyHash128_with_state_test((const void *)key_array, i, (const void *)SPOOKY_SEED, (void *)hash);
174-
fwrite(hash, sizeof(uint64_t), 2, fout); // Write 16 bytes (2 * 8 bytes) to the file
158+
for( i=0; i<=SIZE; i+=1 ){
159+
SpookyHash128_with_state_test((void *) key_array, i, (void *) SPOOKY_SEED, (void *) hash);
160+
fout.write((char *) hash, 16);
175161
}
176-
177-
fclose(fout);
162+
fout.close();
178163
return 0;
179164
}
180165

0 commit comments

Comments
 (0)