[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Arithmetic issues



 | Date: Wed, 19 Oct 2005 07:47:30 -0400 (EDT)
 | From: Andre van Tonder <andre@xxxxxxxxxxxxxxxxx>
 | 
 | On Tue, 18 Oct 2005, bear wrote:
 | 
 | >> The bitwise operations operate on exact integers only. Should
 | >> they live in the section on exact arithmetic? Should they carry
 | >> ex prefixes? Or should they be extended to work on inexact
 | >> integers as well?
 | >
 | > I would say that having them operate on exact integers in the
 | > first place is questionable; These are operations on bit vectors,
 | > not operations on numbers, and their semantics require
 | > information (the vector length) which is not expressed by the
 | > numbers.  To say that they are defined on numbers is to confuse
 | > the number with a particular representation.
 | 
 | I share the discomfort with the bitwise operations.  As far as I
 | can tell, the SRFI does not portably specify the value of
 | (BITWISE-NOT 42).

SRFI-60 "Integers as Bits" defines the bitwise operations for all
integers.  And the reference implementation is written portably in
R5RS Scheme.

(BITWISE-NOT 42)  ==>  -43

 | Are these operations truly going to be useful for portable
 | programs?

Yes.  In SLIB they are used for Byte/Number Conversions, Cyclic
Checksum, Fast Fourier Transform, Space-Filling Curves, Portable Image
Files, Random Numbers, and integer-sqrt.