aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
...
* A more precise implementation of sqlite3RealToI64().drh2023-07-06
| | | FossilOrigin-Name: 8813317cb52990d90bd48de163b6e35ddcad2b6f3187aa28b28e2e088b4489ce
* Fix octet_length() test cases so that they work when the database encodingdrh2023-07-06
| | | | | is utf16. FossilOrigin-Name: ad2e39626e6115fd322ef9495ae3bcd91343d7131a725f1bf24211a51a21dcc2
* Use the Kahan-Babushka-Neumaier algorithm to improve the accuracy of sum().drh2023-07-06
|\ | | | | FossilOrigin-Name: c63e26e705f5e967e14ef6aea8ce226548293ad8d25066069f29fa89673913d2
| * Fix minor inaccuracies in the new sum() algorithm.drh2023-07-06
| | | | | | FossilOrigin-Name: e3f7a960c9bd8e84cd70f0585bb955d043604a92001d0e2bf6c1216bb1fd7221
| * Experimental attempt to boost the accuracy of sum() using thedrh2023-07-06
|/ | | | | Kahan-Babuska-Neumaier algorithm. FossilOrigin-Name: ebc5edd3b10c1102b07b9fb0d6837266b81e55504ef883b9b8a7ad5e8ab29dd2
* Use "volatile" isntead of "#pragma" to get floating point calculationsdrh2023-07-06
|\ | | | | | | | | working correctly when compiling with GCC for x86 machines. FossilOrigin-Name: 9427f42687ed6d97c474bf42d0c3e82d6f4b0075e74206adcb5699d72e32140e
| * This is alternative work-around for the x86 float-point problem that usesdrh2023-07-05
|/ | | | | "volatile" rather than compile-specific #pragmas. FossilOrigin-Name: 1d972a690fdc70ab40862bd38427d68b48e8802ddf8e5c301f2d58ce2178b6ec
* Improved comments on the work-around to the GCC x86 floating point wonkiness.drh2023-07-05
| | | FossilOrigin-Name: 7b4c16731e7bf6f03f5adf4fcb2008c0b19be473fb1b90b405c217c08916586a
* Work around for an apparent GCC bug. Seedrh2023-07-05
| | | | | [forum:/info/ee7278611394034c|forum post ee7278611394034c] for details. FossilOrigin-Name: 5d9e9364808793d65925d4efbfde0f4246df258758f15e8ce1105070d1018fe6
* Make the order of operations explicit for the error term of Dekkerdrh2023-07-05
| | | | | double-precision multiply. FossilOrigin-Name: 28f57b34e6b11184a36e363a985e7531bddd7be48a5e039a670e5acf748eedda
* Simplification of the dekkerMul2() subroutine.drh2023-07-05
| | | FossilOrigin-Name: bfe6432a46fd41bfadf4516a73b4e2523d9b453c3e4486fe6df7e1d25275dfb3
* Add the ieee754_inc(r,N) function to the ieee754.c extension.drh2023-07-05
| | | FossilOrigin-Name: 9a36f269451d8832f68e223ac3995493704364e7fd0cc772989c96e863a08d29
* Enhance the sqlite3AtoF() function so that it can operate with or withoutdrh2023-07-03
|\ | | | | | | | | long double and provides accurate results in both cases. FossilOrigin-Name: fd987508d5589d42b46625c97cfb2feeac70fdb1cb11224610554b07a60644e6
| * Enhance sqlite3AtoF() so that it honors the USELONGDOUBLE test-control.drh2023-07-03
| | | | | | | | | | Enable the test/atof1.test module on non-intel platforms. FossilOrigin-Name: b7850fd480535980d66f107c2746e7f7fc0a5379ec8244d84f7785533c83f276
* | Store the fp-speed-1.c test program used to measure relative performance ofdrh2023-07-03
| | | | | | | | | | | | SQLite versus the standard library, in the test/ directory. A header comment explains how to use it. FossilOrigin-Name: eaff376277edceb043e9aac9d2df3e1157f576605508733be8a0a0aa4d720e1d
* | Add the --nolongdouble option to speedtest1.c.drh2023-07-03
| | | | | | FossilOrigin-Name: 6bf6018a00d61c5f0e53b37b00befaf5ad1d85323f41cf0cea25d8c6c1017096
* | Improved precision of binary-to-decimal conversion of floating-point valuesdrh2023-07-03
|\| | | | | | | | | | | on all systems but especially non-x86 systems that lake extended precision hardward floating point. FossilOrigin-Name: 32befb224b254639e756fd493f300507ff60c5222e00a7338dbcd39140133964
| * Whether or not to use the long-double floating point conversion techniquedrh2023-07-03
| | | | | | | | | | is now a test-control setting. FossilOrigin-Name: 02ae6caff1f7925c696ad263fe78b1036364d24b6373e1baec10d53aafb14a12
| * New test cases for floating-point conversions.drh2023-07-03
| | | | | | FossilOrigin-Name: 9435ed76cd9bb1be02768b3853a2323834f67bda75d3e3f76f6aa7bd0bade3d7
| * Use Dekker double-precision floating point to do the value normalizationdrh2023-07-03
| |\ | | | | | | | | | | | | | | | step in sqlite3FpDecode() for systems on which "long double" is 8 bytes or less. FossilOrigin-Name: 51f492b440728151ce64168d5436ba87ca60d84b89408e47c593fa731355afe4
| | * Final clean-up of the idea of using Dekker double-precision floatingdrh2023-07-03
| | | | | | | | | | | | | | | computations to improve accuracy. FossilOrigin-Name: 40285d631072b79aba39cc20d4b217bdf0069f29ac9902cb97dec28d3e4cde11
| | * Squeeze as many bits as we can out of normalization.drh2023-07-03
| | | | | | | | | FossilOrigin-Name: 25d1ad6df1ed460c2cc9f32e8a5106e121ae502044f83abf431c1d5b3879eb56
| | * Faster Dekker multiplication that removes the restriction on input magnitude.drh2023-07-03
| | | | | | | | | FossilOrigin-Name: 2994caf5884be07c889519c78fbac4ddcf267fcfe6a3265ecb6390bcd574532e
| | * Fix one constant in the normalization logic. Improved error outputdrh2023-07-03
| | | | | | | | | | | | | | | from atof1.test. FossilOrigin-Name: d3c48807100a358a70fdd799c8935eba1b765ace2e1ddea4475fd673006cb6da
| | * Replace the dodgy error estimating logic in the previous check-in withdrh2023-07-03
| | | | | | | | | | | | | | | | | | full-up Dekker double-double multiplication, and this idea works much better. There are still a few inaccuracies, but it is much closer. FossilOrigin-Name: 4fa6938dac2d3d813a37664053db31451a2a065f78dd212488f5f7f8d583ddc5
| | * An idea for improving accuracy of fp-to-decimal conversion for systems thatdrh2023-07-03
| |/ | | | | | | | | | | do not have "long double". Does not quite work. Retained only for documentation purposes. FossilOrigin-Name: 702243333843219f8904ee0fd12283080d6c6b3fc1ffb36c534cdefb3563c00d
| * This check-in adds the use of "long double" to sqlite3FpDecode() which whendrh2023-07-01
| | | | | | | | | | | | | | run on x86 using a compiler that translates "long double" into binary80, causes all legacy tests to pass. But on a system where "long double" is just an alias for "double", some of the tests are still failing. FossilOrigin-Name: ce06982f880339cf46704e95c907249827c3e44af2b9420005200ca8abd3f371
| * Reinstate the fpdecode() SQL function for testing, but only when compileddrh2023-07-01
| | | | | | | | | | with SQLITE_DEBUG. FossilOrigin-Name: 07eab52e0801bb0e4743b304a06ad16e18cdf8eaa18c0faf8d47a1f5d8576ea0
| * Improved rounding policy.drh2023-07-01
| | | | | | FossilOrigin-Name: 6f1122e942b8269552daaf13d647d200d8546ec25f36310d67037c6b58d09976
| * Improved response to Infinity and NaN. Remove the termporary fpdecode()drh2023-07-01
| | | | | | | | | | function. FossilOrigin-Name: 76ab8ae809a47a66688e2d50c20dc87ce946d82e9ffebb3adda55c451fad07fc
| * Progress towards fixing corner-case floating-point formatting issues.drh2023-07-01
| | | | | | FossilOrigin-Name: 1138b8d16edef16d2943d407e289d07d546a14e64c3efa3c94127631e06fafeb
| * Fix an issue with the "+" attribute in printf().drh2023-06-30
| | | | | | FossilOrigin-Name: bdfd1eb1d7b4c570a53d58789dac0bf55fdaf8eba515d5a0caf2e57e25b51952
| * Begin cutting over sqlite3FpDecode() into printf(). The code in thisdrh2023-06-30
| | | | | | | | | | | | check-in gets a lot right, but there are still some formatting discrepencies. FossilOrigin-Name: c134d423e79ba5d3343d7480229822a0c83210f67f12129e0237181f892f97a5
| * Add decimal rounding to the sqlite3FpDecode() routine.drh2023-06-30
| | | | | | FossilOrigin-Name: 27871140caa833f0bc0962e44356993938e93dcf81c1074382b1560a3e1aeb61
| * Experiments with a new algorithm for converting ieee-754 binary64 numbersdrh2023-06-30
|/ | | | | into decimal. FossilOrigin-Name: e923405e448385085224f9289991b303d86b02763535ea77d6fcee98ba6fc1f2
* Add support for sqlite3_stmt_scanstatus_v2() profiling of GROUP BY clauses ↵dan2023-06-30
|\ | | | | | | | | that use a temp b-tree, and for sub-queries implemented as co-routines. FossilOrigin-Name: 7afad1f759f7ceda873c6d869422fd56fe4399c2d24d47ad9bc3b84b06d830d1
| * Improve support for sqlite3_stmt_scanstatus_v2() profiling of sub-queries ↵dan2023-06-30
| | | | | | | | | | implemented as co-routines. FossilOrigin-Name: 4e8718dc35dbbaf75f17265a88d14acd9750dc75efbadf41377f9c97e732009c
| * Add support for sqlite3_stmt_scanstatus_v2() profiling of GROUP BY clauses ↵dan2023-06-30
|/ | | | | that use a temp b-tree. FossilOrigin-Name: 796eadcc50e7ea9ec348b1f7e2d6a5a3de78c675a07f665078309e6d81479e7d
* Add extra debugging code for sqlite3_stmt_scanstatus_v2() to test1.c.dan2023-06-30
| | | FossilOrigin-Name: f936f101406069b29218c89a36581b4497226fb61906782ea368f12d943c901c
* Completely unwind the enhanced precision sum() from [a915f15a916af698] sodrh2023-06-30
| | | | | as not to offend UBSAN and OSS-Fuzz. FossilOrigin-Name: 85be05b66ef975f02a3e7b2984bcab97d9280c7f3b6ee1e16718de549f240d46
* Omit the doubleToReal() function in vdbemem.c. Use thedrh2023-06-30
| | | | | equivalent sqlite3RealToI64() function in its place. FossilOrigin-Name: 625820e8ebfdcf513c81b1b632bbe2aa882a8fbba52001113dc6f56270fa5ceb
* Make the sum() function less precise and slower in order to avoiddrh2023-06-30
| | | | | harmless signed integer overflow UBSAN warnings from OSS-Fuzz. FossilOrigin-Name: 1be0646a2c352dbf03d2af87fd48b6f9edfd68666790ac6863144ac95f3e0621
* Cleanup and commenting of the new DECIMAL extension code. No functionaldrh2023-06-29
| | | | | changes. FossilOrigin-Name: 5124481663eb8e74a9f861be98adb7075ea911fcff0216d98c658e955acadf14
* Enhancements to the DECIMAL extension:drh2023-06-29
| | | | | | | | | | (1) If the argument to decimal(X) is a floating point value (or an 8-byte blob), the floating point value is expanded into its exact decimal representation. (2) Function decimal_sci(X) works the same except it returns the result in scientific notation. (3) New function decimal_pow2(N) returns the full decimal expansion of the N-th integer power of 2. FossilOrigin-Name: 8baf8c10aecb261751f2b154356ab224b79d07230929ec9f123791278e601bba
* Fix harmless compiler warnings about unused function arguments.drh2023-06-29
| | | FossilOrigin-Name: 24927c1377314a10177da4a57191593440aa97fd0c5949fdf25a22df1d947600
* Improve the range of floating-point numbers that can be handled as integersdrh2023-06-29
| | | | | for numeric-to-text conversion. FossilOrigin-Name: 41580ba452fdbc3f73da60d8030289d38614c4cab8d24140d7cc44a54b2da8d2
* Further refine the dtostr() testing function in the CLI so that it takes andrh2023-06-29
| | | | | optional second parameter which is the number of significant digits to display. FossilOrigin-Name: 2f9d4444aa503102a00d6e6769dadc57d4b26a2c07f145f23f2f28e0c161246d
* Change the (undocumented) dtostr() SQL function in the CLI so that it onlydrh2023-06-29
| | | | | | shows the first 26 significant digits - 10 more digits than are available in a 64-bit double. FossilOrigin-Name: d758859f6ab94ddb9b3ee6f6f5f24b16e2b7a7712761080cfc6540d68b5a0c97
* Add the decimal_sci(X) function to the Decimal extension for showing a decimaldrh2023-06-29
| | | | | value in scientific notation: +D.DDDDDe+DD FossilOrigin-Name: 61d4923913e88b980ce93db4f3f9f9d7ba3baaac724995c36c9b887c034accdc
* CLI enhancements to facilitate SQLite core testing:drh2023-06-29
| | | | | | | | (1) Add built-in functions strtod() and dtostr() that convert text to floating point and back using C-library routines. (2) Do not disable all of ".testctrl" without --unsafe-testing, but only those subcommands of .testctrl that are actually dangerous. FossilOrigin-Name: 669996a8ddcbf35f3de66cf466508fc1e6dd09ab269aba395ac86a11b2ec238c