这篇教程C++ sqlite3_value_double函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中sqlite3_value_double函数的典型用法代码示例。如果您正苦于以下问题:C++ sqlite3_value_double函数的具体用法?C++ sqlite3_value_double怎么用?C++ sqlite3_value_double使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了sqlite3_value_double函数的30个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: pg_covar_stepextern void pg_covar_step(sqlite3_context *context, int argc, sqlite3_value **argv) { COVAR_CONTEXT_T *ctx; int typ1; int typ2; double val1; double val2; if (((typ1 = sqlite3_value_type(argv[0])) != SQLITE_NULL) && ((typ2 = sqlite3_value_type(argv[1])) != SQLITE_NULL)) { if (ksu_prm_ok(context, argc, argv, "covar", KSU_PRM_NUMERIC, KSU_PRM_NUMERIC)) { ctx = (COVAR_CONTEXT_T *)sqlite3_aggregate_context(context, sizeof(COVAR_CONTEXT_T)); val1 = sqlite3_value_double(argv[0]); val2 = sqlite3_value_double(argv[1]); if (ctx) { ctx->sum1 += val1; ctx->sum2 += val2; ctx->sum_prod += (val1 * val2); (ctx->n)++; } } }}
开发者ID:sfaroult,项目名称:sqlite_libs,代码行数:26,
示例2: distanceFuncstatic void distanceFunc(sqlite3_context *context, int argc, sqlite3_value **argv) { // check that we have four arguments (lat1, lon1, lat2, lon2) assert(argc == 4); // check that all four arguments are non-null if (sqlite3_value_type(argv[0]) == SQLITE_NULL || sqlite3_value_type(argv[1]) == SQLITE_NULL || sqlite3_value_type(argv[2]) == SQLITE_NULL || sqlite3_value_type(argv[3]) == SQLITE_NULL) { sqlite3_result_null(context); return; } // get the four argument values double lat1 = sqlite3_value_double(argv[0]); double lon1 = sqlite3_value_double(argv[1]); double lat2 = sqlite3_value_double(argv[2]); double lon2 = sqlite3_value_double(argv[3]); // convert lat1 and lat2 into radians now, to avoid doing it twice below double lat1rad = DEG2RAD(lat1); double lat2rad = DEG2RAD(lat2); // apply the spherical law of cosines to our latitudes and longitudes, and set the result appropriately // 6378.1 is the approximate radius of the earth in kilometres sqlite3_result_double(context, acos(sin(lat1rad) * sin(lat2rad) + cos(lat1rad) * cos(lat2rad) * cos(DEG2RAD(lon2) - DEG2RAD(lon1))) * 6378.1);}
开发者ID:2017398956,项目名称:50AH-code,代码行数:25,
示例3: collisionFunctionForSqlitevoid collisionFunctionForSqlite(sqlite3_context* context, int dunno, sqlite3_value** values) { Number x(sqlite3_value_double(values[0])), z(sqlite3_value_double(values[1])); Number distance_sq = FixedPoint::square(collider_x - x) + FixedPoint::square(collider_z - z); sqlite3_result_int(context, distance_sq < collider_rsq ? 1 : 0); ++collider_comparisons;}
开发者ID:karlgluck,项目名称:Evidyon,代码行数:8,
示例4: geo_boundvoid geo_bound(sqlite3_context *context,int argc,sqlite3_value **argv){ if(argc >= 1) { const unsigned char* ogc; unsigned char* ret_geo_buf; size_t size; double x1,x2,y1,y2; GEOSCoordSequence* seq = 0; GEOSGeometry* geometry = 0; GEOSGeometry* middle_geo = 0; _init_geos(); if(argc == 1 && sqlite3_value_type(argv[0]) == SQLITE_BLOB) { size = sqlite3_value_bytes(argv[0]); ogc = (const unsigned char*)sqlite3_value_blob(argv[0]); middle_geo = _geo_from_wkb(ogc,size); } else if(argc == 1 && sqlite3_value_type(argv[0]) == SQLITE_TEXT) { ogc = sqlite3_value_text(argv[0]); middle_geo = _geo_from_wkt(ogc); } else if(argc == 4) { x1 = sqlite3_value_double(argv[0]); y1 = sqlite3_value_double(argv[1]); x2 = sqlite3_value_double(argv[2]); y2 = sqlite3_value_double(argv[3]); seq = GEOSCoordSeq_create(2,2); GEOSCoordSeq_setX(seq,0,x1); GEOSCoordSeq_setY(seq,0,y1); GEOSCoordSeq_setX(seq,1,x2); GEOSCoordSeq_setY(seq,1,y2); middle_geo = GEOSGeom_createLineString(seq); } if(middle_geo != 0) { geometry = GEOSEnvelope(middle_geo); if(geometry != 0) { ret_geo_buf = GEOSGeomToWKB_buf(geometry,&size); sqlite3_result_blob(context,ret_geo_buf,size,SQLITE_TRANSIENT); GEOSGeom_destroy(geometry); GEOSFree(ret_geo_buf); } GEOSGeom_destroy(middle_geo); } finishGEOS(); }}
开发者ID:maowang,项目名称:sqlite-ogc,代码行数:56,
示例5: calculateDistancestatic void calculateDistance(sqlite3_context *ctx, int argc, sqlite3_value **argv) { double distance = 0; double lat1 = radians(sqlite3_value_double(argv[0])); double lon1 = radians(sqlite3_value_double(argv[1])); double lat2 = radians(sqlite3_value_double(argv[2])); double lon2 = radians(sqlite3_value_double(argv[3])); distance = acos( sin(lat1) * sin(lat2) + cos(lat1) * cos(lat2) * cos(lon2 - lon1) ); distance = (distance < 0 ? distance + M_PI : distance ) * EARTH_RADIUS; sqlite3_result_double(ctx, distance);}
开发者ID:atermenji,项目名称:SqliteIcu,代码行数:10,
示例6: fnct_gpkgMakePointGEOPACKAGE_DECLARE voidfnct_gpkgMakePoint (sqlite3_context * context, int argc UNUSED, sqlite3_value ** argv){/* SQL function:/ gpkgMakePoint(x, y)// Creates a GeoPackage geometry POINT// returns nothing on success, raises exception on error*/ unsigned int len; int int_value; unsigned char *p_result = NULL; double x; double y; GEOPACKAGE_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) { x = sqlite3_value_double (argv[0]); } else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[0]); x = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) { y = sqlite3_value_double (argv[1]); } else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[1]); y = int_value; } else { sqlite3_result_null (context); return; } gpkgMakePoint (x, y, GEOPACKAGE_DEFAULT_UNDEFINED_SRID, &p_result, &len); if (!p_result) { sqlite3_result_null (context); } else { sqlite3_result_blob (context, p_result, len, free); }}
开发者ID:gfbipnet,项目名称:amigoclient,代码行数:55,
示例7: makeRArgumentSEXPmakeRArgument(sqlite3_value *val){ SEXP ans = R_NilValue; switch(sqlite3_value_type(val)) { case SQLITE_INTEGER: { int iVal = sqlite3_value_int(val); ans = ScalarInteger(iVal); break; } case SQLITE_FLOAT: { ans = ScalarReal(sqlite3_value_double(val)); break; } case SQLITE_TEXT: ans = ScalarString(mkChar((char *) sqlite3_value_text(val))); break; default: PROBLEM "Unhandled conversion of argument UDF from SQLite to R" WARN; break; } return(ans);}
开发者ID:duncantl,项目名称:RSQLiteUDF,代码行数:27,
示例8: pg_stddev_stepextern void pg_stddev_step(sqlite3_context *context, int argc, sqlite3_value **argv) { CONTEXT_T *ctx; int typ; double val; if ((typ = sqlite3_value_type(argv[0])) != SQLITE_NULL) { if ((typ != SQLITE_INTEGER) && (typ != SQLITE_FLOAT)) { ksu_err_msg(context, KSU_ERR_ARG_NOT_NUM, "stddev"); return; } ctx = (CONTEXT_T *)sqlite3_aggregate_context(context, sizeof(CONTEXT_T)); val = sqlite3_value_double(argv[0]); if (ctx) { if (ctx->n == 0) { ctx->K = val; } ctx->sum += (val - ctx->K); ctx->sum_sqr += (val - ctx->K) * (val - ctx->K); (ctx->n)++; } }}
开发者ID:sfaroult,项目名称:sqlite_libs,代码行数:26,
示例9: convert_sqlite_values_to_luastatic voidconvert_sqlite_values_to_lua(lua_State *L, int nargs, sqlite3_value **values){ int i; for(i = 0; i < nargs; i++) { switch(sqlite3_value_type(values[i])) { case SQLITE_INTEGER: lua_pushinteger(L, sqlite3_value_int(values[i])); break; case SQLITE_FLOAT: lua_pushnumber(L, sqlite3_value_double(values[i])); break; case SQLITE_NULL: lua_pushnil(L); break; case SQLITE_BLOB: case SQLITE_TEXT: { size_t length; length = sqlite3_value_bytes(values[i]); lua_pushlstring(L, (const char *) sqlite3_value_text(values[i]), length); break; } } }}
开发者ID:mlowicki,项目名称:sqlite-lua-extension,代码行数:27,
示例10: switchbool Command::DoReadParam( void ){ Variable* var = mpVM->mVariables[ mObject ]; if( mpVM->mArgcRun <= mObject ) { var->AssignValue( mpExpr->get_Value() ); return true; } sqlite3_value* vl = mpVM->mpArgv[ mObject ]; switch( sqlite3_value_type( vl ) ) { case kDouble : var->AssignValue( sqlite3_value_double( vl ) ); break; case kInt : var->AssignValue( sqlite3_value_int( vl ) ); break; case kText : { const char* str = (const char*) sqlite3_value_text( vl ); wstring wstr; ConvertFromUTF8( str, strlen( str ), wstr ); var->AssignValue( wstr ); } break; default: var->AssignValue( Value() ); break; } return true;}
开发者ID:lesteriv,项目名称:slite,代码行数:33,
示例11: ASSERTSQLValue SQLiteStatement::getColumnValue(int col){ ASSERT(col >= 0); if (!m_statement) if (prepareAndStep() != SQLITE_ROW) return SQLValue(); if (columnCount() <= col) return SQLValue(); // SQLite is typed per value. optional column types are // "(mostly) ignored" sqlite3_value* value = sqlite3_column_value(m_statement, col); switch (sqlite3_value_type(value)) { case SQLITE_INTEGER: // SQLValue and JS don't represent integers, so use FLOAT -case case SQLITE_FLOAT: return SQLValue(sqlite3_value_double(value)); case SQLITE_BLOB: // SQLValue and JS don't represent blobs, so use TEXT -case case SQLITE_TEXT: { const UChar* string = reinterpret_cast<const UChar*>(sqlite3_value_text16(value)); unsigned length = WTF::lengthOfNullTerminatedString(string); return SQLValue(StringImpl::create8BitIfPossible(string, length)); } case SQLITE_NULL: return SQLValue(); default: break; } ASSERT_NOT_REACHED(); return SQLValue();}
开发者ID:rzr,项目名称:Tizen_Crosswalk,代码行数:30,
示例12: __SQLite3ExtMathSinvoid __SQLite3ExtMathSin(sqlite3_context *context, int argc, sqlite3_value **argv) { if (argc == 1 && sqlite3_value_type(argv[0]) != SQLITE_NULL) { sqlite3_result_double(context, sin(sqlite3_value_double(argv[0]))); } else { sqlite3_result_null(context); }}
开发者ID:atassumer,项目名称:CoreSQLite3,代码行数:7,
示例13: rankSQLITE_EXTENSION_INIT1/*** returns */static void rank(sqlite3_context *pCtx, int nVal, sqlite3_value **apVal) { int *aMatchinfo; int nCol; int nPhrase; int iPhrase; double score = 0.0; aMatchinfo = (int *)sqlite3_value_blob(apVal[0]); nPhrase = aMatchinfo[0]; nCol = aMatchinfo[1]; // do a simple count on string match for(iPhrase=0; iPhrase<nPhrase; iPhrase++) { int iCol; int *aPhraseinfo = &aMatchinfo[2 + iPhrase*nCol*3]; for(iCol=0; iCol<nCol; iCol++){ int nHitCount = aPhraseinfo[3*iCol]; int nGlobalHitCount = aPhraseinfo[3*iCol+1]; double weight = sqlite3_value_double(apVal[iCol+1]); if( nHitCount>0 ){ score += ((double)nHitCount / (double)nGlobalHitCount) * weight; } } } sqlite3_result_double(pCtx, score); return;}
开发者ID:abhishekbh,项目名称:SQLite-Rank-Extension,代码行数:35,
示例14: geo_simplifyvoid geo_simplify(sqlite3_context *context,int argc,sqlite3_value **argv){ if(argc == 2 && sqlite3_value_type(argv[0]) == SQLITE_BLOB) { GEOSGeometry* geometry; GEOSGeometry* simplify_geo; unsigned char* wkb; size_t size; const void* data = sqlite3_value_blob(argv[0]); size_t data_size = sqlite3_value_bytes(argv[0]); double tolerance = sqlite3_value_double(argv[1]); _init_geos(); geometry = _geo_from_wkb((const unsigned char*)data,data_size); if(geometry != 0) { simplify_geo = GEOSSimplify(geometry,tolerance); if(simplify_geo != 0) { wkb = GEOSGeomToWKB_buf(simplify_geo,&size); sqlite3_result_blob(context,wkb,size,SQLITE_TRANSIENT); GEOSGeom_destroy(simplify_geo); GEOSFree(wkb); } } GEOSGeom_destroy(geometry); finishGEOS(); }}
开发者ID:maowang,项目名称:sqlite-ogc,代码行数:30,
示例15: isDate/*** Process time function arguments. argv[0] is a date-time stamp.** argv[1] and following are modifiers. Parse them all and write** the resulting time into the DateTime structure p. Return 0** on success and 1 if there are any errors.**** If there are zero parameters (if even argv[0] is undefined)** then assume a default value of "now" for argv[0].*/static int isDate( sqlite3_context *context, int argc, sqlite3_value **argv, DateTime *p){ int i; const unsigned char *z; int eType; memset(p, 0, sizeof(*p)); if( argc==0 ){ return setDateTimeToCurrent(context, p); } if( (eType = sqlite3_value_type(argv[0]))==SQLITE_FLOAT || eType==SQLITE_INTEGER ){ p->iJD = (sqlite3_int64)(sqlite3_value_double(argv[0])*86400000.0 + 0.5); p->validJD = 1; }else{ z = sqlite3_value_text(argv[0]); if( !z || parseDateOrTime(context, (char*)z, p) ){ return 1; } } for(i=1; i<argc; i++){ z = sqlite3_value_text(argv[i]); if( z==0 || parseModifier(context, (char*)z, p) ) return 1; } return 0;}
开发者ID:1018824313,项目名称:sqlite,代码行数:38,
示例16: absFunc/*** Implementation of the abs() function*/static void absFunc(sqlite3_context *context, int argc, sqlite3_value **argv){ assert( argc==1 ); switch( sqlite3_value_type(argv[0]) ){ case SQLITE_INTEGER: { i64 iVal = sqlite3_value_int64(argv[0]); if( iVal<0 ){ if( (iVal<<1)==0 ){ sqlite3_result_error(context, "integer overflow", -1); return; } iVal = -iVal; } sqlite3_result_int64(context, iVal); break; } case SQLITE_NULL: { sqlite3_result_null(context); break; } default: { double rVal = sqlite3_value_double(argv[0]); if( rVal<0 ) rVal = -rVal; sqlite3_result_double(context, rVal); break; } }}
开发者ID:f059074251,项目名称:interested,代码行数:30,
示例17: sqlite_callback_argsstatic void sqlite_callback_args(int argc, sqlite3_value **argv){ int i; for (i = 0; i < argc; i++) { sqlite3_value *sv = argv[i]; Value *vp = fg->stk_top; switch (sqlite3_value_type(sv)) { case SQLITE_INTEGER: *vp = fs->int64_Value(sqlite3_value_int64(sv)); break; case SQLITE_FLOAT: *vp = fs->float_Value(fs->cls_float, sqlite3_value_double(sv)); break; case SQLITE_TEXT: { const char *p = (const char*)sqlite3_value_text(sv); int len = sqlite3_value_bytes(sv); *vp = fs->cstr_Value(NULL, p, len); break; } case SQLITE_BLOB: { const char *p = (const char*)sqlite3_value_blob(sv); int len = sqlite3_value_bytes(sv); *vp = fs->cstr_Value(fs->cls_bytes, p, len); break; } default: *vp = VALUE_NULL; break; } fg->stk_top++; }}
开发者ID:x768,项目名称:fox-lang,代码行数:34,
示例18: roundFuncstatic void roundFunc(sqlite3_context *context, int argc, sqlite3_value **argv){ int n = 0; double r; char *zBuf; assert( argc==1 || argc==2 ); if( argc==2 ){ if( SQLITE_NULL==sqlite3_value_type(argv[1]) ) return; n = sqlite3_value_int(argv[1]); if( n>30 ) n = 30; if( n<0 ) n = 0; } if( sqlite3_value_type(argv[0])==SQLITE_NULL ) return; r = sqlite3_value_double(argv[0]); /* If Y==0 and X will fit in a 64-bit int, ** handle the rounding directly, ** otherwise use printf. */ if( n==0 && r>=0 && r<LARGEST_INT64-1 ){ r = (double)((sqlite_int64)(r+0.5)); }else if( n==0 && r<0 && (-r)<LARGEST_INT64-1 ){ r = -(double)((sqlite_int64)((-r)+0.5)); }else{ zBuf = sqlite3_mprintf("%.*f",n,r); if( zBuf==0 ){ sqlite3_result_error_nomem(context); return; } sqlite3AtoF(zBuf, &r, sqlite3Strlen30(zBuf), SQLITE_UTF8); sqlite3_free(zBuf); } sqlite3_result_double(context, r);}
开发者ID:blingstorm,项目名称:sqlcipher,代码行数:32,
示例19: cubeFunc/*** The cube() SQL function returns the cube of its input value.*/static void cubeFunc( sqlite3_context *context, int argc, sqlite3_value **argv){ double r = sqlite3_value_double(argv[0]); sqlite3_result_double(context, r*r*r);}
开发者ID:VictorZhang2014,项目名称:sqlite,代码行数:11,
示例20: SStep/*** Routines used to compute the sum */static void SStep(sqlite3_context *context, int argc, sqlite3_value **argv){ SCtx *p=NULL; int i; std::string d; if( argc<1 ) return; p = (SCtx *) sqlite3_aggregate_context(context, sizeof(*p)); if( p->cnt == 0) { if ( sscnt >= MAXSSC ) { fprintf(stderr,"MAXSSC needs to increase/n"); exit(1); } p->sscnt=sscnt; sscnt++; ss[p->sscnt].str(""); ss[p->sscnt] << "("; d=""; } else { d=","; } p->sum += sqlite3_value_double(argv[0]); p->cnt++; ss[p->sscnt] << d << p->sum ;/* * If the simple function is not used this * comes into play. */ if (p->cnt == 1) { for(i=1; i< argc; ++i) { p->cnt++; p->sum+=sqlite3_value_double(argv[i]); ss[p->sscnt] << "," << p->sum ; } }}
开发者ID:abhishekbh,项目名称:SQLite-Rank-Extension,代码行数:49,
示例21: fts5Bm25Function/*** Implementation of bm25() function.*/static void fts5Bm25Function( const Fts5ExtensionApi *pApi, /* API offered by current FTS version */ Fts5Context *pFts, /* First arg to pass to pApi functions */ sqlite3_context *pCtx, /* Context for returning result/error */ int nVal, /* Number of values in apVal[] array */ sqlite3_value **apVal /* Array of trailing arguments */){ const double k1 = 1.2; /* Constant "k1" from BM25 formula */ const double b = 0.75; /* Constant "b" from BM25 formula */ int rc = SQLITE_OK; /* Error code */ double score = 0.0; /* SQL function return value */ Fts5Bm25Data *pData; /* Values allocated/calculated once only */ int i; /* Iterator variable */ int nInst = 0; /* Value returned by xInstCount() */ double D = 0.0; /* Total number of tokens in row */ double *aFreq = 0; /* Array of phrase freq. for current row */ /* Calculate the phrase frequency (symbol "f(qi,D)" in the documentation) ** for each phrase in the query for the current row. */ rc = fts5Bm25GetData(pApi, pFts, &pData); if( rc==SQLITE_OK ){ aFreq = pData->aFreq; memset(aFreq, 0, sizeof(double) * pData->nPhrase); rc = pApi->xInstCount(pFts, &nInst); } for(i=0; rc==SQLITE_OK && i<nInst; i++){ int ip; int ic; int io; rc = pApi->xInst(pFts, i, &ip, &ic, &io); if( rc==SQLITE_OK ){ double w = (nVal > ic) ? sqlite3_value_double(apVal[ic]) : 1.0; aFreq[ip] += w; } } /* Figure out the total size of the current row in tokens. */ if( rc==SQLITE_OK ){ int nTok; rc = pApi->xColumnSize(pFts, -1, &nTok); D = (double)nTok; } /* Determine the BM25 score for the current row. */ for(i=0; rc==SQLITE_OK && i<pData->nPhrase; i++){ score += pData->aIDF[i] * ( ( aFreq[i] * (k1 + 1.0) ) / ( aFreq[i] + k1 * (1 - b + b * D / pData->avgdl) ) ); } /* If no error has occurred, return the calculated score. Otherwise, ** throw an SQL exception. */ if( rc==SQLITE_OK ){ sqlite3_result_double(pCtx, -1.0 * score); }else{ sqlite3_result_error_code(pCtx, rc); }}
开发者ID:ngdmcc,项目名称:sqlite,代码行数:60,
示例22: sumStep/*** Routines used to compute the sum or average.*/static void sumStep(sqlite3_context *context, int argc, sqlite3_value **argv){ SumCtx *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->cnt++; }}
开发者ID:webmaster4world,项目名称:manual-indexing,代码行数:12,
示例23: halfFuncSQLITE_EXTENSION_INIT1static void halfFunc( sqlite3_context *context, int argc, sqlite3_value **argv){ sqlite3_result_double(context, 0.5*sqlite3_value_double(argv[0]));}
开发者ID:qtekfun,项目名称:htcDesire820Kernel,代码行数:9,
示例24: vtablogQuote/*** Output an sqlite3_value object's value as an SQL literal.*/static void vtablogQuote(sqlite3_value *p){ char z[50]; switch( sqlite3_value_type(p) ){ case SQLITE_NULL: { printf("NULL"); break; } case SQLITE_INTEGER: { sqlite3_snprintf(50,z,"%lld", sqlite3_value_int64(p)); printf("%s", z); break; } case SQLITE_FLOAT: { sqlite3_snprintf(50,z,"%!.20g", sqlite3_value_double(p)); printf("%s", z); break; } case SQLITE_BLOB: { int n = sqlite3_value_bytes(p); const unsigned char *z = (const unsigned char*)sqlite3_value_blob(p); int i; printf("x'"); for(i=0; i<n; i++) printf("%02x", z[i]); printf("'"); break; } case SQLITE_TEXT: { const char *z = (const char*)sqlite3_value_text(p); int i; char c; for(i=0; (c = z[i])!=0 && c!='/''; i++){} if( c==0 ){ printf("'%s'",z); }else{ printf("'"); while( *z ){ for(i=0; (c = z[i])!=0 && c!='/''; i++){} if( c=='/'' ) i++; if( i ){ printf("%.*s", i, z); z += i; } if( c=='/'' ){ printf("'"); continue; } if( c==0 ){ break; } z++; } printf("'"); } break; } }}
开发者ID:HongliYu,项目名称:firefox-ios,代码行数:60,
示例25: ora_sinhextern void ora_sinh(sqlite3_context * context, int argc, sqlite3_value ** argv) { double number; if (ksu_prm_ok(context, argc, argv, "sinh", KSU_PRM_NUMERIC)) { number = sqlite3_value_double(argv[0]); sqlite3_result_double(context, sinh(number)); }}
开发者ID:sfaroult,项目名称:sqlite_libs,代码行数:10,
示例26: ora_tan/* * Returns the tangent of the first argument. */extern void ora_tan(sqlite3_context * context, int argc, sqlite3_value ** argv) { double val; if (ksu_prm_ok(context, argc, argv, "tan", KSU_PRM_NUMERIC)) { val = sqlite3_value_double(argv[0]); sqlite3_result_double(context, tan(val)); }}
开发者ID:sfaroult,项目名称:sqlite_libs,代码行数:13,
示例27: haversine/* * Compute the distance between two points on earth using the Haversine formula * cf: http://en.wikipedia.org/wiki/Haversine_formula */static void haversine(sqlite3_context *context, int argc, sqlite3_value **argv){ assert(argc == 4); double lat1 = deg2rad(sqlite3_value_double(argv[0])); double long1 = deg2rad(sqlite3_value_double(argv[1])); double lat2 = deg2rad(sqlite3_value_double(argv[2])); double long2 = deg2rad(sqlite3_value_double(argv[3])); double dlat = fabs(lat1 - lat2); double dlong = fabs(long1 - long2); double angle = 2 * asin( sqrt(pow(sin(dlat/2), 2) + cos(lat1) * cos(lat2) * pow(sin(dlong/2), 2))); double res = angle * (equatorial_radius + polar_radius)/2; return sqlite3_result_double(context, res);}
开发者ID:PierreGe,项目名称:villo,代码行数:23,
示例28: pg_logextern void pg_log(sqlite3_context * context, int argc, sqlite3_value ** argv) { double val; double base; _ksu_check_arg_cnt(argc, 1, 2, "log"); if (argc == 2) { base = sqlite3_value_double(argv[0]); if ((base <= 0) || (base == 1)) { ksu_err_msg(context, KSU_ERR_INV_ARG_VAL_RANGE, "log"); return; } val = sqlite3_value_double(argv[1]); } else { base = 10; val = sqlite3_value_double(argv[0]); } sqlite3_result_double(context, log(val) / log(base));}
开发者ID:sfaroult,项目名称:sqlite_libs,代码行数:20,
示例29: powerFuncstatic void powerFunc(sqlite3_context* context, int argc, sqlite3_value** argv) { assert(argc == 2); if (sqlite3_value_type(argv[0]) == SQLITE_NULL || sqlite3_value_type(argv[1]) == SQLITE_NULL) { sqlite3_result_null(context); } else { double r1 = sqlite3_value_double(argv[0]); double r2 = sqlite3_value_double(argv[1]); errno = 0; double val = pow(r1, r2); if (errno == 0) { sqlite3_result_double(context, val); } else { sqlite3_result_error(context, platformStrerr(errno).c_str(), errno); } }}
开发者ID:FritzX6,项目名称:osquery,代码行数:20,
示例30: getRealResultstatic double getRealResult(const RtlFieldInfo *field, sqlite3_value *val){ assertex(val); if (isNull(val)) { NullFieldProcessor p(field); return p.doubleResult; } if (sqlite3_value_type(val) != SQLITE_FLOAT) typeError("real", field); return sqlite3_value_double(val);}
开发者ID:AsherBond,项目名称:HPCC-Platform,代码行数:12,
注:本文中的sqlite3_value_double函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 C++ sqlite3_value_int64函数代码示例 C++ sqlite3_value_blob函数代码示例 |