This is the mail archive of the gsl-discuss@sourceware.org mailing list for the GSL project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
On Thu, 2008-05-22 at 09:01 +0100, Brian Gough wrote: > At Wed, 21 May 2008 11:13:14 +0200, > Alxneit-Kamber Ivo wrote: > > attached please find an implementation of 'bit_vectors' (maybe bit > > fields would be a better name) that might be an interesting addition to > > GSL. 'bit_vectors' can be used similarly like a C bit field, only that > > they grow and shrink dynamically depending on the number of bits in use. > > Currently the user is limited to 'maximum(size_t)' bits (the bit number > > is passed as size_t) or by the amount of memory available. Note, > > however, that memory for all bits does not necessarily need to be > > allocated because high bits that are either all 1 or 0 are stored as a > > single implied bit. > > Hello, > > Did you have a specific use in mind? This is probably more suited to > a general C library rather than scientific library. > well, i used bit_vectors "to keep track of information". i had a global gsl_vector, some of its elements shared among different (only a few) objects. because each object would access "most" of the elemets of the gsl_vector it was much cheeper to use one bit_vector per object to keep track of the information needed than to use one gsl_vector per object. the gsl_vector was dynamically growing and became very large (~1GB). so i ended up with code like res=0.0; for(i=0; i< n; i++) res += gsl_vector_get(v,i)*bit_vector_test(bv,i); to only sum the contribution of object bv. the read/write/print was used mainly for debugging. some of the logical operators were used in situations to find elements shared by a group of objects or unique to a certain object. shift was implemented just for fun. bit_vector are probaly not suited to do math of very large integers (like 2048 bit numbers). regards -- Dr. Ivo Alxneit Laboratory for Solar Technology phone: +41 56 310 4092 Paul Scherrer Institute fax: +41 56 310 2688 CH-5232 Villigen http://solar.web.psi.ch Switzerland gnupg key: 0x515E30C7
Attachment:
signature.asc
Description: This is a digitally signed message part
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |