Commit Graph

628 Commits (fab9a925c3346a1bbefc0051ded565a9b51c9efc)

Author SHA1 Message Date
Doug Coleman 44acd45f2a move docs for nth-root, fix docs for minmax 2009-10-30 06:37:02 -05:00
Doug Coleman 32a51b584c slightly better math.statistics docs 2009-10-30 03:06:03 -05:00
Doug Coleman 320128c7eb move histogram to math.statistics, write a main article for math.statistics 2009-10-30 02:55:54 -05:00
Doug Coleman 003787113f move nth-root to math.functions, use exchange-unsafe in math.statistics 2009-10-30 02:35:51 -05:00
Joe Groff 1cf45abf06 Merge branch 'master' of git://factorcode.org/git/factor 2009-10-30 00:42:37 -05:00
Joe Groff b858860a67 add ##shl-vector-imm and ##shr-vector-imm insn variants. use merge/shr instead of compare/merge to do signed unpacks 2009-10-30 00:41:19 -05:00
Doug Coleman 1d12a6707d sigma -> map-sum 2009-10-29 14:34:04 -05:00
Joe Groff 3fbe722561 Merge branch 'master' of http://factorcode.org/git/factor
Conflicts:
	basis/locals/locals.factor
	basis/peg/peg.factor
	extra/infix/infix.factor
2009-10-28 16:17:24 -05:00
Joe Groff 6e1bffb1c5 update existing code to use :> ( ) when possible 2009-10-28 16:11:33 -05:00
Doug Coleman bd13e018dd memq? -> member-eq?, sorted-memq? -> sorted-member-eq? 2009-10-28 15:02:00 -05:00
Doug Coleman 7ce4b746e5 parsed -> suffix!, add append! 2009-10-28 13:38:27 -05:00
Slava Pestov 08e7d25dc5 change-each -> map!, deep-change-each -> deep-map! 2009-10-27 22:32:56 -05:00
Slava Pestov 1e13f94e9f math.matrices: remove dead code 2009-10-23 07:01:57 -05:00
Slava Pestov bbedd03f6b mirrors: don't depend on specialized-arrays, it pulls in too much 2009-10-23 04:24:20 -05:00
Joe Groff 84f203afcc math.matrices: vectorizable definition of cross 2009-10-22 16:26:25 -05:00
Doug Coleman 1b4e3cb7a6 fix more docs typos 2009-10-21 18:11:24 -05:00
Doug Coleman 0d4b9132d7 fix a bunch of typos in docs 2009-10-21 17:40:43 -05:00
Joe Groff bedfc8f13c vif combinator 2009-10-20 22:49:20 -05:00
Joe Groff 8a6b0a1453 generate unsigned vector comparison fallbacks using min/max or xor/signed compare 2009-10-20 22:30:57 -05:00
Joe Groff cb36111a3c generate better fallback code for vmin/vmax intrinsics 2009-10-20 19:22:38 -05:00
Joe Groff 6f72c3ca24 Merge branch 'master' of git://factorcode.org/git/factor 2009-10-20 17:42:29 -05:00
Joe Groff 34344be636 clean up vector lerp functions to be better vectorizable 2009-10-20 17:11:22 -05:00
Slava Pestov 248f178e64 math.vectors: fix behavioral difference between generic vector vmin vmax and float specialized versions thereof 2009-10-20 07:06:44 -05:00
Joe Groff b212e8edd0 inline trilerp so that perlin-noise is pretty much instantaneous 2009-10-19 15:11:59 -05:00
Joe Groff b411f1701a make vshuffle-bytes intrinsic for any shuffle mask type 2009-10-19 12:25:55 -05:00
Joe Groff fca550d567 math.vectors.conversion docs 2009-10-18 21:25:09 -05:00
Joe Groff 2a156795c5 update vshuffle docs 2009-10-18 16:34:44 -05:00
Joe Groff 0653bae7ec scuttle bogus math.vectors.simd test 2009-10-17 18:47:31 -05:00
Joe Groff b9d2c068a4 fix sporadic "fall-through in cond" failure in float math.vectors.simd tests 2009-10-17 16:54:51 -05:00
Joe Groff 421b61f0e8 fix type propagation information put on non-SIMD specializations of vany?, vall?, vnone? 2009-10-17 11:21:08 -05:00
Joe Groff 7f001ee312 make hlshift/hrshift simd tests endian agnostic 2009-10-17 00:34:35 -05:00
Slava Pestov 4ed91ff5ee syntax: fix docs for : 2009-10-16 23:45:10 -05:00
Joe Groff dd6308ead5 improve error reporting of failing simd fallbacks 2009-10-16 16:34:26 -05:00
Joe Groff 448ef2f1d5 fix unsigned vector unpack 2009-10-16 14:25:33 -05:00
Slava Pestov 48f4799505 math.vectors.simd: fix typos in docs reported by Ed Swartz 2009-10-13 05:13:22 -05:00
Joe Groff 588899a1b3 fix fallbacks for vall?, vany?, vnone? 2009-10-10 13:01:13 -05:00
Joe Groff 1407804393 change the simd-struct tests to cover integer vector slots 2009-10-10 12:23:25 -05:00
Joe Groff d9002127fa have vshuffle accept simd-128 variable byte shuffles 2009-10-10 11:30:11 -05:00
Joe Groff 3bc097f6ff rename ##shuffle-vector to ##shuffle-vector-imm, and add a new ##shuffle-vector for dynamic shuffles. have vshuffle use ##shuffle-vector to do word and byte shuffles on x86 2009-10-09 21:26:27 -05:00
Joe Groff 471c86a110 generate better code for vabs when instruction isn't available instead of using software fallback (-0.0 andn for floats, x > 0 ? x : -x for signed ints, nop for unsigned ints) 2009-10-09 14:24:55 -05:00
Joe Groff 01f5d392be implement vneg as an intrinsic in terms of load -0, subtract 2009-10-09 13:16:39 -05:00
Joe Groff 07aa2620c6 add SIMDS: ... ; and SPECIALIZED-ARRAYS: ... ; syntax 2009-10-09 10:43:37 -05:00
Joe Groff 1bb8a99368 Merge branch 'master' of git://factorcode.org/git/factor 2009-10-08 11:37:12 -05:00
Joe Groff 531cfa1c33 refactor math.vectors.conversion 2009-10-08 11:35:40 -05:00
Doug Coleman e758d4061a Merge branch 'master' of git://factorcode.org/git/factor 2009-10-07 20:53:04 -05:00
Joe Groff f2c9eb79e2 decompose %unpack-vector-head/tail into %compare-vector/%merge-vector-head/tail or %tail>head-vector/%unpack-vector-head insns when there isn't an actual unpack insn; get rid of fake x86 implementations 2009-10-07 14:09:46 -05:00
Doug Coleman 901f87e752 Merge branch 'master' of git://factorcode.org/git/factor 2009-10-07 12:47:44 -05:00
Joe Groff 47cfb7d3a5 fix ##load-constant/##scalar>vector folding when constant is a fixnum 2009-10-07 12:46:08 -05:00
Doug Coleman 59c1f3f73e Merge branch 'master' of git://factorcode.org/git/factor 2009-10-07 12:33:44 -05:00
Joe Groff 34def34481 don't generate a ##not-vector instruction if the cpu doesn't have one; instead, fall back to a ##fill-vector/##xor-vector combo. get rid of pretend %not-vector in cpu.x86 2009-10-07 11:59:36 -05:00
Joe Groff 8873b7939a fix math.vectors.simd test load failure 2009-10-07 11:56:57 -05:00
Doug Coleman bfb2493d68 Merge branch 'master' of git://factorcode.org/git/factor 2009-10-07 11:52:34 -05:00
Joe Groff 4d4da7ac23 break vector conversion intrinsics off to a math.vectors.conversion.backend vocab so the whole conversion vocab doesn't get sucked in by the compiler 2009-10-06 21:28:33 -05:00
Joe Groff a319dde8b5 add some math.vectors.conversion tests to cover some failing cases 2009-10-06 20:21:08 -05:00
Joe Groff 785f8620fd glue conversion intrinsics to instructions 2009-10-06 20:13:38 -05:00
Joe Groff 4456b1f3f9 assert that vconvert's inputs are of the right type 2009-10-06 17:42:36 -05:00
Joe Groff 166ea6bc10 math.vectors.conversion vocab with primitive words (to be mapped to intrinsics soon) and a super all-in-one "vconvert" macro wrapping the whole thing 2009-10-06 14:37:16 -05:00
Doug Coleman b56880bfd7 fix a bug in bit-count that assumed 32bit fixnums, make bit-count work on byte-arrays, SIMD types, specialized-arrays, and aliens 2009-10-05 18:55:26 -05:00
Joe Groff fbe810fc3b rename SIMD vmerge and kids to (vmerge), make new vmerge more generally useful 2009-10-05 17:55:39 -05:00
Joe Groff cf4df7eb66 typo in vmerge-head, vmerge-tail docs 2009-10-05 11:14:14 -05:00
Joe Groff 7ed8f00b0f go back to using random instead of uniform-random-float in math.vectors.simd tests because the software and SIMD implementations of norm and v. can sporadically diverge when their different operation orders lead to cancellation of catastrophically small inputs 2009-10-03 22:57:04 -05:00
Joe Groff 626954a071 fix v? software fallback 2009-10-03 22:37:45 -05:00
Joe Groff 0c9c3d4859 add %merge-vector-head and %merge-vector-tail instructions to back vmerge 2009-10-03 21:48:53 -05:00
Joe Groff 05c722ea0c link vmerge into math.vectors docs 2009-10-03 21:48:16 -05:00
Joe Groff d3c51baf91 software version of vmerge word (to be backed by UNPCK instructions on x86 and VMRG instructions on ppc) 2009-10-03 20:22:37 -05:00
Joe Groff 9e61c433f1 Merge branch 'master' of git://factorcode.org/git/factor 2009-10-03 11:48:56 -05:00
Joe Groff 426e560a6b sprinkle some NaNs onto math.vectors.simd fuzz tests to improve flavor 2009-10-03 11:47:02 -05:00
Joe Groff 04bb03bb61 add intrinsics for v<=, v<, v=, v>, v>=, vunordered? 2009-10-03 11:29:34 -05:00
Slava Pestov 8a7e9740c9 math.floats.env: disable trap tests on OpenBSD i386 for now, until The World's Most Secure Operating System fixes a local DoS exploit 2009-10-03 10:59:54 -05:00
Joe Groff 38f413a8a6 add intrinsic for vnot/vbitnot 2009-10-02 20:04:28 -05:00
Doug Coleman 7d005111a4 i messed up a merge. weird 2009-10-02 16:05:00 -05:00
Doug Coleman a070e9a3a9 Merge branch 'master' of git://factorcode.org/git/factor into klazuka
Conflicts:
	basis/math/vectors/vectors-docs.factor
2009-10-02 15:59:19 -05:00
Doug Coleman 67167cf9ea Merge branch 'docs' of git://github.com/klazuka/factor into klazuka
Conflicts:
	basis/math/vectors/vectors-docs.factor
2009-10-02 15:58:45 -05:00
Joe Groff f93dcfc792 give math.vectors shuffle words their own docs subsection in anticipation of having more ops in there 2009-10-02 15:37:49 -05:00
Joe Groff 5ff3eef0df proofreading math.vectors docs 2009-10-02 15:18:42 -05:00
Joe Groff 0821d3f370 add notes to math.vectors docs about simd booleans 2009-10-02 15:11:06 -05:00
Joe Groff aa3392e50f implement vand, vor, vandn, and vxor as bitwise intrinsics for simd types 2009-10-02 14:17:01 -05:00
Keith Lazuka 405e5d015b docs: change $subsection to $subsections 2009-10-02 12:15:48 -04:00
Joe Groff 8b7a813a08 change vector logical words to reuse the input sequence types so that they work as simd fallbacks 2009-10-01 23:49:53 -05:00
Joe Groff 01736e9bec define simd equal? methods as v= vall? 2009-10-01 23:46:37 -05:00
Joe Groff 53b265f682 Merge branch 'master' of git://factorcode.org/git/factor
Conflicts:
	basis/compiler/codegen/codegen.factor
2009-10-01 23:14:16 -05:00
Joe Groff 952498ef69 create special intrinsic wrappers for 256-vector>scalar operations so that vall?, vany?, vnone? work on 256-vectors 2009-10-01 23:07:10 -05:00
Joe Groff d5c4ec5357 add tests for v=, vany?, vall?, vnone? 2009-10-01 21:24:14 -05:00
Joe Groff d14f150b58 %test-vector instruction for vany?, vall?, vnone? 2009-10-01 15:35:38 -05:00
Joe Groff 987ced4070 %compare-vector instruction (only does v= for now) 2009-10-01 14:31:37 -05:00
Joe Groff 0c8a4717f2 add software vall?, vany?, vnone? words 2009-10-01 13:21:10 -05:00
Slava Pestov 0db97d536f math.vectors.simd.functor: don't open-code simd-nth and simd-with if we cannot generate double precision FP code. Should fix illegal instruction trap on CPUs with only SSE1 2009-10-01 07:36:50 -05:00
Joe Groff 5ac5a74cc6 write v? and vmask in terms of bitwise ops 2009-10-01 00:09:25 -05:00
Joe Groff a93f8f66f9 Revert "add a %blend-vector intrinsic for v?"
This reverts commit 21e4b28b67.
2009-09-30 23:40:37 -05:00
Joe Groff 67cc45235d Merge branch 'master' of git://factorcode.org/git/factor 2009-09-30 23:04:04 -05:00
Joe Groff 7db7b63552 add a %blend-vector intrinsic for v? 2009-09-30 23:03:59 -05:00
Slava Pestov 2384b630b2 math.vectors.simd: use fallbacks for hlshift, hrshift, vshuffle if parameter is not a literal;al; element access in int-4 on x86-64 now sign-extends the value; don't throw error at compile time if parameter for vshuffle does not have enough elements 2009-09-30 20:04:37 -05:00
Joe Groff e56cd5cc12 accept f and t as elements of literal simd vectors, storing binary all-zeroes or all-ones 2009-09-30 19:04:02 -05:00
Joe Groff e0f3b72c65 break math.vectors docs into subsections 2009-09-30 13:21:25 -05:00
Joe Groff 7e679e1683 Merge branch 'master' of git://factorcode.org/git/factor 2009-09-30 00:07:45 -05:00
Joe Groff 55ab9c3002 docs for new math.vectors logical ops 2009-09-30 00:07:37 -05:00
Slava Pestov d70b95e4b8 math.vectors.simd: fix bad comparison logic in unit tests 2009-09-29 23:46:21 -05:00
Slava Pestov 0a29e64287 math.functions: ~ now raises an invalid operation FP trap if one of the inputs is NaN 2009-09-29 23:41:08 -05:00
Slava Pestov eeb601dade Merge branch 'master' of git://factorcode.org/git/factor 2009-09-29 22:59:58 -05:00
Slava Pestov 80e84a357d math.vectors.simd: add vbroadcast intrinsic, fix integer overflow issues 2009-09-29 22:58:20 -05:00
Joe Groff 1e1072f540 math.matrices.simd versions of frustum-matrix4 and rotation-matrix4 2009-09-29 22:54:11 -05:00
Joe Groff 5e16592596 add a "vmask" vector op to selectively zero out elements 2009-09-29 18:10:36 -05:00
Slava Pestov f395d83379 math.vectors.simd: add fast intrinsic for 'nth', replace broadcast primitive with shuffles 2009-09-29 04:48:11 -05:00
Slava Pestov e40a95c1e1 math.vectors.simd: add vshuffle intrinsic 2009-09-28 23:12:13 -05:00
Slava Pestov a8ea929ad9 Work in progress 2009-09-28 17:31:34 -05:00
Slava Pestov 48d3f10c81 Fix some load errors in various places 2009-09-28 16:33:39 -05:00
Slava Pestov 4abfe06b51 Fixing various test failures caused by C type parser change, and clarify C type docs some more 2009-09-28 08:48:39 -05:00
Slava Pestov 9a06e6f424 math.vectors.simd: add intrinsic for int-4-boa, uint-4-boa, fix tests for C type parser change, fix software fallback for horizontal shifts 2009-09-28 06:34:22 -05:00
Slava Pestov 790611666c Merge branch 'master' of git://factorcode.org/git/factor 2009-09-28 02:19:05 -05:00
Slava Pestov b2ea3afd84 math.vectors.simd: add hlshift, hrshift (128-bit shift), vbitandn intrinsics 2009-09-28 02:17:46 -05:00
Joe Groff a14855b98a Merge branch 'master' of git://factorcode.org/git/factor 2009-09-27 22:21:42 -05:00
Joe Groff 24de21eac8 take a shot at making other platform vocabs c-type-string-free 2009-09-27 19:25:34 -05:00
Slava Pestov afc7a20ab8 Merge branch 'master' of git://factorcode.org/git/factor 2009-09-27 17:18:16 -05:00
Slava Pestov 18cf8c37e1 math.vectors.simd: add *-cast words for converting between representations 2009-09-27 17:18:02 -05:00
Joe Groff 630e5ecc3b update vocabs so a load-all on macosx works without parsing c-type strings 2009-09-27 15:11:21 -05:00
Joe Groff c2145c933b software implementations of vector logical ops (vand, vor, vxor, vnot, v</=/>, vunordered?, v?) 2009-09-27 13:19:22 -05:00
Slava Pestov 9d47f5d80d math.vectors: remove special handling for negative shifts, now we just say the behavior of vlshift and vrshift with negative shifts is undefined 2009-09-26 02:26:31 -05:00
Slava Pestov c38d523185 math.vectors: fix SIMD unit tests 2009-09-25 21:44:14 -05:00
Slava Pestov ed37950a33 math.vectors: change vlshift and vrshift to mask the shift count by HEX: ff, to make them behave consistently with their SIMD counterparts 2009-09-25 18:50:44 -05:00
Slava Pestov bbbb207dab Some fixes and cleanups in math.vectors
- Tighten up type inference for operations on complex float arrays
- Fix v. to have correct behavior with complex numbers
- Rename v<< and v>> to vlshift and vrshift to avoid clashing with v>> accessor
2009-09-24 06:58:33 -05:00
Slava Pestov 7b6128dd03 math.vectors.simd: add v<< and v>> intrinsics for bitwise shifts on elements 2009-09-24 03:32:39 -05:00
Slava Pestov 0836e79e66 Fix conflict 2009-09-23 20:52:04 -05:00
Slava Pestov dfc9fd071e Add longlong-2, ulonglong-2, longlong-4, ulonglong-4 SIMD types, fix int-4 multiplication on SSE2 2009-09-23 20:23:25 -05:00
Doug Coleman 402e770296 fix using 2009-09-23 12:47:20 -05:00
Doug Coleman 810bd63820 Merge branch 'master' of git://factorcode.org/git/factor
Conflicts:
	basis/math/vectors/simd/simd-docs.factor
2009-09-23 10:11:49 -05:00
Slava Pestov f017f8904b math.vectors.simd: Improved documentation 2009-09-23 03:14:06 -05:00
Slava Pestov e1efb189a4 math and math.vectors: improved documentation 2009-09-23 03:08:45 -05:00
Slava Pestov 43fa252af5 math.vectors.simd: new operations: vabs vsqrt vbitand vbitor vbitxor 2009-09-23 02:47:14 -05:00
Slava Pestov 15ba7e299b math.vectors.simd: fix all tests 2009-09-23 01:05:19 -05:00
Keith Lazuka bea4aa7662 docs: updated some docs to use new markup 2009-09-22 15:22:34 -04:00
Doug Coleman 51ddc963b8 Merge branch 'master' of git://factorcode.org/git/factor
Conflicts:
	core/generic/generic-tests.factor
2009-09-22 10:25:42 -05:00
Slava Pestov 629fd1fc82 Merge branch 'master' into integer-simd 2009-09-22 03:24:52 -05:00
Slava Pestov fe0701deb1 math.functions: fix ~ with negative (relative) tolerance 2009-09-22 03:19:47 -05:00
Doug Coleman b86314ec39 Merge branch 'master' of git://factorcode.org/git/factor 2009-09-21 17:59:48 -05:00
Slava Pestov 0f0bf667b5 Merge branch 'master' of git://factorcode.org/git/factor into integer-simd 2009-09-21 17:58:24 -05:00
Slava Pestov 962d039852 Rename specific-method to method-for-class, rename (effective-method) to method-for-object, and make both much faster 2009-09-21 17:42:20 -05:00
Slava Pestov ea44ea3522 math.vectors.simd: add saturated arithmetic operations 2009-09-20 23:16:02 -05:00
Doug Coleman 5cb34724b7 Merge branch 'master' of git://factorcode.org/git/factor
Conflicts:
	basis/classes/struct/struct-tests.factor
	basis/functors/functors-tests.factor
	basis/specialized-arrays/specialized-arrays-tests.factor
2009-09-20 23:02:49 -05:00
Doug Coleman eceed177d6 replace usages of <" with """ 2009-09-20 22:42:40 -05:00
Slava Pestov acea55c692 math.vectors: add v+- word which is accelerated by SSE3 2009-09-20 17:43:16 -05:00
Slava Pestov 47d8763340 More integer SIMD work
- move generated vocab support from specialized-arrays to vocabs.generated
- add fuzz testing to math.vectors.simd
- add alien type support for integer SIMD vectors
- SIMD: parsing word generates a SIMD type, instead of pre-generating them all in math.vectors.simd
2009-09-20 16:48:17 -05:00
Slava Pestov e77341b90c math.vectors.simd: redesign to be more flexible, integer SIMD work in progress 2009-09-20 02:08:32 -05:00
Joe Groff 076ab42dc3 move some allocation words that don't really have much to do with c types out of alien.c-types into a new alien.data vocab 2009-09-17 22:36:05 -05:00
Joe Groff 1f04ed01fe fix more ambiguities 2009-09-17 09:29:23 -05:00
Joe Groff fa60d96ae4 fix "float" ambiguities in math.blas, opengl vocabs 2009-09-16 21:25:46 -05:00
Joe Groff 3b4330fcf6 get things to a point where they bootstrap again 2009-09-15 21:43:18 -05:00
Slava Pestov b03eaf3c32 math: minor doc fixes 2009-09-15 15:42:46 -05:00
Slava Pestov 4f702de449 math.functions: more accurate log10 (fixes problem reported by OneEyed) 2009-09-14 16:19:58 -05:00
Joe Groff 77f0fbf497 missed a few PPC status bits that needed clearing 2009-09-14 15:17:36 -05:00
Joe Groff 2fdb16060b vm-error>exception-flags word to extract exception flag information from a trap exception 2009-09-14 14:10:51 -05:00