<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:syn="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/">
  <channel about="http://permalink.gmane.org/gmane.comp.multimedia.packet-forth">
    <title>gmane.comp.multimedia.packet-forth</title>
    <link>http://permalink.gmane.org/gmane.comp.multimedia.packet-forth</link>
    <description/>
    <syn:updatePeriod>hourly</syn:updatePeriod>
    <syn:updateFrequency>1</syn:updateFrequency>
    <syn:updateBase>1901-01-01T00:00+00:00</syn:updateBase>
    <items>
      <rdf:Seq>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.multimedia.packet-forth/481"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.multimedia.packet-forth/480"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.multimedia.packet-forth/479"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.multimedia.packet-forth/478"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.multimedia.packet-forth/477"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.multimedia.packet-forth/476"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.multimedia.packet-forth/475"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.multimedia.packet-forth/474"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.multimedia.packet-forth/473"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.multimedia.packet-forth/472"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.multimedia.packet-forth/471"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.multimedia.packet-forth/470"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.multimedia.packet-forth/469"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.multimedia.packet-forth/468"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.multimedia.packet-forth/467"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.multimedia.packet-forth/466"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.multimedia.packet-forth/465"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.multimedia.packet-forth/464"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.multimedia.packet-forth/463"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.multimedia.packet-forth/462"/>
      </rdf:Seq>
    </items>
    <image rdf:resource="http://gmane.org/img/gmane-25t.png"/>
    <textinput rdf:resource=""/>
  </channel>
  <image rdf:about="http://gmane.org/img/gmane-25t.png">
    <title>Gmane</title>
    <url>http://gmane.org/img/gmane-25t.png</url>
    <link>http://gmane.org</link>
  </image>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.multimedia.packet-forth/481">
    <title>Latest darcs URL?</title>
    <link>http://permalink.gmane.org/gmane.comp.multimedia.packet-forth/481</link>
    <description>Hello

Giving it another go. :-)

So, what is the current darcs URL for PF?

Many thanks in advance.

-thomas
</description>
    <dc:creator>Thomas Sivertsen</dc:creator>
    <dc:date>2008-01-20T20:23:35</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.multimedia.packet-forth/480">
    <title>Re: [brood] trac down?</title>
    <link>http://permalink.gmane.org/gmane.comp.multimedia.packet-forth/480</link>
    <description>oops wrong list :)

marloes wrote:

</description>
    <dc:creator>marloes</dc:creator>
    <dc:date>2007-12-07T15:41:41</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.multimedia.packet-forth/479">
    <title>Re: [brood] trac down?</title>
    <link>http://permalink.gmane.org/gmane.comp.multimedia.packet-forth/479</link>
    <description>pic18f1320

perhaps you need to reload a couple of times, the site looks fine from here!

grtz marloes

krgn wrote:

</description>
    <dc:creator>marloes</dc:creator>
    <dc:date>2007-12-07T15:39:18</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.multimedia.packet-forth/478">
    <title>Re: 2d matrices, bitgrids, images?</title>
    <link>http://permalink.gmane.org/gmane.comp.multimedia.packet-forth/478</link>
    <description>
If I use bit operations only, I can also use 8 or 16 or 32 of them in the 
same word, and I get that same speedup.

Jumping around seemed like a killer slowdown, which is why I asked.


I don't quite believe that bit-serial is very appropriate here. It could 
be if you didn't allocate 4 buffers (you do, right?) but there are also 
other ways to get there.

If you have your bits interleaved, you can use GridFlow's 
progressively-parallel adder, which adds 64 variables of 1 bit into one 
variable of 64 bits (in which 57 bits are always zero, of course):

static inline uint64 weight(uint64 x) {uint64 k;
   k=0x5555555555555555ULL; x = (x&amp;k) + ((x&gt;&gt; 1)&amp;k);
   k=0x3333333333333333ULL; x = (x&amp;k) + ((x&gt;&gt; 2)&amp;k);
   k=0x0f0f0f0f0f0f0f0fULL; x = (x&amp;k) + ((x&gt;&gt; 4)&amp;k);
   k=0x00ff00ff00ff00ffULL; x = (x&amp;k) + ((x&gt;&gt; 8)&amp;k);
   k=0x0000ffff0000ffffULL; x = (x&amp;k) + ((x&gt;&gt;16)&amp;k);
   k=0x00000000ffffffffULL; x = (x&amp;k) + ((x&gt;&gt;32)&amp;k);
   return x;
}

... which can be readily adapted to 8 or 16 or 32 or 128 bits.

And btw GridFlow</description>
    <dc:creator>Mathieu Bouchard</dc:creator>
    <dc:date>2007-11-12T16:20:52</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.multimedia.packet-forth/477">
    <title>Re: 2d matrices, bitgrids, images?</title>
    <link>http://permalink.gmane.org/gmane.comp.multimedia.packet-forth/477</link>
    <description> &gt; &gt; the VM computes 32 cells in bit-parallel. read is the only thing
 &gt; &gt; that's complicated by this, the rest is a straightforward minimal
 &gt; &gt; forth VM with only logic ops, and an 'optimized' 4 bit counter.
 &gt; 
 &gt; How fast is this? We should really benchmark SCAF vs GridFlow... 

it's pretty fast. a factor 32 is hard to ignore :) but the previous
version (in PDP) was much faster. it used 64 bit (mmx) words and had
native code. the SCAF in PF looses a lot by constantly jumping around,
i think it's about an order of magnitude even. 

so i do wonder if the use of bit ops in 'read' really makes any
difference in the current implementation.

 &gt; but actually, I'd only interested if SCAF wasn't just about logic
 &gt; ops.  

it's really just about 2D binary celluar automata, for which logic is
quite appropriate. i don't see a point taking this approach for
general operations. extending it for &gt;2 state CA's might be
interesting though.


 &gt; Besides, I don't know how you expect to implement
 &gt; game-of-life with that.</description>
    <dc:creator>Tom Schouten</dc:creator>
    <dc:date>2007-11-04T23:33:21</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.multimedia.packet-forth/476">
    <title>Re: 2d matrices, bitgrids, images?</title>
    <link>http://permalink.gmane.org/gmane.comp.multimedia.packet-forth/476</link>
    <description>
Wouldn't "Line-by-line" count as a "no"? I'd think of it as very 
ordinary...


Ok. GridFlow does this too, but only when the sizes are actually powers of 
two, and it uses multiplication in other cases. I haven't checked whether 
I could use the classic shortcuts for some other common sizes, such as 320 
like this:

 lea ebx,[ebx+ebx*4]
 shl ebx,6

But I'm not sure whether it's any faster nowadays. I should probably spend 
more time working on multiplication/addition combos to reduce memory 
access (I don't use a VM, I use precompiled loops for every operation, 
which would be better when cache&lt;-&gt;register transfer times are 
neglectible, but they are not)


How fast is this? We should really benchmark SCAF vs GridFlow... but 
actually, I'd only interested if SCAF wasn't just about logic ops. 
Besides, I don't know how you expect to implement game-of-life with 
that... a lookup-table? (eek) So, actually, I'm interested in comparing 
a-version-of-SCAF-that-does-a-wide-range-of-ops and GridFlow's NumOps 
sy</description>
    <dc:creator>Mathieu Bouchard</dc:creator>
    <dc:date>2007-11-04T17:38:49</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.multimedia.packet-forth/475">
    <title>Re: 2d matrices, bitgrids, images?</title>
    <link>http://permalink.gmane.org/gmane.comp.multimedia.packet-forth/475</link>
    <description> &gt; 
 &gt; &gt; note that CA grid dimensions can only be a power of 2, and to convert
 &gt; &gt; an image into a grid do this:
 &gt; 
 &gt; Do you have a very special reason for this limitation, such as a recursive 
 &gt; quadrants memory layout (perhaps using the Hilbert curve) ? 

yes, but it's a bit more modest than that. the way it works now
doesn't need any special encoding to keep the cache happy: everything
goes line-by-line: access patterns are predictable, except on the
corner cases.

 &gt; Else that 
 &gt; requirement could easily be removed, yes?

the reason is the way the VM for scaf is implemented. i'm using simple
bit ops to compute the pointers. so if you give up one of 'simple and
efficient', the constraint could be removed. the only thing to change
would be "read:" in

http://zwizwa.goto10.org/darcs/packetforth/plugins/scaf/scaf.c

the VM computes 32 cells in bit-parallel. read is the only thing
that's complicated by this, the rest is a straightforward minimal
forth VM with only logic ops, and an 'optimized' 4 bit coun</description>
    <dc:creator>Tom Schouten</dc:creator>
    <dc:date>2007-11-01T22:37:26</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.multimedia.packet-forth/474">
    <title>Re: 2d matrices, bitgrids, images?</title>
    <link>http://permalink.gmane.org/gmane.comp.multimedia.packet-forth/474</link>
    <description>

this is also the same as [#] in GridFlow. The mapping, I mean. To use 
neighbours you have to use [#convolve] instead (but if you use *lots* of 
neighbours at once you are better off with [#fft]). In GridFlow you can 
compute one pass of game-of-life using only two objects, [#convolve] then 
[#]. However, GridFlow has no uint1 type, only uint8, int16, int32, 
float32, and optionally some more, but the byte is the base unit.


Do you have a very special reason for this limitation, such as a recursive 
quadrants memory layout (perhaps using the Hilbert curve) ? Else that 
requirement could easily be removed, yes?

  _ _ __ ___ _____ ________ _____________ _____________________ ...
| Mathieu Bouchard - tél:+1.514.383.3801, Montréal QC Canada_______________________________________________
PF-list mailing list
PF-list-hk8Gx6dT9hkdnm+yROfE0A&lt; at &gt;public.gmane.org
http://lists.goto10.org/cgi-bin/mailman/listinfo/pf-list</description>
    <dc:creator>Mathieu Bouchard</dc:creator>
    <dc:date>2007-11-01T20:45:01</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.multimedia.packet-forth/473">
    <title>no pixel access..</title>
    <link>http://permalink.gmane.org/gmane.comp.multimedia.packet-forth/473</link>
    <description>

 &gt; 
 &gt; The only other graphics language I know is Processing, which is very heavily
 &gt; steeped in x,y pixel coords for everything, so I am sure my question reeks
 &gt; of this kind of thinking :)
 &gt; 

indeed... 
and i take this as an opportunity to rant a bit.

one of the ideas behind PF (actually PDP) has been to do everything
with high level 'mapped' or 'folded' operators.

http://www.cse.unsw.edu.au/~en1000/haskell/hof.html
( there are probably better articles.. anyone ? )

on a pragmatic level, higher order functions (hofs, or
iterators/visitors in OO speak) allow you abstract the process of
looping over a data structure.

in some cases, hofs can be really inefficient if the thing you're
doing inside the loops is a simple operation, and the data structure
is big. 

for most programs this inefficiency is really not a problem: writing
clean code (getting a program to work at all, not taking too long to
write it) is usually more important than to make it do the wrong
thing.. but fast.

except for DSP... ther</description>
    <dc:creator>Tom Schouten</dc:creator>
    <dc:date>2007-11-01T19:02:05</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.multimedia.packet-forth/472">
    <title>2d matrices, bitgrids, images?</title>
    <link>http://permalink.gmane.org/gmane.comp.multimedia.packet-forth/472</link>
    <description>
hi kevin,


 &gt; I am interested in doing some 2d matrix manipulation to generate images
 &gt; based on incoming data.  In ca.pf I can see that something like this has to
 &gt; be going on, but I don't have any understanding of the scaf stuff so I am
 &gt; missing the part where it sets the points of the bitgrid according to the
 &gt; rules.

scaf is a bit of an odd duck. but the basic idea is that you write a
program for how a single pixel behaves, and the system takes care of
'mapping' (iterating) this over the data structure, which is a 2d
matrix of cells. so with scaf, you can only set LOCAL behaviour, which
is what a Cellular Automaton (CA) is all about.

important to note: the code you write inbetween 'scaf-begin' and
'scaf-end' is not PF! it is an entirely different language, which only
shares Forth syntax with PF. it is machine code for a 1-bit stack
machine that can see the state of its neighbour cells using the word
'read', and can move from one neighbour to another using 'left',
'right', 'up' and 'down'. it ca</description>
    <dc:creator>Tom Schouten</dc:creator>
    <dc:date>2007-11-01T18:41:36</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.multimedia.packet-forth/471">
    <title>2d matrices, bitgrids, images?</title>
    <link>http://permalink.gmane.org/gmane.comp.multimedia.packet-forth/471</link>
    <description>_______________________________________________
PF-list mailing list
PF-list-hk8Gx6dT9hkdnm+yROfE0A&lt; at &gt;public.gmane.org
http://lists.goto10.org/cgi-bin/mailman/listinfo/pf-list</description>
    <dc:creator>Kevin McCoy</dc:creator>
    <dc:date>2007-11-01T04:24:36</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.multimedia.packet-forth/470">
    <title>new darcs url</title>
    <link>http://permalink.gmane.org/gmane.comp.multimedia.packet-forth/470</link>
    <description>
hello,

the read-only PF darcs archive has moved to

http://darcs.goto10.org/packetforth

groet,
tom
</description>
    <dc:creator>tom-hk8Gx6dT9hkdnm+yROfE0A&lt; at &gt;public.gmane.org</dc:creator>
    <dc:date>2007-08-20T12:56:56</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.multimedia.packet-forth/469">
    <title>Re: which libpf?</title>
    <link>http://permalink.gmane.org/gmane.comp.multimedia.packet-forth/469</link>
    <description>marloes-hk8Gx6dT9hkdnm+yROfE0A&lt; at &gt;public.gmane.org wrote on 7/19/07 at 5:18 AM


Hi Marloes-

Many thanks. JK pushed me on the PacketForth rename, and I realized I
had not seen the "PacketForth" directory under "PacketForth-Montevideo".

Are you still working on/with d_u_w? I was reading a paper by Alvy Ray
Smith on graph grammars and thought of your Piksel video from last
year...

groeten en cheers! Charles

&lt;vze26m98-p32f3XyCuykqcZcGjlUOXw&lt; at &gt;public.gmane.org&gt;
</description>
    <dc:creator>Charles Turner</dc:creator>
    <dc:date>2007-07-19T10:55:51</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.multimedia.packet-forth/468">
    <title>Re: which libpf?</title>
    <link>http://permalink.gmane.org/gmane.comp.multimedia.packet-forth/468</link>
    <description>Hey!

http://zwizwa.goto10.org/darcs/packetforth/

that is the one! the others are forked because of projects relying on no
more changes ;)

Greetings!

marloes

</description>
    <dc:creator>marloes-hk8Gx6dT9hkdnm+yROfE0A&lt; at &gt;public.gmane.org</dc:creator>
    <dc:date>2007-07-19T09:18:14</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.multimedia.packet-forth/467">
    <title>which libpf?</title>
    <link>http://permalink.gmane.org/gmane.comp.multimedia.packet-forth/467</link>
    <description>Hey all-

Went to pull libpf and found I had three choices:

metabiosis
pre-thread-removal fork point
montevideo

Which one do I want?

groeten, Charles

&lt;vze26m98-p32f3XyCuykqcZcGjlUOXw&lt; at &gt;public.gmane.org&gt;
</description>
    <dc:creator>Charles Turner</dc:creator>
    <dc:date>2007-07-17T21:23:59</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.multimedia.packet-forth/466">
    <title>mouse.</title>
    <link>http://permalink.gmane.org/gmane.comp.multimedia.packet-forth/466</link>
    <description>
after much experiments on cat-themed stack-oriented programming languages, 
there ought to be mention of this language:

   http://en.wikipedia.org/wiki/Mouse_%28programming_language%29

(Note that, back in 1980, the computer mouse input device was still 
virtually unknown, despite having been invented as early as 1963.)

  _ _ __ ___ _____ ________ _____________ _____________________ ...
| Mathieu Bouchard - tél:+1.514.383.3801, Montréal QC Canada_______________________________________________
PF-list mailing list
PF-list-hk8Gx6dT9hkdnm+yROfE0A&lt; at &gt;public.gmane.org
http://lists.goto10.org/cgi-bin/mailman/listinfo/pf-list</description>
    <dc:creator>Mathieu Bouchard</dc:creator>
    <dc:date>2007-07-06T03:55:11</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.multimedia.packet-forth/465">
    <title>test</title>
    <link>http://permalink.gmane.org/gmane.comp.multimedia.packet-forth/465</link>
    <description>
test!

  _ _ __ ___ _____ ________ _____________ _____________________ ...
| Mathieu Bouchard - tél:+1.514.383.3801, Montréal QC Canada_______________________________________________
PF-list mailing list
PF-list-hk8Gx6dT9hkdnm+yROfE0A&lt; at &gt;public.gmane.org
http://lists.goto10.org/cgi-bin/mailman/listinfo/pf-list</description>
    <dc:creator>Mathieu Bouchard</dc:creator>
    <dc:date>2007-06-30T00:08:08</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.multimedia.packet-forth/464">
    <title>Re: [OT] Re:  concat</title>
    <link>http://permalink.gmane.org/gmane.comp.multimedia.packet-forth/464</link>
    <description>

Agreed. I think that the spirit of (a+b)-b=a is respected by floats, even 
if not exactly. I have been developing of unexact algebraic structures for 
PureUnity.

I have defined the invertor of operator f with anti-operator g as being 
g(f(a,b),b), so that if f=+ and g=- then the invertor is (a+b)-b.

Then, in the context of an operator on elements of a set, there is a 
certain expectation of performance... loosely speaking, we want the result 
of the invertor to be small relative to a certain norm. This is how we can 
judge of the quality of a certain g in the role of opposing f, and how we 
can judge the invertibility of f.

I've written more about it in PureUnity, but some questions are not 
resolved yet, so I haven't implemented everything.

  _ _ __ ___ _____ ________ _____________ _____________________ ...
| Mathieu Bouchard - tél:+1.514.383.3801, Montréal QC Canada_______________________________________________
PF-list mailing list
PF-list-hk8Gx6dT9hkdnm+yROfE0A&lt; at &gt;public.gmane.org
http://lists.goto1</description>
    <dc:creator>Mathieu Bouchard</dc:creator>
    <dc:date>2007-05-30T05:10:39</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.multimedia.packet-forth/463">
    <title>64 bit</title>
    <link>http://permalink.gmane.org/gmane.comp.multimedia.packet-forth/463</link>
    <description>yesterday i've changed some int/void* casts that could give problems on 
64bit systems. i don't have a machine here to test, but this could solve the 
ppc64 problem.
</description>
    <dc:creator>Tom Schouten</dc:creator>
    <dc:date>2007-05-16T09:05:28</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.multimedia.packet-forth/462">
    <title>Re: concat</title>
    <link>http://permalink.gmane.org/gmane.comp.multimedia.packet-forth/462</link>
    <description>
inversibility requires that each element has an inverse. it is necessary 
that backspace and delete become elements in some way for that to be true, 
so that "a"+backspace+"b"="b" can be as valid as "a"+(backspace+"b") than 
as ("a"+backspace)+"b" (associativity).

Then from the moment that backspace is an element, it has to have an 
inverse, so that if you have x+backspace+thatinverse=x, thatinverse 
doesn't depend on the value of x. (that might actually be already implied 
by associativity and simpler invertibility of the form 
backspace+antibackspace="")


I don't understand why string:+ would become xor and not addition. 
Addition and xor are only the same if you consider each word as a vector 
of independent bits that work as mod 2 arithmetic.

  _ _ __ ___ _____ ________ _____________ _____________________ ...
| Mathieu Bouchard - tél:+1.514.383.3801, Montréal QC Canada_______________________________________________
PF-list mailing list
PF-list-hk8Gx6dT9hkdnm+yROfE0A&lt; at &gt;public.gmane.org
http://lists.go</description>
    <dc:creator>Mathieu Bouchard</dc:creator>
    <dc:date>2007-05-10T03:21:29</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.multimedia.packet-forth/461">
    <title>Re: concat</title>
    <link>http://permalink.gmane.org/gmane.comp.multimedia.packet-forth/461</link>
    <description>
what about backspace and delete?


yes. since lists of numbers are used to build matrices (them being a sort of 
'compiled' version of lists of numbers), it makes sense to have '+' do 
addition. indeed, then string's + for concat has to go for general 
consistency. probably string:+ will just become xor. 
</description>
    <dc:creator>Tom Schouten</dc:creator>
    <dc:date>2007-05-09T22:55:37</dc:date>
  </item>
  <textinput about="http://search.gmane.org/?group=$group=gmane.comp.multimedia.packet-forth">
    <title>Search Engine</title>
    <description>Search the mailing list at Gmane</description>
    <name>query</name>
    <link>http://search.gmane.org/?group=$group=gmane.comp.multimedia.packet-forth</link>
  </textinput>
</rdf:RDF>
