John Benediktsson
eeaa91d6c1
vm: using bignum>fixnum-strict in integer>fixnum-strict.
2014-06-07 09:46:05 -07:00
John Benediktsson
5487480126
core: cleanup USING lists.
2013-03-05 10:34:47 -08:00
John Benediktsson
6d679cf3a2
math.integers: the fixnum-log2 intrinsic didn't work due to inlining.
2013-02-27 17:08:36 -08:00
John Benediktsson
7ba77673a8
math.integers: faster fixnum-log2.
2013-02-27 16:01:34 -08:00
John Benediktsson
eaed0db99a
Revert "math: speed up integer>fixnum operations."
...
This reverts commit b467db9a9a
.
2012-09-16 07:46:22 -07:00
John Benediktsson
6ea9c0fc02
math: speed up integer>fixnum operations.
2012-09-15 08:52:06 -07:00
John Benediktsson
089bdb1268
math.integers: inline fixnum-log2.
2012-09-10 17:20:12 -07:00
John Benediktsson
20100d7853
math.integers: faster fixnum-bit?.
2012-08-30 22:40:22 -07:00
Doug Coleman
cd9dd9d752
core: Throw an error when assigning a bignum to a fixnum tuple slot if the bignum doesn't fit. Fixes #594 .
2012-08-03 14:59:59 -07:00
Doug Coleman
6994b0eed8
math.integers: Bignum hashcode* -- call bignum>fixnum to avoid a dispatch.
2012-07-23 09:38:12 -07:00
Doug Coleman
fb4e3ad9bc
compiler: Fix bitand on ratios, floats. Fix shift on ratios, floats. Add integer>fixnum. Fixes #500 .
2012-07-23 09:31:12 -07:00
Joe Groff
98fc1e28bd
math.integers: make bignum/f round to even on tie
...
Fixes #372
2011-11-26 17:44:29 -08:00
Joe Groff
90f34d092c
math: neg? needs to be defined for all reals
2011-11-26 15:37:58 -08:00
Joe Groff
4e8a1d0bb4
math: add neg? word
...
Do the right thing with integers or floats
2011-11-23 19:51:05 -08:00
Joe Groff
943596575a
use radix literals
2011-11-23 19:03:40 -08:00
Slava Pestov
bb4529bff2
math.integers: fix underflow and overflow behavior
2010-12-18 16:00:17 -08:00
Slava Pestov
f27080498d
Remove bignum>float VM primitive, and use bignum/f to implement >float on bignums instead, for a slight accuracy gain. Also, bignum/f now has a more efficient post-scaling algorithm to break the circular dependency on bignum>float
2010-11-24 22:41:15 -08:00
Slava Pestov
0c840a7965
math.integers: bignum/f rounding was wrong (reported by Joe Groff)
2010-11-13 16:02:12 -08:00
Slava Pestov
65dcd56b0b
math.integers: fix 0 0 bignum/f (reported by Joe Groff)
2010-11-12 19:49:18 -08:00
Slava Pestov
1c9a95122a
math.integers: remove a -rot usage
2010-02-10 15:44:49 +13:00
Daniel Ehrenberg
52f2ac2bb9
Tests for propagation additions; making fixnum-bit? inline
2010-01-25 20:15:17 -06:00
Daniel Ehrenberg
d3590ea210
Merge branch 'master' of git://factorcode.org/git/factor
...
Conflicts:
basis/compiler/tree/propagation/transforms/transforms.factor
2010-01-20 00:15:55 -06:00
Daniel Ehrenberg
aa1651032d
Adding compiler transforms in propagation
2010-01-20 00:10:49 -06:00
Slava Pestov
47a5e96547
Rework min and max so that behavior with floats and NaNs is consistent between generic arithmetic and open-coded float intrinsics
2010-01-13 22:20:16 +13:00
Joe Groff
d4a207662e
might want to accurately divide large negative fixnums too
2009-10-31 12:10:29 -05:00
Joe Groff
a7011fe087
use bignum/f to get accurate division of fixnums >= 2^53 on 64-bit platforms
2009-10-31 12:06:56 -05:00
Slava Pestov
32b95c2cdf
math: add unordered comparison operators u< u<= u> u>= which behave exactly like < <= > >= except no floating point exceptions are set if one or both inputs are NaNs; also add efficient intrinsic for unordered? predicate, and fix propagation type functions for abs, absq, and bitnot
2009-09-12 22:20:13 -05:00
Slava Pestov
2bb6293217
compiler: add fixnum-min/max intrinsics; ~10% speedup on benchmark.yuv-to-rgb
2009-08-28 19:02:59 -05:00
Slava Pestov
030b1b816c
Add inline declarations for various assorted methods
2009-08-17 22:32:21 -05:00
Doug Coleman
14ef1649d4
add if-zero/when-zero/unless-zero to core/ and update usages
2009-08-11 17:59:40 -05:00
Doug Coleman
0ad6d1fb7b
add a few usages of iota, remove most 1+ and 1- from core
2009-05-01 19:58:24 -05:00
Slava Pestov
0ffd43e2e3
1.0/0.0 => 1/0.
2009-04-13 19:48:08 -05:00
Slava Pestov
25a877e50b
Merge OneEyed's patch
2009-02-28 17:06:55 -06:00
Samuel Tardieu
087d931c36
Remove the tail argument from do/until/while
2009-02-18 02:41:14 +01:00
Slava Pestov
669548e62e
Clean up some usages of tuck, and add Joe's curried cleave/spread/apply combinators to kernel vocabulary
2009-02-02 13:43:54 -06:00
Slava Pestov
b154b21aaa
Add new until combinator, and a new do word which acts like a modifier: do while, do until for loops which iterate at least once
2008-12-08 23:37:18 -06:00
Slava Pestov
73b3cd6367
Use eq? instead of number= since we only ever have a fixnum here
2008-12-08 13:59:59 -06:00
Slava Pestov
e4f8448eb1
Fix some problems with arithmetic type inference, exposed by recent changes to log2 word
...
- declared input type for bignum-shift was stricter than the runtime behavior, leading to bad propagation of type info if shift count was a bignum
- types inferred for type functions which used number-valued/integer-valued/real-valued were not always precise, eg bignum bignum bitxor => integer
- add interval-log2, type function for (log2)
- remove math-class-min, it was useless
2008-12-07 19:44:49 -06:00
Slava Pestov
8a8f0c925c
Use BSR instruction to implement fixnum-log2 intrinsic
2008-12-06 15:31:17 -06:00
Slava Pestov
a4d9cdfeb3
Refactor all usages of >r/r> in core to use dip, 2dip, 3dip
...
Non-optimizing compiler now special-cases dip, 2dip, 3dip following a
literal quotation: this allows us to break the dip/slip meta-circle
without explicit calls to >r/r>
2008-11-23 02:44:56 -06:00
Slava Pestov
c19f2257f4
Fix permission bits
2008-10-02 08:34:49 -05:00
Slava Pestov
110a5e5162
Change equality semantics
2008-09-02 02:02:05 -05:00
Slava Pestov
ac2bf0b87d
Adding inline recursive declarations
2008-07-18 19:22:59 -05:00
Slava Pestov
5901107f66
Bootstrap fix
2008-04-29 01:49:06 -05:00
Slava Pestov
08af497255
Fix /f for large integers
2008-04-28 21:26:31 -05:00
Slava Pestov
7ad74eb320
Various fixes
2008-03-08 02:51:26 -06:00
Slava Pestov
727f91409d
Split off concurrency.mailboxes, add timeout support to promises, locks, mailboxes, semaphores, count-downs
2008-02-21 23:47:06 -06:00
Slava Pestov
e3416ec170
Faster bit-arrays
2008-01-12 21:37:44 -05:00
U-SLAVA-FB3999113\Slava
e9b42fa635
Move more math stuff to extra/, get compiler to work without ratios/complex numbers
2007-10-14 20:38:23 -04:00
Slava Pestov
a96457cecc
Initial import
2007-09-20 18:09:08 -04:00