PSMath.psm1

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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
Set-StrictMode -Version Latest

$METHOD_LIST = @(
  [PSCustomObject]@{
    ClassInfo = [Horker.Math.ArrayMethods.LinqMethods]
    MethodNames = @(
      "Aggregate"
      "All"
      "Any"
      "AsEnumerable"
      "Concat"
      "Contains"
      "DefaultIfEmpty"
      "Distinct"
      "ElementAt"
      "ElementAtOrDefault"
      "Except"
      "First"
      "FirstOrDefault"
      "GroupBy"
      "GroupJoin"
      "Intersect"
      "Join"
      "Last"
      "LastOrDefault"
      "LongCount"
      "Max"
      "Min"
      "OrderBy"
      "OrderByDescending"
      "Reverse"
      "Select"
      "SelectMany"
      "SequenceEqual"
      "Single"
      "SingleOrDefault"
      "Skip"
      "SkipWhile"
      "Sum"
      "Take"
      "TakeWhile"
      "ToDictionary"
      "ToList"
      "ToLookup"
      "Union"
      "Where"
      "Zip"
    )
  }

  [PSCustomObject]@{
    ClassInfo = [Horker.Math.ArrayMethods.MeasuresMethods]
    MethodNames = @(
      "ContraHarmonicMean"
      "Entropy"
      "ExponentialWeightedMean"
      "ExponentialWeightedVariance"
      "GeometricMean"
      "Kurtosis"
      "LogGeometricMean"
      "LowerQuartile"
      "Mean"
      "Median"
      "Mode"
      "Quantile"
      "Quantiles"
      "Quartiles"
      "Skewness"
      "StandardDeviation"
      "Stdev"
      "StandardError"
      "TruncatedMean"
      "UpperQuartile"
      "Variance"
      "Var"
    )
  }

  [PSCustomObject]@{
    ClassInfo = [Horker.Math.ArrayMethods.ToolsMethods]
    MethodNames = @(
      "Center"
      "Rank"
      "Standardize"
      "Ties"
    )
  }

  [PSCustomObject]@{
    ClassInfo = [Horker.Math.ArrayMethods.VectorMethods]
    MethodNames = @(
      "Sample"
      "Scale"
      "Shuffled"
      "Sorted"
    )
  }

  [PSCustomObject]@{
    ClassInfo = [Horker.Math.ArrayMethods.MatrixMethods]
    MethodNames = @(
      "ArgMin"
      "ArgSort"
      "Bottom"
      "Cartesian"
      "Clear"
      "Concatenate"
      "Copy"
      "Cross"
      "CumulativeSum"
      "DistinctCount"
      "Expand"
      "Find"
      "First"
      "Get"
      "HasInfinity"
      "HasNaN"
      "IsEqual"
      "IsSorted"
      "Kronecker"
      "Normalize"
      "Null"
      "Outer"
      "Product"
      "Split"
      "Stack"
      "Swap"
      "Top"
      "Trim"
    )
  }

  [PSCustomObject]@{
    ClassInfo = [Horker.Math.ArrayMethods.AdditionalMethods]
    MethodNames = @(
      "DropNa"
      "DropNaN"
    )
  }
)

foreach ($l in $METHOD_LIST) {
  $ci = $l.ClassInfo
  foreach ($m in $l.MethodNames) {
    $mi = $ci.GetMethod($m)
    Update-TypeData -TypeName System.Array -MemberName $m -MemberType CodeMethod -Value $mi -Force
  }
}