Copyright © 2020 Ashok P. Nadkarni. All rights reserved.
1. Introduction
The tarray extension implements typed arrays and associated commands column and table. This page only provides reference documentation for commands. See the main contents for an introduction, programming guide and other reference documentation.
1.1. Installation and loading
Binary packages for some platforms are available from the Sourceforge download area. See the build instructions for other platforms.
To install the extension, extract the files from the distribution to any
directory that is included in your Tcl installation’s auto_path
variable.
Once installed, the extension can be loaded with the standard Tcl package require command.
% package require tarray
→ 1.0.0
2. Command reference
All commands are located in the tarray
namespace.
2.1. Commands
loop INDEXVAR VAR VALUES SCRIPT
In the first form, SCRIPT is executed for each element in VALUES with VAR taking on the value of each element or row in VALUES in turn. VALUES may be a column, table or a Tcl list.
The second form is similar but in addition INDEXVAR is assigned the index of the element.
prettify VALUES ?options?
Returns VALUES as a more readable string format. VALUES is expected to be a column or a table. If not, it is returned unchanged.
The command takes the following options
print VALUES ?CHANNEL? ?options?
Prints VALUES to the specified channel in a readable string format.
CHANNEL defaults to stdout
if unspecified. VALUES is
expected to be a column or a table. If not, it is output as
by the Tcl puts
command.
See Prettify options for a list of valid options.
randseed ?SEED1 SEED2?
Sets the initial seed values for the random number generator (RNG).
The optional SEED1
and SEED2
should be any 64-bit numbers.
For normal use, this command need not be invoked as the
RNG is automatically initialized internally using runtime
data.
For use cases such as testing where you want reproducible
“random” values to be produced, you can call the command
with the same seed arguments before every run.
When no arguments are specified, the RNG is reinitialized in
the same manner as startup. This is generally useful to
undo the effects of a previous call to randseed
with
specific seed values.
rng create CMDNAME TYPE ?LOWERBOUND? ?HIGHERBOUND?
Returns a new random number generator (RNG) command object named
CMDNAME
that can be used to produce uniformly distributed
random numbers of the specified type.
For types boolean
, byte
, int
, uint
and wide
the range of generated values corresponds to the entire
domain range by default. For type double
the values are generated
in the range [0,1] by default. The optional
LOWERBOUND and UPPERBOUND arguments may be supplied to modify
the range from which values are sampled. These are ignored for
TYPE boolean
.
rng new TYPE ?LOWERBOUND? ?HIGHERBOUND?
Returns a new random number generator (RNG) command object that can be used to produce random numbers of the specified type. See rng create CMDNAME TYPE ?LOWERBOUND? ?HIGHERBOUND? for details. This command differs only in that the name of the returned command object is automatically generated.
RNG get ?COUNT ?LOWERBOUND UPPERBOUND??
Returns COUNT
(defaults to 1
if unspecified) random numbers.
RNG
is a random number generator
created by the rng create
or rng new
commands.
The random numbers are within the bounds specified for RNG
at the time
it was created unless overridden by the additional arguments
LOWERBOUND
and UPPERBOUND
.
RNG seed SEED1 SEED2
Sets the seed of the random number generator command object RNG
created by the rng create
or rng new
commands.
The SEED1
and SEED2
should be any 64-bit numbers.
For normal use, this command need not be invoked as the
RNG is automatically initialized internally using runtime
data. For use cases such as testing where you want reproducible
“random” values to be produced, you can set
the same seed arguments before every run.
table SUBCOMMAND …
Operates on tables. See Table commands.