include	<pkg/inlfit.h>


# IN_LIMIT -- Compute the independent variable limits for all variables,
# and store them in the INLFIT structure.

procedure in_limit$t (in, x, npts, nvars)

pointer	in			# INLFIT descriptor
PIXEL	x[ARB]			# Independent values (npts * nvars)
int	npts			# number of points
int	nvars			# number of variables

int	i, j
PIXEL	aux, xmin, xmax
pointer	minptr, maxptr

pointer	in_getp()

begin
#	# Debug
#	call eprintf ("in_limit: in=%d, npts=%d, nvars=%d\n")
#	    call pargi (in)
#	    call pargi (npts)
#	    call pargi (nvars)

	# Get minimum and maximum buffer pointers
	minptr = in_getp (in, INLXMIN)
	maxptr = in_getp (in, INLXMAX)

	# Loop over variables
	do i = 1, nvars {

	    # Set initial values
	    xmin = x[i]
	    xmax = x[i]

	    # Search for maximum and minimum values
	    do j = 1, npts {
		aux = x[(j - 1) * nvars + i]
		if (xmin > aux)
		    xmin = aux
		else if (xmax < aux)
		    xmax = aux
	    }

	    # Enter values into the structure
	    Mem$t[minptr + i - 1] = xmin
	    Mem$t[maxptr + i - 1] = xmax
	}
end
