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);
        }
Exemple #2
0
        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);
        }
Exemple #3
0
      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);
        }