Description Usage Arguments Details See Also Examples
View source: R/makeCappedVolumeBox.R
makeCappedVolumeBox
returns the dimensions of the biggest
multidimensional box (a.k.a. hyperrectangle) that satisfies 3 constraints:
(1) its volume is capped, (2) it fits in the constraining box,
(3) it has the specified shape.
makeRegularArrayGridOfCappedLengthViewports
makes a
RegularArrayGrid object with grid elements that are capped volume
boxes with the specified constraints.
These are lowlevel utilities used internally to support
defaultAutoGrid
and family.
1 2 3 4 5 6 7 8 9 10 11  makeCappedVolumeBox(maxvol, maxdim, shape=c("hypercube",
"scale",
"firstdimgrowsfirst",
"lastdimgrowsfirst"))
makeRegularArrayGridOfCappedLengthViewports(refdim,
viewport_len,
viewport_shape=c("hypercube",
"scale",
"firstdimgrowsfirst",
"lastdimgrowsfirst"))

maxvol 
The maximum volume of the box to return. 
maxdim 
The dimensions of the constraining box. 
shape 
The shape of the box to return. 
refdim 
The dimensions of the reference array of the grid to return. 
viewport_len 
The maximum length of the elements (a.k.a. viewports) of the grid to return. 
viewport_shape 
The shape of the elements (a.k.a. viewports) of the grid to return. 
makeCappedVolumeBox
returns the dimensions of a box that satisfies
the following constraints:
The volume of the box is as close as possibe to (but no bigger
than) maxvol
.
The box fits in the constraining box i.e. in the box whose
dimensions are specified via maxdim
.
The box has a nonzero volume if the constraining box has a nonzero volume.
The shape of the box is as close as possible to the requested shape.
The supported shapes are:
hypercube
: The box should be as close as possible to an
hypercube (a.k.a. ncube), that is, the ratio
between its biggest and smallest dimensions should be as close
as possible to 1.
scale
: The box should have the same proportions as the
constraining box.
firstdimgrowsfirst
: The box will be grown along its
1st dimension first, then along its 2nd dimension, etc...
lastdimgrowsfirst
: Like firstdimgrowsfirst
but starting along the last dimension.
defaultAutoGrid
and family to generate automatic
grids to use for block processing of arraylike objects.
ArrayGrid for the formal representation of grids and viewports.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67  ## 
## makeCappedVolumeBox()
## 
maxdim < c(50, 12) # dimensions of the "constraining box"
## "hypercube" shape:
makeCappedVolumeBox(40, maxdim)
makeCappedVolumeBox(120, maxdim)
makeCappedVolumeBox(125, maxdim)
makeCappedVolumeBox(200, maxdim)
## "scale" shape:
makeCappedVolumeBox(40, maxdim, shape="scale")
makeCappedVolumeBox(160, maxdim, shape="scale")
## "firstdimgrowsfirst" and "lastdimgrowsfirst" shapes:
makeCappedVolumeBox(120, maxdim, shape="firstdimgrowsfirst")
makeCappedVolumeBox(149, maxdim, shape="firstdimgrowsfirst")
makeCappedVolumeBox(150, maxdim, shape="firstdimgrowsfirst")
makeCappedVolumeBox(40, maxdim, shape="lastdimgrowsfirst")
makeCappedVolumeBox(59, maxdim, shape="lastdimgrowsfirst")
makeCappedVolumeBox(60, maxdim, shape="lastdimgrowsfirst")
## 
## makeRegularArrayGridOfCappedLengthViewports()
## 
grid1a < makeRegularArrayGridOfCappedLengthViewports(maxdim, 40)
grid1a
as.list(grid1a) # turn the grid into a list of ArrayViewport objects
table(lengths(grid1a))
stopifnot(maxlength(grid1a) <= 40) # sanity check
grid1b < makeRegularArrayGridOfCappedLengthViewports(maxdim, 40,
"firstdimgrowsfirst")
grid1b
as.list(grid1b) # turn the grid into a list of ArrayViewport objects
table(lengths(grid1b))
stopifnot(maxlength(grid1b) <= 40) # sanity check
grid2a < makeRegularArrayGridOfCappedLengthViewports(maxdim, 120)
grid2a
as.list(grid2a) # turn the grid into a list of ArrayViewport objects
table(lengths(grid2a))
stopifnot(maxlength(grid2a) <= 120) # sanity check
grid2b < makeRegularArrayGridOfCappedLengthViewports(maxdim, 120,
"firstdimgrowsfirst")
grid2b
as.list(grid2b) # turn the grid into a list of ArrayViewport objects
table(lengths(grid2b))
stopifnot(maxlength(grid2b) <= 120) # sanity check
grid3a < makeRegularArrayGridOfCappedLengthViewports(maxdim, 200)
grid3a
as.list(grid3a) # turn the grid into a list of ArrayViewport objects
table(lengths(grid3a))
stopifnot(maxlength(grid3a) <= 200) # sanity check
grid3b < makeRegularArrayGridOfCappedLengthViewports(maxdim, 200,
"firstdimgrowsfirst")
grid3b
as.list(grid3b) # turn the grid into a list of ArrayViewport objects
table(lengths(grid3b))
stopifnot(maxlength(grid3b) <= 200) # sanity check

Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.