LINE Solver (C++)
Templated C++ port of the LINE queueing solver
Loading...
Searching...
No Matches
api_dispatch_trace.cpp File Reference
#include "api_dispatch_detail.h"
#include <array>
#include <cctype>
#include <cmath>
#include <cstddef>
#include <functional>
#include <limits>
#include <string>
#include <vector>
#include "line/api/infer/infer_compute_ql_at_arrival.h"
#include "line/api/infer/infer_get_qlen_arrival.h"
#include "line/api/infer/infer_gibbs.h"
#include "line/api/infer/infer_lqn_findbyname.h"
#include "line/api/infer/infer_lqn_getobs.h"
#include "line/api/infer/infer_minps_setup.h"
#include "line/api/infer/infer_mlps.h"
#include "line/api/infer/infer_nhpp_ks.h"
#include "line/api/infer/infer_qmle.h"
#include "line/api/infer/infer_quick_model.h"
#include "line/api/infer/infer_rps.h"
#include "line/api/infer/infer_smp.h"
#include "line/api/infer/infer_variational.h"
#include "line/api/trace/mtrace_backward_moment.h"
#include "line/api/trace/mtrace_count.h"
#include "line/api/trace/mtrace_cov.h"
#include "line/api/trace/mtrace_cross_moment.h"
#include "line/api/trace/mtrace_forward_moment.h"
#include "line/api/trace/mtrace_iat2counts.h"
#include "line/api/trace/mtrace_joint.h"
#include "line/api/trace/mtrace_mean.h"
#include "line/api/trace/mtrace_merge.h"
#include "line/api/trace/mtrace_moment.h"
#include "line/api/trace/mtrace_moment_simple.h"
#include "line/api/trace/mtrace_pc.h"
#include "line/api/trace/mtrace_sigma.h"
#include "line/api/trace/mtrace_sigma2.h"
#include "line/api/trace/mtrace_split.h"
#include "line/api/trace/mtrace_summary.h"
#include "line/api/trace/trace_acf.h"
#include "line/api/trace/trace_bicov.h"
#include "line/api/trace/trace_gamma.h"
#include "line/api/trace/trace_iat2bins.h"
#include "line/api/trace/trace_iat2counts.h"
#include "line/api/trace/trace_idc.h"
#include "line/api/trace/trace_idi.h"
#include "line/api/trace/trace_joint.h"
#include "line/api/trace/trace_mean.h"
#include "line/api/trace/trace_pmf.h"
#include "line/api/trace/trace_scv.h"
#include "line/api/trace/trace_skew.h"
#include "line/api/trace/trace_summary.h"
#include "line/api/trace/trace_var.h"
#include "line/io/network_reader.h"
#include "line/io/network_writer.h"
Include dependency graph for api_dispatch_trace.cpp:

Go to the source code of this file.

Namespaces

namespace  line
 Conservation laws of a layered queueing network, enumerated from its structure.
namespace  line::reg

Macros

#define LINE_TRACE_SCALAR_OP(Name, fn, outkey)
#define LINE_MTRACE_DIRECTED_MOMENT_OP(Name, fn)
#define LINE_MTRACE_CROSS_MOMENT_OP(Name, fn)

Functions

void line::reg::register_api_trace (DispatchTable &t)
void line::reg::register_library_only_trace (LibraryOnlyTable &t)

Macro Definition Documentation

◆ LINE_MTRACE_CROSS_MOMENT_OP

#define LINE_MTRACE_CROSS_MOMENT_OP ( Name,
fn )
Value:
struct Name { \
template <class T> \
static Json run(Args& a) { \
const std::vector<T> Tv = a.vector<T>("T"); \
const std::vector<int> L = a.ints("L"); \
const unsigned k = a.uinteger("k"); \
a.done(); \
line::trace::fn<T>(Tv, L, k); \
Json out; \
out["MC"] = encode_matrix_defined(r.mc, r.count); \
return out; \
} \
};
Return value of mtrace_cross_moment.
Matrix< T > mc
(C x C) moments; entry undefined where count = 0
Matrix< long > count
(C x C) number of observed transitions

Definition at line 522 of file api_dispatch_trace.cpp.

◆ LINE_MTRACE_DIRECTED_MOMENT_OP

#define LINE_MTRACE_DIRECTED_MOMENT_OP ( Name,
fn )
Value:
struct Name { \
template <class T> \
static Json run(Args& a) { \
const std::vector<T> Tv = a.vector<T>("T"); \
const std::vector<int> A = a.ints("A"); \
const std::vector<unsigned> orders = \
nonneg_unsigned(a.ints("ORDERS"), #fn ": ORDERS"); \
const bool has_norm = a.has("NORM"); \
const bool norm = has_norm ? a.boolean("NORM", false) : false; \
a.opt("NORM"); \
a.done(); \
Json out; \
out["M"] = encode_matrix(has_norm ? line::trace::fn<T>(Tv, A, orders, norm) \
: line::trace::fn<T>(Tv, A, orders)); \
return out; \
} \
};

Definition at line 499 of file api_dispatch_trace.cpp.

◆ LINE_TRACE_SCALAR_OP

#define LINE_TRACE_SCALAR_OP ( Name,
fn,
outkey )
Value:
struct Name { \
template <class T> \
static Json run(Args& a) { \
const std::vector<T> S = a.vector<T>("S"); \
a.done(); \
Json out; \
out[outkey] = encode_scalar(line::trace::fn<T>(S)); \
return out; \
} \
};

Definition at line 276 of file api_dispatch_trace.cpp.