## program limitations

Version 2.32

Manual page for program_limitations(PL)

## System resource limitations

On Unix/linux, the default max amount of CPU time allowed is 30 seconds which is enforced using setrlimit(), and a core dump occurs when the limit is exceeded. This limit may be modified by using proc settings, or in your config file or by directly modifying pl.h (CPULIMIT)

## Date arithmetic

The date arithmetic package can handle dates as far back as 1754.`` Date scaling using omitweekends mode is not supported (and gives incorrect results) for dates before Jan 1, 1970.``

## Capacity limits

Ploticus has these capacity limitations. Many of them are actually dynamic and can be overridden using command line arguments (etc).`` Unless otherwise noted these are #defined in `pl.h` or `tdhkit.h` (the relevant `#define` is shown in parentheses) and can be safely raised if necessary (then do: `make clean; make`).``

Data

- Default max number of data rows: 10,000 rows (MAXDROWS).`` This limit is dynamic and can be raised using command line option `-maxrows`.``
- Default max total number of individual data fields: 200,000 fields (MAXD).`` This is the number of data fields per row, times number of rows. It is used to allocate storage for pointers, one per data item.`` This limit is dynamic and can be raised using command line option `-maxfields`.``
- Default maximum number of elements in the data vector: 100,000. The "data vector" is used by proc rangebar median computation (1 element per data point); proc lineplot, scatterplot, and curvefit (2 elements per data point); and proc rangesweep (3 elements per data point).`` This limit is dynamic and can be raised using command line option `-maxvector`.``
- Example: suppose you have a data set with 58,000+ rows, and each row has 10 fields.`` You are doing scatterplots, so the plotting vector requires 2 ⋅ 58,000 cells. You would set capacities like this:
  `pl ... -maxrows 60000 -maxfields 600000 -maxvector 120000`
- Max length of data field: 250 chars (DATAMAXLEN)
- Max length of input data record: 2998 chars (MAXRECORDLEN)

Scripts

- Default maximum total number of lines in currently active procs: 5000 lines (MAXPROCLINES).`` This limit is dynamic and can be raised using command line option `-maxproclines`.`` "Currently active procs" are the current proc, any `#saved` procs, and any proc getdata having an embedded `data:` statement. The maximum number of "currently active procs" is 40 (MAXOBJ)
- Max length of a line in a ploticus script: 3000 chars before & after variable evaluation (SCRIPTLINELEN)
- Max number of variables: 200 (MAXVAR)
- Max length of variable contents: 250 chars (VARMAXLEN)
- Max length of field names, variable names, category names, proc & attribute names: 48 chars (NAMEMAXLEN)

Other

- Default max number of scale categories in X: 250; in Y: 250 (MAXNCATS).`` As of version 2.11 this limit is dynamic and can be overridden using proc categories listsize attribute
- Max number of points from which to compute a moving average or regression curve in proc curvefit: 5000. Bspline curve: 100.`` (see proc_curvefit.c)
- Max number of clickmap zones and max number of mouseover labels: 500 (see clickmap.c MAXENTRIES).``
  Max length of a clickmap url or mouseover (tooltip) label (after variable evaluation) is 250 characters (in versions 2.32+ the max length of a mouseover label is raised to 3000 characters)
- Max number of pie graph slices: 80
- proc tabulate limits: 200 rows, 200 columns, 200 ranges, comparison significance is 38 characters.`` (see proc_tabulate.c)
- Max length of a color specification: 38 chars.``
- Under X11, SWF, and PNG/GIF/JPEG there's a limit of 500 points for a polygon.`` (Note that filled lineplots and rangesweeps are made up of many 4-sided polygons, so this limit doesn't apply to these.)
  With SWF there's also a limit of 500 points for any one continuous line.`` This limit is dynamic and can be raised using command line option `-maxdrawpoints`.``
  data display engine
  Copyright Steve Grubb

Markup created by unroff 1.0, `` `` August 23, 2005.