File indexing completed on 2024-05-12 03:47:53
0001 /* 0002 File : nsl_sf_kernel.h 0003 Project : LabPlot 0004 Description : NSL special kernel functions 0005 -------------------------------------------------------------------- 0006 SPDX-FileCopyrightText: 2016 Stefan Gerlach <stefan.gerlach@uni.kn> 0007 SPDX-License-Identifier: GPL-2.0-or-later 0008 */ 0009 0010 #ifndef NSL_SF_KERNEL_H 0011 #define NSL_SF_KERNEL_H 0012 0013 /* see https://en.wikipedia.org/wiki/Kernel_%28statistics%29 */ 0014 0015 #define NSL_SF_KERNEL_TYPE_COUNT 9 0016 typedef enum { 0017 nsl_kernel_uniform, 0018 nsl_kernel_triangular, 0019 nsl_kernel_parabolic, 0020 nsl_kernel_quartic, 0021 nsl_kernel_triweight, 0022 nsl_kernel_tricube, 0023 nsl_kernel_cosine, 0024 nsl_kernel_gauss 0025 } nsl_kernel_type; 0026 0027 /* kernel on [-1:1] */ 0028 /* uniform */ 0029 double nsl_sf_kernel_uniform(double u); 0030 /* triangular */ 0031 double nsl_sf_kernel_triangular(double u); 0032 /* parabolic (Epanechnikov) */ 0033 double nsl_sf_kernel_parabolic(double u); 0034 /* quartic (biweight) */ 0035 double nsl_sf_kernel_quartic(double u); 0036 /* triweight */ 0037 double nsl_sf_kernel_triweight(double u); 0038 /* tricube */ 0039 double nsl_sf_kernel_tricube(double u); 0040 /* cosine */ 0041 double nsl_sf_kernel_cosine(double u); 0042 /* semi circle */ 0043 double nsl_sf_kernel_semicircle(double u); 0044 0045 /* kernel on (-inf,inf) */ 0046 /* Gaussian */ 0047 double nsl_sf_kernel_gaussian(double u); 0048 /* Cauchy */ 0049 double nsl_sf_kernel_cauchy(double u); 0050 /* Logistic */ 0051 double nsl_sf_kernel_logistic(double u); 0052 /* Picard */ 0053 double nsl_sf_kernel_picard(double u); 0054 /* Sigmoid */ 0055 double nsl_sf_kernel_sigmoid(double u); 0056 /* Silverman */ 0057 double nsl_sf_kernel_silverman(double u); 0058 0059 #endif /* NSL_SF_KERNEL_H */