all functions - p

 
palette

    palette, filename  
 or palette, source_window_number  
 or palette, red, green, blue, ntsc=1/0  
 or palette, red, green, blue, gray  
 or palette, red, green, blue, query=1  
 or palette, red, green, blue, gray, query=1  


sets (or retrieves with query=1) the palette for the current  
graphics window.  The FILENAME is the name of a Gist palette file;  
the standard palettes are "earth.gp", "stern.gp", "rainbow.gp",  
"heat.gp", "gray.gp", and "yarg.gp".  Use the maxcolors keyword  
in the pldefault command to put an upper limit on the number of  
colors which will be read from the palette in FILENAME.  
In the second form, the palette for the current window is copied  
from the SOURCE_WINDOW_NUMBER.  If the X colormap for the window is  
private, there will still be two separate X colormaps for the two  
windows, but they will have the same color values.  
In the third form, RED, GREEN, and BLUE are 1-D arrays of the same  
length specifying the palette you wish to install; the values  
should vary between 0 and 255, and your palette should have no  
more than 240 colors.  If ntsc=0, monochrome devices (such as most  
laser printers) will use the average brightness to translate your  
colors into gray; otherwise, the NTSC (television) averaging will  
be used (.30*RED+.59*GREEN+.11*BLUE).  Alternatively, you can specify  
GRAY explicitly.  
Ordinarily, the palette is not dumped to a hardcopy file  
(color hardcopy is still rare and expensive), but you can  
force the palette to dump using the window or hcp_file commands.  
See the dump= keyword for the hcp_file and window commands if you  
are having trouble getting color in your hardcopy files.  
Builtin function, documented at i0/graph.i   line 340  

SEE ALSO: window,   fma,   hcp,   pldefault,   plg  
 
 
 

parsedate2

    parsedate -- get numerical version of a timestamp  


  
SYNOPSIS: parsedate, timestamp, day,month,year, hour,minute,second;  
          parsedate(timestamp)  
  
HISTORY: October 30, 1995 by Eric THIEBAUT.  
  DHM modified for yorick-1.6 23/Jan/05  
  
   Interpreted function, defined at i/string.i   line 52  

SEE ALSO: gettime,   getdate,   timestamp  
 
 
 

pause

    pause, milliseconds  
 or pause(milliseconds)  


pause for the specified number of milliseconds of wall clock  
time, or until input arrives from the keyboard.  
If you call pause as a function, the return value is 1  
if the specified number of milliseconds elapsed, or 0 if  
keyboard input caused the pause to abort.  
This is intended for use in creating animated sequences.  
Builtin function, documented at i0/graph.i   line 1441  

 

pc_primitives

    pc_primitives, file  


sets FILE primitive data types to be native to IBM PC.  
Interpreted function, defined at i0/std.i   line 2937  

 

pcen_source

    pcen_source, opac, source, mesh, drat_nomilne  


point centers the SOURCE array (in place) using a complicated  
algorithm involving the OPAC and MESH (from form_mesh and update_mesh).  
If non-nil, DRAT_NOMILNE must have the same format as the  
drat_nomilne option.  
Interpreted function, defined at i0/drat.i   line 1203  

 

pdf

    pdf, name  


writes the picture in the current graphics window to the Adobe PDF  
file NAME+".pdf" (i.e.- the suffix .pdf is added to NAME).  The  
pdf file is intended to be imported into MS PowerPoint or other  
commercial presentation software, or into in pdftex or pdflatex  
documents; it is cropped.  The result should be equivalent to  
running the epstopdf utility (which comes with TeX, see www.tug.org)  
on the eps file produced by the eps command.  
This function requires ghostscript.  Any hardcopy file associated with  
the current window is first closed, but the default hardcopy file is  
unaffected.  As a side effect, legends are turned off and color table  
dumping is turned on for the current window.  
The external variable EPSGS_CMD contains the command to start  
ghostscript.  
Interpreted function, defined at i0/graph.i   line 283  

SEE ALSO: eps,   hcps,   window,   fma,   hcp,   hcp_finish,   plg  
 
 
 

pic3_rays

    rays= pic3_rays(xpict, ypict, ray)  
 or rays= pic3_rays(xpict, ypict, ray, q_up)  


Like picture_rays, but returns rays in the [p,q] representation  
appropriate for hex5_track.  
(XPICT,YPICT) are 2D arrays of pixel corners in the image plane;  
RAY is the central ray (0,0) in (XPICT,YPICT) coordinates, given  
in [p,q] representation (i.e. RAY is a 3-by-2 array).  The  
optional Q_UP is a 3-vector specifying the orientation of the  
y-axis in the picture plane (see theta_up, phi_up in picture_rays  
for a description of default orientation).  Q_UP must not be  
parallel to RAY(,2).  
Interpreted function, defined at i0/hex.i   line 96  

SEE ALSO: hex5_track,   conv3_rays,   picture_rays  
 
 
 

picture_rays

    picture_rays(xpict, ypict, ray)  
 or picture_rays(xpict, ypict, ray, theta_up, phi_up)  


returns 2-D array of rays, one at the center of each zone (which  
represents a pixel here) of the mesh (XPICT, YPICT).  The rays are  
all parallel to the given RAY (a 3, 5, or 6 element vector).  The  
(XPICT, YPICT) coordinates are in the plane perpendicular to the rays,  
with the origin XPICT=YPICT=0 at the given RAY.  
If (THETA_UP, PHI_UP) are given, the +YPICT-axis will lie along the  
projection of the (THETA_UP, PHI_UP) direction into the (XPICT, YPICT)  
plane.  The default (THETA_UP, PHI_UP) is (pi/2, pi/2) -- the +y-axis  
-- unless (THETA, PHI) is the y-axis, in which case it is (pi/2, 0)  
-- the +x-axis.  This matches the DIRT/TDG ray coordinate convention  
in the sense that if RAY is [0,0,theta], then  
(zncen(XPICT),zncen(YPICT)) are the DIRT/TDG (x,y) coordinates for  
the rays.  
If XPICT and YPICT are imax-by-jmax, the returned array will have  
dimensions 5-by-(imax-1)-by-(jmax-1).  That is, "best" coordinates  
are returned.  The (x,y,z) of all of the returned rays will lie in  
the plane perpendicular to the ray passing through the given central  
RAY.  
Interpreted function, defined at i/rays.i   line 265  

SEE ALSO: form_rays,   best_rays,   dirt_rays,   internal_rays,   area  
 
 
 

pix_window

    pix_window, dpi  
 or pix_window, dpi, n  


create a new window for the pixels command with the given DPI  
(dots per inch).  If N is specified, the new window will be  
number N (0-7).  Also sets the pix_dpi variable appropriately.  
pix_window, 75           // makes a small window  
pix_window, 100          // makes a large window  
Interpreted function, defined at i/pixels.i   line 10  

SEE ALSO: pix_dpi,   pixels,   window  
 
 
 

pixels

    pixels, z  
 or pixels, z, dx0, dy0  


  plots the image Z as a cell array -- an array of equal rectangular  
  cells colored according to the 2-D array Z.  The first dimension  
  of Z is plotted along x, the second dimension is along y.  
  If Z is of type char, it is used "as is", otherwise it is linearly  
  scaled to fill the current palette, as with the bytscl function.  
  (See the bytscl function for explanation of top, cmin, cmax.)  
  The image is placed in "coordinate system zero"; that is, outside  
  Yorick's ordinary coordinate system, so zooming and coordinate  
  system changes will not effect it.  Unlike pli, Yorick attempts  
  to make each X pixel correspond to one cell of the Z array.  
  In order to do this, the pix_dpi variable must be set to the  
  dots-per-inch (either 75 or 100) of the X window in which the  
  result of pixels will be displayed (see the dpi keyword of the  
  window command).  
  The default position of the upper left hand corner of the picture  
  is specified by the pix_origin variable.  If DX0 and/or DY0 are  
  present, they adjust this origin for this image.  The units of  
  DX0 and DY0 are in pixels; DY0 is positive downwards.  (However,  
  the 2nd index of the image increases upwards.)  Resizing the X  
  window will probably necessitate changing pix_origin.  
  The following keywords are legal (each has a separate help entry):  
KEYWORDS: top, cmin, cmax  
  Interpreted function, defined at i/pixels.i   line 29  

SEE ALSO: pix_window,   window,   palette,   bytscl,   histeq_scale,   pix_dpi,  
pix_origin  

 
 
 

pl3d

    pl3d  


  
     Interpreted function, defined at i/demo2.i   line 188  

 

pl3surf

    pl3surf, nverts, xyzverts  
 or pl3surf, nverts, xyzverts, values  


Perform simple 3D rendering of an object created by slice3  
(possibly followed by slice2).  NVERTS and XYZVERTS are polygon  
lists as returned by slice3, so XYZVERTS is 3-by-sum(NVERTS),  
where NVERTS is a list of the number of vertices in each polygon.  
If present, the VALUES should have the same length as NVERTS;  
they are used to color the polygon.  If VALUES is not specified,  
the 3D lighting calculation set up using the light3 function  
will be carried out.  Keywords cmin= and cmax= as for plf, pli,  
or plfp are also accepted.  (If you do not supply VALUES, you  
probably want to use the ambient= keyword to light3 instead of  
cmin= here, but cmax= may still be useful.)  
Interpreted function, defined at i/slice3.i   line 1082  

SEE ALSO: pl3tree,   slice3,   slice2,   rot3,   light3  
 
 
 

pl3tree

    pl3tree, nverts, xyzverts  
 or pl3tree, nverts, xyzverts, values, plane  


Add the polygon list specified by NVERTS (number of vertices in  
each polygon) and XYZVERTS (3-by-sum(NVERTS) vertex coordinates)  
to the currently displayed b-tree.  If VALUES is specified, it  
must have the same dimension as NVERTS, and represents the color  
of each polygon.  If VALUES is not specified, the polygons  
are assumed to form an isosurface which will be shaded by the  
current 3D lighting model; the isosurfaces are at the leaves of  
the b-tree, sliced by all of the planes.  If PLANE is specified,  
the XYZVERTS must all lie in that plane, and that plane becomes  
a new slicing plane in the b-tree.    
Each leaf of the b-tree consists of a set of sliced isosurfaces.  
A node of the b-tree consists of some polygons in one of the  
planes, a b-tree or leaf entirely on one side of that plane, and  
a b-tree or leaf on the other side.  The first plane you add  
becomes the root node, slicing any existing leaf in half.  When  
you add an isosurface, it propagates down the tree, getting  
sliced at each node, until its pieces reach the existing leaves,  
to which they are added.  When you add a plane, it also propagates  
down the tree, getting sliced at each node, until its pieces  
reach the leaves, which it slices, becoming the nodes closest to  
the leaves.  
This structure is relatively easy to plot, since from any  
viewpoint, a node can always be plotted in the order from one  
side, then the plane, then the other side.  
This routine assumes a "split palette"; the colors for the  
VALUES will be scaled to fit from color 0 to color 99, while  
the colors from the shading calculation will be scaled to fit  
from color 100 to color 199.  (If VALUES is specified as a char  
array, however, it will be used without scaling.)  
You may specifiy a cmin= or cmax= keyword to affect the  
scaling; cmin is ignored if VALUES is not specified (use the  
ambient= keyword from light3 for that case).  
Interpreted function, defined at i/slice3.i   line 1145  

SEE ALSO: pl3surf,   slice3,   slice2,   rot3,   light3,   split_palette  
 
 
 

pl3tree_prt

    pl3tree_prt  


  
     Interpreted function, defined at i/slice3.i   line 1432  

 

plane3

    plane3(normal, point)  
 or plane3([nx,ny,nz], [px,py,pz])  


returns [nx,ny,nz,pp] for the specified plane.  
Interpreted function, defined at i/slice3.i   line 49  

SEE ALSO: slice3,   mesh3  
 
 
 

plc

    plc, z, y, x, levs=z_values  
 or plc, z, y, x, ireg, levs=z_values  
 or plc, z, levs=z_values  


  plots a contours of Z on the mesh Y versus X.  Y, X, and IREG are  
  as for plm.  The Z array must have the same shape as Y and X.  
  The function being contoured takes the value Z at each point  
  (X,Y) -- that is, the Z array is presumed to be point-centered.  
  The Y, X, and IREG arguments may all be omitted to default to the  
  mesh set by the most recent plmesh call.  
  The LEVS keyword is a list of the values of Z at which you want  
  contour curves.  The default is eight contours spanning the  
  range of Z.  
  See plfc if you want to color the regions between contours.  
  The following keywords are legal (each has a separate help entry):  
KEYWORDS: legend, hide  
          type, width, color, smooth  
          marks, marker, mspace, mphase  
          smooth, triangle, region  
  Builtin function, documented at i0/graph.i   line 482  

SEE ALSO: plg,   plm,   plc,   plv,   plf,   pli,   plt,   pldj,   plfp,   plmesh,   plfc,   contour,  
spann,   limits,   logxy,   range,   fma,   hcp  

 
 
 

plc_label

    plc_label, z,y,x, levs, ndivs=ndivs, opaque=opaque, lmgrid=lmgrid  


call after plc,z,y,x in order to put labels on an existing contour  
plot.  If you are going to set the limits (by means of the limits  
or range functions, or zooming or panning with the mouse), do so  
before calling plc_label, since it reads the current plot limits.  
finds points where numeric contours labels can be drawn   
input  
 z  : array to be contoured  
 y: y coords of array to be contoured  
 x: x coords of array to be contoured  
 levs: contour levels to be labelled  
 ndivs: divide domain into ndvis x ndivs subregions with label in each  
 opaque: if defined, white out below label  
 lmgrid: if defined, draw the subregion perimeters  
 output --- none now  
 authors: Phil Rasch and David Munro  
 last revised: 20 July, 1996 (for 1.3 distribution)  
Interpreted function, defined at i/plclab.i   line 10  

SEE ALSO: plc  
 
 
 

pldefault

    pldefault, key1=value1, key2=value2, ...  


sets default values for the various properties of graphical elements.  
The keywords can be most of the keywords that can be passed to the  
plotting commands:  
  plg:  color, type, width,  
        marks, mcolor, msize, mspace, mphase,  
        rays, rspace, rphase, arrowl, arroww  
  pldj: color, type, width  
  plt:  color, font, height, path, justify, opaque  
  plm:  color, type, width  
  plv:  color, hollow, width, aspect  
  plc:  color, type, width,  
        marks, mcolor, marker, msize, mspace, mphase  
  plf:  edges, ecolor, ewidth  
The initial default values are:  
  color="fg", type="solid", width=1.0 (1/2 point),  
  marks=1, mcolor="fg", msize=1.0 (10 points),  
     mspace=0.16, mphase=0.14,  
  rays=0, arrowl=1.0 (10 points), arroww=1.0 (4 points),  
     rspace=0.13, rphase=0.11375,  
  font="helvetica", height=12.0, justify="NN", opaque=0,  
  hollow= 0, aspect=0.125,  
  edges=0, ecolor="fg", ewidth=1.0 (1/2 point)  
Additional default keywords are:  
  dpi, style, legends  (see window command)  
  palette              (to set default filename as in palette command)  
  maxcolors            (default 200)  
Builtin function, documented at i0/graph.i   line 1301  

SEE ALSO: window,   plsys,   plq,   pledit,   plg  
 
 
 

pldj

    pldj, x0, y0, x1, y1  


  plots disjoint lines from (X0,Y0) to (X1,Y1).  X0, Y0, X1, and Y1  
  may have any dimensionality, but all must have the same number of  
  elements.  
  The following keywords are legal (each has a separate help entry):  
KEYWORDS: legend, hide  
          type, width, color  
  Builtin function, documented at i0/graph.i   line 659  

SEE ALSO: plg,   plm,   plc,   plv,   plf,   pli,   plt,   pldj,   plfp,   limits,   logxy,   range,  
fma,   hcp  

 
 
 

pleb

    pleb, y, x, dx=dx, dy=dy  


  plots Y vs. X with error bars.  
  Uncertainty on X and/or Y are specified with the dx= and dy= keywords.  
  X and Y must have same dimensions, dx= and dy= must be conformable  
  with X (or Y).  Either dx or dy may be nil for no error bar in that  
  direction.  Scalar dx or dy gives equal error bars at all points,  
  dimsof(dx)==dimsof(X), etc., gives different error bar at each point.  
  dx= and dy= may also have a trailing dimension of length 2 in order  
  to get asymmetric error bars; dx(..,1) is the lower error bar length,  
  and dx(..,2) is the upper error bar length in that case, etc.  
  If marker=, msize=, or width= is specified, markers are positioned  
  at X, Y using plmk.  Use the mfill=1 keyword to get filled markers  
  (width>=10. in plmk; width= refers to error bar width in pleb).  
EXAMPLE:  
   x = [0, 1, 2, 3];  
   y = [0, 2, 4, 7];  
   pleb, y, x, dx=0.2, dy=[0.3, 0.4, 0.5, 0.3], mfill=1;  
      Uncertainties on dx are the same for all X, and those  
      on Y are different for each value of Y.  Filled markers  
      will be displayed at (X, Y).  
KEYWORDS: color, width, marker, msize  
   dx     uncertainty on X  
   dy     uncertainty on Y  
  Interpreted function, defined at i0/graph.i   line 1866  

SEE ALSO: plmk,   pldj  
 
 
 

pledit

    pledit, key1=value1, key2=value2, ...  
 or pledit, n_element, key1=value1, key2=value2, ...  
 or pledit, n_element, n_contour, key1=value1, key2=value2, ...  


changes some property of element number N_ELEMENT (and contour  
number N_CONTOUR of that element).  If N_ELEMENT and N_CONTOUR are  
omitted, the default is the most recently added element, or the  
element specified in the most recent plq query command.  
The keywords can be any of the keywords that apply to the current  
element.  These are:  
  plg:  color, type, width,  
        marks, mcolor, marker, msize, mspace, mphase,  
        rays, rspace, rphase, arrowl, arroww,  
        closed, smooth  
  pldj: color, type, width  
  plt:  color, font, height, path, justify, opaque  
  plm:  region, boundary, inhibit, color, type, width  
  plf:  region  
  plv:  region, color, hollow, width, aspect, scale  
  plc:  region, color, type, width,  
        marks, mcolor, marker, msize, mspace, mphase  
        smooth, levs  
(For contours, if you aren't talking about a particular N_CONTOUR,  
 any changes will affect ALL the contours.)  
A plv (vector field) element can also take the scalem  
keyword to multiply all vector lengths by a specified factor.  
A plt (text) element can also take the dx and/or dy  
keywords to adjust the text position by (dx,dy).  
Builtin function, documented at i0/graph.i   line 1266  

SEE ALSO: window,   plsys,   plq,   pldefault,   plg  
 
 
 

plf

    plf, z, y, x  
 or plf, z, y, x, ireg  
 or plf, z  


  plots a filled mesh Y versus X.  Y, X, and IREG are as for plm.  
  The Z array must have the same shape as Y and X, or one smaller  
  in both dimensions.  If Z is of type char, it is used "as is",  
  otherwise it is linearly scaled to fill the current palette, as  
  with the bytscl function.  
  (See the bytscl function for explanation of top, cmin, cmax.)  
  The mesh is drawn with each zone in the color derived from the Z  
  function and the current palette; thus Z is interpreted as a  
  zone-centered array.  
  As for pli and plfp, Z may also be a 3x(NX-1)x(NY-1) array  
  of char giving the [r,g,b] components of each color.  See the  
  color keyword for cautions about using this if you do not have  
  a true color display.  
  The Y, X, and IREG arguments may all be omitted to default to the  
  mesh set by the most recent plmesh call.  
  A solid edge can optionally be drawn around each zone by setting  
  the EDGES keyword non-zero.  ECOLOR and EWIDTH determine the edge  
  color and width.  The mesh is drawn zone by zone in order from  
  IREG(2+imax) to IREG(jmax*imax) (the latter is IREG(imax,jmax)),  
  so you can achieve 3D effects by arranging for this order to  
  coincide with back-to-front order.  If Z is nil, the mesh zones  
  are filled with the background color, which you can use to  
  produce 3D wire frames.  
  The following keywords are legal (each has a separate help entry):  
KEYWORDS: legend, hide  
          region, top, cmin, cmax, edges, ecolor, ewidth  
  Builtin function, documented at i0/graph.i   line 566  

SEE ALSO: plg,   plm,   plc,   plv,   plf,   pli,   plt,   pldj,   plfp,   plmesh,   limits,   logxy,  
range,   fma,   hcp,   palette,   bytscl,   histeq_scale  

 
 
 

plfc

    plfc, z, y, x, levs=z_values  
 or plfc, z, y, x, ireg, levs=z_values  


  fills contours of Z on the mesh Y versus X.  Y, X, and IREG are  
  as for plm.  The Z array must have the same shape as Y and X.  
  The function being contoured takes the value Z at each point  
  (X,Y) -- that is, the Z array is presumed to be point-centered.  
  The LEVS keyword is a list of the values of Z at which you want  
  contour curves.  These curves divide the mesh into numberof(LEVS)+1  
  regions, each of which is filled with a solid color.  If LEVS is  
  nil, up to 19 "nice" equally spaced level values spanning the  
  range of Z are selected.  The level values actually used are  
  always output to the external variable plfc_levs.  
  If you specify levs=, you may also specify colors= a list of  
  colors of length numberof(LEVS)+1.  The colors should be indices  
  into the current palette.  If you do not specify them, equally  
  spaced colors are chosen.  
  The following keywords are legal (each has a separate help entry):  
KEYWORDS: triangle, region  
  Interpreted function, defined at i0/graph.i   line 1658  

SEE ALSO: plg,   plm,   plc,   plv,   plf,   pli,   plt,   pldj,   plfp,   plmesh,   color_bar,  
spann,   contour,   limits,   logxy,   range,   fma,   hcp  

 
 
 

plfp

    plfp, z, y, x, n  


  plots a list of filled polygons Y versus X, with colors Z.  
  The N array is a 1D list of lengths (number of corners) of the  
  polygons; the 1D colors array Z has the same length as N.  The  
  X and Y arrays have length sum(N).  
  If Z is of type char, it is used "as is", otherwise it is linearly  
  scaled to fill the current palette, as with the bytscl function.  
  If Z is nil, the background color is used for every polygon.  
  (See the bytscl function for explanation of top, cmin, cmax.)  
  As for plf and pli, Z may also be a 3-by-numberof(N) array of  
  char giving the [r,g,b] components of each color.  See the  
  color keyword for cautions about using this if you do not have  
  a true color display.  
  As a special case, if n(2:)==1, the first polygon is assumed  
  to have NDC coordinates, while the remaining individual X and Y  
  values are in world coordinates.  The first polygon is drawn  
  numberof(n)-1 times, with its (0,0) placed at each of the  
  individual (X,Y) values in succession.  This is a hack to enable  
  plotting of more elaborate data markers than plg,type=0 -- see  
  the plmk function for details.  
  The following keywords are legal (each has a separate help entry):  
KEYWORDS: legend, hide, top, cmin, cmax, edges, ecolor, ewidth  
  Builtin function, documented at i0/graph.i   line 602  

SEE ALSO: plg,   plm,   plc,   plv,   plf,   pli,   plt,   pldj,   plfc,   limits,   logxy,   range,  
fma,   hcp  

 
 
 

plg

    plg, y, x  
 or plg, y  


  plots a graph of Y versus X.  Y and X must be 1-D arrays of equal  
  length; if X is omitted, it defaults to [1, 2, ..., numberof(Y)].  
  A keyword n=[n1,n2,n3,...nN] can be used to add N curves.  In this  
  case, sum(n) must be numberof(y).  
  The following keywords are legal (each has a separate help entry):  
KEYWORDS: legend, hide  
          type, width, color, closed, smooth  
          marks, marker, mspace, mphase  
          rays, arrowl, arroww, rspace, rphase  
  Builtin function, documented at i0/graph.i   line 418  

SEE ALSO: plg,   plm,   plc,   plv,   plf,   pli,   plt,   pldj,   plfp,   plmk,   limits,   logxy,  
range,   fma,   hcp  

 
 
 

pli

    pli, z  
 or pli, z, x1, y1  
 or pli, z, x0, y0, x1, y1  


  plots the image Z as a cell array -- an array of equal rectangular  
  cells colored according to the 2-D array Z.  The first dimension  
  of Z is plotted along x, the second dimension is along y.  
  If Z is of type char, it is used "as is", otherwise it is linearly  
  scaled to fill the current palette, as with the bytscl function.  
  (See the bytscl function for explanation of top, cmin, cmax.)  
  As for plf and plfp, Z may also be a 3D array with 1st dimension 3  
  of char giving the [r,g,b] components of each color.  See the  
  color keyword for cautions about using this if you do not have  
  a true color display.  
  If X1 and Y1 are given, they represent the coordinates of the  
  upper right corner of the image.  If X0, and Y0 are given, they  
  represent the coordinates of the lower left corner, which is at  
  (0,0) by default.  If only the Z array is given, each cell will be  
  a 1x1 unit square, with the lower left corner of the image at (0,0).  
  The following keywords are legal (each has a separate help entry):  
KEYWORDS: legend, hide, top, cmin, cmax  
  Builtin function, documented at i0/graph.i   line 632  

SEE ALSO: plg,   plm,   plc,   plv,   plf,   pli,   plt,   pldj,   plfp,   limits,   logxy,   range,  
fma,   hcp,   palette,   bytscl,   histeq_scale  

 
 
 

plm

    plm, y, x, boundary=0/1, inhibit=0/1/2  
 or plm, y, x, ireg, boundary=0/1, inhibit=0/1/2  
 or plm, boundary=0/1, inhibit=0/1/2  


  plots a mesh of Y versus X.  Y and X must be 2-D arrays with equal  
  dimensions.  If present, IREG must be a 2-D region number array  
  for the mesh, with the same dimensions as X and Y.  The values of  
  IREG should be positive region numbers, and zero for zones which do  
  not exist.  The first row and column of IREG never correspond to any  
  zone, and should always be zero.  The default IREG is 1 everywhere  
  else.  If present, the BOUNDARY keyword determines whether the  
  entire mesh is to be plotted (boundary=0, the default), or just the  
  boundary of the selected region (boundary=1).  If present, the  
  INHIBIT keyword causes the (X(,j),Y(,j)) lines to not be plotted  
  (inhibit=1), or the (X(i,),Y(i,)) lines to not be plotted (inhibit=2).  
  By default (inhibit=0), mesh lines in both logical directions are  
  plotted.  
  The Y, X, and IREG arguments may all be omitted to default to the  
  mesh set by the most recent plmesh call.  
  The following keywords are legal (each has a separate help entry):  
KEYWORDS: legend, hide  
          type, width, color  
          region  
  Builtin function, documented at i0/graph.i   line 434  

SEE ALSO: plg,   plm,   plc,   plv,   plf,   pli,   plt,   pldj,   plfp,   plmesh,   limits,   logxy,  
range,   fma,   hcp  

 
 
 

plmesh

    plmesh, y, x, ireg, triangle=tri_array  
 or plmesh  


sets the default mesh for subsequent plm, plc, plv, and plf calls.  
In the second form, deletes the default mesh (until you do this,  
or switch to a new default mesh, the default mesh arrays persist and  
take up space in memory).  The Y, X, and IREG arrays should all be  
the same shape; Y and X will be converted to double, and IREG will  
be converted to int.  If IREG is omitted, it defaults to IREG(1,)=  
IREG(,1)= 0, IREG(2:,2:)=1; that is, region number 1 is the whole  
mesh.  The triangulation array TRI_ARRAY is used by plc; the  
correspondence between TRI_ARRAY indices and zone indices is the  
same as for IREG, and its default value is all zero.  
The IREG or TRI_ARRAY arguments may be supplied without Y and X  
to change the region numbering or triangulation for a given set of  
mesh coordinates.  However, a default Y and X must already have been  
defined if you do this.  
If Y is supplied, X must be supplied, and vice-versa.  
Builtin function, documented at i0/graph.i   line 461  

SEE ALSO: plm,   plc,   plv,   plf,   plfp  
 
 
 

plmk

    plmk, y,x  


Make a scatter plot of the points Y versus X.  If X is nil,  
it defaults to indgen(numberof(Y)).  By default, the marker  
cycles through 7 predefined marker shapes.  You may specify a shape  
using the marker= keyword, line width using the width= keyword (you  
get solid fills for width>=10), color using the color= keyword.  
You can also use the msize= keyword to scale the marker (default  
msize=1.0).  You can change the default width, color, or msize  
using the plmk_default function.  
The predefined marker= values are:  
marker=  
  1        square  
  2        cross  
  3        triangle  
  4        circle  
  5        diamond  
  6        cross (rotated 45 degrees)  
  7        triangle (upside down)  
You may also put marker=[xm,ym] where xm and ym are vectors  
of NDC coordinates to design your own custom marker shapes.  
Interpreted function, defined at i0/graph.i   line 1553  

SEE ALSO: plmk_default,   plg,   pleb  
 
 
 

plmk_default

    plmk_default, color=color, msize=msize, width=width  


sets default color, msize, and width values for plmk.  Use  
width=10 to get solid fills.  With no parameters, plmk_default  
restores the initial default values.  
Interpreted function, defined at i0/graph.i   line 1622  

SEE ALSO: plmk  
 
 
 

plq

    plq  
 or plq, n_element  
 or plq, n_element, n_contour  
 or legend_list= plq()  
 or properties= plq(n_element, n_contour)  


Called as a subroutine, prints the list of legends for the current  
coordinate system (with an "(H)" to mark hidden elements), or prints  
a list of current properties of element N_ELEMENT (such as line type,  
width, font, etc.), or of contour number N_CONTOUR of element number  
N_ELEMENT (which must be contours generated using the plc command).  
Called as a function, returns either the list of legend strings, or a  
list of pointers to the values of the various element properties.  
Elements and contours are both numbered starting with one; hidden  
elements or contours are included in this numbering.  
The PROPERTIES list returned by plq is a list of pointers to the  
relevent properties for the specified graphical element.  Each  
possible property has a particular index in the returned PROPERTIES  
list as follows:  
*PROPERTIES(1)   int([element type (0 for none, 1 for plg, 2 for pldj,  
                                    3 for plt, 4 for plm, 5 for plf,  
                                    6 for plv, 7 for plc, 8 for pli,  
                                    9 for plfp),  
                      hide flag])  
*PROPERTIES(2)   string(legend)  
*PROPERTIES(3)   int array, depends on type (names match keywords):  
  1 plg:  [color, type, marks, mcolor, marker, rays, closed, smooth]  
  2 pldj: [color, type]  
  3 plt:  [color, font, path, justify, opaque]  
  4 plm:  [color, type, region, boundary, inhibit]  
  5 plf:  [region, edges, ecolor, rgb_flag]  
  6 plv:  [region, color, hollow]  
  7 plc:  [region, color, type, marks, mcolor, marker, smooth]  
  8 pli:  nil  
  9 plfp: [edges, ecolor, rgb_flag]  
*PROPERTIES(4)   double array, depends on type (names match keywords):  
  1 plg:  [width, msize, mspace, mphase, rspace, rphase, arrowl, arroww]  
  2 pldj: [width]  
  3 plt:  [height, x, y]  
  4 plm:  [width]  
  5 plf:  [ewidth]  
  6 plv:  [width, aspect, scale]  
  7 plc:  [width, msize, mspace, mphase]  
  8 pli:  [x0, x1, y0, y1]  
*PROPERTIES(5)   long array, depends on type (names match arguments):  
  1 plg:  [npoints, &x, &y]  
  2 pldj: [npoints, &x0, &y0, &x1, &y1]  
  3 plt:  [nchars, &text]  
  4 plm:  [imax, jmax, &x, &y, &ireg]  
  5 plf:  [imax, jmax, &x, &y, &ireg, &colors]  
  6 plv:  [imax, jmax, &x, &y, &ireg, &vx, &vy]  
  7 plc:  [imax, jmax, &x, &y, &ireg, &z, &triangle, nlevs, &levs]  
  8 pli:  [imax, jmax, &colors]  
  9 plfp: [n, &x, &y, &colors, &pn]  
You can use the reshape function to peek at the data at the addresses  
returned in PROPERTIES(5) as longs.  The appropriate data types are:  
char for text, int for ireg, short for triangle, char for colors, and  
double for everything else.  In a plf, colors is (imax-1)-by-(jmax-1).  
Although PROPERTIES(5) returns pointers to the data plotted, attempting  
to poke new values into this data will not produce immediate changes  
to your plot, since the graphics package does not realize that anything  
has changed.  Use pledit to make changes to plotted elements.  
The plq function always operates on the current coordinate system  
in the current graphics window; use window and plsys to change these.  
Builtin function, documented at i0/graph.i   line 1197  

SEE ALSO: window,   plsys,   pledit,   pldefault,   plg  
 
 
 

plray

    plray, ray  


where RAY is a vector of length 5 representing [x, y, z, theta, phi]  
-- a point (x,y,z) on the ray, and the ray direction (theta,phi)  
relative to the z-axis.  The ray hyperbola is plotted with the  
z-axis horizontal.  The portion of the ray plotted is determined  
by the plray_lims command, which must be issued prior to the first  
plray.  
The 3 and 6 component ray formats are also accepted.  
Interpreted function, defined at i/rays.i   line 340  

SEE ALSO: plray_lims,   dirt_rays,   internal_rays  
 
 
 

plray_lims

    plray_lims, zmin, zmax, rmax  


sets the (z,r) coordinate limits for the plray command.  Subsequent  
rays will be clipped to the region from z=ZMIN to z=ZMAX, and from  
r=0 to r=RMAX.  
Interpreted function, defined at i/rays.i   line 475  

SEE ALSO: plray  
 
 
 

plsys

    plsys, n  
 or plsys(n)   or   plsys()  


sets the current coordinate system to number N in the current  
graphics window.  If N equals 0, subsequent elements will be  
plotted in absolute NDC coordinates outside of any coordinate  
system.  The default style sheet "work.gs" defines only a single  
coordinate system, so the only other choice is N equal 1.  You  
can make up your own style sheet (using a text editor) which  
defines mulitple coordinate systems.  You need to do this if  
you want to display four plots side by side on a single page,  
for example.  The standard style sheets "work2.gs" and "boxed2.gs"  
define two overlayed coordinate systems with the first labeled  
to the right of the plot and the second labeled to the left of  
the plot.  When using overlayed coordinate systems, it is your  
responsibility to ensure that the x-axis limits in the two  
systems are identical.  
Return value is coordinate system setting before this call;  
input n may be nil to retrieve this without changing it.  Return  
value can be <0 if the information is unavailable for some reason.  
Builtin function, documented at i0/graph.i   line 392  

SEE ALSO: window,   limits,   plg  
 
 
 

plt

    plt, text, x, y, tosys=0/1  


  plots TEXT (a string) at the point (X,Y).  The exact relationship  
  between the point (X,Y) and the TEXT is determined by the  
  justify keyword.  TEXT may contain newline ("\n") characters  
  to output multiple lines of text with a single call.  The  
  coordinates (X,Y) are NDC coordinates (outside of any coordinate  
  system) unless the tosys keyword is present and non-zero, in  
  which case the TEXT will be placed in the current coordinate  
  system.  However, the character height is NEVER affected by the  
  scale of the coordinate system to which the text belongs.  
  Note that the pledit command takes dx and/or dy keywords to  
  adjust the position of existing text elements.  
  The characters ^, _, and ! are treated specially in TEXT.  
  ^ begins a superscript, _ begins a subscript, and ! causes the  
  following character to be rendered using the symbol font.  As  
  special cases, !^, !_, and !! render the ^, _, and ! characters  
  themselves.  However, if ! is the final character of TEXT  
  (or immediately before a newline in multiline text), it  
  loses its special meaning.  TEXT has just three modes: ordinary,  
  superscript, and subscript.  A ^ character enters superscript  
  mode from ordinary or subscript mode, and returns to ordinary  
  mode from superscript mode.  A _ enters subscript mode, except  
  from subscript mode it returns to ordinary mode.  For example,  
  Euclid said, "!pr^2", and Einstein said, "G_!s!n_=8!pT_!s!n".  
  One final special escape: !] produces the ^ character in the  
  symbol font (it is a perpendicular sign, whereas ] is just ]).  
  The following keywords are legal (each has a separate help entry):  
KEYWORDS: legend, hide  
          color, font, height, opaque, orient, justify  
  Builtin function, documented at i0/graph.i   line 671  

SEE ALSO: plt1,   plg,   plm,   plc,   plv,   plf,   pli,   plt,   pldj,   plfp,   pledit,   limits,  
range,   fma,   hcp,   pltitle  

 
 
 

plt1

    plt1, text, x, y  


  same as plt, but TEXT, X, and Y may be arrays to plot multiple  
  strings.  The tosys= keyword works as for plt.  
KEYWORDS: color, font, height, opaque, orient, justify  
  Interpreted function, defined at i0/graph.i   line 707  

SEE ALSO: plt  
 
 
 

pltitle

    pltitle, title  


Plot TITLE centered above the coordinate system for any of the  
standard Gist styles.  You may want to customize this for other  
plot styles.  
Interpreted function, defined at i0/graph.i   line 725  

SEE ALSO: plt,   xytitles  
 
 
 

plug_dir

    plug_dir, dirname  


causes plug_in to look in DIRNAME for dynamic library files, in  
addition to Y_HOME/lib.  DIRNAME may be an array of strings to  
search multiple directories.  
Builtin function, documented at i0/std.i   line 2391  

SEE ALSO: plug_in  
 
 
 

plug_in

    plug_in, "pkgname"  


Dynamically link to yorick package "pkgname".  The compiled  
functions of the package are in a shared object file; these  
files have a naming convention which differs slightly on different  
platforms.  On most UNIX systems (including Mac OS X), the  
binary file is named pkgname.so.  On MS Windows systems, the  
binary file is named pkgname.dll.  On HPUX systems, the name is  
pkgname.sl.  The "pkgname" argument to plug_in does not include  
this platform-dependent file extension, so that the yorick code  
containing the plug_in command will be portable.  
After dynamically linking the compiled routines in the pkgname  
shared object binary, yorick runs the function (which must be  
present) yk_pkgname in order to initialize the package.  At  
minimum yk_pkgname returns lists of the new compiled (builtin)  
functions defined by the package and the names by which they  
may be invoked by interpreted code.  
Additionally, yk_pkgname returns a list of files to be included  
containing interpreted wrapper functions for the compiled routines  
and DOCUMENT comments for the help system.  Conventionally, these  
include files are located in the Y_SITE/i0 or Y_HOME/lib directories,  
and the name (of one) of the file(s) is pkgname.i.  If the package  
has been statically linked (i.e.- not by plug_in), these .i files  
are automatically included when yorick starts.  However, if the  
package is loaded dynamically by plug_in, you must arrange to  
include one or all of these .i files as you would any interpreted  
package (e.g.- by the autoload or require functions, or manually).  
The upshot of all this is that the plug_in function is designed  
to be placed at the top of the .i files associated with the  
package.  You are not supposed to call plug_in manually, rather  
when you #include (or autoload) a .i file which needs compiled  
functions, that .i file invokes plug_in to perform any required  
dynamic linking to compiled code.  Thus, the end user does not  
do anything differently for a package that uses dynamically loaded  
compiled code, than for a purely interpreted package.  
Yorick dynamic library support solves a distribution problem.  For  
debugging and creating compiled packages for your own use, you want  
to build special versions of yorick with your compiled routines  
statically linked.  In order to support platforms on which there  
is no dynamic linking, if you call the plug_in function for a  
package that is statically linked (e.g.- plug_in,"yor"), the  
function will silently become a no-op when it notices that the  
"pkgname" package was already loaded at startup.  
Builtin function, documented at i0/std.i   line 2339  

SEE ALSO: plug_dir,   include,   require,   autoload  
 
 
 

plv

    plv, vy, vx, y, x, scale=dt  
 or plv, vy, vx, y, x, ireg, scale=dt  
 or plv, vy, vx, scale=dt  


  plots a vector field (VX,VY) on the mesh (X,Y).  Y, X, and IREG are  
  as for plm.  The VY and VX arrays must have the same shape as Y and X.  
  The Y, X, and IREG arguments may all be omitted to default to the  
  mesh set by the most recent plmesh call.  
  The SCALE keyword is the conversion factor from the units of  
  (VX,VY) to the units of (X,Y) -- a time interval if (VX,VY) is a velocity  
  and (X,Y) is a position -- which determines the length of the  
  vector "darts" plotted at the (X,Y) points.  If omitted, SCALE is  
  chosen so that the longest ray arrows have a length comparable  
  to a "typical" zone size.  
  You can use the scalem keyword in pledit to make adjustments to the  
  SCALE factor computed by default.  
  The following keywords are legal (each has a separate help entry):  
KEYWORDS: legend, hide  
          type, width, color, smooth  
          marks, marker, mspace, mphase  
          triangle, region  
  Builtin function, documented at i0/graph.i   line 541  

SEE ALSO: plg,   plm,   plc,   plv,   plf,   pli,   plt,   pldj,   plfp,   plmesh,   pledit,  
limits,   logxy,   range,   fma,   hcp  

 
 
 

plwf

    plwf, z  
 or plwf, z, y,x  


  plots a 3-D wire frame of the given Z array, which must have the  
  same dimensions as the mesh (X, Y).  If X and Y are not given, they  
  default to the first and second indices of Z, respectively.  
  The drawing order of the zones is determined by a simple "painter's  
  algorithm", which works fairly well if the mesh is reasonably near  
  rectilinear, but can fail even then if the viewpoint is chosen to  
  produce extreme fisheye perspective effects.  Look at the resulting  
  plot carefully to be sure the algorithm has correctly rendered the  
  model in each case.  
KEYWORDS: fill   -- optional colors to use (default is to make zones  
                    have background color), same dimension options as  
                    for z argument to plf function  
          shade  -- set non-zero to compute shading from current  
                    3D lighting sources  
          edges  -- default is 1 (draw edges), but if you provide fill  
                    colors, you may set to 0 to supress the edges  
          ecolor, ewidth  -- color and width of edges  
          cull   -- default is 1 (cull back surfaces), but if you want  
                    to see the "underside" of the model, set to 0  
          scale  -- by default, Z is scaled to "reasonable" maximum  
                    and minimum values related to the scale of (X,Y).  
                    This keyword alters the default scaling factor, in  
                    the sense that scale=2.0 will produce twice the  
                    Z-relief of the default scale=1.0.  
          cmax   -- the ambient= keyword in light3 can be used to  
                    control how dark the darkest surface is; use this  
                    to control how light the lightest surface is  
                    the lightwf routine can change this parameter  
                    interactively  
  Interpreted function, defined at i/plwf.i   line 13  

SEE ALSO: lightwf,   plm,   plf,   orient3,   light3,   window3,   limit3  
 
 
 

png_map

    image = png_map(full_image, nfo)  


  maps FULL_IMAGE to png-stored values, according to the  
  pCAL information in NFO.  
  The NFO parameter may be either the array of pointers as returned by  
  png_read, or an array of reals as for *nfo(4) (see png_read).  
  You can use png_pcal to compute an NFO mapping tailored to IMAGE.  
  
   Interpreted function, defined at i0/png.i   line 367  

SEE ALSO: png_pcal,   png_scale,   png_read,   png_write  
 
 
 

png_pcal

    pcal = png_pcal(image)  
 or pcal = png_pcal(image, depth)  


  
KEYWORDS: cmin=, cmax=, res=, log=  
  cmin, cmax   clip image to these minimum and maximum values  
  res          image "resolution", or minimum step size  
  log          non-zero forces log map if image all positive  
               or all negative  
  
  returns 8-element pCAL png mapping for IMAGE, appropriate for  
  use as pcal= keyword in png_write.  The png_map function applies  
  pcal to produce the as-stored char or short array; the png_scale  
  function applies pcal to recreate the original IMAGE from the  
  as-stored array.  
  
  There are three kinds of pCAL mappings: linear, log, and asinh.  
  Linear and log scales are familiar; the asinh scale is a modified  
  log scale that can be used for arrays that change sign:  
  
  linear:  image = a*stored + b  
  log:     image = b * exp(a*stored)  
  asinh:   image = b * sinh(a*(stored - mx/2))  
  
  You can specify a bit DEPTH for the stored array, which can be  
  between 2 and 16 inclusive.  For bit depth 1, just threshhold  
  the image (image>const_thresh).  By default, for integer IMAGE,  
  DEPTH is the smallest depth that covers the range of IMAGE values,  
  but never more than 16.  For float or double IMAGE, the default  
  DEPTH is always 16.  
  
  If IMAGE has any integer data type, the pCAL mapping will always  
  be linear; use IMAGE+0.0 if you want a log or asinh map.  
  
  The png pCAL definition allows b<0 in the log scale, so it can  
  be used for image values that are either all positive or all  
  negative.  In either case, the integer stored values take equal  
  ratio steps from the minimum to the maximum image values (or  
  cmin and cmax).  For the linear scale, of course, each step in  
  the stored integer represents an constant increment in the image  
  value.  The asinh scale is a logarithmic ratio scale for stored  
  values near 0 or mx (the maximum stored integer value), reverting  
  to a linear scale near the middle of its range where the image  
  value passes through zero.  
  
  To get the asinh scale, you must specify the res= keyword:  
  You must specify the smallest step size for the asinh scale by  
  setting the res= keyword.  For a log scale, the res= value will  
  replace the actual minimum array value or cmin value (or cmax if  
  image is all negative values), clipping any smaller absolute values.  
  If mx is large enough to cover the whole scale with the given res=  
  value in linear steps, a linear scale will be used.  
  
  You can specify log=1 to force log scaling if image is all  
  positive or all negative.  
  
   Interpreted function, defined at i0/png.i   line 430  

SEE ALSO: png_scale,   png_write,   png_read  
 
 
 

png_read

    image = png_read(filename)  
 or image = png_read(filename, depth, nfo)  


  
Read png file FILENAME.  The returned IMAGE is either an array  
of char or short, unless type= is specified (see below).  
The IMAGE may have a leading dimension of 2 if it is gray+alpha,  
3 if it is rgb, or 4 if it is rgba.  
In the second form, DEPTH and NFO must be simple variable references.  
NFO is set to a pointer array to descriptive information by png_read:  
*nfo(1) = PLTE 3-by-N char array of palette rgb values  
*nfo(2) = tRNS char array of alpha (opacity) values corresponding  
                to PLTE or single gray or rgb short value (transparent)  
*nfo(3) = bKGD single gray or rgb short value  
             note that bKGD and the single value tRNS have the same  
             range and meaning as a pixel value, in particular,  
             for a pseudocolor image, they represent a palette index  
*nfo(4) = pCAL [x0,x1,max,eqtype,p0,p1,p2,p3,...] physical pixel value  
                relation between pixel value and physical value  
                array of double values (see below for meaning)  
*nfo(5) = pCAL [calibration_name, unit_name] string pair  
*nfo(6) = sCAL [wide,high,sunit] physical scale of pixels as scanned  
                or printed, sunit 1.0 for meters or 2.0 for radians  
*nfo(7) = pHYs long [n_xpix,n_ypix,per_meter] values  
                n_xpix,n_ypix are pixels per unit,  
                per_meter is 0 for aspect ratio only, 1 for meters  
*nfo(8) = tEXt (or zTXt or iTXt) 2-by-N string array of (key,text)  
*nfo(9) = tIME string value image modification time  
any or all of these NFO values may be nil.  The four character  
designators (e.g. PLTE) are the png chunk names for the corresponding  
information.  
  
pCAL array of doubles has following meaning:  
   max = 2^depth-1  
   original = long( floor( (image(i)*(x1-x0)+long(max)/2) / max ) ) + x0  
   image(i) = long( floor( ((original-x0)*max+long(x1-x0)/2) / (x1-x0) ) )  
   eqtype = 0   physical = p0 + p1*original/(x1-x0)  
   eqtype = 1   physical = p0 + p1*exp(p2*original/(x1-x0))  
   eqtype = 2   physical = p0 + p1*p2^(original/(x1-x0))  
   eqtype = 3   physical = p0 + p1*sinh(p2*(original-p3)/(x1-x0))  
  
If the type= keyword is non-nil and non-zero, the returned value  
is as if png_scale(image, nfo, type=type), which scales the raw image  
according to the information in pCAL, or is a no-op if pCAL does  
not exist.  
  
   Interpreted function, defined at i0/png.i   line 8  

SEE ALSO: png_write,   png_scale  
 
 
 

png_scale

    image = png_scale(raw_image, nfo, type=type)  


  scales RAW_IMAGE to type TYPE (char, short, int, long, float, or  
  double, according to the pCAL information in NFO.  The NFO  
  parameter may be either the array of pointers returned by  
  png_read, or an array of reals as for *nfo(4) (see png_read).  
  
   Interpreted function, defined at i0/png.i   line 291  

SEE ALSO: png_map,   png_read,   png_write  
 
 
 

png_write

    png_write, filename, image  
 or png_write, filename, image, depth, nfo  


  
Write png file FILENAME containing IMAGE at the specified DEPTH.  
The default DEPTH is 8 bits.  For grayscale IMAGE, 1<=DEPTH<=16,  
otherwise depth is 8 or 16.  If NFO is specified, it is an  
array of pointers as described in the help for png_read.  You can  
optionally specify the same information as keywords:  
  palette=[[r0,g0,b0],[r1,g1,b1],...]  
  alpha=[a0,a1,...] if image is simple 2D and palette specified  
  trns=value       if image is gray (no palette)  
       [r,g,b]     if image is color  
       illegal if image has alpha channel  
  bkgd=value or [r,g,b] suggested background color  
    note that bkgd and trns have the same range and meaning as a  
    pixel value, in particular, for a pseudocolor, a palette index  
  pcal=[x0,x1,max,eqtype,p0,p1,p2,p3,...]  
  pcals=[calibration_name, unit_name]  as for pCAL (see png_read)  
  scal=[wide,high,sunit]  as for sCAL (see png_read)  
  phys=[n_xpix,n_ypix,per_meter]  as for pHYs (see png_read)  
  text=[[key1,text1],[key1,text1],...]  
    recognized keys are: Title, Author, Description, Copyright,  
    Creation Time, Software, Disclaimer, Warning, Source (a device),  
    and Comment  
  time=string  modification time (timestamp() is default)  
When both NFO and keywords are supplied, the keywords override any  
corresponding value in nfo.  
  
If IMAGE has a data type other than short or char, a default pCAL  
will be supplied if it is a simple grayscale (2D) image.  If DEPTH  
is not supplied, it defaults to 8 if IMAGE is type char and/or if  
a palette is supplied, or to 16 otherwise.  
  
   Interpreted function, defined at i0/png.i   line 76  

SEE ALSO: png_read,   png_map  
 
 
 

pnm_colorize

    color_image= pnm_colorize(image)  


colorize the width-by-height array IMAGE, returning a 3-by-  
width-by-height array, suitable for use with pnm_write.  
The current graphics palette is used to perform the colorization.  
The keywords cmin=, cmax=, and top= are recognized and have the  
same meaning as for the plf, pli, and bytscl functions.  
Interpreted function, defined at i/pnm.i   line 416  

SEE ALSO: pnm_write,   bytscl  
 
 
 

pnm_display

    pnm_display, image  


Attempt to display the IMAGE with the pli command and a pseudo-color  
palette.  The IMAGE must be a 3-by-width-by-height array of RGB  
pixel values.  If called as a function, the return value is the  
width-by-height array of pixels which index into the new palette.  
The palette is returned as the external variables red, green, and  
blue.  The new palette is both coarse and slow to compute.  
The size= keyword can be used to set the palette size.  The default  
is 200 colors, the size of all the distribution palettes.  
The flip=1 keyword can be used to flip the image bottom for top.  
The square=1 limits flag is set; use  
   limits,square=0  
to return to the default non-square plot limits.  
Interpreted function, defined at i/pnm.i   line 219  

SEE ALSO: pnm_read  
 
 
 

pnm_read

    image= pnm_read(filename)  
 or image= pnm_read(filename, noflip)  


read a PBM, PGM, or PPM image from FILENAME.  PBM and PGM files  
result in width-by-height arrays; PPM files result in 3-by-width-  
by-height arrays.  If NOFLIP is present and non-zero, the returned  
image is in exactly the order stored in FILENAME.  Otherwise, the  
height dimension is reversed, since images in the files read top  
to bottom, while the Yorick image plotting commands go bottom to  
top.  
Interpreted function, defined at i/pnm.i   line 35  

SEE ALSO: pnm_display,   pnm_write  
 
 
 

pnm_write

    pnm_write, image, filename)  
 or pnm_write, image, filename, noflip)  


write IMAGE to a PBM, PGM, or PPM file called FILENAME.  If  
NOFLIP is present and non-zero, the image in FILENAME is stored  
in exactly the order of IMAGE in memory.  Otherwise, the height  
dimension is reversed, since images in the files read top to  
bottom, while the Yorick image plotting commands go bottom to  
top.  
If IMAGE is a 3-by-width-by-height array, a PPM will be written.  
Otherwise, IMAGE must be a width-by-height array.  If IMAGE  
contains at most two distinct values, a PBM will be written,  
otherwise a PGM.  You can force a PGM using the bits=8 keyword.  
If IMAGE is of type char, it will be used as is, otherwise it  
will be scaled to the range 0 to 255.  (Note that for a PPM, this  
means the largest single rgb component value sets the scale.)  
If the text= keyword is present and non-zero, a text PNM file  
will be written; the default is to write a binary or raw PNM.  
If the noscale=1 keyword is supplied, the IMAGE will not be  
scaled to the range 0 to 255.  In this case, the IMAGE must  
have an integer data type with minimum value >=0.  Note that  
if max(image)>255, a text PGM or PPM file will be written  
(overriding the text= keyword).  Raw PNM is char-only.  
If bits= is not specified, then noscale=1 forces pnm_write to  
guess the value you intended the brightest component value.  
If IMAGE is not color, the guess is bits=1 if there are only  
1 or 2 values, bits=8 if max(IMAGE)<256, and bits=16 otherwise.  
For color IMAGE, the guess is either bits=8 or bits=16.  
Normally, PGM and PPM files have a pixel or color component  
size of 8 bits, so they run from 0 (darkest) to 255 (brightest).  
With bits= you can force a different maximum value.  Use bits=8  
to force a binary IMAGE to be written as a PGM.  The largest  
legal value of bits is 16, the smallest is 1.  
Interpreted function, defined at i/pnm.i   line 287  

SEE ALSO: pnm_colorize,   pnm_read  
 
 
 

poisson

    poisson(navg)  


returns a Poisson distributed random value with mean NAVG.  
(This is the integer number of events which actually occur  
 in some time interval, when the probability per unit time of  
 an event is constant, and the average number of events during  
 the interval is NAVG.)  
The return value has the same dimensions as the input NAVG.  
The return value is an integer, but its type is double.  
The algorithm is taken from Numerical Recipes by Press, et. al.  
Interpreted function, defined at i/random.i   line 524  

SEE ALSO: random,   random_n  
 
 
 

poly

    poly(x, a0, a1, a2, ..., aN)  


returns the polynomial  A0 + A1*x + A2*x^2 + ... + AN*X^N  
The data type and dimensions of the result, and conformability rules  
for the inputs are identical to those for the expression.  
Builtin function, documented at i0/std.i   line 702  

 

popen

    f= popen(command, mode)  


opens a pipe to COMMAND, which is executed as with the system  
function.  If MODE is 0, the returned file handle is open for  
reading, and you are reading the stdout produced by COMMAND.  
If MODE is 1, f is opened for writing and you are writing to  
the stdin read by COMMAND.  
Builtin function, documented at i0/std.i   line 1946  

SEE ALSO: open,   system  
 
 
 

pr1

    pr1(x)  


returns text representing expression X, equivalent to print(X)(1).  
Interpreted function, defined at i0/std.i   line 480  

SEE ALSO: print,   swrite  
 
 
 

prefix_comment

    prefix_comment(line)  


the default comment detector function for prefix_read, makes  
blank lines and any line beginning with "#" as its first non-blank  
character a comment.  
Interpreted function, defined at i/prefix.i   line 90  

 

prefix_find

    prefix_find(f, prefix)  


scan to the first line of text file F which begins with the  
blank delimited prefix PREFIX.  (You may specify other delimiters  
by giving prefix_find a DELIMIT keyword, whose value will be  
passed to the strtok function.)  The return value is 1 if such  
a line was found, 0 if not.  In the first case, F will be positioned  
to reread the prefixed line; in the second case, F will be at the  
end-of-file.  
Interpreted function, defined at i/prefix.i   line 11  

SEE ALSO: prefix_read,   prefix_write,   strtok  
 
 
 

prefix_read

    value_array= prefix_read(f, prefix)  


reads lines of text file F which begin with the blank delimited  
prefix PREFIX.  (You may specify other delimiters by giving  
prefix_read a DELIMIT keyword, whose value will be passed to the  
strtok function.)  Stops when a line not beginning with that  
prefix is encountered.  You may also supply a COMMENT keyword,  
which should be a function accepting a string argument and  
returning 0 to indicate that the line is not a comment line,  
and 1 to indicate that it is a comment.  By default, blank lines  
and lines beginning with "#" are taken as comments and skipped.  
The returned VALUE_ARRAY is [] if no PREFIX lines were found,  
and an array of type double and length equal to the total number  
of numbers Ni:  
  prefix N1 N2 N3 N4  
  prefix N5 N6  
  prefix ... Nn  
Interpreted function, defined at i/prefix.i   line 36  

SEE ALSO: prefix_find,   prefix_write,   prefix_comment,   strtok  
 
 
 

prefix_unD

    prefix_unD  


  
     Interpreted function, defined at i/prefix.i   line 101  

 

prefix_write

    prefix_read, f, prefix, value_array  


writes lines of text file F which begin with the prefix PREFIX:  
  
  prefix N1 N2 N3 N4 N5  
  prefix N6 N7 N8 N9 N10  
  prefix N11 N12  
The format is %14.6e by default, but you can adjust the ".6" by  
specifying an NDIGITS keyword (6 is the default).  
Yorick will put as many numbers as fit within 79 characters by  
default, and each successive line begins with PREFIX.  You can  
change this default line width by specifying a WIDTH keyword  
(default 79).  
Interpreted function, defined at i/prefix.i   line 114  

SEE ALSO: prefix_find,   prefix_read  
 
 
 

print

    print, object1, object2, object3, ...  
 or print(object1, object2, object3, ...)  


prints an ASCII representation of the OBJECTs, in roughly the format  
they could appear in Yorick source code.  When invoked as a subroutine  
(in the first form), output is to the terminal.  When invoked as a  
function (int the second form), the output is stored as a vector of  
strings, one string per line that would have been output.  
Printing a structure definition prints the structure definition;  
printing a function prints its "func" definition; printing files,  
bookmarks, and other objects generally provides some sort of  
useful description of the object.  
Builtin function, documented at i0/std.i   line 465  

SEE ALSO: pr1,   print_format,   write,   exit,   error,   nameof,   typeof  
 
 
 

print_format

    print_format, line_length, char=, short=, int=, float=,  
    double=, complex=, pointer=  


sets the format string the print function will use for each of  
the basic data types.  Yorick format strings are the same as the  
format strings for the printf function defined in the ANSI C standard.  
The default strings may be restored individually by setting the  
associated format string to ""; all defaults are restored if  
print_format is invoked with no arguments.  The default format strings  
are:  "0x%02x", "%d", "%d", "%ld", "%g", "%g", and "%g%+gi".  
Note that char and short values are converted to int before being  
passed to printf, and that float is converted to double.  
If present, an integer positional argument is taken as the line  
length; <=0 restores the default line length of 80 characters.  
Builtin function, documented at i0/std.i   line 487  

SEE ALSO: print,   write,   nameof,   typeof  
 
 
 

process_argv

    remaining= process_argv()  


  -or- remaining= process_argv("your startup message")  
Performs standard command line processing.  This function is  
invoked by the default custom.i file (in $Y_SITE/i); you  
can also invoke it from your personal ~/yorick/custom.i file.  
The process_argv calls get_argv, removes any arguments of  
the form "-ifilename" or "-i filename" (the latter is a pair of  
arguments.  It returns any arguments not of this form as its  
result, after including any filenames it found in the order  
they appeared on the command line.  
The optional string argument may be an array of strings to print  
a multi-line message.  
A Yorick package may define the function get_command_line in  
order to feed process_argv something other than get_argv.  
Interpreted function, defined at i0/std.i   line 2510  

SEE ALSO: batch  
 
 
 

pt_cross

    pt_cross  


  
     Interpreted function, defined at i/plato.i   line 155  

 

pt_cube

    pt_cube  


  
     Interpreted function, defined at i/plato.i   line 31  

 

pt_dodec

    pt_dodec  


  
     Interpreted function, defined at i/plato.i   line 64  

 

pt_ico

    pt_ico  


  
     Interpreted function, defined at i/plato.i   line 51  

 

pt_oct

    pt_oct  


  
     Interpreted function, defined at i/plato.i   line 41  

 

pt_solid

    pt_solid  


  
     Interpreted function, defined at i/plato.i   line 162  

 

pt_solid2

    pt_solid2  


  
     Interpreted function, defined at i/plato.i   line 177  

 

pt_tet

    pt_tet  


  
     Interpreted function, defined at i/plato.i   line 22  

 

ptcen

    ptcen(zncen)  
 or ptcen(zncen, ireg)  


returns point centered version of the 2-D zone centered array ZNCEN.  
The result is imax-by-jmax if ZNCEN is (imax-1)-by-(jmax-1).  
If the region number array IREG is specified, zones with region  
number 0 are not included in the point centering operation.  
Note that IREG should have dimensions imax-by-jmax; the first  
row and column of IREG are ignored.  
Without IREG, ptcen(zncen) is equivalent to zncen(pcen,pcen).  
Interpreted function, defined at i0/std.i   line 3643  

SEE ALSO: zncen,   uncen