Home | History | Annotate | Download | only in interpolation
      1 /*
      2  * Licensed to the Apache Software Foundation (ASF) under one or more
      3  * contributor license agreements.  See the NOTICE file distributed with
      4  * this work for additional information regarding copyright ownership.
      5  * The ASF licenses this file to You under the Apache License, Version 2.0
      6  * (the "License"); you may not use this file except in compliance with
      7  * the License.  You may obtain a copy of the License at
      8  *
      9  *      http://www.apache.org/licenses/LICENSE-2.0
     10  *
     11  * Unless required by applicable law or agreed to in writing, software
     12  * distributed under the License is distributed on an "AS IS" BASIS,
     13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     14  * See the License for the specific language governing permissions and
     15  * limitations under the License.
     16  */
     17 package org.apache.commons.math.analysis.interpolation;
     18 
     19 import java.io.Serializable;
     20 
     21 import org.apache.commons.math.MathException;
     22 import org.apache.commons.math.analysis.polynomials.PolynomialFunctionLagrangeForm;
     23 
     24 /**
     25  * Implements the <a href="http://mathworld.wolfram.com/NevillesAlgorithm.html">
     26  * Neville's Algorithm</a> for interpolation of real univariate functions. For
     27  * reference, see <b>Introduction to Numerical Analysis</b>, ISBN 038795452X,
     28  * chapter 2.
     29  * <p>
     30  * The actual code of Neville's evalution is in PolynomialFunctionLagrangeForm,
     31  * this class provides an easy-to-use interface to it.</p>
     32  *
     33  * @version $Revision: 799857 $ $Date: 2009-08-01 15:07:12 +0200 (sam. 01 aot 2009) $
     34  * @since 1.2
     35  */
     36 public class NevilleInterpolator implements UnivariateRealInterpolator,
     37     Serializable {
     38 
     39     /** serializable version identifier */
     40     static final long serialVersionUID = 3003707660147873733L;
     41 
     42     /**
     43      * Computes an interpolating function for the data set.
     44      *
     45      * @param x the interpolating points array
     46      * @param y the interpolating values array
     47      * @return a function which interpolates the data set
     48      * @throws MathException if arguments are invalid
     49      */
     50     public PolynomialFunctionLagrangeForm interpolate(double x[], double y[])
     51         throws MathException {
     52         return new PolynomialFunctionLagrangeForm(x, y);
     53     }
     54 }
     55