libome-rs 0.0.1

Rust bindings for libome, a C++ library for massive QCD operator matrix elements in x-space.
Documentation
/******************************************************************************
 * This file is part of libome                                                *
 * Copyright (C) 2025 Arnd Behring, Kay Schoenwald                            *
 * SPDX-License-Identifier: GPL-3.0-or-later                                  *
 ******************************************************************************/

#ifndef LIBOME_AQQQNSODD_H
#define LIBOME_AQQQNSODD_H

#ifdef __cplusplus

#include <ome/ome_type_aliases.h>
#include <ome/rpd_distribution.h>

namespace ome
{
  /**
   * \addtogroup ome-data
   * \{
   * \defgroup ome-data-AqqQNSOdd AqqQNSOdd
   * \brief Data objects for \f$A_{qq,Q}^{\text{NS},-}\f$
   * \{
   */
  /// Regular part of \f$A_{qq,Q}^{\text{NS},-}\f$
  extern const ome_as<double> AqqQNSOdd_reg;

  /// Plus part of \f$A_{qq,Q}^{\text{NS},-}\f$
  extern const ome_as_plus<double> AqqQNSOdd_plus;

  /// Delta part of \f$A_{qq,Q}^{\text{NS},-}\f$
  extern const ome_as_const<double> AqqQNSOdd_delta;

  /// Container for regular, plus and delta part of \f$A_{qq,Q}^{\text{NS},-}\f$
  extern const rpd_distribution<ome_as_view<double>, ome_as_plus_view<double>, ome_as_const_view<double>> AqqQNSOdd;

  /**
   * \}
   * \}
   */
}

extern "C"
{
#endif /* ifdef __cpluscplus */

/* C interface */
/**
 * \addtogroup c-interface
 * \{
 * \defgroup c-interface-AqqQNSOdd AqqQNSOdd
 * \brief C interface functions for \f$A_{qq,Q}^{\text{NS},-}\f$
 * \{
 * \name Evaluation
 * \{
 */

/// Evaluate regular part of \f$A_{qq,Q}^{\text{NS},-}\f$
double ome_AqqQNSOdd_reg(double as, double LM, double NF, double x);
/// Evaluate regular part of \f$A_{qq,Q}^{\text{NS},-}\f$ truncated in \f$a_s\f$
double ome_AqqQNSOdd_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$A_{qq,Q}^{\text{NS},-}\f$
double ome_AqqQNSOdd_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$A_{qq,Q}^{\text{NS},-}\f$
double ome_AqqQNSOdd_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$A_{qq,Q}^{\text{NS},-}\f$
double ome_AqqQNSOdd_reg_coeff_as_LM_NF(int order_as, int order_LM, int order_NF, double x);

/// Evaluate plus part of \f$A_{qq,Q}^{\text{NS},-}\f$
double ome_AqqQNSOdd_plus(double as, double LM, double NF, double x);
/// Evaluate plus part of \f$A_{qq,Q}^{\text{NS},-}\f$ truncated in \f$a_s\f$
double ome_AqqQNSOdd_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$A_{qq,Q}^{\text{NS},-}\f$
double ome_AqqQNSOdd_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$A_{qq,Q}^{\text{NS},-}\f$
double ome_AqqQNSOdd_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$A_{qq,Q}^{\text{NS},-}\f$
double ome_AqqQNSOdd_plus_coeff_as_LM_NF(int order_as, int order_LM, int order_NF, double x);

/// Evaluate delta part of \f$A_{qq,Q}^{\text{NS},-}\f$
double ome_AqqQNSOdd_delta(double as, double LM, double NF);
/// Evaluate delta part of \f$A_{qq,Q}^{\text{NS},-}\f$ truncated in \f$a_s\f$
double ome_AqqQNSOdd_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$A_{qq,Q}^{\text{NS},-}\f$
double ome_AqqQNSOdd_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$A_{qq,Q}^{\text{NS},-}\f$
double ome_AqqQNSOdd_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$A_{qq,Q}^{\text{NS},-}\f$
double ome_AqqQNSOdd_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$A_{qq,Q}^{\text{NS},-}\f$
int ome_AqqQNSOdd_reg_min_power();
/// Get maximum power in \f$a_s\f$ of regular part of \f$A_{qq,Q}^{\text{NS},-}\f$
int ome_AqqQNSOdd_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$A_{qq,Q}^{\text{NS},-}\f$
int ome_AqqQNSOdd_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$A_{qq,Q}^{\text{NS},-}\f$
int ome_AqqQNSOdd_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$A_{qq,Q}^{\text{NS},-}\f$
int ome_AqqQNSOdd_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$A_{qq,Q}^{\text{NS},-}\f$
int ome_AqqQNSOdd_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$A_{qq,Q}^{\text{NS},-}\f$
int ome_AqqQNSOdd_plus_min_power();
/// Get maximum power in \f$a_s\f$ of plus part of \f$A_{qq,Q}^{\text{NS},-}\f$
int ome_AqqQNSOdd_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$A_{qq,Q}^{\text{NS},-}\f$
int ome_AqqQNSOdd_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$A_{qq,Q}^{\text{NS},-}\f$
int ome_AqqQNSOdd_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$A_{qq,Q}^{\text{NS},-}\f$
int ome_AqqQNSOdd_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$A_{qq,Q}^{\text{NS},-}\f$
int ome_AqqQNSOdd_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$A_{qq,Q}^{\text{NS},-}\f$
int ome_AqqQNSOdd_delta_min_power();
/// Get maximum power in \f$a_s\f$ of delta part of \f$A_{qq,Q}^{\text{NS},-}\f$
int ome_AqqQNSOdd_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$A_{qq,Q}^{\text{NS},-}\f$
int ome_AqqQNSOdd_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$A_{qq,Q}^{\text{NS},-}\f$
int ome_AqqQNSOdd_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$A_{qq,Q}^{\text{NS},-}\f$
int ome_AqqQNSOdd_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$A_{qq,Q}^{\text{NS},-}\f$
int ome_AqqQNSOdd_delta_coeff_as_LM_max_power(int order_as, int order_LM);

/**
 * \}
 * \}
 * \}
 */

#ifdef __cplusplus
}
#endif
#endif