...
Can be used to reduce function in dimensionality. For example a two dimension (two-argument) function can be reduced to a one dimensional (one-argument) function. This is only possible if the dimension that is being reduced has a single value.
Code Block |
---|
[Test] IVariable<int> x = new Variable<int>("x"); IVariable<int> y = new Variable<int>("y"); IVariable<int> fx = new Variable<int>("fx"); fx.Arguments.Add(x); fx.Arguments.Add(y); x.SetValues(new[] {1, 2, 3}); y.SetValues(new[] {1,2}); fx[3, 1] = 20; var reducedFunction = fx.Filter(new VariableValueFilter<int>(y, 1), new VariableReduceFilter(y)); //the function 'lost' an argument Assert.AreEqual(1, reducedFunction.Arguments.Count); Assert.AreEqual(3, reducedFunction.Values.Count); Assert.AreEqual(20, reducedFunction.Values[2]); |
This filter is used for example to get a timeseries for out of a timedependent coverage (reducing location) or to get a timeIndependent coverage out of a timedependent (reducing time)