*****************************************************************************
IDL expg library routines classified by category
Library name: idl.expg/util
Purpose:      General useful routines.
From:         European Synchrotron Radiation Facility.
              Experiments Division Programming Group.
Contact:      srio@esrf.fr
Last Revision: 20-Mar-98

Symbols:
   P: Procedure
   F: Function
   *: Routine imported from other IDL libraries.

Array manipulation:
===================
coor2matr.pro	:P Convert surface points fltarr(3,npts) -> fltarr(nptsX,nptsY)
copy_structure  :P Copy the coincident tags from one structure to another
cutset.pro	:P extracts points in an interval from a fltarr(ncol,npts) set.
sorpurge.pro	:F*  Like SORT , but ignores repeated values of elements.
maken		:F*  Make an array of N values, linear between two given limits
make_str	:F  Make an structure for a text or a file
matr2coor.pro	:F Convert surface points fltarr(nptsX,nptsY) -> fltarr(3,npts)
surf_replicate  :F replicate a surface applying copy or mirror-symmetry

Strings and texts:
==================
cast.pro	:F* Generalized type casting.
default.pro	:F* Provides default value for nondefined parameters
read_textfile   :F  Stores a tex file in a string array.
straccumulate.pro:F  Accumulates a string array in a single string.
strsubstitute.pro:F  Substitute a text by another one in a line.
strep.pro	:F*  Edit a string by position.
streq.pro	:F* Compares for equality the first characters of two strings
strmatch.pro	:F* Compares a given string with the strings in an array
strparse.pro	:F*  Parses a LINE using the characters in DELIM as delimiters.
vect2string.pro	:F writes a vector into a string in the IDL vector format

File managing and Input/Output:
===============================
checkfile.pro	:F Checks if the file exists.
filepath1.pro	:F checks !path and returns the total path of the input file.
fileposition.pro:F Finds the position line of a keyword in a text file.
filesubset.pro	:P Creates a new file with a subset of the input one.
rascii.pro	:F* Reads data from an ASCII file into an array.

Mathematics:
============
atan2.pro	:F* Similar to fortran atan2.
conv.pro	:F Performs mathematical convolution.
conv2.pro	:F mathematical convolution (with different abscissas in data)
conv_gauss.pro	:F Convolutes data with a gaussian.
covar_fit.pro	:P Calculate the Covariance Matrix of a fit.
curvefit1.pro	:P Curvefit slightly modified.
gauss_fit.pro	:P* Performs a gaussian fit
getfwhm.pro	:F This function calculates the FWHM of a curve.
histogramw.pro	:F Same as HISTOGRAM, but using a weighting array .
histogramw2.pro	:F Same as HISTOGRAMW, but bidimensional.
histogramw3.pro :F Same as HISTOGRAMW, but tridimensional.
infl.pro	:F Performs mathematical correlation.
infl2.pro	:F mathematical correlation (with different abscissas in data)
lin_reg.pro	:P linear regression and linearity tests.
myidlmacro.pro	:P Displays, dit and runs an IDL macro.
myidlmacro.pro	:P Displays, dit and runs an IDL macro.
poly_smooth.pro	:F* Savitzky-Golay or Least Squares smoothing filter.
powellfit.pro	:P To perform non-linear fit with any specified function.
voigt1		:F Returns the voigt function.

Widgets:
========
cw_array.pro :F Compound widget for modifying/editing an array.
cw_color_index1.pro :F* Compound widget for the selection of a color index.
cw_droplist.pro	:F Compound widget for a droplist allowing retrieving state.
cw_pickfile.pro	:F Compound widget displaying a file name and browser.
cw_toolbar.pro	:F Compound widget for creating toolbars.
fourierfilter.pro :P Modified filter demowidget application.
print_ascii.pro	:P Prints string array or text file printer or to file.
printing.pro	:P Prints text or graphics to the printer or to file (Obsolete).
showinfo1.pro	:P To display a text in a widget window. (Modifieed showinfo)
textwindow.pro	:P To display a text in a widget window.
wmenu2.pro	:F* Modal widget menu.
xdisplayfile1.pro :F Modified XDISPLAYFILE
xedit.pro	:P* Routine for editing a scalar variable.
xeditlist.pro	:P  Widget based list edit.
xgetfile.pro	:F  Widget based file name input.
xhelp.pro	:P  Widget based doc_library.
xlegend.pro	:P Widget interface to create labels by using LEGEND.
xnlfit.pro	:P Widget interface to curvefit1 and powellfit.
xpdmenu1.pro	:P Simplifies setting up widget pulldown menus.
xplot.pro	:P To plot and manipulate data interactively.
xplot_defaults.pro :F Internal use of Xplot (Customizable)
xpowellfit.pro	:P  (Obsoleted by Xnlfit)
xprint.pro	:P Prints graphic to a file or printer.
xscrmenu.pro	:P Editor for any IDL variable. Nice to create data screens.
xscrmenu_flags0.pro :P Internal use of XSCRMENU.
xspec.pro	:P Widget interface to visualize SPEC data files. (Obsolete)
xsurface1:	:P Modified version of xsurface with more options.
xtable.pro	:P Create a table window for visualizing/editing a matrix.
xtext.pro	:P To create a window showing a text.
xwindow.pro	:P Creates a graph window embedded in a widget window.
xxyouts.pro	:P Widget interface to XYOUTS.

Graphics:
=========
boxchart.pro	:P Creates a box chart graph.
colorbar.pro	:P* Make a color bar.
legend.pro	:P* Makes a legend for a plot.
plotfile.pro	:P To plot a simple N column file.
tvbox.pro	:P* Draw or erase a box on the image display.

Miscellaneous:
==============
eq_edit.pro	:F Edit an equation (used by curvefit1).
font_names.pro	:F Returns a full name of font giving a short one.
keyword_extra:	:F tells if a keyword is defined trohgh the _EXTRA mechanism
myidlmacro.pro	:P Displays, edit and runs an IDL macro.
pause.pro	:P Stops the program until the user types <return>
pwd.pro		:P prints and optionally returns working directory
sdep.pro	:F Returns system-dependent variables (i.e.  'WINDOW'/'UNIX')
type.pro	:F* Finds the type class of a variable

