PADUA
2D Pointsets for Interpolation or Integration
PADUA
is a C++ library which
returns the coordinates of the 2D Padua points,
as well as interpolation weights or quadrature weights,
and images of the points in gnuplot graphics files.
Licensing:
The computer code and data files made available on this
web page are distributed under
the GNU LGPL license.
Languages:
PADUA is available in
a C version and
a C++ version and
a FORTRAN90 version and
a MATLAB version and
a Python version.
Related Data and Programs:
EXACTNESS_2D,
a C++ library which
investigates the exactness of 2D quadrature rules that estimate the
integral of a function f(x,y) over a 2D domain.
GNUPLOT,
C++ programs which
illustrate how a program can write data and command files
so that gnuplot can create plots of the program results.
LAGRANGE_INTERP_2D,
a C++ library which
defines and evaluates the Lagrange polynomial p(x,y)
which interpolates a set of data depending on a 2D argument
that was evaluated on a product grid,
so that p(x(i),y(j)) = z(i,j).
PWL_INTERP_2D,
a C++ library which
evaluates a piecewise linear interpolant to data defined on
a regular 2D grid.
QUADRATURE_WEIGHTS_VANDERMONDE_2D,
a C++ library which
computes the weights of a 2D quadrature rule using the Vandermonde
matrix, assuming that the points have been specified.
RBF_INTERP_2D,
a C++ library which
defines and evaluates radial basis function (RBF) interpolants to 2D data.
SHEPARD_INTERP_2D,
a C++ library which
defines and evaluates Shepard interpolants to 2D data,
based on inverse distance weighting.
TEST_INTERP_2D,
a C++ library which
defines test problems for interpolation of data z(x,y),
depending on a 2D argument.
TOMS886,
a C++ library which
defines the Padua points for interpolation in a 2D region,
including the rectangle, triangle, and ellipse,
by Marco Caliari, Stefano de Marchi, Marco Vianello.
This is ACM TOMS algorithm 886.
VANDERMONDE_INTERP_2D,
a C++ library which
finds a polynomial interpolant to data z(x,y) of a 2D argument
by setting up and solving a linear system for the polynomial coefficients,
involving the Vandermonde matrix.
Reference:
-
Marco Caliari, Stefano de Marchi, Marco Vianello,
Bivariate interpolation on the square at new nodal sets,
Applied Mathematics and Computation,
Volume 165, Number 2, 2005, pages 261-274.
-
Marco Caliari, Stefano de Marchi, Marco Vianello,
Algorithm 886:
Padua2D: Lagrange Interpolation at Padua Points on Bivariate Domains,
ACM Transactions on Mathematical Software,
Volume 35, Number 3, October 2008, Article 21, 11 pages.
Source Code:
Examples and Tests:
The program creates GNUPLOT command and data files, which can be
used to create a PNG image of the points.
-
padua_00_commands.txt,
the command file.
-
padua_00_data.txt,
the data file.
-
padua_00.png,
the PNG image.
-
padua_01_commands.txt,
the command file.
-
padua_01_data.txt,
the data file.
-
padua_01.png,
the PNG image.
-
padua_02_commands.txt,
the command file.
-
padua_02_data.txt,
the data file.
-
padua_02.png,
the PNG image.
-
padua_03_commands.txt,
the command file.
-
padua_03_data.txt,
the data file.
-
padua_03.png,
the PNG image.
-
padua_04_commands.txt,
the command file.
-
padua_04_data.txt,
the data file.
-
padua_04.png,
the PNG image.
-
padua_05_commands.txt,
the command file.
-
padua_05_data.txt,
the data file.
-
padua_05.png,
the PNG image.
-
padua_06_commands.txt,
the command file.
-
padua_06_data.txt,
the data file.
-
padua_06.png,
the PNG image.
-
padua_07_commands.txt,
the command file.
-
padua_07_data.txt,
the data file.
-
padua_07.png,
the PNG image.
-
padua_08_commands.txt,
the command file.
-
padua_08_data.txt,
the data file.
-
padua_08.png,
the PNG image.
-
padua_09_commands.txt,
the command file.
-
padua_09_data.txt,
the data file.
-
padua_09.png,
the PNG image.
-
padua_10_commands.txt,
the command file.
-
padua_10_data.txt,
the data file.
-
padua_10.png,
the PNG image.
List of Routines:
-
FILENAME_INC increments a partially numeric file name.
-
PADUA_ORDER returns the size of the Padua set of given level.
-
PADUA_PLOT plots the Padua points of given level.
-
PADUA_POINTS returns the Padua points of order N.
-
PADUA_POINT_SET sets the Padua points.
-
PADUA_WEIGHT_SET sets quadrature weights for the Padua points.
-
R8MAT_TRANSPOSE_PRINT prints an R8MAT, transposed.
-
R8MAT_TRANSPOSE_PRINT_SOME prints some of an R8MAT, transposed.
-
TIMESTAMP prints the current YMDHMS date as a time stamp.
You can go up one level to
the C++ source codes.
Last revised on 30 April 2014.