additional merge

This commit is contained in:
stojce 2013-03-12 18:14:18 +01:00
commit 72bdf340e9
6 changed files with 78 additions and 80 deletions

View file

@ -12,10 +12,11 @@
#include <sys/time.h>
#include <sys/stat.h>
#include <cstring>
#include <SharedUtil.h>
#include <StdDev.h>
#include <UDPSocket.h>
#include "Audio.h"
#include "Util.h"
#include <SharedUtil.h>
#include "UDPSocket.h"
Oscilloscope * scope;

View file

@ -13,48 +13,6 @@
#include "world.h"
#include "Util.h"
//
// Standard Deviation Object
//
const int MAX_STDEV_SAMPLES = 1000; // Don't add more than this number of samples.
StDev::StDev() {
data = new float[MAX_STDEV_SAMPLES];
sampleCount = 0;
}
void StDev::reset() {
sampleCount = 0;
}
void StDev::addValue(float v) {
data[sampleCount++] = v;
if (sampleCount == MAX_STDEV_SAMPLES) sampleCount = 0;
}
float StDev::getAverage() {
float average = 0;
for (int i = 0; i < sampleCount; i++) {
average += data[i];
}
if (sampleCount > 0)
return average/(float)sampleCount;
else return 0;
}
float StDev::getStDev() {
float average = getAverage();
float stdev = 0;
for (int i = 0; i < sampleCount; i++) {
stdev += powf(data[i] - average, 2);
}
if (sampleCount > 1)
return sqrt(stdev/(float)(sampleCount - 1.0));
else
return 0;
}
// Return the azimuth angle in degrees between two points.
float azimuth_to(glm::vec3 head_pos, glm::vec3 source_pos) {
return atan2(head_pos.x - source_pos.x, head_pos.z - source_pos.z) * 180 / PI;

View file

@ -24,17 +24,5 @@ void drawvec3(int x, int y, float scale, float rotate, float thick, int mono, gl
float r=1.0, float g=1.0, float b=1.0);
double diffclock(timeval *clock1,timeval *clock2);
class StDev {
public:
StDev();
void reset();
void addValue(float v);
float getAverage();
float getStDev();
int getSamples() {return sampleCount;};
private:
float * data;
int sampleCount;
};
#endif

View file

@ -915,30 +915,6 @@ int main(int argc, char** argv)
printf("Failed lookup domainserver\n");
}
} else printf("Using static domainserver IP: %s\n", DOMAIN_IP);
printf("Testing stats math... ");
StDev stdevtest;
stdevtest.reset();
stdevtest.addValue(1345);
stdevtest.addValue(1301);
stdevtest.addValue(1368);
stdevtest.addValue(1322);
stdevtest.addValue(1310);
stdevtest.addValue(1370);
stdevtest.addValue(1318);
stdevtest.addValue(1350);
stdevtest.addValue(1303);
stdevtest.addValue(1299);
if (stdevtest.getSamples() != 10)
printf("Samples=FAIL ");
if (floor(stdevtest.getAverage()*100.0) != 132859.0)
printf("Average=FAIL ");
if (floor(stdevtest.getStDev()*100.0) != 2746.0)
printf("Stdev=FAIL ");
printf("\n");
// the callback for our instance of AgentList is attachNewHeadToAgent
agentList.linkedDataCreateCallback = &attachNewHeadToAgent;

48
shared/src/StdDev.cpp Normal file
View file

@ -0,0 +1,48 @@
//
// StdDev.cpp
// hifi
//
// Created by Philip Rosedale on 3/12/13.
//
//
#include "StdDev.h"
#include <cmath>
const int MAX_STDEV_SAMPLES = 1000; // Don't add more than this number of samples.
StDev::StDev() {
data = new float[MAX_STDEV_SAMPLES];
sampleCount = 0;
}
void StDev::reset() {
sampleCount = 0;
}
void StDev::addValue(float v) {
data[sampleCount++] = v;
if (sampleCount == MAX_STDEV_SAMPLES) sampleCount = 0;
}
float StDev::getAverage() {
float average = 0;
for (int i = 0; i < sampleCount; i++) {
average += data[i];
}
if (sampleCount > 0)
return average/(float)sampleCount;
else return 0;
}
float StDev::getStDev() {
float average = getAverage();
float stdev = 0;
for (int i = 0; i < sampleCount; i++) {
stdev += powf(data[i] - average, 2);
}
if (sampleCount > 1)
return sqrt(stdev/(float)(sampleCount - 1.0));
else
return 0;
}

27
shared/src/StdDev.h Normal file
View file

@ -0,0 +1,27 @@
//
// StdDev.h
// hifi
//
// Created by Philip Rosedale on 3/12/13.
//
//
#ifndef __hifi__StdDev__
#define __hifi__StdDev__
#include <iostream>
class StDev {
public:
StDev();
void reset();
void addValue(float v);
float getAverage();
float getStDev();
int getSamples() {return sampleCount;};
private:
float * data;
int sampleCount;
};
#endif /* defined(__hifi__StdDev__) */