/// <summary>
 /// Initializes a new instance of the GaussianStatistic class.
 /// </summary>
 /// <param name="length">Length of the Gaussian distribution.</param>
 public GaussianStatistic(int length)
 {
     _mean = new UniStatistic[length];
     _variance = new UniStatistic[length];
     for (int i = 0; i < length; i++)
     {
         Mean[i] = new UniStatistic();
         Variance[i] = new UniStatistic();
     }
 }
        /// <summary>
        /// Initializes a new instance of the LinXformStatistic class.
        /// </summary>
        /// <param name="linXform">Linear transform.</param>
        public LinXformStatistic(LinXForm linXform)
        {
            if (linXform.Bias != null)
            {
                _bias = new UniStatistic[linXform.Bias.Length];
                for (int i = 0; i < _bias.Length; i++)
                {
                    _bias[i] = new UniStatistic();
                }
            }

            _blocks = new List<UniStatistic[,]>();
            for (int i = 0; i < linXform.Blocks.Count; i++)
            {
                float[,] block = linXform.Blocks[i];
                UniStatistic[,] matrix = new UniStatistic[block.GetLength(0), block.GetLength(1)];
                for (int j = 0; j < block.GetLength(0); j++)
                {
                    for (int k = 0; k < block.GetLength(1); k++)
                    {
                        matrix[j, k] = new UniStatistic();
                    }
                }

                _blocks.Add(matrix);
            }
        }