Commit Graph

47 Commits (d7d1b6fea197980a2f5f65ba9deee948ab7a2be3)

Author SHA1 Message Date
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
Joe Groff 1196087991 math: declare quotation stack effects on each-integer, times, find-integer, all-integers? 2010-05-13 14:30:19 -07:00
Joe Groff 85f30987e2 spray some polymorphic stack effects on kernel, math, and sequences 2010-03-05 00:21:10 -08:00
Slava Pestov 0612bc6177 Factor source files should not be executable 2009-11-21 17:50:43 -06:00
Joe Groff 70ffa003ec eliminate roll/-roll from core 2009-10-30 13:36:15 -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 11f984e734 math.floats: fix abs on floats; -0.0 abs should be 0.0 not -0.0 2009-09-12 16:24:07 -05:00
Joe Groff 14f412b404 add an "unordered?" predicate to math, with a dumb implementation for now 2009-09-10 23:45:18 -04:00
Slava Pestov 79cdc45339 math: move float methods to math.floats 2009-08-20 03:55:19 -05:00
Slava Pestov 030b1b816c Add inline declarations for various assorted methods 2009-08-17 22:32:21 -05:00
Doug Coleman 7c92ab1ea5 move if-zero etc to math, remove 1-/1+ from math 2009-08-14 14:27:23 -05:00
Doug Coleman 686b3e348e use ERROR: in several places instead of throwing strings 2009-08-11 23:09:02 -05:00
Joe Groff c5d440700d 0.0 neg ought to be -0.0 2009-05-21 18:49:22 -05:00
Slava Pestov 4ee4357e75 Fix negative zero smashing with bootstrap 2009-05-09 18:17:30 -05:00
Joe Groff 9021062795 fp-nan? was defined incorrectly. while i'm here, let's add some more float manipulation words 2009-05-09 09:49:31 -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 fc4894fbdf Replace ratio and complex built-in types with tuples defined in the library. This frees up two lo-tags, so move array and quotation over to these tags and update compiler for new tags 2009-04-30 00:27:35 -05:00
Slava Pestov 1bbabcd5e1 Remove some usages of slip combinators from the core 2009-02-05 03:29:59 -06: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 058ba127cb Cleaning up more -rot usages 2008-12-22 05:41:01 -06:00
Slava Pestov 0021cde743 Fix more compile errors 2008-12-15 22:21:56 -06:00
U-SLAVA-DFB8FF805\Slava 53db40ba13 Add more stack declarations 2008-12-13 05:06:28 -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
Doug Coleman 73086e1a61 add fp-infinity?, docs, and tests 2008-09-03 01:35:03 -05:00
Slava Pestov 110a5e5162 Change equality semantics 2008-09-02 02:02:05 -05:00
Slava Pestov af09eae727 Add some more interval operations 2008-07-22 01:27:39 -05:00
Slava Pestov ac2bf0b87d Adding inline recursive declarations 2008-07-18 19:22:59 -05:00
Slava Pestov b36e06d0d6 Builtinn types now use new slot accessors; tuple slot type declaration work in progress 2008-06-28 02:36:20 -05:00
Slava Pestov 685d53e264 Add gather word; faster 'implementors' using inverted index 2008-06-12 05:49:46 -05:00
Slava Pestov 5a29b2e273 Class linearization 2008-05-02 02:51:38 -05:00
Slava Pestov 08af497255 Fix /f for large integers 2008-04-28 21:26:31 -05:00
Doug Coleman 15402ed1b4 core changes:
index* -> index-from
last-index* -> last-index-from
1 tail -> rest
1 tail-slice -> rest-slice
subset -> filter
prepose
find* -> find-from
find-last* -> find-last-from
before, after generic, < for integers
make between? work for timestamps
2008-04-25 23:12:44 -05:00
Slava Pestov f48d5091c9 Faster inline allocators 2008-04-19 04:52:34 -05:00
Slava Pestov 2d2b3ec904 Partial dispatch on integer operations 2008-04-18 16:51:09 -05:00
Slava Pestov 390afacac8 Better modular arithmetic optmizer 2008-04-17 12:22:24 -05:00
Slava Pestov aaf48cebf5 New utility word 2008-04-13 03:52:40 -05:00
Slava Pestov 3bf3c3ee5a New sorting comparison operators 2008-02-26 17:33:48 -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
Doug Coleman 84891e2591 pick pick -> 2over
minor cleanups
2008-01-11 12:02:44 -10:00
Slava Pestov 2e78ce3d4a Profiler fixes 2007-10-29 01:12:27 -04:00
Slava Pestov 850c145a09 Fix bootstrap hang 2007-10-24 02:01:43 -04:00
U-SLAVA-FB3999113\Slava f529d3d2d2 Load fixes for core/math 2007-10-18 02:38:35 -04: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