Commit Graph

334 Commits (265f19e9522b9688b12805e2d576816cd5904a7e)

Author SHA1 Message Date
John Benediktsson a8b3642c8c math.parser: make float-parse:point a fixnum. 2015-07-30 18:16:31 -07:00
John Benediktsson b3323c15bd math.parser: some inline, some fixnum+fast, some disable tests. 2015-07-30 17:59:21 -07:00
Jon Harper 8d827b2772 math.parser: support >bin and >oct for floats
This is for symmetry with "0o1p0", "0b1p0", bin> and hex> which
all already work
2015-07-30 11:04:51 -07:00
Jon Harper 4d8cb81cab math.parser: add tests/docs for floats 0b 0x bin> float> since they work 2015-07-30 11:04:51 -07:00
Jon Harper 09af182db7 math.parser, don't take infinite time to parse huge exponents 2015-07-30 11:04:51 -07:00
Jon Harper dce2ca1366 math.parser: don't lose precision in make-float-bin-exponent 2015-07-30 11:04:51 -07:00
John Benediktsson c6fad4aa61 math.ratios: moving to core. 2015-07-30 10:31:00 -07:00
Jon Harper 53efceb0ad math.integers, comment and simplify bignum/f
change the "while" that could only execute once to "when"
change the f/loop word name to "mantissa-and-guard" since it's what it
computes
change the check against 2^53 to be explicit
2015-07-26 12:33:56 -07:00
Jon Harper 5424ad5586 math.integers, bignum/f, improve performance.
This changes avoids looping many times if the denominator is a power of
2. After this change, the implementation matches the linked sbcl
algorithm.  This was probably a mistake done when porting the algorithm.
Basically, as an optimization, all trailing zeros are removed from the
base2 representation of the denominator to have smaller bignums to
divide. But the previous factor implementation didn't take this into
account when making the initial guess of the shift of the numerator to
obtain a result in the range [2^54-1,2^53]. The loop would then correct
the initial guess by a factor of 2 at each iteration, so it would run as
many iteration as the denominator base2 power reduction, instead of only
a few times. For pathological cases, the speed up is huge (10^4):
1 1000 2^ bignum/f
2015-07-26 12:33:55 -07:00
Jon Harper cc6d90a096 math.integers, fix bignum/f for results in ]0x1.0p-1022,0x0.4p-1022] 2015-07-26 12:33:55 -07:00
John Benediktsson 296974a057 math.parser: remove digits>integer. 2015-07-19 19:18:47 -07:00
John Benediktsson 16c93c7874 math.parser: simplify fix-float. 2015-07-19 17:20:37 -07:00
John Benediktsson 0dbc5e7d67 math.parser: simplify { integer ratio } >base. 2015-07-19 16:57:45 -07:00
John Benediktsson 89e3cc511e math: moving >fraction to math. 2015-07-19 16:57:45 -07:00
John Benediktsson 4cda3fe7c4 math.parser: re-use number-parse and float-parse objects. 2015-07-19 09:58:17 -07:00
Doug Coleman d2ab2e6dd1 math.parser.tests: Fix whitespace. 2015-07-17 15:19:39 -07:00
John Benediktsson c7868226d0 math.parser: simplify using member-eq?. 2015-07-16 09:55:33 -07:00
John Benediktsson 33a62c7f9d math.parser: with-radix-char quot shouldn't get called with ``f``. 2015-07-16 08:51:58 -07:00
John Benediktsson e280bafabe math.parser: remove unnecessary with-no-radix, thanks @jonenst! 2015-07-16 07:35:51 -07:00
John Benediktsson f6f596f40f math.parser: okay time for sleep, maybe this works, sorry git history. 2015-07-14 22:48:08 -07:00
John Benediktsson 5b58e1d3e8 math.parser: fix a regression. 2015-07-14 22:05:25 -07:00
John Benediktsson 94bb834eae math.parser: fix ``"-.5" dec>``. 2015-07-14 20:16:34 -07:00
John Benediktsson 866b40271d math.parser: fix "most-negative-fixnum number>string string>number fixnum?". 2015-07-14 20:03:33 -07:00
Doug Coleman 43d6f1d3e2 factor: Retrying on the unit tests. Also normalize some syntax with FUNCTION:. 2015-07-02 17:28:17 -07:00
Doug Coleman 59f3b1ea57 Revert "factor: rename [ ] [ ] unit-test -> { } [ ] unit-test using a refactoring tool!"
Needs a bit more work.

This reverts commit 7e54cc2824.
2015-07-02 13:47:06 -07:00
Doug Coleman 7e54cc2824 factor: rename [ ] [ ] unit-test -> { } [ ] unit-test using a refactoring tool! 2015-07-02 11:36:08 -07:00
Doug Coleman 999aa7c897 factor: clean up spaces in -tests files 2015-07-02 10:34:01 -07:00
Doug Coleman e3cb325040 factor: clean up whitespace in -docs files 2015-07-02 10:31:22 -07:00
Doug Coleman 69ee8b9190 core, basis: Don't use the IN: foo.private feature and undocument it.
It only works well when you are loading code dynamically.
2015-06-30 08:51:07 -07:00
Björn Lindqvist ed702209ce VM: fix bignum>fixnum-strict conversion, previously most-negative-fixnum
>bignum bignum>fixnum-strict didn't work
2015-06-29 08:19:42 +02:00
Doug Coleman 44e8e7b344 primitives: Change PRIMITIVE: to check that the word is in that vocabulary and the stack effect is correct.
Use PRIMITIVE: in core/ and basis/
2015-06-25 18:02:03 -07:00
John Benediktsson 7dfe023854 math.integers: add some more tests for bit?. 2015-06-17 20:23:21 -07:00
John Benediktsson 621b50a8e5 cpu: enable bit-test intrinsic for fixnum-bit?. 2015-06-17 19:11:10 -07:00
John Benediktsson db9cfeeae2 math.integers: simplify fixnum-bit?. 2015-06-17 18:42:11 -07:00
John Benediktsson ed786070e2 math.integers: fixnum-bit? should not use fixnum-shift-fast. 2015-06-17 08:22:00 -07:00
John Benediktsson ccddbebf94 math.parser: slightly faster ((pow)). 2015-06-11 20:04:44 -07:00
John Benediktsson d60d098c11 math.integers: speedup to fixnum-bit?. 2015-06-07 11:08:57 -07:00
John Benediktsson 2c3492a916 minor cleanup to some docs. 2015-05-13 16:09:14 -07:00
John Benediktsson 9033a28c09 math.parser: simplify store-exponent. 2014-11-29 14:31:23 -08:00
John Benediktsson 38bc43b968 math.parser: whoops, this part shouldn't have been committed. 2014-11-29 12:54:48 -08:00
John Benediktsson cbba812d7e math.parser: remove float>string, speedup format-float. 2014-11-29 12:47:57 -08:00
Doug Coleman 632ee276e1 core: Remove trailing whitespace. 2014-10-31 01:14:31 -07:00
John Benediktsson 53a9c43b31 math.parser: fix docs for >base and base>. 2014-06-07 12:05:52 -07:00
John Benediktsson 24ad4e9424 math: remove out-of-fixnum-range error. 2014-06-07 09:50:50 -07:00
John Benediktsson eeaa91d6c1 vm: using bignum>fixnum-strict in integer>fixnum-strict. 2014-06-07 09:46:05 -07:00
John Benediktsson 309ce3aa69 math: adding a simple test for bignum_square. 2014-06-06 10:58:58 -07:00
John Benediktsson 57f9d78892 improve help by linking to types directly. 2014-05-23 20:20:15 -07:00
John Benediktsson 98935b7f15 docs: change ``{ $quotation "( x -- y )" }`` to ``{ $quotation ( x -- y ) }``. 2014-05-18 20:09:10 -07:00
John Benediktsson ede21dfb56 math: fix docs for next-power-of-2 and some tests. 2014-02-06 17:23:54 -08:00
John Benediktsson 63514bbbf8 math: fix quot stack effect in unless-zero. 2014-01-07 08:25:18 -08:00