2025-03-28 19:43:26 there were some ideas about parallelism in forth? e.g. with 1.0 2.0 3.0 i push 3 floats into the stack, what about i want to calc the cosine of those floats? with the simple 'cos' i would need A LOT of swaps, there is a better way? 2025-03-28 20:02:40 rendar: maybe put all your floats in a memory buffer and then have a special cosine function which iterates through the buffer and replaces it with the results (or puts the results in a different buffer) 2025-03-28 20:02:41 ? 2025-03-28 20:03:32 that's a very custom way to do things, what about a general method that lets me do that for a lot of common math functions? 2025-03-28 20:08:37 A map function which applies an xt to all elements of an array? 2025-03-28 20:28:25 i would think also you could do a three element rotation, consume the top value, drop the calculated value, and repeat 2025-03-28 20:30:55 ROT is a core word, right? 2025-03-28 20:30:55 ROT cos ROT cos ROT cos 2025-03-28 21:29:38 [bot]dpans: ROT 2025-03-28 21:29:38 <[bot]dpans > 6.1.2160 ROT "rote" CORE 2025-03-28 21:29:38 <[bot]dpans > ( x1 x2 x3 -- x2 x3 x1 ) 2025-03-28 21:29:39 <[bot]dpans > Rotate the top three stack entries. 2025-03-28 22:11:22 stacks are not that great at parallelism 2025-03-28 22:12:10 but you could use the stack to express the dataflow of a computation and then execute that dataflow in parallel 2025-03-28 22:12:16 for example 2025-03-28 22:13:04 Whole array operations might help with vectorization 2025-03-28 22:13:58 or take the SIMT approach used in GPUs and ISPC, where one stream of instructions operates in parallel on several different stacks, but conditionals and loops flag off some of the "threads" so they don't modify their stacks because a condition failed 2025-03-28 22:15:05 a loop keeps looping until all the threads exit it