From: "H. Peter Anvin" <hpa@zytor.com>
To: Christian Couder <christian.couder@gmail.com>
Cc: Christian Couder <chriscool@tuxfamily.org>,
Junio C Hamano <gitster@pobox.com>,
git@vger.kernel.org, Sam Vilain <sam@vilain.net>,
Ingo Molnar <mingo@elte.hu>
Subject: Re: [PATCH v3 0/3] automatically skip away from broken commits
Date: Sat, 13 Jun 2009 12:03:00 -0700 [thread overview]
Message-ID: <4A33F7E4.4020201@zytor.com> (raw)
In-Reply-To: <c07716ae0906120456j1a14af52n47c3a3542201aaf@mail.gmail.com>
Christian Couder wrote:
> On Thu, Jun 11, 2009 at 7:05 AM, H. Peter Anvin<hpa@zytor.com> wrote:
>> Urk, I managed to get myself completely confused -- I did the series
>> approximation on the wrong side of inverting the function. The correct
>> power is actually 1.5 (over the range 0 to 1), a value > 1 is necessary
>> to bias the PRNG toward the beginning (x = 0) of the list.
>
> I started working on this, but I wonder if it's better to add a
> #include <math.h> and link with -lm than to provide a custom sqrt
> implementation. Too bad the best power is not 2.
>
That's what I would do. It's not like sqrt() is a strange, unportable
function.
> To implement the PRNG, I guess that using something based on the
> function given by "man 3 rand" should be ok:
>
> int get_prn(int count) {
> count = count * 1103515245 + 12345;
> return((unsigned)(count/65536) % 32768);
> }
>
> where the "count" we pass is the count of elements in the list rather
> than the static seed.
Yes, or perhaps better we could use some combination of the SHA-1s
involved as seeds... they are rather nice for this as they are wide and
much better PRNGs than most classical algorithms.
The main problem with the above algorithm is that it only produces 16
bits of output, which when biased can turn into a fairly significant
granularity.
-hpa
--
H. Peter Anvin, Intel Open Source Technology Center
I work for Intel. I don't speak on their behalf.
next prev parent reply other threads:[~2009-06-13 19:09 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-06-06 4:41 [PATCH v3 0/3] automatically skip away from broken commits Christian Couder
2009-06-06 4:41 ` [PATCH v3 1/3] bisect: add parameters to "filter_skipped" Christian Couder
2009-06-06 4:41 ` [PATCH v3 2/3] bisect: when skipping, choose a commit away from a skipped commit Christian Couder
2009-06-06 4:41 ` [PATCH v3 3/3] t6030: test skipping away from an already " Christian Couder
2009-06-06 19:51 ` [PATCH v3 0/3] automatically skip away from broken commits Junio C Hamano
2009-06-07 7:32 ` Christian Couder
2009-06-08 6:06 ` H. Peter Anvin
2009-06-08 7:25 ` Junio C Hamano
2009-06-08 15:51 ` H. Peter Anvin
2009-06-08 21:02 ` Junio C Hamano
2009-06-08 21:10 ` H. Peter Anvin
2009-06-09 4:24 ` Christian Couder
2009-06-09 10:02 ` Jakub Narebski
2009-06-09 15:11 ` H. Peter Anvin
2009-06-09 21:55 ` Jakub Narebski
2009-06-09 22:54 ` H. Peter Anvin
2009-06-09 12:26 ` Christian Couder
2009-06-09 15:25 ` H. Peter Anvin
2009-06-09 18:35 ` Junio C Hamano
2009-06-09 18:42 ` H. Peter Anvin
2009-06-09 19:28 ` Christian Couder
2009-06-09 19:32 ` H. Peter Anvin
2009-06-10 8:14 ` Christian Couder
2009-06-09 20:37 ` Junio C Hamano
2009-06-10 19:37 ` Christian Couder
2009-06-10 21:17 ` Junio C Hamano
2009-06-10 22:43 ` H. Peter Anvin
2009-06-11 4:02 ` Christian Couder
2009-06-11 4:43 ` H. Peter Anvin
2009-06-11 5:05 ` H. Peter Anvin
2009-06-12 11:56 ` Christian Couder
2009-06-13 19:03 ` H. Peter Anvin [this message]
2009-06-13 19:35 ` Jakub Narebski
2009-06-13 19:57 ` H. Peter Anvin
2009-06-15 7:59 ` Christian Couder
2009-06-15 13:16 ` H. Peter Anvin
2009-06-13 7:50 ` Christian Couder
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4A33F7E4.4020201@zytor.com \
--to=hpa@zytor.com \
--cc=chriscool@tuxfamily.org \
--cc=christian.couder@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=mingo@elte.hu \
--cc=sam@vilain.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).