## cdline

cdline — Critical dimension

## Synopsis

    #include <libprocess/gwyprocess.h>

                        GwyCDLineBuiltin;
                        GwyCDLine;
                        GwyCDLineClass;
    GwyInventory*       gwy_cdlines                         (void);
    const gchar*        gwy_cdline_get_name                 (GwyCDLine *cdline);
    const gchar*        gwy_cdline_get_definition           (GwyCDLine *cdline);
    const gchar*        gwy_cdline_get_param_name           (GwyCDLine *cdline,
                                                             gint param);
    gdouble             gwy_cdline_get_param_default        (GwyCDLine *cdline,
                                                             gint param);
    GwySIUnit*          gwy_cdline_get_param_units          (GwyCDLine *cdline,
                                                             gint param,
                                                             GwySIUnit *siunit_x,
                                                             GwySIUnit *siunit_y);
    gint                gwy_cdline_get_nparams              (GwyCDLine *cdline);
    void                gwy_cdline_fit                      (GwyCDLine *cdline,
                                                             gint n_dat,
                                                             const gdouble *x,
                                                             const gdouble *y,
                                                             gint n_param,
                                                             gdouble *params,
                                                             gdouble *err,
                                                             const gboolean *fixed_param,
                                                             gpointer user_data);
    gdouble             gwy_cdline_get_value                (GwyCDLine *cdline,
                                                             gdouble x,
                                                             const gdouble *params,
                                                             gboolean *fres);

## Object Hierarchy

      GObject
       +----GwyResource
             +----GwyCDLine

## Description

## Details

### GwyCDLineBuiltin

    typedef struct _GwyCDLineBuiltin GwyCDLineBuiltin;

### GwyCDLine

    typedef struct _GwyCDLine GwyCDLine;

### GwyCDLineClass

    typedef struct {
        GwyResourceClass parent_class;

        void (*reserved1)(void);
        void (*reserved2)(void);
    } GwyCDLineClass;

### gwy_cdlines ()

    GwyInventory*       gwy_cdlines                         (void);

Gets inventory with all the critical dimension evaluators.

Returns : | Critical dimension evaluator inventory.

### gwy_cdline_get_name ()

    const gchar*        gwy_cdline_get_name                 (GwyCDLine *cdline);

Return cdline name (its unique identifier).

`cdline` : | A critical dimension evaluator.
Returns : | The cdline name.

### gwy_cdline_get_definition ()

    const gchar*        gwy_cdline_get_definition           (GwyCDLine *cdline);

Gets the name of the image file with critical dimension evaluator description.

`cdline` : | A critical dimension evaluator.
Returns : | The cdline function definition.

### gwy_cdline_get_param_name ()

    const gchar*        gwy_cdline_get_param_name           (GwyCDLine *cdline,
                                                             gint param);

Returns the name of a critical dimension evaluator parameter.

The name may contain Pango markup.

`cdline` : | A NL evaluator function cdline.
`param` : | A parameter number.
Returns : | The name of parameter `param`.

### gwy_cdline_get_param_default ()

    gdouble             gwy_cdline_get_param_default        (GwyCDLine *cdline,
                                                             gint param);

### Warning

`gwy_cdline_get_param_default` is deprecated and should not be used in newly-written code.

Returns a constant default parameter value.

`cdline` : | A NL evaluator function cdline.
`param` : | A parameter number.
Returns : | The default parameter value, unrelated to the actual data fitted. It is worthless.

### gwy_cdline_get_param_units ()

    GwySIUnit*          gwy_cdline_get_param_units          (GwyCDLine *cdline,
                                                             gint param,
                                                             GwySIUnit *siunit_x,
                                                             GwySIUnit *siunit_y);

Derives the SI unit of a critical dimension parameter from the units of abscissa and ordinate.

`cdline` : | A critical dimension evaluator.
`param` : | A parameter number.
`siunit_x` : | SI unit of abscissa.
`siunit_y` : | SI unit of ordinate.
Returns : | A newly created GwySIUnit with the units of the parameter `param`. If the units of `param` are not representable as GwySIUnit, the result is unitless (i.e. it will be presented as a mere number).

Since 2.5

### gwy_cdline_get_nparams ()

    gint                gwy_cdline_get_nparams              (GwyCDLine *cdline);

Return the number of parameters of `cdline`.

`cdline` : | A critical dimension evaluator.
Returns : | The number of function parameters.

### gwy_cdline_fit ()

    void                gwy_cdline_fit                      (GwyCDLine *cdline,
                                                             gint n_dat,
                                                             const gdouble *x,
                                                             const gdouble *y,
                                                             gint n_param,
                                                             gdouble *params,
                                                             gdouble *err,
                                                             const gboolean *fixed_param,
                                                             gpointer user_data);

Performs a critical dimension evaulation (fit).

`cdline` : | A critical dimension evaluator.
`n_dat` : | The number of data points (number of items in `x` and `y`).
`x` : | Abscissa points.
`y` : | Ordinate points.
`n_param` : | The number of parameters. This argument is ignored as the evaluator knows how many parameters it has, it is safe to pass 0.
`params` : | Array to store fitted parameter values to.
`err` : | Array to store parameter errros to, may be `NULL`.
`fixed_param` : | Which parameters should be treated as fixed. It is ignored, pass `NULL`.
`user_data` : | Ignored, pass `NULL`.

### gwy_cdline_get_value ()

    gdouble             gwy_cdline_get_value                (GwyCDLine *cdline,
                                                             gdouble x,
                                                             const gdouble *params,
                                                             gboolean *fres);

Calculates critical dimension function value in a single point with given parameters.

`cdline` : | A critical dimension evaluator.
`x` : | The point to compute value at.
`params` : | Evaluator parameter values.
`fres` : | Set to `TRUE` if succeeds, `FALSE` on failure.
Returns : | The function value.