Skip to content

Commit d080620

Browse files
authored
Remove moment_ops/outputRange_ops mixins (#301)
* Remove moment_ops * Remove outputRange_ops
1 parent 9a22141 commit d080620

File tree

1 file changed

+59
-32
lines changed

1 file changed

+59
-32
lines changed

source/mir/math/stat.d

Lines changed: 59 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1857,29 +1857,12 @@ enum VarianceAlgo
18571857
assumeZeroMean
18581858
}
18591859

1860-
package(mir)
1861-
mixin template moment_ops(T,
1862-
Summation summation)
1860+
///
1861+
struct VarianceAccumulator(T, VarianceAlgo varianceAlgo, Summation summation)
1862+
if (isMutable!T && varianceAlgo == VarianceAlgo.naive)
18631863
{
1864-
///
1865-
MeanAccumulator!(T, summation) meanAccumulator;
1866-
1867-
///
1868-
size_t count() @property
1869-
{
1870-
return meanAccumulator.count;
1871-
}
1872-
1873-
///
1874-
F mean(F = T)() @property
1875-
{
1876-
return meanAccumulator.mean;
1877-
}
1878-
}
1864+
import mir.functional: naryFun;
18791865

1880-
package(mir)
1881-
mixin template outputRange_ops(T)
1882-
{
18831866
///
18841867
this(Range)(Range r)
18851868
if (isIterable!Range)
@@ -1893,16 +1876,21 @@ mixin template outputRange_ops(T)
18931876
{
18941877
this.put(x);
18951878
}
1896-
}
18971879

1898-
///
1899-
struct VarianceAccumulator(T, VarianceAlgo varianceAlgo, Summation summation)
1900-
if (isMutable!T && varianceAlgo == VarianceAlgo.naive)
1901-
{
1902-
import mir.functional: naryFun;
1880+
///
1881+
MeanAccumulator!(T, summation) meanAccumulator;
19031882

1904-
mixin moment_ops!(T, summation);
1905-
mixin outputRange_ops!T;
1883+
///
1884+
size_t count() @property
1885+
{
1886+
return meanAccumulator.count;
1887+
}
1888+
1889+
///
1890+
F mean(F = T)() @property
1891+
{
1892+
return meanAccumulator.mean;
1893+
}
19061894

19071895
///
19081896
Summator!(T, summation) sumOfSquares;
@@ -1971,8 +1959,34 @@ struct VarianceAccumulator(T, VarianceAlgo varianceAlgo, Summation summation)
19711959
if (isMutable!T &&
19721960
varianceAlgo == VarianceAlgo.online)
19731961
{
1974-
mixin moment_ops!(T, summation);
1975-
mixin outputRange_ops!T;
1962+
///
1963+
this(Range)(Range r)
1964+
if (isIterable!Range)
1965+
{
1966+
import core.lifetime: move;
1967+
this.put(r.move);
1968+
}
1969+
1970+
///
1971+
this()(T x)
1972+
{
1973+
this.put(x);
1974+
}
1975+
1976+
///
1977+
MeanAccumulator!(T, summation) meanAccumulator;
1978+
1979+
///
1980+
size_t count() @property
1981+
{
1982+
return meanAccumulator.count;
1983+
}
1984+
1985+
///
1986+
F mean(F = T)() @property
1987+
{
1988+
return meanAccumulator.mean;
1989+
}
19761990

19771991
///
19781992
Summator!(T, summation) centeredSumOfSquares;
@@ -2173,7 +2187,20 @@ struct VarianceAccumulator(T, VarianceAlgo varianceAlgo, Summation summation)
21732187
import mir.functional: naryFun;
21742188
import mir.ndslice.slice: Slice, SliceKind, hasAsSlice;
21752189

2176-
mixin moment_ops!(T, summation);
2190+
///
2191+
MeanAccumulator!(T, summation) meanAccumulator;
2192+
2193+
///
2194+
size_t count() @property
2195+
{
2196+
return meanAccumulator.count;
2197+
}
2198+
2199+
///
2200+
F mean(F = T)() @property
2201+
{
2202+
return meanAccumulator.mean;
2203+
}
21772204

21782205
///
21792206
Summator!(T, summation) centeredSumOfSquares;

0 commit comments

Comments
 (0)