-
Notifications
You must be signed in to change notification settings - Fork 2
/
InternalClassifyDeclare.mod
81 lines (81 loc) · 3.74 KB
/
InternalClassifyDeclare.mod
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
@#if Minimum == Maximum
@#error "A variable cannot have identical bounds"
@#endif
@#if Minimum == "-Inf"
@#if Maximum == "Inf" || Maximum == "+Inf"
@#define VariableNamePrefix = "level"
@#define InverseTransformationPrefix = "("
@#define InverseTransformationSuffix = ")"
@#define TransformationPrefix = "("
@#define TransformationSuffix = ")"
@#else
@#if Maximum == "0"
@#define VariableNamePrefix = "MlogM"
@#define InverseTransformationPrefix = "(-exp(-("
@#define InverseTransformationSuffix = ")))"
@#define TransformationPrefix = "(-log(-("
@#define TransformationSuffix = ")))"
@#else
@#define VariableNamePrefix = "MlogT"
@#define InverseTransformationPrefix = "((" + Maximum + ")-exp(-("
@#define InverseTransformationSuffix = ")))"
@#define TransformationPrefix = "(-log((" + Maximum + ")-("
@#define TransformationSuffix = ")))"
@#endif
@#endif
@#else
@#if Maximum == "Inf" || Maximum == "+Inf"
@#if Minimum == "0"
@#define VariableNamePrefix = "log"
@#define InverseTransformationPrefix = "exp("
@#define InverseTransformationSuffix = ")"
@#define TransformationPrefix = "log("
@#define TransformationSuffix = ")"
@#else
@#define VariableNamePrefix = "logT"
@#define InverseTransformationPrefix = "((" + Minimum + ")+exp("
@#define InverseTransformationSuffix = "))"
@#define TransformationPrefix = "log(("
@#define TransformationSuffix = ")-(" + Minimum + "))"
@#endif
@#else
@#if Minimum == "0"
@#if Maximum == "1"
@#define VariableNamePrefix = "logit"
@#define InverseTransformationPrefix = "(1/(1+exp(-("
@#define InverseTransformationSuffix = "))))"
@#define TransformationPrefix = "(-log(1/("
@#define TransformationSuffix = ")-1))"
@#else
@#define VariableNamePrefix = "logitT"
@#define InverseTransformationPrefix = "((" + Maximum + ")/(1+exp(-("
@#define InverseTransformationSuffix = "))))"
@#define TransformationPrefix = "(-log((" + Maximum + ")/("
@#define TransformationSuffix = ")-1))"
@#endif
@#else
@#if Maximum == "0"
@#if Minimum == -1
@#define VariableNamePrefix = "MlogitM"
@#define InverseTransformationPrefix = "(-1/(1+exp("
@#define InverseTransformationSuffix = ")))"
@#define TransformationPrefix = "log(1/("
@#define TransformationSuffix = ")-1)"
@#else
@#define VariableNamePrefix = "MlogitT"
@#define InverseTransformationPrefix = "((" + Minimum + ")/(1+exp("
@#define InverseTransformationSuffix = ")))"
@#define TransformationPrefix = "log((" + Minimum + ")/("
@#define TransformationSuffix = ")-1)"
@#endif
@#else
@#define VariableNamePrefix = "logitT"
@#define InverseTransformationPrefix = "((" + Minimum + ")+(((" + Maximum + ")-(" + Minimum + "))/(1+exp(-("
@#define InverseTransformationSuffix = ")))))"
@#define TransformationPrefix = "(-log(((" + Maximum + ")-(" + Minimum + "))/(("
@#define TransformationSuffix = ")-(" + Minimum + "))-1))"
@#endif
@#endif
@#endif
@#endif
@#define FullVariableName = VariableNamePrefix + "_" + VariableName