private ITimeSpaceValueSet CreateValues() { IElementSet set = this.ElementSet(); ValueSetArray <double> valueSet = new ValueSetArray <double>(); double[] elmtValues = new double[set.ElementCount]; for (int i = 0; i < set.ElementCount; i++) { elmtValues[i] = 1.0; } valueSet.Values2DArray.Add(elmtValues); return(valueSet); }
private ValueSetArray <double> Convert(ITimeSpaceValueSet values) { ValueSetArray <double> res = new ValueSetArray <double>(); for (int n = 0; n < values.Values2D.Count; ++n) { double[] elmtValues = new double[values.Values2D[n].Count]; res.Values2DArray.Add(elmtValues); for (int m = 0; m < values.Values2D[n].Count; m++) { elmtValues[m] = _a * (double)values.Values2D[n][m] + _b; } } return(res); }
public override ITimeSpaceValueSet GetValues(IBaseExchangeItem querySpecifier) { ITimeSpaceExchangeItem item = (ITimeSpaceExchangeItem)querySpecifier; TimeSet.SetSingleTime(item.TimeSet.Times[0]); int count = item.ElementSet().ElementCount; double[] vals = new double[count]; for (int i = 0; i < count; i++) { vals[i] = ConstOutput; } ValueSetArray<double> valueset = new ValueSetArray<double>(vals); return valueset; }
/// <summary> /// Multiply all element values in the value set with the matching factors in the factors array. /// <para>Assuming the value set contains doubles, and the number of elements in the value /// set matches the number of factors</para> /// </summary> /// <param name="sourceValueset">Valueset to multiply</param> /// <param name="factors">Factors to multiply element values with</param> /// <returns>A new value set where values have been multiplied</returns> public static ITimeSpaceValueSet MultiplyElementValues(this ITimeSpaceValueSet sourceValueset, double[] factors) { IList <IList> sourceValues = sourceValueset.Values2D; ValueSetArray <double> targetValueSet = new ValueSetArray <double>(); ListArray <double> targetValues = targetValueSet.Values2DArray; // Loop over time for (int i = 0; i < sourceValues.Count; i++) { // Multiply every element value with the corresponding factor IList <double> sourceElmtValues = (IList <double>)sourceValues[i]; double[] targetElmtValues = new double[sourceElmtValues.Count]; for (int j = 0; j < sourceElmtValues.Count; j++) { targetElmtValues[j] = sourceElmtValues[j] * factors[j]; } targetValues.Add(targetElmtValues); } return(targetValueSet); }