//
//  a = trapz(y,x)
//
//  find the area under the curve y = f(x) using the trapezoidal rule
//
//   x = vector containing the independent variable data points
//       the elements of x need not be equally spaced
//   y = f(x) = vector of the function values corresponding to the
//       elements in x
//
//  a = the area under f(x) in the interval defined by x
//

// Written by: Duane Hanselman, University of Maine, (207)-581-2246

trapz = function (y, x)
{
  local (x, y)

  x = x[:]';  // make sure x and y are row vectors 
  y = y[:]';
  ly = length(y);
  lx = length(x);
  if (lx != ly) {
    error(" x and y must be the same length");
  }
  a = 0.5*([0, y] + [y, 0]) .* ([x, 0] - [0, x]);
  a = sum (a[1;2:ly]);
  return a;
};
