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 261274.

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.