This file is indexed.

/usr/include/gwyddion/libgwyddion/gwynlfit.h is in libgwyddion20-dev 2.50-2.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
/*
 *  $Id: gwynlfit.h 20678 2017-12-18 18:26:55Z yeti-dn $
 *  Copyright (C) 2000-2003 Martin Siler.
 *  Copyright (C) 2004-2016 David Necas (Yeti), Petr Klapetek.
 *  E-mail: yeti@gwyddion.net, klapetek@gwyddion.net.
 *
 *  This program is free software; you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation; either version 2 of the License, or
 *  (at your option) any later version.
 *
 *  This program is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 *
 *  You should have received a copy of the GNU General Public License
 *  along with this program; if not, write to the Free Software
 *  Foundation, Inc., 51 Franklin Street, Fifth Floor,
 *  Boston, MA 02110-1301, USA.
 */

#ifndef __GWY_NLFIT_H__
#define __GWY_NLFIT_H__

#include <glib.h>
#include <libgwyddion/gwyutils.h>

G_BEGIN_DECLS

typedef  gdouble (*GwyNLFitFunc)(gdouble x,
                                 gint nparam,
                                 const gdouble *param,
                                 gpointer user_data,
                                 gboolean *success);

typedef  void (*GwyNLFitDerFunc)(gdouble x,
                                 gint nparam,
                                 const gdouble *param,
                                 const gboolean *fixed_param,
                                 GwyNLFitFunc func,
                                 gpointer user_data,
                                 gdouble *der,
                                 gboolean *success);

typedef  gdouble (*GwyNLFitIdxFunc)(guint i,
                                    const gdouble *param,
                                    gpointer user_data,
                                    gboolean *success);

typedef  void (*GwyNLFitIdxDiffFunc)(guint i,
                                     const gdouble *param,
                                     const gboolean *fixed_param,
                                     GwyNLFitIdxFunc func,
                                     gpointer user_data,
                                     gdouble *der,
                                     gboolean *success);

typedef struct _GwyNLFitter GwyNLFitter;

struct _GwyNLFitter {
    GwyNLFitFunc fmarq;  /* fitting function */
    GwyNLFitDerFunc dmarq;  /* fitting function derivations */
    gint maxiter;  /* max number of iterations */
    gboolean eval;  /* success? */
    gdouble *covar; /* covariance matrix  */
    gdouble dispersion; /* dispersion */
    gdouble mfi;    /* fitting parameters --
                       fi, decrease, increase of lambda, minimum lambda */
    gdouble mdec;
    gdouble minc;
    gdouble mtol;
};

GwyNLFitter*   gwy_math_nlfit_new                 (GwyNLFitFunc func,
                                                   GwyNLFitDerFunc diff);
GwyNLFitter*   gwy_math_nlfit_new_idx             (GwyNLFitIdxFunc func,
                                                   GwyNLFitIdxDiffFunc diff);
void           gwy_math_nlfit_free                (GwyNLFitter *nlfit);
GwyNLFitter*   gwy_math_nlfit_copy                (GwyNLFitter *nlfit);
gdouble        gwy_math_nlfit_fit                 (GwyNLFitter *nlfit,
                                                   gint ndata,
                                                   const gdouble *x,
                                                   const gdouble *y,
                                                   gint nparam,
                                                   gdouble *param,
                                                   gpointer user_data);
gdouble        gwy_math_nlfit_fit_full            (GwyNLFitter *nlfit,
                                                   gint ndata,
                                                   const gdouble *x,
                                                   const gdouble *y,
                                                   const gdouble *weight,
                                                   gint nparam,
                                                   gdouble *param,
                                                   const gboolean *fixed_param,
                                                   const gint *link_map,
                                                   gpointer user_data);
gdouble        gwy_math_nlfit_fit_idx             (GwyNLFitter *nlfit,
                                                   guint ndata,
                                                   guint nparam,
                                                   gdouble *param,
                                                   gpointer user_data);
gdouble        gwy_math_nlfit_fit_idx_full        (GwyNLFitter *nlfit,
                                                   guint ndata,
                                                   guint nparam,
                                                   gdouble *param,
                                                   const gboolean *fixed_param,
                                                   const gint *link_map,
                                                   gpointer user_data);
gint           gwy_math_nlfit_get_max_iterations  (GwyNLFitter *nlfit);
void           gwy_math_nlfit_set_max_iterations  (GwyNLFitter *nlfit,
                                                   gint maxiter);
gboolean       gwy_math_nlfit_get_approx_geometric(GwyNLFitter *nlfit);
void           gwy_math_nlfit_set_approx_geometric(GwyNLFitter *nlfit,
                                                   gboolean setting);
gboolean       gwy_math_nlfit_succeeded           (GwyNLFitter *nlfit);
gdouble        gwy_math_nlfit_get_dispersion      (GwyNLFitter *nlfit);
gdouble        gwy_math_nlfit_get_correlations    (GwyNLFitter *nlfit,
                                                   gint par1,
                                                   gint par2);
gboolean       gwy_math_nlfit_get_eval            (GwyNLFitter *nlfit);
const gdouble* gwy_math_nlfit_get_covar           (GwyNLFitter *nlfit);
gint           gwy_math_nlfit_get_nparam          (GwyNLFitter *nlfit);
gdouble        gwy_math_nlfit_get_sigma           (GwyNLFitter *nlfit,
                                                   gint par);
void           gwy_math_nlfit_set_callbacks       (GwyNLFitter *nlfit,
                                                   GwySetFractionFunc set_fraction,
                                                   GwySetMessageFunc set_message);

void            gwy_math_nlfit_diff              (gdouble x,
                                                  gint nparam,
                                                  const gdouble *param,
                                                  const gboolean *fixed_param,
                                                  GwyNLFitFunc func,
                                                  gpointer user_data,
                                                  gdouble *der,
                                                  gboolean *success);
void            gwy_math_nlfit_derive            (gdouble x,
                                                  gint nparam,
                                                  const gdouble *param,
                                                  const gboolean *fixed_param,
                                                  GwyNLFitFunc func,
                                                  gpointer user_data,
                                                  gdouble *der,
                                                  gboolean *success);
void            gwy_math_nlfit_diff_idx          (guint i,
                                                  gint nparam,
                                                  const gdouble *param,
                                                  const gboolean *fixed_param,
                                                  GwyNLFitIdxFunc func,
                                                  gpointer user_data,
                                                  gdouble *der,
                                                  gboolean *success);

gint            gwy_math_nlfit_map_free_params   (const gboolean *fixed_param,
                                                  gint n,
                                                  gint *id_map);

G_END_DECLS

#endif /* __GWY_NFLIT_H__ */

/* vim: set cin et ts=4 sw=4 cino=>1s,e0,n0,f0,{0,}0,^0,\:1s,=0,g1s,h0,t0,+1s,c3,(0,u0 : */