Definition

The function sibson_gradient_fitting is parameterized by a traits class that defines the primitives used by the algorithm. The concept GradientFittingTraits defines this common set of requirements.

Types

 GradientFittingTraits::FT The number type must follow the model FieldNumberType. GradientFittingTraits::Point_d The point type on which the function is defined and interpolated. GradientFittingTraits::Vector_d The corresponding vector type. GradientFittingTraits::Aff_transformation_d defines a matrix type. Must provide the following member functions : Aff_transformation tr.inverse () which gives the inverse transformation, and Aff_transformation tr.transform( Vector v) which returns the multiplication of tr with v. GradientFittingTraits::Construct_vector_d A constructor object for Vector_d. Provides : Vector_d operator() (Point_d a, Point_d b) which produces the vector b - a and Vector_d operator() (Null_vector NULL_VECTOR) which introduces the null vector. GradientFittingTraits::Construct_scaled_vector_d Constructor object for Vector_d. Provides : Vector_d operator() (Vector_d v,FT scale) which produces the vector v scaled by a factor scale. GradientFittingTraits::Construct_null_matrix_d Constructor object for Aff_transformation_d. Provides : Aff_transformation_d operator()() which introduces an affine transformation whose matrix has only zero entries. GradientFittingTraits::Construct_scaling_matrix_d Constructor object for Aff_transformation_d. Provides : Aff_transformation_d operator()(FT scale) which introduces a scaling by a scale factor scale. GradientFittingTraits::Construct_sum_matrix_d Constructor object for Aff_transformation_d. Provides : Aff_transformation_d operator()(Aff_transformation_d tr1, Aff_transformation_d tr2) which returns the sum of the two matrices representing tr1 and tr2. GradientFittingTraits::Construct_outer_product_d Constructor object for Aff_transformation_d. Provides : Aff_transformation_d operator()(Vector v) which returns the outerproduct, i.e. the quadratic matrix vtv.

Operations

The following functions that create instances of the above constructor object types must exist.
 Construct_vector_d traits.construct_vector_d_object () Construct_scaled_vector_d traits.construct_scaled_vector_d_object () Construct_null_matrix_d traits.construct_null_matrix_d_object () Construct_sum_matrix_d traits.construct_sum_matrix_d_object () Construct_outer_product_d traits.construct_outer_product_d_object ()