General:. This page generally
describes new functionality in the 81 series of revisions and uploads. This is
Working Documentation that with maturity will be moved to the Master
Catenating assignment (
,=> ): A very common requirement when slewing through data
is to build up a result through catenation. Using normal catenation techniques,
this is a very expensive process. Typically it means checking the size of the
two contributors, creating a new larger object, and copying into the new
object. With catenating assignment Glee is able to save
space at the end of an object and catenate into that space. Typically it saves
10% additional space and only resizes when that is exhausted. It is also
possible to presize an object and then clear it. This leaves the storage
allocated and catenation can proceed into the preallocated storage.
Histogram ( index #<>
cell ): Histograms aggregate statistics. They may count
occurrences of items or objects in ranges defined by cells, or they may
accumulate the values of the items or objects. Introduction of this histogram
operator begins the support for that need. The prefixes @<
(the default) and @> are used to direct the
operation. The left @< and right @>
prefixes determine which of the ends are part of the cell (they
can't both be part of the cell and by default, the left edge rules). This
operator produces one more element than the number of cells given. By default,
the last element is the accumulation before reaching the left edge of the first
cell. If the right (@>) prefix is used, accumulation before the
first cell would naturally accumulate in the first cell. Therefore, in the case
of a right cell edge, the last element of the result is the accumulation beyond
the last cell supplied.
index value #<> cell ): If indices and values are given,
where the indices determine the cell, the values accumulate in the cell. Thus
the value could be an actual value, or it could be the weight of the
contribution of the respective index. The effect is to achieve a weighted
histogram. The result could be normalized by dividing by the sum of the value
Simple Interpolation (x y #@`
ix): Read glyph as value at index. If just the
"x" and "y" vectors are supplied, an interpolation into
these data points is called for. The "x" values must be sorted
ascending. The "ix" values (also sorted ascending) interpolate among
the points to return "iy" values as a result.
Cellular Interpolation (s e v
#@` ix): Cellular interpolation is given a start "s"
and end "e" of a cell and a value "v" within that cell. The
result for each output index is the value of the cell in which the index falls.
Where cells are missing, the value of the assumed cell is the average of cell
values to its left and right. First and last cells are extended for indices
before cells begin or after cells end.