LotSizingDataModel.Instance
2.0.1
Lot-sizing instance representation, descriptors and problem characterization.
Loading...
Searching...
No Matches
TemporalPatternTolerance.cs
Go to the documentation of this file.
1
namespace
LotSizingDataModel.Instance.Descriptors.Temporal
;
2
3
/// <summary>
4
/// Defines the numerical tolerance policy used for temporal-pattern analysis.
5
/// </summary>
6
public
sealed
class
TemporalPatternTolerance
7
{
8
/// <summary>
9
/// Gets the default conservative numerical tolerance.
10
/// </summary>
11
public
static
TemporalPatternTolerance
Default
{
get
; } =
12
new
(
13
absoluteTolerance: 1e-9,
14
relativeTolerance: 1e-9);
15
16
/// <summary>
17
/// Initializes a tolerance policy.
18
/// </summary>
19
public
TemporalPatternTolerance
(
20
double
absoluteTolerance,
21
double
relativeTolerance)
22
{
23
ValidateTolerance(
24
absoluteTolerance,
25
nameof(absoluteTolerance));
26
27
ValidateTolerance(
28
relativeTolerance,
29
nameof(relativeTolerance));
30
31
AbsoluteTolerance
= absoluteTolerance;
32
RelativeTolerance
= relativeTolerance;
33
}
34
35
public
double
AbsoluteTolerance
{
get
; }
36
public
double
RelativeTolerance
{
get
; }
37
38
/// <summary>
39
/// Computes the effective absolute tolerance for a given value scale.
40
/// </summary>
41
public
double
GetEffectiveTolerance
(
double
scale)
42
{
43
if
(!
double
.IsFinite(scale) || scale < 0.0)
44
{
45
throw
new
ArgumentOutOfRangeException(
46
nameof(scale),
47
scale,
48
"The comparison scale must be finite and non-negative."
);
49
}
50
51
return
Math.Max(
52
AbsoluteTolerance
,
53
RelativeTolerance
* scale);
54
}
55
56
private
static
void
ValidateTolerance(
57
double
value,
58
string
parameterName)
59
{
60
if
(!
double
.IsFinite(value) || value < 0.0)
61
{
62
throw
new
ArgumentOutOfRangeException(
63
parameterName,
64
value,
65
"A numerical tolerance must be finite and non-negative."
);
66
}
67
}
68
}
LotSizingDataModel.Instance.Descriptors.Temporal.TemporalPatternTolerance.TemporalPatternTolerance
TemporalPatternTolerance(double absoluteTolerance, double relativeTolerance)
Initializes a tolerance policy.
Definition
TemporalPatternTolerance.cs:19
LotSizingDataModel.Instance.Descriptors.Temporal.TemporalPatternTolerance.AbsoluteTolerance
double AbsoluteTolerance
Definition
TemporalPatternTolerance.cs:35
LotSizingDataModel.Instance.Descriptors.Temporal.TemporalPatternTolerance.RelativeTolerance
double RelativeTolerance
Definition
TemporalPatternTolerance.cs:36
LotSizingDataModel.Instance.Descriptors.Temporal.TemporalPatternTolerance.GetEffectiveTolerance
double GetEffectiveTolerance(double scale)
Computes the effective absolute tolerance for a given value scale.
Definition
TemporalPatternTolerance.cs:41
LotSizingDataModel.Instance.Descriptors.Temporal.TemporalPatternTolerance.Default
static TemporalPatternTolerance Default
Gets the default conservative numerical tolerance.
Definition
TemporalPatternTolerance.cs:11
LotSizingDataModel.Instance.Descriptors.Temporal
Definition
BitranYanasseProfileAnalyzer.cs:1
LotSizingDataModel.Instance
Descriptors
Temporal
TemporalPatternTolerance.cs
Generated by
1.17.0