: emit-fixnum-shift-fast ( block #call -- block' )
node-input-infos second interval>> {
{ [ dup 0 [a,inf] interval-subset? ] [ drop emit-fixnum-left-shift ] }
- { [ dup 0 [-inf,a] interval-subset? ] [ drop emit-fixnum-right-shift ] }
+ { [ dup 0 [-inf,b] interval-subset? ] [ drop emit-fixnum-right-shift ] }
[ drop emit-fixnum-shift-general ]
} cond ;
{ $subsections [a,a] }
"Open-ended interval constructors:"
{ $subsections
- [-inf,a]
- [-inf,a)
+ [-inf,b]
+ [-inf,b)
[a,inf]
(a,inf]
}
{ $link (a,b] }
{ $link [a,inf] }
{ $link (a,inf] }
- { $link [-inf,a) }
- { $link [-inf,a] }
+ { $link [-inf,b) }
+ { $link [-inf,b] }
}
} ;
{ $description "Creates a new interval that includes lower endpoint 0 and excludes the upper endpoint." } ;
-HELP: [-inf,a]
-{ $values { "a" real } { "interval" interval } }
-{ $description "Creates a new interval containing all real numbers less than or equal to " { $snippet "a" } ", together with negative infinity." } ;
+HELP: [-inf,b]
+{ $values { "b" real } { "interval" interval } }
+{ $description "Creates a new interval containing all real numbers less than or equal to " { $snippet "b" } ", together with negative infinity." } ;
-HELP: [-inf,a)
-{ $values { "a" real } { "interval" interval } }
-{ $description "Creates a new interval containing all real numbers less than " { $snippet "a" } ", together with negative infinity." } ;
+HELP: [-inf,b)
+{ $values { "b" real } { "interval" interval } }
+{ $description "Creates a new interval containing all real numbers less than " { $snippet "b" } ", together with negative infinity." } ;
HELP: [a,inf]
{ $values { "a" real } { "interval" interval } }
{ full-interval } [ full-interval -128 127 [a,b] interval-bitor ] unit-test
${ 0 [a,inf] } [ 0 [a,inf] dup interval-bitor ] unit-test
-{ full-interval } [ 0 [-inf,a] dup interval-bitor ] unit-test
+{ full-interval } [ 0 [-inf,b] dup interval-bitor ] unit-test
${ 4 [a,inf] } [ 4 [a,inf] 3 [a,inf] interval-bitor ] unit-test
! Interval bitxor
{ full-interval } [ full-interval -128 127 [a,b] interval-bitxor ] unit-test
${ 0 [a,inf] } [ 0 [a,inf] dup interval-bitxor ] unit-test
-${ 0 [a,inf] } [ -1 [-inf,a] dup interval-bitxor ] unit-test
+${ 0 [a,inf] } [ -1 [-inf,b] dup interval-bitxor ] unit-test
${ 0 [a,inf] } [ 4 [a,inf] 3 [a,inf] interval-bitxor ] unit-test
{ full-interval } [ 4 [a,inf] -3 [a,inf] interval-bitxor ] unit-test
: [a,a] ( a -- interval )
closed-point dup <interval> ; foldable
-: [-inf,a] ( a -- interval ) -1/0. swap [a,b] ; inline
+: [-inf,b] ( b -- interval ) -1/0. swap [a,b] ; inline
-: [-inf,a) ( a -- interval ) -1/0. swap [a,b) ; inline
+: [-inf,b) ( b -- interval ) -1/0. swap [a,b) ; inline
: [a,inf] ( a -- interval ) 1/0. [a,b] ; inline
{ [ over empty-interval? ] [ drop ] }
{ [ dup empty-interval? ] [ nip ] }
{ [ 2dup [ full-interval? ] both? ] [ drop ] }
- { [ over full-interval? ] [ nip to>> first [-inf,a] ] }
- { [ dup full-interval? ] [ drop to>> first [-inf,a] ] }
+ { [ over full-interval? ] [ nip to>> first [-inf,b] ] }
+ { [ dup full-interval? ] [ drop to>> first [-inf,b] ] }
[ [ interval-closure ] bi@ [ min ] interval-op nan-not-ok ]
} cond ;
: assume< ( i1 i2 -- i3 )
dup special-interval? [ drop ] [
- to>> first [-inf,a) interval-intersect
+ to>> first [-inf,b) interval-intersect
] if ;
: assume<= ( i1 i2 -- i3 )
dup special-interval? [ drop ] [
- to>> first [-inf,a] interval-intersect
+ to>> first [-inf,b] interval-intersect
] if ;
: assume> ( i1 i2 -- i3 )