Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Need help with nearest bit algorithm

Author: Chris Hull

Date: 17:45:32 01/10/04

Go up one level in this thread


On January 10, 2004 at 15:25:51, Russell Reagan wrote:

>On January 10, 2004 at 14:28:58, Chris Hull wrote:
>
>>I am trying to find a fast algorithm that will return the closest bit to a given
>>bit. I searched google but found nothing.
>>
>>Here is an example problem stated as concisely as I can.
>>
>>Given:
>>
>>    111111
>>    5432109876543210    // bit positions
>>
>>X = 0101000100000101    // binary
>>Postion = 8
>>
>>/** Here is the problem we are trying to solve
>>    Find nearest bit higher than bit number 8 and
>>    find nearest bit lower than bit number 8 **/
>>
>>X' = 0101000*00000101
>>
>>so if
>>
>>Y = int FindNearestHigherBit( int X, int Position );
>>Z = int FindNearestLowerBit( int X, int Position );
>>
>>then
>>
>>Y = 0001000000000000
>>Z = 0000000000000100
>>
>>So I am looking for the function/algorithm for FindNearestHigherBit and
>>FindNearestLowerBit. I would like one that runs fast (ie one clock cycle)
>>and not a loop that looks at every bit.
>
>I don't think you're going to find one that runs in one clock cycle, but you can
>do some of this pretty fast. The FindNearestHigherBit function should run pretty
>fast (because of the nature of manipulating right-most bits). I will have to
>have a look in one of my books at home after I get off work, and I should be
>able to give you some answers.
>
>Just out of curiosity, what are you using this for?


I want to use this for sliding attacks in my bitboards. The bits represent
pieces so I want to know the nearest piece to the rook.

Chris



This page took 0 seconds to execute

Last modified: Thu, 15 Apr 21 08:11:13 -0700

Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.