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
/******************************************************************************
* This file is part of libome *
* Copyright (C) 2025 Arnd Behring, Kay Schoenwald *
* SPDX-License-Identifier: GPL-3.0-or-later *
******************************************************************************/
#ifndef LIBOME_POLAGGQ_H
#define LIBOME_POLAGGQ_H
#ifdef __cplusplus
#include <ome/ome_type_aliases.h>
#include <ome/rpd_distribution.h>
namespace ome
{
/**
* \addtogroup ome-data
* \{
* \defgroup ome-data-polAggQ polAggQ
* \brief Data objects for \f$\Delta A_{gg,Q}\f$
* \{
*/
/// Regular part of \f$\Delta A_{gg,Q}\f$
extern const ome_as<double> polAggQ_reg;
/// Plus part of \f$\Delta A_{gg,Q}\f$
extern const ome_as_plus<double> polAggQ_plus;
/// Delta part of \f$\Delta A_{gg,Q}\f$
extern const ome_as_const<double> polAggQ_delta;
/// Container for regular, plus and delta part of \f$\Delta A_{gg,Q}\f$
extern const rpd_distribution<ome_as_view<double>, ome_as_plus_view<double>, ome_as_const_view<double>> polAggQ;
/**
* \}
* \}
*/
}
extern "C"
{
#endif /* ifdef __cpluscplus */
/* C interface */
/**
* \addtogroup c-interface
* \{
* \defgroup c-interface-polAggQ polAggQ
* \brief C interface functions for \f$\Delta A_{gg,Q}\f$
* \{
* \name Evaluation
* \{
*/
/// Evaluate regular part of \f$\Delta A_{gg,Q}\f$
double ome_polAggQ_reg(double as, double LM, double NF, double x);
/// Evaluate regular part of \f$\Delta A_{gg,Q}\f$ truncated in \f$a_s\f$
double ome_polAggQ_reg_trunc_as(int trunc_order, double as, double LM, double NF, double x);
/// Evaluate a given \f$a_s\f$ coefficient of the regular part of \f$\Delta A_{gg,Q}\f$
double ome_polAggQ_reg_coeff_as(int order_as, double LM, double NF, double x);
/// Evaluate a given \f$a_s\f$, \f$L_M\f$ coefficient of the regular part of \f$\Delta A_{gg,Q}\f$
double ome_polAggQ_reg_coeff_as_LM(int order_as, int order_LM, double NF, double x);
/// Evaluate a given \f$a_s\f$, \f$L_M\f$, \f$N_F\f$ coefficient of the regular part of \f$\Delta A_{gg,Q}\f$
double ome_polAggQ_reg_coeff_as_LM_NF(int order_as, int order_LM, int order_NF, double x);
/// Evaluate plus part of \f$\Delta A_{gg,Q}\f$
double ome_polAggQ_plus(double as, double LM, double NF, double x);
/// Evaluate plus part of \f$\Delta A_{gg,Q}\f$ truncated in \f$a_s\f$
double ome_polAggQ_plus_trunc_as(int trunc_order, double as, double LM, double NF, double x);
/// Evaluate a given \f$a_s\f$ coefficient of the plus part of \f$\Delta A_{gg,Q}\f$
double ome_polAggQ_plus_coeff_as(int order_as, double LM, double NF, double x);
/// Evaluate a given \f$a_s\f$, \f$L_M\f$ coefficient of the plus part of \f$\Delta A_{gg,Q}\f$
double ome_polAggQ_plus_coeff_as_LM(int order_as, int order_LM, double NF, double x);
/// Evaluate a given \f$a_s\f$, \f$L_M\f$, \f$N_F\f$ coefficient of the plus part of \f$\Delta A_{gg,Q}\f$
double ome_polAggQ_plus_coeff_as_LM_NF(int order_as, int order_LM, int order_NF, double x);
/// Evaluate delta part of \f$\Delta A_{gg,Q}\f$
double ome_polAggQ_delta(double as, double LM, double NF);
/// Evaluate delta part of \f$\Delta A_{gg,Q}\f$ truncated in \f$a_s\f$
double ome_polAggQ_delta_trunc_as(int trunc_order, double as, double LM, double NF);
/// Evaluate a given \f$a_s\f$ coefficient of the delta part of \f$\Delta A_{gg,Q}\f$
double ome_polAggQ_delta_coeff_as(int order_as, double LM, double NF);
/// Evaluate a given \f$a_s\f$, \f$L_M\f$ coefficient of the delta part of \f$\Delta A_{gg,Q}\f$
double ome_polAggQ_delta_coeff_as_LM(int order_as, int order_LM, double NF);
/// Evaluate a given \f$a_s\f$, \f$L_M\f$, \f$N_F\f$ coefficient of the delta part of \f$\Delta A_{gg,Q}\f$
double ome_polAggQ_delta_coeff_as_LM_NF(int order_as, int order_LM, int order_NF);
/**
* \}
*
* \name Range getters
* \{
*/
/// Get minimum power in \f$a_s\f$ of regular part of \f$\Delta A_{gg,Q}\f$
int ome_polAggQ_reg_min_power();
/// Get maximum power in \f$a_s\f$ of regular part of \f$\Delta A_{gg,Q}\f$
int ome_polAggQ_reg_max_power();
/// Get minimum power in \f$L_M\f$ of a specific \f$a_s\f$ coefficient of the regular part of \f$\Delta A_{gg,Q}\f$
int ome_polAggQ_reg_coeff_as_min_power(int order_as);
/// Get maximum power in \f$L_M\f$ of a specific \f$a_s\f$ coefficient of the regular part of \f$\Delta A_{gg,Q}\f$
int ome_polAggQ_reg_coeff_as_max_power(int order_as);
/// Get minimum power in \f$N_F\f$ of a specific \f$a_s\f$, \f$L_M\f$ coefficient of the regular part of \f$\Delta A_{gg,Q}\f$
int ome_polAggQ_reg_coeff_as_LM_min_power(int order_as, int order_LM);
/// Get maximum power in \f$N_F\f$ of a specific \f$a_s\f$, \f$L_M\f$ coefficient of the regular part of \f$\Delta A_{gg,Q}\f$
int ome_polAggQ_reg_coeff_as_LM_max_power(int order_as, int order_LM);
/// Get minimum power in \f$a_s\f$ of plus part of \f$\Delta A_{gg,Q}\f$
int ome_polAggQ_plus_min_power();
/// Get maximum power in \f$a_s\f$ of plus part of \f$\Delta A_{gg,Q}\f$
int ome_polAggQ_plus_max_power();
/// Get minimum power in \f$L_M\f$ of a specific \f$a_s\f$ coefficient of the plus part of \f$\Delta A_{gg,Q}\f$
int ome_polAggQ_plus_coeff_as_min_power(int order_as);
/// Get maximum power in \f$L_M\f$ of a specific \f$a_s\f$ coefficient of the plus part of \f$\Delta A_{gg,Q}\f$
int ome_polAggQ_plus_coeff_as_max_power(int order_as);
/// Get minimum power in \f$N_F\f$ of a specific \f$a_s\f$, \f$L_M\f$ coefficient of the plus part of \f$\Delta A_{gg,Q}\f$
int ome_polAggQ_plus_coeff_as_LM_min_power(int order_as, int order_LM);
/// Get maximum power in \f$N_F\f$ of a specific \f$a_s\f$, \f$L_M\f$ coefficient of the plus part of \f$\Delta A_{gg,Q}\f$
int ome_polAggQ_plus_coeff_as_LM_max_power(int order_as, int order_LM);
/// Get minimum power in \f$a_s\f$ of delta part of \f$\Delta A_{gg,Q}\f$
int ome_polAggQ_delta_min_power();
/// Get maximum power in \f$a_s\f$ of delta part of \f$\Delta A_{gg,Q}\f$
int ome_polAggQ_delta_max_power();
/// Get minimum power in \f$L_M\f$ of a specific \f$a_s\f$ coefficient of the delta part of \f$\Delta A_{gg,Q}\f$
int ome_polAggQ_delta_coeff_as_min_power(int order_as);
/// Get maximum power in \f$L_M\f$ of a specific \f$a_s\f$ coefficient of the delta part of \f$\Delta A_{gg,Q}\f$
int ome_polAggQ_delta_coeff_as_max_power(int order_as);
/// Get minimum power in \f$N_F\f$ of a specific \f$a_s\f$, \f$L_M\f$ coefficient of the delta part of \f$\Delta A_{gg,Q}\f$
int ome_polAggQ_delta_coeff_as_LM_min_power(int order_as, int order_LM);
/// Get maximum power in \f$N_F\f$ of a specific \f$a_s\f$, \f$L_M\f$ coefficient of the delta part of \f$\Delta A_{gg,Q}\f$
int ome_polAggQ_delta_coeff_as_LM_max_power(int order_as, int order_LM);
/**
* \}
* \}
* \}
*/
#ifdef __cplusplus
}
#endif
#endif