LINE Solver (C++)
Templated C++ port of the LINE queueing solver
Toggle main menu visibility
Loading...
Searching...
No Matches
moment_upfactorial_from_raw.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2012-2026, QORE Lab, Imperial College London
3
* All rights reserved.
4
*/
5
#ifndef LINE_API_MOMENT_MOMENT_UPFACTORIAL_FROM_RAW_H
6
#define LINE_API_MOMENT_MOMENT_UPFACTORIAL_FROM_RAW_H
7
8
/**
9
* @file
10
* @ingroup api_moment
11
* Rising-factorial moments from raw moments, via the cycle numbers.
12
*
13
* Templated port of matlab/src/api/moment/moment_upfactorial_from_raw.m. Every operation is integer
14
* or rational, so the exact instantiation returns the transform with no
15
* rounding at all. That matters more here than almost anywhere else in the API:
16
* the alternating binomial sums of the moment conversions cancel
17
* catastrophically in double arithmetic once the order grows.
18
*/
19
20
#include <vector>
21
22
#include "
line/num/number.h
"
23
#include "
line/util/error.h
"
24
#include "
line/util/matrix.h
"
25
#include "
line/util/population.h
"
26
#include "
line/api/moment/moment_apply.h
"
27
#include "
line/api/moment/moment_stirlingcycle.h
"
28
29
namespace
line
{
30
namespace
moment
{
31
32
/** fp = sigma * m. */
33
template
<
class
T>
34
std::vector<T>
moment_upfactorial_from_raw
(
const
std::vector<T>& m) {
35
return
apply_table
(
moment_stirlingcycle<T>
(
static_cast<
int
>
(m.size()) - 1), m);
36
}
37
38
}
// namespace moment
39
}
// namespace line
40
41
#endif
error.h
The exception types the port throws.
matrix.h
Dense matrix and non-owning view.
moment_apply.h
Shared helper applying a triangular moment-transform table.
moment_stirlingcycle.h
Unsigned Stirling numbers of the first kind (cycle numbers), orders 0..n.
line::moment
Definition
moment_apply.h:28
line::moment::apply_table
std::vector< T > apply_table(const Matrix< T > &A, const std::vector< T > &v)
Apply a lower-triangular transform table to a moment vector.
Definition
moment_apply.h:32
line::moment::moment_upfactorial_from_raw
std::vector< T > moment_upfactorial_from_raw(const std::vector< T > &m)
fp = sigma * m.
Definition
moment_upfactorial_from_raw.h:34
line::moment::moment_stirlingcycle
Matrix< T > moment_stirlingcycle(int n)
sigma(i,j), (n+1) x (n+1) lower triangular, sigma(0,0) = 1.
Definition
moment_stirlingcycle.h:31
line
Definition
aoi_dist2ph.h:52
number.h
Number-type abstraction for the templated API port.
population.h
Population-vector enumeration and combinatorics.
include
line
api
moment
moment_upfactorial_from_raw.h
Generated by
1.18.0