diff options
author | drh <> | 2023-06-28 12:02:48 +0000 |
---|---|---|
committer | drh <> | 2023-06-28 12:02:48 +0000 |
commit | 8fbb335d9f73dfa61b6da3f99e3408435297b850 (patch) | |
tree | 611dcab4bc84f1fdce9bb294985dac9d23106c19 /src/sqliteInt.h | |
parent | 60783f47b26fd584f8a7879697092557ecd0c613 (diff) | |
parent | d847c73153ba7eb77a5b773a691ad0ca6b879157 (diff) | |
download | sqlite-8fbb335d9f73dfa61b6da3f99e3408435297b850.tar.gz sqlite-8fbb335d9f73dfa61b6da3f99e3408435297b850.zip |
Enhance the SUM() aggregate (and related AVG() and TOTAL()) so that the running
sum is accurate to about 100 bits.
FossilOrigin-Name: a915f15a916af698e0cef46c8b3e7ed11bda19349179d2d414073cd39c4cce24
Diffstat (limited to 'src/sqliteInt.h')
-rw-r--r-- | src/sqliteInt.h | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/sqliteInt.h b/src/sqliteInt.h index 91b78710c..332048f43 100644 --- a/src/sqliteInt.h +++ b/src/sqliteInt.h @@ -1234,6 +1234,7 @@ typedef struct Cte Cte; typedef struct CteUse CteUse; typedef struct Db Db; typedef struct DbFixer DbFixer; +typedef struct DblDbl DblDbl; typedef struct Schema Schema; typedef struct Expr Expr; typedef struct ExprList ExprList; @@ -5035,6 +5036,15 @@ int sqlite3FixSrcList(DbFixer*, SrcList*); int sqlite3FixSelect(DbFixer*, Select*); int sqlite3FixExpr(DbFixer*, Expr*); int sqlite3FixTriggerStep(DbFixer*, TriggerStep*); + + +/* Representation of an extended precision floating point value. +** The actual value is the sum r and rr. See the dbldbl.c file. +*/ +void sqlite3DDFromInt(i64,double*); +void sqlite3DDAdd(double,double,double,double,double*); +void sqlite3DDSub(double,double,double,double,double*); + int sqlite3RealSameAsInt(double,sqlite3_int64); i64 sqlite3RealToI64(double); int sqlite3Int64ToText(i64,char*); |