- if two tasks write to a unix stream, the buffer can overflow
- font problem: http://iarc1.ece.utexas.edu/~erg/font-bug.JPG
- make 3.4 bits>double an error
-- float>bits bits>double etc fail in gcc 4.0.3 with -fschedule-insns
: ^theta ( w abs arg -- theta )
>r >r >rect r> flog * swap r> * + ; inline
+: 0^0 "0^0 is not defined" throw ;
+
+: 0^ ( z w -- )
+ dup 0 number= [
+ 2drop 0.0/0.0
+ ] [
+ 0 < [ drop 1.0/0.0 ] when
+ ] if ;
+
M: number ^ ( z w -- z^w )
- swap >polar 3dup ^theta >r ^mag r> polar> ;
+ over 0 number=
+ [ 0^ ] [ swap >polar 3dup ^theta >r ^mag r> polar> ] if ;
: each-bit ( n quot -- | quot: 0/1 -- )
over 0 number= pick -1 number= or [
inline
M: integer ^ ( z w -- z^w )
- over 0 number= over 0 number= and [
- "0^0 is not defined" throw
- ] [
- dup 0 < [ neg ^ recip ] [ (integer^) ] if
- ] if ;
+ over 0 number=
+ [ 0^ ] [ dup 0 < [ neg ^ recip ] [ (integer^) ] if ] if ;
: power-of-2? ( n -- ? )
dup 0 > [
[ t ] [ e pi i * ^ real -1.0 = ] unit-test
[ t ] [ e pi i * ^ imaginary -0.00001 0.00001 between? ] unit-test
+[ 0.0/0.0 ] [ 0 0 ^ ] unit-test
+[ 1.0/0.0 ] [ 0 -2 ^ ] unit-test
+[ 0.0/0.0 ] [ 0 0.0 ^ ] unit-test
+[ 1.0/0.0 ] [ 0 -2.0 ^ ] unit-test
+[ 0 ] [ 0 3.0 ^ ] unit-test
+[ 0 ] [ 0 3 ^ ] unit-test
+
[ 1.0 ] [ 0 cosh ] unit-test
[ 0.0 ] [ 1 acosh ] unit-test
USING: compiler gadgets gadgets-buttons gadgets-listener
gadgets-menus gadgets-panes generic hashtables inference
inspector io jedit kernel lists namespaces parser prettyprint
-sequences words styles ;
+sequences strings styles words ;
SYMBOL: commands
"Reload original source" [ word? ] [ reload ] \ in-listener define-command
"Infer stack effect" [ word? ] [ unit infer . ] \ in-listener define-command
+"Use word vocabulary" [ word? ] [ word-vocabulary use+ ] \ in-listener define-command
+
"Display gadget" [ [ gadget? ] is? ] [ gadget. ] \ in-listener define-command
"Use as input" [ input? ] [ input-string pane get replace-input ] \ call define-default-command