Skip to content

Commit 4680b0a

Browse files
committed
Improved readme
1 parent 4f539fa commit 4680b0a

File tree

1 file changed

+15
-32
lines changed

1 file changed

+15
-32
lines changed

readme

+15-32
Original file line numberDiff line numberDiff line change
@@ -24,18 +24,23 @@ Features:
2424
- statistical algorithms to efficiently construct similarity and distance metrics, measure similarity between bit-vectors,
2525
integer sets and compressed BLOBs
2626

27+
- operations with rank: population count distances on bit-vector
28+
2729
- sparse vector(s) for native int types using bit transposition and separate compression of bit-plains,
28-
with support of NULL values for construction of in-memory columnar structures.
30+
with support of NULL values (unassigned) for construction of in-memory columnar structures. Bit-transposed
31+
sparse vectors can be used for on-the fly compression of astronomical, molecular biology or other data,
32+
efficient store of associations for graphs, etc.
2933

30-
- algorithms on sparse vectors (dynamic range clipping, etc)

34+
- algorithms on sparse vectors: dynamic range clipping, search, group theory image (re-mapping).
35+
Collection of algorithms is increasing, please check our samples and the API lists.

3136

3237
Features In Progress:
3338

34-
- functional operations on binary sets: translations between sets, mathematical images
35-
3639
- compressed binary relational and adjacency matrixes and operations on matrixes for Entity-Relationship acceleration, graph operations, materialized RDBMS joins, etc
3740

3841
- portable C-library layer working as a bridge to high level languages like Python, Java, Scala, .Net
42+
Please visit our repository at:
43+
https://github.com/tlk00/BitMagicC
3944

4045

4146
License:
@@ -104,7 +109,7 @@ All BM fine tuning parameters are controlled by the preprocessor defines.
104109
BM library supports CXX-11. Move semantics, noexept, etc.
105110
use
106111
#define BM_NO_CXX11
107-
to explicitly disable use of CXX11 features for your build
112+
to explicitly disable use of CXX11 features for your build.
108113

109114
=================================================================================
110115

@@ -121,7 +126,7 @@ You will need compiler supporting Intel SIMD intrinsics (MSVC, GCC - are ok).
121126

122127
To turn on AVX2 - #define BMAVX2OPT
123128
This will automatically enable AVX2 256-bit SIMD, popcount (SSE4.2) and other
124-
compatible harware instructions.
129+
compatible hardware instructions.
125130

126131
BM library does NOT support multiple code paths and runtime CPU identification.
127132
You have to build specifically for your target system or use default portable
@@ -150,19 +155,10 @@ OR
150155
cmake -DBMOPTFLAGS:STRING=BMAVX2OPT ..
151156

152157

153-
=================================================================================
154-
155-
BM library uses ‘register’ keyword, but it is disabled now because in C++11
156-
it is obsolete.
157-
Use
158-
#define BMREGISTER register
159-
to turn it on.
160-
161-
162158
=================================================================================
163159

164160
BM library supports "restrict" keyword, some compilers
165-
(for example Intel C++ for Itanium) generate better
161+
(for example Intel C++) generate better
166162
code (out of order load-stores) when restrict keyword is helping. This option is
167163
turned OFF by default since most of the C++ compilers does not support it.
168164
To turn it ON please #define BM_HASRESTRICT in your project. Some compilers
@@ -172,26 +168,13 @@ to correct keyword.
172168
=================================================================================
173169

174170

175-
Bitcounting optimization can be turned ON by defining BMCOUNTOPT.
176-
Please note this optimization is not completely thread safe and in general may not
177-
be needed on systems with SSE4.2 and up with available harware popcnt and vectrization.
178-
bvector<> template keeps mutable variable inside it and update it
179-
when it count() function is called. It creates a certain chance that this
180-
function will be called from multiple threads and conflict/crash on updating this
181-
variable.
182-
183-
If BMCOUNTOPT is not defined (default) BM library should be considered thread
184-
safe for all reads - all "const" on functions, methods, parameters are honored.
185-
186-
=================================================================================
187-
188171
If you want to use BM library in STL-free project you need to define
189172
BM_NO_STL variable. It will disable inclusion of certain headers and also
190-
will make bvector iterators incompatible with STL algorithms
173+
will make bm::bvector<> iterators incompatible with STL algorithms
191174
(which you said you are not using anyway).
192175

193-
This rule only applies to the core bvector methods. Auxiliary algorithms may use
194-
STL.
176+
This rule only applies to the core bm::bvector<> methods.
177+
Auxiliary algorithms may still use STL.
195178

196179
=================================================================================
197180

0 commit comments

Comments
 (0)