コード例 #1
0
	    private static void DoTestAverageAndStdDev(RunningAverageAndStdDev average) 
	    {
		    Assert.AreEqual(0, average.Count);
		    Assert.IsTrue(Double.IsNaN(average.Average));
		    Assert.IsTrue(Double.IsNaN(average.StandardDeviation));

		    average.AddDatum(6.0);
		    Assert.AreEqual(1, average.Count);
		    Assert.AreEqual(6.0, average.Average, EPSILON);
		    Assert.IsTrue(Double.IsNaN(average.StandardDeviation));

		    average.AddDatum(6.0);
		    Assert.AreEqual(2, average.Count);
		    Assert.AreEqual(6.0, average.Average, EPSILON);
		    Assert.AreEqual(0.0, average.StandardDeviation, EPSILON);

		    average.RemoveDatum(6.0);
		    Assert.AreEqual(1, average.Count);
		    Assert.AreEqual(6.0, average.Average, EPSILON);
		    Assert.IsTrue(Double.IsNaN(average.StandardDeviation));

		    average.AddDatum(-4.0);
		    Assert.AreEqual(2, average.Count);
		    Assert.AreEqual(1.0, average.Average, EPSILON);
		    Assert.AreEqual(5.0 * 1.4142135623730951, average.StandardDeviation, EPSILON);

		    average.RemoveDatum(4.0);
		    Assert.AreEqual(1, average.Count);
		    Assert.AreEqual(-2.0, average.Average, EPSILON);
		    Assert.IsTrue(Double.IsNaN(average.StandardDeviation));

	    }
コード例 #2
0
 public StatsCallable(Action deleg, bool logStats, RunningAverageAndStdDev timing, AtomicInteger noEstimateCounter)
 {
     this._Delegate         = deleg;
     this.logStats          = logStats;
     this.timing            = timing;
     this.noEstimateCounter = noEstimateCounter;
 }
コード例 #3
0
        private static void DoTestAverageAndStdDev(RunningAverageAndStdDev average)
        {
            Assert.AreEqual(0, average.Count);
            Assert.IsTrue(Double.IsNaN(average.Average));
            Assert.IsTrue(Double.IsNaN(average.StandardDeviation));

            average.AddDatum(6.0);
            Assert.AreEqual(1, average.Count);
            Assert.AreEqual(6.0, average.Average, EPSILON);
            Assert.IsTrue(Double.IsNaN(average.StandardDeviation));

            average.AddDatum(6.0);
            Assert.AreEqual(2, average.Count);
            Assert.AreEqual(6.0, average.Average, EPSILON);
            Assert.AreEqual(0.0, average.StandardDeviation, EPSILON);

            average.RemoveDatum(6.0);
            Assert.AreEqual(1, average.Count);
            Assert.AreEqual(6.0, average.Average, EPSILON);
            Assert.IsTrue(Double.IsNaN(average.StandardDeviation));

            average.AddDatum(-4.0);
            Assert.AreEqual(2, average.Count);
            Assert.AreEqual(1.0, average.Average, EPSILON);
            Assert.AreEqual(5.0 * 1.4142135623730951, average.StandardDeviation, EPSILON);

            average.RemoveDatum(4.0);
            Assert.AreEqual(1, average.Count);
            Assert.AreEqual(-2.0, average.Average, EPSILON);
            Assert.IsTrue(Double.IsNaN(average.StandardDeviation));
        }
コード例 #4
0
ファイル: ZScore.cs プロジェクト: radtek/taste.net
        public double GetTransformedValue(Preference pref)
        {
            RunningAverageAndStdDev meanAndStdev = meanAndStdevs.Get(pref.User);

            if (meanAndStdev.Count > 1)
            {
                double stdev = meanAndStdev.StandardDeviation;
                if (stdev > 0.0)
                {
                    return((pref.Value - meanAndStdev.Average) / stdev);
                }
            }
            return(0.0);
        }
コード例 #5
0
        public static void execute(List <Action> callables, AtomicInteger noEstimateCounter, RunningAverageAndStdDev timing)
        {
            List <Action> list           = wrapWithStatsCallables(callables, noEstimateCounter, timing);
            int           processorCount = Environment.ProcessorCount;

            Task[] tasks = new Task[list.Count];
            log.info("Starting timing of {} tasks in {} threads", new object[] { list.Count, processorCount });
            try
            {
                for (int i = 0; i < tasks.Length; i++)
                {
                    tasks[i] = Task.Factory.StartNew(list[i]);
                }
                Task.WaitAll(tasks, 0x2710);
            }
            catch (Exception exception)
            {
                throw new TasteException(exception.Message, exception);
            }
        }
コード例 #6
0
        private static List <Action> wrapWithStatsCallables(List <Action> callables, AtomicInteger noEstimateCounter, RunningAverageAndStdDev timing)
        {
            List <Action> list = new List <Action>();

            for (int i = 0; i < callables.Count; i++)
            {
                bool logStats = (i % 0x3e8) == 0;
                list.Add(new Action(new StatsCallable(callables[i], logStats, timing, noEstimateCounter).call));
            }
            return(list);
        }
コード例 #7
0
 public InvertedRunningAverageAndStdDev(RunningAverageAndStdDev delegate_)
 {
     this._holder = delegate_;
 }
コード例 #8
0
 public InvertedRunningAverageAndStdDev(RunningAverageAndStdDev deleg)
 {
     this._Delegate = deleg;
 }
コード例 #9
0
		public InvertedRunningAverageAndStdDev(RunningAverageAndStdDev delegate_) 
		{
			this._holder = delegate_;
		}