Java tutorial
/* * #%L * LA-iMageS Core * %% * Copyright (C) 2016 Marco Aurlio Zezzi Arruda, Gustavo de Souza * Pessa, Jos Luis Capelo Martnez, Florentino Fdez-Riverola, Miguel * Reboiro-Jato, Hugo Lpez-Fdez, and Daniel Glez-Pea * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public * License along with this program. If not, see * <http://www.gnu.org/licenses/gpl-3.0.html>. * #L% */ package es.uvigo.ei.sing.laimages.core.operations; import org.apache.commons.math3.analysis.interpolation.BivariateGridInterpolator; import org.apache.commons.math3.exception.DimensionMismatchException; import org.apache.commons.math3.exception.NoDataException; import org.apache.commons.math3.exception.NonMonotonicSequenceException; import org.apache.commons.math3.util.MathArrays; public class BilinearInterpolator implements BivariateGridInterpolator { @Override public BilinearInterpolatingFunction interpolate(double[] xval, double[] yval, double[][] fval) throws NoDataException, DimensionMismatchException, NonMonotonicSequenceException { if (xval.length == 0 || yval.length == 0 || fval.length == 0) { throw new NoDataException(); } if (xval.length != fval.length) { throw new DimensionMismatchException(xval.length, fval.length); } if (yval.length != fval[0].length) { throw new DimensionMismatchException(yval.length, fval[0].length); } MathArrays.checkOrder(xval); MathArrays.checkOrder(yval); return new BilinearInterpolatingFunction(xval, yval, fval); } }