Hi Joel and all,

> I should have pointed out that the modified algorithm below splits
> the group number from the remainder of the line; therefore, some
> post-processing might be needed to re-attach the three-digit prefix
> to the data (unless, of course, the subsequent processing could use
> the bucket index for that purpose).  So the time comparison may not
> be comletely fair.

This is a little true for all the test we made, someone use read/lines,
someone read, someone ends with a block of line, someone with a block of
blocks. More "exact" tests should be made with a file on disk and stop with a
file on disk.

A note, this does not work as one expect under 1.2.8:

 buffer: copy/deep array/initial 999 [[]]

the correct expression under 1.2.8 is:

 buffer: array/initial 999 []

copy/deep is no more useful, and series now are well initialized.

But the new array is too slow, here it is my patched version. I should like to
know if works without errors and/or if soemone finds others optimizations:

------code-----
array-patched: func [
 [catch] ;PATCH: added
    "Makes and initializes a series of a given size. patched by ana"
    size [integer! block!] "Size or block of sizes for each dimension"
    /initial "Specify an initial value for all elements"
    value "Initial value"
    /local block rest
][
    if not initial [value: none]
    if block? size [
        rest: next size
        if tail? rest [rest: none]
        size: first size
        if not integer? size [make error! "Integer size required"]
    ]
    block: make block! size
    either rest [
        loop size [
            ;if series? value [value: copy/deep value] ;PATCH: removed
            insert/only tail block throw-on-error [array/initial rest value]
;PATCH: added tail and throw-on-error
        ]
    ][
        either series? value [
            loop size [insert/only tail block copy/deep value] ;PATCH: added
tail
        ][
            insert/dup block value size ;PATCH: removed block:
        ]
    ]
    block ;PATCH: removed head
]

---
Ciao
Romano


-- 
To unsubscribe from this list, please send an email to
[EMAIL PROTECTED] with "unsubscribe" in the 
subject, without the quotes.

Reply via email to