Commit Graph

823 Commits (b06b6a826115af63da28e3d3e1d57009f6084927)

Author SHA1 Message Date
Doug Coleman 229d0e0549 math.combinators: Add map-permutation 2012-04-18 15:18:54 -07:00
John Benediktsson e9ffd2da37 math.statistics: adding cumulative versions of sum, product, min, and max. 2012-04-12 10:30:16 -07:00
Doug Coleman 021e0f2ce6 math.statistics: Fix docs for help-lint. 2012-04-10 08:52:12 -07:00
John Benediktsson 236dd2cc97 math.combinatorics: fix help-lint. 2012-04-09 11:43:22 -07:00
John Benediktsson 214195e56a Revert "math.functions: simpler without "simple-gcd"."
This reverts commit aa7f60ebbc.
2012-04-05 10:34:50 -07:00
John Benediktsson b240519bff math.functions: simpler without "simple-gcd". 2012-04-05 10:31:46 -07:00
John Benediktsson b2ffda32ca math: adding a fast-gcd that speeds up all ratio operations by up to 10 times for bignum ratios. 2012-04-05 09:17:52 -07:00
John Benediktsson 57231bfef4 math.statistics: change 'var' to 'sample-var' and implement variance, covariance, and correlation. 2012-04-02 17:12:32 -07:00
John Benediktsson 4f046a2339 math.vectors: separate "dot product" from "Hermitian inner product". Fixes #484. 2012-03-29 10:56:39 -07:00
John Benediktsson 7a07e8742c math.combinatorics: fix tests for next-permutation. 2012-03-02 10:05:57 -08:00
John Benediktsson 7bb807d441 math.combinatorics: fix docs for next-permutation. 2012-03-02 09:55:22 -08:00
John Benediktsson 8d56193edd math.combinatorics: implementing "next-permutation". 2012-03-02 09:54:35 -08:00
John Benediktsson de74b98278 math.vectors: fix some $examples in docs. 2011-12-29 17:31:55 -08:00
Joe Groff aa1ad21d72 fix help-lint failures 2011-12-14 11:33:17 -08:00
Joe Groff fe767253a1 math.vectors: add higher-order stack effect to vif 2011-12-13 19:46:44 -08:00
Joe Groff 3deae96995 math.vectors.simd.intrinsics: fix deploy bug
If not called with a known-at-compile-time SIMD type, the intrinsic definitions were leaving behind runtime quotations that referenced the c-array words after c-type information had been stripped, causing deployed applications that used SIMD to fail.
2011-12-07 12:47:38 -08:00
Doug Coleman abc953ecea help-lint fixes for recent changes 2011-12-07 12:26:35 -08:00
Joe Groff 8cb78d5bd2 math.complex: pass tests even if number-base set 2011-11-26 17:46:38 -08:00
Joe Groff 943596575a use radix literals 2011-11-23 19:03:40 -08:00
Joe Groff 54dcd8a4ea math.vectors.simd: don't try distance on int types
"v- norm" doesn't work right for uint-4s because of underflow, but who's going to call "distance" on a uint vector?
2011-11-13 16:10:27 -08:00
Joe Groff dd8bb5b673 math.vectors.simd: unencrypt check-optimizer
And make it report real information about what values were tested and how they failed
2011-11-13 16:10:27 -08:00
Joe Groff 248066c710 code beautification 2011-11-13 16:10:26 -08:00
Joe Groff a10fa68218 math.vectors.simd: add vcount to the tests
Also add a base case to (approx=) for integer returns. vcount returns an integer even for float vector inputs, but the test machinery isn't smart enough to figure that out and uses (approx=) on the outputs anyway.
2011-11-13 16:10:26 -08:00
Joe Groff 32b7dc116f math.vectors.simd.intrinsics: fix double-2 vcount
Turns out we use MOVMSKPS for double vectors too. Gotta save that extra instruction byte!
2011-11-13 16:10:25 -08:00
Joe Groff dd8dda4f48 math.vectors.simd: make vcount work for all ints 2011-11-13 16:10:23 -08:00
Joe Groff 5411a67b22 math.vectors.simd.intrinsics: better fake vgetmask
More accurate simulacrum of PMOVMSKB/MOVMSKPS/MOVMSKPD for non-intrinsic definition
2011-11-13 16:10:22 -08:00
Joe Groff da81cb9035 math.bitwise: don't count the same bits over&over 2011-11-13 16:10:22 -08:00
Joe Groff 706c9ee3b9 math.bitwise: hotrod nonintrinsic fixnum-bit-count 2011-11-13 16:10:21 -08:00
Joe Groff d79b462f75 compiler: add intrinsic for PMOVMSKB/MOVMSKP[SD]
Combined with a fast bit-count this will let us rice byte-counting.
2011-11-13 16:10:20 -08:00
Doug Coleman 60f928ddbf math.functions: flushable and foldable don't do anything on inline words because flushable and foldable work on call sites (#call nodes), and inlined words are inlined into another word's call site; they don't generate their own #call node. 2011-11-06 19:25:53 -08:00
Doug Coleman c731dc6edb Rename lookup to lookup-word. 2011-11-06 16:00:00 -08:00
Joe Groff 8cf18d1a82 remove BSD,solaris,etc. misc platform support code 2011-11-02 17:13:51 -07:00
Joe Groff 38a5184fdf math.statistics: fix stack effect on collect-by 2011-11-02 13:23:13 -07:00
Doug Coleman 94db86a6db Make "foo.private" require load foo instead.
Move require from vocabs.loader to vocabs. Update everything.
Fixes #201.
2011-11-02 11:50:03 -07:00
Slava Pestov b31ffdfcb4 math.vectors.simd: vlshift, vrshift, hlshift and hrshift were being miscompiled if the shift count was a bignum. Fixes #264 2011-10-30 21:50:17 -07:00
Doug Coleman 51c033a1f6 Fix all failures in the linux64 build email 2011-10-24 19:33:09 -07:00
John Benediktsson fb2aab3545 Remove unused words. Fixes #132. 2011-10-19 11:01:16 -07:00
John Benediktsson 80e1c8e3f2 Eliminate duplicate syntax for stack effects "(" no longer drops and is identical to the old "((", which is now removed. 2011-10-18 13:19:39 -07:00
John Benediktsson cf54ce8e42 math.functions: when gcd is inlined, "gcd nip" is almost as good as "gcd*". 2011-10-18 10:30:39 -07:00
John Benediktsson 38a54cb8df math.functions: improve stack effect names for gcd*. 2011-10-17 20:37:36 -07:00
John Benediktsson ac98269f53 math.functions: faster gcd means faster ratios. 2011-10-17 20:36:28 -07:00
John Benediktsson 81714b8dc3 More lint cleanups. 2011-10-16 19:33:16 -07:00
John Benediktsson 6f1c44b46d Cleanup some lint warnings. 2011-10-15 19:19:44 -07:00
John Benediktsson cc49bbfb27 math.bitwise: bits is clearer this way. 2011-10-14 13:54:08 -07:00
Doug Coleman 181f11faa8 Make M\ throw an error upon lookup failure. Change method -> ?lookup-method, lookup-method is the throwing version of ?lookup-method. Fixes #229. 2011-10-03 15:49:49 -07:00
Doug Coleman f4da6f366c Make histogram example unchecked since hashtables print differently now that hashcodes are more optimized 2011-10-02 22:21:12 -07:00
John Benediktsson 3b72b641e0 Fix help-lint errors for recent hashtable changes. 2011-10-02 17:49:11 -07:00
Doug Coleman 76580da5d5 Refactor the lexer/parser to expose friendlier words for scanning tokens. The preferred top-level words now throw an exception on EOF.
CREATE -> scan-new
CREATE-CLASS -> scan-new-class
CREATE-WORD -> scan-new-word
CREATE-GENERIC -> scan-new-generic
scan -> (scan-token)
scan-token now throws on eof
(scan-word) returns word/number/f
scan-word now throws on eof
scan-word-name expects a non-number
Fixes #183.
Fixes #209.
2011-09-29 11:28:28 -07:00
John Benediktsson 4f42c72012 specialized-arrays: performed some cleanup.
Specifically,
    •   Created >c-array to be replacement for >T-array.
    •   Created cast-array to be generic replacement for all T-array-cast words.
    •   Created c-array@ to be generic replacement for T-array@ words.
    •   Replaced usages of <T-array> with T <c-array>
    •   Replaced usages of <direct-T-array> with T <c-direct-array>
    •   Replaced usages of >T-array with T >c-array
    •   Replaced usages of T-array-cast with T cast-array
    •   Replaced usages of malloc-T-array with T malloc-array.
    •   Removed malloc-T-array.
    •   Removed T-array-cast.
    •   Removed T-array@.
    •   Removed >T-array.

I also added (but didn't change any code to use):
    •   T c-array-type, returns T-array
    •   T c-array?, returns T-array?
    •   c-array{ T ... }, returns T-array{ ... }

Bootstraps just find on Mac OS X.  Also `load-all test-all` works for me.
2011-09-26 11:37:51 -07:00
Joe Groff 81b12adcad math.blas, alien.fortran: move to unmaintained cuz I'm getting too old for this shit. closes #171 2011-09-24 20:59:21 -07:00
Joe Groff 954bf89c40 math.functions: clean up some more to trim back load-time dependencies; alter tests to avoid inexact float constants where possible and hex-ify inexact constants otherwise 2011-09-22 16:04:49 -07:00
John Benediktsson 96c710a7b7 math.functions: inline 'on-bits' per Joe Groff's suggestion. 2011-09-22 13:44:30 -07:00
John Benediktsson aa880f46ca math.functions: rename 'bignum-log-helper'. 2011-09-22 12:38:33 -07:00
John Benediktsson 820b54d0f7 math.functions: duplicate on-bits to avoid circular dependency on math.bitwise. 2011-09-22 12:23:16 -07:00
John Benediktsson 90dbb84663 math.functions: test log with negative (really) bignums. 2011-09-22 11:15:06 -07:00
John Benediktsson 7f4604318a math.functions: add forgotten imports and fix between? check. 2011-09-22 10:00:22 -07:00
John Benediktsson 077ef8ed5b math.functions: implement "frexp" and support log of really big numbers. Fixes #160. 2011-09-22 09:42:28 -07:00
Doug Coleman eedc1e185f Add more unit-tests and docs for math.bitwise. Fix a bug with >signed so that it truncates a number to however many bits you tell it the number is before doing the calculation. 2011-09-21 14:55:50 -05:00
John Benediktsson b653360299 math.primes.safe: fix docs. 2011-09-12 10:56:39 -07:00
Joe Groff 003271f2b8 math.statistics: declare polymorphic effects on sequence>* combinators now that #88 is fixed 2011-09-09 18:13:17 -07:00
Joe Groff c57c26b3be math.statistics: add higher-order stack effect annotations to sequence>* words; factor out a "histogram-by" word from "histogram" that takes an additional binning quotation 2011-09-08 19:07:33 -07:00
John Benediktsson 9f34c9c676 Spelling fixes to documentation. 2011-08-26 16:20:31 -07:00
Joe Groff efe79cf6d3 math.functions: make sure zero zero ^ is always nan, regardless of the type of zero 2011-08-01 10:26:53 -07:00
Joe Groff 40c45e08ca Merge remote branch 'erikc/master' 2011-06-13 11:28:02 -07:00
Joe Groff b6cf76b547 Merge branch 'master' of factorcode.org:/git/factor 2011-06-07 09:44:35 -07:00
Joe Groff e4b1417dd2 math.functions: fix documentation for 10^ 2011-06-06 16:27:56 -07:00
Erik Charlebois 64252dbdbc 32 and 64 bit Linux PPC support 2011-05-23 23:36:14 -04:00
Erik Charlebois 305dcf1551 Use .factor-rc etc on Windows too, files can begin with dots just fine 2011-05-23 23:36:13 -04:00
Samuel Tardieu 23fe76160a Add math.primes:nprimes 2011-05-20 12:38:27 +02:00
Slava Pestov d58555d6f5 Merge branch 'cleanup' of git://github.com/mrjbq7/factor 2011-05-06 20:27:59 -07:00
John Benediktsson 1778757fa2 Update references to "1 tail" to use "rest". 2011-05-03 20:50:23 -07:00
John Benediktsson eb6c986cd6 Merge branch 'master' into sorting
Conflicts:
	basis/heaps/heaps-tests.factor
2011-04-12 18:09:36 -07:00
Doug Coleman 7aa7b08d42 Change how sequence>assoc and friends work. Now they take two quotations, the first of which prepares the key/value pair and the second insert it into the assoc. mrjbq7's group-by, formerly collect-values, is now called collect-by. 2011-04-09 23:51:14 -05:00
John Benediktsson d58bc08aa0 Update code that did ">alist sort-" to just "sort-". 2011-04-07 09:01:21 -07:00
Doug Coleman 979e487fef Merge branch 'master' of git://factorcode.org/git/factor 2011-02-26 11:44:50 -06:00
Keita Haga 5a71a0d671 math.combinatorics: fix typo in docs 2011-02-20 03:08:01 +09:00
Doug Coleman fd7e5ffee8 More efficient polyval algorithm in math.polynomials 2011-02-12 22:41:13 -06:00
Keita Haga 073eda332a In several documentation, remove whitespace before or after the colon or period 2011-02-10 01:51:13 +09:00
Keita Haga 5043611252 math.polynomials: fix typo in description of pextend-conv word 2011-01-18 23:35:52 +09:00
Keita Haga cb06cba857 math.statistics: in some words, interchanging the positions of the $examples and a $description 2011-01-18 23:20:06 +09:00
Keita Haga 8b1fbbf3b7 math.statistics: fix a few typos in docs 2011-01-18 22:32:45 +09:00
Keita Haga e8ce62c64e math.intervals: fix some typos in docs 2011-01-18 21:18:35 +09:00
Keita Haga 8d2ceda8f3 assocs, math.bitwise: remove first blank line and useless whitespace in a few usage examples 2011-01-17 00:12:28 +09:00
Keita Haga 92b9b92f38 math.libm: add missing right parenthesis in description of fexp word 2011-01-16 10:48:06 +09:00
Jon Harper f60f13c675 math.primes.erato doc fixes. 2010-11-02 17:34:28 +01:00
Rupert Swarbrick cd28c7a219 math.primes.erato: Fix off-by-one error
The sieve bit vector deals with numbers in chunks of 30. Therefore,
the number 90 (say) is the 91st 'element' of the vector. Each byte
deals with some range {0,1,...,29}+30n so to have the number 90, you
need four bytes.

Rather pleasingly, I bumped into this bug and it reduced to the
incantation:
  2010 2010 sieve marked-prime?
2010-11-02 17:34:24 +01:00
Doug Coleman 67c37591ca Remove <uint> *uint and friends. Hopefully remove the last usages of these words 2010-10-25 15:54:42 -05:00
Slava Pestov ee1520f683 math.primes.erato: fix typo in docs 2010-10-22 18:26:08 -07:00
Slava Pestov 04be762fac math.rectangles: add infinite recursion check in case somebody does something stupid 2010-09-16 21:27:18 -07:00
Slava Pestov 1818bcb780 Fix three problems discovered by running math.floats.env tests in a loop:
- Crash if allocating error triggers a GC from a signal/SEH handler
- Crash if GC runs with floating point traps enabled on Windows
- Floating point traps didn't prettyprint properly
2010-09-02 22:57:14 -05:00
Slava Pestov 720d634388 math.floats.env.x86: make sure the x87 stack is cleared after the overflow test, otherwise random things screw up later 2010-08-28 12:01:09 -05:00
Slava Pestov 6e0cb74b13 math.vectors.simd: docs mention obsolete 'test-mr mr.' words 2010-08-20 18:00:03 -07:00
Slava Pestov 1985705413 compiler: now that FFI has been deconcatenatized, we no longer need the special ##unary-float-function and ##binary-float-function fastpaths 2010-08-13 23:59:19 -07:00
Joe Groff 7384793287 math.floats.env.x86: more direct test for stack fault detection 2010-08-13 22:20:16 -07:00
John Benediktsson ae17190909 math.combinatorics: Fixing selections bug with nested sequences. 2010-08-13 14:34:14 -07:00
Joe Groff 8347a9ead8 math.floats.env: detect +fp-x87-stack-fault+ during collect-fp-exceptions block 2010-08-12 23:23:00 -07:00
Slava Pestov 42b858b3f0 math.libm: fix regression: fsqrt intrinsic was not working ever since change was made to inline FUNCTION: bodies 2010-08-12 21:41:57 -07:00
Jon Harper 4fcdb2fbd5 divisors returns empty list for 0
This is mainly for consistency with other words
(factors, group-factors, unique-factors)
2010-08-09 22:54:35 -07:00
Slava Pestov 68da8c48d5 Merge branch 'master' of http://github.com/mrjbq7/factor 2010-07-26 15:10:50 -04:00
John Benediktsson f1eb6a9d6e math.combinatorics: improve all-subsets and selections words. 2010-07-26 08:12:36 -07:00