layouts: defining "fixnum-bits".
parent
84e8041a9c
commit
465a969b61
|
@ -293,9 +293,6 @@ M\ set diff [ diff-quot ] 1 define-partial-eval
|
||||||
|
|
||||||
M\ set intersect [ intersect-quot ] 1 define-partial-eval
|
M\ set intersect [ intersect-quot ] 1 define-partial-eval
|
||||||
|
|
||||||
: fixnum-bits ( -- n )
|
|
||||||
cell-bits tag-bits get - ;
|
|
||||||
|
|
||||||
: bit-quot ( #call -- quot/f )
|
: bit-quot ( #call -- quot/f )
|
||||||
in-d>> second value-info interval>> 0 fixnum-bits [a,b] interval-subset?
|
in-d>> second value-info interval>> 0 fixnum-bits [a,b] interval-subset?
|
||||||
[ [ >fixnum ] dip fixnum-bit? ] f ? ;
|
[ [ >fixnum ] dip fixnum-bit? ] f ? ;
|
||||||
|
|
|
@ -22,6 +22,9 @@ HELP: tag-fixnum
|
||||||
{ $values { "n" integer } { "tagged" integer } }
|
{ $values { "n" integer } { "tagged" integer } }
|
||||||
{ $description "Outputs a tagged fixnum." } ;
|
{ $description "Outputs a tagged fixnum." } ;
|
||||||
|
|
||||||
|
HELP: fixnum-bits
|
||||||
|
{ $values { "n" "number of bits in a fixnum" } } ;
|
||||||
|
|
||||||
HELP: first-bignum
|
HELP: first-bignum
|
||||||
{ $values { "n" "smallest positive integer not representable by a fixnum" } } ;
|
{ $values { "n" "smallest positive integer not representable by a fixnum" } } ;
|
||||||
|
|
||||||
|
|
|
@ -38,7 +38,9 @@ SYMBOL: header-bits
|
||||||
<<
|
<<
|
||||||
: cell ( -- n ) OBJ-CELL-SIZE special-object ; foldable
|
: cell ( -- n ) OBJ-CELL-SIZE special-object ; foldable
|
||||||
|
|
||||||
: (first-bignum) ( m -- n ) tag-bits get - 1 - 2^ ; foldable
|
: (fixnum-bits) ( m -- n ) tag-bits get - ; foldable
|
||||||
|
|
||||||
|
: (first-bignum) ( m -- n ) (fixnum-bits) 1 - 2^ ; foldable
|
||||||
>>
|
>>
|
||||||
|
|
||||||
: cells ( m -- n ) cell * ; inline
|
: cells ( m -- n ) cell * ; inline
|
||||||
|
@ -54,6 +56,9 @@ SYMBOL: header-bits
|
||||||
: first-bignum ( -- n )
|
: first-bignum ( -- n )
|
||||||
cell-bits (first-bignum) ; inline
|
cell-bits (first-bignum) ; inline
|
||||||
|
|
||||||
|
: fixnum-bits ( -- n )
|
||||||
|
cell-bits (fixnum-bits) ; inline
|
||||||
|
|
||||||
: most-positive-fixnum ( -- n )
|
: most-positive-fixnum ( -- n )
|
||||||
first-bignum 1 - >fixnum ; inline
|
first-bignum 1 - >fixnum ; inline
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue