2
2
3
3
#include < vector>
4
4
5
+ #include < math.h>
5
6
#include < stdio.h>
6
7
#include < stdlib.h>
7
8
#include < string.h>
@@ -54,6 +55,11 @@ struct Stats
54
55
double v10_zstd;
55
56
double count;
56
57
58
+ double ratio_v0;
59
+ double ratio_v1;
60
+ double ratio_v1_lz4;
61
+ double ratio_v1_zstd;
62
+
57
63
double total_src;
58
64
double total_v0;
59
65
double total_v1;
@@ -103,6 +109,9 @@ void testFile(FILE* file, size_t count, size_t stride, int level, Stats* stats =
103
109
stats->total_src += double (decoded.size ());
104
110
stats->total_v0 += double (input.size ());
105
111
stats->total_v1 += double (output.size ());
112
+
113
+ stats->ratio_v0 += log (double (input.size ()) / double (decoded.size ()));
114
+ stats->ratio_v1 += log (double (output.size ()) / double (decoded.size ()));
106
115
}
107
116
108
117
if (stats && stats->testz )
@@ -117,6 +126,9 @@ void testFile(FILE* file, size_t count, size_t stride, int level, Stats* stats =
117
126
stats->total_v1_lz4 += output_lz4;
118
127
stats->total_v1_zstd += output_zstd;
119
128
129
+ stats->ratio_v1_lz4 += log (double (output_lz4) / double (decoded.size ()));
130
+ stats->ratio_v1_zstd += log (double (output_zstd) / double (decoded.size ()));
131
+
120
132
printf (" \t lz4 %.2f:" , double (decoded_lz4) / double (decoded.size ()));
121
133
printf (" v0 %.2f" , double (input_lz4) / double (decoded.size ()));
122
134
printf (" v1 %.2f" , double (output_lz4) / double (decoded.size ()));
@@ -182,6 +194,9 @@ int main(int argc, char** argv)
182
194
printf (" ---\n " );
183
195
printf (" %d files: raw v1/v0 %+.2f%%, lz4 v1/v0 %+.2f%%, zstd v1/v0 %+.2f%%\n " ,
184
196
int (stats.count ), stats.v10_raw / stats.count * 100 , stats.v10_lz4 / stats.count * 100 , stats.v10_zstd / stats.count * 100 );
197
+ printf (" ratio: v0 %.2f, v1 %.2f, v1+lz4 %.2f, v1+zstd %.2f\n " ,
198
+ exp (stats.ratio_v0 / stats.count ), exp (stats.ratio_v1 / stats.count ),
199
+ exp (stats.ratio_v1_lz4 / stats.count ), exp (stats.ratio_v1_zstd / stats.count ));
185
200
printf (" total: input %.2f MB, v0 %.2f MB, v1 %.2f MB, v1+lz4 %.2f MB, v1+zstd %.2f MB\n " ,
186
201
stats.total_src / 1024 / 1024 , stats.total_v0 / 1024 / 1024 , stats.total_v1 / 1024 / 1024 ,
187
202
stats.total_v1_lz4 / 1024 / 1024 , stats.total_v1_zstd / 1024 / 1024 );
0 commit comments