[GRASS-SVN] r66143 - in grass/trunk/lib/rst: . data interp_float qtree
svn_grass at osgeo.org
svn_grass at osgeo.org
Mon Sep 7 13:11:46 PDT 2015
Author: wenzeslaus
Date: 2015-09-07 13:11:46 -0700 (Mon, 07 Sep 2015)
New Revision: 66143
Added:
grass/trunk/lib/rst/rst.dox
Removed:
grass/trunk/lib/rst/data/DESCRIPTION.DATA
grass/trunk/lib/rst/interp_float/DESCRIPTION.INTERP
grass/trunk/lib/rst/qtree/DESCRIPTION.TREE
Modified:
grass/trunk/lib/rst/data/dataquad.c
grass/trunk/lib/rst/data/dataquad.h
grass/trunk/lib/rst/qtree/qtree.c
grass/trunk/lib/rst/qtree/qtree.h
Log:
dox: Doxygen documentation for lib rst qtree and data
Using existing documentation in source code or text files plus some observations. Also creating a general library page.
Deleted: grass/trunk/lib/rst/data/DESCRIPTION.DATA
===================================================================
--- grass/trunk/lib/rst/data/DESCRIPTION.DATA 2015-09-07 17:28:31 UTC (rev 66142)
+++ grass/trunk/lib/rst/data/DESCRIPTION.DATA 2015-09-07 20:11:46 UTC (rev 66143)
@@ -1,135 +0,0 @@
-/* updated by Mitasova Nov. 96 */
-
-DATA STRUCTURES:
-----------------
-
-#define NW 1
-#define NE 2
-#define SW 3
-#define SE 4
-
-/* added sm for spatially variable smoothing by Mitasova 10.96 */
-struct triple {
- double x;
- double y;
- double z;
- double sm;
-};
-
-struct quaddata {
- double x_orig;
- double y_orig;
- double xmax;
- double ymax;
- int n_rows;
- int n_cols;
- int n_points;
- struct triple *points;
-};
-
-
-
-
-FUNCTIONS:
-----------
-
-struct triple *
-quad_point_new (x, y, z, sm)
- double x;
- double y;
- double z;
- double sm;
-/* Initializes POINT structure with given arguments,
-s was added for variable smoothing 10.96 helena */
-
-
-
-
-struct quaddata *
-quad_data_new(x_or,y_or,xmax,ymax,rows,cols,n_points,kmax)
- double x_or;
- double y_or;
- double xmax;
- double ymax;
- int rows;
- int cols;
- int n_points;
-/* Initializes QUADDATA structure with given arguments*/
-
-
-
-
-
-
-int
-quad_compare (point, data)
- struct triple *point;
- struct quaddata *data;
-/* returns the quadrant the point should be inserted in */
-/* called by divide() */
-
-
-
-
-
-
-int
-quad_add_data (point, data, dmin)
- struct triple *point;
- struct quaddata *data;
- double dmin;
-/* Adds POINT to a given DATA . Called by tree function insert_quad() */
-/* and by data function quad_divide_data() */
-
-
-
-
-
-
-int
-quad_intersect (data_inter, data)
- struct quaddata *data_inter;
- struct quaddata *data;
-/* Checks if region defined by DATA intersects the region defined
- by data_inter. Called by tree function MT_region_data() */
-
-
-
-
-
-int quad_division_check(data,kmax)
- struct quaddata *data;
- int kmax;
-/* Checks if DATA needs to be divided. If data->points is empty,
- returns -1; if its not empty but there aren't enough points
- in DATA for division returns 0. Othervise (if its not empty and
- there are too many points) returns 1. Called by MT_insert() */
-
-
-
-
-
-
-struct quaddata **quad_divide_data(data,kmax,dmin)
- struct quaddata *data;
- int kmax;
- double dmin;
-/* Divides DATA into 4 new datas reinserting data->points in
- them by calling data function quad_compare() to detrmine
- were to insert. Called by MT_divide(). Returns array of 4 new datas */
-
-
-
-
-
-
-
-int quad_get_points(data_inter,data,MAX)
- struct quaddata *data_inter;
- struct quaddata *data;
- int MAX;
-/* Gets such points from DATA that lie within region determined by
- data_inter. Called by tree function region_data(). */
-
-
-
Modified: grass/trunk/lib/rst/data/dataquad.c
===================================================================
--- grass/trunk/lib/rst/data/dataquad.c 2015-09-07 17:28:31 UTC (rev 66142)
+++ grass/trunk/lib/rst/data/dataquad.c 2015-09-07 20:11:46 UTC (rev 66143)
@@ -1,22 +1,41 @@
-
-/*-
- * Written by H. Mitasova, I. Kosinovsky, D. Gerdes Fall 1993
- * University of Illinois
- * US Army Construction Engineering Research Lab
- * Copyright 1993, H. Mitasova (University of Illinois),
- * I. Kosinovsky, (USA-CERL), and D.Gerdes (USA-CERL)
+/*!
+ * \file qtree.c
*
- * Modified by H.Mitasova November 1996 to include variable smoothing
- *
+ * \author
+ * H. Mitasova, I. Kosinovsky, D. Gerdes, Fall 1993,
+ * University of Illinois and
+ * US Army Construction Engineering Research Lab
+ *
+ * \author H. Mitasova (University of Illinois),
+ * \author I. Kosinovsky, (USA-CERL)
+ * \author D.Gerdes (USA-CERL)
+ *
+ * \author modified by H. Mitasova, November 1996 (include variable smoothing)
+ *
+ * \copyright
+ * (C) 1993-1996 by Helena Mitasova and the GRASS Development Team
+ *
+ * \copyright
+ * This program is free software under the
+ * GNU General Public License (>=v2).
+ * Read the file COPYING that comes with GRASS for details.
*/
+
#include <stdio.h>
#include <stdlib.h>
#include <grass/dataquad.h>
-/* sm added to point structure */
+
+/*!
+ * Initialize point structure with given arguments
+ *
+ * This is a constructor of the point structure and it allocates memory.
+ *
+ * \note
+ * Smoothing is part of the point structure
+ */
struct triple *quad_point_new(double x, double y, double z, double sm)
-/* Initializes POINT structure with given arguments */
{
struct triple *point;
@@ -33,10 +52,16 @@
}
+/*!
+ * Initialize quaddata structure with given arguments
+ *
+ * This is a constructor of the quaddata structure and it allocates memory.
+ * It also creates (and allocates memory for) the given number of points
+ * (given by *kmax*). The point attributes are set to zero.
+ */
struct quaddata *quad_data_new(double x_or, double y_or, double xmax,
double ymax, int rows, int cols, int n_points,
int kmax)
-/* Initializes QUADDATA structure with given arguments */
{
struct quaddata *data;
int i;
@@ -67,12 +92,10 @@
}
-
-
-
+/*!
+ * Return the quadrant the point should be inserted in
+ */
int quad_compare(struct triple *point, struct quaddata *data)
-/* returns the quadrant the point should be inserted in */
-/* called by divide() */
{
int cond1, cond2, cond3, cond4, rows, cols;
double ew_res, ns_res;
@@ -114,9 +137,10 @@
}
+/*!
+ * Add point to a given *data*.
+ */
int quad_add_data(struct triple *point, struct quaddata *data, double dmin)
-/* Adds POINT to a given DATA . Called by tree function insert_quad() */
-/* and by data function quad_divide_data() */
{
int n, i, cond;
double xx, yy, r;
@@ -147,11 +171,13 @@
}
-
-
+/*!
+ * Check intersection of two quaddata structures
+ *
+ * Checks if region defined by *data* intersects the region defined
+ * by *data_inter*.
+ */
int quad_intersect(struct quaddata *data_inter, struct quaddata *data)
-/* Checks if region defined by DATA intersects the region defined
- by data_inter. Called by tree function MT_region_data() */
{
double xmin, xmax, ymin, ymax;
@@ -178,13 +204,19 @@
}
-
-
+/*!
+ * Check if *data* needs to be divided
+ *
+ * Checks if *data* needs to be divided. If `data->points` is empty,
+ * returns -1; if its not empty but there aren't enough points
+ * in *data* for division returns 0. Otherwise (if its not empty and
+ * there are too many points) returns 1.
+ *
+ * \returns 1 if division is needed
+ * \returns 0 if division is not needed
+ * \returns -1 if there are no points
+ */
int quad_division_check(struct quaddata *data, int kmax)
-/* Checks if DATA needs to be divided. If data->points is empty,
- returns -1; if its not empty but there aren't enough points
- in DATA for division returns 0. Othervise (if its not empty and
- there are too many points) returns 1. Called by MT_insert() */
{
if (data->points == NULL)
return -1;
@@ -195,12 +227,15 @@
}
-
+/*!
+ * Divide *data* into four new ones
+ *
+ * Divides *data* into 4 new datas reinserting `data->points` in
+ * them by calling data function `quad_compare()` to determine
+ * were to insert. Returns array of 4 new datas (allocates memory).
+ */
struct quaddata **quad_divide_data(struct quaddata *data, int kmax,
double dmin)
-/* Divides DATA into 4 new datas reinserting data->points in
- them by calling data function quad_compare() to detrmine
- were to insert. Called by MT_divide(). Returns array of 4 new datas */
{
struct quaddata **datas;
int cols1, cols2, rows1, rows2, i; /*j1, j2, jmin = 0; */
@@ -280,12 +315,12 @@
}
-
-
+/*!
+ * Gets such points from *data* that lie within region determined by
+ * *data_inter*. Called by tree function `region_data()`.
+ */
int
quad_get_points(struct quaddata *data_inter, struct quaddata *data, int MAX)
-/* Gets such points from DATA that lie within region determined by
- data_inter. Called by tree function region_data(). */
{
int i, ind;
int n = 0;
Modified: grass/trunk/lib/rst/data/dataquad.h
===================================================================
--- grass/trunk/lib/rst/data/dataquad.h 2015-09-07 17:28:31 UTC (rev 66142)
+++ grass/trunk/lib/rst/data/dataquad.h 2015-09-07 20:11:46 UTC (rev 66143)
@@ -1,12 +1,24 @@
-
-/*-
- * Written by H. Mitasova, I. Kosinovsky, D. Gerdes Fall 1992
- * University of Illinois
- * US Army Construction Engineering Research Lab
- * Copyright 1992, H. Mitasova (University of Illinois),
- * I. Kosinovsky, (USA-CERL), and D.Gerdes (USA-CERL)
+/*!
+ * \file qtree.c
*
- * Modified by H.Mitasova November 1996 to include variable smoothing
+ * \author
+ * H. Mitasova, I. Kosinovsky, D. Gerdes, Fall 1993,
+ * University of Illinois and
+ * US Army Construction Engineering Research Lab
+ *
+ * \author H. Mitasova (University of Illinois),
+ * \author I. Kosinovsky, (USA-CERL)
+ * \author D.Gerdes (USA-CERL)
+ *
+ * \author modified by H. Mitasova, November 1996 (include variable smoothing)
+ *
+ * \copyright
+ * (C) 1993-1996 by Helena Mitasova and the GRASS Development Team
+ *
+ * \copyright
+ * This program is free software under the
+ * GNU General Public License (>=v2).
+ * Read the file COPYING that comes with GRASS for details.
*/
@@ -19,12 +31,18 @@
#define SW 3
#define SE 4
+
+/*!
+ * Point structure to keep coordinates
+ *
+ * It also contains smoothing for the given point.
+ */
struct triple
{
double x;
double y;
double z;
- double sm; /* structure extended to incl. variable smoothing */
+ double sm; /*!< variable smoothing */
};
struct quaddata
Deleted: grass/trunk/lib/rst/interp_float/DESCRIPTION.INTERP
===================================================================
--- grass/trunk/lib/rst/interp_float/DESCRIPTION.INTERP 2015-09-07 17:28:31 UTC (rev 66142)
+++ grass/trunk/lib/rst/interp_float/DESCRIPTION.INTERP 2015-09-07 20:11:46 UTC (rev 66143)
@@ -1,28 +0,0 @@
- DESCRIPTION OF INTERPOLATION LIBRARY
-
- written by Irina Kosinovsky 1993
- updated by Mitasova Nov. 96
- NEEDS UPDATE FOR spatially variable smoothing and other changes
- done by Helena in 1997
-
-Note by Irina in 1993: Below is the collection of functions
-needed for interpolation programs. It should be
-divided into several libraries to provide better
-functionality.
-
-V. Petras (2015): Removed all functions which are documented elsewhere
-in source code (Doxygen style) or clearly deleted. This file can be
-deleted after resolving IL_input_data_2d function.
-The TODO for changes 1997 still applies.
-
-int
-IL_input_data_2d(params,info,xmin,xmax,ymin,ymax,zmin,zmax,MAXPOINTS,n_points)
- struct interp_params *params;
- struct tree_info *info; /* quadtree info */
- double *xmin,*xmax,*ymin,*ymax,*zmin,*zmax;
- int maxpoints; /* max number of points per segment for interpolation */
- int *n_points; /* number of points used for interpolation */
-
-Inserts input data inside the region into a quad tree.
-Also translates data.
-Returns number of segments in the quad tree.
Deleted: grass/trunk/lib/rst/qtree/DESCRIPTION.TREE
===================================================================
--- grass/trunk/lib/rst/qtree/DESCRIPTION.TREE 2015-09-07 17:28:31 UTC (rev 66142)
+++ grass/trunk/lib/rst/qtree/DESCRIPTION.TREE 2015-09-07 20:11:46 UTC (rev 66143)
@@ -1,128 +0,0 @@
-/* updated by Mitasova Nov. 96, no changes necessary */
-
-DATa STRUCTURES:
-----------------
-
-#define VOID_T char
-
-struct multfunc {
- int (*compare) ();
- VOID_T **(*divide_data) ();
- int (*add_data) ();
- int (*intersect) ();
- int (*division_check) ();
- int (*get_points) ();
-};
-
-struct tree_info {
- struct multfunc *functions;
- double dmin;
- int kmax;
- struct multtree *root;
-};
-
-struct multtree {
- VOID_T *data;
- struct multtree **leafs;
- struct multtree *parent;
- int multant;
-};
-
-
-
-
-FUNCTIONS:
-----------
-
-struct multfunc * MT_functions_new(compare,divide_data,add_data,
- intersect,division_check,get_points)
- int (*compare) ();
- VOID_T **(*divide_data) ();
- int (*add_data) ();
- int (*intersect) ();
- int (*division_check) ();
- int (*get_points) ();
-/* Initializes FUNCTIONS structure with given arguments*/
-
-
-
-
-struct tree_info * MT_tree_info_new (root,functions,dmin,kmax)
- struct multtree *root;
- struct multfunc *functions;
- double dmin;
- int kmax;
-/*Initializes TREE_INFO using given arguments*/
-
-
-
-
-
-struct multtree * MT_tree_new (data, leafs, parent, multant)
- VOID_T *data;
- struct multtree **leafs;
- struct multtree *parent;
- int multant;
-/*Initializes TREE using given arguments*/
-
-
-
-
-
-
-int
-MT_insert (point,info,tree,n_leafs)
- VOID_T *point;
- struct tree_info *info;
- struct multtree *tree;
- int n_leafs;
-/*First checks for dividing cond. (if n_points>=KMAX) and TREE is a leaf
- by calling one of tree's functions (division_check()).
- If TREE is not a leaf (is a node) uses function compare to determine
- into which "son" we need to insert the point and calls MT_insert()
- with this son as a n argument.
- If TREE is a leaf but we don't need to divide it (n_points<KMAX) then
- calls function add_data(POINT) to add POINT to the data of TREE and
- returns the result of add_data() (which returns 1 if the point is
- inserted and 0 if its ignored (when its too dense)).
- If Division_check returns true, calls MT_divide(TREE) and then calls
- insert_quad() to insert the POINT into divided TREE and returns the
- result of MT_divide(). */
-
-
-
-
-
-
-
-int
-MT_divide (info,tree,n_leafs)
- struct tree_info *info;
- struct multtree *tree;
- int n_leafs;
-/* Divides the tree by calling one of tree's functions (divide_data())
- and returns the result of divide_data() */
-
-
-
-
-
-
-
-int
-MT_region_data (info, tree, data, MAX, n_leafs)
- struct tree_info *info;
- struct multtree *tree;
- VOID_T *data;
- int MAX; /* max number of points we can add (KMAX2) */
- int n_leafs;
- /* Gets points inside the region defined by DATA from TREE and
-adds them to DATA. If the number of eligible
-point is more than MAX returns MAX+1 othervise returns number of points added
-to DATA.
- Uses tree's functions intersect() to find leafs that intersect given region
-and get_points() to get points from such leafs. */
-
-
-
-
Modified: grass/trunk/lib/rst/qtree/qtree.c
===================================================================
--- grass/trunk/lib/rst/qtree/qtree.c 2015-09-07 17:28:31 UTC (rev 66142)
+++ grass/trunk/lib/rst/qtree/qtree.c 2015-09-07 20:11:46 UTC (rev 66143)
@@ -1,12 +1,24 @@
-
-/*-
- * Written by H. Mitasova, I. Kosinovsky, D. Gerdes Fall 1993
- * University of Illinois
- * US Army Construction Engineering Research Lab
- * Copyright 1993, H. Mitasova (University of Illinois),
- * I. Kosinovsky, (USA-CERL), and D.Gerdes (USA-CERL)
+/*!
+ * \file qtree.c
*
- * updated by Mitasova Nov. 96, no changes necessary
+ * \author
+ * H. Mitasova, I. Kosinovsky, D. Gerdes, Fall 1993,
+ * University of Illinois and
+ * US Army Construction Engineering Research Lab
+ *
+ * \author H. Mitasova (University of Illinois),
+ * \author I. Kosinovsky, (USA-CERL)
+ * \author D.Gerdes (USA-CERL)
+ *
+ * \author updated/checked by Mitasova Nov. 96 (no changes necessary)
+ *
+ * \copyright
+ * (C) 1993-1996 by Helena Mitasova and the GRASS Development Team
+ *
+ * \copyright
+ * This program is free software under the
+ * GNU General Public License (>=v2).
+ * Read the file COPYING that comes with GRASS for details.
*/
#include <stdio.h>
@@ -16,6 +28,7 @@
#include <grass/dataquad.h>
#include <grass/qtree.h>
+/*! Initializes multfunc structure with given arguments */
struct multfunc
*MT_functions_new(int (*compare) (struct triple *, struct quaddata *),
struct quaddata **(*divide_data) (struct quaddata *,
@@ -26,7 +39,6 @@
int (*division_check) (struct quaddata *, int),
int (*get_points) (struct quaddata *, struct quaddata *,
int))
-/* Initializes FUNCTIONS structure with given arguments */
{
struct multfunc *functions;
if (!(functions = (struct multfunc *)malloc(sizeof(struct multfunc)))) {
@@ -41,10 +53,10 @@
return functions;
}
+/*! Initializes tree_info using given arguments */
struct tree_info *MT_tree_info_new(struct multtree *root,
struct multfunc *functions, double dmin,
int kmax)
-/*Initializes TREE_INFO using given arguments */
{
struct tree_info *info;
if (!(info = (struct tree_info *)malloc(sizeof(struct tree_info)))) {
@@ -57,10 +69,10 @@
return info;
}
+/** Initializes multtree using given arguments */
struct multtree *MT_tree_new(struct quaddata *data,
struct multtree **leafs, struct multtree *parent,
int multant)
-/*Initializes TREE using given arguments */
{
struct multtree *tree;
if (!(tree = (struct multtree *)malloc(sizeof(struct multtree)))) {
@@ -74,21 +86,24 @@
}
-
+/*!
+ * First checks for dividing cond. (if n_points>=KMAX) and tree
+ * is a leaf by calling one of tree's functions (`division_check()`).
+ * If tree is not a leaf (is a node) uses function compare to determine
+ * into which "son" we need to insert the point and calls MT_insert()
+ * with this son as a n argument.
+ *
+ * If TREE is a leaf but we don't need to divide it (n_points<KMAX) then
+ * calls function `add_data(point, ...)` to add point to the data of tree
+ * and returns the result of `add_data()` (which returns 1 if the point is
+ * inserted and 0 if its ignored (when its too dense)).
+ *
+ * If `division_check()` returns true, calls MT_divide() and then calls
+ * MT_insert() to insert the point into divided tree and returns the
+ * result of MT_divide().
+ */
int MT_insert(struct triple *point,
struct tree_info *info, struct multtree *tree, int n_leafs)
-/*First checks for dividing cond. (if n_points>=KMAX) and TREE is a leaf
- by calling one of tree's functions (division_check()).
- If TREE is not a leaf (is a node) uses function compare to determine
- into which "son" we need to insert the point and calls MT_insert()
- with this son as a n argument.
- If TREE is a leaf but we don't need to divide it (n_points<KMAX) then
- calls function add_data(POINT) to add POINT to the data of TREE and
- returns the result of add_data() (which returns 1 if the point is
- inserted and 0 if its ignored (when its too dense)).
- If Division_check returns true, calls MT_divide(TREE) and then calls
- insert_quad() to insert the POINT into divided TREE and returns the
- result of MT_divide(). */
{
int j = 0, i, k, comp;
@@ -134,9 +149,13 @@
}
+/*!
+ * Divide a tree
+ *
+ * Divides the tree by calling one of tree's functions (divide_data())
+ * and returns the result of divide_data()
+ */
int MT_divide(struct tree_info *info, struct multtree *tree, int n_leafs)
-/* Divides the tree by calling one of tree's functions (divide_data())
- and returns the result of divide_data() */
{
int i;
struct quaddata **datas;
@@ -161,15 +180,22 @@
-
-int MT_region_data(struct tree_info *info, struct multtree *tree, struct quaddata *data, int MAX, /* max number of points we can add (KMAX2) */
- int n_leafs)
- /* Gets points inside the region defined by DATA from TREE and
- adds them to DATA. If the number of eligible
- point is more than MAX returns MAX+1 othervise returns number of points added
- to DATA.
- Uses tree's functions intersect() to find leafs that intersect given region
- and get_points() to get points from such leafs. */
+/*!
+ * Get points inside a region from a tree
+ *
+ * Gets points inside the region defined by DATA from TREE and
+ * adds them to DATA. If the number of eligible
+ * point is more than MAX returns MAX+1 otherwise returns number of points added
+ * to DATA.
+ *
+ * Uses tree's functions intersect() to find leafs that intersect given region
+ * and get_points() to get points from such leafs.
+ */
+int MT_region_data(struct tree_info *info, struct multtree *tree,
+ struct quaddata *data,
+ int MAX, /*!< max number of points we can add (KMAX2) */
+ int n_leafs
+ )
{
int n = 0, j;
Modified: grass/trunk/lib/rst/qtree/qtree.h
===================================================================
--- grass/trunk/lib/rst/qtree/qtree.h 2015-09-07 17:28:31 UTC (rev 66142)
+++ grass/trunk/lib/rst/qtree/qtree.h 2015-09-07 20:11:46 UTC (rev 66143)
@@ -1,12 +1,24 @@
-
-/*-
- * Written by H. Mitasova, I. Kosinovsky, D. Gerdes Fall 1993
- * University of Illinois
- * US Army Construction Engineering Research Lab
- * Copyright 1993, H. Mitasova (University of Illinois),
- * I. Kosinovsky, (USA-CERL), and D.Gerdes (USA-CERL)
+/*!
+ * \file qtree.c
*
- * updated by Mitasova Nov. 96, no changes necessary
+ * \author
+ * H. Mitasova, I. Kosinovsky, D. Gerdes, Fall 1993,
+ * University of Illinois and
+ * US Army Construction Engineering Research Lab
+ *
+ * \author H. Mitasova (University of Illinois),
+ * \author I. Kosinovsky, (USA-CERL)
+ * \author D.Gerdes (USA-CERL)
+ *
+ * \author updated/checked by Mitasova Nov. 96 (no changes necessary)
+ *
+ * \copyright
+ * (C) 1993-1996 by Helena Mitasova and the GRASS Development Team
+ *
+ * \copyright
+ * This program is free software under the
+ * GNU General Public License (>=v2).
+ * Read the file COPYING that comes with GRASS for details.
*/
@@ -17,6 +29,12 @@
#define VOID_T char
+/*!
+ * Function table for a tree
+ *
+ * From object oriented point of view, this structure represents
+ * a class or a virtual table of functions/methods for a class.
+ */
struct multfunc
{
int (*compare) ();
Added: grass/trunk/lib/rst/rst.dox
===================================================================
--- grass/trunk/lib/rst/rst.dox (rev 0)
+++ grass/trunk/lib/rst/rst.dox 2015-09-07 20:11:46 UTC (rev 66143)
@@ -0,0 +1,66 @@
+/*! \page rst Regularized spline with tension interpolation library
+
+\tableofcontents
+
+
+Including and linking
+=====================
+
+Include interpf.h, qtree.h and dataquad.h header files according
+to which you need:
+
+ #include <grass/interpf.h>
+ #include <grass/qtree.h>
+ #include <grass/dataquad.h>
+
+Extend `LIBES` and `DEPENDENCIES` in your `Makefile` by the following:
+
+ LIBES = $(INTERPFLLIB) $(GMATHLIB)
+ DEPENDENCIES = $(INTERPFLDEP) $(GMATHDEP)
+
+
+Main functions and structures
+=============================
+
+Main functions include:
+- IL_init_params_2d()
+- IL_init_func_2d()
+- IL_vector_input_data_2d()
+- IL_create_bitmask()
+- IL_resample_interp_segments_2d()
+- IL_resample_output_2d()
+- IL_output_2d()
+
+Main data structures include:
+- interp_params
+- tree_info
+- \ref multtree
+
+
+Example usages
+==============
+
+- \gmod{v.surf.rst}
+- \gmod{r.resamp.rst}
+
+
+References
+==========
+
+The methods are described in the following papers.
+Please, use these papers as references in your publications when you
+used the library or derived modules.
+
+- Mitasova, H., and Mitas, L., 1993,
+ Interpolation by Regularized Spline with Tension:
+ I. Theory and implementation. Mathematical Geology, 25, 641-55.
+- Mitasova, H., and Hofierka, L., 1993
+ Interpolation by Regularized Spline with Tension:
+ II. Application to terrain modeling and surface geometry analysis.
+ Mathematical Geology, 25, 657-69.
+- Mitasova, H., Mitas, L., Brown, W.M., Gerdes, D.P., Kosinovsky, I.,
+ Baker, T., 1995, Modeling spatially and temporally
+ distributed phenomena: New methods and tools for GRASS GIS.
+ International Journal of Geographic Information Systems,9(4), 433-46.
+
+*/
More information about the grass-commit
mailing list