Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
|
|
@ -0,0 +1,55 @@
|
|||
#import <Foundation/Foundation.h>
|
||||
|
||||
@interface SDAccum : NSObject
|
||||
{
|
||||
double sum, sum2;
|
||||
unsigned int num;
|
||||
}
|
||||
-(double)value: (double)v;
|
||||
-(unsigned int)count;
|
||||
-(double)mean;
|
||||
-(double)variance;
|
||||
-(double)stddev;
|
||||
@end
|
||||
|
||||
@implementation SDAccum
|
||||
-(double)value: (double)v
|
||||
{
|
||||
sum += v;
|
||||
sum2 += v*v;
|
||||
num++;
|
||||
return [self stddev];
|
||||
}
|
||||
-(unsigned int)count
|
||||
{
|
||||
return num;
|
||||
}
|
||||
-(double)mean
|
||||
{
|
||||
return (num>0) ? sum/(double)num : 0.0;
|
||||
}
|
||||
-(double)variance
|
||||
{
|
||||
double m = [self mean];
|
||||
return (num>0) ? (sum2/(double)num - m*m) : 0.0;
|
||||
}
|
||||
-(double)stddev
|
||||
{
|
||||
return sqrt([self variance]);
|
||||
}
|
||||
@end
|
||||
|
||||
int main()
|
||||
{
|
||||
@autoreleasepool {
|
||||
|
||||
double v[] = { 2,4,4,4,5,5,7,9 };
|
||||
|
||||
SDAccum *sdacc = [[SDAccum alloc] init];
|
||||
|
||||
for(int i=0; i < sizeof(v)/sizeof(*v) ; i++)
|
||||
printf("adding %f\tstddev = %f\n", v[i], [sdacc value: v[i]]);
|
||||
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -0,0 +1,30 @@
|
|||
#import <Foundation/Foundation.h>
|
||||
|
||||
typedef double (^Func)(double); // a block that takes a double and returns a double
|
||||
|
||||
Func sdCreator() {
|
||||
__block int n = 0;
|
||||
__block double sum = 0;
|
||||
__block double sum2 = 0;
|
||||
return ^(double x) {
|
||||
sum += x;
|
||||
sum2 += x*x;
|
||||
n++;
|
||||
return sqrt(sum2/n - sum*sum/n/n);
|
||||
};
|
||||
}
|
||||
|
||||
int main()
|
||||
{
|
||||
@autoreleasepool {
|
||||
|
||||
double v[] = { 2,4,4,4,5,5,7,9 };
|
||||
|
||||
Func sdacc = sdCreator();
|
||||
|
||||
for(int i=0; i < sizeof(v)/sizeof(*v) ; i++)
|
||||
printf("adding %f\tstddev = %f\n", v[i], sdacc(v[i]));
|
||||
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue