Commit Graph

310 Commits (f30aa5d20e35c0e301a0060b48346d5e8f8e64e2)

Author SHA1 Message Date
Slava Pestov f30aa5d20e compiler: add fixnum-min/max intrinsics; ~10% speedup on benchmark.yuv-to-rgb 2009-08-28 19:02:59 -05:00
Slava Pestov 99bf9fadfb Performance improvements to make struct-arrays benchmark faster
- improved optimization of ##unbox-any-c-ptr on ##box-displaced-alien; convert it to ##unbox-c-ptr where possible using class info stored in the ##bda instruction
- make fcos, fsin, etc inline again; everything in math.libm inline again, except for fsqrt which is an intrinsic
- convert min and max on floats to float-min and float-max
- make min and max not inline, so that the above can work
- struct-arrays: rice a bit so that more fixnums come up
2009-08-28 05:21:16 -05:00
Slava Pestov 4fe0257169 cpu.x86: use SQRTSD instruction for math.libm:fsqrt word 2009-08-25 23:22:15 -05:00
Slava Pestov 2d5200ae84 math.intervals: comment out questionable unit tests 2009-08-22 19:39:32 -05:00
Slava Pestov 009d3a87f6 Add some unit tests 2009-08-22 17:15:10 -05:00
Slava Pestov 5d3533bc93 math.intervals: help lint fix 2009-08-19 16:08:52 -05:00
Slava Pestov 4b53916a12 math.intervals: tighter interval arithmetic for intervals with infinities 2009-08-19 02:32:18 -05:00
Slava Pestov bee6fa641e Add inline declarations for various assorted methods 2009-08-17 22:32:21 -05:00
Doug Coleman 7c3824639e move if-zero etc to math, remove 1-/1+ from math 2009-08-14 14:27:23 -05:00
Doug Coleman d1ce837569 Delete empty unit tests files, remove 1- and 1+, reorder IN: lines in a lot of places, minor refactoring 2009-08-13 19:21:44 -05:00
Slava Pestov 12880cef55 Merge branch 'master' of git://factorcode.org/git/factor 2009-08-12 03:26:13 -05:00
Slava Pestov 6f2170eb02 More accurate wrap-interval in compiler.tree.propagation.info fixes test regression; constructing an interval with endpoints at infinity now outputs full-interval 2009-08-12 03:25:53 -05:00
Doug Coleman 6a62b2b09a even better error handling for division by zero 2009-08-11 22:30:16 -05:00
Doug Coleman aa71f27094 add docs for if-zero etc, add docs for 10^ 2009-08-11 18:45:01 -05:00
Doug Coleman b5818bd284 Merge branch 'master' of git://factorcode.org/git/factor 2009-08-11 18:16:30 -05:00
Doug Coleman e1bdd33156 use if-zero in a few more places 2009-08-11 18:15:53 -05:00
Doug Coleman 9e0caf641b add 10^ to math.functions and update usages 2009-08-11 18:00:24 -05:00
Slava Pestov 88f28a7245 math.intervals: fix interval-rem 2009-08-11 16:49:28 -05:00
Slava Pestov 7956e63fc2 compiler.tree.propagation: be more careful with intervals, ensuring that the inferred interval of a value is a subset of the value class's interval. This improves accuracy, for example [ >fixnum 1 + >fixnum most-positive-fixnum <= ] constant-folds to true 2009-08-10 01:16:49 -05:00
Slava Pestov f45d80374c alien.structs: struct-type now has a class slot; fix specialized complex-float/double arrays 2009-08-09 16:10:11 -05:00
Slava Pestov 9b4ffd65d3 math.vectors.specialization: first attempt at some call site splitting for vector ops. Specialized array types generate customized variants of all vector words, if input types are known at compile time, a call to the specialized version is inserted 2009-08-09 03:07:33 -05:00
Slava Pestov 638f5b6579 More accurate interval inference for mod, rem, and propagation can now infer intervals in the case where a value might be f. so, [ [ 127 bitand ] [ drop f ] if dup [ 0 >= ] [ not ] if ] now constant-folds down to 't'! 2009-08-08 23:03:45 -05:00
Slava Pestov 26531ddf8b More accurate interval-mod and interval-rem 2009-08-08 22:01:12 -05:00
Doug Coleman 3de64c4053 move signed-le> to io.binary, clean up using list for math.bitwise 2009-07-23 15:54:57 -05:00
Joe Groff 2c97868525 preserve sequence type in math.matrices:cross 2009-07-07 16:26:50 -05:00
Joe Groff 5c25c4ff81 for the FPS classicists... skew matrix constructor 2009-07-04 19:13:31 -05:00
Joe Groff f644140d3d common 3d matrix constructors 2009-07-02 19:05:24 -05:00
Slava Pestov 189043eae7 compiler.cfg.linear-scan.assignment: insert-copy did the wrong thing if the second interval had been split. Fixes compilation of 'trilerp' 2009-06-30 21:07:39 -05:00
Samuel Tardieu 9b1796cd26 Add divisors to math.primes.factors 2009-06-29 16:56:00 +02:00
Samuel Tardieu f51bc7a12b Short circuit trivial composites 2009-06-24 15:53:50 +02:00
Samuel Tardieu 575cd8e4ab Get rid of vector reallocation by preallocating it 2009-06-24 15:53:46 +02:00
Samuel Tardieu 8317be8135 Add extra tests for math.primes 2009-06-24 13:15:13 +02:00
Samuel Tardieu 0fef7b94c4 Pack primes numbers by slices of 30
In any given 30 successive integers greater than 5, there are at most
8 prime numbers. Use this to tightly pack the result of the Eratostene
sieve. This lets us store more prime numbers than before in less space.
2009-06-24 13:15:12 +02:00
Joe Groff c58a302d7e give range models a step parameter; use it on sliders so the thumb can step by any interval 2009-06-18 20:57:02 -05:00
Joe Groff 62ed8d1404 win32 support for window-controls 2009-06-18 11:41:34 -05:00
Doug Coleman ecfea47fd5 fix load error 2009-06-12 02:43:05 -05:00
Doug Coleman 56c9302dbc Merge branch 'master' of git://github.com/prunedtree/factor
Conflicts:
	basis/compression/inflate/inflate.factor
	basis/math/matrices/matrices.factor
2009-06-12 02:33:49 -05:00
Joe Groff ed10661c30 «0.0 1.0 ^» was returning 0 instead of 0.0 2009-06-11 17:47:52 -05:00
Doug Coleman a7845cf25a better implementation of zero-matrix 2009-06-07 20:12:18 -04:00
prunedtree c604dacc3e m^n binary exponentiation of matrices 2009-06-04 20:42:29 -07:00
Daniel Ehrenberg 764cc81abf unbits word in math.bits vocab 2009-06-01 22:39:02 -05:00
Slava Pestov 921de6ba3f math.functions: fix ^ for complex numbers 2009-05-31 23:28:29 -05:00
Doug Coleman d4cf0148ac remove whitespace 2009-05-25 21:25:56 -05:00
Doug Coleman 879dcf204c remove clamp-to-range and associated words, update jamshred 2009-05-25 21:24:12 -05:00
Doug Coleman 8da9d0f203 rename peek -> last and update all usages 2009-05-25 16:38:33 -05:00
Doug Coleman 34e1d60578 add a clamp word to math.order, use clamp word throughout libraries 2009-05-24 21:35:50 -05:00
Doug Coleman 2e2dab011d add a mode word 2009-05-24 15:45:25 -05:00
Joe Groff 23ae3f4ab6 homogeneous coordinates coated in nurbsauce 2009-05-21 20:55:44 -05:00
Joe Groff 4dba6979da vector bilerp word 2009-05-20 10:26:55 -05:00
Doug Coleman 82fa71a03a remove old median, fix docs 2009-05-18 02:41:58 -05:00