Beispiel #1
0
        /// <summary>
        ///     Merges the given CardinalityEstimator instances and returns the result
        /// </summary>
        /// <param name="estimators">Instances of CardinalityEstimator</param>
        /// <returns>The merged CardinalityEstimator</returns>
        public static CardinalityEstimator Merge(IList <CardinalityEstimator> estimators)
        {
            if (!estimators.Any())
            {
                throw new ArgumentException(string.Format("Was asked to merge 0 instances of {0}", typeof(CardinalityEstimator)),
                                            "estimators");
            }

            var ans = new CardinalityEstimator(estimators[0].bitsPerIndex);

            foreach (CardinalityEstimator estimator in estimators)
            {
                ans.Merge(estimator);
            }

            return(ans);
        }
        /// <summary>
        ///     Merges the given CardinalityEstimator instances and returns the result
        /// </summary>
        /// <param name="estimators">Instances of CardinalityEstimator</param>
        /// <returns>The merged CardinalityEstimator</returns>
        public static CardinalityEstimator Merge(IList <CardinalityEstimator> estimators)
        {
            if (!estimators.Any())
            {
                throw new ArgumentException($"Was asked to merge 0 instances of {typeof(CardinalityEstimator)}",
                                            nameof(estimators));
            }

            var ans = new CardinalityEstimator(estimators[0]._bitsPerIndex);

            foreach (CardinalityEstimator estimator in estimators)
            {
                ans.Merge(estimator);
            }

            return(ans);
        }