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

Re: Arithmetic issues

This page is part of the web mail archives of SRFI 77 from before July 7th, 2015. The new archives for SRFI 77 contain all messages, not just those from before July 7th, 2015.



 | 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.