// Copyright ©2020 The Gonum Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.

// Package interp implements 1-dimensional algorithms for interpolating values.
// Outside of the interpolation interval determined by the interpolated data,
// the returned value is undefined (but we do our best to return something
// reasonable).
package interp // import "gonum.org/v1/gonum/interp"
