[#56333] [CommonRuby - Feature #8723][Open] Array.any? predicate returns true for empty array. — "nurettin (Nurettin Onur TUGCU)" <onurtugcu@...>
[#56368] [ruby-trunk - Bug #8730][Open] "rescue Exception" rescues Timeout::ExitException — "takiuchi (Genki Takiuchi)" <genki@...21g.com>
2013/8/28 nobu (Nobuyoshi Nakada) <nobu@ruby-lang.org>:
[#56389] [ruby-trunk - Feature #8738][Open] Integer#single_bit? (Actually Fixnum#single_bit? and Bignum#single_bit?) — "akr (Akira Tanaka)" <akr@...>
[#56407] [ruby-trunk - misc #8741][Open] email notification on bugs.ruby-lang.org is broken — "rits (First Last)" <redmine@...>
[#56517] Re: [ruby-cvs:49638] zzak:r42496 (trunk): * lib/time.rb: [DOC] Document constants by @markijbema [Fixes GH-377] — Tanaka Akira <akr@...>
2013/8/11 <zzak@ruby-lang.org>:
[#56523] [ruby-trunk - Bug #8769][Open] [PATCH] process.c (rb_fork_internal): remove cloexec setting — "normalperson (Eric Wong)" <normalperson@...>
[#56524] [ruby-trunk - Bug #8770][Open] [PATCH] process.c: avoid EINTR from Process.spawn — "normalperson (Eric Wong)" <normalperson@...>
[#56536] [ruby-trunk - Feature #8772][Open] Hash alias #| merge, and the case for Hash and Array polymorphism — "trans (Thomas Sawyer)" <redmine@...>
[#56551] [CommonRuby - Feature #8777][Open] Process.mach_absolute_time — "tenderlovemaking (Aaron Patterson)" <tenderlove@...>
[#56567] [ruby-trunk - Feature #8780][Assigned] DBM#to_h alias for #to_hash — "zzak (Zachary Scott)" <e@...>
[#56569] [ruby-trunk - Feature #8781][Open] Use require_relative() instead of require() if possible — "ko1 (Koichi Sasada)" <redmine@...>
On Sat, Aug 17, 2013 at 07:17:50AM +0900, trans (Thomas Sawyer) wrote:
(13/08/17 13:13), Aaron Patterson wrote:
(2013/08/12 15:35), ko1 (Koichi Sasada) wrote:
(2013/08/13 2:25), drbrain (Eric Hodel) wrote:
On Tue, Aug 13, 2013 at 07:38:01AM +0900, SASADA Koichi wrote:
(2013/08/16 14:21), Aaron Patterson wrote:
On Fri, Aug 16, 2013 at 03:00:59PM +0900, SASADA Koichi wrote:
Em 16-08-2013 03:24, Aaron Patterson escreveu:
On Fri, Aug 16, 2013 at 09:35:04AM -0300, Rodrigo Rosenfeld Rosas wrote:
[#56634] [ruby-trunk - Feature #8788][Open] use eventfd on newer Linux instead of pipe for timer thread — "normalperson (Eric Wong)" <normalperson@...>
(2013/08/16 10:47), normalperson (Eric Wong) wrote:
SASADA Koichi <ko1@atdot.net> wrote:
Hi
KOSAKI Motohiro <kosaki.motohiro@gmail.com> wrote:
[#56658] [ruby-trunk - Feature #8796][Open] Use GMP to accelerate Bignum operations — "akr (Akira Tanaka)" <akr@...>
[#56672] Re: [ruby-cvs:49733] eregon:r42591 (trunk): * process.c (rb_clock_gettime): document CLOCK_REALTIME and — Tanaka Akira <akr@...>
2013/8/17 <eregon@ruby-lang.org>:
On 17 August 2013 02:52, Tanaka Akira <akr@fsij.org> wrote:
[#56746] [ruby-trunk - Bug #8803][Open] Another buffer overflow — "user021 (a s)" <user021@...>
[#56753] [ruby-trunk - Feature #8804][Open] ONCE syntax — "ko1 (Koichi Sasada)" <redmine@...>
[#56762] [ruby-trunk - Bug #8805][Open] Ruby GC::Profiler returns incorrect info on Solaris (and relatives) — "sax (Eric Saxby)" <sax@...>
[#56780] [ruby-trunk - Feature #8809][Open] Process.clock_getres — "akr (Akira Tanaka)" <akr@...>
[#56795] [ruby-trunk - Bug #8816][Open] Tempfile.new may return the same name for parallel calls — "375gnu (Hleb Valoshka)" <redmine@...>
[#56809] [ruby-trunk - Feature #8820][Open] Speed up Array#index — "trans (Thomas Sawyer)" <redmine@...>
"trans (Thomas Sawyer)" <redmine@ruby-lang.org> wrote:
[#56824] [ruby-trunk - Feature #8823][Open] Run trap handler in an independent thread called "Signal thread" — "ko1 (Koichi Sasada)" <redmine@...>
2013/8/27 ko1 (Koichi Sasada) <redmine@ruby-lang.org>:
[#56839] [ANN] Ruby Developer Meeting 20130831 — "NARUSE, Yui" <naruse@...>
Hi,
Hi,
[#56861] [ruby-trunk - Feature #3620] Add Queue, SIzedQueue and ConditionVariable implementations in C in addition to ruby ones — "ko1 (Koichi Sasada)" <redmine@...>
"ko1 (Koichi Sasada)" <redmine@ruby-lang.org> wrote:
[#56866] [ruby-trunk - Feature #8834][Open] Kernel#load_relative — "sawa (Tsuyoshi Sawada)" <sawadatsuyoshi@...>
[#56890] [ruby-trunk - Feature #8839][Open] Class and module should return the class or module that was opened — "headius (Charles Nutter)" <headius@...>
[#56894] [ruby-trunk - Feature #8840][Open] Yielder#state — "marcandre (Marc-Andre Lafortune)" <ruby-core@...>
[#56911] [ruby-trunk - Feature #8846][Open] Publicize Module#include — "matsuda (Akira Matsuda)" <ronnie@...>
[ruby-core:56433] [ruby-trunk - Feature #8748][Open] Integer#popcount (Fixnum#popcount and Bignum#popcount)
Issue #8748 has been reported by akr (Akira Tanaka). ---------------------------------------- Feature #8748: Integer#popcount (Fixnum#popcount and Bignum#popcount) https://bugs.ruby-lang.org/issues/8748 Author: akr (Akira Tanaka) Status: Open Priority: Normal Assignee: Category: Target version: How about adding Integer#popcount method? (actually Fixnum#popcount and Bignum#popcount) 0.popcount #=> 0 1.popcount #=> 1 255.popcount #=> 8 256.popcount #=> 1 (10**100).popcount #=> 105 (257**257).popcount #=> 999 It counts the number of one bits in the integer. If the integer is negative, the one bits in the absolute number is counted. popcount has various applications. Hamming distance, rank/select for succinct data structure, brightness of monochrome image, etc. In general, popcount is useful when an array is encoded as an integer. Several lower layers provides this feature. gcc and clang has __builtin_popcount. Intel and AMD provides popcnt instruction. Several languages and libraries provides this feature: absolute number: Mathmatica(DigitCount) two's complement: Java(java.math.BigInteger#bitCount), Scala(bitCount), CommonLisp(logcount), CLN(logcount) other behavior: GMP(mpz_popcount), Haskell(popCount), Scheme(bitwise-bit-count) fixed size: gcc (__builtin_popcount), Intel/AMD(popcnt), Java(java.lang.Integer.bitCount) For negative numbers, my implementation counts bits in abs(n). I think this is easy to understand, at least. However many software counts bits in two's complement representation. There are several names. I think popcount is popular but bitcount is also a possible name. I don't like logcount. Any comments? Details of the other software: Mathmatica has DigitCount which can be used as popcount. n.popcount can be implemented as DigitCount[n, 2, 1]. It seems work for abs(n). (I tested with Wolfram Alpha.) http://reference.wolfram.com/mathematica/ref/DigitCount.html Java has bitCount method in java.lang.Integer and java.math.BigInteger. java.lang.Integer counts one-bits in two's complement representation (so it is not applicable for infinite precision integer). java.math.BigInteger counts bits which is different to sign bit in two's complement representation. http://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html#bitCount(int) http://docs.oracle.com/javase/7/docs/api/java/math/BigInteger.html#bitCount() Scala has bitCount method too. It works as Java. http://www.scala-lang.org/api/current/index.html#scala.math.BigInt CommonLisp has logcount function. http://www.lispworks.com/documentation/HyperSpec/Body/f_logcou.htm CLN has logcount function. http://www.ginac.de/CLN/cln.html#Exact-numbers GMP has mpz_popcount. It returns a some constant for negative values. http://gmplib.org/manual/Integer-Logic-and-Bit-Fiddling.html#Integer-Logic-and-Bit-Fiddling Haskell has popCount. It seems hang for negative values. http://www.haskell.org/ghc/docs/7.6.2/html/libraries/base/Data-Bits.html#t:Bits Scheme has bitwise-bit-count. It returns negative result for negative values. http://www.r6rs.org/final/html/r6rs-lib/r6rs-lib-Z-H-12.html#node_sec_11.1 -- http://bugs.ruby-lang.org/ _______________________________________________ ruby-core mailing list ruby-core@ruby-lang.org http://lists.ruby-lang.org/cgi-bin/mailman/listinfo/ruby-core