CpgFunctionPolynomial

CpgFunctionPolynomial — Custom user defined piecewise polynomial

Synopsis


#include <cpg-network/cpg-function-polynomial.h>

                    CpgFunctionPolynomialPiece;
                    CpgFunctionPolynomialClass;
                    CpgFunctionPolynomial;
CpgFunctionPolynomial * cpg_function_polynomial_new     (gchar const *name);
CpgFunctionPolynomialPiece * cpg_function_polynomial_piece_new
                                                        (gdouble begin,
                                                         gdouble end,
                                                         gdouble *coefficients,
                                                         guint num_coefficients);
void                cpg_function_polynomial_add         (CpgFunctionPolynomial *function,
                                                         CpgFunctionPolynomialPiece *piece);
void                cpg_function_polynomial_remove      (CpgFunctionPolynomial *function,
                                                         CpgFunctionPolynomialPiece *piece);
void                cpg_function_polynomial_clear       (CpgFunctionPolynomial *function);
GSList *            cpg_function_polynomial_get_pieces  (CpgFunctionPolynomial *function);
gdouble             cpg_function_polynomial_piece_get_begin
                                                        (CpgFunctionPolynomialPiece *piece);
gdouble             cpg_function_polynomial_piece_get_end
                                                        (CpgFunctionPolynomialPiece *piece);
void                cpg_function_polynomial_piece_set_begin
                                                        (CpgFunctionPolynomialPiece *piece,
                                                         gdouble begin);
void                cpg_function_polynomial_piece_set_end
                                                        (CpgFunctionPolynomialPiece *piece,
                                                         gdouble end);
gdouble *           cpg_function_polynomial_piece_get_coefficients
                                                        (CpgFunctionPolynomialPiece *piece,
                                                         guint *num);
void                cpg_function_polynomial_piece_set_coefficients
                                                        (CpgFunctionPolynomialPiece *piece,
                                                         gdouble *coefficients,
                                                         guint num);

Object Hierarchy

  GObject
   +----CpgObject
         +----CpgFunction
               +----CpgFunctionPolynomial

Description

This class provides a specialized custom user function which defines and evaluates piecewise polynomials. The piece polynomials can be specified in terms of the interval in which they are evaluated and the polynomial coefficients. Note that each polynomial will be evaluated on the normalized interval 0 to 1.

In addition, you can automatically evaluate the Nth derivative of the polynomial by use of the optional second argument of the function.

Details

CpgFunctionPolynomialPiece

typedef struct _CpgFunctionPolynomialPiece CpgFunctionPolynomialPiece;


CpgFunctionPolynomialClass

typedef struct {
	CpgFunctionClass parent_class;
} CpgFunctionPolynomialClass;


CpgFunctionPolynomial

typedef struct _CpgFunctionPolynomial CpgFunctionPolynomial;


cpg_function_polynomial_new ()

CpgFunctionPolynomial * cpg_function_polynomial_new     (gchar const *name);

Create a new polynomial function. This is a special kind of user function which calculates a piecewise polynomial. The function can be called with one mandatory argument, which is the point at which to evaluate the piecewise polynomial (t: [0, 1]). The second argument is optional and determines the order of derivation of the polynomial (default being 0).

name :

The function name

Returns :

A CpgFunctionPolynomial

cpg_function_polynomial_piece_new ()

CpgFunctionPolynomialPiece * cpg_function_polynomial_piece_new
                                                        (gdouble begin,
                                                         gdouble end,
                                                         gdouble *coefficients,
                                                         guint num_coefficients);

Create a new polynomial to be used in a piecewise polynomial function. The coefficients are specified from high to low order.

begin :

The polynomial interval begin

end :

The polynomial interval end

coefficients :

The coefficients

num_coefficients :

The number of coefficients provided in coefficients

Returns :

A CpgFunctionPolynomialPiece

cpg_function_polynomial_add ()

void                cpg_function_polynomial_add         (CpgFunctionPolynomial *function,
                                                         CpgFunctionPolynomialPiece *piece);

Add a polynomial piece.


cpg_function_polynomial_remove ()

void                cpg_function_polynomial_remove      (CpgFunctionPolynomial *function,
                                                         CpgFunctionPolynomialPiece *piece);

Remove a polynomial piece.


cpg_function_polynomial_clear ()

void                cpg_function_polynomial_clear       (CpgFunctionPolynomial *function);

Remove all the polynomial pieces.

function :

A CpgFunctionPolynomial

cpg_function_polynomial_get_pieces ()

GSList *            cpg_function_polynomial_get_pieces  (CpgFunctionPolynomial *function);

Get a list of the polynomials which make up the function. This returns the internally used list which should not be modified or freed.

function :

A CpgFunctionPolynomial

Returns :

A GSList of CpgFunctionPolynomialPiece

cpg_function_polynomial_piece_get_begin ()

gdouble             cpg_function_polynomial_piece_get_begin
                                                        (CpgFunctionPolynomialPiece *piece);

Get the interval begin of the polynomial.

piece :

A CpgFunctionPolynomialPiece

Returns :

the interval begin of the polynomial

cpg_function_polynomial_piece_get_end ()

gdouble             cpg_function_polynomial_piece_get_end
                                                        (CpgFunctionPolynomialPiece *piece);

Get the interval end of the polynomial.

piece :

A CpgFunctionPolynomialPiece

Returns :

the interval end of the polynomial

cpg_function_polynomial_piece_set_begin ()

void                cpg_function_polynomial_piece_set_begin
                                                        (CpgFunctionPolynomialPiece *piece,
                                                         gdouble begin);

Set the interval begin of the polynomial.

piece :

A CpgFunctionPolynomialPiece

begin :

the interval begin of the polynomial

cpg_function_polynomial_piece_set_end ()

void                cpg_function_polynomial_piece_set_end
                                                        (CpgFunctionPolynomialPiece *piece,
                                                         gdouble end);

Set the interval end of the polynomial.

piece :

A CpgFunctionPolynomialPiece

end :

the interval end of the polynomial

cpg_function_polynomial_piece_get_coefficients ()

gdouble *           cpg_function_polynomial_piece_get_coefficients
                                                        (CpgFunctionPolynomialPiece *piece,
                                                         guint *num);

Get the polynomial coefficients. The order of the coefficients is from high to low

piece :

A CpgFunctionPolynomialPiece

num :

Return value for the number of coefficients

Returns :

the polynomial coefficients

cpg_function_polynomial_piece_set_coefficients ()

void                cpg_function_polynomial_piece_set_coefficients
                                                        (CpgFunctionPolynomialPiece *piece,
                                                         gdouble *coefficients,
                                                         guint num);

Set the coefficients of the polynomial. The order of the coefficients is from high to low.

piece :

A CpgFunctionPolynomialPiece

coefficients :

The polynomial coefficients

num :

The number of coefficients provided in coefficients