This is Yutaka nakamura in Japan.
diff file sqlite-3.2.1's func.c.
add stdev() and rr() .
. stdev() mean stddev lile MS Excel.
. rr() mean RiskReturn( mean 1/CV =μ/σ)
pahaps RiskReturn calculate speed fastest SQL in the world.
becouse loop time about harf and rr() direct calcrate SQL is noting.
Bye!
854,878d853
< static void stdevStep(sqlite3_context *context, int argc, sqlite3_value
**argv){
< StdDevCtx *p;
< if( argc<1 ) return;
< p = sqlite3_aggregate_context(context, sizeof(*p));
< if( p && SQLITE_NULL!=sqlite3_value_type(argv[0]) ){
< p->sum += sqlite3_value_double(argv[0]);
< p->sum2 += pow(sqlite3_value_double(argv[0]),2);
< p->cnt++;
< }
< }
< static void stdevFinalize(sqlite3_context *context){
< StdDevCtx *p;
< p = sqlite3_aggregate_context(context, sizeof(*p));
< if( p && p->cnt>0 ){
< sqlite3_result_double(context,sqrt(((double)p->cnt*p->sum2 -
pow(p->sum,2))/((double)p->cnt*((double)p->cnt -1.0))));
< }
< }
< static void rrFinalize(sqlite3_context *context){
< StdDevCtx *p;
< p = sqlite3_aggregate_context(context, sizeof(*p));
< if( p && p->cnt>0 ){
<
sqlite3_result_double(context,(p->sum/(double)p->cnt)/sqrt(((double)p->cnt*p
->sum2 - pow(p->sum,2))/((double)p->cnt*((double)p->cnt -1.0))));
< }
< }
<
1022,1023d996
< { "stdev", 1, 0, 0, stdevStep, stdevFinalize },
< { "rr", 1, 0, 0, stdevStep, rrFinalize },