• Main Page
  • Related Pages
  • Data Structures
  • Files
  • File List
  • Globals

interp.c

Go to the documentation of this file.
00001 
00002 #include <grass/gis.h>
00003 
00004 DCELL G_interp_linear(double u, DCELL c0, DCELL c1)
00005 {
00006     return u * (c1 - c0) + c0;
00007 }
00008 
00009 DCELL G_interp_bilinear(double u, double v,
00010                         DCELL c00, DCELL c01, DCELL c10, DCELL c11)
00011 {
00012     DCELL c0 = G_interp_linear(u, c00, c01);
00013     DCELL c1 = G_interp_linear(u, c10, c11);
00014 
00015     return G_interp_linear(v, c0, c1);
00016 }
00017 
00018 DCELL G_interp_cubic(double u, DCELL c0, DCELL c1, DCELL c2, DCELL c3)
00019 {
00020     return (u * (u * (u * (c3 - 3 * c2 + 3 * c1 - c0) +
00021               (-c3 + 4 * c2 - 5 * c1 + 2 * c0)) + (c2 - c0)) + 2 * c1) / 2;
00022 }
00023 
00024 DCELL G_interp_bicubic(double u, double v,
00025                        DCELL c00, DCELL c01, DCELL c02, DCELL c03,
00026                        DCELL c10, DCELL c11, DCELL c12, DCELL c13,
00027                        DCELL c20, DCELL c21, DCELL c22, DCELL c23,
00028                        DCELL c30, DCELL c31, DCELL c32, DCELL c33)
00029 {
00030     DCELL c0 = G_interp_cubic(u, c00, c01, c02, c03);
00031     DCELL c1 = G_interp_cubic(u, c10, c11, c12, c13);
00032     DCELL c2 = G_interp_cubic(u, c20, c21, c22, c23);
00033     DCELL c3 = G_interp_cubic(u, c30, c31, c32, c33);
00034 
00035     return G_interp_cubic(v, c0, c1, c2, c3);
00036 }

Generated on Thu Dec 9 2010 20:46:05 for GRASS Programmer's Manual by  doxygen 1.7.2